proomt

Search

Search posts, papers, and topics

All posts

CodeName OneShai Almog4 min readintermediate

Javadoc That Feels Like Your Website

Summary

Codename One replaced its Javadoc‑generated site with a Hugo‑based pipeline: a custom doclet emits one Hugo content file per Java type, preserving Markdown comments, generating a lightweight search index, and keeping the traditional offline Javadoc archive. The approach reduces index size (1.9 MB → 341 KB gzipped), retains existing anchors, and can be reused for other Java projects.

  • A custom doclet (`maven/javadoc-hugo-doclet`) converts the Javadoc model into Hugo front‑matter files, letting the static site generator handle layout and theming.
  • Java 23+ Markdown doc comments are passed unchanged to Hugo’s Goldmark renderer, avoiding double‑parsing.
  • `MarkdownSections` extracts conventional headings (Parameters, Returns, etc.) into structured data while preserving author‑defined sections.
  • Search index built from the API model is ~5× smaller than a naïve JSON dump (1.9 MB → 341 KB gzipped).

Integrating documentation generation with the site’s own build pipeline eliminates CSS/JS wrapper hacks, provides a consistent look across guide and API, and improves discoverability by surfacing API members in the site search. The reduced index size speeds up client‑side search, and the anchor‑pre…

6/10

Related reading

  1. JavaScript Find in Page: DOM Text Above the Codename One Canvas

    The Codename One JavaScript port now projects eligible text runs from its canvas onto an absolute‑positioned DOM layer, restoring browser find‑in‑page, selection, and accessibility while keeping layout on the canvas. It also adds high‑DPI backing, incremental semantic diffing, and richer input attributes, with a few edge cases still rendered on the canvas.

    CodeName Onecodenameone.com4 min
  2. Beyond jj: config & tools ecosystem

    A talk‑style overview of the growing jj ecosystem, covering new built‑ins (bookmark‑advance, bisect‑run, run, fix, tag, arrange, converge), clever alias tricks (subcommand aliases, git‑push‑like publish alias), the community‑maintained alias directory, and current forge integrations (GitHub stacked PRs, JJHub, Radicle, Tangled).

    Lobstersarko.net16 mintalklobste.rs89
  3. Article: Your Next DSL Author Is a Language Model

    Typed Domain Grounding (TDG) embeds a DSL inside a mainstream language the LLM already knows (e.g., Kotlin) and uses the host compiler as an oracle. The author describes five building blocks—embedding, choosing a host language with high training‑data frequency, compiler‑driven type safety, a generate‑compile‑repair loop, and an on‑demand teaching tool—and shows measured results from kUML, a Kotli…

    InfoQinfoq.com18 min