Skip to content

docs: add complete static user documentation - #291

Open
WilliamWang1721 wants to merge 58 commits into
Kuddev:mainfrom
WilliamWang1721:docs/complete-user-guide-20260924
Open

WilliamWang1721 wants to merge 58 commits into
Kuddev:mainfrom
WilliamWang1721:docs/complete-user-guide-20260924

Conversation

@WilliamWang1721

@WilliamWang1721 WilliamWang1721 commented Sep 25, 2026 •

Copy link
Copy Markdown
Contributor

Title

docs: add complete static user documentation

Description

Summary

Add a complete, fully static user documentation website for Pebrel, designed around the current Pebrel 1.9.1 experience.

The documentation is written from a user-first perspective: where to go, what to click, what to enter, and what result to expect, rather than explaining internal implementation details.

What’s included

  • 51 task-oriented guides covering:
    • Installation and first launch
    • Terminal basics
    • Shells and WSL
    • Tabs, panes, layouts, and workspaces
    • SSH connections, authentication, host management, and SSH config
    • SFTP and remote file operations
    • Local and remote file editing
    • Git, conflict handling, and SVN
    • Markdown and document viewing/editing
    • AI CLI workflows and session history
    • Appearance, themes, fonts, and backgrounds
    • Lua configuration and practical configuration examples
    • Updates, migration, privacy, networking, and troubleshooting
  • A polished responsive documentation UI with:
    • Light and dark themes
    • Local full-text search
    • Keyboard navigation
    • Rich Markdown rendering
    • Syntax-highlighted code blocks with copy actions
    • Table of contents and heading anchors
    • Image zoom
    • Mobile navigation
    • Reduced-motion support
    • Print-friendly styles
  • GitHub Pages support with completely static output and relative URLs.

Documentation style

The documentation was rewritten to behave like a product guide rather than an implementation note.

Instructions now focus on concrete user actions and expected results, with technical details included only where they help explain behavior or resolve a problem.

The landing page was also simplified by removing unnecessary introductory labels and descriptive copy.

Screenshots

Existing Pebrel screenshots are reused where appropriate.

The site also includes an unchanged macOS screenshot captured by Pebrel’s official 1.9.1 release workflow, with its source recorded in the documentation metadata.

Validation

  • The current source already has a no-JavaScript mobile sidebar fallback and a browser check that opens a navigation link.
  • This update adds stale-output cleanup, output-path protection, and regression coverage; package examples now use the documented 1.9.1 asset names.
  • Synced upstream main at 77e6470 in merge commit 920079e; the contributor guide now matches main's full five-platform Draft/Ready CI policy.
  • For head d67436a, PR size (36435819923), Architecture contracts (36435820050), User documentation (36435820051) and Full native tests (36435820598) are queued. No post-sync checks have completed; no local build or tests were run. PR size · Architecture contracts · User documentation · Full native tests.

Scope

This PR only adds documentation and documentation-site infrastructure.

It does not modify Pebrel desktop runtime behavior or application dependencies.

AI assistance: GPT-6 Luna (max).

@WilliamWang1721
WilliamWang1721 force-pushed the docs/complete-user-guide-20260924 branch from de7f79d to 5aba1a1 Compare September 25, 2026 04:38
@WilliamWang1721
WilliamWang1721 force-pushed the docs/complete-user-guide-20260924 branch from 7468caf to 3455dcc Compare September 25, 2026 05:24

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Copilot review overview

🟡 Changes recommended

Unresolved moderate findings affect navigation, generated output, copied content, and installation guidance.

Review effort: Lite
Findings: 3 Medium severity · 1 Low severity

Open (4)
What changed in this PR

Adds a static Chinese Pebrel 1.9.1 documentation site with task-oriented guides, responsive UI, search, validation, and GitHub Pages support.

Changes:

  • Adds 53 Markdown documentation pages.
  • Adds static generation, themes, navigation, search, and browser checks.
  • Adds provenance metadata, licensing notices, and deployment workflow.

Review findings:

  • Moderate findings remain for no-JavaScript mobile navigation, stale build output, unresolved copy-page image tokens, and installation filenames.
  • Nit findings remain for the documented page count and a typo.
