Conversation
- 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]>
There was a problem hiding this comment.
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 |
There was a problem hiding this comment.
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.
| // 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) | |
| */ |
| 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)); |
There was a problem hiding this comment.
The path 'docs/language/components.md' is hardcoded. Consider making this configurable or using a constant to avoid issues if the documentation structure changes.
| writeFileSync('docs/language/components.md', docsToMarkdown(allDocs)); | |
| writeFileSync(COMPONENT_DOCS_MD_PATH, docsToMarkdown(allDocs)); |
Summary
Changes
Test plan
🤖 Generated with Claude Code