{"_id":"@amoutonbrady/sbg","_rev":"3-121d88d2700e69ead6c856fdb3d5a4a9","name":"@amoutonbrady/sbg","dist-tags":{"latest":"0.1.2"},"versions":{"0.1.0":{"name":"@amoutonbrady/sbg","version":"0.1.0","description":"CLI to make the easiest static blogs","author":{"name":"Alexandre Mouton-Brady","email":"amoutonbrady@gmail.com"},"repository":{"type":"git","url":"git+https://github.com/amoutonbrady/sbg.git"},"license":"MIT","private":false,"publishConfig":{"access":"public"},"bin":{"sbg":"source/cli.js"},"scripts":{"release":"np --no-tests"},"dependencies":{"@fullhuman/postcss-purgecss":"^2.0.6","autoprefixer":"^9.7.4","consola":"^2.11.3","cssnano":"^4.1.10","esm":"^3.2.25","fs-extra":"^8.1.0","gray-matter":"^4.0.2","html-minifier":"^4.0.0","marked":"^0.8.0","np":"^6.1.0","nunjucks":"^3.2.0","ora":"^4.0.3","postcss":"^7.0.27","shiki":"^0.1.6","tailwindcss":"^1.2.0","terser":"^4.6.4","workbox-build":"^5.0.0"},"devDependencies":{"prettier":"^1.19.1","serve":"^11.3.0"},"gitHead":"d8401c7ad34238f2205bb74e6641422838da47bf","bugs":{"url":"https://github.com/amoutonbrady/sbg/issues"},"homepage":"https://github.com/amoutonbrady/sbg#readme","_id":"@amoutonbrady/sbg@0.1.0","_nodeVersion":"13.8.0","_npmVersion":"6.13.6","dist":{"integrity":"sha512-xru5QfxwdRrnkDWkqFPJ5X69csDqPxNYYmA4Sv66ppJBb/zBxcgScVLjT3INMvPxdJt6gAPppZOhw9E56/TZAw==","shasum":"b7c996d95913db1fb3bfad00dc947c1465016c49","tarball":"https://registry.npmjs.org/@amoutonbrady/sbg/-/sbg-0.1.0.tgz","fileCount":15,"unpackedSize":15226,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeVuQMCRA9TVsSAnZWagAAt4wQAJcgeFK3xWU/Mz6O7IS3\nlAXhko1gjFCvuyOQTJbp/dboOT9pyQ8CpskVlurU2JMQChFB8zCze64I+I8s\n6flB/n6+fSePluGgacP0k9DKXMMFsch5RvG+crWKNZdnKET5TxOv/biiIVgV\n+rN7AFCVNySaWQi4pO518IncqjZXktSI0hr15iHvRtu3E3MSuzuLBg0Tx8D9\nG3R+ySEVU4bybLPMSqdkMf4Uj8tchOh+Mwa7XjKTZFTcU+514rQnlkJ0ZG4D\nj3fkmBq+7cA/Z+K/9avvrrTCfUXJ/i0XFi9Xnx1FJTU+RDEcwAOwnVmBdWLh\nKqCuV1da1NMZH+pg1S9G7BQ6XFwMwRJ6DeRcJeRrSqQuPl7ZTb9hYWpL4rLK\nI0Bzmc0+SM2NL7ArtqZDoHxTg8FPh6CN3HPiofcBPllr+nbe2tTuZ8cTzAZK\n1lxNZ166kcGUqvEtF/+kyeac/Jq8uGXIXbO10FVObnoo6AsOcjtXjkX7p82N\nouHPsqvZZWdp1bZ/7yU6FB97aVA/DLFrzecSRKlrvafXx5eg8dx+baahd/Pk\n9cpaAF3BOe5dLH1Smqjk6B6YXMXxjPdmd5I/uB39q7NlBopcja2WR1RaLqdA\nhCngGBFwLhQVZvHdJHoX8CrIstfnmcOejMT2mScYAwZxJRWQPs5cgXoZV95Z\nFNYd\r\n=50wl\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIAy+hEO8f9sLA/0y2gmP+lPu8xE2TcXvyU9vpPfc2oGVAiEAqk5e8cT/UzQ1peuK5EZ9vDnlCvIupIGQrbZ6JJ57OVI="}]},"maintainers":[{"name":"amoutonbrady","email":"amoutonbrady@gmail.com"}],"_npmUser":{"name":"amoutonbrady","email":"amoutonbrady@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/sbg_0.1.0_1582752779785_0.1268423869541382"},"_hasShrinkwrap":false},"0.1.1":{"name":"@amoutonbrady/sbg","version":"0.1.1","description":"CLI to make the easiest static blogs","author":{"name":"Alexandre Mouton-Brady","email":"amoutonbrady@gmail.com"},"repository":{"type":"git","url":"https://github.com/amoutonbrady/sbg"},"license":"MIT","private":false,"publishConfig":{"access":"public"},"bin":{"sbg":"source\\cli.js"},"scripts":{"release":"np --no-tests"},"dependencies":{"@fullhuman/postcss-purgecss":"^2.0.6","autoprefixer":"^9.7.4","consola":"^2.11.3","cssnano":"^4.1.10","esm":"^3.2.25","fs-extra":"^8.1.0","gray-matter":"^4.0.2","html-minifier":"^4.0.0","marked":"^0.8.0","np":"^6.1.0","nunjucks":"^3.2.0","ora":"^4.0.3","postcss":"^7.0.27","shiki":"^0.1.6","tailwindcss":"^1.2.0","terser":"^4.6.4","workbox-build":"^5.0.0"},"devDependencies":{"prettier":"^1.19.1","serve":"^11.3.0"},"_id":"@amoutonbrady/sbg@0.1.1","dist":{"shasum":"e4eea8e56fb181f6d256c520d6fd60c2aab2f9a0","integrity":"sha512-e9mLt+3/9RqgKkijj+XYxz5kyQSbjkFUjrUQ3Qv78tHmbIW0Kho4DQy0FQxLYUoO6C2mIh/5NjaGIX62CdLyQA==","tarball":"https://registry.npmjs.org/@amoutonbrady/sbg/-/sbg-0.1.1.tgz","fileCount":20,"unpackedSize":14696,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeVu+ICRA9TVsSAnZWagAAT0wQAImMG1CKXET+5t+ofaYg\nIIppRry9IQEmBFp/DmjcfqHvMvEYRrvG7ezmIGz6Q4u0iJXyXi1ApDi2sIVv\nlEOSvwj5FSTDxrBzOtVP3E3lB1ETyMLLsWO5lMg70Wak8T9lcmnRTLpPd9cr\nUqQrHFrm3LrIx9eY+foSe/dUXBpgP0nkf59WPec9YOlwWnAbj8J1HiiMDoyo\nmjWJQi9/3aLhJmIRoIQZj5dpdpeGZhwSkgnr/BXlPlAu/7nTOteVenlawkfI\n1rNf4L2X6rXOAMGRM+IyXcMz/L5KUOPvoBbANvGohK9D/+Sj4D0fyokVz78B\nX4dFCT3VzO8af3AgsYknGxjeY6KnFuS21ku29jXk5L4ahZd0Lz8LX0ANCun3\nFXwgAJgV7V7z/SOIfOyBZO/XUbQjORJk1Ie/xWcZiUdPM/DKdQMBbAV9diDB\niE7pcoiOzMqD2hJ+zsVv32yzUq0fbL9C4b7HnoveDzDZKeQ03Jnhlo2506s0\nDnnF4SuLgYOvLbn8vXNfSeXoVtAao2tLfFM47Ld6e0odR1duXQblKNWlEAuV\nP7wazOymlwIdD74I1j/NPw5pikW1L6eNr6u+dw+rHf4ZOe3sC+n3dENKwytR\nC2zexoWzCwteY0GKv8wZVzXxPn735uJwxJ4aHxIFG0fHdD51gjV8f4vnFexp\nYv0a\r\n=mSbl\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIA+r1S+H9HE6vXjDvaHmC46yW77I1kPHuHGYpcuGZiCbAiEAoKiI8lhW5iXgd18kVIm5a5P/zxDfbfNyCm9Bjd8m9iw="}]},"maintainers":[{"name":"amoutonbrady","email":"amoutonbrady@gmail.com"}],"_npmUser":{"name":"amoutonbrady","email":"amoutonbrady@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/sbg_0.1.1_1582755720150_0.7046457208895043"},"_hasShrinkwrap":false},"0.1.2":{"name":"@amoutonbrady/sbg","version":"0.1.2","description":"CLI to make the easiest static blogs","author":{"name":"Alexandre Mouton-Brady","email":"amoutonbrady@gmail.com"},"repository":{"type":"git","url":"git+https://github.com/amoutonbrady/sbg.git"},"license":"MIT","private":false,"publishConfig":{"access":"public"},"bin":{"sbg":"source/cli.js"},"scripts":{"release":"np --no-tests"},"dependencies":{"@fullhuman/postcss-purgecss":"^2.0.6","autoprefixer":"^9.7.4","consola":"^2.11.3","cssnano":"^4.1.10","esm":"^3.2.25","fs-extra":"^8.1.0","gray-matter":"^4.0.2","html-minifier":"^4.0.0","marked":"^0.8.0","np":"^6.1.0","nunjucks":"^3.2.0","ora":"^4.0.3","postcss":"^7.0.27","shiki":"^0.1.6","tailwindcss":"^1.2.0","terser":"^4.6.4","workbox-build":"^5.0.0"},"devDependencies":{"prettier":"^1.19.1","serve":"^11.3.0"},"gitHead":"11d18765bc63ee10a553a5aecdd73040622d01ec","bugs":{"url":"https://github.com/amoutonbrady/sbg/issues"},"homepage":"https://github.com/amoutonbrady/sbg#readme","_id":"@amoutonbrady/sbg@0.1.2","_nodeVersion":"13.8.0","_npmVersion":"6.13.6","dist":{"integrity":"sha512-orNUTGU2rXSb9Y1Rr5En+kT/fXIAa8O3tieOrJiSUhh5mF2yCykE3yhyqY6e9hMXSpWiWfVbrE9OENfaOjsqug==","shasum":"5ff2e13b884e81a8e80c42553032ae68437c4a9a","tarball":"https://registry.npmjs.org/@amoutonbrady/sbg/-/sbg-0.1.2.tgz","fileCount":15,"unpackedSize":14696,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeVu/3CRA9TVsSAnZWagAACmMP/3uBNDqMikqwnoQtTgPk\n7UAkDt3GWl85jSnsFf6ZyGVn/KZyQtbL/ELfnZT0svpGzRE5uSe5/uuMvjWB\n6wQEgUEs5V8w/168jV0HfmSYD9V5j8/5Gy6dQvnD0XLLMrZNCgGkm+r1mgqp\nKXRIPpnQB6Ngn6Ygvp6vt/hAuo6UaRaMGKgyN311R9nfYHB9vDqwxyczsdVF\nC/SFpfFsJhLeCIy553/6TrT0T6DMtyEa2g26xC35tGpf1odGiNXoK114qwZX\nhphEkzjGghH5gkcKLdq5mWYfxuNAZKtdcgKuYzuQjlyIMQCHBM8Wppx4v7JG\nUKWCjJ2rjPAiKexiRtVqjA2/zAZS4jSAaF1UM2+VzFiwXzNbREf9QVO9GrEz\nE/m819tiKjUcimzv9FcuQF9OT2XV/UcP8Adtg+15YLPDl0qxNDw4HiAdxGia\nD2GnO1rclycY+9CvZPOMsOZsEkkOo9w9HtV01iE9TFWYkuFmWu8mAXIZX434\nsqJkqVYCcYSBKTq8PLgQkzXrmg0QL7766CVJVrQj+xIhCMejfhaLt98O2933\nQw6YTbjdBgCWecOTTcAOQ9U8cxKnAzE4Ji4oakIP9h/2jSq8EJnjqOdoi9da\nfNIDqjeNXbm4cUu4WsB8lfLJk9RA9zOyTQuNsf1+VFdx+s36JtnXdtcAa3rd\nMSKK\r\n=0O9C\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCwiQ2REVOCAwN+gllDvMwJo89vjI7LQ3q4mHCkpzA0bgIgRx6eBiWmCVXdQ7zVOrYklF3+bAK2UzQ5fZ6Nms2xask="}]},"maintainers":[{"name":"amoutonbrady","email":"amoutonbrady@gmail.com"}],"_npmUser":{"name":"amoutonbrady","email":"amoutonbrady@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/sbg_0.1.2_1582755831428_0.20869721526590923"},"_hasShrinkwrap":false}},"time":{"created":"2020-02-26T21:32:59.754Z","0.1.0":"2020-02-26T21:32:59.898Z","modified":"2022-04-04T13:51:03.340Z","0.1.1":"2020-02-26T22:22:00.283Z","0.1.2":"2020-02-26T22:23:51.535Z"},"maintainers":[{"name":"amoutonbrady","email":"amoutonbrady@gmail.com"}],"description":"CLI to make the easiest static blogs","repository":{"type":"git","url":"git+https://github.com/amoutonbrady/sbg.git"},"author":{"name":"Alexandre Mouton-Brady","email":"amoutonbrady@gmail.com"},"license":"MIT","readme":"# Static Blog Generator\n\nMinimal, experimental & opinionated static blog generator\n\n![PWA score 100%](.github/pwa.jpg)\n\n## Usage\n\nAdd `sbg` to your local dependencies\n\n`yarn add @amoutonbrady/sbg`\n\nWhen you are ready to build your thing just run teh following command from thr `root` of your project\n\n`yarn sbg` or `npx sbg`\n\nYou can also create an npm script that runs it for you\n\n```json\n// package.json\n{\n\t...,\n\t\"scripts\": {\n\t\t\"build\": \"sbg\"\n\t}\n}\n```\n\nAnd run `yarn build` or `npm run build`\n\n---\n\nThe build will automatically create a dist folder with everything routed for a static host.\n\nAdditionnally, it will also provide a service worker to make the website work offline and please the search engine with an **okay-ish** Lighthouse score.\n\n## Architecture\n\n```\n├───assets\n├───layouts\n├───pages\n└───posts\n```\n\n-   `assets`: contains all the images (we don't care about CSS or JS)\n-   `layouts`: contains the layouts, see the different layouts below\n-   `pages`: each html file will represent a page (eg: blog.html will turn into /blog/index.html). The `posts` param will be auto-injected\n-   `posts`: contains your posts content. The title of the file will be the slug\n\n## Layouts\n\nAll layout file have to be in the `layouts` folder.\n\nLayouts are just [nunjucks](https://mozilla.github.io/) templates. You can extends and do all sort of things with it.\n\nAny data defined in the [front matter](https://jekyllrb.com/docs/front-matter/) markdown files will be injected in the corresponding layout. First it will be be parsed by [gray-matter](https://github.com/jonschlinkert/gray-matter), then compiled to html via [marked](https://marked.js.org/). All code will be automatically highlighted by [shiki](https://github.com/octref/shiki).\n\nThe `content` variable is the compiled markdown.\n\nList of supported template files:\n\n| Name        | Available variables                                                                                                                                                                                                                                                                      |\n| ----------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| `post.html` | _ `content`: markdown content as html<br>_ `createdAt`: creation date (js date) of the markdown file<br>_ `updatedAt`: last modified date (js date) of the markdown file<br>_ `url`: relative url of the blog post<br>\\* Any other data defined in the front matter of the markdown file |\n\nMore to come as the project needs it.\n\n## Pages\n\nList of variables injected into each page:\n\n-   `posts`: List of posts which an array of object containing the same data as the `post.html` template minus the `content` one.\n\n## Config\n\nIf a `config.js` is at the root of the directory, it will be resolved and used.\n\nIts needs to default export a configuration object.\n\nFor the moment only the `filters` key work. It is an array of filters for njk templates.\n\n## TODO\n\n### Initial TODOS\n\n-   [x] ~~Moare layouts (specifically index with list of posts)~~ Implemented as \"pages\"\n-   [x] ~~Process assets~~ Only for JS (minification) & CSS (dead code removal, minification, autoprefixer, tailwind)\n-   [ ] ~~Mess around with typescript maybe~~ Delayed for later\n-   [x] ~~Make it agnostic and configurable maybe~~ Sort of implemented it (only njk filters for now)\n-   [x] ~~Add feedback on the CLI~~ Added some more context during build\n-   [x] ~~Add a develop mode maybe~~ Add a \"serve\" command to serve the dist, still to build manually for now\n\n### 02/25/2020\n\n-   [ ] Inject a `pages` variable in the pages files to be able to make a navigation\n-   [ ] Add a filter or something to make some sort of pagination\n-   [ ] Fix perfs issues if possible...\n-   [ ] Mess around with typescript maybe, could be useful for the config\n","readmeFilename":"README.md","homepage":"https://github.com/amoutonbrady/sbg#readme","bugs":{"url":"https://github.com/amoutonbrady/sbg/issues"}}