File Summary
docs/​site/​third-party-notices.txt Pygments licensing notice
docs/​site/​test_site.py Structural and link validation
docs/​site/​template.html Shared HTML template
docs/​site/​site.json Navigation and metadata
docs/​site/​screenshots.json Screenshot provenance
docs/​site/​requirements.txt Build dependencies
docs/​site/​README.md Build and deployment instructions
docs/​site/​content/​wsl.md WSL usage guide
docs/​site/​content/​workspace.md Tabs and panes guide
docs/​site/​content/​vcs.md Git and SVN workflows
docs/​site/​content/​updates.md Update procedures
docs/​site/​content/​troubleshooting.md Troubleshooting guidance
docs/​site/​content/​themes.md Theme customization
docs/​site/​content/​terminal-basics.md Terminal fundamentals
docs/​site/​content/​svn.md SVN operations
docs/​site/​content/​ssh.md SSH connections
docs/​site/​content/​ssh-routing.md Proxies and jump hosts
docs/​site/​content/​ssh-library.md SSH host management
docs/​site/​content/​ssh-config.md SSH configuration
docs/​site/​content/​ssh-auth.md SSH authentication
docs/​site/​content/​shells.md Shell configuration
docs/​site/​content/​sftp.md SFTP transfers
docs/​site/​content/​settings.md Settings index
docs/​site/​content/​sessions.md Session persistence
docs/​site/​content/​send-to-chat.md Sending terminal output to AI
docs/​site/​content/​runtime.md Runtime automation
docs/​site/​content/​remote-edit.md Remote file editing
docs/​site/​content/​readme.md Project overview
docs/​site/​content/​quickstart.md First-use walkthrough
docs/​site/​content/​quick-terminal.md Quick terminal behavior
docs/​site/​content/​privacy.md Data handling
docs/​site/​content/​palette.md Command palette
docs/​site/​content/​notifications.md Notifications
docs/​site/​content/​network.md Network proxy settings
docs/​site/​content/​navigation.md Quick navigation
docs/​site/​content/​migration.md Backup and migration
docs/​site/​content/​markdown-editing.md Markdown editing
docs/​site/​content/​layouts.md Layout recipes
docs/​site/​content/​keyboard.md Shortcut reference
docs/​site/​content/​interaction.md Interaction settings
docs/​site/​content/​installation.md Platform installation
docs/​site/​content/​index.md Documentation landing page
docs/​site/​content/​images.md Image workflows
docs/​site/​content/​hooks.md Agent integrations
docs/​site/​content/​git-conflicts.md Conflict resolution
docs/​site/​content/​fonts.md Font configuration
docs/​site/​content/​files.md File browsing
docs/​site/​content/​documents.md Document viewing
docs/​site/​content/​contributing.md Contributor workflows
docs/​site/​content/​configuration.md Lua configuration
docs/​site/​content/​config-examples.md Lua examples
docs/​site/​content/​completions.md Command completion
docs/​site/​content/​commands.md Saved commands
docs/​site/​content/​clipboard.md Clipboard operations
docs/​site/​content/​broadcast.md Broadcast input
docs/​site/​content/​backgrounds.md Background settings
docs/​site/​content/​appearance.md Appearance settings
docs/​site/​content/​ai-start.md AI CLI workflows
docs/​site/​content/​ai-history.md AI session history
docs/​site/​content/​agent-worktrees.md Isolated AI worktrees
docs/​site/​check_browser.py Browser smoke checks
docs/​site/​build.py Static site generation
docs/​site/​assets/​site.js Search, themes, navigation, and interactions
architecture/​notes/​docs/​site/​2026-09-24-static-user-guide.md Static-site architecture
.gitignore Documentation source allowlist
.github/​workflows/​docs-site.yml CI validation and Pages deployment

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Comment thread docs/site/assets/site.css
Comment thread docs/site/build.py
Comment thread docs/site/content/installation.md Outdated
Comment thread docs/site/content/contributing.md Outdated
…1.1 baseline

- Add a "supported AI CLI/TUI" guide and rewrite the Agent integration, AI start
  and history pages from the real settings, menus and CLI entry points.
