在浏览器中将 AsciiDoc(.ad、.adoc、.asc、.asciidoc)渲染为 HTML!
该项目使用 Asciidoctor.js 将 AsciiDoc 呈现为 HTML。
用法
1. 选中允许访问 chrome://extensions 中的文件 URL
2.在Chrome中打开本地或远程.adoc或.asciidoc文件
3.享受吧!
选项
可以通过选项页面配置扩展。
要打开选项页面,请右键单击扩展程序图标,然后在菜单上选择“选项”。您还可以转到 chrome://extensions 并单击“选项”链接。
选项页面允许您添加自定义属性或更改 AsciiDoc HTML 输出的主题。
变更日志
4.1.0 (2026-08)07
• 从清单的“host_permissions”中删除冗余的宽泛“file://*/*”条目:读取具有非 AsciiDoc 扩展名的本地文件(例如,“include::”或“chart::”目标,如“.csv”图表数据文件)已经可以通过已通过“web_accessible_resources”授予的“file://*/*”访问权限进行工作,因此在“host_permissions”中第二次声明它除了显示在安装时权限列表
• 修复当文档具有作者或修订信息时,宽屏幕(“toc2”布局)上文档标题下出现的冗余边框
• 修复点击页内锚链接(例如 ToC 条目)后“file://”文档无法重新加载的问题(“TypeError: Failed to fetch”,或者在 Chrome 上““file:”URL 被视为唯一的安全源”):选项卡的 URL 将“#fragment”从锚点中保留下来,而 fetch() 不会像处理 http(s) 那样剥离“file://”;现在,在获取之前以及计算“docfile”/“docname”属性和自动重新加载缓存键之前,片段会被剥离
• 从清单的“web_accessible_resources”中删除“fontawesome-webfont.ttf”和“fontawesome-webfont.woff”条目:仅实际捆绑“.woff2”文件,并且当存档中不存在列出的资源时,Edge Add-ons 验证程序会拒绝该包
• 删除“downloads”权限:“导出为 HTML”现在通过注入页面的隐藏“<a download>”链接而不是“chrome.downloads.download()”触发下载,这也使得该功能在 Safari 和 Firefox for Android 上可用,其中“downloads” API 不存在 (#722)
• 修复了每个页面上的 Chrome 控制台错误(“拒绝加载 .../fontawesome-webfont.woff... 资源必须在 web_accessible_resources 清单键中列出”):供应商的 Font Awesome 样式表仍然为十年前从扩展中删除的字体文件声明“@font-face”后备(“.eot”、“.woff”、“.ttf”、“.svg”),因此浏览器不断尝试加载他们;现在,构建重写样式表以仅引用捆绑的“.woff2”文件
4.0.0 (2026-08-06)
• 迁移到 Asciidoctor.js 4.0(将“XMLHttpRequest”替换为“fetch”)
• 删除 Bulma 和 Sass,用一个小的手写 CSS 文件替换生成的选项页面样式表
• 修复自定义 JavaScript 在具有严格内容安全策略的页面上被阻止的问题:通过“chrome.scripting.executeScript”在页面的主世界中运行它,从“Blob”URL 脚本“src”加载,而不是从内容脚本附加内联“<script>”
• 防止在获取和转换文档时出现无样式/浅色内容:在“document_start”处隐藏页面(匹配读者操作系统级别的深色/浅色首选项),并在渲染完成后显示它
• 在选项页面中的 JavaScript 下拉列表旁边添加“删除”按钮,以删除之前添加的自定义脚本,并修复现有主题“删除”按钮,以清除“browser.storage.local”中的条目(它只是清除“localStorage”,无限期地泄漏样式表内容)
• 使默认的“asciidoctor”主题兼容深色模式,匹配读者的操作系统级别“prefers-color-scheme”:深色语法突出显示(“atom-one-dark”,当使用“github”突出显示主题时),修复基本主题中的特异性冲突导致未样式化或太暗的表行条纹和警告图标颜色,并重新设计内联 Kroki“<svg>”图表的样式(“filter: invert(1)”) hue-rotate(180deg)`) 用于选择使用 `:kroki-default-options: inline` 的文档(需要带有浏览器 `toDataUri` 修复的 `asciidoctor-kroki` 版本)
• 修复删除自定义主题无法可靠地恢复默认“asciidoctor”主题(即使在刷新后):重置依赖于可能被跳过或丢失的去抖动自动保存,因此请立即保存
• 在目录上方的“#header”块中呈现作者和修订信息(编号、日期、备注),与 Asciidoctor 的独立输出匹配,因为扩展使用的可嵌入输出从未包含它们,其下方有一个小边距,因此序言不会与标题/详细信息齐平(#460)
• 添加对 `:favicon:` 文档属性的支持 (#688)
• 修复“渲染选择”上下文菜单操作,该操作在多个方面被破坏:“inject.html”引用了不再存在的 JavaScript 文件(“namespace.js”、“converter.js”、“renderer.js”、切换到 ES 模块之前的剩余文件),并将“inject.js”加载为经典脚本,即使它使用“import”;上下文菜单处理程序使用了 `tabs.executeScript` 和 `extension.getViews`,两者均在 Manifest V3 中删除;并且应用主题 CSS 也失败,因为 chrome.scripting 无法定位扩展程序自己的页面 - 在这种情况下,CSS 现在直接应用于文档,并且会跳过配置的自定义 JavaScript,因为没有符合 CSP 的方式在扩展程序页面上运行它 (#113)
• 修复自动重新加载,即使获取的内容没有更改,也会在每个轮询标记上重建整个页面,这会重置页面并删除任何正在进行的文本选择(在纯文本渲染中最明显,其中选择/复制源是重点);当内容不变时跳过 DOM 更新
• 修复自定义主题被同名内置主题(例如用户上传的 `asciidoctor.css`)悄悄隐藏的问题:现在,当自定义主题共享名称时,自定义主题优先于内置主题 (#304)
• 在选项卡隐藏时停止轮询更改,因此后台选项卡不会在每次勾选时继续获取和转换文档 (#232)
• 添加键盘快捷键(默认情况下为“Alt+Shift+R”,可在“browser://extensions/shortcuts”进行配置)以在渲染视图和原始视图之间切换 (#186)
• *行为更改*:现在默认仅渲染“.adoc”和“.asciidoc”文件; `.ad` 和 `.asc` 加入 `.txt` 作为选择加入的扩展名,每个扩展名在选项页面上都有自己的复选框 (#677)
• 修复文档有脚注时底部填充太紧的问题:基本样式表将其清零以避免“#footer”之前出现双倍行距,但扩展的可嵌入输出永远不会呈现“#footer”(#120)
• 第一次安装扩展时在新选项卡中打开快速入门指南 (#528)
• 修复每次在 Safari 的扩展首选项中关闭并重新打开扩展时重新打开的快速入门指南:Safari 在每次重新启用时都会以“install”为原因触发“runtime.onInstalled”,而不仅仅是在真正的首次安装时,因此使用持久标记来保护它,而不是仅信任原因
• 修复了自上次单击后后台脚本重新启动后开/关工具栏切换卡住的问题(例如,在浏览器回收空闲的 MV3 后台上下文之后,Safari 会积极执行此操作):该切换在模块级变量中跟踪其启用/禁用状态,该变量在每次重新启动时静默重置,而不是从“storage.local”读回,因此单击可能会以错误的方式翻转而不会出现任何错误
• 记录本地“file://”文档在 Safari 中不受支持,这是目前没有解决方法的平台限制 (“docs/modules/ROOT/pages/safari-known-issues.adoc”)
• 修复在浏览器控制台中显示为错误的 Asciidoctor `WARNING` 消息(例如未终止的块):它们现在使用 `console.warn` 进行记录,为实际的 `ERROR`/`FATAL` 消息保留 `console.error`
添加“导出为 HTML”功能(在渲染页面上右键单击菜单,或使用“Alt+Shift+E”键盘快捷键),将文档另存为独立的 HTML 文件,与“asciidoctor file.adoc -o file.html”生成的内容相匹配;在缺少“downloads” API 的情况下不可用(Safari、Android 版 Firefox)(#148)
3.0.0
• 迁移到清单v3——“include”将不再起作用!
• 将文档迁移到 Antora:https://docs.asciidoctor.org/browser-extension/
• 将用例重新组织到单独的页面,将自己尝试到快速启动页面,将图表自行尝试到图表快速启动页面 (#652) (#654)
2.7.1
• 在获取 AsciiDoc 内容时添加 `accept` 标头(主要是为了解决 github.com 上的问题)
• 更新依赖项
2.7.0
• 修复 MathJax 方程编号 (#412)
• 将Asciidoctor.js从2.2.0升级到2.2.1(基于Asciidoctor 2.0.12)
• 将 Asciidoctor Kroki 从 0.8.2 升级到 0.12.0(添加 excalidraw、bpmn 和 bytefield 作为支持的图表)
• 使用“kroki-default-format”和“kroki-default-options”属性进行全局配置
• 将布尔玛从 0.8.2 升级到 0.9.1
2.6.1
• 如果文档没有章节,请勿添加 toc2 类 - 感谢@mnrvwl
• 当扩展被禁用时停止自动重新加载 - 感谢@mnrvwl
• 删除已弃用的 options_page - 感谢@mnrvwl
• 将 Asciidoctor.js 从 2.1.1 升级到 2.2.0
• 将 Asciidoctor Kroki 从 0.7.0 升级到 0.8.1
• 支持侧边栏目录
• 与Firefox 兼容,再次使用相同的代码库!
• 删除图表师源图参考
2.5.0
• 将 Asciidoctor.js 从 2.0.3 升级到 2.1.1
• 在页面上显示后台脚本抛出的错误(感谢@doub)
• 捕获初始 XMLHttpRequest 抛出的异常
• 使用“Cache-Control”标头确保我们获取可用的最新版本
• 使用新图表将 Asciidoctor Kroki 从 0.4.0 升级到 0.7.0:“packetdiag”、“rackdiag”、“vega” 和“vegalite”
• 将图表从 0.11.0 升级到 0.11.4
• 将布尔玛从 0.7.5 升级到 0.8.2
2.4.0
• 将获取和转换函数移至后台脚本中(因为最新版本的 Chrome 80+ 会阻止内容脚本发送的“XMLHttpRequest”)
• 升级到MathJax 3.0.1
2.3.0
• 升级到MathJax 3.0.0(感谢@sindzicat)
• 使用服务器端语法突出显示(感谢@john-cj)
2.2.0
• 通过使用“.adoc”作为“outfilesuffix”修复文档间交叉引用(感谢@jmini)
• 默认情况下禁用图表扩展(可以在选项页面中启用)
• 现在可以在选项页面中配置 Kroki 服务器 URL(例如,您可以指向本地实例)
2.1.0
• 设置内置属性 docfile、docname 和 docfilesuffix(感谢 @utopalex 和 @ehmkah)
• 使用Kroki 扩展来渲染图表(支持BlockDiag、SeqDiag、ActDiag、NwDiag、C4、Ditaa、Erd、GraphViz、Mermaid、Nomnoml、PlantUML、SvgBob 和UMLet 图表!)
2.0.0
• 为highlight.js 加载其他语言(使用:highlightjs-languages: 属性)
• 升级到Asciidoctor.js 2.0.3
• 默认安全模式现在是安全的(以前是安全的)





