寒士杰克 - 插件
type: channel
link: https://www.hansjack.com/tag/%E6%8F%92%E4%BB%B6/
items: Typecho插件：增强渲染MarkdownPlus
items: Vue3Admin: 一款必备的Typecho后台面板插件
items: 自制Obsidian插件发布文章

Typecho插件：增强渲染MarkdownPlus
type: item
date: 2026-04-01T11:26:16+00:00
description: 简单介绍MarkdownPlus是让Codex通过本站主题HansJack文章的渲染功能来剥离而出的Typecho插件，不确保你的主题能不能完美适配，不过添加了主题文章内容选中器。https://github.com/TGU-HansJack/MarkdownPlus主要功能提示块（alert）和引用块增强[!NOTE]111[!TIP]111[!IMPORTANT]111[!WARNING]111[!CAUTION]111并且支持折叠。行内语法增强!!剧透!!、++插入++、==高亮==、{字:注音}嵌入短代码{% youtube %}、{% bilibili %}、{% video %}、{% iframe/embed %}、{% comment %}Onebox 卡片段落里单独 URL 自动卡片化；GitHub repo/issue/PR 会调用 GitHub API 补全信息https://github.com/VintageStory-Community/vintagestory-forum-cnhttps://github.com/scgm0/MVL/pull/4https://github.com/VintageStory-Community/vintagestory-forum-cn/blob/main/README.md图片增强独立图片段落转 figure + figcaption，并自动 loading="lazy"代码块增强复制按钮、超过 10 行可折叠class Plugin implements PluginInterface { private const VERSION = '1.0.2'; private static $frontRendered = false; public static function activate() { \Typecho\Plugin::factory('Widget_Archive')->footer = [__CLASS__, 'renderFooter']; return _t('MarkdownPlus 已启用'); } public static function deactivate() { } public static function config(Form $form) { $selector = new Text( 'contentSelector', null, '.post-content, .post_content', _t('文章内容容器选择器'), _t('支持多个 CSS 选择器，使用英文逗号分隔。留空时默认匹配 default / OneBlog 的正文容器。') ); $form->addInput($selector); } public static function personalConfig(Form $form) { } private static function cut($text, $len) { if (function_exists('mb_substr')) { return mb_substr((string) $text, 0, (int) $len); } return substr((string) $text, 0, (int) $len); } private static function getConfig() { $defaults = [ 'contentSelector' => '.post-content, .post_content', ]; try { $raw = \Helper::options()->plugin('MarkdownPlus')->toArray(); if (!is_array($raw)) { $raw = []; } } catch (\Throwable $e) { $raw = []; } $cfg = array_merge($defaults, $raw); $selector = trim((string) ($cfg['contentSelector'] ?? '')); $selector = str_replace(["\r\n", "\r", "\n"], ' ', $selector); $selector = preg_replace('/\s{2,}/u', ' ', $selector); $selector = trim((string) $selector); if ($selector === '') { $selector = $defaults['contentSelector']; } $cfg['con…

Vue3Admin: 一款必备的Typecho后台面板插件
type: item
date: 2026-02-13T03:03:00+00:00
description: 1、制作背景和功能预览https://github.com/mx-space/mx-admin界面参考与布局实现：Vue3Admin 的后台视觉与交互中，存在基于 mx-admin 的结构化参考与适配实现。采纳内容：侧边栏/内容区变量体系（--sidebar-width、--page-bg、--content-shadow 等）、折叠与移动端遮罩布局思路、Toast 的 sonner 风格层次、评论页 master-detail 分栏交互、Dashboard/Settings 的间距与尺寸标尺映射。调用点：Vue3Admin: admin/assets/app.css, admin/assets/app.js; 来源参考: mx-admin/src/components/sidebar/index.module.css, mx-admin/src/layouts/sidebar/index.module.css, mx-admin/src/layouts/sidebar/index.tsx, mx-admin/src/index.css目前Typecho的后台面板即便官方1.3.0依旧没有进行美化（轻量博客系统，也是合理之中）。于是，参考mx-space系统的后台面板界面进行制作适合现代化的后台面板插件：Vue3Adminhttps://github.com/TGU-HansJack/Vue3Admin-Typecho仪表盘数据统计：图表、数字、快捷操作博文编辑器基于Vditor编辑器，全屏编辑等文件管理提供网格布局预览提供友链页面和功能支持额外功能展示插件面板和守兔塔安全插件功能 免费开源Typecho守兔塔防御应用插件 - 李的日志维护进行备份、升级更加详细的路由数据更完善的AI功能更完善的数据存储本地化更细节的通知系统更好用的代码编辑器和自定义字段更细粒化的权限2、如何使用（1）安装与启用将插件目录上传到：usr/plugins/Vue3Admin/。在 Typecho 后台插件管理中启用 Vue3Admin。启用后插件会自动：复制插件内置的 admin/ 到站点根目录：/Vue3Admin/。修改站点根目录 config.inc.php 内的 __TYPECHO_ADMIN_DIR__ 为 /Vue3Admin/，从而“弃用”旧的 /admin/。完成后请通过 https://你的域名/Vue3Admin/ 访问新后台。（2）如何补救？修改config.inc.php文件中的：// admin directory (relative path) define('__TYPECHO_ADMIN_DIR__', '/Vue3Admin/');如果后台出现域名被截断，补齐域名即可，目前没有解决这个问题。（3）如何添加前台访客统计为了避免把后台面板请求计入统计，并兼容一些缓存/静态化场景，推荐在主题的 footer.php（或页面底部公共文件，建议放在 前）添加以下代码： 其他说明：记录字段：访问 IP（服务端获取）、访问路径（path）、文章 ID（cid，仅文章页）、访问设备（由 UA 解析）、访问时间（服务端时间）。上报端点：站点根目录的 /Vue3Admin/track.php（插件启用后会自动部署）。如果站点在反代/CDN 后，想显示真实访客 IP，请确保服务器正确传递 CF-Connecting-IP / X-Forwarded-For / X-Real-IP 等请求头。（4）插件的配置在插件设置中可配置：主色（Primary Color）：用于面板主题色（CSS 变量）。Vue3 CDN：默认使用 https://unpkg.com/。ECharts CDN：默认使用 https://cdn.jsdelivr.net/。如站点环境无法访问外网 CDN，请替换为自建静态资源地址。3、数据库相关介绍1.2.3版本之前（不包括1.2.3版本）：插件会自动创建/升级数据表（表前缀统一使用 v3a_，实际表名会拼接 Typecho 表前缀，例如 typecho_v3a_visit_log）。注：后续会将数据库转本地文件存储，避免数据库操作复杂或者其他安全问题。1.2.3版本后本地化数据，需要迁移操作！1.2.3版本开始替换本地数据，之前的版本如何迁移数据？可以通过维护/升级底部的旧数据迁移进行删除旧数据库、然后生成目前本地数据（如图）4、如何升级？请下载>=1.1.0版本！在后台面板的左侧栏中，底部维护下拉菜单有升级页面，点击进入，右上角的蓝色下载图标按钮就是升级按钮。必要的时候可以设置升级决策：严格升级 不以 release 为准，直接对比 GitHub 默认分支最新 commit。全局替换 升级时同步替换站点根目录 /…

