-
Fix a crash (
TypeError: can’t access property "url", sender.tab is undefined) breaking rendering and everyinclude::resolution on Firefox when afile://document is opened in a tab that isn’t yet fully registered with the extension messaging API, e.g. set as the browser’s start page (#734)
-
Add a
ReleaseGitHub Actions workflow (workflow_dispatch, pass a version) that bumps the version everywhere it’s recorded (package.json,app/manifest.json, the Safari Xcode project), rolls this changelog’s "Unreleased" section into a dated one, builds and tests the extension, signs the Firefox package with addons.mozilla.org so it can be installed manually outside the store, and publishes a GitHub release with the Chrome/Opera/Firefox zips and the signed Firefox.xpias assets -
Remove the redundant broad
file:///entry from the manifest’shost_permissions: reading a local file with a non-AsciiDoc extension (e.g. aninclude::orchart::target like a.csvchart data file) already works through thefile:///access already granted viaweb_accessible_resources, so declaring it a second time inhost_permissionshad no effect other than showing up in the install-time permission list -
Fix a redundant border appearing under the document title on wide screens (
toc2layout) when the document has an author or revision info -
Fix
file://documents failing to render in Firefox with "Security Error: Content at moz-extension://… may not load or link to file://…": on Firefox, the content script now fetchesfile://content itself and passes it to the background script, instead of asking the background script to fetch it directly, which Firefox blocks regardless of granted permissions (Chrome keeps fetching from the background script, since fetchingfile://from its content script hits a CORS error there instead) -
Fix the same
file://Security Error breaking "Export as HTML" on Firefox: the background script now asks the content script for the source instead of fetchingfile://itself -
Fix
include::directives (and Kroki diagrams referencing a local file) failing to resolve on Firefox with the samefile://Security Error: Asciidoctor.js’s internalfetch()calls are now routed through the content script for the duration of afile://conversion, restoring the pre-4.0 behavior — note this still requires setting bothprivacy.file_unique_originandsecurity.fileuri.strict_origin_policytofalseinabout:config(and restarting Firefox) to actually succeed, since Firefox isolates eachfile://document into its own unique origin (https://docs.asciidoctor.org/browser-extension/firefox-known-issues/, #302) -
Fix a
file://document failing to reload (TypeError: Failed to fetch, or on Chrome "'file:' URLs are treated as unique security origins") after clicking an in-page anchor link (e.g. a ToC entry): the tab’s URL keeps the#fragmentfrom the anchor, which fetch() doesn’t strip forfile://the way it does for http(s); the fragment is now stripped before fetching, and before computing thedocfile/docnameattributes and the auto-reload cache key -
Add a Privacy Policy page to the documentation, explaining what each browser permission is used for and confirming no data is collected, sold, or sent to third parties (except diagram source text, when the diagrams extension is explicitly enabled) (
docs/modules/ROOT/pages/privacy.adoc) -
Build a dedicated Opera package that excludes
changelog.adocandREADME.adoc, since Opera’s add-on validator rejects the whole package over the unrecognized.adocfile type -
Remove the
fontawesome-webfont.ttfandfontawesome-webfont.woffentries from the manifest’sweb_accessible_resources: only the.woff2file is actually bundled, and the Edge Add-ons validator rejects the package when a listed resource doesn’t exist in the archive -
Remove the
downloadspermission: "Export as HTML" now triggers the download through a hidden<a download>link injected into the page instead ofchrome.downloads.download(), which also makes the feature available on Safari and Firefox for Android, where thedownloadsAPI doesn’t exist (#722) -
Fix a Chrome console error ("Denying load of …/fontawesome-webfont.woff… Resources must be listed in the web_accessible_resources manifest key") on every page: the vendored Font Awesome stylesheet still declared
@font-facefallbacks (.eot,.woff,.ttf,.svg) for font files that were dropped from the extension a decade ago, so the browser kept trying to load them; the build now rewrites the stylesheet to only reference the bundled.woff2file
-
Require Node.js 24 or greater
-
Convert build tasks to ES modules (use
fetchinstead ofhttps, top-levelawait,import.meta.dirname) -
Replace ESLint and Standard with Biome for linting and formatting
-
Replace Puppeteer and Mocha/Chai with Playwright for browser tests
-
Rename
lint:firefoxnpm script tovalidate:firefox -
Mark
changelog.adocwith amerge=uniongit attribute, so parallel branches that each append an entry to the "Unreleased" section merge automatically instead of conflicting -
Remove Bulma and Sass, replace the generated options page stylesheet with a small hand-written CSS file
-
Restructure
contrib/samplesinto a single coherent multi-chapter sample book instead of a set of disconnected syntax snippets -
Modernize
navigation.js, add newrestore-scroll-position.jsandtoc-scrollspy.jsexamples, and move all three fromcontribinto the Antora documentation as downloadable examples of the JavaScript "before"/"after" load hooks -
Fix custom JavaScript being blocked on pages with a strict Content-Security-Policy: run it in the page’s main world via
chrome.scripting.executeScript, loaded from aBlobURL scriptsrc, instead of appending an inline<script>from the content script -
Prevent a flash of unstyled/light content while the document is being fetched and converted: hide the page at
document_start(matching the reader’s OS-level dark/light preference) and reveal it once rendering finishes -
Add a "Remove" button next to the JavaScript dropdown in the options page, to delete a previously added custom script, and fix the existing theme "Remove" button to also clear the entry from
browser.storage.local(it was only clearinglocalStorage, leaking the stylesheet content indefinitely) -
Make the default
asciidoctortheme dark-mode compatible, matching the reader’s OS-levelprefers-color-scheme: dark syntax highlighting (atom-one-dark, when thegithubhighlight theme is in use), fix table row striping and admonition icon colors that a specificity conflict in the base theme had left unstyled or too dark, and restyle inline Kroki<svg>diagrams (filter: invert(1) hue-rotate(180deg)) for documents that opt in with:kroki-default-options: inline(requires anasciidoctor-krokiversion with the browsertoDataUrifix) -
Fix removing a custom theme not reliably restoring the default
asciidoctortheme (even after a refresh): the reset relied on a debounced autosave that could be skipped or lost, so save it immediately instead -
Render the author(s) and revision info (number, date, remark) in a
#headerblock above the table of contents, matching Asciidoctor’s standalone output, since the embeddable output the extension uses never included them, with a small margin below it so the preamble isn’t flush against the title/details (#460) -
Add support for the
:favicon:document attribute (#688) -
Fix the "Render selection" context menu action, which was broken in several ways:
inject.htmlreferenced JavaScript files that no longer exist (namespace.js,converter.js,renderer.js, leftovers from before the switch to ES modules) and loadedinject.jsas a classic script even though it usesimport; the context menu handler usedtabs.executeScriptandextension.getViews, both removed in Manifest V3; and applying the theme CSS failed too becausechrome.scriptingcan’t target the extension’s own pages — CSS is now applied directly to the document in that case, and a configured custom JavaScript is skipped there since there’s no CSP-compliant way to run it on an extension page (#113) -
Merge
module/fetch.jsintomodule/converter.js, its only caller -
Fix auto-reload rebuilding the whole page on every poll tick even when the fetched content hadn’t changed, which reset the page and dropped any in-progress text selection (most noticeable in the plain-text rendering, where selecting/copying the source is the whole point); skip the DOM update when the content is unchanged
-
Fix a custom theme being silently shadowed by a built-in theme of the same name (e.g. a user-uploaded
asciidoctor.css): a custom theme now takes precedence over a built-in one when both share a name (#304) -
Stop polling for changes while the tab is hidden, so a backgrounded tab doesn’t keep fetching and converting the document on every tick (#232)
-
Add a keyboard shortcut (
Alt+Shift+Rby default, configurable atbrowser://extensions/shortcuts) to toggle between the rendered and raw view (#186) -
Behavior change: only
.adocand.asciidocfiles are rendered by default now;.adand.ascjoin.txtas opt-in extensions, each with their own checkbox on the options page (#677) -
Fix the bottom padding being too tight when a document has footnotes: the base stylesheet zeroes it out to avoid double-spacing before
#footer, but the extension’s embeddable output never renders a#footer(#120) -
Open the quickstart guide in a new tab the first time the extension is installed (#528)
-
Fix the quickstart guide reopening every time the extension is turned off and back on in Safari’s Extensions preferences: Safari fires
runtime.onInstalledwith reasoninstallon every re-enable there, not just on a true first install, so guard it with a persisted flag instead of trusting the reason alone -
Fix the on/off toolbar toggle getting stuck once the background script has been restarted since the last click (e.g. after the browser reclaims an idle MV3 background context, which Safari does aggressively): the toggle tracked its enabled/disabled status in a module-level variable that silently reset on every restart instead of reading it back from
storage.local, so a click could flip the wrong way without any error -
Document that local
file://documents aren’t supported in Safari, a platform limitation with no current workaround (docs/modules/ROOT/pages/safari-known-issues.adoc) -
Add a Safari app extension Xcode project (
safari/) that referencesapp/directly instead of a duplicated copy, so the same source builds the Chrome, Firefox, and Safari packages; bundlebackground.js(an ES module) into a self-contained script and load it viabackground.scriptsrather thanbackground.service_worker(Safari’s MV3 service worker mode can silently fail to start at all), and generate a Safari-specific manifest that drops theextension_idskey andfile://match pattern fromweb_accessible_resources, both of which Safari rejects outright, taking every listed resource down with them (including the on/off toolbar icons) -
Fix Asciidoctor
WARNINGmessages (e.g. an unterminated block) showing up as errors in the browser console: they’re now logged withconsole.warn, reservingconsole.errorfor actualERROR/FATALmessages -
Add an "Export as HTML" feature (right-click menu on a rendered page, or the
Alt+Shift+Ekeyboard shortcut) that saves the document as a standalone HTML file, matching whatasciidoctor file.adoc -o file.htmlwould produce; not available where thedownloadsAPI is missing (Safari, Firefox for Android) (#148)
-
Migrate to manifest v3 —
includewon’t work anymore! -
Migrate documentation to Antora: https://docs.asciidoctor.org/browser-extension/
-
Reorganize use-cases to separate page, try-it-yourself to a quickstart page, diagrams try-it-yourself to a diagrams quickstart page (#652) (#654)
-
Add
acceptheader when fetching AsciiDoc content (mainly to workaround an issue on github.com) -
Update dependencies
-
Fix MathJax equation numbering (#412)
-
Upgrade Asciidoctor.js from 2.2.0 to 2.2.1
-
Based on Asciidoctor 2.0.12!
-
-
Upgrade Asciidoctor Kroki from 0.8.2 to 0.12.0
-
Add excalidraw, bpmn and bytefield as a supported diagrams
-
Global configuration using
kroki-default-formatandkroki-default-optionsattributes
-
-
Upgrade bulma from 0.8.2 to 0.9.1
-
Update development dependencies
-
Bump addons-linter from 1.25.0 to 2.18.0
-
Bump puppeteer from 3.3.0 to 7.1.0
-
Bump lodash from 4.17.15 to 4.17.19
-
Bump archiver from 4.0.1 to 5.2.0
-
Bump mocha from 8.0.1 to 8.3.0
-
Bump sinon from 9.0.2 to 9.2.4
-
Bump bl from 1.2.2 to 1.2.3
-
Bump csso from 4.0.3 to 4.2.0
-
Bump standard from 14.3.4 to 16.0.3
-
Bump node-sass from 4.14.1 to 5.0.0
-
Bump eslint from 6.8.0 to 7.20.0
-
Bump chai from 4.2.0 to 4.3.0
-
-
Do not add the toc2 class if the document has no section - thanks @mnrvwl
-
Stop auto reload when the extension has been disabled - thanks @mnrvwl
-
Remove the deprecated options_page - thanks @mnrvwl
-
Upgrade Asciidoctor.js from 2.1.1 to 2.2.0
-
Upgrade Asciidoctor Kroki from 0.7.0 to 0.8.1
-
Support sidebar toc
-
Compatibility with Firefox, use the same codebase again!
-
Remove chartist sourcemap reference
-
Update development dependencies
-
Bump mocha from 7.1.1 to 8.0.1
-
Bump puppeteer from 2.1.1 to 3.3.0
-
Bump standard from 14.3.3 to 14.3.4
-
Bump node-sass from 4.14.0 to 4.14.1
-
Bump archiver from 3.1.1 to 4.0.1
-
Bump addons-linter from 1.23.0 to 1.25.0
-
-
Upgrade Asciidoctor.js from 2.0.3 to 2.1.1
-
Show errors thrown by the background script on the page (thanks @doub)
-
Catch exceptions thrown by the initial XMLHttpRequest
-
Use the
Cache-Controlheader to make sure that we fetch the latest version available -
Upgrade Asciidoctor Kroki from 0.4.0 to 0.7.0 with new diagrams:
packetdiag,rackdiag,vegaandvegalite -
Upgrade chartist from 0.11.0 to 0.11.4
-
Upgrade bulma from 0.7.5 to 0.8.2
-
Update development dependencies
-
Bump eslint from 5.16.0 to 6.8.0
-
Bump sinon from 8.1.1 to 9.0.2
-
Bump browserify from 16.2.3 to 16.5.1
-
Bump uglify-js from 3.5.9 to 3.8.1
-
Bump archiver from 3.0.0 to 3.1.1
-
Bump csso from 3.5.1 to 4.0.3
-
Bump mocha from 7.0.1 to 7.1.1
-
Bump puppeteer from 1.20.0 to 2.1.1
-
Bump standard.js to 14.3.3
-
-
Use GitHub Actions
-
Move the fetch and convert functions in the background script (as the latest version of Chrome 80+ blocks
XMLHttpRequestsent by the content script) -
Upgrade to MathJax 3.0.1
-
Upgrade to MathJax 3.0.0 (thanks @sindzicat)
-
Use server-side syntax highlighting (thanks @john-cj)
-
Upgrade addons-linter (Firefox) to 1.15.0
-
Upgrade Puppeteer to 1.20.0
-
Bump eslint-utils from 1.3.1 to 1.4.2
-
Bump version to publish on https://addons.mozilla.org.
-
Fix inter-document cross references by using
.adocasoutfilesuffix(thanks @jmini) -
Disable the diagram extension by default (can be enabled in options page)
-
The Kroki server URL can now be configured in the options page (for instance, you can point to a local instance)
-
Set built-in attributes docfile, docname and docfilesuffix (thanks @utopalex & @ehmkah)
-
Use Kroki extension to render diagrams (support BlockDiag, SeqDiag, ActDiag, NwDiag, C4, Ditaa, Erd, GraphViz, Mermaid, Nomnoml, PlantUML, SvgBob and UMLet diagrams!)
-
Load additional languages for highlight.js (using
:highlightjs-languages:attribute) -
Upgrade to Asciidoctor.js 2.0.3
-
The default safe mode is now safe (was secure)
-
Add more languages to highlight.js (dockerfile, elm, golo, gradle, haskell, handlebars, kotlin, rust, swift, yaml, typescript)
-
Upgrade chartist to 0.11.0
-
Use the new Asciidoctor logo
-
Upgrade to Asciidoctor.js 1.5.9
-
Add
<meta name="viewport">to the rendered HTML (thanks @mattpalermo) -
Remove JQuery dependency
-
Use ECMAScript 6 features to improve the code readability and structure
-
Us the
stylesheetquery string to configure the stylesheet per document?stylesheet=github -
Upgrade to Asciidoctor.js 1.5.6
-
Allow to configure the polling to remote and local files
-
Don’t show document title when
noheaderattribute is set (thanks @mojavelinux) -
Use
highlight.jsas the defaultsource-highlighter -
Add PlantUML extension to render diagram
-
Load MathJax only when
stemattribute is defined -
Improve the performance on the first rendering
-
Improve the performance when enabling/disabling the extension
-
Redesign the options page using Bulma
-
Add the Mozilla addons linter in the build process
-
Use the browser namespace
-
Use correct config for MathJax (thanks @mojavelinux)
-
Add missing images for golo, riak, maker and github themes (thanks @puffybsd)
-
Upgrade Chartist to 0.8.3
-
Upgrade MathJax to 2.7.2
-
Remove fragment identifier from outfilesuffix (thanks @oncletom)
-
Fix timezone regexp to handle numeric and non-latin timezones (thanks @guziks, @stayfool, @tequlia2pop, @noah538 & @jfstn)
-
Asciidoctor.js 1.5.5-4
-
Highlight.js 9.9.0
-
Font Awesome 4.7.0
-
Options page now save changes automatically
-
Upgrade Font Awesome to 4.6.3
-
Decode entities in document title (Thanks @ismail & @mojavelinux)
-
MathJax is now working on remote files (Thanks @kindlychung)
-
Add missing images from Riak theme (Thanks @ssebastianj)
-
Chart extension
Line chart[chart,line] .... January,February,March 28,48,40 65,59,80 .... -
Emoji extension
Large heart emojiemoji:heart[lg] -
Allow attributes to be defined via URL parameters
Set TOC placement to preamble?toc=preamble -
Add tip about enabling local file access to options page
-
Asciidoctor 1.5.2
-
Support :max-width: attribute
-
Offline mode
-
.txt files extension (configurable)
-
Asciidoctor 1.5.0 !
-
New stylesheet with Open Source Fonts
-
Better print styles
-
Font Awesome 4.1
-
MathJax support
-
Allow custom Javacript and Stylesheet
-
Upgrade to Asciidoctor 1.5.0-preview.8
-
Activate includes!
-
Render selection
-
Match URLs that contain a query string
-
Add configuration option for specifying custom attributes
-
Allow to change the theme of AsciiDoc HTML output
-
Add highlight.js for syntax highlighting
-
Add context menu to send the "browser content" to the Asciidoctor Editor