From b073c6b26f785ff72530e23e768e58d33d30211b Mon Sep 17 00:00:00 2001 From: Greg Price Date: Wed, 11 Jun 2025 22:02:06 -0700 Subject: [PATCH] content: Render KaTeX by default, the way we have in recent releases This is cherry-picked from commits we included in each of the last several releases, starting with 8f3723768 in v0.0.31. --- lib/model/settings.dart | 2 +- test/model/content_test.dart | 4 ++-- test/widgets/content_test.dart | 29 +++++++++++++++++++++++++++-- 3 files changed, 30 insertions(+), 5 deletions(-) diff --git a/lib/model/settings.dart b/lib/model/settings.dart index e8a309ac29..4e71224444 100644 --- a/lib/model/settings.dart +++ b/lib/model/settings.dart @@ -178,7 +178,7 @@ enum BoolGlobalSetting { upgradeWelcomeDialogShown(GlobalSettingType.internal, false), /// An experimental flag to toggle rendering KaTeX content in messages. - renderKatex(GlobalSettingType.experimentalFeatureFlag, false), + renderKatex(GlobalSettingType.experimentalFeatureFlag, true), /// An experimental flag to enable rendering KaTeX even when some /// errors are encountered. diff --git a/test/model/content_test.dart b/test/model/content_test.dart index e4dd622b19..88bd11c66c 100644 --- a/test/model/content_test.dart +++ b/test/model/content_test.dart @@ -512,7 +512,7 @@ class ContentExample { static final mathInline = ContentExample.inline( 'inline math', r"$$ \lambda $$", - expectedText: r'\lambda', + expectedText: r'λ', '

' 'λ' ' \\lambda ' @@ -532,7 +532,7 @@ class ContentExample { static const mathBlock = ContentExample( 'math block', "```math\n\\lambda\n```", - expectedText: r'\lambda', + expectedText: r'λ', '

' 'λ' '\\lambda' diff --git a/test/widgets/content_test.dart b/test/widgets/content_test.dart index 964d7e1208..46ed10079e 100644 --- a/test/widgets/content_test.dart +++ b/test/widgets/content_test.dart @@ -558,7 +558,11 @@ void main() { group('MathBlock', () { testContentSmoke(ContentExample.mathBlock); - testWidgets('displays KaTeX source; experimental flag default', (tester) async { + testWidgets('displays KaTeX source; experimental flag disabled', (tester) async { + addTearDown(testBinding.reset); + final globalSettings = testBinding.globalStore.settings; + await globalSettings.setBool(BoolGlobalSetting.renderKatex, false); + await prepareContent(tester, plainContent(ContentExample.mathBlock.html)); tester.widget(find.text(r'\lambda', findRichText: true)); }); @@ -1102,6 +1106,23 @@ void main() { }); testWidgets('maintains font-size ratio with surrounding text, when showing TeX source', (tester) async { + const html = '' + 'λ' + ' \\lambda ' + ''; + await checkFontSizeRatio(tester, + targetHtml: html, + targetFontSizeFinder: mkTargetFontSizeFinderFromPattern(r'λ')); + }, skip: true // TODO(#46): adapt this test + // (it needs a more complex targetFontSizeFinder; + // see other uses in this file for examples.) + ); + + testWidgets('maintains font-size ratio with surrounding text, when showing TeX source', (tester) async { + addTearDown(testBinding.reset); + final globalSettings = testBinding.globalStore.settings; + await globalSettings.setBool(BoolGlobalSetting.renderKatex, false); + const html = '' 'λ' ' \\lambda ' @@ -1111,7 +1132,11 @@ void main() { targetFontSizeFinder: mkTargetFontSizeFinderFromPattern(r'\lambda')); }); - testWidgets('displays KaTeX source; experimental flag default', (tester) async { + testWidgets('displays KaTeX source; experimental flag disabled', (tester) async { + addTearDown(testBinding.reset); + final globalSettings = testBinding.globalStore.settings; + await globalSettings.setBool(BoolGlobalSetting.renderKatex, false); + await prepareContent(tester, plainContent(ContentExample.mathInline.html)); tester.widget(find.text(r'\lambda', findRichText: true)); });