Skip to content

feat: add documentation website with GitHub Pages deployment#79

Merged
ultmaster merged 10 commits intomainfrom
docs-init
Aug 11, 2025
Merged

feat: add documentation website with GitHub Pages deployment#79
ultmaster merged 10 commits intomainfrom
docs-init

Conversation

@ultmaster
Copy link
Contributor

Summary

  • Added comprehensive documentation website using MkDocs
  • Configured GitHub Pages deployment workflow
  • Added TypeDoc for TypeScript API documentation
  • Organized documentation into clear sections for language, Python, TypeScript, and VS Code

Changes

  • Created MkDocs configuration with Material theme
  • Added GitHub Actions workflow for automatic documentation deployment
  • Integrated TypeDoc for TypeScript API documentation generation
  • Restructured documentation into logical sections
  • Added documentation build step to test workflow

Test plan

  • Documentation builds successfully in CI
  • TypeDoc generates API documentation correctly
  • GitHub Pages deployment workflow is configured

🤖 Generated with Claude Code

ultmaster and others added 10 commits August 10, 2025 18:59
- Set up MkDocs with Material theme for documentation
- Restructured docs with Language, VS Code, TypeScript, and Python sections
- Moved existing docs (components, ir, standalone) to language folder
- Added auto-generation of TypeScript and Python API references
- Created GitHub Actions workflow for automatic deployment
- Configured versioning with mike for multiple doc versions
- Updated pyproject.toml with documentation dependencies
- Added npm scripts for docs:serve, docs:build, and docs:deploy

The documentation will be deployed to GitHub Pages at:
https://microsoft.github.io/poml

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <[email protected]>
- Installed TypeDoc and typedoc-plugin-markdown
- Created TypeDoc configuration to generate markdown docs
- Updated package.json scripts to run TypeDoc before MkDocs build
- Updated GitHub Actions workflow to generate TypeDoc documentation
- Added TypeScript API module documentation with proper links
- Configured .gitignore to exclude generated TypeDoc files (except api.md)

The TypeScript documentation is now properly generated using TSDoc comments
and integrated into the MkDocs documentation site.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <[email protected]>
- Fixed GitHub Actions workflow syntax (separated build and deploy jobs)
- Removed TypeDoc-generated presentation/namespaces from git tracking
- Updated .gitignore to properly exclude TypeDoc generated files
- Fixed TypeDoc configuration to avoid README.md conflicts
- Added TypeScript module pages to MkDocs navigation
- Fixed Python API documentation syntax for mkdocstrings
- Cleaned up TypeDoc output to prevent duplicate files

The documentation now builds cleanly without warnings about missing pages
or conflicting files.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <[email protected]>
@ultmaster ultmaster marked this pull request as ready for review August 11, 2025 04:27
Copilot AI review requested due to automatic review settings August 11, 2025 04:27
Copy link
Contributor

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 adds a comprehensive documentation website using MkDocs with GitHub Pages deployment automation. The documentation is organized into clear sections covering the POML language, Python SDK, TypeScript API, and VS Code extension features.

Key changes include:

  • Added MkDocs configuration with Material theme and automated TypeDoc integration
  • Created GitHub Actions workflows for documentation building and deployment
  • Restructured existing documentation content into logical sections
  • Added comprehensive Python API documentation with docstrings

Reviewed Changes

Copilot reviewed 22 out of 31 changed files in this pull request and generated 2 comments.

Show a summary per file
File Description
mkdocs.yml MkDocs configuration with Material theme, navigation structure, and plugin setup
.github/workflows/docs.yml GitHub Actions workflow for automated documentation deployment to GitHub Pages
.github/workflows/test.yml Added documentation build step to existing test workflow
typedoc.json TypeDoc configuration for generating TypeScript API documentation
python/poml/api.py Added comprehensive docstring for the main poml() function
python/poml/integration/langchain.py Added detailed class docstring for LangchainPomlTemplate
package.json Added TypeDoc dependencies and documentation build scripts
pyproject.toml Added MkDocs and related documentation dependencies
docs/* Created new documentation structure with language, Python, TypeScript, and VS Code sections

// Index indicates the place it's currently at, which must be a special character.
type PositionalContentMultiMedia = ContentMultiMedia & { position: Position; index: number };

// This is a workaround with tsdoc
Copy link

Copilot AI Aug 11, 2025

Choose a reason for hiding this comment

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

This type alias appears to be a workaround for TypeDoc documentation generation. Consider adding a proper JSDoc comment explaining its purpose and the specific TypeDoc issue it addresses.

Suggested change
// This is a workaround with tsdoc
/**
* Type alias for a row in a string table.
*
* This alias exists as a workaround for TypeDoc (or TSDoc) documentation generation issues,
* where direct use of array types (e.g., `string[]`) in exported APIs may not be properly
* documented or may not appear in generated documentation. By introducing this alias,
* we ensure that the type appears in the generated docs as a named type.
*
* See: https://github.com/TypeStrong/typedoc/issues/1658 (example issue)
*/

Copilot uses AI. Check for mistakes.
const pythonCode = generatePythonFile(allDocs);
writeFileSync('packages/poml/assets/componentDocs.json', JSON.stringify(allDocs, null, 2));
writeFileSync('docs/components.md', docsToMarkdown(allDocs));
writeFileSync('docs/language/components.md', docsToMarkdown(allDocs));
Copy link

Copilot AI Aug 11, 2025

Choose a reason for hiding this comment

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

The path 'docs/language/components.md' is hardcoded. Consider making this configurable or using a constant to avoid issues if the documentation structure changes.

Suggested change
writeFileSync('docs/language/components.md', docsToMarkdown(allDocs));
writeFileSync(COMPONENT_DOCS_MD_PATH, docsToMarkdown(allDocs));

Copilot uses AI. Check for mistakes.
@ultmaster ultmaster enabled auto-merge (squash) August 11, 2025 04:32
@ultmaster ultmaster merged commit de05d49 into main Aug 11, 2025
4 checks passed
@ultmaster ultmaster deleted the docs-init branch August 27, 2025 00:53
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