From 47c7b864cbb864d5df79849f27625aecf312df4b Mon Sep 17 00:00:00 2001 From: Laurent Cozic Date: Mon, 19 Oct 2020 16:40:11 +0100 Subject: [PATCH] Clean up rules --- CliClient/tests/MdToHtml.js | 1 + ReactNativeClient/lib/BaseApplication.ts | 4 +++- .../lib/joplin-renderer/MdToHtml.ts | 19 ++++++++++++------- .../MdToHtml/rules/checkbox.ts | 2 +- .../MdToHtml/rules/fountain.js | 2 +- .../joplin-renderer/MdToHtml/rules/katex.js | 2 +- .../joplin-renderer/MdToHtml/rules/mermaid.ts | 2 +- 7 files changed, 20 insertions(+), 12 deletions(-) diff --git a/CliClient/tests/MdToHtml.js b/CliClient/tests/MdToHtml.js index f3c48ea88c..a4e3cce6bb 100644 --- a/CliClient/tests/MdToHtml.js +++ b/CliClient/tests/MdToHtml.js @@ -112,6 +112,7 @@ describe('MdToHtml', function() { const mdToHtml = newTestMdToHtml({ pluginOptions: pluginOptions }); const assets = await mdToHtml.allAssets(themeStyle(1)); + console.info('ASSETS', assets); expect(assets.length).toBe(2); expect(assets[1].mime).toBe('text/css'); diff --git a/ReactNativeClient/lib/BaseApplication.ts b/ReactNativeClient/lib/BaseApplication.ts index bbd12b76d2..559e4fc9e7 100644 --- a/ReactNativeClient/lib/BaseApplication.ts +++ b/ReactNativeClient/lib/BaseApplication.ts @@ -696,7 +696,9 @@ export default class BaseApplication { initArgs = Object.assign(initArgs, extraFlags); this.logger_.addTarget(TargetType.File, { path: `${profileDir}/log.txt` }); - // this.logger_.addTarget(TargetType.Console, { level: Logger.LEVEL_DEBUG }); + if (Setting.value('env') === 'dev' && !shim.isTestingEnv()) { + // this.logger_.addTarget(TargetType.Console, { level: Logger.LEVEL_DEBUG }); + } this.logger_.setLevel(initArgs.logLevel); reg.setLogger(this.logger_); diff --git a/ReactNativeClient/lib/joplin-renderer/MdToHtml.ts b/ReactNativeClient/lib/joplin-renderer/MdToHtml.ts index d60de88cf3..0f089bff4b 100644 --- a/ReactNativeClient/lib/joplin-renderer/MdToHtml.ts +++ b/ReactNativeClient/lib/joplin-renderer/MdToHtml.ts @@ -5,8 +5,13 @@ import { fileExtension } from './pathUtils'; const MarkdownIt = require('markdown-it'); const md5 = require('md5'); +interface RendererRule { + install(context:any, ruleOptions:any):any, + assets?(theme:any):any, +} + interface RendererRules { - [pluginName:string]: any, + [pluginName:string]: RendererRule, } interface RendererPlugin { @@ -94,7 +99,7 @@ interface PluginContext { css: any pluginAssets: any, cache: any, -}; +} interface RenderResultPluginAsset { name: string, @@ -123,7 +128,7 @@ export default class MdToHtml { // Markdown-It plugin options (not Joplin plugin options) private pluginOptions_:any = {}; private extraRendererRules_:RendererRules = {}; - + constructor(options:Options = null) { if (!options) options = {}; @@ -183,7 +188,7 @@ export default class MdToHtml { // `module` is a file that has already been `required()` public loadExtraRendererRule(id:string, module:any) { - if (this.extraRendererRules_[id]) throw new Error('A renderer rule with this ID has already been loaded: ' + id); + if (this.extraRendererRules_[id]) throw new Error(`A renderer rule with this ID has already been loaded: ${id}`); this.extraRendererRules_[id] = module; } @@ -236,8 +241,8 @@ export default class MdToHtml { if (!this.pluginEnabled(key)) continue; const rule = rules[key]; - if (rule.style) { - assets[key] = rule.style(theme); + if (rule.assets) { + assets[key] = rule.assets(theme); } } @@ -386,7 +391,7 @@ export default class MdToHtml { for (const key in allRules) { if (!this.pluginEnabled(key)) continue; const rule = allRules[key]; - const ruleInstall = rule.install ? rule.install : rule; + const ruleInstall:Function = rule.install ? rule.install : (rule as any); markdownIt.use(ruleInstall(context, { ...ruleOptions })); } diff --git a/ReactNativeClient/lib/joplin-renderer/MdToHtml/rules/checkbox.ts b/ReactNativeClient/lib/joplin-renderer/MdToHtml/rules/checkbox.ts index c1884f9984..3b96098f48 100644 --- a/ReactNativeClient/lib/joplin-renderer/MdToHtml/rules/checkbox.ts +++ b/ReactNativeClient/lib/joplin-renderer/MdToHtml/rules/checkbox.ts @@ -229,5 +229,5 @@ export default { installRule(md, mdOptions, ruleOptions, context); }; }, - style: pluginAssets[2], + assets: pluginAssets[2], }; diff --git a/ReactNativeClient/lib/joplin-renderer/MdToHtml/rules/fountain.js b/ReactNativeClient/lib/joplin-renderer/MdToHtml/rules/fountain.js index 9b2039c53f..e8bfe04626 100644 --- a/ReactNativeClient/lib/joplin-renderer/MdToHtml/rules/fountain.js +++ b/ReactNativeClient/lib/joplin-renderer/MdToHtml/rules/fountain.js @@ -143,5 +143,5 @@ module.exports = { installRule(md, mdOptions, ruleOptions, context); }; }, - style: fountainCss, + assets: fountainCss, }; diff --git a/ReactNativeClient/lib/joplin-renderer/MdToHtml/rules/katex.js b/ReactNativeClient/lib/joplin-renderer/MdToHtml/rules/katex.js index 35cac71524..f4895e2471 100644 --- a/ReactNativeClient/lib/joplin-renderer/MdToHtml/rules/katex.js +++ b/ReactNativeClient/lib/joplin-renderer/MdToHtml/rules/katex.js @@ -287,5 +287,5 @@ module.exports = { md.renderer.rules.math_block = blockRenderer; }; }, - style: katexStyle, + assets: katexStyle, }; diff --git a/ReactNativeClient/lib/joplin-renderer/MdToHtml/rules/mermaid.ts b/ReactNativeClient/lib/joplin-renderer/MdToHtml/rules/mermaid.ts index 99db05c27d..a29463767f 100644 --- a/ReactNativeClient/lib/joplin-renderer/MdToHtml/rules/mermaid.ts +++ b/ReactNativeClient/lib/joplin-renderer/MdToHtml/rules/mermaid.ts @@ -45,5 +45,5 @@ export default { installRule(md, mdOptions, ruleOptions, context); }; }, - style: style, + assets: style, };