Skip to content

docs: add Docusaurus docs site with EN/JA i18n and GitHub Pages deploy#25

Merged
23prime merged 6 commits intomainfrom
docs/mkdocs
Mar 10, 2026
Merged

docs: add Docusaurus docs site with EN/JA i18n and GitHub Pages deploy#25
23prime merged 6 commits intomainfrom
docs/mkdocs

Conversation

@23prime
Copy link
Owner

@23prime 23prime commented Mar 10, 2026

Checklist

  • Target branch is main
  • Status checks are passing
  • Documentation updated if user-visible behavior changed (website/docs/, website/i18n/ja/, README.md)

Summary

  • Add Docusaurus 3 documentation site under website/ with EN/JA multi-language support
  • Deploy to GitHub Pages on tag push via GitHub Actions (native Pages approach)
  • Remove old docs/user-guide.md / docs/user-guide.ja.md (content moved to website/)
  • Update README links to point to the hosted docs site

Reason for change

The single-file user guide was hard to navigate and lacked proper i18n support. Docusaurus provides a polished multi-language docs site with sidebar navigation and search.

Changes

  • website/ — Docusaurus 3 site (EN docs + JA i18n translations, Mermaid support)
  • .github/workflows/docs.yml — deploy to GitHub Pages on v* tag push using actions/upload-pages-artifact + actions/deploy-pages (no gh-pages branch)
  • mise.toml — add node, docs-install, docs-serve, docs-build tasks
  • README.md / README.ja.md — link to hosted docs site instead of local markdown
  • AGENTS.md — update doc path references
  • .github/PULL_REQUEST_TEMPLATE.md — add doc-update reminder to checklist
  • docs/user-guide.* — removed (superseded by website/)

Notes

