fix:安卓端渲染失败
This commit is contained in:
parent
d1db63d7d3
commit
f28502348d
113
卡片正面内容模板.txt
113
卡片正面内容模板.txt
|
|
@ -1,33 +1,32 @@
|
|||
<div class="md-content">
|
||||
{{Front}}
|
||||
{{Front}}
|
||||
</div>
|
||||
|
||||
|
||||
<script>
|
||||
var getResources = [
|
||||
getScript("_markdown-it.min.js", "https://lf6-cdn-tos.bytecdntp.com/cdn/expire-1-M/markdown-it/12.3.2/markdown-it.min.js"),
|
||||
getScript("_highlight.min.js", "https://lf26-cdn-tos.bytecdntp.com/cdn/expire-1-M/highlight.js/11.4.0/highlight.min.js"),
|
||||
getScript("https://lf6-cdn-tos.bytecdntp.com/cdn/expire-1-M/markdown-it/12.3.2/markdown-it.min.js"),
|
||||
getScript("https://lf26-cdn-tos.bytecdntp.com/cdn/expire-1-M/highlight.js/11.4.0/highlight.min.js"),
|
||||
];
|
||||
Promise.all(getResources).then(() => {
|
||||
parseMarkDownFn();
|
||||
})
|
||||
|
||||
function getScript(path, altURL) {
|
||||
return new Promise((resolve, reject) => {
|
||||
let script = document.createElement("script");
|
||||
script.onload = resolve;
|
||||
script.onerror = function () {
|
||||
let script_online = document.createElement("script");
|
||||
script_online.onload = resolve;
|
||||
script_online.onerror = reject;
|
||||
script_online.src = altURL;
|
||||
document.head.appendChild(script_online);
|
||||
}
|
||||
script.src = path;
|
||||
document.head.appendChild(script);
|
||||
// 加载资源并初始化
|
||||
Promise.all(getResources)
|
||||
.then(() => {
|
||||
parseMarkDownFn();
|
||||
})
|
||||
}
|
||||
.catch(error => {
|
||||
consoleLog('Failed to load required resources: ' + error);
|
||||
});
|
||||
|
||||
function getScript(url) {
|
||||
return new Promise((resolve, reject) => {
|
||||
const script = document.createElement("script");
|
||||
script.onload = resolve;
|
||||
script.onerror = () => reject(new Error(`Failed to load script from ${url}`));
|
||||
script.src = url;
|
||||
document.head.appendChild(script);
|
||||
});
|
||||
}
|
||||
// 在anki中通过窗口查看调试信息 没控制台啊
|
||||
function consoleLog(str) {
|
||||
var div = document.createElement('div')
|
||||
|
|
@ -54,44 +53,42 @@
|
|||
Object.assign(document.createElement('textarea'), { innerHTML }).value
|
||||
|
||||
// 解析(入口main方法)
|
||||
// 解析(入口main方法)
|
||||
var parseMarkDownFn = () => {
|
||||
const md = markdownit({
|
||||
html: true, // 若为 false 将导致 anki 自带的公式渲染失效。
|
||||
linkify: true,
|
||||
typographer: true,
|
||||
breaks: true,
|
||||
highlight: function (str, lang) {
|
||||
if (lang && hljs.getLanguage(lang)) {
|
||||
try {
|
||||
return hljs.highlight(str, { language: lang }).value
|
||||
} catch (__) {}
|
||||
}
|
||||
var parseMarkDownFn = () => {
|
||||
const md = markdownit({
|
||||
html: true, // 若为 false 将导致 anki 自带的公式渲染失效。
|
||||
linkify: true,
|
||||
typographer: true,
|
||||
breaks: true,
|
||||
highlight: function (str, lang) {
|
||||
if (lang && hljs.getLanguage(lang)) {
|
||||
try {
|
||||
return hljs.highlight(str, { language: lang }).value
|
||||
} catch (__) { }
|
||||
}
|
||||
|
||||
return '' // use external default escaping
|
||||
},
|
||||
})
|
||||
document.querySelectorAll('.md-content').forEach((div, index) => {
|
||||
console.log('查找到的容器元素', div)
|
||||
// 需要去除首尾空格 不然markdown-it会解析错误
|
||||
var text = unescapeHTMLEntities(div.innerHTML).trim()
|
||||
console.log('text', text)
|
||||
// 清除br标签
|
||||
text = clearBR(text)
|
||||
// 👇关键核心md转换
|
||||
var html = md.render(text)
|
||||
var newDiv = document.createElement('div')
|
||||
var hr = document.createElement('hr')
|
||||
newDiv.innerHTML = html
|
||||
// 激活github-markdown-css
|
||||
newDiv.className = 'markdown-body'
|
||||
div.parentNode.insertBefore(newDiv, div.nextSibling)
|
||||
|
||||
index === 1 ? div.parentNode.insertBefore(hr, div.nextSibling) : null
|
||||
div.className = `x-${index}`
|
||||
div.style.display = 'none'
|
||||
// 不能从body直接插入元素 anki 不刷新的
|
||||
})
|
||||
}
|
||||
return '' // use external default escaping
|
||||
},
|
||||
})
|
||||
document.querySelectorAll('.md-content').forEach((div, index) => {
|
||||
console.log('查找到的容器元素', div)
|
||||
// 需要去除首尾空格 不然markdown-it会解析错误
|
||||
var text = unescapeHTMLEntities(div.innerHTML).trim()
|
||||
console.log('text', text)
|
||||
// 清除br标签
|
||||
text = clearBR(text)
|
||||
// 👇关键核心md转换
|
||||
var html = md.render(text)
|
||||
var newDiv = document.createElement('div')
|
||||
var hr = document.createElement('hr')
|
||||
newDiv.innerHTML = html
|
||||
// 激活github-markdown-css
|
||||
newDiv.className = 'markdown-body'
|
||||
div.parentNode.insertBefore(newDiv, div.nextSibling)
|
||||
|
||||
index === 1 ? div.parentNode.insertBefore(hr, div.nextSibling) : null
|
||||
div.className = `x-${index}`
|
||||
div.style.display = 'none'
|
||||
// 不能从body直接插入元素 anki 不刷新的
|
||||
})
|
||||
}
|
||||
</script>
|
||||
|
|
|
|||
Loading…
Reference in New Issue