Repository navigation
Conversation
Welcome to Codecov 🎉Once you merge this PR into your default branch, you're all set! Codecov will compare coverage reports and display results in all future pull requests. ℹ️ You can also turn on project coverage checks and project coverage reporting on Pull Request comment Thanks for integrating Codecov - We've got you covered ☂️ |
There was a problem hiding this comment.
Pull request overview
Migrates the plugin to Bun, TypeScript, and Vitest while reorganizing source code, automation, release metadata, and developer documentation.
Changes:
- Modularizes the TypeScript plugin and test infrastructure.
- Replaces npm/Jest workflows with Bun, Vitest, Oxlint, and Lefthook.
- Updates package ownership, publishing automation, and documentation.
Reviewed changes
Copilot reviewed 33 out of 38 changed files in this pull request and generated 16 comments.
Show a summary per file
| File | Description |
|---|---|
vitest.config.js |
Adds Vitest configuration. |
tsconfig.json |
Adds TypeScript compiler settings. |
tests/index.test.ts |
Adds central integration and edge-case tests. |
tests/helpers.ts |
Migrates test helpers to TypeScript. |
tests/helpers.js |
Removes JavaScript test helpers. |
TESTING.md |
Removes superseded testing guide. |
src/types/hugo-post-node.ts |
Adds AST node typing. |
src/index.ts |
Adds typed plugin entry and parser. |
src/features/printers/printers.ts |
Migrates printer logic to TypeScript. |
src/config/options.ts |
Extracts plugin options. |
src/config/languages.ts |
Extracts language metadata. |
README.md |
Refreshes package usage documentation. |
PUBLISHING.md |
Removes legacy publishing guide. |
package.json |
Updates package metadata, tooling, and scripts. |
lefthook.yaml |
Adds pre-commit checks. |
jest.config.json |
Removes Jest configuration. |
docs/development/testing.md |
Adds Vitest/Bun testing documentation. |
docs/development/publishing.md |
Adds publishing documentation. |
docs/development/project-structure.md |
Documents the reorganized repository. |
docs/development/CONTRIBUTING.md |
Adds consolidated contribution guidance. |
DEVELOPMENT.md |
Removes legacy development guide. |
CONTRIBUTING.md |
Removes superseded root guide. |
CHANGELOG.md |
Adds release-candidate metadata. |
bun.lock |
Locks Bun dependencies. |
AGENTS.md |
Adds repository-specific agent guidance. |
.vscode/settings.json |
Removes Jest editor settings. |
.prettierrc |
Moves formatting configuration into the package manifest. |
.oxlintrc.json |
Adds Oxlint configuration. |
.gitignore |
Ignores build output. |
.github/workflows/test.yml |
Adds Bun-based PR validation. |
.github/workflows/release.yml |
Removes the legacy release workflow. |
.github/workflows/publish.yml |
Adds guarded npm publishing. |
.github/workflows/ci.yml |
Removes legacy npm CI. |
.github/pull_request_template.md |
Adds a PR template. |
.github/ISSUE_TEMPLATE/feature_request.md |
Adds a feature-request template. |
.github/ISSUE_TEMPLATE/bug_report.md |
Adds a bug-report template. |
.github/dependabot.yml |
Updates dependency automation. |
Suppressed comments (7)
src/index.ts:45
- This pattern requires a newline and body after the closing delimiter. A valid YAML-front-matter-only file ending at
---therefore bypasses front-matter parsing (the new test attests/index.test.ts:53exercises exactly that shape, but does not verify delimiter parsing). Make the trailing content optional.
src/index.ts:55 - A TOML-front-matter-only file ending at
+++cannot match because the regex requires another newline and content after the closing delimiter. Such a file is sent through the Markdown formatter instead of the TOML formatter; make the body optional.
src/index.ts:65 - A JSON-front-matter-only file ending at
}cannot match because this requires a trailing newline and body. Make trailing content optional so JSON is still routed throughformatJson.
.github/workflows/test.yml:31 - The CI job never runs the newly authoritative
bun run lintcheck, so lint failures can pass required checks even though the PR validation and contributor guide require linting. Add lint before the tests.
- name: Run tests
run: bun run test:coverage
.github/workflows/publish.yml:98
- The release checks omit
format:checkand the plugin example even though the new publishing guide says both run before publication. A manual publish can therefore ship code that fails the documented release validation; run those checks here as well.
- name: Run release checks
run: |
bun run lint
bun test
bun run build
bun pack --dry-run
docs/development/project-structure.md:64
- This links to
src/utils, which does not exist, leaving a broken documentation link and describing code that is not present. Remove this entry unless the directory is added.
- [src/utils](../../src/utils): small utility helpers used during parsing and formatting.
.github/workflows/test.yml:16
node-versionis never consumed by a setup action, and all commands run through Bun, so this matrix does not test the package's declared Node 22 runtime compatibility. Addactions/setup-nodeusing this value and exercise the built plugin under Node, or remove the misleading matrix.
strategy:
matrix:
node-version: [22.x]
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
Summary
Changes
Validation
bun run lintbun run format:checkbun testResults: all checks passed; 56 tests passed and 0 failed.
Risks
Checklist