{"_id":"@didiercatz/sveo","_rev":"7-b2cdce90085d2e7a6127c1e42617dffb","name":"@didiercatz/sveo","dist-tags":{"latest":"0.1.1"},"versions":{"0.0.1":{"name":"@didiercatz/sveo","version":"0.0.1","devDependencies":{"@sveltejs/adapter-netlify":"^1.0.0-next.34","@sveltejs/kit":"^1.0.0-next.188","autoprefixer":"^10.3.7","cssnano":"^5.0.8","postcss":"^8.3.9","postcss-load-config":"^3.1.0","svelte":"^3.42.6","svelte-preprocess":"^4.9.8","svelte2tsx":"^0.4.7","tailwindcss":"^2.2.16","typescript":"^4.4.4"},"type":"module","keywords":["svelte","sveltekit","seo","keywords"],"exports":{"./package.json":"./package.json","./sveo":"./sveo.js"},"description":"Everything you need to build a Svelte project, powered by [`create-svelte`](https://github.com/sveltejs/kit/tree/master/packages/create-svelte);","_id":"@didiercatz/sveo@0.0.1","_nodeVersion":"16.4.1","_npmVersion":"7.18.1","dist":{"integrity":"sha512-jXl+VVJ72E/R8+ZuiM9fg6cEac62Sds47jIOO1NFKslhXVwLljoCcGlg9Ypn5PBK7PrV+pi90SH9chuNW7XOQg==","shasum":"d5ec6203ef2a94849b711a94bcb75eac50612e85","tarball":"https://registry.npmjs.org/@didiercatz/sveo/-/sveo-0.0.1.tgz","fileCount":4,"unpackedSize":2266,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCqOH9GcdWv++SEFffy72HCptRWCWi8Ls1sUm6qYq9iDAIgTohzvnPff9mopeIkae8vgN1Vk/5djCiXFYJ39tZ+xvk="}]},"_npmUser":{"name":"didiercatz","email":"info@didiercatz.com"},"directories":{},"maintainers":[{"name":"didiercatz","email":"info@didiercatz.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/sveo_0.0.1_1634918808345_0.25343563239501177"},"_hasShrinkwrap":false},"0.0.2":{"name":"@didiercatz/sveo","version":"0.0.2","license":"MIT","devDependencies":{"@sveltejs/adapter-netlify":"^1.0.0-next.34","@sveltejs/kit":"^1.0.0-next.188","autoprefixer":"^10.3.7","cssnano":"^5.0.8","eslint":"^8.0.1","postcss":"^8.3.9","postcss-load-config":"^3.1.0","prettier":"^2.4.1","svelte":"^3.42.6","svelte-preprocess":"^4.9.8","svelte2tsx":"^0.4.7","tailwindcss":"^2.2.16","typescript":"^4.4.4"},"type":"module","keywords":["svelte","sveltekit","seo","keywords"],"exports":{"./package.json":"./package.json","./sveo":"./sveo.js"},"description":"Declare metadata on SvelteKit pages, for example for SEO.","_id":"@didiercatz/sveo@0.0.2","_nodeVersion":"16.4.1","_npmVersion":"7.18.1","dist":{"integrity":"sha512-klaYfFQvm91HmBFlEkg5XyPgcw3uXYBR16p7bM7OemnYlMbxRbABI/DPAGADD7G7GwUQCe/A3iA/qBiBlOn8aA==","shasum":"0850cb3ca5d9894efd9d91f6a73ce8059f6910a4","tarball":"https://registry.npmjs.org/@didiercatz/sveo/-/sveo-0.0.2.tgz","fileCount":4,"unpackedSize":2311,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDpfMokB57yXtumomYNb6IOiAsHmC5z27BBDbZvF/p0lgIhAOtxhbpIap/Jkr/1QNHfTqSrG4YdPnnpAvfR7XYRBzyB"}]},"_npmUser":{"name":"didiercatz","email":"info@didiercatz.com"},"directories":{},"maintainers":[{"name":"didiercatz","email":"info@didiercatz.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/sveo_0.0.2_1634920382973_0.2779623419945998"},"_hasShrinkwrap":false},"0.0.3":{"name":"@didiercatz/sveo","version":"0.0.3","license":"MIT","devDependencies":{"@didiercatz/sveo":"^0.0.2","@sveltejs/adapter-netlify":"^1.0.0-next.34","@sveltejs/kit":"^1.0.0-next.188","autoprefixer":"^10.3.7","cssnano":"^5.0.8","eslint":"^8.0.1","postcss":"^8.3.9","postcss-load-config":"^3.1.0","prettier":"^2.4.1","svelte":"^3.42.6","svelte-preprocess":"^4.9.8","svelte2tsx":"^0.4.7","tailwindcss":"^2.2.16","typescript":"^4.4.4"},"type":"module","keywords":["svelte","sveltekit","seo","keywords"],"exports":{"./package.json":"./package.json",".":"./index.js"},"description":"Depndency-free approach to declare metadata on SvelteKit pages — for example for SEO.","_id":"@didiercatz/sveo@0.0.3","_nodeVersion":"16.4.1","_npmVersion":"7.18.1","dist":{"integrity":"sha512-9OHqcbhAO9GMrVT2O0OxPZMMG+d5LmxaEUPHYFMzDbtKFfo1yRw86ZQgpv68HseilVV64LNYUA1jalO071DDJQ==","shasum":"d5874f5ff5c126ba46afddc696fdd505c89815be","tarball":"https://registry.npmjs.org/@didiercatz/sveo/-/sveo-0.0.3.tgz","fileCount":5,"unpackedSize":4090,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCKh53YhsGYF5QgxXRwunr2TOcHOsHQwxezsPHoaMRbPwIgQatrUFPhZYTQj/UfZak1cgx7RR/tbn8zxE0kYtxx5lA="}]},"_npmUser":{"name":"didiercatz","email":"info@didiercatz.com"},"directories":{},"maintainers":[{"name":"didiercatz","email":"info@didiercatz.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/sveo_0.0.3_1634921646691_0.8751565209602463"},"_hasShrinkwrap":false},"0.0.4":{"name":"@didiercatz/sveo","version":"0.0.4","license":"MIT","devDependencies":{"@didiercatz/sveo":"./package","@sveltejs/adapter-netlify":"^1.0.0-next.34","@sveltejs/kit":"^1.0.0-next.188","autoprefixer":"^10.3.7","cssnano":"^5.0.8","eslint":"^8.0.1","postcss":"^8.3.9","postcss-load-config":"^3.1.0","prettier":"^2.4.1","svelte":"^3.42.6","svelte-preprocess":"^4.9.8","svelte2tsx":"^0.4.7","tailwindcss":"^2.2.16","typescript":"^4.4.4"},"type":"module","keywords":["svelte","sveltekit","seo","keywords"],"exports":{"./package.json":"./package.json",".":"./index.js"},"description":"Depndency-free approach to declare metadata on SvelteKit pages — for example for SEO.","_id":"@didiercatz/sveo@0.0.4","_nodeVersion":"16.4.1","_npmVersion":"7.18.1","dist":{"integrity":"sha512-n3BKggiZdfqJzDQ83aBLLTokAYuQS5GbMiXXEg+tiKa+DDhWHr+HRszaDHY8p7x8TFVKIlV6JD4S/d6n8nJiSA==","shasum":"73000add624500be04610c1f2a8d5227c5745d19","tarball":"https://registry.npmjs.org/@didiercatz/sveo/-/sveo-0.0.4.tgz","fileCount":5,"unpackedSize":4146,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHrVr5Da5LtYNmcUoS7j5BrslUcu2WMpuz3aMgOPMP8mAiAtsUmKmNzsYoxXbxtv/LiYh7nrqi8PFGuZAV9lTIIuKQ=="}]},"_npmUser":{"name":"didiercatz","email":"info@didiercatz.com"},"directories":{},"maintainers":[{"name":"didiercatz","email":"info@didiercatz.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/sveo_0.0.4_1634922254679_0.18845833069642381"},"_hasShrinkwrap":false},"0.1.0":{"name":"@didiercatz/sveo","version":"0.1.0","license":"MIT","devDependencies":{"@didiercatz/sveo":"^0.0.4","@sveltejs/adapter-netlify":"^1.0.0-next.34","@sveltejs/kit":"^1.0.0-next.188","autoprefixer":"^10.3.7","cssnano":"^5.0.8","eslint":"^8.0.1","mdsvex":"^0.9.8","postcss":"^8.3.9","postcss-load-config":"^3.1.0","prettier":"^2.4.1","svelte":"^3.42.6","svelte-preprocess":"^4.9.8","svelte2tsx":"^0.4.7","tailwindcss":"^2.2.16","typescript":"^4.4.4"},"type":"module","keywords":["svelte","sveltekit","seo","keywords"],"exports":{"./package.json":"./package.json","./Sveo.svelte":"./Sveo.svelte",".":"./index.js","./metadata":"./metadata.js","./utils/getFilePath":"./utils/getFilePath.js","./utils":"./utils/index.js"},"svelte":"./index.js","description":"Dependency-free approach to declare metadata on SvelteKit pages — for example for SEO.","_id":"@didiercatz/sveo@0.1.0","_nodeVersion":"16.4.1","_npmVersion":"7.18.1","dist":{"integrity":"sha512-B3h/kdPfHeoBzwCPz66A1/S00FQ3RBPjVrW4nqGV6Tkswz0ktWykhrX7yp04eJOCtvX6FDkzDipPC1UZ425org==","shasum":"ae4707255d0c6fbf544525b470b0f4624a949a4b","tarball":"https://registry.npmjs.org/@didiercatz/sveo/-/sveo-0.1.0.tgz","fileCount":13,"unpackedSize":7834,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCjbJcvK7x8W2zVNGQzkOd8lr3XLAoVOXvjFCsBG2iKnAIgdScafKm1RWhUUPJapFHyEAwyHD8hVArzxpOOwY53ne8="}]},"_npmUser":{"name":"didiercatz","email":"info@didiercatz.com"},"directories":{},"maintainers":[{"name":"didiercatz","email":"info@didiercatz.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/sveo_0.1.0_1634936787964_0.07038291058361335"},"_hasShrinkwrap":false},"0.1.1":{"name":"@didiercatz/sveo","version":"0.1.1","license":"MIT","devDependencies":{"@didiercatz/sveo":"^0.1.0","@sveltejs/adapter-netlify":"^1.0.0-next.34","@sveltejs/kit":"^1.0.0-next.188","autoprefixer":"^10.3.7","cssnano":"^5.0.8","eslint":"^8.0.1","mdsvex":"^0.9.8","postcss":"^8.3.9","postcss-load-config":"^3.1.0","prettier":"^2.4.1","svelte":"^3.42.6","svelte-preprocess":"^4.9.8","svelte2tsx":"^0.4.7","tailwindcss":"^2.2.16","typescript":"^4.4.4"},"type":"module","keywords":["svelte","sveltekit","seo","keywords"],"exports":{"./package.json":"./package.json","./Sveo.svelte":"./Sveo.svelte",".":"./index.js","./metadata":"./metadata.js","./utils/getFilePath":"./utils/getFilePath.js","./utils":"./utils/index.js"},"svelte":"./index.js","description":"Dependency-free approach to declare metadata on SvelteKit pages — for example for SEO.","_id":"@didiercatz/sveo@0.1.1","_nodeVersion":"16.4.1","_npmVersion":"7.18.1","dist":{"integrity":"sha512-LV9WJLB08ZtENnWORJPIHuHyQXiuCj1stbXTsm4XZz26bWtdgkruvqbo5eqJJDuTDJKMrUYzGnm40i1whbvqEw==","shasum":"b7a8fabfd8cbc84159d0e855c4b1eec87a0f74b5","tarball":"https://registry.npmjs.org/@didiercatz/sveo/-/sveo-0.1.1.tgz","fileCount":13,"unpackedSize":8648,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhzwfTCRA9TVsSAnZWagAAAfQP/2NtbY40VNjwQ8GaBzAP\nEcRryzadg5QKZEyd1jpST6zyDjC268YRraBEOY0cnC0ns6DWBBKPTTks2srQ\nnpdP9GOfLaA8tjxRUT7zFV3+rTzv/vLbwVDmmYkk8+04KPMpFELvhbcO2xcJ\n+xzWrePgj0PUO5jO4CbO/3xN9CTlzvXvqZK/3pN50bNG7fKYc9YSHSCJJp7H\n8OW2MXUvut27X5SyuebU9dtN5RyPUt2eJEFj93kKaCeqDQRfiIG3eQoxfXwv\nuuqFFaSkPXHNkWPVxnkBuNdkBgT+heFoh/D9ecppXnrhUolRyvhQJhOnScge\n9QK1f3Uh7olcd6eUu1E9S+5dIkd4EJ1F1xZisvTnW0d1KuJc1V600T8/157D\n5o5rmiR8+gsn/LAnDhd/WUqFvR/6qBxx4SX96CFkfJoq+LQuBBg74tKjSb4c\nz91kz5jsnachlEvVgkg/TZ4EJUIxbzHIxxDCuvZ2B71pGmDiXk8P5WOZS0Ul\ncz8VUOdgvBynIw4ntKViW2Lz6hnrsDu+4WT3Ohu5ZMQdtREiaIIiGel4jRGR\nIqhbuDhbmsZVZymzyRjkry9ZQRh1CcowIPUEAjr4tRtefAZvmAntEQ9PIL9c\nQ0lB88s5HE1bwiy9JpK6UplbJV7hYxTuWesZ3v0dy0OI5h+aXmDCjM9Ail89\nQ51s\r\n=aRCq\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDCHy+omjiW8iRi+5eeSLO6THWuoTkDdWAQLdsR8jRvuwIhANeuAFxEh5J8aLSoBtO1gbjfT6lqrbU64ZwzZ63zV7RA"}]},"_npmUser":{"name":"didiercatz","email":"info@didiercatz.com"},"directories":{},"maintainers":[{"name":"didiercatz","email":"info@didiercatz.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/sveo_0.1.1_1634937361412_0.200821587473627"},"_hasShrinkwrap":false}},"time":{"created":"2021-10-22T16:06:48.298Z","0.0.1":"2021-10-22T16:06:48.503Z","modified":"2022-04-05T04:23:44.470Z","0.0.2":"2021-10-22T16:33:03.128Z","0.0.3":"2021-10-22T16:54:06.871Z","0.0.4":"2021-10-22T17:04:14.802Z","0.1.0":"2021-10-22T21:06:28.132Z","0.1.1":"2021-10-22T21:16:01.588Z"},"maintainers":[{"name":"didiercatz","email":"info@didiercatz.com"}],"description":"Dependency-free approach to declare metadata on SvelteKit pages — for example for SEO.","keywords":["svelte","sveltekit","seo","keywords"],"readme":"# SVEO\n\nDependency-free approach to declare metadata on SvelteKit pages — for example for SEO.\n\n- Enables you to pass data from page components to `__layout.svelte`\n- :white_check_mark: Works with MDSveX out of the box.\n- `Sveo` component for easy templating of meta tags, Twitter cards, OpenGraph, etc.\n\n## Getting started\n\n### Installing\n\n```bash\nnpm i -D @didiercatz/sveo\n```\n\n### Using\n\nUsing Sveo is quite simple. Create (or edit) a `__layout.svelte` inside your `routes` folder.\n\n```js\nimport { metadata } from '@didiercatz/sveo'\n\nconst seo = await metadata(page)\n```\n\n```svelte\n<script context=\"module\">\n  import { metadata } from '@didiercatz/sveo'\n\n  export const load = async ({ page }) => {\n    // The metadata from the page component\n    const { title, description } = await metadata(page)\n\n    return {\n      props: {\n        title,\n        description\n      }\n    }\n  }\n</script>\n```\n\nThen, in your markup, you can use the `title` property as you please.\n\n```svelte\n<!-- __layout[.reset].svelte -->\n\n<script>\n  export let title\n  export let description\n</script>\n\n<h1>{title}</h1>\n<p>{description}</p>\n```\n\nFinally, you can define metadata in your route's `<script module=\"context\">`:\n\n```svelte\n<script module=\"context\">\n  export const metadata = {\n    title: 'Hello world',\n    description: 'Have a wonderful day.'\n  }\n</script>\n```\n\n### Sveo component\n\nWhile using the `metadata` function is a nice way to grab data from your page components, `sveo` also comes with a more full-fledged component that automatically templates your SEO stuff like meta tags, page titles, Twitter cards, etc.\n\n```svelte\n<!-- __layout[.reset].svelte -->\n<script context=\"module\">\n  import { metadata } from '@didiercatz/sveo'\n\n  export const load = async ({ page }) => {\n    const seo = await metadata(page)\n\n    return {\n      props: { seo }\n    }\n  }\n</script>\n\n<script>\n  import Sveo from '@didiercatz/sveo'\n\n  export let seo = {\n    // You could even fill in some defaults here.\n  }\n</script>\n\n<Sveo {seo}/>\n```\n\n### Options\n\n| `options` | default      | Purpose                                     |\n| --------- | ------------ | ------------------------------------------- |\n| `routes`  | `src/routes` | The folder containing your SvelteKit routes |\n\n## License\n\n[MIT](https://github.com/didier/sveo/blob/main/LICENSE)\n","readmeFilename":"README.md","license":"MIT"}