TiddlyWiki5 bin 脚本指南:用 serve / test / lazy 自动化本地服务器与测试流程
前端后端【免费下载链接】TiddlyWiki5A self-contained JavaScript wiki for the browser, Node.js, AWS Lambda etc.项目地址https://gitcode.com/gh_mirrors/ti/TiddlyWiki5点击查看免费下载本篇技术指南围绕 TiddlyWiki5 仓库根目录下bin文件夹中的自动化脚本展开详细介绍serveHTTP 服务、test服务端与浏览器测试、lazy图片懒加载服务三个核心脚本的用法、参数含义与底层调用链。读者阅读后将掌握如何在本仓库中一键启动 tw5.com 服务器、如何运行官方测试套件以及如何基于这些脚本改造出自己的构建与发布工具。一、bin目录概览脚本即文档化的命令行工具TiddlyWiki5 将日常开发中反复使用的命令行操作封装为一组 shell/batch 脚本统一存放在 bin 目录 中。这些脚本一方面用于自动化常见任务如启动服务、跑测试、发布版本另一方面也是开发者编写自己脚本的起点模板。除本文重点的serve、test、lazy外目录中还包含clean.sh、verbump.sh、npm-publish.sh、ci-test.sh、ci-push.sh、quick-bld.sh、readme-bld.sh、tankbld.sh、ginsu.sh、optimise-svgs.js、update-translation-from-html-file.sh等构建与发布辅助脚本。一个贯穿所有脚本的硬性约定是所有脚本都期望在仓库根目录下运行。因为脚本内部以相对路径如./tiddlywiki.js、./editions/...定位入口与配置脱离根目录执行会直接导致路径解析失败。二、serve以 HTTP 服务器方式运行 TiddlyWikiserve是最常用的脚本它把 TiddlyWiki5 以 Node.js HTTP 服务器形态启动默认加载tw5.com-serveredition 的内容。跨平台提供两个等价实现Unix/Linux/macOSbin/serve.shWindowsbin/serve.cmd2.1 基本用法与参数./bin/serve.sh -h ./bin/serve.sh [edition dir] [username] [password] [host] [port]Windows 下对应.\bin\serve.cmd -h .\bin\serve.cmd [edition dir] [username] [password] [host] [port]五个位置参数全部可选含义如下参数含义默认值edition diredition 目录的完整或相对路径./editions/tw5.com-serverusername用于签署编辑的用户名可为空串空password密码提供后启用 HTTP Basic 认证可为空串空hostIP 地址或主机名localhostport监听端口8080常用示例来自 serve.sh 的帮助文本# 指定 edition 与编辑用户名 ./bin/serve.sh ./editions/tw5.com-server username # 显式指定全部参数空用户名、空密码、localhost、端口 9090 ./bin/serve.sh ./editions/tw5.com-server localhost 9090脚本还支持-v显示版本号与-h显示帮助两个开关。serve.sh的版本号目前为 0.0.2这在 version() 函数 中定义。2.2 环境变量TW_SERVE_EDITION_PATH两个平台的脚本都尊重名为TW_SERVE_EDITION_PATH的环境变量如果该变量已设置且未在命令行提供 edition 参数则优先使用环境变量指定的 edition 目录命令行参数一旦提供则覆盖环境变量。这一点在 serve.sh 头部注释 与 参数处理逻辑 中均有体现serve.cmd也实现了相同规则见 serve.cmd 的 :main 段。# 先设置环境变量再直接运行脚本 export TW_SERVE_EDITION_PATH./editions/tw5.com-server ./bin/serve.sh脚本同时会对 edition 目录做存在性校验目录必须存在且包含tiddlywiki.info文件否则报错退出见 check_edition_directory()。2.3 底层命令与调用链serve脚本最终执行的是一条 Node.js 命令见 serve() 函数node ./tiddlywiki.js \ $1 \ --verbose \ --server $5 $:/core/save/all text/plain text/html $2 $3 $4这里调用的是仓库根目录的 tiddlywiki.js 入口它负责引导 Node.js 环境并执行命令行参数。--server是核心命令其参数序列为端口 根Tiddler 根渲染类型 根服务类型 用户名 密码 主机。从 core-server/commands/server.js 的实现可以看到这些参数最终被映射为服务器变量port← 第 1 个参数端口root-tiddler←$:/core/save/allroot-render-type←text/plainroot-serve-type←text/htmlusername/password← 认证信息host← 第 6 个参数其中$:/core/save/all是保存全部内容的渲染模板 Tiddler定义于 core/templates/save-all.tid它决定了 HTTP 根路径返回的 HTML 页面内容。2.4 启动后的行为与实验方式脚本说明文档给出了明确的使用路径运行脚本后在浏览器访问http://127.0.0.1:8080即可体验该配置。浏览器内所做的修改会通过 HTTP 请求传播到服务器可用浏览器开发者工具观察这些请求服务器再将变更同步到文件系统并在终端屏幕上逐条记录每次修改。这一交互闭环得以成立的前提是 edition 的tiddlywiki.info配置中同时启用了两个关键插件——tiddlywiki/tiddlyweb与tiddlywiki/filesystem脚本头部注释明确指出缺少它们将无法保存见 serve.sh 注释。默认的 editions/tw5.com-server/tiddlywiki.info 正是如此配置的它包含tiddlywiki/tiddlyweb、tiddlywiki/filesystem等插件并通过includeWikis引入../tw5.com的内容用default-tiddler-location指向实际 Tiddler 存放目录。三、test构建并运行测试套件test脚本用于在服务器端运行 TiddlyWiki 的测试 edition完成两类工作在 Node.js 端执行服务端测试构建出test.html供浏览器端运行同一套测试。实现见 bin/test.shnode ./tiddlywiki.js \ ./editions/test \ --verbose \ --version \ --rendertiddler $:/core/save/all test.html text/plain \ --test \ || exit 1 echo To run the tests in a browser, open editions/test/output/test.html脚本以 editions/test 为启动 edition依次执行--version输出版本信息便于在测试日志中定位版本--rendertiddler $:/core/save/all test.html text/plain把测试 wiki 渲染为test.html--test触发服务端测试运行。--test与--rendertiddler都是 TiddlyWiki 核心命令其实现位于 core-server/commands 目录。测试完成后浏览器端测试通过打开editions/test/output/test.html运行。Windows 版 bin/test.cmd 逻辑相同只是去掉了--version与提示输出。四、lazy带图片懒加载的 tw5.com 服务lazy脚本提供与serve类似的服务能力区别在于它对图片应用了 LazyLoading懒加载机制适合在开发调试时减轻带宽压力。./bin/lazy.sh username [password]Windows 对应.\bin\lazy.cmd username [password]从 bin/lazy.sh 的实现看它固定使用editions/tw5.com-server作为内容源端口固定为 8080并将根 Tiddler 换成了$:/core/save/lazy-imagesnode ./tiddlywiki.js \ editions/tw5.com-server \ --verbose \ --server 8080 $:/core/save/lazy-images text/plain text/html $1 $2 \ || exit 1$:/core/save/lazy-images是懒加载专用渲染模板见 core/templates/save-lazy-images.tid其渲染结果会把图片资源拆分为按需加载的形式页面先渲染骨架图片在滚动到视口附近时才发起请求。与serve.sh相比lazy.sh只接收用户名与密码两个参数注意 Windows 版 bin/lazy.cmd 中实际引用的是editions\serverUnix 版为editions/tw5.com-server两者在路径写法上存在差异跨平台迁移脚本时需留意。五、以bin脚本为模板扩展自己的工具bin目录的定位不仅是开箱即用的工具更是自定义脚本的起点。参考serve/test/lazy的写法可以总结出编写 TiddlyWiki5 命令行脚本的三个要点统一从仓库根目录启动脚本内部一律通过node ./tiddlywiki.js edition --参数...调用保证 edition 路径与输出路径可预测善用环境变量提供默认值如TW_SERVE_EDITION_PATH允许在不改脚本的前提下切换默认 edition命令行参数优先于环境变量的设计兼顾了灵活性与幂等性关注 edition 的插件组合服务端保存能力依赖tiddlywiki/tiddlyweb与tiddlywiki/filesystem插件创建新 edition 时应在 tiddlywiki.info 中显式声明而根 Tiddler$:/core/save/all、$:/core/save/lazy-images的选择直接决定 HTTP 根路径返回的页面形态。仓库中的 readme.md、package.json 与 core-server/commands 目录提供了完整的命令清单与实现参考结合 editions 下各 edition 的tiddlywiki.info配置即可快速搭建符合自己工作流的本地 TiddlyWiki 服务与测试流程。赞分享前端后端【免费下载链接】TiddlyWiki5A self-contained JavaScript wiki for the browser, Node.js, AWS Lambda etc.项目地址https://gitcode.com/gh_mirrors/ti/TiddlyWiki5点击查看免费下载相关推荐Unity Test辅助脚本使用指南自动化测试生成器实战Unity Test辅助脚本使用指南自动化测试生成器实战 Unity Test是专为C语言设计的轻量级单元测试框架特别适合嵌入式开发环境。除了核心的测试断言测试嵌入式Gumroad 的 AI 驱动测试执行深入解析 test-confidence 技能与 bin/test-confidence 脚本Gumroad 的 AI 驱动测试执行深入解析 test confidence 技能与 bin/test confidence 脚本 导读 本文围绕 Gumr后端前端电商BabelDOC PDF 翻译实战指南安装、运行与参数说明BabelDOC PDF 翻译实战指南安装、运行与参数说明 你手上有一份 200 页的英文论文需要一份能逐页对照阅读的中文版。BabelDOC PDF 翻译人工智能AI 应用NLP计算机视觉上一篇Halo-Theme-Hao主题国际化方案多语言支持实现与配置下一篇PhoneNumberKit性能基准测试与其他电话号码库的对比分析创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

