diff --git a/lib/widgets/note_viewer.dart b/lib/widgets/note_viewer.dart index b81e0fc4..cada0030 100644 --- a/lib/widgets/note_viewer.dart +++ b/lib/widgets/note_viewer.dart @@ -55,12 +55,6 @@ class NoteViewer extends StatelessWidget { ), ); - // It's important to add both these inline syntaxes before the other - // syntaxes as the LinkSyntax intefers with both of these - var markdownExtensions = md.ExtensionSet.gitHubFlavored; - markdownExtensions.inlineSyntaxes.insert(0, WikiLinkSyntax()); - markdownExtensions.inlineSyntaxes.insert(1, TaskListSyntax()); - final rootFolder = Provider.of(context); var view = EditorScrollView( child: Column( @@ -116,7 +110,7 @@ class NoteViewer extends StatelessWidget { }, imageBuilder: (url, title, alt) => kDefaultImageBuilder( url, note.parent.folderPath + p.separator, null, null), - extensionSet: markdownExtensions, + extensionSet: markdownExtensions(), ), ), const SizedBox(height: 16.0), @@ -131,6 +125,15 @@ class NoteViewer extends StatelessWidget { return view; } + static md.ExtensionSet markdownExtensions() { + // It's important to add both these inline syntaxes before the other + // syntaxes as the LinkSyntax intefers with both of these + var markdownExtensions = md.ExtensionSet.gitHubFlavored; + markdownExtensions.inlineSyntaxes.insert(0, WikiLinkSyntax()); + markdownExtensions.inlineSyntaxes.insert(1, TaskListSyntax()); + return markdownExtensions; + } + /* Widget _buildFooter(BuildContext context) { return Padding( diff --git a/test/markdown_rendering_test.dart b/test/markdown_rendering_test.dart new file mode 100644 index 00000000..b01b3057 --- /dev/null +++ b/test/markdown_rendering_test.dart @@ -0,0 +1,26 @@ +import 'package:test/test.dart'; +import 'package:markdown/markdown.dart' as md; + +import 'package:gitjournal/widgets/note_viewer.dart'; + +void main() { + test('Parses Wiki Lnks and task items', () { + var body = "[[GitJournal]] should match.\n- [ ] task item"; + var lines = body.split('\n'); + + var doc = md.Document( + encodeHtml: false, + extensionSet: NoteViewer.markdownExtensions(), + inlineSyntaxes: NoteViewer.markdownExtensions().inlineSyntaxes, + ); + var nodes = doc.parseLines(lines); + + var expected = + """

GitJournal should match.

+"""; + + expect(md.renderToHtml(nodes), expected); + }); +}