{"_id":"enfield","_rev":"22-aa36f69605d960516868e6f297b1ff37","name":"enfield","description":"Jekyll-like blog engine for node.js","dist-tags":{"latest":"0.4.0"},"versions":{"0.1.0":{"name":"enfield","description":"Jekyll-like blog engine for node.js","author":{"name":"Filipe Fortes","email":"filipe@fortes.com"},"version":"0.1.0","dependencies":{"async":"~0.1","coffee-script":"~1.4","colors":"~0.6","fs-extra":"~0.3","highlight":"~0.2","js-yaml":"~1.0","marked":"~0.2","moment":"~1.7","optimist":"~0.3","node-static":"~0.6","tinyliquid":"~0.1","uglify-js":"~1.3","uslug":"~1.0","watch":"~0.5"},"engines":{"node":"~0.8"},"contributors":[{"name":"Filipe Fortes"}],"bugs":{"url":"https://github.com/fortes/enfield/issues"},"devDependencies":{},"bin":{"enfield":"./bin/enfield.coffee"},"preferGlobal":true,"repository":{"type":"git","url":"http://github.com/fortes/enfield.git"},"keywords":["blog","static","jekyll"],"license":"MIT","_id":"enfield@0.1.0","dist":{"shasum":"8bff936b3f5d9c8f046d692974c82399e6743076","tarball":"https://registry.npmjs.org/enfield/-/enfield-0.1.0.tgz","integrity":"sha512-d8pHy/Lsvd00d+v/vP3Tv0bj5+sO/43HmE7dJWVkskdvzwcZFNeHYODfOcSoh8RNhf10bdF8mO96iT96WLxcNw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIAJWpITM2vTv+euPrfUbjH3DRybpToELjBpHUaxCFe8KAiBWBA9a3RqjvWvxTXGQSiK91DQroWYtjk843j1QGNE3VQ=="}]},"_npmVersion":"1.1.66","_npmUser":{"name":"fortes","email":"accounts@fortes.com"},"maintainers":[{"name":"fortes","email":"accounts@fortes.com"}]},"0.1.1":{"name":"enfield","description":"Jekyll-like blog engine for node.js","author":{"name":"Filipe Fortes","email":"filipe@fortes.com"},"version":"0.1.1","dependencies":{"async":"~0.1","coffee-script":"~1.4","colors":"~0.6","fs-extra":"~0.3","highlight":"~0.2","js-yaml":"~1.0","marked":"~0.2","moment":"~1.7","optimist":"~0.3","node-static":"~0.6","tinyliquid":"~0.1","uglify-js":"~1.3","uslug":"~1.0","watch":"~0.5"},"engines":{"node":"~0.8"},"contributors":[{"name":"Filipe Fortes"}],"bugs":{"url":"https://github.com/fortes/enfield/issues"},"devDependencies":{},"bin":{"enfield":"./bin/enfield.coffee"},"preferGlobal":true,"repository":{"type":"git","url":"http://github.com/fortes/enfield.git"},"keywords":["blog","static","jekyll"],"license":"MIT","_id":"enfield@0.1.1","dist":{"shasum":"590d89fcff3a5e3ba991831091be8096391efaa3","tarball":"https://registry.npmjs.org/enfield/-/enfield-0.1.1.tgz","integrity":"sha512-rwZkkrmgHqlXpVW8JX3zYXd1cN1f0UPKKjTxCKBZ8C6xZe4DcQ66Ob0eDL9m8mG1NUeDZ7COxqD5UwyYnU4gOQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCSVDW58FJHYLILJIru2pavy5h3UoByOQ3ecGP/sEj4DAIgedCyxhsWIY1Ihh9rkCFKkNWq/j3AxMqiqVdTftxOrpA="}]},"_npmVersion":"1.1.66","_npmUser":{"name":"fortes","email":"accounts@fortes.com"},"maintainers":[{"name":"fortes","email":"accounts@fortes.com"}]},"0.2.0":{"name":"enfield","description":"Jekyll-like blog engine for node.js","author":{"name":"Filipe Fortes","email":"filipe@fortes.com"},"version":"0.2.0","dependencies":{"async":"~0.1","coffee-script":"~1.4","colors":"~0.6","fs-extra":"~0.3","highlight":"~0.2","js-yaml":"~1.0","less":"~1.3","marked":"~0.2","moment":"~1.7","optimist":"~0.3","node-static":"~0.6","tinyliquid":"~0.1","uglify-js":"~1.3","uslug":"~1.0","watch":"~0.5"},"engines":{"node":"~0.8"},"contributors":[{"name":"Filipe Fortes"}],"bugs":{"url":"https://github.com/fortes/enfield/issues"},"devDependencies":{},"bin":{"enfield":"./bin/enfield.coffee"},"preferGlobal":true,"repository":{"type":"git","url":"http://github.com/fortes/enfield.git"},"keywords":["blog","static","jekyll"],"license":"MIT","_id":"enfield@0.2.0","dist":{"shasum":"df9c2f01c6395964197f18fcc3e89f55b6b36c82","tarball":"https://registry.npmjs.org/enfield/-/enfield-0.2.0.tgz","integrity":"sha512-zlP9QonPwtBqDr3WDSVq54sEqilr3bNHIc0KFop+Tmton/sJ2dfDBOLADZzw9cPOhyQ8jasCwFMptNSwb8F00Q==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDgWP5F0iyDlxqWj4D8eoDYwrsx8nI/5VynmkDx+p40YQIhAL3cmJx5Sxm7E94wrFWTSSrUJw88FHPiCDffzqL3wj+R"}]},"_npmVersion":"1.1.66","_npmUser":{"name":"fortes","email":"accounts@fortes.com"},"maintainers":[{"name":"fortes","email":"accounts@fortes.com"}]},"0.2.1":{"name":"enfield","description":"Jekyll-like blog engine for node.js","author":{"name":"Filipe Fortes","email":"filipe@fortes.com"},"version":"0.2.1","dependencies":{"async":"~0.1","coffee-script":"~1.4","colors":"~0.6","fs-extra":"~0.3","highlight":"~0.2","js-yaml":"~1.0","less":"~1.3","marked":"~0.2","moment":"~1.7","optimist":"~0.3","node-static":"~0.6","tinyliquid":"~0.1","uglify-js":"~1.3","uslug":"~1.0","watch":"~0.5"},"engines":{"node":"~0.8"},"contributors":[{"name":"Filipe Fortes"}],"bugs":{"url":"https://github.com/fortes/enfield/issues"},"devDependencies":{},"bin":{"enfield":"./bin/enfield.coffee"},"preferGlobal":true,"repository":{"type":"git","url":"http://github.com/fortes/enfield.git"},"keywords":["blog","static","jekyll"],"license":"MIT","_id":"enfield@0.2.1","dist":{"shasum":"d59b500b1e7cb897d186779ab268fa8037fc88b2","tarball":"https://registry.npmjs.org/enfield/-/enfield-0.2.1.tgz","integrity":"sha512-3MA8GbvRfPEEyvoBCJf5xegYr9u8N5UehQiTsIMWDPIn67/d21FrlpfYYnIPqCJebuzvsz5NEj2EagysBDm+8w==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDbzYYvTkbMJgm90VpA91jvRDC9OdURPEHBUhurohtuugIgJYX1NQ4uEqDpgUHj7FzgKhCwZ3xVnbku0/alOJxubVs="}]},"_npmVersion":"1.1.66","_npmUser":{"name":"fortes","email":"accounts@fortes.com"},"maintainers":[{"name":"fortes","email":"accounts@fortes.com"}]},"0.3.0":{"name":"enfield","description":"Jekyll-like blog engine for node.js","author":{"name":"Filipe Fortes","email":"filipe@fortes.com"},"version":"0.3.0","dependencies":{"async":"~0.1","coffee-script":"~1.4","colors":"~0.6","ent":"~0.0","fs-extra":"~0.6.1","js-yaml":"~1.0","less":"~1.3","marked":"~0.2","moment":"~1.7","node-static":"~0.6","pygments":"~0.2","tinyliquid":"~0.1","toposort":"~0.2","uglify-js":"~1.3","uslug":"~1.0","gaze":"~0.3.4","nopt":"~2.1.1","npmlog":"0.0.2","glob":"~3.2.1","time":"~0.9.2"},"engines":{"node":">=0.8"},"contributors":[{"name":"Filipe Fortes"}],"bugs":{"url":"https://github.com/fortes/enfield/issues"},"devDependencies":{},"bin":{"enfield":"./bin/enfield.coffee"},"preferGlobal":true,"repository":{"type":"git","url":"http://github.com/fortes/enfield.git"},"keywords":["blog","static","jekyll"],"license":"MIT","_id":"enfield@0.3.0","dist":{"shasum":"759d46d319f32e8e024fa6df9472a7d61431bd0c","tarball":"https://registry.npmjs.org/enfield/-/enfield-0.3.0.tgz","integrity":"sha512-vgv1EcCCvMDNWFhPnPBWm8H5jcNu5N0pLEQ+d3n2ZBKPuDBOvDaispG4XODXBpQdYBRFmAoidHuEnZu4YWcyiA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQD+2BvCem+CuCVCNTPIX1rUNyuD91Ar21PV/sksJ9k6HAIhAPaUQh2ZXzLu7uQj3lzsvBuNM5MSr3WonjmttEiK0GCV"}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"fortes","email":"accounts@fortes.com"},"maintainers":[{"name":"fortes","email":"accounts@fortes.com"}]},"0.3.1":{"name":"enfield","description":"Jekyll-like blog engine for node.js","author":{"name":"Filipe Fortes","email":"filipe@fortes.com"},"version":"0.3.1","dependencies":{"async":"~0.1","coffee-script":"~1.4","colors":"~0.6","fs-extra":"~0.6.1","gaze":"~0.3.4","glob":"~3.2.1","he":"~0.1.2","js-yaml":"~1.0","less":"~1.3","marked":"~0.2","moment":"~1.7","node-static":"~0.6","nopt":"~2.1.1","npmlog":"0.0.2","pygments":"~0.2","time":"~0.9.2","tinyliquid":"~0.2","toposort":"~0.2","uglify-js":"~1.3","uslug":"~1.0"},"engines":{"node":">=0.8"},"contributors":[{"name":"Filipe Fortes"}],"bugs":{"url":"https://github.com/fortes/enfield/issues"},"devDependencies":{},"bin":{"enfield":"./bin/enfield.coffee"},"preferGlobal":true,"repository":{"type":"git","url":"http://github.com/fortes/enfield.git"},"keywords":["blog","static","jekyll"],"license":"MIT","_id":"enfield@0.3.1","dist":{"shasum":"5ad58a7a4fb14635853778cc325e32cc1ef67b7f","tarball":"https://registry.npmjs.org/enfield/-/enfield-0.3.1.tgz","integrity":"sha512-nRUK2yKaUfCA3eNzre73xbk84VbAL7SwY/JMH1oBjNt7cbbCI13cTnZ0CExQcifqIQjhmQsAHweXNi7NFRHFSw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCSJmF9zGbmMs48P721K/PxLrDEj7r+y3aENeuTOt3/nQIgdUzL0TyyKXNcx40rNmza7UBrJ8QpWlQdPOAsf9AQ4xY="}]},"_from":".","_npmVersion":"1.3.11","_npmUser":{"name":"fortes","email":"accounts@fortes.com"},"maintainers":[{"name":"fortes","email":"accounts@fortes.com"}]},"0.4.0":{"name":"enfield","version":"0.4.0","description":"Jekyll-like blog engine for node.js","author":{"name":"Filipe Fortes","email":"filipe@fortes.com"},"license":"MIT","repository":{"type":"git","url":"https://github.com/fortes/enfield"},"keywords":["blog","static","generator","jekyll"],"files":["bin","CHANGELOG.md","LICENSE","site_template","src"],"bin":{"enfield":"./bin/enfield.js"},"preferGlobal":true,"scripts":{"test":"NODE_ENV=test mocha --recursive --reporter tap --compilers coffee:coffee-script/register","test-watch":"NODE_ENV=test mocha --recursive --watch --reporter dot --compilers coffee:coffee-script/register"},"dependencies":{"async":"~0.9","coffee-script":"~1.9","colors":"~1.0","fs-extra":"~0.18","gaze":"~0.5","glob":"~5.0","he":"~0.5","js-yaml":"~3.2","less":"~2.5","marked":"~0.3","moment":"~2.10","node-static":"~0.7","nopt":"~3.0","npmlog":"~1.2","pygments":"~0.2","q":"~1.2","time":"~0.11","tinyliquid":"~0.2","toposort":"~0.2","uglify-js":"~2.4","uslug":"~1.0","highlight.js":"~8.5"},"devDependencies":{"mocha":"~2.2","sinon":"~1.14"},"engines":{"node":">=0.8"},"directories":{"test":"test"},"gitHead":"5b5b29c68c34e24e36a6b12f80944b295b3f25c5","bugs":{"url":"https://github.com/fortes/enfield/issues"},"homepage":"https://github.com/fortes/enfield","_id":"enfield@0.4.0","_shasum":"c6fe0abd5de6d24093c83417f07d43705e40defe","_from":".","_npmVersion":"2.7.5","_nodeVersion":"0.12.2","_npmUser":{"name":"fortes","email":"accounts@fortes.com"},"maintainers":[{"name":"fortes","email":"accounts@fortes.com"}],"dist":{"shasum":"c6fe0abd5de6d24093c83417f07d43705e40defe","tarball":"https://registry.npmjs.org/enfield/-/enfield-0.4.0.tgz","integrity":"sha512-WbfxMUC5iQmkNfyz5ixZJ8LvFkUUk9DKxg8Ooj3hXoZPA+gzWxzGPWpfU10sADYs9qM3LmmcW8/O2HazHEJDpA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCbyLfhQ0PDztI2K3W5eyb5oqzCjeeF7iWbV5WmGRDT3AIgfwSzPc+Mrfgc/Mas7ouH2S4kt72BxvYnFVRxY163AwY="}]},"deprecated":"No longer maintained, if you would like to take over send a pull request"}},"readme":"[![Build Status](https://travis-ci.org/fortes/enfield.png?branch=master)](https://travis-ci.org/fortes/enfield)\n[![Dependency Status](https://david-dm.org/fortes/enfield.png?theme=shields.io)](https://david-dm.org/fortes/enfield)\n[![devDependency Status](https://david-dm.org/fortes/enfield/dev-status.png?theme=shields.io)](https://david-dm.org/fortes/enfield#info=devDependencies)\n- - -\n\n# Enfield\n\nJekyll-like static site generator for node.js that aims to be as compatible as possible with [Jekyll](https://github.com/jekyll/jekyll).\n\n## Features\n\nCore functionality is identical to Jekyll:\n\n* Blog aware static site generator\n* Compatible with the Jekyll directory and file structure\n* Use Markdown for posts\n* Code highlighting via Pygments or Highlight.js\n* Layouts written using Liquid template engine\n* Server / Auto-regenerate\n* Extension-less page URLs (i.e. `/example/` from `/example.html` via `pretty_urls` configuration variable)\n\nThere are a few bonus features not present in the default install of Jekyll:\n\n* Jekyll-like plugin model, with CoffeeScript/JS instead of Ruby\n* Use Markdown within includes\n* Compile and minify CoffeeScript & LESS\n* Support post and page URL aliases via redirects\n\nFinally, there are a few missing features:\n\n* Textile support\n* Importing tools\n\n## Usage\n\nGenerated directly from `enfield --help`\n\n```\nEnfield is a blog-aware static-site generator modeled after Jekyll\n\nCommands:\n  build                Build your site\n  help                 Display global or [command] help documentation.\n  new                  Creates a new Jekyll site scaffold in PATH\n  serve                Serve your site locally\n\nGlobal Options:\n  -s, --source [DIR]\n      Source directory (defaults to ./)\n\n  -d, --destination [DIR]\n      Destination directory (defaults to ./_site)\n\n  --safe\n      Safe mode (defaults to false)\n\n  --plugins PLUGINS_DIR1[,PLUGINS_DIR2[,...]]\n      Plugins directory (defaults to ./_plugins)\n\n  --layouts\n      Layouts directory (defaults to ./_layouts)\n\n  -h, --help\n      Display help documentation\n\n  -v, --version\n      Display version information\n```\n\n## Plugins\n\nEnfield will load any `.coffee` or `.js` file from the `_plugins` directory.\nThe plugin system is modeled after [Jekyll Plugins](http://jekyllrb.com/docs/plugins/).\nThe following plugin types are supported:\n\n* Converters\n* Liquid Filters\n* Custom Tags\n* Generators\n\n### Converters\n\nCustom converters can be added. Note that only items with YAML frontmatter will be converted.\nAll others are ignored.\n\n```js\nmodule.exports = {\n  \"converters\": {\n    \"foo\": {\n      \"priority\": 1,\n      \"matches\": function(ext) {\n        return ext === \".foo\";\n      },\n      \"outputExtension\": function(ext) {\n        return \".html\";\n      },\n      \"convert\": function(content, config, callback) {\n        // Return converted value via callback(err, content)\n        callback(null, content.replace(\"foo\", \"\"));\n      }\n    }\n  }\n}\n```\n\nValid priority values: 1 (lowest) - 5 (highest)\n\n### Liquid Filters\n\nCustom [Liquid Filters](http://wiki.shopify.com/FilterReference) can be added:\n\n```js\nmodule.exports = {\n  \"filters\": {\n    \"upcase\": function(val) {\n      return val.toUpperCase();\n    },\n    \"lowercase\": function(val) {\n      return val.toLowerCase();\n    }\n  }\n}\n```\n\n### Custom Tags\n\n```js\nmodule.exports = {\n  \"tags\": {\n    \"mytag\": function(body, page, site) {\n      // Body is the content string within the tag\n      // Page is the object of the current page being converted\n      // Site is the same data structure passed to liquid templates\n      // (see generators below)\n      return \"Hello World\";\n    }\n  }\n}\n```\n\n### Generators\n\nGenerators are used to create additional content for your site based on custom logic.\n\n```js\nmodule.exports = {\n  \"generators\": {\n    \"bar\": function(site, callback) {\n      // Same data structure as passed to Liquid templates. Including:\n      // - site.posts\n      // - site.pages\n      // - site.tags\n      // - site.categories\n      // - site.static_files\n\n      // Make sure to callback when you're done\n      callback(null);\n    }\n  }\n}\n```\n\nSee `src/plugins/enfield-generators.coffee` for examples.\n\n## TODO\n\n* Consider configurable permalinks\n* Post index page for year directories\n* Check for permalink collisions due to same slug and different dates\n\n## License\n\nMIT\n\n## Contributors\n\n[Contributors](https://github.com/fortes/enfield/graphs/contributors)\n\n## This Project Has a Stupid Name\n\nRichard Enfield is a minor character in [The Strange Case of Dr. Jekyll and Mr. Hyde](http://en.wikipedia.org/wiki/Strange_Case_of_Dr_Jekyll_and_Mr_Hyde).\n","maintainers":[{"name":"fortes","email":"accounts@fortes.com"}],"time":{"modified":"2022-06-17T05:17:28.323Z","created":"2012-12-16T16:57:28.258Z","0.1.0":"2012-12-16T16:57:31.002Z","0.1.1":"2012-12-16T16:58:52.681Z","0.2.0":"2012-12-19T21:21:28.866Z","0.2.1":"2012-12-26T16:46:27.536Z","0.3.0":"2013-06-24T07:25:26.813Z","0.3.1":"2013-10-11T21:10:13.645Z","0.4.0":"2015-04-15T04:48:51.065Z"},"author":{"name":"Filipe Fortes","email":"filipe@fortes.com"},"repository":{"type":"git","url":"https://github.com/fortes/enfield"},"users":{"corintho":true},"homepage":"https://github.com/fortes/enfield","keywords":["blog","static","generator","jekyll"],"bugs":{"url":"https://github.com/fortes/enfield/issues"},"license":"MIT","readmeFilename":"README.md"}