Typecho ShortCode 短代码插件
Typecho ShortCode 短代码插件
[TOC]
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]自动生成目录功能
- 支持短代码转义(在短代码前加上反斜杠)
这个站已经变成typecho教程站了么
回复 @广树:
不不不,只是前段时间又在折腾Typecho(肯定不是水)
我用了快三年typecho,才记起来还有插件这个功能qwq
Typecho越来越多人使用,只是技术方面资源欠缺,有你这种爱好者相信Typecho会更强大
大佬,想问一下这个插件具体怎么用
回复 @ZD:
下面不是有栗子么
你这个栗子我都不知道加到哪里,悲剧。
回复 @枫叶:
抱歉哈,文章写得有点久,忘记自己举了两个栗子,上次回复时只记得有个“[TOC]自动生成目录”的栗子,就说只要写在 Markdown 里。
注册短代码是写在 PHP 文件里,比如主题下的 functions.php。
博主你好,能说下插件具体怎么使用吗?比如说自定义短代码需要在哪个文件里添加代码。是在插件文件里改还是在博客程序文件里改,我看你回复说在MarkDown里改,是哪个文件呢?刚玩Typecho很不熟悉
回复 @masy:
注册短代码是写在 PHP 文件里,比如主题下的 functions.php。
Markdown 是一种语法,是写文章用的,Typecho 默认启用,在 【控制台】-【个人设置】-【撰写设置】-【使用 Markdown 语法编辑和解析内容】。
文章写得有点久,忘记自己举了两个栗子,上次回复时只记得有个“[TOC]自动生成目录”的栗子,就说只要写在 Markdown 里。
回复 @小さな手は:
谢谢了,使用的话是类似[vidoe]链接地址[/video],这样用吗
回复 @masy:
嗯嗯,如果是用上面注册短代码的栗子
能注册那种标签卡嘛
回复 @倪殇秋雨:
什么标签卡呢?
回复 @小さな手は:
类似这里面的https://get233.com/archives/mirages-shortcode-docs.html
回复 @小さな手は:
那个标签卡,我特想要那个功能,放视频时候可以分类
回复 @倪殇秋雨:
抱歉哈,没有哦。以前也有人问过
回复 @小さな手は:
好的,谢谢。我找了好久都没有找到插件
短代码这部分非常迫切需要个详细的例子和具体步骤,代码小白一直没搞懂functions.php里面具体要怎么写QAQ
2021年了,再来打个卡,你举个那例子。我试了下,至今报错。
例子写了,但是没有编辑器里使用的例子。如何用短代码去使用你的注册短代码。。。哭了我
报错语句如下:
Class 'ShortCode' not found
syntax error, unexpected 'ShorCode' (T_STRING), expecting '('
回复 @枫叶:
我改了一下代码,应该没问题了
博主你好,麻烦问下这个是怎么使用的呢,上传插件并启用后,在哪里能够设置短代码呢,求一份详细的食用说明。
回复 @不吃猫的鱼:
插件只有 [video] [audio] [TOC],要自定义的话直接写在插件代码里
回复 @MoeShin:
Class 'ShortCode' not foundsyntax error, unexpected 'ShorCode' (T_STRING), expecting '('
出行错误,之前你说代码已改,好像没有什么作用
回复 @李:
能具体到哪一行吗