自制Obsidian插件发布文章
type: item
date: 2025-08-21T05:16:00+00:00
description: 前言很显然，这篇文章是使用我自己制作的obsidian插件发布的文章，既可以使用手机版本的obsidian也可以在windows上面使用obsidian进行发送文章，先设置obdsidian插件比如xmlrpc的链接，账号密码等。一、插件说明为了防止文件上传出错，我并没有加文件上传的逻辑，不过可以使用piclist等插件继续上传文件。1、功能要点使用 XML-RPC 对接 Typecho，支持：标题 title自定义路径 slug标签 tags（数组或逗号分隔）分类 categories（可选）文章内容（当前笔记正文）是否草稿 draft（发布时 publish=false）首次发布会把返回的 cid 写回到笔记 Frontmatter（默认键名 cid），二次发布自动改为 editPost 更新。支持自行映射 Frontmatter 字段名（如把 tags 改成 blogtags 等）。2、安装与配置插件文件夹名：typecho-xmlrpc-publisher下载最新版本，解压 ZIP，把整个 typecho-xmlrpc-publisher 文件夹放到你的库目录：<你的库>/.obsidian/plugins/在 Obsidian 设置 → 第三方插件，启用 Typecho XML-RPC Publisher。typecho需要的配置：obsidian最新版本配置：版本下载最新1.3版本(1.0是打包文件，后续只更新main.js文件，只发布代码，代码在更新内容后面)，添加mainifest.json文件在插件里面：{ "id": "typecho-xmlrpc-publisher", "name": "Typecho XML-RPC Publisher", "version": "1.3.0", "minAppVersion": "1.5.0", "description": "通过 XML-RPC （MetaWeblog） 将当前笔记发布到 Typecho 博客。支持标题、slug、标签、类别、草稿；可选是否更新发布时间；支持强制同步服务器发布时间。", "author": "Hans J. Han", "authorUrl": "https://www.hansjack.com", "isDesktopOnly": false, "js": "main.js" }最终插件文件夹有：如果样式错乱，可以添加styles.css文件：.post-card, .comment-card { border: 1px solid var(--background-modifier-border); border-radius: 6px; padding: 10px; margin-bottom: 10px; } .post-header, .comment-header { display: flex; justify-content: space-between; align-items: center; } .post-title { font-weight: bold; color: var(--text-accent); text-decoration: none; } .post-meta { font-size: 12px; color: var(--text-muted); margin-top: 4px; } .post-actions, .comment-actions { display: flex; gap: 6px; /* 按钮间距 */ } .action-btn { padding: 2px 8px; border-radius: 4px; border: 1px solid var(--background-modifier-border); background: var(--interactive-normal); cursor: pointer; } .action-btn:hover { background: var(--interactive-hover); }其他配置默认即可：参考我的Typecho配置：Endpoint：Typecho 的 XML-RPC 入口（常见为 https://你的站点/action/xmlrpc，需后台启用 MetaWeblog/XML-RPC 功能）Username / Password：Typecho 后台账号Default Blog ID：填 0Frontmatter 映射：可修改 title/slug/tags/categories/draft/cid 对应的键名3、使用说明参考文章：--- title: slug: tags: categorie…