HAR文件深度解析:用Chrome开发者工具还原每一次网络请求现场

HAR文件深度解析:用Chrome开发者工具还原每一次网络请求现场

如果你在Chrome开发者工具的Network面板里排查过线上问题,大概率有过这样的经历:问题刚刚复现,你赶紧截图,把状态码、耗时、请求URL发给后端同学,结果对方回一句"我这边日志里没收到这条请求"。截图只能证明…

2026/9/25 8:31:46 阅读更多 →
OpenCode + Android Studio 开发教程:用 TaoToken 统一 Key 打通 AI 辅助编码链路

OpenCode + Android Studio 开发教程:用 TaoToken 统一 Key 打通 AI 辅助编码链路

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/25 8:30:46 阅读更多 →
字母站全解析:从A站到Z站,一文看懂网络社区黑话

字母站全解析:从A站到Z站,一文看懂网络社区黑话

最近总有人在评论区问,说到网络社区时总听到“A站、B站、C站、D站、E站……Z站”,到底这些字母站分别指什么、有什么区别,为什么大家能随口报出一串字母,却没人能说出个标准答案。这事我熟。作为常年泡在各种亚文化社区的老年人&a…

2026/9/25 8:30:45 阅读更多 →

最新新闻

网络安全应急演练实战:从ATTCK场景设计到自动化处置剧本

