{"_id":"@a1local/eleventy-adpages","name":"@a1local/eleventy-adpages","dist-tags":{"latest":"0.1.0"},"versions":{"0.1.0":{"name":"@a1local/eleventy-adpages","version":"0.1.0","description":"Eleventy plugin helpers for local business schema, landing-page metadata QA, and service-area pages.","type":"module","license":"MIT","author":{"name":"A1 Local","url":"https://a1local.com.au/"},"homepage":"https://github.com/a1local/eleventy-adpages#readme","repository":{"type":"git","url":"git+https://github.com/a1local/eleventy-adpages.git"},"bugs":{"url":"https://github.com/a1local/eleventy-adpages/issues"},"funding":{"type":"custom","url":"https://a1local.com.au/extensions/"},"publishConfig":{"access":"public"},"sideEffects":false,"main":"./dist/index.js","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"scripts":{"build":"tsc -p tsconfig.json","lint":"tsc --noEmit -p tsconfig.json","prepublishOnly":"npm run build"},"keywords":["11ty","eleventy","eleventy-plugin","local-seo","landing-pages","schema-org","json-ld"],"peerDependencies":{"@11ty/eleventy":">=2.0.0 || >=3.0.0"},"peerDependenciesMeta":{"@11ty/eleventy":{"optional":true}},"devDependencies":{"typescript":"^5.9.3"},"gitHead":"0051b08e303680b1f851a3980ab4207b2b954405","_id":"@a1local/eleventy-adpages@0.1.0","_nodeVersion":"25.9.0","_npmVersion":"11.12.1","dist":{"integrity":"sha512-H80P0ajisLZeIYgw7ksvzM/+i4Z4ixoak/yclhM/u3bLb7anLfx4SbkMstZ1bGjOflkpYt4isemxHHgNcK8qzA==","shasum":"9873cd5b920b59490acae5e3d0e236043628a9e6","tarball":"https://registry.npmjs.org/@a1local/eleventy-adpages/-/eleventy-adpages-0.1.0.tgz","fileCount":7,"unpackedSize":36572,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQCTCYPrJqyLBy/2P5bBlmiWU6d3opbnGyZPz7ruO+vuMQIhAKqM1Ikp79Yrw+Y6f2DWtHUqKR5nCvXWwOJ6kXWJ2tBr"}]},"_npmUser":{"name":"a1local","email":"extensions@a1local.com.au"},"directories":{},"maintainers":[{"name":"a1local","email":"extensions@a1local.com.au"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/eleventy-adpages_0.1.0_1779689352534_0.06619474754063792"},"_hasShrinkwrap":false}},"time":{"created":"2026-05-25T06:09:12.356Z","0.1.0":"2026-05-25T06:09:12.673Z","modified":"2026-05-25T06:09:12.892Z"},"maintainers":[{"name":"a1local","email":"extensions@a1local.com.au"}],"description":"Eleventy plugin helpers for local business schema, landing-page metadata QA, and service-area pages.","homepage":"https://github.com/a1local/eleventy-adpages#readme","keywords":["11ty","eleventy","eleventy-plugin","local-seo","landing-pages","schema-org","json-ld"],"repository":{"type":"git","url":"git+https://github.com/a1local/eleventy-adpages.git"},"author":{"name":"A1 Local","url":"https://a1local.com.au/"},"bugs":{"url":"https://github.com/a1local/eleventy-adpages/issues"},"license":"MIT","readme":"# @a1local/eleventy-adpages\n\nEleventy plugin scaffold for lightweight local SEO and landing-page QA helpers. The package is intentionally small: no runtime dependencies, no network calls, and no hard dependency on Eleventy types.\n\n## What is included\n\n- `adpagesEleventy()` returns an Eleventy-compatible plugin function.\n- `localBusinessSchema` shortcode creates a JSON-LD script tag for LocalBusiness-style schema.\n- `localBusinessSchemaData` filter returns schema data for custom templates.\n- `metadataChecklist` filter checks common landing-page metadata fields.\n- `serviceAreaPages` filter builds a normalized service-by-area page matrix.\n\n## Install\n\n```sh\nnpm install @a1local/eleventy-adpages\n```\n\n## Configure Eleventy\n\nUse an ESM Eleventy config:\n\n```js\nimport adpagesEleventy from \"@a1local/eleventy-adpages\";\n\nexport default function (eleventyConfig) {\n  eleventyConfig.addPlugin(adpagesEleventy, {\n    business: {\n      name: \"Example Plumbing\",\n      businessType: \"Plumber\",\n      url: \"https://example.com\"\n    }\n  });\n}\n```\n\n## LocalBusiness JSON-LD\n\nUse the shortcode with the configured default business:\n\n```njk\n{% localBusinessSchema %}\n```\n\nOr pass page-specific data:\n\n```njk\n{% localBusinessSchema {\n  name: \"Example Plumbing Fremantle\",\n  businessType: \"Plumber\",\n  url: \"https://example.com/plumber/fremantle/\",\n  areaServed: [\"Fremantle\"]\n} %}\n```\n\nUse the filter if you want to render the JSON yourself:\n\n```njk\n{% set schema = pageBusiness | localBusinessSchemaData %}\n```\n\n## Metadata checklist\n\nThe metadata helper accepts frontmatter-like objects:\n\n```njk\n{% set qa = page | metadataChecklist %}\n\n{% if not qa.ok %}\n  <pre>{{ qa.warnings | dump }}</pre>\n{% endif %}\n```\n\nExpected useful fields are `title`, `description`, `canonical`, `service`, `serviceArea`, `layout`, and `permalink`. The result includes `ok`, `score`, `missing`, `warnings`, and itemized checks.\n\n## Service-area page data\n\nBuild a predictable matrix for local landing pages:\n\n```njk\n{% set matrix = {\n  services: [\"Blocked drains\", \"Hot water repairs\"],\n  areas: [\"Perth\", \"Fremantle\"],\n  basePath: \"/services\"\n} | serviceAreaPages %}\n\n{% for item in matrix.pages %}\n  <a href=\"{{ item.path }}\">{{ item.title }}</a>\n{% endfor %}\n```\n\nThe pure helper is usually easier in JavaScript data files:\n\n```js\nimport { buildServiceAreaPages } from \"@a1local/eleventy-adpages\";\n\nexport default buildServiceAreaPages({\n  services: [\"Blocked drains\", \"Hot water repairs\"],\n  areas: [\"Perth\", \"Fremantle\"],\n  basePath: \"/services\",\n  defaultStatus: \"draft\"\n});\n```\n\n## API\n\n```ts\nadpagesEleventy(options?: AdPagesEleventyOptions): EleventyPlugin;\nbuildLocalBusinessSchemaData(input, options?): LocalBusinessSchemaData;\nrenderLocalBusinessSchema(input, options?): string;\ncheckLandingPageMetadata(input, options?): MetadataChecklistResult;\nbuildServiceAreaPages(input): ServiceAreaPageMatrix;\nslugify(value: string): string;\n```\n\n## Publishing notes\n\nThis scaffold is realistic for npm and Eleventy community distribution, but the first public release still needs final package ownership, examples tested in a real Eleventy starter, logo/social preview assets, and a public privacy/support page if it becomes part of a larger AdPages product funnel.\n","readmeFilename":"README.md","_rev":"1-0b5587ff4f75770d81b28516c4c3aae2"}