Typecho ShortCode 短代码插件

Typecho ShortCode 是一款用于自定义短代码的Typecho插件
GitHub 地址 | GitHub 下载

注意:
由于Typecho目前自带的MarkDown解析不支持许多HTML标签(比如 voide audio 标签等等),可能影响你使用ShortCode短代码
建议使用其他的MarkDown解析,例如:Parsedown插件)等等

函数说明

使用以下函数来自定义短代码,均为公开静态

ShortCode::set

注册短代码,返回一个ShortCode实例

参数名 类型 说明
names mixed 短代码名称,可以一个字符串或字符串数组
callbacks mixed 短代码对应回调函数,可以一个回调函数或回调函数数组
overried bool 覆盖已存在的短代码设置
可选,默认false

ShortCode::get

获取已注册短代码列表,返回数组,格式例如:

array{
    [短代码名称] => 回调函数或回调函数名
    ...
}

ShortCode::remove

移除已注册的短代码,返回一个ShortCode实例

参数名 类型 说明
names string 短代码名称
callbacks callback 只有回调函数相同,短代码才会被移除
可选,默认null

ShortCode::removeAll

移除所有已注册短的代码,返回一个ShortCode实例

ShortCode::isForce

是否强制处理内容,返回布尔值,当前设置
使用此插件后Markdown或AutoP失效,使用此函数,并传入true

参数名 类型 说明
bool bool 可选,默认null

ShortCode::handle

字符串处理,返回字符串

参数名 类型 说明
content string 要处理的字符串

短代码回调函数参数说明

参数名 类型 说明
name string 短代码名称
attr string 短代码属性
text string 短代码内容
code string 整条短代码内容

注册短代码栗子

#1 一个对一个

ShortCode::set('video',function ShorCode($name,$attr,$text,$code){
    return '<video controls="controls"'.$attr.'><source src="'.$text.'"></video>';
});

#2 多个对一个

ShortCode::set(['video','audio'],'ShorCode');
function ShorCode($name,$attr,$text,$code){
    switch($name){
        case 'video':
            return '<video controls="controls"'.$attr.'><source src="'.$text.'"></video>';
        case 'audio':
            return '<audio controls="controls"'.$attr.'><source src="'.$text.'"></audio>';
    }
    return $code;
}

[TOC]自动生成目录说明

上下不要有文本,自己占一行,与<!--import-->写法一样
在文章列表里不显示也不生成目录

举个栗子

MarkDown:

[TOC]
# 文章大标题
## 文章中标题
### 文章小标题
...

HTML:

<div class="TOC">
    <span>目录</span>
    <ol>
        <li>
            <a href="#TOC0">文章大标题</a>
            <ol>
                <li>
                    <a href="#TOC1">文章中标题</a>
                    <ol>
                        <li>
                            <a href="#TOC2">文章小标题</a>
                        </li>
                    </ol>
                </li>
            </ol>
        </li>
    </ol>
</div>
<h1 id="TOC0">文章大标题</h1>
<h2 id="TOC1">文章中标题</h2>
<h3 id="TOC2">文章小标题</h3>
<p>...</p>

更新

2018.03.24

  • 添加[TOC]自动生成目录功能
  • 支持短代码转义(在短代码前加上反斜杠)

支付宝红包

支付宝

微信

标签: php, typecho

已有 26 条评论

  1. 不吃猫的鱼 不吃猫的鱼 访客 Chrome Windows 10 回复

    博主你好,麻烦问下这个是怎么使用的呢,上传插件并启用后,在哪里能够设置短代码呢,求一份详细的食用说明。

    1. MoeShin MoeShin 博主 Chrome Windows 10 回复

      回复 @不吃猫的鱼

      插件只有 [video] [audio] [TOC],要自定义的话直接写在插件代码里

      1. 李 访客 Safari Iphone 回复

        回复 @MoeShin

        Class 'ShortCode' not found
        syntax error, unexpected 'ShorCode' (T_STRING), expecting '('
        出行错误,之前你说代码已改,好像没有什么作用
        1. MoeShin MoeShin 博主 Chrome Windows 10 回复

          回复 @李

          能具体到哪一行吗

  2. 枫叶 枫叶 访客 Chrome Windows 10 回复

    报错语句如下:
    Class 'ShortCode' not found

    syntax error, unexpected 'ShorCode' (T_STRING), expecting '('

    1. MoeShin MoeShin 博主 Chrome Windows 10 回复

      回复 @枫叶

      我改了一下代码,应该没问题了

  3. 枫叶 枫叶 访客 Chrome Windows 10 回复

    2021年了,再来打个卡,你举个那例子。我试了下,至今报错。
    例子写了,但是没有编辑器里使用的例子。如何用短代码去使用你的注册短代码。。。哭了我

  4. 祈里 祈里 访客 Chrome Windows 10 回复

    短代码这部分非常迫切需要个详细的例子和具体步骤,代码小白一直没搞懂functions.php里面具体要怎么写QAQ

  5. 倪殇秋雨 倪殇秋雨 访客 Chrome Windows 10 回复

    能注册那种标签卡嘛

    1. 小さな手は 小さな手は 博主 Chrome Windows 10 回复

      回复 @倪殇秋雨

      什么标签卡呢?

      1. 倪殇秋雨 倪殇秋雨 访客 Chrome Windows 10 回复

        回复 @小さな手は

        那个标签卡,我特想要那个功能,放视频时候可以分类

        1. 小さな手は 小さな手は 博主 Chrome Windows 10 回复

          回复 @倪殇秋雨

          抱歉哈,没有哦。以前也有人问过

          1. 倪殇秋雨 倪殇秋雨 访客 Chrome Windows 10 回复

            回复 @小さな手は

            好的,谢谢。我找了好久都没有找到插件

      2. 倪殇秋雨 倪殇秋雨 访客 Chrome Windows 10 回复

        回复 @小さな手は

        类似这里面的https://get233.com/archives/mirages-shortcode-docs.html

添加新评论

注意:已开启评论过滤器,无中文无法评论!
泡泡表情