mirror of
https://github.com/GitJournal/GitJournal.git
synced 2025-06-29 18:38:36 +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);
|
||||
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(
|
||||
|
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