{"_id":"grunt-writing","_rev":"31-cebe498ac89524dc0d74feb0d9136e5b","name":"grunt-writing","dist-tags":{"latest":"1.0.0"},"versions":{"0.0.1":{"name":"grunt-writing","version":"0.0.1","keywords":["gruntplugin"],"author":{"url":"http://colin-gourlay.com/","name":"Colin Gourlay","email":"colin@colin-gourlay.com"},"_id":"grunt-writing@0.0.1","maintainers":[{"name":"colingourlay","email":"colin.j.gourlay@gmail.com"}],"homepage":"https://github.com/colingourlay/grunt-writing","bugs":{"url":"https://github.com/colingourlay/grunt-writing/issues"},"dist":{"shasum":"90798dbe3dfa29659a3105706f85572307cf3b56","tarball":"https://registry.npmjs.org/grunt-writing/-/grunt-writing-0.0.1.tgz","integrity":"sha512-n2NDbw+7FgxN7K4qlwmdQY90LoVjy0xAErlri8JsOJDk8F0fy8WDw/WTeoFA1BEFxwvM56JUmUSbnS7uk+EoUw==","signatures":[{"sig":"MEQCIBK8Urkuruy9FbVGl8/aSQwhU9YYBDb53y6PVz3qpwtBAiB4wf6nDmP1zjx0+vZ+9pAaXVbY+C6sX8teqpYdS8AULw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"Gruntfile.js","_from":".","engines":{"node":">= 0.8.0"},"_npmUser":{"name":"colingourlay","email":"colin.j.gourlay@gmail.com"},"licenses":[{"url":"https://github.com/colingourlay/grunt-writing/blob/master/LICENSE-MIT","type":"MIT"}],"repository":{"url":"git://github.com/colingourlay/grunt-writing.git","type":"git"},"_npmVersion":"1.2.14","description":"Generate a simple collection of HTML posts from markdown, and an index of teasers.","directories":{},"dependencies":{"jade":"~0.34.1","lodash":"~1.3.1","marked":"~0.2.9","js-yaml":"~2.1.0","pygmentize-bundled":"~1.0.1"},"readmeFilename":"README.md","devDependencies":{"grunt":"~0.4.1"},"peerDependencies":{"grunt":"~0.4.1"}},"0.0.2":{"name":"grunt-writing","version":"0.0.2","keywords":["gruntplugin"],"author":{"url":"http://colin-gourlay.com/","name":"Colin Gourlay","email":"colin@colin-gourlay.com"},"_id":"grunt-writing@0.0.2","maintainers":[{"name":"colingourlay","email":"colin.j.gourlay@gmail.com"}],"homepage":"https://github.com/colingourlay/grunt-writing","bugs":{"url":"https://github.com/colingourlay/grunt-writing/issues"},"dist":{"shasum":"4591ca416e0e22b367fe684ec2849629c492f008","tarball":"https://registry.npmjs.org/grunt-writing/-/grunt-writing-0.0.2.tgz","integrity":"sha512-cgyWCSVI6BK2TB20Hnivvx3sOgYgOwYtYpWF+ufZP0uRk9+YAEcnnMG9up3K7u3ue8zoBF1JbH9EQJXDCk1DuQ==","signatures":[{"sig":"MEQCIE633XOW/BMRtY+jtdYa8SQOfFkfnr0RlnwaoYtJ9y2GAiB1++iWlpjfPox3yWjvWooLChm9XjyTqsehuSjwc9GZoQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"Gruntfile.js","_from":".","engines":{"node":">= 0.8.0"},"_npmUser":{"name":"colingourlay","email":"colin.j.gourlay@gmail.com"},"licenses":[{"url":"https://github.com/colingourlay/grunt-writing/blob/master/LICENSE-MIT","type":"MIT"}],"repository":{"url":"git://github.com/colingourlay/grunt-writing.git","type":"git"},"_npmVersion":"1.2.14","description":"Generate a simple collection of HTML posts from markdown, and an index of teasers.","directories":{},"dependencies":{"jade":"~0.34.1","lodash":"~1.3.1","marked":"~0.2.9","js-yaml":"~2.1.0","pygmentize-bundled":"~1.0.1"},"readmeFilename":"README.md","devDependencies":{"grunt":"~0.4.1"},"peerDependencies":{"grunt":"~0.4.1"}},"0.0.3":{"name":"grunt-writing","version":"0.0.3","keywords":["gruntplugin"],"author":{"url":"http://colin-gourlay.com/","name":"Colin Gourlay","email":"colin@colin-gourlay.com"},"_id":"grunt-writing@0.0.3","maintainers":[{"name":"colingourlay","email":"colin.j.gourlay@gmail.com"}],"homepage":"https://github.com/colingourlay/grunt-writing","bugs":{"url":"https://github.com/colingourlay/grunt-writing/issues"},"dist":{"shasum":"498dfc4fbef141db1664d616c4cde391fe6b9232","tarball":"https://registry.npmjs.org/grunt-writing/-/grunt-writing-0.0.3.tgz","integrity":"sha512-BK619BRJtypc7WO9iMUlTnxHgaX1kH+DYqIOB8mzSfcEI3jcvFE2XGhRs1LOHc3NcAukYKgfmrMrTOzE1fW5XQ==","signatures":[{"sig":"MEUCICaIANUVDMauLoTB8WdpbfhQkIzs1cF/19wXhw1YLiYcAiEAz2vwGwKiPis8MD8JEt7BZUOUpvyur5D8b9uwQS8ptTk=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"Gruntfile.js","_from":".","engines":{"node":">= 0.8.0"},"_npmUser":{"name":"colingourlay","email":"colin.j.gourlay@gmail.com"},"licenses":[{"url":"https://github.com/colingourlay/grunt-writing/blob/master/LICENSE-MIT","type":"MIT"}],"repository":{"url":"git://github.com/colingourlay/grunt-writing.git","type":"git"},"_npmVersion":"1.2.14","description":"Generate a simple collection of HTML posts from markdown, and an index of teasers.","dependencies":{"rss":"~0.2.0","jade":"~0.34.1","lodash":"~1.3.1","marked":"~0.2.9","js-yaml":"~2.1.0","pygmentize-bundled":"~1.0.1"},"readmeFilename":"README.md","devDependencies":{"grunt":"~0.4.1"},"peerDependencies":{"grunt":"~0.4.1"},"directories":{}},"1.0.0":{"name":"grunt-writing","description":"Generate a simple collection of HTML posts from markdown, and an index of teasers.","version":"1.0.0","author":{"name":"Colin Gourlay","email":"colin@colin-gourlay.com","url":"http://colin-gourlay.com/"},"repository":{"type":"git","url":"https://codeberg.org/colingourlay/grunt-writing"},"main":"Gruntfile.js","engines":{"node":">= 8.0.0"},"devDependencies":{"grunt":"^1.6.1","grunt-contrib-jshint":"^3.2.0"},"peerDependencies":{"grunt":"^1.6.1"},"keywords":["gruntplugin"],"dependencies":{"jade":"^0.31.2","js-yaml":"^4.1.0","lodash":"^4.17.21","marked":"^15.0.12","pygmentize-bundled":"~1.0.1","rss":"~0.2.0"},"_id":"grunt-writing@1.0.0","gitHead":"709784a04afb6e6b59c19fd6e707f63660022461","_nodeVersion":"20.18.1","_npmVersion":"10.8.2","dist":{"integrity":"sha512-J/E1wT1tGkoO/CKtBuEzvZAMd/XHTdTZESMUf1ImvN0VnPWNY7KRnP974eoIgHHcXjH9wTm5ix7D6cVAoy/XfQ==","shasum":"0ab63063d3a3693a7c4727fe2186715aa750418a","tarball":"https://registry.npmjs.org/grunt-writing/-/grunt-writing-1.0.0.tgz","fileCount":6,"unpackedSize":8915,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIDRg/vNkJx6jcY2RMkuD7ahFRRDzZnn3+ORXC6w/7SL4AiEAigBgSsJl64zu3lzy43TBWsjG89sTjoULcIcfx75nIsE="}]},"_npmUser":{"name":"colingourlay","email":"colin@colin-gourlay.com"},"directories":{},"maintainers":[{"name":"colingourlay","email":"colin@colin-gourlay.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/grunt-writing_1.0.0_1748480486631_0.5244523068383722"},"_hasShrinkwrap":false}},"time":{"created":"2013-08-06T15:41:51.481Z","modified":"2025-05-29T01:01:26.978Z","0.0.1":"2013-08-06T15:41:56.107Z","0.0.2":"2013-08-11T06:30:13.045Z","0.0.3":"2013-08-14T12:49:42.035Z","1.0.0":"2025-05-29T01:01:26.809Z"},"author":{"name":"Colin Gourlay","email":"colin@colin-gourlay.com","url":"http://colin-gourlay.com/"},"repository":{"type":"git","url":"https://codeberg.org/colingourlay/grunt-writing"},"description":"Generate a simple collection of HTML posts from markdown, and an index of teasers.","keywords":["gruntplugin"],"maintainers":[{"name":"colingourlay","email":"colin@colin-gourlay.com"}],"readme":"# grunt-writing\n\n> Generate a simple collection of HTML posts from markdown, and an index of teasers.\n\n[![NPM](https://nodei.co/npm/grunt-writing.png)](https://nodei.co/npm/grunt-writing/)\n\n## Getting Started\nThis plugin requires Grunt `^1.6.1`\n\nIf you haven't used [Grunt](http://gruntjs.com/) before, be sure to check out the [Getting Started](http://gruntjs.com/getting-started) guide, as it explains how to create a [Gruntfile](http://gruntjs.com/sample-gruntfile) as well as install and use Grunt plugins. Once you're familiar with that process, you may install this plugin with this command:\n\n```shell\nnpm install grunt-writing --save-dev\n```\n\nOnce the plugin has been installed, it may be enabled inside your Gruntfile with this line of JavaScript:\n\n```js\ngrunt.loadNpmTasks('grunt-writing');\n```\n\n## The \"writing\" task\n\n### Overview\nIn your project's Gruntfile, add a section named `writing` to the data object passed into `grunt.initConfig()`.\n\n```js\ngrunt.initConfig({\n  writing: {\n    '<target>': {\n      meta: {\n        title: '<site_title>',\n        description: '<site_description_(optional)>',\n        author: '<site_author>',\n        url: '<site_url>',\n        lang: '<language_code_(optional)>'\n      },\n      templates: '<directory_containing_jade_templates>',\n      posts: '<directory_containing_markdown_posts>',\n      dest: '<output_directory>'\n    }\n  }\n});\n```\n\n#### Example Config\n\n```js\ngrunt.initConfig({\n  writing: {\n    build: {\n      meta: {\n        title: 'The Blog',\n        description: 'IT\\'s a blog',\n        author: 'The Blogger',\n        url: 'http://the-blog.com',\n        lang: 'en'\n      },\n      templates: 'src/templates',\n      posts: 'src/posts',\n      dest: 'build'\n    }\n  }\n});\n```\n\n### Templates\n\nAll templates are expected to be written in jade. The templates folder _must_ contain a minimum of 3 files: `post.jade`, `index.jade` & `archive.jade`. You're free to use whatever layouts / mixins you want, but you can't change the names of these files.\n\nThe `post` object is available to the `post.jade` template. The `posts` array is available to the `index.jade` and `archive.jade` templates. The `meta` object is available to all 3 templates (as well as your layouts).\n\n#### RSS Feed\n\nThe `rssURL` property is added to the `meta` object for use in templating.\n\n\n[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/colingourlay/grunt-writing/trend.png)](https://bitdeli.com/free \"Bitdeli Badge\")\n\n","readmeFilename":"README.md"}