Skip to content

docs: add automated branded Docusaurus site - #807

Open
bballdavis wants to merge 11 commits into
DialmasterOrg:devfrom
bballdavis:docs/automated-docusaurus-site
Open

bballdavis wants to merge 11 commits into
DialmasterOrg:devfrom
bballdavis:docs/automated-docusaurus-site

Conversation

@bballdavis

@bballdavis bballdavis commented Sep 8, 2026

Copy link
Copy Markdown
Collaborator

What I changed

I added a Docusaurus documentation site that builds from the Markdown files we already maintain. I kept the existing docs as the source of truth and made the site output deterministic.

I also:

  • added a manifest and generator that collect the root and docs/ Markdown files
  • added generated Quick Start content, OpenAPI JSON, and an API reference
  • added branded navigation, dark mode, local search, responsive styling, and the Youtarr assets
  • added docs:check, docs:build, and related npm scripts
  • added a documentation job to CI and made check-all wait for it
  • added a GitHub Pages workflow that builds on pushes to main
  • updated Swagger discovery so annotated route files are included automatically
  • made documentation coverage compare the generated manifest with all eligible Markdown sources
  • preserved Docusaurus heading anchors when rewriting same-page and cross-page links
  • added coverage for new Markdown files, excluded CLAUDE.md, and the Docker migrations heading link

Why I made this

I want the documentation we already write to stay in one place while the public site stays current. When the source Markdown or API routes change, the checks and site build will catch broken links and regenerate the site.

Validation

I ran the original documentation checks and verified the PR workflow:

  • npm run docs:check
  • npm run docs:build
  • the website TypeScript check
  • focused Swagger and route tests
  • the backend test suite
  • Compose validation
  • rendered desktop and mobile checks
  • GitHub Actions Documentation Site passed on the current PR head
  • Claude Code Review passed on the current PR head

The generated output stays ignored under website/.generated/ and website/build/.

The aggregate All Checks job is currently blocked by the repository Security Audit job reporting existing runtime dependency advisories. Those dependency changes are outside this documentation update.

After this reaches main, GitHub Pages will publish the site at https://dialmasterorg.github.io/Youtarr/.

This is a draft so I can review the scope and the generated output before making it ready.

@bballdavis
bballdavis marked this pull request as ready for review September 8, 2026 18:51
@bballdavis
bballdavis marked this pull request as draft September 8, 2026 18:52
@bballdavis bballdavis self-assigned this Sep 8, 2026
@bballdavis bballdavis added the enhancement New feature or request label Sep 8, 2026
Comment thread website/scripts/generate-content.test.mjs Outdated
Comment thread website/scripts/generate-content.mjs Outdated
@bballdavis
bballdavis marked this pull request as ready for review September 9, 2026 14:12
Comment thread website/docusaurus.config.ts Outdated
Comment thread website/scripts/generate-content.test.mjs Outdated

@dialmaster dialmaster left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

One more thing before I approve: website/package-lock.json is basically missing the resolved and integrity fields. Only 11 of the 1311 entries have them (the root lockfile has them on all 830). Those hashes are how npm ci confirms the tarball it downloads is the exact one the lock was generated from, so without them the version pins don't actually protect us from anything. I'm guessing the lock got built from a node_modules that was installed some other way first.

Can you delete website/node_modules and the lockfile, run npm install in website/, and commit the regenerated lock?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants