mirror of
https://github.com/amitwh/markdown-converter.git
synced 2026-08-02 18:10:18 +05:30
fix: resolve editor, batch conversion, and startup performance issues
- Remove popout preview button (HTML, JS, CSS) - Fix Save/Save As flow for new untitled files - Fix batch conversion menu items (wire show-batch-converter IPC) - Add universal-convert-batch IPC handler for batch file conversion - Lazy-load mermaid, pdfjs-dist, sidebar panels, command palette - Switch highlight.js CSS from CDN to local - Defer CodeMirror language extensions until first use - Add show:false + ready-to-show for faster perceived startup - Install mermaid as local dependency (remove CDN script tag)
This commit is contained in:
@@ -10,11 +10,8 @@ const {
|
||||
} = require('@codemirror/view');
|
||||
const { EditorState } = require('@codemirror/state');
|
||||
const { markdown, markdownLanguage } = require('@codemirror/lang-markdown');
|
||||
const { javascript } = require('@codemirror/lang-javascript');
|
||||
const { html } = require('@codemirror/lang-html');
|
||||
const { css } = require('@codemirror/lang-css');
|
||||
const { json } = require('@codemirror/lang-json');
|
||||
const { python } = require('@codemirror/lang-python');
|
||||
// Language extensions loaded lazily on first use
|
||||
let _javascript, _html, _css, _json, _python;
|
||||
const {
|
||||
defaultKeymap,
|
||||
history,
|
||||
@@ -108,19 +105,19 @@ function createEditor(parentElement, options = {}) {
|
||||
* @returns {Extension} CodeMirror language extension
|
||||
*/
|
||||
function getLanguageExtension(lang) {
|
||||
const languages = {
|
||||
javascript,
|
||||
js: javascript,
|
||||
html,
|
||||
css,
|
||||
json,
|
||||
python,
|
||||
py: python,
|
||||
const loaders = {
|
||||
javascript: () => { if (!_javascript) _javascript = require('@codemirror/lang-javascript').javascript; return _javascript(); },
|
||||
html: () => { if (!_html) _html = require('@codemirror/lang-html').html; return _html(); },
|
||||
css: () => { if (!_css) _css = require('@codemirror/lang-css').css; return _css(); },
|
||||
json: () => { if (!_json) _json = require('@codemirror/lang-json').json; return _json(); },
|
||||
python: () => { if (!_python) _python = require('@codemirror/lang-python').python; return _python(); },
|
||||
markdown: () => markdown({ base: markdownLanguage }),
|
||||
};
|
||||
loaders.js = loaders.javascript;
|
||||
loaders.py = loaders.python;
|
||||
|
||||
const factory = languages[lang];
|
||||
return factory ? factory() : markdown({ base: markdownLanguage });
|
||||
const loader = loaders[lang];
|
||||
return loader ? loader() : markdown({ base: markdownLanguage });
|
||||
}
|
||||
|
||||
module.exports = { createEditor, getLanguageExtension };
|
||||
|
||||
Reference in New Issue
Block a user