{"_id":"@brennanbrown/jekyll-audit","_rev":"4-b560d2788a270397de301f46f2e2943f","name":"@brennanbrown/jekyll-audit","dist-tags":{"latest":"0.3.1"},"versions":{"0.1.0":{"name":"@brennanbrown/jekyll-audit","version":"0.1.0","keywords":["jekyll","audit","lighthouse","accessibility","seo","links","html"],"author":{"name":"Brennan Brown"},"license":"MIT","_id":"@brennanbrown/jekyll-audit@0.1.0","maintainers":[{"name":"brennanbrown","email":"mail@brennanbrown.ca"}],"homepage":"https://github.com/brennanbrown/jekyll-audit#readme","bugs":{"url":"https://github.com/brennanbrown/jekyll-audit/issues"},"bin":{"jekyll-audit":"bin/jekyll-audit"},"dist":{"shasum":"8d8c150bfab3a38e6071022b46bed0f88d44572b","tarball":"https://registry.npmjs.org/@brennanbrown/jekyll-audit/-/jekyll-audit-0.1.0.tgz","fileCount":20,"integrity":"sha512-jLb0kub8BC+qUdFQ3dG0g5E31y0AL5Wn/JoklSo2JtkkOMY/bWmlvC7psrFCDt3QjoxcaCsRjcBQlmuCa2cA2Q==","signatures":[{"sig":"MEUCIQCYlYMaHrEXcxAF55JFrY2ffQtjv2pYvJtXLeXErHLDaQIgRa+sNzon3VWPksA2TeoEWgKrus8jqpaxa3q0T5Gl/sc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":39824},"type":"module","engines":{"node":">=18.0.0"},"funding":[{"url":"https://github.com/sponsors/brennanbrown","type":"github"},{"url":"https://opencollective.com/enjoyment-work","type":"opencollective"},{"url":"https://www.buymeacoffee.com/brennan","type":"buymeacoffee"},{"url":"https://ko-fi.com/brennan","type":"ko-fi"}],"scripts":{"dev":"node --enable-source-maps dist/cli.js --help","lint":"eslint \"src/**/*.{ts,tsx}\"","build":"tsc -p tsconfig.json","clean":"rm -rf dist","format":"prettier --write .","prepare":"npm run build","typecheck":"tsc -p tsconfig.json --noEmit"},"_npmUser":{"name":"brennanbrown","email":"mail@brennanbrown.ca"},"repository":{"url":"git+https://github.com/brennanbrown/jekyll-audit.git","type":"git"},"_npmVersion":"11.5.1","description":"CLI to audit Jekyll sites for performance, accessibility, SEO, links, and HTML validation.","directories":{},"_nodeVersion":"24.6.0","dependencies":{"zod":"^3.23.8","yaml":"^2.5.1","execa":"^9.3.0","pa11y":"^6.2.3","get-port":"^7.0.0","commander":"^12.1.0","lighthouse":"^12.0.0","linkinator":"^4.0.0","serve-handler":"^6.1.5","html-validator":"^6.0.0","chrome-launcher":"^1.1.0"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.11.1","prettier":"^3.3.3","typescript":"^5.6.2","@types/node":"^22.7.4","eslint-plugin-import":"^2.31.0","eslint-config-prettier":"^9.1.0","@typescript-eslint/parser":"^8.7.0","@typescript-eslint/eslint-plugin":"^8.7.0"},"_npmOperationalInternal":{"tmp":"tmp/jekyll-audit_0.1.0_1755775189171_0.7548983012162234","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@brennanbrown/jekyll-audit","version":"0.2.0","keywords":["jekyll","audit","lighthouse","accessibility","seo","links","html"],"author":{"name":"Brennan Brown"},"license":"MIT","_id":"@brennanbrown/jekyll-audit@0.2.0","maintainers":[{"name":"brennanbrown","email":"mail@brennanbrown.ca"}],"homepage":"https://github.com/brennanbrown/jekyll-audit#readme","bugs":{"url":"https://github.com/brennanbrown/jekyll-audit/issues"},"bin":{"jekyll-audit":"bin/jekyll-audit"},"dist":{"shasum":"07b9dbe7d54e8b9b05731fe5da76225038b70ad7","tarball":"https://registry.npmjs.org/@brennanbrown/jekyll-audit/-/jekyll-audit-0.2.0.tgz","fileCount":20,"integrity":"sha512-BAI0hm4hg381Yl+biGbS6Fawwzl7avzxhtNEmvSyb+1dLbcDbtDCoI5b1wQ353KVPsdi+kGL1XJ1ccO7bEMFeQ==","signatures":[{"sig":"MEYCIQCYpaPFBP4ciOvEpDXIp4Ckl9gH9xa5VP1M+9moYMSJkwIhAPor7eTJnd8ylmPM1jnrE6rJPmCVqDWntnAB24FzqtFx","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":44546},"type":"module","engines":{"node":">=18.0.0"},"funding":[{"url":"https://github.com/sponsors/brennanbrown","type":"github"},{"url":"https://opencollective.com/enjoyment-work","type":"opencollective"},{"url":"https://www.buymeacoffee.com/brennan","type":"buymeacoffee"},{"url":"https://ko-fi.com/brennan","type":"ko-fi"}],"gitHead":"c7de63b08fce006d9ea419780fd95cb7cda9886b","scripts":{"dev":"node --enable-source-maps dist/cli.js --help","lint":"eslint \"src/**/*.{ts,tsx}\"","build":"tsc -p tsconfig.json","clean":"rm -rf dist","format":"prettier --write .","prepare":"npm run build","typecheck":"tsc -p tsconfig.json --noEmit"},"_npmUser":{"name":"brennanbrown","email":"mail@brennanbrown.ca"},"repository":{"url":"git+https://github.com/brennanbrown/jekyll-audit.git","type":"git"},"_npmVersion":"11.5.1","description":"CLI to audit Jekyll sites for performance, accessibility, SEO, links, and HTML validation.","directories":{},"_nodeVersion":"24.6.0","dependencies":{"zod":"^3.23.8","yaml":"^2.5.1","execa":"^9.3.0","pa11y":"^6.2.3","get-port":"^7.0.0","commander":"^12.1.0","lighthouse":"^12.0.0","linkinator":"^4.0.0","serve-handler":"^6.1.5","html-validator":"^6.0.0","chrome-launcher":"^1.1.0"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.11.1","prettier":"^3.3.3","typescript":"^5.6.2","@types/node":"^22.7.4","eslint-plugin-import":"^2.31.0","eslint-config-prettier":"^9.1.0","@typescript-eslint/parser":"^8.7.0","@typescript-eslint/eslint-plugin":"^8.7.0"},"_npmOperationalInternal":{"tmp":"tmp/jekyll-audit_0.2.0_1755779309533_0.092851764267051","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"@brennanbrown/jekyll-audit","version":"0.3.0","keywords":["jekyll","audit","lighthouse","accessibility","seo","links","html"],"author":{"name":"Brennan Brown"},"license":"MIT","_id":"@brennanbrown/jekyll-audit@0.3.0","maintainers":[{"name":"brennanbrown","email":"mail@brennanbrown.ca"}],"homepage":"https://github.com/brennanbrown/jekyll-audit#readme","bugs":{"url":"https://github.com/brennanbrown/jekyll-audit/issues"},"bin":{"jekyll-audit":"bin/jekyll-audit"},"dist":{"shasum":"bb3c4ba74e582d333dcb9f499dea21de26ff4034","tarball":"https://registry.npmjs.org/@brennanbrown/jekyll-audit/-/jekyll-audit-0.3.0.tgz","fileCount":20,"integrity":"sha512-+wFIr2pUljjPxEGH1T+Qp6cT44hqw5Q31wt9eUTHkBBG1/dTMUVIoy4oAEzdYo3aXYbRj++tPbMoMXFJa6kf3Q==","signatures":[{"sig":"MEUCIBGiophue4NS7eOEp7WEIN5nu+4Dq7zqicg8OA1TWx/xAiEAoTrPYOVmEKj+7CBFSgKjHhd8L1qPHv64mh4kVWx8Arc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":58996},"type":"module","engines":{"node":">=18.0.0"},"funding":[{"url":"https://github.com/sponsors/brennanbrown","type":"github"},{"url":"https://opencollective.com/enjoyment-work","type":"opencollective"},{"url":"https://www.buymeacoffee.com/brennan","type":"buymeacoffee"},{"url":"https://ko-fi.com/brennan","type":"ko-fi"}],"gitHead":"5306efa6a223f5aa9e27195d8f9b57b0a7e851f7","scripts":{"dev":"node --enable-source-maps dist/cli.js --help","lint":"eslint \"src/**/*.{ts,tsx}\"","build":"tsc -p tsconfig.json","clean":"rm -rf dist","format":"prettier --write .","prepare":"npm run build","typecheck":"tsc -p tsconfig.json --noEmit"},"_npmUser":{"name":"brennanbrown","email":"mail@brennanbrown.ca"},"repository":{"url":"git+https://github.com/brennanbrown/jekyll-audit.git","type":"git"},"_npmVersion":"11.5.1","description":"CLI to audit Jekyll sites for performance, accessibility, SEO, links, and HTML validation.","directories":{},"_nodeVersion":"24.6.0","dependencies":{"zod":"^3.23.8","yaml":"^2.5.1","execa":"^9.3.0","pa11y":"^6.2.3","get-port":"^7.0.0","commander":"^12.1.0","lighthouse":"^12.0.0","linkinator":"^4.0.0","serve-handler":"^6.1.5","html-validator":"^6.0.0","chrome-launcher":"^1.1.0"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.11.1","prettier":"^3.3.3","typescript":"^5.6.2","@types/node":"^22.7.4","eslint-plugin-import":"^2.31.0","eslint-config-prettier":"^9.1.0","@typescript-eslint/parser":"^8.7.0","@typescript-eslint/eslint-plugin":"^8.7.0"},"_npmOperationalInternal":{"tmp":"tmp/jekyll-audit_0.3.0_1755779997304_0.490028377232129","host":"s3://npm-registry-packages-npm-production"}},"0.3.1":{"name":"@brennanbrown/jekyll-audit","version":"0.3.1","description":"CLI to audit Jekyll sites for performance, accessibility, SEO, links, and HTML validation.","license":"MIT","type":"module","author":{"name":"Brennan Brown"},"repository":{"type":"git","url":"git+https://github.com/brennanbrown/jekyll-audit.git"},"homepage":"https://github.com/brennanbrown/jekyll-audit#readme","bugs":{"url":"https://github.com/brennanbrown/jekyll-audit/issues"},"funding":[{"type":"github","url":"https://github.com/sponsors/brennanbrown"},{"type":"opencollective","url":"https://opencollective.com/enjoyment-work"},{"type":"buymeacoffee","url":"https://www.buymeacoffee.com/brennan"},{"type":"ko-fi","url":"https://ko-fi.com/brennan"}],"bin":{"jekyll-audit":"bin/jekyll-audit"},"engines":{"node":">=18.0.0"},"scripts":{"build":"tsc -p tsconfig.json","clean":"rm -rf dist","prepare":"npm run build","lint":"eslint \"src/**/*.{ts,tsx}\"","format":"prettier --write .","typecheck":"tsc -p tsconfig.json --noEmit","dev":"node --enable-source-maps dist/cli.js --help"},"keywords":["jekyll","audit","lighthouse","accessibility","seo","links","html"],"dependencies":{"commander":"^12.1.0","get-port":"^7.0.0","linkinator":"^4.0.0","lighthouse":"^12.0.0","chrome-launcher":"^1.1.0","yaml":"^2.5.1","pa11y":"^6.2.3","serve-handler":"^6.1.5","zod":"^3.23.8","execa":"^9.3.0","html-validator":"^6.0.0"},"devDependencies":{"@types/node":"^22.7.4","@typescript-eslint/eslint-plugin":"^8.7.0","@typescript-eslint/parser":"^8.7.0","eslint":"^9.11.1","eslint-config-prettier":"^9.1.0","eslint-plugin-import":"^2.31.0","prettier":"^3.3.3","typescript":"^5.6.2"},"_id":"@brennanbrown/jekyll-audit@0.3.1","gitHead":"df73263022902c432c2b58301daf8d5bba406e1a","_nodeVersion":"24.6.0","_npmVersion":"11.5.1","dist":{"integrity":"sha512-gmI14fAq5Cy4RXkz85LiptZ1rc5YbGP1BGzUYV0XFpsIxfz8qsbxCCR/EkxROTTjD9XKI7tKNad+qQAvotbBwA==","shasum":"37bcdf9f4d4fc63529e80518b43d93dc09576c12","tarball":"https://registry.npmjs.org/@brennanbrown/jekyll-audit/-/jekyll-audit-0.3.1.tgz","fileCount":20,"unpackedSize":66627,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQCD0kqQYUKt7QzEgU5X9vOLXadhr1ok2ofuajzLXUFOYAIhAO8zIFZmW3CVWfOkfroEAX9ak6jXI1v8k262v4kkFKI+"}]},"_npmUser":{"name":"brennanbrown","email":"mail@brennanbrown.ca"},"directories":{},"maintainers":[{"name":"brennanbrown","email":"mail@brennanbrown.ca"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/jekyll-audit_0.3.1_1755781400326_0.23486359795102163"},"_hasShrinkwrap":false}},"time":{"created":"2025-08-21T11:19:49.099Z","modified":"2025-08-21T13:03:20.734Z","0.1.0":"2025-08-21T11:19:49.376Z","0.2.0":"2025-08-21T12:28:29.710Z","0.3.0":"2025-08-21T12:39:57.498Z","0.3.1":"2025-08-21T13:03:20.543Z"},"bugs":{"url":"https://github.com/brennanbrown/jekyll-audit/issues"},"author":{"name":"Brennan Brown"},"license":"MIT","homepage":"https://github.com/brennanbrown/jekyll-audit#readme","keywords":["jekyll","audit","lighthouse","accessibility","seo","links","html"],"repository":{"type":"git","url":"git+https://github.com/brennanbrown/jekyll-audit.git"},"description":"CLI to audit Jekyll sites for performance, accessibility, SEO, links, and HTML validation.","maintainers":[{"name":"brennanbrown","email":"mail@brennanbrown.ca"}],"readme":"# jekyll-audit\n\nCLI to audit Jekyll sites for performance, accessibility, SEO, links, and HTML validation.\n\n## Quick start\n\nRequirements: Node >= 18, Ruby with Jekyll for builds (bundle exec jekyll build).\n\n```bash\n# install deps\nnpm install\n\n# build TypeScript\nnpm run build\n\n# show CLI help\nnode bin/jekyll-audit --help\n\n# run the full audit pipeline (build -> serve -> audits -> reports)\nnode bin/jekyll-audit audit\n\n# target an already running Jekyll server\nnode bin/jekyll-audit --baseUrl http://127.0.0.1:4000 audit\n```\n\n## Config\nCreate `jekyll-audit.config.js` (optional):\n\n```js\n/** @type {import('./dist/config/schema.js').AuditConfig} */\nexport default {\n  jekyll: { buildDir: '_site', buildCommand: 'bundle exec jekyll build' },\n  crawl: { useSitemap: true, maxPages: 50, paths: ['/'] },\n  thresholds: {\n    lighthouse: { performance: 0.8, seo: 0.9, 'best-practices': 0.9 },\n    accessibility: { maxIssues: 0 },\n    links: { maxBroken: 0 },\n    html: { maxErrors: 0 },\n  },\n  reports: { formats: ['json'], outDir: 'reports' },\n};\n```\n\n## What it does\n- Builds your Jekyll site (`JEKYLL_ENV=production`)\n- Serves the built directory locally\n- Detects `_config.yml` `baseurl` and appends it to the served URL\n- Discovers URLs from `sitemap.xml` or falls back to `crawl.paths`\n- Runs audits:\n  - Lighthouse (perf/seo/best-practices) → `reports/lighthouse.json`\n  - Pa11y (accessibility) → `reports/pa11y.json`\n  - Linkinator (broken links) → `reports/links.json`\n  - html-validator (HTML errors) → `reports/html.json`\n- Writes `reports/summary.json` and exits non-zero if thresholds fail\n\n## Reports\n- JSON files written to `reports/` by default\n- `summary.json` contains consolidated results and `passed` boolean\n\n## CLI Flags\nCommon examples (full list and details in `docs/flags.html`):\n\n```bash\n# Default lean run (summary outputs)\nnpx @brennanbrown/jekyll-audit audit\n\n# Full Lighthouse with details and screenshots (heavier)\nnpx @brennanbrown/jekyll-audit audit --output full --includeDetails --includeScreenshots\n\n# Faster link checks (internal only, tuned)\nnpx @brennanbrown/jekyll-audit audit --linksInternalOnly --linksConcurrency 200 --linksTimeout 15000\n\n# Limit pages + disable sitemap\nnpx @brennanbrown/jekyll-audit audit --maxPages 20 --noSitemap\n```\n\nSee full flag reference: https://brennanbrown.github.io/jekyll-audit/docs/flags.html\n\n## CI usage (GitHub Actions)\nExample workflow `.github/workflows/jekyll-audit.yml`:\n\n```yaml\nname: Jekyll Audit\non: [push, pull_request]\njobs:\n  audit:\n    runs-on: ubuntu-latest\n    steps:\n      - uses: actions/checkout@v4\n      - name: Set up Ruby (only if Gemfile exists)\n        if: hashFiles('**/Gemfile') != ''\n        uses: ruby/setup-ruby@v1\n        with:\n          ruby-version: '3.2'\n          bundler-cache: true\n      - name: Install Jekyll deps (only if Gemfile exists)\n        if: hashFiles('**/Gemfile') != ''\n        run: |\n          bundle config set --local path 'vendor/bundle'\n          bundle install\n      - uses: actions/setup-node@v4\n        with:\n          node-version: '20'\n          cache: 'npm'\n      - run: npm ci\n      - run: npm run build\n      - name: Run jekyll-audit\n        run: node bin/jekyll-audit audit\n      - name: Upload reports\n        if: always()\n        uses: actions/upload-artifact@v4\n        with:\n          name: jekyll-audit-reports\n          path: reports/\n```\n\n## Docs\n- Landing page: https://brennanbrown.github.io/jekyll-audit/\n- Flags reference: https://brennanbrown.github.io/jekyll-audit/docs/flags.html\n\n## Changelog\n- See CHANGELOG.md for version history and details.\n\n## Notes\n- You can bypass build/serve using `--baseUrl` to point at a dev server.\n- Thresholds control CI failure. Adjust per your needs in config.\n- The workflow only installs Ruby gems if a `Gemfile` is present, and uses `bundle config set --local path 'vendor/bundle'` instead of the deprecated `--path` flag.\n","readmeFilename":"README.md"}