/* * SPDX-FileCopyrightText: 2019-2021 Vishesh Handa * * SPDX-License-Identifier: AGPL-3.0-or-later */ import 'package:markdown/markdown.dart' as md; import 'package:test/test.dart'; import 'package:gitjournal/markdown/parsers/katex.dart'; import '../lib.dart'; void main() { setUpAll(gjSetupAllTests); test('Inline', () async { var body = r"""# Hi $\\sqrt{3x-1}+(1+x)^2$"""; var expectedHtml = r"""

Hi

\\sqrt{3x-1}+(1+x)^2

"""; expect(_convert(body), expectedHtml); }); test('Inline Empty', () async { var body = r"""# Hi $$"""; var expectedHtml = r"""

Hi

$$

"""; expect(_convert(body), expectedHtml); }); test('Inline Edge case', () async { var body = r"Hi 200$ is not the same as 400$"; var expectedHtml = r"

Hi 200$ is not the same as 400$

"; expect(_convert(body), expectedHtml); }); test('Block', () async { var body = r"""# Hi $$\begin{array}{c} \end{array}$$"""; var expectedHtml = r"""

Hi

\begin{array}{c} \end{array}"""; expect(_convert(body), expectedHtml); }); } String _convert(String body) { var lines = body.split('\n'); var doc = md.Document( encodeHtml: false, extensionSet: md.ExtensionSet( List.unmodifiable([ const KatexBlockSyntax(), ]), List.unmodifiable([]), ), inlineSyntaxes: [KatexInlineSyntax()], ); var nodes = doc.parseLines(lines); return md.renderToHtml(nodes); }