Local preview: mise run docs-serve (builds all locales and serves at http://localhost:3000/backlog-cli/)

Docs will be live at https://23prime.github.io/backlog-cli/ after the first tagged release. GitHub Pages must be configured to use GitHub Actions as the source (Settings → Pages → Source → GitHub Actions).

23prime added 2 commits March 10, 2026 09:13
Sets up a Docusaurus 3 site under website/ with multi-language support
(EN default, JA via i18n plugin). Adds mise tasks for local build and
serve, and a GitHub Actions workflow to deploy on tag push.
Remove old docs/user-guide.md and docs/user-guide.ja.md now that content
lives in website/. Update README links to point to the hosted docs site.
Add doc-update reminder to AGENTS.md and PR template checklist.
Copilot AI review requested due to automatic review settings March 10, 2026 00:14
@coderabbitai
Copy link

coderabbitai bot commented Mar 10, 2026

Warning

Rate limit exceeded

@23prime has exceeded the limit for the number of commits that can be reviewed per hour. Please wait 9 minutes and 36 seconds before requesting another review.

⌛ How to resolve this issue?

After the wait time has elapsed, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

We recommend that you space out your commits to avoid hitting the rate limit.

🚦 How do rate limits work?

CodeRabbit enforces hourly rate limits for each developer per organization.

Our paid plans have higher rate limits than the trial, open-source and free plans. In all cases, we re-allow further reviews after a brief timeout.

Please see our FAQ for further information.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: d3412d76-0022-4e2e-bba6-079086d2ec95

📥 Commits

Reviewing files that changed from the base of the PR and between 7ef5362 and 1b90843.

📒 Files selected for processing (12)
  • .github/workflows/docs.yml
  • uninstall.ps1
  • uninstall.sh
  • website/docs/authentication.md
  • website/docs/commands.md
  • website/docs/installation.md
  • website/docs/troubleshooting.md
  • website/i18n/ja/docusaurus-plugin-content-docs/current/authentication.md
  • website/i18n/ja/docusaurus-plugin-content-docs/current/commands.md
  • website/i18n/ja/docusaurus-plugin-content-docs/current/installation.md
  • website/i18n/ja/docusaurus-plugin-content-docs/current/troubleshooting.md
  • website/package.json
📝 Walkthrough

Walkthrough

This PR establishes a Docusaurus-based documentation site in the website/ directory, replacing inline documentation with a structured site supporting English and Japanese. Updates READMEs and tooling to reference new documentation locations, adds GitHub Actions for automated deployment, and configures development tasks.

Changes

Cohort / File(s) Summary
Configuration Updates
.cspell.yml, .cspell/dicts/project.txt, .github/PULL_REQUEST_TEMPLATE.md
Minor updates: added pnpm lockfile to spell-check ignores, added "peaceiris" token to dictionary, and added documentation update checklist item to PR template.
GitHub Actions Workflow
.github/workflows/docs.yml
New automated deployment workflow that builds and deploys documentation to GitHub Pages on version tags (v*) or manual dispatch, using Node.js LTS and peaceiris/actions-gh-pages.
Root Documentation Updates
README.md, README.ja.md, AGENTS.md
Updated references to point from internal docs/user-guide files to new external Docusaurus site URLs; updated terminology from "User Guide" to "Documentation".
Removed Documentation
docs/user-guide.ja.md
Complete removal of the 905-line Japanese user guide; content migrated to new website documentation structure.
Development Tooling
mise.toml
Added Node.js LTS tool entry and created three new tasks for documentation: docs-install, docs-serve, and docs-build with multi-line run commands.
Docusaurus Site Infrastructure
website/docusaurus.config.js, website/sidebars.js, website/package.json, website/src/css/custom.css, website/.gitignore
Complete Docusaurus setup with English/Japanese locales, mermaid support, custom styling, and dependency configuration for classic preset with docs at root.
English Documentation
website/docs/index.md, website/docs/installation.md, website/docs/authentication.md, website/docs/commands.md, website/docs/configuration.md, website/docs/troubleshooting.md
Six new documentation files covering project overview, installation/uninstallation, API key and OAuth 2.0 authentication, command reference, config file locations, and troubleshooting scenarios.
Japanese Documentation
website/i18n/ja/docusaurus-plugin-content-docs/current/index.md, website/i18n/ja/docusaurus-plugin-content-docs/current/installation.md, website/i18n/ja/docusaurus-plugin-content-docs/current/authentication.md, website/i18n/ja/docusaurus-plugin-content-docs/current/commands.md, website/i18n/ja/docusaurus-plugin-content-docs/current/configuration.md, website/i18n/ja/docusaurus-plugin-content-docs/current/troubleshooting.md
Japanese translations of all six documentation pages with identical structure and content as English versions for bilingual support.

Estimated code review effort

🎯 4 (Complex) | ⏱️ ~40 minutes

Possibly related PRs

Poem

🐰 A warren of docs, now structured with care,
In Docusaurus halls, in English and fair—
Two tongues sing together, the website takes flight,
With pages deployed by GitHub's own might! 📚✨

🚥 Pre-merge checks | ✅ 3
✅ Passed checks (3 passed)
Check name Status Explanation
Title check ✅ Passed The title clearly and concisely describes the main change: adding a Docusaurus documentation site with internationalization and GitHub Pages deployment, which is the primary focus of this PR.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Description check ✅ Passed The pull request description clearly relates to the changeset, detailing the addition of a Docusaurus documentation site, GitHub Pages deployment, removal of legacy docs, and updates to README and configuration files.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch docs/mkdocs
✨ Simplify code
  • Create PR with simplified code
  • Commit simplified code in branch docs/mkdocs

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

This PR migrates project documentation from the previous single-file Markdown guides to a Docusaurus site under website/ with English/Japanese i18n, and adds a GitHub Actions workflow to deploy the built site to GitHub Pages on version tag pushes.

Changes:

  • Add a Docusaurus docs site (website/) with EN docs and JA translations, including Mermaid support and sidebar navigation.
  • Add a GitHub Actions workflow to build and publish the docs site to gh-pages on v* tag pushes.
  • Update developer tooling and repo docs/links (mise tasks, README links, agent guidance), and remove the legacy docs/user-guide* files.

Reviewed changes

Copilot reviewed 26 out of 27 changed files in this pull request and generated 3 comments.

Show a summary per file
File Description
website/src/css/custom.css Adds Docusaurus theme customizations (primary colors, code font size).
website/sidebars.js Defines the docs sidebar structure/order.
website/package.json Adds the docs site package manifest and Docusaurus dependencies.
website/docusaurus.config.js Configures Docusaurus (i18n, baseUrl, Mermaid theme, navbar/footer).
website/.gitignore Ignores Docusaurus build artifacts and node_modules within website/.
website/docs/index.md Adds the English landing page (slug /) and quick start.
website/docs/installation.md Adds English installation/uninstallation documentation.
website/docs/authentication.md Adds English authentication documentation (API key + OAuth).
website/docs/commands.md Reworks the previous combined guide content into the Commands page structure.
website/docs/configuration.md Adds English config/credential storage locations and format.
website/docs/troubleshooting.md Adds English troubleshooting guidance for common auth/keyring issues.
website/i18n/ja/docusaurus-plugin-content-docs/current/index.md Adds Japanese landing page translation.
website/i18n/ja/docusaurus-plugin-content-docs/current/installation.md Adds Japanese installation/uninstallation translation.
website/i18n/ja/docusaurus-plugin-content-docs/current/authentication.md Adds Japanese authentication translation.
website/i18n/ja/docusaurus-plugin-content-docs/current/commands.md Adds Japanese commands reference translation.
website/i18n/ja/docusaurus-plugin-content-docs/current/configuration.md Adds Japanese configuration translation.
website/i18n/ja/docusaurus-plugin-content-docs/current/troubleshooting.md Adds Japanese troubleshooting translation.
.github/workflows/docs.yml Builds and deploys the docs site to GitHub Pages on tag pushes.
mise.toml Adds Node tooling and docs-related mise tasks (docs-install, docs-build, docs-serve).
README.md Updates links from local user guide to hosted documentation site (EN).
README.ja.md Updates links from local user guide to hosted documentation site (JA).
AGENTS.md Updates documentation-update guidance to reference the new Docusaurus paths.
.github/PULL_REQUEST_TEMPLATE.md Updates checklist to remind contributors to update website/ docs.
.cspell/dicts/project.txt Adds peaceiris to project dictionary for workflow spelling checks.
.cspell.yml Ignores pnpm-lock.yaml for spell checking.
docs/user-guide.ja.md Removes legacy Japanese user guide (content moved to website/).

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 7

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (2)
website/docs/commands.md (2)

23-29: ⚠️ Potential issue | 🟡 Minor

bl space --json is undocumented in the main space section.

src/main.rs:47-77 defines a top-level --json flag for bl space, but the examples here only show the plain command. Add a bl space --json example or mention the flag in the description.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@website/docs/commands.md` around lines 23 - 29, The docs for the "bl space"
command omit the top-level --json flag; update the "bl space" section to mention
the --json option and show an example (e.g., "bl space --json") or add a short
sentence stating that a global --json flag (defined in main) can be used to
output JSON; edit the `bl space` description in website/docs/commands.md and
include the `--json` flag name and a sample invocation so readers know the flag
exists and how to use it.

13-21: ⚠️ Potential issue | 🟡 Minor

Auth command docs are missing implemented entries.

src/main.rs:524-564 also exposes bl auth keyring, and bl auth status supports --json. Those should be listed here so the new command reference stays complete.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@website/docs/commands.md` around lines 13 - 21, The docs table is missing the
implemented auth entries: add a row for the `bl auth keyring` command
(describing its purpose, e.g., manage or migrate credentials via the system
keyring) and update the `bl auth status` entry to mention the `--json` flag
(e.g., "Show current auth status and verify credentials; supports `--json`
output for machine-readable results"); ensure the exact command names (`bl auth
keyring`, `bl auth status --json`) match the CLI implementation so the command
reference is complete and discoverable.
🧹 Nitpick comments (3)
.github/PULL_REQUEST_TEMPLATE.md (1)

6-6: Include README.ja.md in this checklist item.

This PR updates both READMEs, but the checklist only names the English one. Adding README.ja.md here would make localization drift a little harder to miss in future docs-only changes.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In @.github/PULL_REQUEST_TEMPLATE.md at line 6, Update the PR checklist item
that currently reads "Documentation updated if user-visible behavior changed
(`website/docs/`, `website/i18n/ja/`, `README.md`)" to also include
`README.ja.md` so localized README changes are explicitly covered; edit the
checklist text in .github/PULL_REQUEST_TEMPLATE.md to list `README.ja.md`
alongside `README.md` (and keep the existing entries) to prevent missing
localized README updates.
website/package.json (1)

17-19: Pin the pnpm version in packageManager.

CI enables pnpm via Corepack, but this manifest doesn't declare a packageManager. Corepack resolves the package manager version from that field; without it, installs fall back to the runner's default Corepack/pnpm selection, so behavior can drift as lts/* moves. Add an exact pnpm@... here to keep local and CI installs reproducible. (nodejs.org)

♻️ Suggested change
   "engines": {
     "node": ">=18.0"
-  }
+  },
+  "packageManager": "pnpm@<exact-version>"
 }
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@website/package.json` around lines 17 - 19, Add a packageManager field to
package.json to pin the pnpm version so Corepack resolves a stable installer;
update the top-level manifest by adding e.g. "packageManager": "pnpm@8.8.0" (or
the exact pnpm version your CI uses) alongside the existing "engines" entry,
then commit the change so local and CI installs are reproducible.
website/docusaurus.config.js (1)

5-6: Remove commented-out code.

The commented line // title: 'backlog-cli', is redundant since the actual title is set on the next line.

🧹 Suggested cleanup
-  // title: 'backlog-cli',
   title: 'Backlog CLI',
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@website/docusaurus.config.js` around lines 5 - 6, Remove the redundant
commented-out title line "// title: 'backlog-cli'," from the Docusaurus config
so only the active title assignment (title: 'Backlog CLI') remains; locate the
title property in docusaurus.config.js and delete the commented duplicate, and
ensure no other obsolete commented title entries remain in that config.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In @.github/workflows/docs.yml:
- Around line 3-7: The workflow currently only triggers on tag pushes ('on' ->
'push' -> 'tags: - "v*"') and manual dispatch ('workflow_dispatch'), which means
the site won't be deployed for the initial bootstrap and README links on main
will break; update the workflow triggers to also deploy on pushes to the main
branch (add 'push' -> 'branches: - "main"' alongside the existing 'tags' entry)
so the first Pages deployment runs after merge, or alternatively revert README
links until the site is live; ensure you modify the 'on', 'push', 'tags' and
'workflow_dispatch' entries accordingly.

In `@website/docs/authentication.md`:
- Around line 100-111: Update the OAuth example and explanatory text in
authentication.md to match the actual output of the bl auth status command: add
a "Stored in: System keyring" line to the OAuth example block (so the block
includes "Auth method", "Client ID", "Client Secret", "Access token", "Stored
in: System keyring", and "Logged in as"), change the sentence about BL_API_KEY
to say "When API-key auth is being used via BL_API_KEY, Stored in shows
Environment variable" and add a clarifying sentence that stored OAuth tokens for
a space take precedence over BL_API_KEY so the OAuth status will be shown if
present; apply the same wording change to the Japanese translation as well.

In `@website/docs/commands.md`:
- Around line 3-9: The docs incorrectly list `--banner` as a global option;
update the page to remove `--banner` from the "Global options" table and either
(a) create a separate "Top-level flags" or "Global flags (root only)" section
that documents `--banner` as a root-level flag, or (b) rename the current
section to "Common options" and explicitly state which flags are global vs
root-only; ensure `--no-color` and `--space <SPACE_KEY>` remain documented as
global options and that `--banner` is clearly marked as non-global/root-only
(reference the `--banner`, `--no-color`, and `--space` flags to locate the
corresponding entries).

In `@website/docs/installation.md`:
- Around line 81-87: The docs claim the uninstall scripts run "bl auth logout
--all" with --purge but the actual uninstall scripts call "bl auth logout"
(leaving non-current spaces behind); update both uninstall scripts so the purge
flow invokes "bl auth logout --all" (ensure the code path handling the
--purge/--Purge flag calls the CLI with the --all flag), and update the
corresponding Japanese docs page to match the corrected behavior.
- Around line 25-30: The INSTALL_DIR environment variable in the install example
is exported on the curl process, so it won't be visible to the shell that
executes the script; change the example so INSTALL_DIR is applied to the shell
that runs the script (e.g., attach INSTALL_DIR to the sh invocation or export it
before the pipeline) so the installer sees INSTALL_DIR and installs to the
intended location; update the example line that constructs the pipeline (the
curl | sh snippet) to move INSTALL_DIR from the left side of the pipe to the sh
command (or use export) so the installer uses the provided INSTALL_DIR.

In `@website/docs/troubleshooting.md`:
- Around line 3-5: Update the heading and explanatory sentence for the "API key
not found. Run bl auth login to authenticate." section so it no longer assumes
only the keyring; change the text to indicate that "no stored credentials were
found" and instruct the user to run `bl auth login` (or check environment
variables / fallback file) as applicable, ensuring the heading string and the
explanatory line are replaced accordingly.

In `@website/i18n/ja/docusaurus-plugin-content-docs/current/commands.md`:
- Around line 13-21: Add a new table row for the missing subcommand: insert the
row for `bl auth keyring` into the Markdown table in commands.md so it reads: |
`bl auth keyring` | システムキーリングが利用可能かをチェック |; ensure it follows the same table
formatting as the other rows and is placed with the other `bl auth ...` entries
so the table remains valid Markdown and aligned with existing entries like `bl
auth login` and `bl auth logout`.

---

Outside diff comments:
In `@website/docs/commands.md`:
- Around line 23-29: The docs for the "bl space" command omit the top-level
--json flag; update the "bl space" section to mention the --json option and show
an example (e.g., "bl space --json") or add a short sentence stating that a
global --json flag (defined in main) can be used to output JSON; edit the `bl
space` description in website/docs/commands.md and include the `--json` flag
name and a sample invocation so readers know the flag exists and how to use it.
- Around line 13-21: The docs table is missing the implemented auth entries: add
a row for the `bl auth keyring` command (describing its purpose, e.g., manage or
migrate credentials via the system keyring) and update the `bl auth status`
entry to mention the `--json` flag (e.g., "Show current auth status and verify
credentials; supports `--json` output for machine-readable results"); ensure the
exact command names (`bl auth keyring`, `bl auth status --json`) match the CLI
implementation so the command reference is complete and discoverable.

---

Nitpick comments:
In @.github/PULL_REQUEST_TEMPLATE.md:
- Line 6: Update the PR checklist item that currently reads "Documentation
updated if user-visible behavior changed (`website/docs/`, `website/i18n/ja/`,
`README.md`)" to also include `README.ja.md` so localized README changes are
explicitly covered; edit the checklist text in .github/PULL_REQUEST_TEMPLATE.md
to list `README.ja.md` alongside `README.md` (and keep the existing entries) to
prevent missing localized README updates.

In `@website/docusaurus.config.js`:
- Around line 5-6: Remove the redundant commented-out title line "// title:
'backlog-cli'," from the Docusaurus config so only the active title assignment
(title: 'Backlog CLI') remains; locate the title property in
docusaurus.config.js and delete the commented duplicate, and ensure no other
obsolete commented title entries remain in that config.

In `@website/package.json`:
- Around line 17-19: Add a packageManager field to package.json to pin the pnpm
version so Corepack resolves a stable installer; update the top-level manifest
by adding e.g. "packageManager": "pnpm@8.8.0" (or the exact pnpm version your CI
uses) alongside the existing "engines" entry, then commit the change so local
and CI installs are reproducible.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: bfd4993b-e3ba-4e54-a09e-65edb560ebfe

📥 Commits

Reviewing files that changed from the base of the PR and between 039f8a9 and 7ef5362.

⛔ Files ignored due to path filters (1)
  • website/pnpm-lock.yaml is excluded by !**/pnpm-lock.yaml
📒 Files selected for processing (26)
  • .cspell.yml
  • .cspell/dicts/project.txt
  • .github/PULL_REQUEST_TEMPLATE.md
  • .github/workflows/docs.yml
  • AGENTS.md
  • README.ja.md
  • README.md
  • docs/user-guide.ja.md
  • mise.toml
  • website/.gitignore
  • website/docs/authentication.md
  • website/docs/commands.md
  • website/docs/configuration.md
  • website/docs/index.md
  • website/docs/installation.md
  • website/docs/troubleshooting.md
  • website/docusaurus.config.js
  • website/i18n/ja/docusaurus-plugin-content-docs/current/authentication.md
  • website/i18n/ja/docusaurus-plugin-content-docs/current/commands.md
  • website/i18n/ja/docusaurus-plugin-content-docs/current/configuration.md
  • website/i18n/ja/docusaurus-plugin-content-docs/current/index.md
  • website/i18n/ja/docusaurus-plugin-content-docs/current/installation.md
  • website/i18n/ja/docusaurus-plugin-content-docs/current/troubleshooting.md
  • website/package.json
  • website/sidebars.js
  • website/src/css/custom.css
💤 Files with no reviewable changes (1)
  • docs/user-guide.ja.md

23prime added 4 commits March 10, 2026 09:46
Replace peaceiris/actions-gh-pages with actions/upload-pages-artifact
and actions/deploy-pages to avoid managing a gh-pages branch, which
conflicts with tag-based release workflow.
Previously only the current space's credentials were removed. The --purge
flag should clear all spaces.
@23prime 23prime merged commit 4c5a480 into main Mar 10, 2026
8 checks passed
@23prime 23prime deleted the docs/mkdocs branch March 10, 2026 01:06
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants