TS_DOCS

galaxy-tool-util Documentation Plan

Docsify + TypeDoc setup for jmchilton.github.io/galaxy-tool-util. Mirrors the approach used in gh-ci-artifacts: hand-written markdown guides via docsify, auto-generated API reference via TypeDoc, deployed to GitHub Pages.

Phase 1: Infrastructure Setup

1a. Install devDependencies (root)

pnpm add -Dw typedoc docsify-cli

1b. Add root scripts to package.json

"docs:api": "typedoc",
"docs:dev": "pnpm docsify serve docs",
"docs:build": "pnpm run build && pnpm run docs:api"

1c. Create typedoc.json at root

Monorepo-aware config using entryPointStrategy: "packages".

{
  "entryPoints": ["packages/schema", "packages/core", "packages/cli", "packages/server"],
  "entryPointStrategy": "packages",
  "out": "docs/api/typedoc",
  "json": "docs/api/typedoc.json",
  "name": "galaxy-tool-util API",
  "excludePrivate": true,
  "excludeInternal": true,
  "readme": "none",
  "hideGenerator": false
}

1d. Add docs/api/typedoc/ to .gitignore

TypeDoc HTML is regenerated in CI — don’t commit it. The JSON output (docs/api/typedoc.json) can optionally be committed for reference.


Phase 2: Docsify Shell

2a. docs/index.html — SPA entry point

Docsify v4 via CDN. Plugins: search, copy-code, emoji, Prism syntax highlighting (bash, typescript, json, yaml).

window.$docsify = {
  name: 'galaxy-tool-util',
  repo: 'jmchilton/galaxy-tool-util',
  homepage: 'README.md',
  loadSidebar: '_sidebar.md',
  loadNavbar: '_navbar.md',
  coverpage: '_coverpage.md',
  autoHeader: true,
  maxLevel: 3,
  subMaxLevel: 2,
  search: {
    maxAge: 86400000,
    paths: 'auto',
    placeholder: 'Search documentation...',
    noData: 'No results found'
  },
  copyCode: {
    buttonText: 'Copy',
    errorText: 'Error',
    successText: 'Copied!'
  }
}

2b. docs/_coverpage.md

# galaxy-tool-util

> TypeScript toolkit for Galaxy tool metadata — cache, validate, and serve tool schemas

`schema` · `core` · `cli` · `server`

[Get Started](getting-started.md)
[API Reference](api/README.md)
[GitHub](https://github.com/jmchilton/galaxy-tool-util)

2c. docs/_navbar.md

- [GitHub](https://github.com/jmchilton/galaxy-tool-util)
- [npm](https://www.npmjs.com/org/galaxy-tool-util)

2d. docs/_sidebar.md

- [Home](/)
- [Getting Started](getting-started.md)
- **Packages**
  - [Schema](packages/schema.md)
  - [Core](packages/core.md)
  - [CLI](packages/cli.md)
  - [Server](packages/server.md)
- **Guides**
  - [Workflow Validation](guide/workflow-validation.md)
  - [Tool Caching](guide/tool-caching.md)
  - [Proxy Server Setup](guide/proxy-server.md)
  - [Configuration](guide/configuration.md)
- **Architecture**
  - [Overview](architecture/overview.md)
  - [Parameter Schema System](architecture/parameter-schemas.md)
  - [Effect Schema Usage](architecture/effect-schema.md)
- **API Reference**
  - [Overview](api/README.md)
  - [TypeDoc Reference](api/typedoc/index.html)
- **Development**
  - [Contributing](development/contributing.md)
  - [Testing](development/testing.md)
  - [Building](development/building.md)

Phase 3: Hand-Written Documentation Pages

3a. docs/README.md — Landing page

3b. docs/getting-started.md

3c. Package docs (docs/packages/)

schema.md

core.md

cli.md

server.md

3d. Guide docs (docs/guide/)

workflow-validation.md

tool-caching.md

proxy-server.md

configuration.md

3e. Architecture docs (docs/architecture/)

overview.md

parameter-schemas.md

effect-schema.md

3f. Development docs (docs/development/)

contributing.md

testing.md

building.md

3g. API bridge docs (docs/api/)

README.md


Phase 4: TSDoc Comment Enrichment

Improve source comments so TypeDoc output is useful. Focus on barrel exports and public API surfaces.


Phase 5: GitHub Pages Deployment

5a. .github/workflows/docs.yml

name: Generate Docs

on:
  push:
    branches: [main]
    paths:
      - 'packages/**'
      - 'docs/**'
      - 'package.json'
      - 'typedoc.json'
      - '.github/workflows/docs.yml'

jobs:
  generate:
    runs-on: ubuntu-latest
    permissions:
      contents: write
    steps:
      - uses: actions/checkout@v4
      - uses: pnpm/action-setup@v4
      - uses: actions/setup-node@v4
        with:
          node-version: '22'
          cache: 'pnpm'
      - run: pnpm install
      - run: pnpm run docs:build
      - uses: peaceiris/actions-gh-pages@v3
        with:
          github_token: ${{ secrets.GITHUB_TOKEN }}
          publish_dir: ./docs

5b. Enable GitHub Pages

Set repo settings to serve from gh-pages branch. Site at jmchilton.github.io/galaxy-tool-util.


Phase 6: Verify & Polish


Implementation Order

StepWhatEffort
1Infrastructure: deps, scripts, typedoc.json, .gitignore (Phase 1)S
2Docsify shell: index.html, coverpage, sidebar, navbar (Phase 2)S
3Landing page + getting-started (3a, 3b)M
4Package docs: schema, core, cli, server (3c)M
5Guide docs: validation, caching, proxy, config (3d)M
6Architecture docs: overview, param schemas, Effect (3e)M
7Dev docs: contributing, testing, building (3f)S
8API bridge + TSDoc enrichment (3g, Phase 4)M
9CI deployment workflow (Phase 5)S
10Polish + verify (Phase 6)S

File Tree (final state)

docs/
  index.html
  _coverpage.md
  _sidebar.md
  _navbar.md
  .nojekyll
  README.md
  getting-started.md
  packages/
    schema.md
    core.md
    cli.md
    server.md
  guide/
    workflow-validation.md
    tool-caching.md
    proxy-server.md
    configuration.md
  architecture/
    overview.md
    parameter-schemas.md
    effect-schema.md
  api/
    README.md
    typedoc/          (gitignored, generated)
    typedoc.json      (generated, optionally committed)
  development/
    contributing.md
    testing.md
    building.md
typedoc.json          (root config)
.github/workflows/docs.yml

Unresolved Questions

  1. Cross-link to Galaxy training materials or Galaxy tool XML schema docs?
  2. schema-sources/ YAML files — worth a dedicated docs section explaining the Galaxy parameter type system, or covered sufficiently by architecture/parameter-schemas.md?
  3. Should TypeDoc JSON (docs/api/typedoc.json) be committed for searchability, or gitignored with the HTML?
  4. Any plans for a VS Code extension or other consumers that should be documented as integration targets?