{ "info": { "author": "Bill Israel", "author_email": "bill.israel@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Environment :: Console", "Intended Audience :: Developers", "Intended Audience :: Information Technology", "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", "Programming Language :: Python :: 3.3", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Topic :: Internet :: WWW/HTTP", "Topic :: Software Development :: Libraries :: Python Modules", "Topic :: Utilities" ], "description": "nanogen\n#######\n\nA very small static blog generator written in Python.\n\n.. image:: https://img.shields.io/pypi/v/nanogen.svg\n :target: https://pypi.python.org/pypi/nanogen\n :alt: Latest PyPI version\n\n.. image:: https://travis-ci.org/epochblue/nanogen.svg?branch=master\n :target: https://travis-ci.org/epochblue/nanogen\n :alt: nanogen build status\n\nPurpose\n=======\n\n``nanogen`` exists solely so I can have a blogging platform I call my own.\nThe platform is very intentionally bare bones and simple. The code is\nintentionally utilitarian and realistically less-than-perfect.\n\nIf you have an idea for a way to improve this without significantly increasing\n``nanogen``'s complexity, please open an issue and let me know.\n\nIf you're looking for a more fully-featured static site generator, may I\nrecommend something like `Jekyll`_ or `Pelican`_ ?\n\n\nInstallation\n============\n\nThe best way to install ``nanogen`` is through ``pip``::\n\n $> pip install nanogen\n\n\nIf you don't want to install it via ``pip``, you can install it\nmanually::\n\n $> git clone https://github.com/epochblue/nanogen\n $> cd nanogen\n $> python setup.py install\n\n\nNote : To avoid possible dependency version issues, I recommend installing\n``nanogen`` into a virtual environment, rather than globally.\n\n\n\nHow To Use\n==========\n\nInitializing\n------------\n\nOnce ``nanogen`` is installed, navigate to the directory you'd like to\nuse as your new blog. Our examples will use a ``blog`` directory in ``$HOME``::\n\n $> mkdir blog\n $> cd blog\n\nOnce there, run ``nanogen``'s ``init`` command to get started::\n\n $> nanogen init\n\nRunning this command will generate the basic directories used by\n``nanogen``. When this command completes, the ``blog`` directory will\nlook like this::\n\n ~/blog\n |-- _layout\n | `-- blog.cfg\n `-- _posts\n\n``_posts`` and ``_layout`` are the only two folders required by ``nanogen``, and\ntheir names cannot be changed by the user. Your individual posts will go in the\n``_posts`` directory, and the templates will go in the ``_layouts`` directory.\n\nThe ``blog.cfg`` file will hold metadata about your blog (author's name and\nemail, along with the site's title, description, and URL). A skeleton version of\nthis file is created for your during ``init``. The keys and values contained in\nthis file will be passed to your templates under the ``site`` variable. For\nexample: your site's title will be be available in the ``site.title`` attribute.\n\nAt this time, ``nanogen`` does not come with a built-in theme, so it's up to\nyou to create your own.\n\n\nCreating Posts\n--------------\n\nOne way to create new posts is by creating a new file in the ``_posts``\ndirectory. The filename is important and must match the following rules:\n\n1. The file can't start with an underscore (they are ignored)\n2. The file's name must match the pattern ``yyyy-mm-dd-``\n3. The file's extension must be a valid Markdown extension (``md``, ``mdown``, or ``markdown``).\n\nTo illustrate::\n\n # valid filename\n 2015-11-01-this-charming-man.md\n\n # invalid filename\n 15-11-1-bigmouth-strikes-again.txt\n\nIf you don't want to try to remember all that, you can use ``nanogen``'s ``new``\ncommand to do it for you. The only required argument to this command is the title of the\npost being generated::\n\n $> nanogen new \"Example Post Title\"\n\nRunning this will create a properly-named and formatted file in the ``_posts``\ndirectory.\n\nDraft posts aren't an \"official\" feature of ``nanogen``, however they are\npossible. By default, when ``nanogen`` generates a site it will only look in the\n``_posts`` folder for files to process. If you'd like to maintain drafts of your\nposts before you publish them, you can create a ``_drafts`` folder next to the\n``_posts`` folder and ``nanogen`` will ignore it during site generation.\nAlternatively, you can prepend the filename of a draft post with an underscore,\nand ``nanogen`` will skip over it when searching for files to process.\n\n\nPost Content Format\n~~~~~~~~~~~~~~~~~~~\n\n``nanogen`` posts don't use `YAML`_ front-matter, so the first line of your post\nwill be used for the title of the post. The content of the posts will be\nprocessed as `Markdown`_ (the Github-flavored variety, complete with\nsyntax-highlighted code blocks). A minimal example of a valid ``nanogen`` post\nis this::\n\n ## This will become the title (with hashes stripped out)\n\n **This** will become the post's _content_.\n\nThe title will be stripped out of the post's content, though it will be\navailable to your themes via the ``post.title`` attribute.\n\n\nGenerating Your Site\n--------------------\n\nOnce you're ready to generate your site, you can use the ``build``\ncommand::\n\n $> nanogen build\n\nThis command will walk your ``_posts`` directory, process any valid files it\nfinds, and will write all the generated HTML files into a ``_site`` folder.\nAlthough you will want to preview this on your local development\nsystem (see the following section for how to do this), the ``_site``\nfolder can be uploaded to your web host as-is.\n\n\nPreviewing Your Site\n--------------------\n\nTo see what your site will look like *before* you upload it to a live\nwebserver for the world to see, ``nanogen`` provides a built-in server\nthat allows you to preview your generated site::\n\n $> nanogen preview\n\nThis command will start a server that listens on ``localhost`` port\n``8080``. Simply open ``http://localhost:8080`` in a web broswer to\nsee how your site looks. If you'd like to use a different hostname or\nport, ``nanogen`` provides an option for each (``-h|--host, and\n-p|--port``, respectively). The following example will start a server\nthat listens on ``local.dev`` port ``8000`` (http://local.dev:8000)::\n\n $> nanogen preview --host local.dev --port 8000\n\n\nCleaning\n--------\n\nIf your ``_site`` folder somehow gets corrupted, or you'd simply like\nto generate your site from scratch, you can use the ``clean`` command::\n\n $> nanogen clean\n\nThere is no undo or confirmation when running this command.\n\n\n``nanogen`` Themes\n==================\n\n*Note*: ``nanogen`` doesn't provide any themes out of the box. If you'd like to\ndevelop your own theme for ``nanogen``, this section should explain how.\n\n``nanogen`` uses `Jinja2`_ for its templating. If you need information\nabout Jinja's syntax, please `refer to their documentation\n`_.\n\n\nTemplate Files\n--------------\n\nThe templates that make up the theme for your ``nanogen`` blog need to be placed\nin the ``_layout`` directory. ``nanogen`` only expects a few files to exist, and\nthose files are:\n\n1. ``index.html``\n2. ``post.html``\n3. ``rss.xml``\n\n``index.html`` will be used as the sites homepage, ``post.html`` will be used to\ngenerate each individual post, and ``rss.xml`` will be be used to generate your\nblog's RSS feed.\n\nAll of your blog's posts will be passed to ``index.html`` and ``rss.xml`` via a\n`Jinja2`_ context variable named ``posts`` (posts will be in reverse\nchronological order). Individual posts will be passed to ``post.html`` via a\ncontext variable named ``post``. Each post will have the following relevant\nattributes available to use in the template:\n\n* ``html_content`` - the HTML version of the post\n* ``markdown_content`` - the Markdown version of the post (minus the title)\n* ``title`` - the title of the post (will not be processed as Markdown)\n* ``pub_date`` - a Python datetime object representing the publish date of the post\n* ``permalink`` - the relative URL to the post\n\nPlease see the ``_layout`` directory in the included example for a basic theme\nyou can use to as a jumping off point for your own theme.\n\n\nStatic Files\n------------\n\nIf you have any files that you'd like to include in the published site\n(JavaScript files, CSS files, images, etc), place them into a folder named\n``static`` inside the ``_layout`` folder. This folder will automatically be\ncopied into the ``_site`` folder during the build process. No processing will\nbe performed on the files within the ``static`` directory.\n\n\nSites Using ``nanogen``\n=======================\n\n* `http://blog.cubicle17.com/`__ (code is `available here`__)\n\n\nLicense\n#######\n\n``nanogen`` is MIT licensed. Please see included ``LICENSE`` file for\nmore information.\n\n\nAuthor\n######\n\n`Bill Israel`_ - `bill.israel@gmail.com`_\n\n\n.. _Jekyll: http://jekyllrb.com\n.. _Pelican: http://blog.getpelican.com\n.. _Markdown: http://daringfireball.net/projects/markdown\n.. _YAML: http://yaml.org/\n.. _Jinja2: http://jinja2.pocoo.org/\n.. _Bill Israel: http://billisrael.info/\n.. _bill.israel@gmail.com: mailto:bill.israel@gmail.com\n\n__ http://blog.cubicle17.com/\n__ https://github.com/epochblue/blog\n", "description_content_type": null, "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/epochblue/nanogen", "keywords": "command line", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "nanogen", "package_url": "https://pypi.org/project/nanogen/", "platform": "", "project_url": "https://pypi.org/project/nanogen/", "project_urls": { "Homepage": "https://github.com/epochblue/nanogen" }, "release_url": "https://pypi.org/project/nanogen/2.1.2/", "requires_dist": null, "requires_python": "", "summary": "A very small static blog generator", "version": "2.1.2" }, "last_serial": 3640207, "releases": { "0.7.0": [ { "comment_text": "", "digests": { "md5": "9503b616738137cb9495dd3560437492", "sha256": "03d8ebfa1d10c2f69c168c8ad07c742e44b3844f57382543a2df77225459d691" }, "downloads": -1, "filename": "nanogen-0.7.0.tar.gz", "has_sig": false, "md5_digest": "9503b616738137cb9495dd3560437492", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4458, "upload_time": "2015-10-18T01:45:33", "url": "https://files.pythonhosted.org/packages/f6/6e/d7064e34208da7f674be12117054b26e7c1ecc6ab6e770fa37b2e07c8167/nanogen-0.7.0.tar.gz" } ], "0.7.1": [ { "comment_text": "", "digests": { "md5": "f10618f3dc89199733ddc6b836556474", "sha256": "3af7e35ce1acd92da8497efeae76e30113d21dcf3458719b6403590726a1986d" }, "downloads": -1, "filename": "nanogen-0.7.1.tar.gz", "has_sig": false, "md5_digest": "f10618f3dc89199733ddc6b836556474", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7628, "upload_time": "2015-10-18T02:06:12", "url": "https://files.pythonhosted.org/packages/38/58/1f6fb7fa7a922fe14931ec5d25d11d08765d96bdc5eb75b196a5409e1700/nanogen-0.7.1.tar.gz" } ], "0.7.2": [ { "comment_text": "", "digests": { "md5": "90dfbe714f9d4ae35ed2612a5fa357cf", "sha256": "c5d1718e5f848954d3a502a1579641b09d9e311e6f1a330cbb152c6c4ff282bc" }, "downloads": -1, "filename": "nanogen-0.7.2.tar.gz", "has_sig": false, "md5_digest": "90dfbe714f9d4ae35ed2612a5fa357cf", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8482, "upload_time": "2015-10-18T19:39:41", "url": "https://files.pythonhosted.org/packages/9a/75/08536e0f105812d5c81d766126bc428f58ae15c43aa457005c2e51ccb4a7/nanogen-0.7.2.tar.gz" } ], "0.8.0": [ { "comment_text": "", "digests": { "md5": "52f0a197b8f3d50f17938fdc8a9048a0", "sha256": "c155f09d67aa97439647d2ff277aeb2c9a45cab53b1ee521c762775b7b713c59" }, "downloads": -1, "filename": "nanogen-0.8.0.tar.gz", "has_sig": false, "md5_digest": "52f0a197b8f3d50f17938fdc8a9048a0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9964, "upload_time": "2015-10-19T02:56:28", "url": "https://files.pythonhosted.org/packages/08/b7/155c1132b019a46b6f7ddee2e95899b890d068dec7024ccff60066bbc302/nanogen-0.8.0.tar.gz" } ], "0.9.0": [ { "comment_text": "", "digests": { "md5": "b65451bb1a61e27cccdcb3f9948d128d", "sha256": "dd4646c9fee5872f7f79a56f1ffde1699fa3e492db0bd264645432e5efc39429" }, "downloads": -1, "filename": "nanogen-0.9.0.tar.gz", "has_sig": false, "md5_digest": "b65451bb1a61e27cccdcb3f9948d128d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10657, "upload_time": "2015-10-24T19:33:02", "url": "https://files.pythonhosted.org/packages/6b/b8/ec7791fad0935afd1343842d33fa0430aff290b809ee727afbdb3e57e396/nanogen-0.9.0.tar.gz" } ], "0.9.2": [ { "comment_text": "", "digests": { "md5": "f72038ba093c6a76f5787e66a3d8e373", "sha256": "19e3536ab9aa9c730fb228b3e826bb6d095d256ca77e6cba2d70aa8592cdc5da" }, "downloads": -1, "filename": "nanogen-0.9.2.tar.gz", "has_sig": false, "md5_digest": "f72038ba093c6a76f5787e66a3d8e373", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10967, "upload_time": "2016-02-15T17:05:43", "url": "https://files.pythonhosted.org/packages/ec/c3/04ee2d9f31262da2037f2a10c059b6062ee6da313cfc4d07ffce56e906c9/nanogen-0.9.2.tar.gz" } ], "0.9.3": [ { "comment_text": "", "digests": { "md5": "f493d99294b602e9d61ca1dcea8d6010", "sha256": "3053e9b09fe28d9005d6651250000a780d9767e1fbbeebed32a73db5f5bb51df" }, "downloads": -1, "filename": "nanogen-0.9.3.tar.gz", "has_sig": false, "md5_digest": "f493d99294b602e9d61ca1dcea8d6010", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10993, "upload_time": "2016-02-15T18:04:23", "url": "https://files.pythonhosted.org/packages/a3/2c/64b3975280d14407f6068735b6227112c19830344a9fba155cfaded256fd/nanogen-0.9.3.tar.gz" } ], "0.9.9": [ { "comment_text": "built for Darwin-15.6.0", "digests": { "md5": "1eb591c648eb22199738da611e70fa96", "sha256": "9cd6380ecc6208236214af6638cc76f322a1bdec4be0c2f05396cb8b5f661297" }, "downloads": -1, "filename": "nanogen-0.9.9.macosx-10.11-x86_64.tar.gz", "has_sig": false, "md5_digest": "1eb591c648eb22199738da611e70fa96", "packagetype": "bdist_dumb", "python_version": "any", "requires_python": null, "size": 20955, "upload_time": "2016-08-25T22:58:22", "url": "https://files.pythonhosted.org/packages/79/cb/69563942fcab4f0aa3d7fb2325ffb7bdebabc157c60f92871027caa3ab2f/nanogen-0.9.9.macosx-10.11-x86_64.tar.gz" }, { "comment_text": "", "digests": { "md5": "5719514ea61a665bdc65dcdc40591ba7", "sha256": "4ce0320a4f57249576f5feb1f18ea85212582779a7cd586771f76a4a81c74517" }, "downloads": -1, "filename": "nanogen-0.9.9.tar.gz", "has_sig": false, "md5_digest": "5719514ea61a665bdc65dcdc40591ba7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7536, "upload_time": "2016-08-25T22:58:19", "url": "https://files.pythonhosted.org/packages/d2/dd/f9b8089c7b3276e441b1c03ee35b872ce4741db5094d3d9e878f39ab617e/nanogen-0.9.9.tar.gz" } ], "1.0.0": [ { "comment_text": "built for Darwin-15.6.0", "digests": { "md5": "2dbc39fa5a20b8673b78db7390c1b3b1", "sha256": "5f2512d39427d1b544ce593b5311ad22d93b1e3f90624d8f917d5a0c12c84bac" }, "downloads": -1, "filename": "nanogen-1.0.0.macosx-10.11-x86_64.tar.gz", "has_sig": false, "md5_digest": "2dbc39fa5a20b8673b78db7390c1b3b1", "packagetype": "bdist_dumb", "python_version": "any", "requires_python": null, "size": 21112, "upload_time": "2016-08-27T19:26:29", "url": "https://files.pythonhosted.org/packages/27/43/acb8d29a713114e161df92e6a961f53175ed9e56a377739d6fc66d4a216c/nanogen-1.0.0.macosx-10.11-x86_64.tar.gz" }, { "comment_text": "", "digests": { "md5": "03773355f43aed3496a4c7abf984e872", "sha256": "33dcd1fdfebc596a61d89d08be5bdb9e3c79dbd9197cca7ee9b845fc85cfc3b7" }, "downloads": -1, "filename": "nanogen-1.0.0.tar.gz", "has_sig": false, "md5_digest": "03773355f43aed3496a4c7abf984e872", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7639, "upload_time": "2016-08-27T19:26:26", "url": "https://files.pythonhosted.org/packages/e3/c4/f4930c25e11415bf3d6f1a85064430b5b714c4d779101136348f27bada64/nanogen-1.0.0.tar.gz" } ], "1.0.1": [ { "comment_text": "built for Darwin-15.6.0", "digests": { "md5": "84db5010045d5ed5759bb8d5279e4f89", "sha256": "1b79eee3c40edbead4c4abdeb2a903e1720c0309c12a440979f2fe9a56695dce" }, "downloads": -1, "filename": "nanogen-1.0.1.macosx-10.11-x86_64.tar.gz", "has_sig": false, "md5_digest": "84db5010045d5ed5759bb8d5279e4f89", "packagetype": "bdist_dumb", "python_version": "any", "requires_python": null, "size": 21103, "upload_time": "2016-08-28T20:14:39", "url": "https://files.pythonhosted.org/packages/c1/bd/fd3d0edf2966222e89fb2ffe5abe5a86e31e20f88bcb1563fb77c5c9cba5/nanogen-1.0.1.macosx-10.11-x86_64.tar.gz" }, { "comment_text": "", "digests": { "md5": "4822b6ffe0a9f83908151120ff44fd68", "sha256": "a44b5c03096491551c6aed45d8ec875a850d0992a20906a08ec01c7972bee4b5" }, "downloads": -1, "filename": "nanogen-1.0.1.tar.gz", "has_sig": false, "md5_digest": "4822b6ffe0a9f83908151120ff44fd68", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7607, "upload_time": "2016-08-28T20:14:37", "url": "https://files.pythonhosted.org/packages/5e/52/37c970fd34eaf75cb70efb39584a3f66f529fd1611a47e79b5585c92bfca/nanogen-1.0.1.tar.gz" } ], "2.1.2": [ { "comment_text": "", "digests": { "md5": "18ba75f6f10fe9f21b50c96d488e5b02", "sha256": "fd3246e31c7646e05cc2ac733a0698a63c4f0f85bb6c394ce023e67e88495e91" }, "downloads": -1, "filename": "nanogen-2.1.2.tar.gz", "has_sig": false, "md5_digest": "18ba75f6f10fe9f21b50c96d488e5b02", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9768, "upload_time": "2018-03-05T12:06:58", "url": "https://files.pythonhosted.org/packages/2f/d6/015ae3efddbf00f837d04668406c2311c012bbbc3a2112682d5beb3d5d96/nanogen-2.1.2.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "18ba75f6f10fe9f21b50c96d488e5b02", "sha256": "fd3246e31c7646e05cc2ac733a0698a63c4f0f85bb6c394ce023e67e88495e91" }, "downloads": -1, "filename": "nanogen-2.1.2.tar.gz", "has_sig": false, "md5_digest": "18ba75f6f10fe9f21b50c96d488e5b02", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9768, "upload_time": "2018-03-05T12:06:58", "url": "https://files.pythonhosted.org/packages/2f/d6/015ae3efddbf00f837d04668406c2311c012bbbc3a2112682d5beb3d5d96/nanogen-2.1.2.tar.gz" } ] }