- Derive the site colours from the application's 16 built-in themes at build
  time (palettes.py) with a header theme picker; simplify the layout.
- Re-audit the base pages against the v2.1.1 tag: platform integrations on
  macOS/Linux, Windows ARM64 installer, release asset names, update channels,
  settings navigation, and 2.0/2.1 features. Pin the manifest to v2.1.1.
@WilliamWang1721

Copy link
Copy Markdown
Contributor Author

Pushed cddce85d to this PR.

What changed

  • Supported agents guide (docs/site/content/agents.md): which AI CLI/TUI Pebrel recognizes, and per tool the status detection, Agent integration, brand icon, resume and fork support. The Agent integration, AI start and AI history pages were rewritten from the real settings page, tab menu, history list and pebrel setup-ai entry points. This also fixes the old claims that hooks are Windows-only and that only Claude Code and Codex can resume or fork.
  • Colours and layout: the site now derives its palette from the application's 16 built-in themes at build time (docs/site/palettes.py, parsed from nebula_settings/src/themes.rs), with a header theme picker and "follow system" mapped to Nord Light / Nord. Text, muted, accent and syntax colours are checked for 4.5:1 contrast per theme. The layout was simplified (no hero art, card icons, progress bar, blur or entrance animations).
  • 2.1.1 baseline: the base pages were re-audited against the v2.1.1 tag (d574856) and the manifest, source links and per-page version notes now point at it. Updated: installation (release asset names, Windows ARM64 installer, Android APK), platform integrations on macOS/Linux, update channels, settings navigation, and the 2.0/2.1 features that reach the base pages.

Validation

  • Site build and python -m unittest discover -s docs/site -p test_site.py (10 tests, including a per-theme contrast and theme-picker check) pass locally. This is the documentation build, not the Rust test suite. check_browser.py was updated for the new theme picker but not run (no Playwright locally).
  • CI for this head is still queued.

Not changed: pages with no code differences between 1.9.1 and 2.1.1 were not re-read. check_browser.py needs a run in CI.

AI assistance: Claude Sonnet 5.5 (reasoning effort not confirmed).

Changing the palette repaints the page at once, but links and buttons faded
over 180 ms, so rounded cards, nav pills and buttons lingered in the old
colours against the new background for a moment. Disable transitions for the
frames in which the palette changes.
@WilliamWang1721

Copy link
Copy Markdown
Contributor Author

Pushed 4c8a7245: fixes a flash when switching the documentation colour theme.

Problem: after choosing a theme in the header picker, rounded cards, nav pills and buttons briefly stayed in the old colours against the new page background, which looked like rounded corners with gaps, then settled after a moment.

Cause: the site-wide a, button { transition: background .18s, ... } rule. The palette variables change in a single frame, but links and buttons faded over 180 ms while the surrounding surfaces switched instantly.

Fix: site.js sets data-switching on <html> for the frames in which the palette changes, and site.css disables transitions under it. Hover transitions are unchanged.

Validation: reproduced and verified in the built-in browser against the local build (before: grey intermediate cards after switching Nord Light to Catppuccin Mocha; after: the first frame is the final theme, in both directions). Added a regression check to test_site.py; the 11 site tests pass locally. CI for this head is queued.

AI assistance: Claude Sonnet 5.5 (reasoning effort not confirmed).

The manifest no longer carries a per-page version and source commit, so the
browser check must fall back to the site-level values instead of indexing them.
@WilliamWang1721

Copy link
Copy Markdown
Contributor Author

Pushed ecc81bc9 to fix the failing User documentation / build check.

Cause: the browser step (docs/site/check_browser.py) still read a per-page version and source_commit for completions, backups and mobile. The manifest now records one baseline (2.1.1, v2.1.1) for the whole site, so the lookup raised KeyError: 'version'. The earlier steps of that job, including the 11 site unit tests, had passed.

Fix: the check falls back to the site-level version and source_commit when a page has no override. Nothing else changed; the branch was fast-forwarded onto the merge from main first.

CI for ecc81bc9 is queued. I did not run the browser check locally (no Playwright), so its remaining steps are verified only by the CI run.

AI assistance: Claude Sonnet 5.5 (reasoning effort not confirmed).

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.

2 participants