网络安全应急演练实战:从ATTCK场景设计到自动化处置剧本

简介:这份文档资料面向政府机构、企事业单位的安全管理人员及专业应急处理人员,系统讲解网络安全应急响应预案的培训与演练方法,帮助组织在遭遇网络攻击、数据泄露等突发事件时做到临危不乱、快速处置。内容围绕演练目的、预案培训、实战演练…

2026/9/25 9:43:43 阅读更多 →
系统安全与网络安全:双线防御的落地实践与衔接技巧

系统安全与网络安全:双线防御的落地实践与衔接技巧

简介:《计算机系统安全与计算机网络安全》是一份PDF格式的学习参考资料,定位面向计算机专业学生、网络管理员及网络安全入门者,用于建立计算机系统安全与网络安全的基础知识框架。资源包仅包含1个PDF文件,大小约1.07MB&#xff0c…

2026/9/25 9:43:43 阅读更多 →
红蜘蛛管控系统深度卸载与网络无感禁用指南

红蜘蛛管控系统深度卸载与网络无感禁用指南

1. 红蜘蛛不是“普通软件”,而是一套深度驻留的教室管控系统很多人第一次面对红蜘蛛(3000soft Red Spider)时,下意识把它当成一个双击就能关掉的普通教学软件——点右上角、任务栏右键退出、甚至进任务管理器结束进程,…

2026/9/25 9:43:43 阅读更多 →
CTMS系统架构设计:从状态机到合规审计的落地指南

CTMS系统架构设计:从状态机到合规审计的落地指南

简介:CTMS 系统架构说明是一份面向客户与开发者的技术文档,旨在解决 CTMS 系统部署前的容量规划、性能评估与数据安全等关键问题。内容覆盖系统架构(一般型与扩充型)与软件架构分层,说明两种架构的适用场景——一般型适…

