mirror of
https://github.com/marktext/marktext.git
synced 2025-05-03 05:59:53 +08:00
parent
881e0c44e6
commit
d24a578a1a
@ -71,7 +71,7 @@
|
|||||||
"minizlib": "^2.1.1",
|
"minizlib": "^2.1.1",
|
||||||
"plist": "^3.0.4",
|
"plist": "^3.0.4",
|
||||||
"popper.js": "^1.16.1",
|
"popper.js": "^1.16.1",
|
||||||
"prismjs": "^1.25.0",
|
"prismjs": "^1.26.0",
|
||||||
"snabbdom": "^0.7.4",
|
"snabbdom": "^0.7.4",
|
||||||
"snabbdom-to-html": "^6.0.0",
|
"snabbdom-to-html": "^6.0.0",
|
||||||
"source-map-support": "^0.5.21",
|
"source-map-support": "^0.5.21",
|
||||||
|
@ -33,6 +33,7 @@ export const transfromAliasToOrigin = langs => {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return result
|
return result
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -40,9 +41,7 @@ function initLoadLanguage (Prism) {
|
|||||||
return async function loadLanguages (langs) {
|
return async function loadLanguages (langs) {
|
||||||
// If no argument is passed, load all components
|
// If no argument is passed, load all components
|
||||||
if (!langs) {
|
if (!langs) {
|
||||||
langs = Object.keys(languages).filter(function (lang) {
|
langs = Object.keys(languages).filter(lang => lang !== 'meta')
|
||||||
return lang !== 'meta'
|
|
||||||
})
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (langs && !langs.length) {
|
if (langs && !langs.length) {
|
||||||
@ -54,8 +53,8 @@ function initLoadLanguage (Prism) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
const promises = []
|
const promises = []
|
||||||
// the user might have loaded languages via some other way or used `prism.js` which already includes some
|
// The user might have loaded languages via some other way or used `prism.js` which already includes some
|
||||||
// we don't need to validate the ids because `getLoader` will ignore invalid ones
|
// We don't need to validate the ids because `getLoader` will ignore invalid ones
|
||||||
const loaded = [...loadedLanguages, ...Object.keys(Prism.languages)]
|
const loaded = [...loadedLanguages, ...Object.keys(Prism.languages)]
|
||||||
|
|
||||||
getLoader(components, langs, loaded).load(async lang => {
|
getLoader(components, langs, loaded).load(async lang => {
|
||||||
@ -66,17 +65,20 @@ function initLoadLanguage (Prism) {
|
|||||||
lang,
|
lang,
|
||||||
status: 'noexist'
|
status: 'noexist'
|
||||||
})
|
})
|
||||||
return
|
} else if (loadedLanguages.has(lang)) {
|
||||||
|
defer.resolve({
|
||||||
|
lang,
|
||||||
|
status: 'cached'
|
||||||
|
})
|
||||||
|
} else {
|
||||||
|
delete Prism.languages[lang]
|
||||||
|
await import('prismjs/components/prism-' + lang)
|
||||||
|
defer.resolve({
|
||||||
|
lang,
|
||||||
|
status: 'loaded'
|
||||||
|
})
|
||||||
|
loadedLanguages.add(lang)
|
||||||
}
|
}
|
||||||
|
|
||||||
delete Prism.languages[lang]
|
|
||||||
|
|
||||||
await import('prismjs/components/prism-' + lang)
|
|
||||||
defer.resolve({
|
|
||||||
lang,
|
|
||||||
status: loadedLanguages.has(lang) ? 'cached' : 'loaded'
|
|
||||||
})
|
|
||||||
loadedLanguages.add(lang)
|
|
||||||
})
|
})
|
||||||
|
|
||||||
return Promise.all(promises)
|
return Promise.all(promises)
|
||||||
|
@ -14,6 +14,8 @@ import { loadLanguage } from '../prism/index'
|
|||||||
// To be disabled rules when parse markdown, Because content state don't need to parse inline rules
|
// To be disabled rules when parse markdown, Because content state don't need to parse inline rules
|
||||||
import { CURSOR_ANCHOR_DNA, CURSOR_FOCUS_DNA } from '../config'
|
import { CURSOR_ANCHOR_DNA, CURSOR_FOCUS_DNA } from '../config'
|
||||||
|
|
||||||
|
const languageLoaded = new Set()
|
||||||
|
|
||||||
// Just because turndown change `\n`(soft line break) to space, So we add `span.ag-soft-line-break` to workaround.
|
// Just because turndown change `\n`(soft line break) to space, So we add `span.ag-soft-line-break` to workaround.
|
||||||
const turnSoftBreakToSpan = html => {
|
const turnSoftBreakToSpan = html => {
|
||||||
const parser = new DOMParser()
|
const parser = new DOMParser()
|
||||||
@ -95,7 +97,6 @@ const importRegister = ContentState => {
|
|||||||
let block
|
let block
|
||||||
let value
|
let value
|
||||||
const parentList = [rootState]
|
const parentList = [rootState]
|
||||||
const languageLoaded = new Set()
|
|
||||||
|
|
||||||
while ((token = tokens.shift())) {
|
while ((token = tokens.shift())) {
|
||||||
switch (token.type) {
|
switch (token.type) {
|
||||||
@ -420,7 +421,7 @@ const importRegister = ContentState => {
|
|||||||
break
|
break
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
languageLoaded.clear()
|
|
||||||
return rootState.children.length ? rootState.children : [this.createBlockP()]
|
return rootState.children.length ? rootState.children : [this.createBlockP()]
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -10144,10 +10144,10 @@ pretty-format@^27.2.5, pretty-format@^27.4.2:
|
|||||||
ansi-styles "^5.0.0"
|
ansi-styles "^5.0.0"
|
||||||
react-is "^17.0.1"
|
react-is "^17.0.1"
|
||||||
|
|
||||||
prismjs@^1.25.0:
|
prismjs@^1.26.0:
|
||||||
version "1.25.0"
|
version "1.26.0"
|
||||||
resolved "https://registry.yarnpkg.com/prismjs/-/prismjs-1.25.0.tgz#6f822df1bdad965734b310b315a23315cf999756"
|
resolved "https://registry.npmjs.org/prismjs/-/prismjs-1.26.0.tgz#16881b594828bb6b45296083a8cbab46b0accd47"
|
||||||
integrity sha512-WCjJHl1KEWbnkQom1+SzftbtXMKQoezOCYs5rECqMN+jP+apI7ftoflyqigqzopSO3hMhTEb0mFClA8lkolgEg==
|
integrity sha512-HUoH9C5Z3jKkl3UunCyiD5jwk0+Hz0fIgQ2nbwU2Oo/ceuTAQAg+pPVnfdt2TJWRVLcxKh9iuoYDUSc8clb5UQ==
|
||||||
|
|
||||||
private@^0.1.8, private@~0.1.5:
|
private@^0.1.8, private@~0.1.5:
|
||||||
version "0.1.8"
|
version "0.1.8"
|
||||||
|
Loading…
Reference in New Issue
Block a user