{"_id":"@dannywrayuk/md-layout-loader","_rev":"2-00ef3452f2692d45351f5c2e9f6f0a0a","name":"@dannywrayuk/md-layout-loader","dist-tags":{"latest":"1.0.2"},"versions":{"1.0.0":{"name":"@dannywrayuk/md-layout-loader","version":"1.0.0","description":"A Webpack loader for wrapping markdown in a Layout.","main":"dist/index.js","scripts":{"build":"tsc","build:w":"tsc -w","test":"jest","test:w":"jest --watch"},"repository":{"type":"git","url":"git+https://github.com/dannywrayuk/md-layout-loader.git"},"author":{"name":"dannywrayuk"},"license":"ISC","homepage":"https://github.com/dannywrayuk/md-layout-loader#readme","dependencies":{"gray-matter":"^4.0.3","webpack":"^5.74.0"},"devDependencies":{"@types/jest":"^28.1.6","jest":"^28.1.3","ts-jest":"^28.0.7","typescript":"^4.7.4"},"types":"./dist/index.d.ts","gitHead":"3f584aee70b2cde743d1b5d8fdf4dcf2ecf43ea5","bugs":{"url":"https://github.com/dannywrayuk/md-layout-loader/issues"},"_id":"@dannywrayuk/md-layout-loader@1.0.0","_nodeVersion":"16.16.0","_npmVersion":"8.11.0","dist":{"integrity":"sha512-sFr9b2dit3YlCsFzryWIwOgE7HmvffNLSkyLdNgczMc63hNEU8L4HgOsQPOr82C16l0vuFar3mfq5sFFIe+A4A==","shasum":"7d44a6ffedef633a4adc72ac9ffd50651cb0f4a1","tarball":"https://registry.npmjs.org/@dannywrayuk/md-layout-loader/-/md-layout-loader-1.0.0.tgz","fileCount":9,"unpackedSize":20688,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCBnn4NyTRYrNMeEvWOc5xAGRCQhGxRwSzXsyRWp2NcswIhAIKmO+CEAjs3J1kpYEp5tKpk7knHfx3BJb4oMJf9606e"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJi9Z1tACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmosOw/+KoZbRLFEjj5XUvHQQbEP5y8jnjqMHO+bVTDt+uuTmqT1iOAc\r\nO2lzx2bei44dy7F5EMSfSiKW97hwI02xWRmZGq7RvRdhaFrFreMM9NqEqAL1\r\ncuOvwpSITvZR8ZI7p+xxNeHtwIRV27F3zip+B08MyYm/Z2HeolORKf4uIRD9\r\nEYzmtq4mJei8P0ZxX/d2/zhXfKdpwx3Zo6p6n60O3LvPnmzoWwvgDDPVUpSq\r\n55bwhHbd/jf/RnPE0tdF0JBLa8om2Ia0bzWym8gOmaHMQBiNq2SJZ97qTqSe\r\nN1wrX00kkztQ5Uq8CewlKSrBEWiy4Xu7+fGDau6N85OK45O4TYo0pudX7org\r\noDMt/b2T3zRfrf1DSSi6idRfH9kf8C1i4Jlrc3Ix9VWhBr+tXCrejOKLXB2O\r\nouG+j4A/MbUeyLV+iH3OXlFFdtcM01okBbqgiP69riJc7bQh/n751ziEsz2n\r\nc0EBLu4IeE0T6W5gx+LXd8HmF2f5LTj3Ii6pvKGlXUpHZH2Q457BLEq4L5jJ\r\nBHWfx2xCdhKyW7AYVDIuuoHhpE4gExodtMsxUknffDSXhOtwIbZ8670JFrmh\r\nAom1mTjul3uyJsLicpcX2i8n10erBB+4UH2jGminDXMATdyzSNceQPD7gYTY\r\nXNcowT/1ByHQ5t5Ie5RzwxS34WbpA6+AtjE=\r\n=sbG2\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"dannywrayuk","email":"dannywrayuk@gmail.com"},"directories":{},"maintainers":[{"name":"dannywrayuk","email":"dannywrayuk@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/md-layout-loader_1.0.0_1660263789607_0.4892422254186708"},"_hasShrinkwrap":false},"1.0.1":{"name":"@dannywrayuk/md-layout-loader","version":"1.0.1","description":"A Webpack loader for wrapping markdown in a Layout.","main":"dist/index.js","scripts":{"build":"tsc","build:w":"tsc -w","test":"jest","test:w":"jest --watch"},"repository":{"type":"git","url":"git+https://github.com/dannywrayuk/md-layout-loader.git"},"author":{"name":"dannywrayuk"},"license":"ISC","homepage":"https://github.com/dannywrayuk/md-layout-loader#readme","dependencies":{"gray-matter":"^4.0.3","webpack":"^5.74.0"},"devDependencies":{"@types/jest":"^28.1.6","jest":"^28.1.3","ts-jest":"^28.0.7","typescript":"^4.7.4"},"types":"./dist/index.d.ts","gitHead":"9069769d25e2bf2bbae1c5007862fabcadf3f5a8","bugs":{"url":"https://github.com/dannywrayuk/md-layout-loader/issues"},"_id":"@dannywrayuk/md-layout-loader@1.0.1","_nodeVersion":"16.16.0","_npmVersion":"8.11.0","dist":{"integrity":"sha512-MemhIukvjcKCTGVUtqFJbVF4mW1FTG45uRuXwGeyQE0H315UeROiqTBYm9OYyQAFdAlPweMtKo4UOfwcje/eIQ==","shasum":"965eceea5759bbe48fec3d74fdcee6ecda22a413","tarball":"https://registry.npmjs.org/@dannywrayuk/md-layout-loader/-/md-layout-loader-1.0.1.tgz","fileCount":12,"unpackedSize":22942,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDkdleAkpXQDiT+qGSEkWatLeVG8CQdP8qtxr0V8P6xQQIhAOSwFeRxQAURJrMmbRDwHNDQVXZZXUVN5iuVnzRBiL4F"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJi+vCEACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoUSg/7BRVaNvI7Lu5Kl/oBbEmzygudeMFrEdCFl6rAHKJ7Bv+TtVOb\r\n7hF4JzJrlWeALgCDWvQEhOPgiQ4Uvho0TlKS60VaFp8FKWfQKZ/SahPVHZD3\r\nVLcoJlirYb3Qozncf9lIHduoHIRuC0w1iCFkSnJ+F5MhNZYaz1dhcbgnge4y\r\nBbH4CUoZF3dSdXHxCm4gL8QSG6SFLDU/UKnOJuEKTf5IMXISZ8AI4R5se24u\r\nF65RSBvW62FUUFUpoDLMSD8BR2h0ja9+jcUX2n2m4LmmV15f5U0MQD0j/6up\r\n0pMdlZZCeVakmT3edPu5RyT32VJ/umaPMtvju3jE9LIWi2RSnbgwMNQoolLn\r\nS784NAphp4da3QUk1hecw5zgXHydiHBAfa+/ju8C2XUnsl0uMkf00egqbeSJ\r\nsu0UQveWz4hqgg9y/6BMMn+bAW3lPs1cNRTkmd3iaycmsTd3jNKp3JQCJB9Y\r\nojuIShzpW+nueUvCFjqIgEr3KpYqf8DXLNwWKNj0NoTX6gZghgiGr2kgduOu\r\nqmyUSTqC0E1OP0r2Rhu/JN52ka24BOC4u5WjOAEvZY9OBIuyfIcYFaisy3dl\r\npdFz4DHns/ISui2ExP0gqtoC+e16vGqyArP8PKEsMv5qhedX4A7BmyWcGZ4m\r\nuFtm8IhTTW3o6tuLM35+Y5FQhCri7iFrUFM=\r\n=+jNK\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"dannywrayuk","email":"dannywrayuk@gmail.com"},"directories":{},"maintainers":[{"name":"dannywrayuk","email":"dannywrayuk@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/md-layout-loader_1.0.1_1660612739909_0.7141216405022239"},"_hasShrinkwrap":false},"1.0.2":{"name":"@dannywrayuk/md-layout-loader","version":"1.0.2","description":"A Webpack loader for wrapping markdown in a Layout.","main":"dist/index.js","scripts":{"build":"tsc","build:w":"tsc -w","test":"jest","test:w":"jest --watch"},"repository":{"type":"git","url":"git+https://github.com/dannywrayuk/md-layout-loader.git"},"author":{"name":"dannywrayuk"},"license":"ISC","homepage":"https://github.com/dannywrayuk/md-layout-loader#readme","dependencies":{"gray-matter":"^4.0.3","webpack":"^5.74.0"},"devDependencies":{"@types/jest":"^28.1.6","jest":"^28.1.3","ts-jest":"^28.0.7","typescript":"^4.7.4"},"types":"./dist/index.d.ts","gitHead":"90bc511fb65274cb8e963142aec2fb2db5df711e","bugs":{"url":"https://github.com/dannywrayuk/md-layout-loader/issues"},"_id":"@dannywrayuk/md-layout-loader@1.0.2","_nodeVersion":"16.17.1","_npmVersion":"8.15.0","dist":{"integrity":"sha512-3UcATD390f5f77ktb1lmcrnAVWH7MsQXWbxafy7pUaFuAg9rTqnMhpqv2wi4qxhUrQckhLz4n2qcHpmQcEN5Kg==","shasum":"4d526e8ea7a4038b8ef55ee5a1d5355b1c11d39f","tarball":"https://registry.npmjs.org/@dannywrayuk/md-layout-loader/-/md-layout-loader-1.0.2.tgz","fileCount":12,"unpackedSize":24759,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFWvIlxgto6GYKImDBcUd9jGfv+C7C801AVyX14tPnnKAiBtIvkQSDdUj1KRz1mNS3P5chjDnHuR9pnTn0ulgsa4zg=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjXzkkACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrJig/9Eec514euRA3LTrBYKkDgT9qadDNdNu4hoaDsTp2X94rYmaZo\r\nKWYUZgpihlfZd1APKwdKdK0AJNOKUkxFJea8ucciXMjrEcRiBCnpQ98uGniY\r\nO/XmP7vvhWJssePXSt2acMToBE+HB3K/rJwfHE4eGliN0KSN+uQaxhEEfAJk\r\n7TMj+LN4+ehkB6TyYh/wecDG8znfAlNAxwIDC+OEzL4wyonP1B2KTIXVco6C\r\njbRlJf1rBXuAQZSMmnS9shRr8MXO7ca3JzYIbUVDES5DJXsCqp6qoq430NUb\r\nNXUMaGnU+OYhzIMB42seUpJypEPvGG1MICJWKGfGiKmc1OS9FRTkEMIEPaSi\r\nUWwiiF3XH2pK/ArZWfKild2kT/LKUldOUOdIUr1RgzHdF6pc5Vb1xjI3Dmi2\r\naZZwOkopJ5/sYB+JEqd5b7B2TFHoZaZigluVHnGjJTU7nl4pNC79JylO/MVt\r\n5pZ4X3fWxW0Ewjvba2Es1BrVwPc2fhKOqOC1WRk2hyfLRhoSMNZ3cqdalf70\r\nITU+9vaDTEoyDUTo7DzYvqgc5De7GZH/gsr1WfE1bMcKcM0BhrnmbT6tXmY/\r\ntaWtcVGExYv00P/B2BNzMQl77W0NvFADdH3BPXZDCgFvjX3NyZApBOBBb6rj\r\nRztOvxZtDXIJ4ssR/uyiCPiPwKyeK8pssT8=\r\n=MiNk\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"dannywrayuk","email":"dannywrayuk@gmail.com"},"directories":{},"maintainers":[{"name":"dannywrayuk","email":"dannywrayuk@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/md-layout-loader_1.0.2_1667184932108_0.4799490065901115"},"_hasShrinkwrap":false}},"time":{"created":"2022-08-12T00:23:09.534Z","1.0.0":"2022-08-12T00:23:09.785Z","modified":"2022-10-31T02:55:32.336Z","1.0.1":"2022-08-16T01:19:00.075Z","1.0.2":"2022-10-31T02:55:32.258Z"},"maintainers":[{"name":"dannywrayuk","email":"dannywrayuk@gmail.com"}],"description":"A Webpack loader for wrapping markdown in a Layout.","homepage":"https://github.com/dannywrayuk/md-layout-loader#readme","repository":{"type":"git","url":"git+https://github.com/dannywrayuk/md-layout-loader.git"},"author":{"name":"dannywrayuk"},"bugs":{"url":"https://github.com/dannywrayuk/md-layout-loader/issues"},"license":"ISC","readme":"# Overview\n\nA Webpack loader for wrapping markdown in a Layout.\n\nWorking in conjunction with `@mdx-js/loader`, this loader allows you to easily wrap your markdown content in a layout or other react parent components with minimal config.\n\n# Installation\n\nVia npm\n\n```\nnpm i @dannywrayuk/md-layout-loader\n```\n\nThe loader should be added to the webpack config after the mdx loader,\n\n```js\nconfig.module.rules.push({\n  test: /\\.mdx?$/,\n  use: [\n    options.defaultLoaders.babel,\n    {\n      loader: \"@mdx-js/loader\",\n      options: {\n        providerImportSource: \"@mdx-js/react\",\n      },\n    },\n    {\n      loader: \"@dannywrayuk/md-layout-loader\",\n      options: {\n        layoutFile,\n        metadataMutator,\n      },\n    },\n  ],\n});\n```\n\n## Usage\n\nThe loader takes two options, `layoutFile` and `metadataMutator`. Both are optional and `layoutFile` will default to `components/MDX/Layout`.\n\n`layoutFile` should be the location of a function that will accept a page's metadata as input and return a react component that will wrap the page's content.\nIt may look something like,\n\n```js\nexport default (meta) =>\n  ({ children }) =>\n    (\n      <SomeLayout data={meta}>\n        <MDXProvider components={MDXComponents}>{children}</MDXProvider>\n      </SomeLayout>\n    );\n```\n\n`metadataMutator` provides an opportunity to mutate the metadata at build-time before it is passed to the layout. This is useful for expensive computations such as keyword extraction.\nThis should be a function that accepts the page's metadata, path and content. An example of this can be seen here,\n\n```js\nmodule.exports = (metadata, filePath, fileContent) => ({\n  ...metadata,\n  generatedKeywords: generateKeywords(fileContent),\n});\n```\n\n## Example\n\nIf you require an example usage of this loader, a working implementation can be seen live on my [personal site](https://github.com/dannywrayuk/dannywraycouk).\n","readmeFilename":"README.md"}