2026/9/25 9:43:43 阅读更多 →
程序员用AI写AI代码:TaoToken统一Key接入Copilot的settings.json配置与验证

程序员用AI写AI代码:TaoToken统一Key接入Copilot的settings.json配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/25 9:43:43 阅读更多 →
PCB功率电感底部铺铜还是挖空?EMI与热设计的工程平衡法则

PCB功率电感底部铺铜还是挖空?EMI与热设计的工程平衡法则

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/25 9:42:43 阅读更多 →

日新闻

AI元人文:从工具使用到思维重构的深度探索

AI元人文:从工具使用到思维重构的深度探索

最近半年我一直在琢磨一件事:AI元人文到底是什么?说白了,就是“用元视角重新审视人与AI的关系”,也在“探索AI如何反向逼着我们发现自己的思考边界”。标题里的“元探索”,在我看就是一层套一层的追问——当你用AI解决…

2026/9/25 0:00:41 阅读更多 →
Python+CNN车牌识别实战:从数据预处理到模型训练与部署

Python+CNN车牌识别实战:从数据预处理到模型训练与部署

简介:基于Python与卷积神经网络的车牌识别项目,面向计算机视觉初学者及智能交通开发者,目标是帮助用户掌握从数据预处理、模型构建到实际部署的完整流程。压缩包共25个文件,包含jpg/png图像样本、py训练脚本、md说明文档、dat数据…

2026/9/25 0:00:41 阅读更多 →
Vim基础操作全攻略:保存退出、模式切换与高频命令实战

Vim基础操作全攻略:保存退出、模式切换与高频命令实战

1. 项目概述1.1 核心需求解析今天聊聊Vim。写这个题目的原因是:几乎每个后端开发者、运维人员、数据工程师某天都会遇到一个场景——深夜加班,服务器登录界面只有黑底白字,编辑器只有vi/vim,你必须在五分钟内完成一次配置修改并保…

2026/9/25 0:00:41 阅读更多 →

周新闻

Flutter for OpenHarmony游戏卡片渐变背景实战:从原理到性能优化

Flutter for OpenHarmony游戏卡片渐变背景实战:从原理到性能优化

直接铺开项目本身吧。这几个月我一直在折腾一件事:用Flutter给OpenHarmony做一款游戏集合类的App,说白了就是把若干小游戏塞进一个壳里,用统一入口分发。这个方向本身不算新鲜,真正让我花了不少心思的,是首页那堆游戏卡…

2026/9/24 14:34:13 阅读更多 →
Word表格编号全攻略:从列表编号到题注交叉引用

Word表格编号全攻略:从列表编号到题注交叉引用

写Word文档,最让人头疼的往往是那些“看起来不起眼”的小问题。比如表格编号这事:今天在表后面多加了两个空白行,明天给客户交稿前发现整个章节的编号全部错位,光是挨个改序号就能耗掉大半个下午。我前阵子帮人整理一份上百页的技…

2026/9/24 9:10:42 阅读更多 →
从第一个站到第二个站:独立开发者的静态网站选型与落地实践

从第一个站到第二个站:独立开发者的静态网站选型与落地实践

1. 项目概述1.1 核心需求解析做独立开发者这几年,说实话,第一个网站上线的那天晚上我兴奋得没睡着。但等它跑了半年,流量惨淡、功能臃肿、代码自己都懒得看第二遍之后,我才慢慢琢磨明白一个道理:第一个网站是练手&…

2026/9/24 14:33:56 阅读更多 →

月新闻

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能分类:[AI/大模型]细分主题:AI 增强型 CI/CD 流水线自动化与 GitOps 实践:Agent 工作流、工具调用与任务拆解:从原型到生产的验收清单很多团队在尝试用大…

2026/9/24 12:50:34 阅读更多 →
容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场分类:[工程技术]细分主题:Kubernetes 生产环境运维与排障实战:可复制的项目复盘模板与决策记录大部分团队的事故复盘报告,最后都变成了躺在 Confluence 或钉…

2026/9/24 14:33:48 阅读更多 →
容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步分类:[工程技术]细分主题:Docker 容器化技术与镜像安全管理:核心链路的逐步实现与关键代码取舍面对一个积累了五六年历史包袱的单体架构应用(包含 Web 接口、后台…

2026/9/24 12:49:17 阅读更多 →