| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
| Name | Name | Last commit date | ||
|---|---|---|---|---|
markview 是一个在浏览器中打开 .md 文件并支持实时刷新的 Markdown 浏览工具。
如果你在使用 AI 编码助手或需要项目约束说明,请以 .github/copilot-instructions.md 为准。
Homebrew:
$ brew install kooksee/tap/markview手动安装:
从 发布页 下载对应平台二进制文件。
$ markview README.md # 打开单个文件
$ markview README.md CHANGELOG.md docs/*.md # 打开多个文件
$ markview spec.md --target design # 打开到指定分组markview 会在浏览器中展示 Markdown 内容,并在文件保存后自动刷新页面。
默认情况下,markview 在 6275 端口启动单个服务。
当同端口已存在 markview 服务时,后续命令不会重复启动进程,而是把新文件追加到已有会话中。
$ markview README.md # 后台启动 markview
$ markview CHANGELOG.md # 将文件追加到已运行服务如果你需要完全独立的会话,换一个端口即可:
$ markview draft.md -p 6276可通过 --target(-t)把文件归入命名分组。每个分组对应一个 URL 路径与独立侧边栏。
$ markview spec.md --target design # 打开到 http://localhost:6275/design
$ markview api.md --target design # 追加到 design 分组
$ markview notes.md --target notes # 打开到 http://localhost:6275/notes使用 --watch(-w)注册通配模式。匹配到的文件会自动打开,匹配目录也会被持续监听以发现新文件。
展开与自动发现会遵守项目内的 .gitignore(含嵌套规则),并始终跳过 .git/;通过命令行显式指定的文件不受此过滤。
$ markview --watch '**/*.md' # 递归监听并打开所有 .md
$ markview --watch 'docs/**/*.md' --target docs # 监听 docs 目录并放入 docs 分组
$ markview --watch '*.md' --watch 'docs/**/*.md' # 同时注册多个模式--watch 不能与文件参数同时使用。** 表示递归目录匹配。
使用 --unwatch 取消已注册模式。已添加进侧边栏的文件不会被自动移除。
$ markview --unwatch '**/*.md' # 取消默认分组中的模式
$ markview --unwatch 'docs/**/*.md' --target docs # 取消 docs 分组中的模式
$ markview --unwatch '/Users/you/project/**/*.md' # 按绝对路径取消模式会先解析为绝对路径再匹配,因此你可以使用相对路径,也可以使用 --status 输出中的绝对路径。
侧边栏支持平铺和树形两种视图:
![]() |
![]() |
在文档右侧工具列点击 Slides 按钮即可进入演示模式。
示例:
# 封面
这是第一页
---
# 第二页
这是第二页常用操作:
| 操作 | 快捷键 / 交互 |
|---|---|
| 下一页 | → / PageDown / Space / Enter / 点击幻灯片空白区域 |
| 上一页 | ← / PageUp |
| 首/末页 | Home / End |
| 切换全屏 | F |
| 退出 | Esc(全屏时优先退出全屏,再次按下退出 Slides) |
| 固定/取消固定演示控件 | H |
Tip
全屏状态下,演示控件会在短暂无操作后自动隐藏;移动鼠标、触控或按键会再次显示。
markview 默认后台运行,命令会立即返回,不阻塞当前终端。
$ markview README.md
markview: serving at http://localhost:6275 (pid 12345)
$ # 终端可继续使用使用 --status 查看服务状态,使用 --shutdown 停止服务:
$ markview --status # 查看所有 markview 服务
http://localhost:6275 (pid 12345, v0.12.0)
default: 5 file(s)
watching: /Users/you/project/src/**/*.md, /Users/you/project/*.md
docs: 2 file(s)
watching: /Users/you/project/docs/**/*.md
$ markview --shutdown # 关闭默认端口服务
$ markview --shutdown -p 6276 # 关闭指定端口服务
$ markview --restart # 重启默认端口服务如果需要前台运行(例如调试时),可使用 --foreground:
$ markview --foreground README.md你可以点击页面右下角的 重启按钮,或执行 markview --restart。
重启后会保留当前会话(分组与文件列表),适合在升级二进制后无缝切换到新版本。
markview 会在文件或模式发生变更时自动保存会话状态(按分组保存文件与监听模式)。
当服务再次启动时,会自动恢复上次会话,并与本次命令行参数合并(恢复项优先,新参数追加,去重处理)。
$ markview README.md CHANGELOG.md # 启动并打开两个文件
$ markview --shutdown # 关闭服务
$ markview # 恢复 README.md 与 CHANGELOG.md
$ markview TODO.md # 恢复会话并追加 TODO.md使用 --clear 可以清理某个端口的会话备份:
$ markview --clear # 清理默认端口备份
$ markview --clear -p 6276 # 清理指定端口备份使用 --json 可以将结果输出为结构化 JSON,便于脚本或自动化工具调用。
$ markview --json README.md
{
"url": "http://localhost:6275",
"files": [
{
"url": "http://localhost:6275/?file=a1b2c3d4",
"name": "README.md",
"path": "/Users/you/project/README.md"
}
]
}--status 也支持 --json:
$ markview --status --json
[
{
"url": "http://localhost:6275",
"status": "running",
"pid": 12345,
"version": "0.15.0",
"revision": "abc1234",
"groups": [
{
"name": "default",
"files": 3,
"patterns": ["**/*.md"]
}
]
}
]| 参数 | 简写 | 默认值 | 说明 |
|---|---|---|---|
| --target | -t | default | 分组名称 |
| --port | -p | 6275 | 服务端口 |
| --bind | -b | 0.0.0.0 | 绑定地址(如 localhost) |
| --open | 总是打开浏览器 | ||
| --no-open | 不自动打开浏览器 | ||
| --status | 查看运行中的 markview 服务 | ||
| --watch | -w | 监听通配模式(可重复) | |
| --unwatch | 移除已监听的模式(可重复) | ||
| --shutdown | 关闭运行中的 markview 服务 | ||
| --restart | 重启运行中的 markview 服务 | ||
| --clear | 清理指定端口的会话备份 | ||
| --foreground | 前台运行服务 | ||
| --json | 以 JSON 输出结构化结果 |
Warning
当 --bind 设置为非回环地址时,markview 会暴露到网络,且默认没有鉴权机制。远程客户端可能读取当前用户可访问文件、浏览通配目录并控制服务启停。该场景仅建议用于可信网络。
需要 Go 与 pnpm 环境。
$ make buildCI 中也提供独立构建产物流程:build-artifacts(GitHub Actions)。 该流程会使用 GoReleaser snapshot 模式构建多平台产物,并上传 dist 目录作为 workflow artifact,便于预发布验证。
项目发布使用 GoReleaser,支持两种方式:
本地可先做一次发布前验证(不真正发布):
$ goreleaser release --snapshot --clean --skip=publish如果你需要导出离线讲稿(PDF/PPTX),仓库提供了 docs/slides/ 的 Marp 模板与主题,可通过 Makefile 预览和导出:
$ make slides-preview
$ make slides-pdf
$ make slides-pptx默认使用:
你也可以覆盖输入文件(示例):
$ make slides-pdf SLIDES_FILE=docs/slides/my-talk.md更多模板说明见:docs/slides/README.md
为了便于本地阅读和二次开发,仓库提供了以下中文文档:
| 中文称呼 | 代码中的常见写法 | 说明 |
|---|---|---|
| 命令行入口 | CLI | 指命令行程序入口与参数处理逻辑 |
| 接口 | API | 指前后端通过 HTTP 调用的内部接口 |
| 服务端事件流 | SSE | 用于将服务端变更实时推送到前端 |
| 监听模式 | watch pattern | 通过 --watch 注册的通配路径规则 |
| 前置元数据 | Frontmatter | Markdown 文件顶部的 YAML 元数据块 |
| 目录面板 | ToC | 文档标题目录导航面板 |
| 原文视图 | Raw | 直接查看 Markdown 原始文本 |
| Back | FazBrowse Home | New Git URL |