Time Ruler

unlisted

by Shinonome Shizuka

在编辑器行尾显示预估的口播时长,支持 CJK 字符计数和可配置的停顿规则

1 starsUpdated 3mo ago0BSD
View on GitHub

Obsidian Time Ruler

在 Obsidian 编辑器中显示预估口播时长的插件。每行末尾会显示时间标记(如 [00:05]),实时计算文档的口播视频时长。

功能特点

  • 实时时间显示:在每行末尾显示累积的口播时长
  • CJK 字符支持:针对中日韩字符优化的时长计算
    • CJK 字符按 1 个单位计算
    • 拉丁字符和数字按 0.4 个单位计算(通常读得更快)
    • 空格不计入
  • 可配置停顿:支持每隔 N 行添加停顿时长
  • YAML 跳过:自动跳过 YAML frontmatter 区域
  • 灵活显示选项
    • 可选择跳过空行
    • 可设置显示间隔(每隔 N 行显示一次)
    • 支持标签过滤(只对包含特定标签的文档生效)
  • 时间格式:支持 mm:ss(分:秒)或 ss(仅秒数)格式

安装

  1. 下载最新版本的 main.jsmanifest.jsonstyles.css
  2. 在你的 vault 中创建文件夹:.obsidian/plugins/obsidian-time-ruler/
  3. 将文件复制到该文件夹
  4. 在 Obsidian 设置中启用插件

使用

插件启用后,编辑器中每行末尾会显示时间标记:

这是一段口播文案的示例,             [00:03]
会在每行末尾显示累积时间。           [00:06]
空行可以选择不显示时间码。

设置选项

设置项说明默认值
显示时间标尺启用/禁用时间标尺功能启用
必需标签只对包含此标签的文档显示(留空=所有文档)
语速(字/分钟)每分钟朗读的 CJK 字符数250
停顿时长(秒)每隔几行的小停顿时长1.0
停顿间隔(行数)每隔多少行添加一次停顿5
时间格式mm:ssssmm:ss
空行不显示时间码空行是否显示时间标记
显示间隔(行数)每隔几行显示一次时间码(1=每行)1

命令

  • 切换时间标尺:快速启用/禁用时间标尺显示

时间计算说明

时长计算基于以下公式:

时间(秒)= (有效字符数 / 语速) × 60

有效字符数 = CJK 字符数 + 拉丁字符数 × 0.4

停顿时间会每隔指定行数自动累加到总时长中。

开发

# 安装依赖
npm install

# 开发模式(监听文件变化)
npm run dev

# 生产构建
npm run build

# 代码检查
npm run lint

构建后,将 main.jsmanifest.jsonstyles.css 复制到 vault 中进行测试。

发布

  1. 更新 manifest.json 中的版本号
  2. 更新 versions.json 添加新版本映射
  3. 运行 npm run build 构建生产版本
  4. 创建 GitHub Release,上传 main.jsmanifest.jsonstyles.css

许可证

MIT License

For plugin developers

Search results and similarity scores are powered by semantic analysis of your plugin's README. If your plugin isn't appearing for searches you'd expect, try updating your README to clearly describe your plugin's purpose, features, and use cases.