typecho 添加<mark>标记
通过修改typecho源代码,让解析器支持插入两个等号(=)实现<mark>标签功能。
但修改后发现还不如直接修改css代码,因为所有解析器都支持用`内容`实现行内标记,生成单独的<code>内容</code>
标签,所以可修改css代码实现高亮。修改时注意要和代码块<pre><code>内容<code><pre>
标签区分。
💤结论:不是很实用的功能,还是建议直接修改css样式。
支持高亮 <mark> 标签支持
1、php文件
修改 var\Utils\HyperDown.php
文件,在 private function parseInlineCallback(string $text)
函数返回前添加替换规则:
# 增加标记功能 inowboy@outlook.com 2025/6/19
$text = preg_replace_callback(
"/(={2})(.+?)\\1/",
function ($matches) {
return '<mark>' .
$this->parseInlineCallback($matches[2]) .
'</mark>';
},
$text
);
return $text;
2、js文件(后台预览)
修改admin/js/hyperdown.js
文件,查找
.replace(/(~{2})((?:.|\r)+?)\1/gm,(...t)=>"<del>"+this.parseInlineCallback(t[2])+"</del>")
后面增加一个替换replace语句
.replace(/(~{2})((?:.|\r)+?)\1/gm,(...t)=>"<del>"+this.parseInlineCallback(t[2])+"</del>")
.replace(/(={2})((?:.|\r)+?)\1/gm,(...t)=>"<mark>"+this.parseInlineCallback(t[2])+"</mark>")
替换完成后,就可以直接看效果。目前Typecho更新缓慢,社区支持度不足,很难坚持下去。