Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
24 commits
Select commit Hold shift + click to select a range
bac8a4b
Render the API reference as Hugo content instead of embedding javadoc…
shai-almog Sep 8, 2026
c93b8f9
Fix both CI failures and the five review findings on the API pages
shai-almog Sep 8, 2026
5871b49
See also: read a backticked reference, and render a markdown one as m…
shai-almog Sep 8, 2026
af3d808
Keep the HTML left in markdown comments instead of silently dropping it
shai-almog Sep 8, 2026
85cf883
Make the API validation step quote-agnostic, and the parity gate non-…
shai-almog Sep 8, 2026
00d4272
Second review round: six findings, all real, plus the residue one of …
shai-almog Sep 8, 2026
bb0b672
Gate internal API links, and fix the two kinds of dead link it found
shai-almog Sep 8, 2026
19416f7
Third review round: five findings, all real
shai-almog Sep 8, 2026
c11a4ff
Fourth review round: resolve names in context, and spell non-finite d…
shai-almog Sep 8, 2026
3cf6e72
Fifth review round: four findings, all real
shai-almog Sep 8, 2026
3f08b45
Sixth review round: four findings, all real
shai-almog Sep 8, 2026
2915c1d
Seventh review round: three findings, all real
shai-almog Sep 8, 2026
3dccbf3
Eighth review round: a latent crash, a hole in my own gate, and three…
shai-almog Sep 8, 2026
3afb1c9
Ninth review round: four findings, all real, and 22 safety notes reco…
shai-almog Sep 8, 2026
d766024
Tenth review round: four findings, and a third gate pass for the blin…
shai-almog Sep 8, 2026
c755cd8
Eleventh review round: search results showed their own markdown source
shai-almog Sep 8, 2026
2ae7dd8
Publish API pages at URLs Cloudflare Pages can actually serve
shai-almog Sep 8, 2026
3bcef04
Twelfth review round: six findings, one of them 1189 lost links
shai-almog Sep 8, 2026
06488b1
Thirteenth review round: three findings, one a regression of my own
shai-almog Sep 8, 2026
acc5452
Render enum constants as constants, not as fields
shai-almog Sep 9, 2026
73842e6
Split trailing sections out of every block tag, and keep interfaces o…
shai-almog Sep 9, 2026
14a88cd
Annotation types are interfaces too, in every traversal
shai-almog Sep 9, 2026
a142351
Stop promoting abstract members a published class already implements,…
shai-almog Sep 9, 2026
33d5154
Resolve unqualified references the way the language does, and stop tr…
shai-almog Sep 9, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
43 changes: 43 additions & 0 deletions .github/workflows/website-docs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,10 @@ on:
# The Hugo build embeds JavaDocs produced by this script, so a change
# to how the docs are generated must redeploy the website too.
- '.github/scripts/build_javadocs.sh'
# The doclet that renders the API pages themselves. It is outside the
# maven reactor and built only by this workflow, so nothing else would
# catch a change to it.
- 'maven/javadoc-hugo-doclet/**'
- '.github/workflows/website-docs.yml'
push:
branches: [main, master]
Expand All @@ -61,6 +65,10 @@ on:
# The Hugo build embeds JavaDocs produced by this script, so a change
# to how the docs are generated must redeploy the website too.
- '.github/scripts/build_javadocs.sh'
# The doclet that renders the API pages themselves. It is outside the
# maven reactor and built only by this workflow, so nothing else would
# catch a change to it.
- 'maven/javadoc-hugo-doclet/**'
- '.github/workflows/website-docs.yml'
workflow_dispatch:
inputs:
Expand Down Expand Up @@ -206,6 +214,41 @@ jobs:
# on their actual date.
HUGO_BUILD_FUTURE: ${{ github.event_name == 'pull_request' && 'true' || 'false' }}

- name: Validate API reference output
run: |
set -euo pipefail
test -f docs/website/public/javadoc/index.html
# Pages are published at the directory URL, because Cloudflare Pages
# will not serve a .html one: see check-javadoc-urls.sh.
test -f docs/website/public/javadoc/com/codename1/ui/Component/index.html
test -f docs/website/public/javadoc/com/codename1/ui/package-summary/index.html
test -f docs/website/public/javadoc-search.json
# The fragment encoding is the compatibility surface, so assert one of
# the awkward spellings rather than only that the page exists. This is
# a canary for the parity gate rather than a duplicate of it: the gate
# compares two trees, and a gate that ends up comparing nothing reports
# nothing missing.
#
# Quotes are optional because the site is built with --minify and the
# minifier drops them wherever HTML allows: this page really does carry
# id=createImage(byte[],int,int) with no quotes at all.
grep -Eq 'id="?createImage\(byte\[\],int,int\)"?' \
docs/website/public/javadoc/com/codename1/ui/Image/index.html
# The old integration copied the standard doclet's tree into static/
# and scoped its stylesheet with a script. Nothing should reintroduce
# either: they are what broke dark mode.
test ! -e docs/website/static/javadoc
test ! -e docs/website/assets/js/cn1-javadoc.js

- name: Validate API URLs on the Pages runtime
run: |
set -euo pipefail
# Asks the server rather than the filesystem. Everything else was green
# on a build where clicking any class left the site: Pages redirects
# /x.html to /x before an asset is considered, so the page published at
# the extension was one nobody could reach.
scripts/website/check-javadoc-urls.sh docs/website/public 8789

- name: Validate Port Status page output
run: |
set -euo pipefail
Expand Down
9 changes: 9 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -114,6 +114,15 @@ dependency-reduced-pom.xml
# docs/developer-guide on every run, so a committed copy is both duplicated
# source and guaranteed stale. 485 files of it were committed by accident once.
/docs/website/static/developer-guide/
# The API reference is generated into the content tree by the Hugo doclet on
# every run of scripts/website/build.sh, one file per documented type. Roughly
# 1850 generated pages have no business in the history: the sources they are
# rendered from are already committed.
/docs/website/content/javadoc/
/docs/website/static/javadoc-search.json
# Left behind by the previous integration, which copied the whole standard
# doclet tree into static/ and served it through a scoping script.
/docs/website/static/javadoc/
/docs/website/.hugo_build.lock
/docs/website/hugo_stats.json
/docs/website/resources/
Expand Down
Loading
Loading