{"_id":"@aaashur/eleventy-plugin-define-page-data","_rev":"2-0de7ec75fab983bd2e8615577980c4b5","name":"@aaashur/eleventy-plugin-define-page-data","dist-tags":{"latest":"1.0.1"},"versions":{"1.0.0":{"name":"@aaashur/eleventy-plugin-define-page-data","version":"1.0.0","description":"Make any data available to shortcodes using the page data object","main":"index.js","scripts":{"dev":"onchange -i './index.js' 'src/**' 'test/**' -- npm run test","lint":"eslint ./*.js test/*.js","test":"mocha test/"},"repository":{"type":"git","url":"git+https://github.com/ashur/eleventy-plugin-define-page-data.git"},"keywords":["11ty","11ty-plugin","eleventy","eleventy-plugin"],"author":{"name":"Ashur Cabrera","url":"https://ashur.cab/rera"},"license":"ISC","bugs":{"url":"https://github.com/ashur/eleventy-plugin-define-page-data/issues"},"homepage":"https://github.com/ashur/eleventy-plugin-define-page-data#readme","devDependencies":{"chai":"^4.3.4","dot-prop":"^6.0.1","eslint":"^8.4.1","mocha":"^9.1.3","onchange":"^7.1.0"},"gitHead":"e0bde4f0b6af91386f927c6cedaf9a436b53a31a","_id":"@aaashur/eleventy-plugin-define-page-data@1.0.0","_nodeVersion":"14.17.1","_npmVersion":"7.21.0","dist":{"integrity":"sha512-Q+1E735ukrjBwSz7t/qaqVsDwbPpo7JcKdK9mnTvcBnyGYIopMjp62BPPSwhNhjSFthOjTocTef/Nauiq32+6w==","shasum":"2da4d3c129554775ebeafb595333737f29506475","tarball":"https://registry.npmjs.org/@aaashur/eleventy-plugin-define-page-data/-/eleventy-plugin-define-page-data-1.0.0.tgz","fileCount":7,"unpackedSize":6856,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhuRX0CRA9TVsSAnZWagAAaHAP/1HTKBfpgdDJooD/ZLtZ\nrOLyrfFQ4+5goFFoL5OH6aXbHQBRSgEfu9Vemn8DoM3QuFw2rrLGNieo4WoL\n8WxWYcni+DPkCQ+IE2BjlB8Sb7cEjnt+LFd1FEiy4bYB1yF40WmuDPGnZYqE\nJ4Ayf/x/ktULpMUh5oo85d1qnJjIJpJrUaHbrKgxIfL64OrAmMSyQ5nW0a9l\n2sN7Uu9SgCLJykPxtCFCjUiU93Zf4oqU/qSHO6db6KmA9ql5t25c36b1eDvE\n/23fvThvFnpEjhtHZI903KSah8/GhRP/HkgsLE+U0zX21EqlyS2NB5B8pyfR\naNKonsozC9P6O53rCAGiopc14UiuCp6LVkFfmmRxw8G/q81CFqwCm3b54gbu\nnRvvtXOga3gbrRrhbXxxyr4/VtXW0zjmA/qpjybKuvYDzQ7amT1vnxCj1jP+\nzeao/gwyqdWmo4/3suOXXLuj2cfEyrWSWdJZefyLmKokmamem1mewRKlbATh\nj9luwLiwze/6GX6rzDvmzhdJ7o8NSeIMVitVEb+CeQJrjFh8z9ac3k19AFyF\n5DRocUPIWaVxNTKfaQqW9ukTN5MctEgEG1h2L6HApPETo8QLBDjy16qxs7Al\n2hvhHTrSTRoHP77XJvsmYhFaUVgON4LkaBxQ/enc1LIN8KtYgsNQyeKOn/WI\n4y3J\r\n=TCZp\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIGfCcCNZPKQXZzjKz65HgXGoK2Qx8WLyVm4UctUhbJtyAiEAqy/wxRYwO20Evc2snalvfmZpjTu5F6ZJ8uLNk4g909s="}]},"_npmUser":{"name":"aaashur","email":"hello@ashur.cab"},"directories":{},"maintainers":[{"name":"aaashur","email":"hello@ashur.cab"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/eleventy-plugin-define-page-data_1.0.0_1639519732437_0.6634263512201033"},"_hasShrinkwrap":false},"1.0.1":{"name":"@aaashur/eleventy-plugin-define-page-data","version":"1.0.1","description":"Make any data available to shortcodes using the page data object","main":"index.js","scripts":{"dev":"onchange -i './index.js' 'src/**' 'test/**' -- npm run test","lint":"eslint ./*.js test/*.js","test":"mocha test/"},"repository":{"type":"git","url":"git+https://github.com/ashur/eleventy-plugin-define-page-data.git"},"keywords":["11ty","11ty-plugin","eleventy","eleventy-plugin"],"author":{"name":"Ashur Cabrera","url":"https://ashur.cab/rera"},"license":"ISC","bugs":{"url":"https://github.com/ashur/eleventy-plugin-define-page-data/issues"},"homepage":"https://github.com/ashur/eleventy-plugin-define-page-data#readme","devDependencies":{"chai":"^4.3.4","eslint":"^8.4.1","mocha":"^9.1.3","onchange":"^7.1.0"},"dependencies":{"dot-prop":"^6.0.1"},"gitHead":"374df65ab3aa223af06ac0fb03a2788ff83c4028","_id":"@aaashur/eleventy-plugin-define-page-data@1.0.1","_nodeVersion":"14.17.1","_npmVersion":"7.21.0","dist":{"integrity":"sha512-Kl2Mpdyn+NQR/BIdHnsNn6h5jpOJ8tnxt6eYBoYhCWG6HDI6Y4tkAd6CF3AuXPbp4nfGyzNN8GU4JiH9i6h+sA==","shasum":"4e1afb8c7d3ae120c9bce6b9f5670ee109a850bb","tarball":"https://registry.npmjs.org/@aaashur/eleventy-plugin-define-page-data/-/eleventy-plugin-define-page-data-1.0.1.tgz","fileCount":7,"unpackedSize":6968,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhuRvkCRA9TVsSAnZWagAAmQMQAIFIgaOFCaSqLYzeV/fn\nsJqb6s3Mc75Kx8o5ttHxVIGHUQ6VXAh5q48DnHvoh+AwKa6SUOT+l3teMJc/\njFOp3XNT9nN4lvy56lZGB9dbzz0VDo68vOa5M75zJ7oQHmjDKjhoV9EGJ+ii\nNaoFInjlV0W9TxVUvd3sYGznh+YRXfuTSEtut0SjRimaDEkV9CgjrZtijw0V\nilG0irkFpN03DrNhwmeJZdXz3piCuCgU7uITFZ0CSEp0xGQ9rwazrFVGajLW\nzVcSemMhspNecxT/EvFSrbueNXzihUH7uUko97Tg25zQCnUkmnyBhdyFxgEd\nDA7tM3JB19DoyV+re3mBW9c3EKmJnCmfP+ydMxBiXKe4XLw2sOHf32UBgPJ+\nLqfkQEru3J0vU+T2x3xP0GwYrzroytElJIbDmaFYTDCzq838H5lyRlwTaerO\n4PfX7lKlLAY8kBpCmm+ICcbJL0mysC7J/6/dp5WluimOkLa1uRh2evG6vffk\ncdynINVvrdTD4+lKpltIP2AcKi6MG4NHIHAA3I5h+fRSyL5PUdWck0zhMRoX\nXMVEknwtTBSmh4FpAcws6JqCZjObRB+ACsZEKEYdxmYl0TSvPKOunAZW7LgJ\no0X1o3Oeq/hT92pbVMoMmUCn2DQnTUV0M7HbgxZOJ+sP421MScuJ1o/V/exp\n896Z\r\n=wXVO\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIFQGy9bN0OJLFKUp4MBNJMLFFxBcl39wR/sR6MSeutd1AiEA19yOFubLcuogWCHDwJlWA57GP0SiRmpgcqMuXoNEZW8="}]},"_npmUser":{"name":"aaashur","email":"hello@ashur.cab"},"directories":{},"maintainers":[{"name":"aaashur","email":"hello@ashur.cab"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/eleventy-plugin-define-page-data_1.0.1_1639521252801_0.2469096952453742"},"_hasShrinkwrap":false}},"time":{"created":"2021-12-14T22:08:52.388Z","1.0.0":"2021-12-14T22:08:52.775Z","modified":"2022-04-04T10:54:50.239Z","1.0.1":"2021-12-14T22:34:12.949Z"},"maintainers":[{"name":"aaashur","email":"hello@ashur.cab"}],"description":"Make any data available to shortcodes using the page data object","homepage":"https://github.com/ashur/eleventy-plugin-define-page-data#readme","keywords":["11ty","11ty-plugin","eleventy","eleventy-plugin"],"repository":{"type":"git","url":"git+https://github.com/ashur/eleventy-plugin-define-page-data.git"},"author":{"name":"Ashur Cabrera","url":"https://ashur.cab/rera"},"bugs":{"url":"https://github.com/ashur/eleventy-plugin-define-page-data/issues"},"license":"ISC","readme":"# eleventy-plugin-define-page-data\n\nAn Eleventy data plugin to make any data available to shortcodes using the `page` data object.\n\n## Setup\n\nTo install this plugin, run the following command at the root of your Eleventy project:\n\n```\nnpm install --save @aaashur/eleventy-plugin-define-page-data\n```\n\nNext, import the plugin in your `.eleventy.js` config file:\n\n```\nconst definePageData = require(\"@aaashur/eleventy-plugin-define-page-data\");\n```\n\nFinally, register the plugin somewhere inside your exported configuration function:\n\n```javascript\nmodule.exports = eleventyConfig =>\n{\n\televentyConfig.addPlugin(definePageData);\n\n\t// ...\n};\n```\n\n## Usage\n\nCreate a new page data variable using the `definePageData` shortcode:\n\n```nunjucks\n{% definePageData key, value %}\n```\n\nFor example:\n\n```nunjucks\n{% definePageData \"prefersEmoji\", false %}\n```\n\nData added to the `page` object using `definePageData` is namespaced to prevent stomping over existing data properties that are created and used by Eleventy. By default, the `data` namespace is used:\n\n```javascript\n{\n    date: new Date(),\n    inputPath: \"./current/page/myFile.md\",\n    fileSlug: \"myFile\",\n    filePathStem: \"/current/page/myFile\",\n    url: \"/current/page/myFile/\",\n    outputPath: \"./_site/current/page/myFile/index.html\",\n\n    data: {\n        prefersEmoji: false\n    }\n}\n```\n\nTo access this data in your shortcode source, use `this.page.data`:\n\n```javascript\n/**\n * Add random emoji to the end of a string\n * @param {string} text\n * @returns {string}\n */\neleventyConfig.addShortcode( \"emojify\", function(text)\n{\n    if( !this.page.data.prefersEmoji )\n    {\n        return text;\n    }\n    else\n    {\n        // ...\n    }\n});\n```\n\n> 🎈 **Note** — You must define your shortcode with a traditional `function()` rather than an arrow function in order for Eleventy to [bind page data](https://www.11ty.dev/docs/languages/nunjucks/#access-to-page-data-values) to your shortcode.\n\nThe `definePageData` shortcode also supports defining nested properties using dot notation:\n\n```nunjucks\n{% definePageData \"user.preferences.prefersEmoji\", false %}\n```\n\n```javascript\n{\n    // ...\n\n    data: {\n        user: {\n            preferences: {\n                prefersEmoji: false\n            }\n        }\n    }\n}\n```\n\n### Namespace\n\nPass an optional third argument to `definePageData` to specify a custom namespace instead of the default `data`:\n\n```nunjucks\n{% definePageData key, value, namespace %}\n```\n\nFor example:\n\n```nunjucks\n{% definePageData \"prefersEmoji\", false, \"customData\" %}\n```\n\n```javascript\n{\n    // ...\n\n    customData: {\n        prefersEmoji: false\n    }\n}\n```\n","readmeFilename":"README.md"}