Skip to content

fix(deps): update dependency clean-jsdoc-theme to v5#49

Open
renovate[bot] wants to merge 1 commit into
mainfrom
renovate/clean-jsdoc-theme-5.x
Open

fix(deps): update dependency clean-jsdoc-theme to v5#49
renovate[bot] wants to merge 1 commit into
mainfrom
renovate/clean-jsdoc-theme-5.x

Conversation

@renovate

@renovate renovate Bot commented Jun 16, 2026

Copy link
Copy Markdown
Contributor

This PR contains the following updates:

Package Change Age Confidence
clean-jsdoc-theme (source) 4.3.35.0.3 age confidence

Release Notes

ankitskvmdam/clean-jsdoc-theme (clean-jsdoc-theme)

v5.0.3

Compare Source

Patch release with bug fixes and a TypeDoc parity feature.

Bug fixes

  • index name clash (#​333) — a documented symbol named index no longer overwrites the home page. It now renders at /index/ like any other container, so neither page is lost.
  • Hardened MDX brace escaping (#​333) — inline-code detection now follows CommonMark (a code span can't cross a blank line), so a single unbalanced inline-code backtick in one doc comment can no longer desync escaping across a whole aggregated page (e.g. Globals) and abort it with "Could not parse expression with acorn".
  • Sidebar on tablet/iPad — on widths where both the left sidebar and the mobile table-of-contents bar show, the sidebar's first item is no longer hidden behind the TOC bar.

Improvements

  • Render diagnostics (#​333) — when a page fails to compile, the build now reports the exact line:column plus a code-frame snippet instead of just the slug, so the offending content is easy to locate on large pages.
  • Unbalanced-backtick warnings (#​333) — unbalanced inline-code backticks are surfaced as non-fatal build warnings pointing at the source line, so the authoring slip is easy to find and fix.

TypeDoc

  • docs prose directory (#​334) — the TypeDoc plugin now supports the docs option (plus docGroups / defaultDocGroup), matching the JSDoc bridge: hand-written Markdown/HTML guides render alongside the API. (readme remains TypeDoc's own top-level option.)

Docs: https://ankdev.me/clean-jsdoc-theme/

v5.0.2

Compare Source

Two fixes restoring v4 parity: mobile header controls and target/class on menu entries.

Search + language switcher on mobile

The header search trigger was wrapped in a hidden … md:flex desktop-only container, so the search icon disappeared below the md breakpoint. Search (and the always-present language switcher) are now pulled out of that wrapper, so both stay visible on every breakpoint. Theme and settings remain desktop-only — the mobile nav drawer already hosts them.

target and class are back on menu entries

Both options were dropped from the v5 menu object and are now re-introduced as optional fields, threaded through the whole pipeline (opts schema, setu, the JSDoc + TypeDoc bridges, and rang's sidebar):

  • target overrides the link target. External links still default to _blank, and the noopener rel is dropped when the target isn't _blank.
  • class is merged onto the rendered link.

Both apply to external and built-in/internal entries, and are omitted when unset — so existing menus stay byte-identical.


Docs: https://ankdev.me/clean-jsdoc-theme/

v5.0.1

Compare Source

Code playgrounds, a favicon option, and a refreshed code block.

Playgrounds (#​329)

Open an @example (or a code fence) in CodePen, JSFiddle, or CodeSandbox, prefilled — bringing back and generalizing v4's codepen feature. A code block's header gains an "Open Code in" dropdown; it's fully client-side (form POST / parameterized link — no backend, no API key). Configure with opts.playground (enableForAllExamples, providers, site-wide per-provider options) and the @playground block tag (provider selection, none/off, plus filename= and highlight=). Works in prose too (a js playground fence or a <playground> container) and through both the JSDoc and TypeDoc bridges.

Favicon

New favicon option — a path to an image the theme copies to a content-hashed asset and links as <link rel="icon"> (with the right type). Restores the v4 option v5 had dropped, and is the way to ship an SVG favicon (browsers auto-discover only a root favicon.ico).

Refreshed code block

Each block now has a header bar (a CODE/filename label plus copy and the playground dropdown), per-line highlighting, and configurable code-chrome colors (codeHeaderBg / codeHeaderFg / codeHighlightBg under colors / darkColors) that stay legible in light and dark.


Docs: https://ankdev.me/clean-jsdoc-theme/ · Fixes #​329

v5.0.0: clean-jsdoc-theme v5.0.0

Compare Source

clean-jsdoc-theme v5 is a ground-up rewrite — a complete documentation suite, not a coat of paint on JSDoc's output.

What's new in clean-jsdoc-theme

A real static-site generator, not a CSS theme

Every page is server-rendered to HTML and progressively enhanced with lazy-hydrated Preact islands — each island ships only to the pages that use it. No client framework on the wire, no build config to maintain. Light and dark themes ship out of the box on an OKLCH palette; bring your own colors, Google Fonts, logo, sidebar menu, custom footer, custom <meta> tags, and custom CSS/JS whenever you want them.

Built to work well with LLMs

Alongside every page, v5 emits a companion .md authored for machines to read — so your API reference is as legible to an AI as it is to a human. Every page also carries one-click actions to copy the Markdown or open it straight in Claude, ChatGPT, or Perplexity (all opt-out via copyPage).

LLM support runs deeper than the output, too. We ship downloadable, source-verified agent skills you can drop into any coding assistant: an umbrella clean-jsdoc-theme skill (setup, the full config reference, authoring, the sidebar model, localization, and the package architecture) and a focused migrate-v4-to-v5 skill. They turn an assistant into an expert that can scaffold your config, author your guides, structure your sidebar, and migrate a v4 project — correctly, the first time.

Two kinds of search, zero setup

A Ctrl K fuzzy command palette ranks across titles, descriptions, and full page text, deep-links straight to any class member by name, and remembers your recent and favorite searches. Turn on an optional Pagefind full-text index with a single flag.

Prose and API in one site

Hand-written Markdown guides sit right beside your auto-generated reference — one sidebar, one search index, one URL space. Point opts.docs at a folder of Markdown and the folder layout + a little frontmatter becomes your navigation. {@&#8203;link}, @see, and @tutorial resolve to real cross-page anchors, and every member links to its exact source line.

Rich authoring

Write richer doc comments and prose with first-class components: callouts (GitHub-style > [!NOTE] alerts), <Steps>, synchronized <Tabs>, and sandboxed live embeds (CodePen, YouTube, any site) via an @iframe tag or an ```iframe fence. Organize the sidebar with @category, @order, sectionOrder, menu, and clubSidebarItems; a prev/next pager links adjacent pages in reading order.

A source viewer

Documented source files become read-only Monaco-powered viewer pages that open to the exact #L<n> you linked, themed to match the site.

Localization (i18n) — new

Ship your docs in multiple languages. Declare opts.locales / opts.defaultLocale and the clean-jsdoc CLI builds one static site per language — translated UI chrome, API descriptions (incl. parameter & return descriptions), and prose (a per-locale README.<locale>.md home and a docs.<locale>/ overlay) — with a header language switcher, per-language fonts, and hreflang for SEO. A build with no locales is byte-identical to before. (See "Developer preview" below for TypeDoc's localization status.)

Safer, clearer builds

Theme options are validated up front (typo suggestions, a live Google-Font existence check) and the build prints a Next.js-style report of per-route sizes (with gzip). A single page that fails to compile is skipped and reported — never aborting the whole build.


The package suite

v5 isn't a single template — it's a small set of single-responsibility packages wired into a one-way setu → dwar pipeline, all published to npm and reusable. They ship in lockstep (one shared version).

Core pipeline

  • clean-jsdoc-theme — the JSDoc template / entry point. JSDoc calls its publish() bridge, which orchestrates the pipeline and writes the site.
  • @clean-jsdoc-theme/setu — turns the JSDoc doclet model into a structured SiteManifest (pages, nav, cross-resolved links). No I/O, no HTML.
  • @clean-jsdoc-theme/rang — the Preact component library, MDX element map, and island registry that the renderer bundles.
  • @clean-jsdoc-theme/dwar — a pure renderer: SiteManifest → HTML/CSS/JS (SSR + MDX + esbuild-bundled islands), plus a Pagefind hook.
  • @clean-jsdoc-theme/utils — the shared type contracts, slug rules, and opts-validation/build-report core every package builds against.

Localization

  • @clean-jsdoc-theme/aadesh — the clean-jsdoc CLI that drives the extract → translate → build workflow. The localization steps live under an i18n group (clean-jsdoc i18n extract / i18n prompt / i18n validate), with clean-jsdoc build top-level (it renders the site with or without locales); plus an interactive menu.
  • @clean-jsdoc-theme/bhasha — the pure, browser-safe i18n core (chrome catalog, the t translator, LanguageProvider, and the API key/hash scheme) shared by the build and the UI.

Most users only ever install clean-jsdoc-theme (and @clean-jsdoc-theme/aadesh if they want multiple languages). The rest are internal building blocks — documented and reusable, but not something you wire up by hand.


TypeDoc support — Developer Preview

TypeScript projects can generate the same site through @clean-jsdoc-theme/typedoc, a plugin that feeds TypeDoc's reflections through the same setu → dwar core.

This is a developer preview — it's available to try today, but still maturing, so expect some rough edges. We're shipping it to gather real-world feedback; please give it a spin and let us know what you find.


Getting started

npm install --save-dev clean-jsdoc-theme jsdoc
// jsdoc.json
{
  "source": { "include": ["./src", "./README.md"] },
  "plugins": ["plugins/markdown"],
  "opts": {
    "destination": "dist",
    "recurse": true,
    "template": "node_modules/clean-jsdoc-theme/dist",
    "siteName": "My Library"
  }
}
jsdoc -c jsdoc.json
npx serve dist

Full docs: ankdev.me/clean-jsdoc-theme · TypeDoc: /theme/typedoc-getting-started · Localization: /guides/localize-your-docs


Breaking changes (from v4)

  • Options moved opts.theme_opts.*opts.* (the theme_opts block is gone; options are validated).
  • Renamed: base_urlbasePath, sectionssectionOrder; reshaped: titlesiteName (string or logo set), menu entries → { id, title, link/href, icon }.
  • Custom CSS/JS renamed to customCss/customCssFile + customJs/customJsFile.
  • Removed: the theme picker (default_theme/fallback-* — v5 ships light+dark + a toggle), favicon, homepageTitle, codepen, sort, and others; search is always on. (footer and meta are still supportedfooter now also accepts { file }, and meta keeps its array-of-tags shape.)
  • Output layout changed: SSR HTML + a co-located .md per page; assets live under _assets/ — v4-era hardcoded asset paths break.

Full mapping and before/after config: MIGRATION.md — or hand it to an LLM with the migrate-v4-to-v5 skill and let it do the rename/reshape/verify for you.


Thanks & feedback

v5 is a large rewrite — thank you to everyone who tested the alphas. Found a bug or have a request? Open an issue or start a discussion. If the theme saves you time, consider sponsoring.


Configuration

📅 Schedule: (in timezone America/New_York)

  • Branch creation
    • At any time (no schedule defined)
  • Automerge
    • At any time (no schedule defined)

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

Rebasing: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about this update again.


  • If you want to rebase/retry this PR, check this box

This PR was generated by Mend Renovate. View the repository job log.

@renovate

renovate Bot commented Jun 16, 2026

Copy link
Copy Markdown
Contributor Author

ℹ️ Artifact update notice

File name: package-lock.json

npm --before could not be enforced because existing locked packages were published after the minimumReleaseAge cutoff. This will resolve after the next lock file maintenance run.

@renovate renovate Bot force-pushed the renovate/clean-jsdoc-theme-5.x branch 4 times, most recently from e9b13ce to 32bac5f Compare June 20, 2026 18:39
@renovate renovate Bot force-pushed the renovate/clean-jsdoc-theme-5.x branch from 32bac5f to c51e071 Compare June 23, 2026 05:05
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants