{"_id":"@bryanfriedman/eleventy-plugin-html-relative-datacascade","_rev":"2-2fe262541b625628b9cde92a22cd6cfd","name":"@bryanfriedman/eleventy-plugin-html-relative-datacascade","dist-tags":{"latest":"0.1.5"},"versions":{"0.1.2":{"name":"@bryanfriedman/eleventy-plugin-html-relative-datacascade","version":"0.1.2","keywords":["eleventy","11ty","eleventy-plugin","static-site","html-relative","data-cascade"],"author":{"name":"Bryan Friedman"},"license":"MIT","_id":"@bryanfriedman/eleventy-plugin-html-relative-datacascade@0.1.2","maintainers":[{"name":"bryanfriedman","email":"bryanfriedman@gmail.com"}],"dist":{"shasum":"012d813e49118c8b4305f4ada7a0d6f8530a5a64","tarball":"https://registry.npmjs.org/@bryanfriedman/eleventy-plugin-html-relative-datacascade/-/eleventy-plugin-html-relative-datacascade-0.1.2.tgz","fileCount":13,"integrity":"sha512-u0sJRv4mS6ghnT5N24z7wR3j9+J31jLR+urpmya5eTy0BltwB6IrAP/+qiEXWozlf6aQvIf3gG0u6Us8V5EJSA==","signatures":[{"sig":"MEUCIQDyk7AdgcituQ0Gksv54vGk0V2ZMQngXC9UtvCzobrZNQIgOXem3xnddGYm2bRAmcrldhinQHlBt9q5UZP5JMVoXDQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":13500},"main":"src/index.js","type":"module","engines":{"node":">=18"},"exports":{".":{"import":"./src/index.js"}},"gitHead":"d166782256f58747dcdf4bc54d4c5ec0a925a24d","scripts":{"test":"node --test","clean":"rimraf test/output","prepublishOnly":"npm test"},"_npmUser":{"name":"bryanfriedman","email":"bryanfriedman@gmail.com"},"_npmVersion":"11.7.0","description":"Eleventy 3 plugin to copy assets from Data Cascade (directory data and page data) relative to HTML output paths.","directories":{},"_nodeVersion":"22.14.0","dependencies":{"fast-glob":"^3.3.2"},"_hasShrinkwrap":false,"devDependencies":{"rimraf":"^6.0.0","@11ty/eleventy":"^3.0.0"},"peerDependencies":{"@11ty/eleventy":"^3.0.0 || ^4.0.0-alpha"},"_npmOperationalInternal":{"tmp":"tmp/eleventy-plugin-html-relative-datacascade_0.1.2_1766611843876_0.33609655607031375","host":"s3://npm-registry-packages-npm-production"}},"0.1.5":{"name":"@bryanfriedman/eleventy-plugin-html-relative-datacascade","version":"0.1.5","description":"Eleventy 3 plugin to copy assets from Data Cascade (directory data and page data) relative to HTML output paths.","type":"module","main":"src/index.js","repository":{"type":"git","url":"git+https://github.com/bryanfriedman/eleventy-plugin-html-relative-datacascade.git"},"homepage":"https://github.com/bryanfriedman/eleventy-plugin-html-relative-datacascade#readme","bugs":{"url":"https://github.com/bryanfriedman/eleventy-plugin-html-relative-datacascade/issues"},"exports":{".":{"import":"./src/index.js"}},"keywords":["eleventy","11ty","eleventy-plugin","static-site","html-relative","data-cascade"],"author":{"name":"Bryan Friedman"},"license":"MIT","peerDependencies":{"@11ty/eleventy":"^3.0.0 || ^4.0.0-alpha"},"dependencies":{"fast-glob":"^3.3.2"},"devDependencies":{"@11ty/eleventy":"^3.0.0","rimraf":"^6.0.0"},"scripts":{"test":"node --test","clean":"rimraf test/output","prepublishOnly":"npm test"},"engines":{"node":">=18"},"gitHead":"562a5a1feb7080cec4aff97033c7245ca7d94bff","_id":"@bryanfriedman/eleventy-plugin-html-relative-datacascade@0.1.5","_nodeVersion":"20.19.6","_npmVersion":"11.7.0","dist":{"integrity":"sha512-4W9aW05JBZmY11IEc3jz1SxqL8VxqsaOra+wQ6v6EvUpOb/DPoJxzV2Nf5beaqhf4GbqYqvP7o4+YI5503dlag==","shasum":"ca7696fe1f7d255f4ac2e74cebd4f47283e79355","tarball":"https://registry.npmjs.org/@bryanfriedman/eleventy-plugin-html-relative-datacascade/-/eleventy-plugin-html-relative-datacascade-0.1.5.tgz","fileCount":13,"unpackedSize":13849,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@bryanfriedman%2feleventy-plugin-html-relative-datacascade@0.1.5","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIDRu6zJ8NtVxePGrp6b/JmQrsDpWCByBHsgjxIc+h1y7AiEA31Cc6xvsExYwBpLdHOubJQU10M/UUpl5mJDk1jn1QKM="}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:ee25ecc8-13d8-4597-bccc-6994703f248c"}},"directories":{},"maintainers":[{"name":"bryanfriedman","email":"bryanfriedman@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/eleventy-plugin-html-relative-datacascade_0.1.5_1766612174066_0.9795100505523149"},"_hasShrinkwrap":false}},"time":{"created":"2025-12-24T21:30:43.740Z","modified":"2025-12-24T21:36:14.661Z","0.1.2":"2025-12-24T21:30:44.021Z","0.1.5":"2025-12-24T21:36:14.219Z"},"author":{"name":"Bryan Friedman"},"license":"MIT","keywords":["eleventy","11ty","eleventy-plugin","static-site","html-relative","data-cascade"],"description":"Eleventy 3 plugin to copy assets from Data Cascade (directory data and page data) relative to HTML output paths.","maintainers":[{"name":"bryanfriedman","email":"bryanfriedman@gmail.com"}],"readme":"# @bryanfriedman/eleventy-html-relative-datacascade\n\nEleventy’s `mode: \"html-relative\"` passthrough copy works great for assets referenced directly from templates, but it doesn’t (yet) provide a built-in way to **declare extra files to copy via the Data Cascade**. This plugin bridges that gap: it reads an `eleventyCopy` property from page data and directory data files and mirrors matching assets from your input directories into the correct output folders, relative to each rendered HTML page.\n\n## Installation\n\n```bash\nnpm install @bryanfriedman/eleventy-html-relative-datacascade\n```\n\n## Usage\n\n```js\n// eleventy.config.js (ESM)\nimport eleventyHtmlRelativeDataCascadePlugin from \"@bryanfriedman/eleventy-html-relative-datacascade\";\n\nexport default function (eleventyConfig) {\n  eleventyConfig.addPassthroughCopy(\"**/*.{png,jpg}\", {\n    mode: \"html-relative\",\n  });\n\n  eleventyConfig.addPlugin(eleventyHtmlRelativeDataCascadePlugin, {\n    extensions: [\".html\"], // output extensions to run on\n    dot: false,            // include dotfiles in globs?\n    failOnError: false     // throw or swallow copy/glob/JSON errors\n  });\n\n  return {};\n}\n```\n\n## Data Cascade sources\n\nThe plugin looks for `eleventyCopy` in:\n\n- `this.eleventyCopy`\n- `this.page.eleventyCopy`\n- `this.eleventy.data.eleventyCopy`\n- `this.page.data.eleventyCopy`\n- Directory data files:\n  - `<dir>/<basename(dir)>.json`\n  - `<dir>/<basename(dir)>.11tydata.json`\n\n## Example\n\n`blog/blog.json`:\n\n```json\n{\n  \"eleventyCopy\": [\n    \"*.png\",\n    \"images/**/*.jpg\"\n  ]\n}\n```\n\nFor any page rendered from `blog/`, the plugin searches those patterns in the **input** `blog/` directory and copies matches to the **output** `blog/` directory (e.g., `_site/blog/...`), preserving relative paths.\n\n## Options\n\n- `extensions` (`string[]`, default: `[\".html\"]`): Output extensions to run on.\n- `dot` (`boolean`, default: `false`): Whether to match dotfiles in globs.\n- `failOnError` (`boolean`, default: `false`): Throw on glob / copy / JSON errors instead of swallowing them.\n\n## Upstream status\n\nThis package is a standalone implementation of an upstream Eleventy proposal to support **Data Cascade–driven html-relative copying** (e.g. `eleventyCopy` coming from directory data and page data).\n\nUpstream references:\n\n```text\nPR: https://github.com/11ty/eleventy/pull/3951\nIssue: https://github.com/11ty/eleventy/issues/3881\n```\n\nIf/when Eleventy merges and releases equivalent functionality in core, **the core implementation should be preferred**. In that event, this plugin will likely shift into one of these roles:\n\n- **Compatibility layer** for older Eleventy versions, or\n- **Deprecated** in favor of the core behavior (with guidance in this README).\n\n## Releasing\n\nThis repo uses tag-based automation:\n\n- Pushing a tag like `v0.1.0` will:\n  - run CI tests\n  - publish to npm\n  - create a GitHub Release with autogenerated notes\n\n### Publish a new version\n\n```bash\nnpm version patch   # or minor / major\ngit push --follow-tags\n```\n\n","readmeFilename":"README.md","homepage":"https://github.com/bryanfriedman/eleventy-plugin-html-relative-datacascade#readme","repository":{"type":"git","url":"git+https://github.com/bryanfriedman/eleventy-plugin-html-relative-datacascade.git"},"bugs":{"url":"https://github.com/bryanfriedman/eleventy-plugin-html-relative-datacascade/issues"}}