mirror of
https://github.com/GitJournal/GitJournal.git
synced 2025-06-29 10:17:16 +08:00
Add a test for the markdown node parsing
This way we will clearly know when the Markdown parsing fails because of bugs in the markdown package.
This commit is contained in:
@ -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<NotesFolderFS>(context);
|
final rootFolder = Provider.of<NotesFolderFS>(context);
|
||||||
var view = EditorScrollView(
|
var view = EditorScrollView(
|
||||||
child: Column(
|
child: Column(
|
||||||
@ -116,7 +110,7 @@ class NoteViewer extends StatelessWidget {
|
|||||||
},
|
},
|
||||||
imageBuilder: (url, title, alt) => kDefaultImageBuilder(
|
imageBuilder: (url, title, alt) => kDefaultImageBuilder(
|
||||||
url, note.parent.folderPath + p.separator, null, null),
|
url, note.parent.folderPath + p.separator, null, null),
|
||||||
extensionSet: markdownExtensions,
|
extensionSet: markdownExtensions(),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
const SizedBox(height: 16.0),
|
const SizedBox(height: 16.0),
|
||||||
@ -131,6 +125,15 @@ class NoteViewer extends StatelessWidget {
|
|||||||
return view;
|
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) {
|
Widget _buildFooter(BuildContext context) {
|
||||||
return Padding(
|
return Padding(
|
||||||
|
26
test/markdown_rendering_test.dart
Normal file
26
test/markdown_rendering_test.dart
Normal file
@ -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 =
|
||||||
|
"""<p><a type="wiki" href="[[GitJournal]]" term="GitJournal">GitJournal</a> should match.</p>
|
||||||
|
<ul>
|
||||||
|
<li><input type="checkbox" disabled="true" checked="false"></input>task item</li>
|
||||||
|
</ul>""";
|
||||||
|
|
||||||
|
expect(md.renderToHtml(nodes), expected);
|
||||||
|
});
|
||||||
|
}
|
Reference in New Issue
Block a user