Skip to content

benzBrake/TeXtend

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 
 
 

Repository files navigation

TeXtend

Typecho 全能扩展插件

License Typecho PHP

TeXtend 是一款功能强大的 Typecho 博客插件,提供 Markdown 语法扩展、内容增强、文章统计和媒体嵌入等全方位功能。

功能特性

Markdown 扩展语法

  • Fence Block - 自定义内容块系统,支持多种类型:
    • :::tip - 提示块
    • :::warning - 警告块
    • :::danger - 危险块
    • :::info - 信息块
    • :::success - 成功块
    • :::tabs - 标签页
    • :::details - 折叠详情
    • :::raw - 原始输出
    • :::grid - 网格布局
    • :::masonry - 瀑布流布局

内容增强

  • GitHub/Gitee 仓库卡片 - 自动将仓库链接转换为精美的信息卡片
  • 智能视频嵌入 - 支持直接粘贴视频链接自动转换为播放器
    • YouTube
    • Vimeo
    • Bilibili(支持 BV/AV 号)
    • 本地视频文件(mp4, webm, ogg 等)

短代码支持(Deprecated)

这是以前 AAEditor 支持的短代码,这里 fallback 支持

[x-player src="视频URL" autoplay="off" /]
[x-bilibili id="BV1xx" p="1" /]

文章统计

  • 浏览数统计(Cookie 防刷)
  • 点赞功能(AJAX 交互)
  • 可选在文章末尾自动附加统计模块

后台增强

  • 编辑器工具栏快捷插入 Fence Block

安装

方式一:手动安装

  1. 下载最新版本 Releases
  2. TeXtend 文件夹上传到 /usr/plugins/ 目录
  3. 在后台 控制台 → 插件 中启用 TeXtend

方式二:Git 克隆

cd /usr/plugins
git clone https://github.com/benzBrake/TeXtend.git

配置

插件启用后,可在 设置 → TeXtend 中配置:

选项 说明
Markdown 解析器 选择使用内置 HyperDown 或插件扩展版本
删除统计数据 禁用插件时是否删除统计相关数据
文章末尾附加统计 自动在文章末尾添加浏览和点赞功能

使用指南

Fence Block 语法

Fence Block 是 TeXtend 的核心功能之一,提供丰富的内容块和交互组件。

完整文档:详见 docs/FENCE_FORMAT.md 获取完整的 fence 类型说明、语法规范及扩展开发指南。

快速示例

:::tip 标题(可选)
这是一条提示信息
:::

:::warning
这是一条警告信息
:::

:::tabs
===+ 默认标签
标签内容1

=== 其他标签
标签内容2
:::

:::details:open 默认展开
详情内容
:::

GitHub/Gitee 卡片

直接在文章中粘贴仓库链接,插件会自动转换:

访问 [https://github.com/user/repo](https://github.com/user/repo) 查看更多

视频嵌入

方式一:直接粘贴链接

https://www.youtube.com/watch?v=xxxxx
https://www.bilibili.com/video/BV1xx

方式二:使用短代码

[x-bilibili id="BV1xx" p="2" autoplay="off" /]

统计调用

在模板中调用浏览数和点赞数:

<?php $this->callViewsNum('%d 次浏览'); ?>
<?php $this->callLikesNum('%d 人点赞'); ?>

项目结构

TeXtend/
├── assets/
│   ├── app.css       # 全局样式
│   ├── parser.js     # 前端解析器
│   ├── editor.js     # 后台编辑器增强
│   ├── masonry.pkgd.min.js  # Masonry 布局库
│   ├── plyr.css      # 视频播放器样式
│   └── plyr.js       # 视频播放器脚本
├── docs/
│   └── FENCE_FORMAT.md  # Fence 格式规范文档
├── HyperDown.php     # Markdown 语法解析器
├── Content.php       # HTML 内容解析器
├── Stat.php          # 统计功能
├── Action.php        # AJAX 操作处理
├── Player.php        # 视频播放器代理
└── Plugin.php        # 插件入口

开发

新增 Fence Block 类型

添加新的 fence 类型时,请遵循以下步骤:

  1. HyperDown.phpparseFence() 方法中添加类型处理逻辑
  2. assets/app.css 中添加对应样式
  3. assets/parser.js 中添加前端交互(如需要)
  4. 更新 docs/FENCE_FORMAT.md 文档

Fence 格式规范:详见 docs/FENCE_FORMAT.md,该文档定义了所有支持的 fence 类型语法及扩展开发指南。

开发规范详见 CLAUDE.md

常见问题

与其他插件的兼容性

  • 不能与 TeStat 插件同时使用(功能重叠)
  • 建议禁用其他 Markdown 解析相关插件

静态资源加载异常

插件会自动为静态资源添加 hash 版本号,如遇缓存问题请清除浏览器缓存。

PJAX 兼容

插件已内置 PJAX 兼容处理,前端组件会在页面切换后自动重新加载。

更新日志

v1.0.1

  • 新增 tabs 类型的 fence,支持多标签页切换
  • 新增 details 类型的 fence,支持折叠详情面板
  • 新增 fence 格式规范文档 docs/FENCE_FORMAT.md
  • 完善 README.md,添加详细的 fence 使用说明和开发指南
  • 修复 formatNum 函数报错问题
  • 修复正文页无法输出统计字段的问题

v1.0.0

  • 初始版本发布
  • 支持 Fence Block 语法(tip、warning、danger、info、success)
  • 集成 GitHub/Gitee 卡片
  • 支持多平台视频嵌入
  • 浏览数和点赞统计

贡献

欢迎提交 Issue 和 Pull Request!

许可

MIT License

作者

Ryan - doufu.ru

鸣谢

About

Typecho 全能扩展插件

Resources

Stars

Watchers

Forks

Packages

No packages published