fix:安卓端渲染失败

This commit is contained in:
港島小叔子 2025-04-11 18:41:34 +08:00 committed by GitHub
parent a8fafb73fc
commit d1db63d7d3
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
1 changed files with 52 additions and 30 deletions

View File

@ -1,39 +1,61 @@
<div class="md-content"> <div class="md-content">
{{Front}} {{Front}}
</div> </div>
<!-- https://github.com/markdown-it/markdown-it -->
<script defer src="https://lf6-cdn-tos.bytecdntp.com/cdn/expire-1-M/markdown-it/12.3.2/markdown-it.min.js"></script>
<!-- 代码高亮库 --> <script>
<script defer src="https://lf26-cdn-tos.bytecdntp.com/cdn/expire-1-M/highlight.js/11.4.0/highlight.min.js"></script> var getResources = [
<script defer> getScript("_markdown-it.min.js", "https://lf6-cdn-tos.bytecdntp.com/cdn/expire-1-M/markdown-it/12.3.2/markdown-it.min.js"),
'use strict' getScript("_highlight.min.js", "https://lf26-cdn-tos.bytecdntp.com/cdn/expire-1-M/highlight.js/11.4.0/highlight.min.js"),
// 在anki中通过窗口查看调试信息 没控制台啊 ];
function consoleLog(str) { Promise.all(getResources).then(() => {
var div = document.createElement('div') parseMarkDownFn();
div.innerHTML = str })
document.body.appendChild(div)
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);
})
}
// 清除br标签 // 在anki中通过窗口查看调试信息 没控制台啊
// anki自动生成的<br>全部干掉 严格按照原生换行来写 function consoleLog(str) {
var clearBR = (str) => { var div = document.createElement('div')
str = str.replace(/<br>/g, '\r\n') div.innerHTML = str
return str document.body.appendChild(div)
} }
// 清除空格实体字符 // 清除br标签
var clearBlankNbsp = (str) => { // anki自动生成的<br>全部干掉 严格按照原生换行来写
str = str.replace(/&nbsp;/g, ' ') var clearBR = (str) => {
return str str = str.replace(/<br>/g, '\r\n')
} return str
}
// 反转义 HTML 实体,确保卡片中所有的符号正常 // 清除空格实体字符
// Eg. #include <stdio.h> var clearBlankNbsp = (str) => {
var unescapeHTMLEntities = (innerHTML) => str = str.replace(/&nbsp;/g, ' ')
Object.assign(document.createElement('textarea'), { innerHTML }).value return str
}
// 解析入口main方法 // 反转义 HTML 实体,确保卡片中所有的符号正常
var parseMarkDownFn = () => { // Eg. #include <stdio.h>
var unescapeHTMLEntities = (innerHTML) =>
Object.assign(document.createElement('textarea'), { innerHTML }).value
// 解析入口main方法
// 解析入口main方法
var parseMarkDownFn = () => {
const md = markdownit({ const md = markdownit({
html: true, // 若为 false 将导致 anki 自带的公式渲染失效。 html: true, // 若为 false 将导致 anki 自带的公式渲染失效。
linkify: true, linkify: true,
@ -71,5 +93,5 @@
// 不能从body直接插入元素 anki 不刷新的 // 不能从body直接插入元素 anki 不刷新的
}) })
} }
parseMarkDownFn();
</script> </script>