generatePages method
This function create a (valid) file transforming
delta format to markdown
and detecting all markdown syntax
for
put the attributes to the paragraph
Use the parameter for print a just one document
and not all the project
Implementation
@override
Future<List<Map<String, dynamic>>> generatePages(
{required List<Delta> documents}) async {
String markdownText = "";
LinkedHashSet<Map<String, dynamic>> docMap =
LinkedHashSet<Map<String, dynamic>>();
int i = 0;
int totalDocuments = documents.length;
while (i < totalDocuments) {
final Delta doc = documents.elementAt(i);
if (doc.isNotEmpty) {
try {
final String html = customDeltaToHTMLConverter != null
? customDeltaToHTMLConverter!.call(doc)
: convertDeltaToHtml(
doc, converterOptions ?? HTMLConverterOptions.options())
.convertWrongInlineStylesToSpans
.replaceAll('<p><br/><p>', '<p><br></p>');
markdownText = customHTMLToMarkdownConverter != null
? customHTMLToMarkdownConverter!.call(html)
: convertHtmlToMarkdown(
html,
rules,
<String>[],
removeLeadingWhitespaces: false,
escape: false,
);
} on ArgumentError catch (e) {
debugPrint(e.toString());
rethrow;
} on FormatException catch (e) {
debugPrint(e.toString());
rethrow;
}
docMap.add(<String, dynamic>{
'content': List<pw.Widget>.from(
await blockGenerators(markdownText.splitBasedNewLine)),
});
}
i++;
}
return List<Map<String, dynamic>>.from(docMap);
}