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更新缓慢,社区支持度不足,很难坚持下去。

xuechun
THE END

标签: typecho

本作品采用 知识共享署名-相同方式共享 4.0 国际许可协议 进行许可。


相关文章