LuRenJiasWorld / WP-Editor.md

或许这是一个WordPress中最好,最完美的Markdown编辑器
https://wordpress.org/plugins/wp-editormd/
GNU General Public License v3.0
744 stars 87 forks source link

[BUG]贴Latex代码的时候报错 #578

Open dryangyq opened 1 year ago

dryangyq commented 1 year ago

BUG描述 | Describe the bug

为了显示公式,我开启了KaTex功能,但是这样我在文章中贴代码的时候,前段就报错了。

```latex
\begin{document}

前端错误: ParseError: KaTeX parse error: No such environment: document at position 7: \begin{̲d̲o̲c̲u̲m̲e̲n̲t̲}̲

LuRenJiasWorld commented 1 year ago

你好,本插件接入的 KaTeX 只支持有限的 LaTeX 语法:https://katex.org/

dryangyq commented 1 year ago

你好,本插件接入的 KaTeX 只支持有限的 LaTeX 语法:https://katex.org/

不是,我的本意是要贴latex的代码,不是要让KaTex去执行这个代码。有什么办法吗?

LuRenJiasWorld commented 1 year ago

你好,本插件接入的 KaTeX 只支持有限的 LaTeX 语法:https://katex.org/

不是,我的本意是要贴latex的代码,不是要让KaTex去执行这个代码。有什么办法吗?

了解了,暂时没有很好的办法,后面我新增一个 latex-code 的语言类型,用于和 LaTeX 公式区分开来。 有一个 Hack 的解决方案,开启 HTML 解析后,使用如下 HTML 代码来插入 LaTeX 类型的代码高亮:

<pre class=" line-numbers language-latex"><code class="  language-latex">\begin{document}</code></pre>
dryangyq commented 1 year ago

你好,本插件接入的 KaTeX 只支持有限的 LaTeX 语法:https://katex.org/

不是,我的本意是要贴latex的代码,不是要让KaTex去执行这个代码。有什么办法吗?

了解了,暂时没有很好的办法,后面我新增一个 latex-code 的语言类型,用于和 LaTeX 公式区分开来。 有一个 Hack 的解决方案,开启 HTML 解析后,使用如下 HTML 代码来插入 LaTeX 类型的代码高亮:

<pre class=" line-numbers language-latex"><code class="  language-latex">\begin{document}</code></pre>

好的,感谢。 另外,支持的代码里面,我看没有text啊,就是纯文本的,有时候会贴一些错误日志什么的,感觉用纯文本会好一点。

LuRenJiasWorld commented 1 year ago

你好,本插件接入的 KaTeX 只支持有限的 LaTeX 语法:https://katex.org/

不是,我的本意是要贴latex的代码,不是要让KaTex去执行这个代码。有什么办法吗?

了解了,暂时没有很好的办法,后面我新增一个 latex-code 的语言类型,用于和 LaTeX 公式区分开来。 有一个 Hack 的解决方案,开启 HTML 解析后,使用如下 HTML 代码来插入 LaTeX 类型的代码高亮:

<pre class=" line-numbers language-latex"><code class="  language-latex">\begin{document}</code></pre>

好的,感谢。 另外,支持的代码里面,我看没有text啊,就是纯文本的,有时候会贴一些错误日志什么的,感觉用纯文本会好一点。

可以直接不提供语言类型,如: image 看看这样能否满足纯文本粘贴的需求。

dryangyq commented 1 year ago

不行,好像code不带class之后,就没有样式了。跟空白文本没区别。 image

LuRenJiasWorld commented 1 year ago

不行,好像code不带class之后,就没有样式了。跟空白文本没区别。 image

这个是因为你的主题没有带纯 pre 标签的样式,可以在 CodePen 等网站搜索 CSS Code block 等关键词,找一下相关的样式对其进行美化。

LuRenJiasWorld commented 1 year ago

最简单的样式(可以粘到自定义CSS里试一下):

code {
    padding: 2px 4px;
}

pre, code {
    background: #f8f8f8;
    font-family: Menlo, Monaco, Consolas, "Lucida Console", "Courier New", monospace;
    font-size: .92857em;
}

pre {
    margin: 2em 0;
    overflow: auto;
    background: none;
    border: 1px solid #ddd;
}

pre code {
    padding: 0;
    display: block;
}
dryangyq commented 1 year ago

我之前有的,但是和选择的主题不匹配,比如我选了黑色背景,但是text因为没有相关class,背景就不是黑色,和主题不匹配,我专门把主题里面的相关代码全删除了,才有了统一的效果。 10AA085E

dryangyq commented 1 year ago

主题的css和插件里面的css,融合到一起,有一种很奇怪的视觉效果。所以我就把主题里面的都删除了。

LuRenJiasWorld commented 1 year ago

我之前有的,但是和选择的主题不匹配,比如我选了黑色背景,但是text因为没有相关class,背景就不是黑色,和主题不匹配,我专门把主题里面的相关代码全删除了,才有了统一的效果。 10AA085E

这样改动工作量确实不小,插件没有提供默认样式也是基于这个原因。 其实直接使用 text (虽然不存在)也是可以的,只是会报一个 404 错误,我后续尝试加上这个假类型,空文件,避免 404 就好。

dryangyq commented 1 year ago

没错,我现在就是用text替代,有一个404,有些插件,我看用的是raw来表示纯文本的。这个404只要能去掉也可以用,没问题。我用joplin写笔记,用的就是text,直接复制过来也能用。