{ "info": { "author": "Subhajit Ghosh", "author_email": "i.subhajit.ghosh@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 2 - Pre-Alpha", "Environment :: Console", "Intended Audience :: Developers", "License :: OSI Approved :: Apache Software License", "Operating System :: MacOS :: MacOS X", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3.4", "Topic :: Internet :: WWW/HTTP", "Topic :: Software Development :: Libraries :: Python Modules" ], "description": "Fatafat - publish quickly!\n==========================\n\nFatafat is a minimalistic static blog generator written in Python. It is\nalso an offline blogging tool with **simple** and **quick** publishing\noptions.\n\nWith Fatafat you can ...\n------------------------\n\n- Write blog articles in Markdown.\n- Publish an article to a remote host (currently Github) using a single\n command.\n- Test changes to blog theme, blog articles in a local *dev* version of\n your blog.\n- Focus more on writing!\n\nInstallation\n------------\n\nTo install fatafat, simply:\n\n::\n\n $ pip install fatafat\n\nPrerequisites\n-------------\n\nGit\n~~~\n\nMake sure that `git `__ is installed.\n\nGenerate ssh keys\n~~~~~~~~~~~~~~~~~\n\nCurrently `Github `__ is the only remote host\nwhich is supported. To publish to Github from command line, you will\nneed to setup your ssh keys. Read details\n`here `__.\n\nCreate empty Github project\n~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\nFatafat pushes to the repository *github\\_username*.github.io. Make sure\nthat the empty repository (DO NOT create the readme or the .gitignore\nfiles) is created before you use Fatafat.\n\nWhy the name \"Fatafat\"?\n-----------------------\n\nI say why not! \"Fatafat\" means \"quick\" in Hindi.\n\nFound issues?\n-------------\n\nCurrently, Fatafat is a \"toddler\" project and barely stands! But I have\nhonest plans for it. I am developing it actively and using it for my own\n`blog `__.\n\nIncase you run into issues, please\n`log `__ the same.\n\nIf you find the project useful, why not look into the issues yourself\nand send pull requests!\n\nUsage\n-----\n\nCommand Line Interface\n~~~~~~~~~~~~~~~~~~~~~~\n\nWhen installed, ``fatafat`` command is available for use. This command\ncan be used to perform various actions on the blog. Run\n``fatafat --help`` for details. To get help on individual action, run\n``fatafat --help``. Note that the ``fatafat`` command must be\nrun at the root of the directory which contains your blog.\n\nThis `cheatsheet <#cheatsheet>`__ lists all possible actions that can be\nperformed using the ``fatafat`` command.\n\nCreating a new blog\n~~~~~~~~~~~~~~~~~~~\n\nFirst create the empty Github repository *github\\_username*.github.io.\n\nTo create a new blog in ``bubblewrap`` directory:\n\n::\n\n $ mkdir bubblewrap\n $ cd bubblewrap\n $ fatafat start\n\nThe ``start`` option prompts the user for blog configuration details.\nThe following details are requested:\n\n- blog title - title of your blog\n- production URL - remote URL of your blog. Eg. http://isubuz.github.io\n- development URL - local URL of your blog. Eg. http://localhost:8000\n- github username\n- disqus sitename\n\nOnce done, the following directories will be created:\n\n::\n\n bubblewrap\n |-- contents\n |-- prod\n |-- dev\n \n\nAll articles go into the ``contents`` directory. The directory structure\nfor ``prod`` and ``dev`` is same and stores the production version and\nthe development version of the blog.\n\n::\n\n |-- config.py # blog configuration file\n |-- data # blog data files\n |-- site # static output\n | |-- README.md\n | |-- articles # generated HTML files for articles\n | |-- assets # css, js files\n |-- themes\n | |-- simi\n | | |-- assets # css, js files\n | | |-- templates # jinja2 templates\n\nThere are few important differences between the ``dev`` and the ``prod``\ndirectory.\n\n- ``config.py`` in both directories are setup such that the URLs\n generated in the static output is correct i.e. local URL for ``dev``\n and remote URL for ``prod``. This helps because you can run\n ``python -m SimpleHTTPServer`` in ``dev/site`` or ``prod/site`` to\n see and navigate through the changes you made to your blog\n- ``site`` directory in ``prod`` is a ``git`` repository.\n\nAdd a new article\n~~~~~~~~~~~~~~~~~\n\nTo add a new article, simply create a new file with ``.md`` extension\nunder ``contents``. Articles belonging to a common theme can be grouped\nin a directory. E.g.\n\n::\n\n $ cd bubblewrap\n $ vim contents/loner.md\n $ vim contents/python/meta_what.md\n $ vim contents/python/why_should_i_decorate.md\n\nEach article has associated metadata, some required and some optional.\nThe metadata starts from the first line of the document and is separated\nfrom the article content by a blank line.\n\nE.g. ``contents/loner.md`` can look like -\n\n::\n\n Title: I am a lonely article\n Summary: My story\n Date: 27-07-1983\n Status: draft\n\n I am lonely, because I am at the root!\n\n``Title`` and ``Date`` are **required**. Currently ``Date`` must be in\n``DD-MM-YYYY`` format. Support for other formats could be added later.\n\n``Summary`` and ``Status`` are optional. If ``Status`` is absent, the\narticle is considered to be published.\n\nPublish article(s)\n~~~~~~~~~~~~~~~~~~\n\nTo publish an article, ``cd`` to the root of the blog directory and run\n``fatafat publish -f `` in terminal. E.g -\n\n::\n\n $ cd \n $ fatafat publish -f contents/loner.md\n\nThat's it!\n\nThe above command will update the local development blog only. To update\nthe production blog specify option ``--prod``. To push the changes to\nGithub, specify option ``--sync``. See `cheatsheet <#cheatsheet>`__ for\nmore details.\n\n::\n\n $ cd \n $ fatafat publish -f contents/loner.md --prod --sync\n\nTo publish more than one article, pass the relative paths of the all the\narticles to the ``fatafat publish -f`` command. E.g -\n\n::\n\n $ cd \n $ fatafat publish -f contents/loner.md contents/python/meta_what.md\n\nTo publish all articles, simply use ``fatafat publish``. E.g -\n\n::\n\n $ cd \n $ fatafat publish\n\nRemoving an article\n~~~~~~~~~~~~~~~~~~~\n\nCurrently, removing an article or renaming a markdown file isn't handled\nentirely correctly. The HTML file generated for the deleted/renamed\narticle remains in the ``site`` directory and has to be removed\nmanually.\n\nThis is on the top of my list of TODOs. So it should be addressed soon.\n\nThemes\n------\n\nCurrently Fatafat comes with the default theme\n`simi `__. But you add new themes easily.\n\n- Create a directory similar to the default theme and put in under the\n ``themes`` directory of your blog.\n- Update the ``THEME`` field in ``config.py`` to use the new theme.\n\nEvery theme has two folders, ``assets`` and ``templates``. ``assets``\nstores the javascript and the css files. ``templates`` stores the jinja2\ntemplates used to generate the static output. Currently fatafat looks\nfor ``index.jinja2`` and ``article.jinja2`` under the templates\ndirectory.\n\nThe following variables are available in template ``article.jinja2``:\n\n- article.title\n- article.summary\n- article.content\n- article.date\n\nThe following variables are available in template ``index.jinja2``:\n\n- articles - which is a list of articles. Each article has the same\n attributes as above.\n\nThe following variables are available in all templates:\n\n- SITENAME - blog title\n- SITEURL - blog URL\n\nYou might have observed that the template variables names matches to\nthose in Pelican. The goal is to make pelican themes compatible with\nfatafat.\n\nCheatsheet \n-----------\n\nThe ``fatafat`` command must be run at the root of the directory which\nstores the blog files. The following commands can be run in terminal to\nperform various actions on the blog:\n\n::\n\n # Create a new blog\n $ fatafat start\n\n # Publish all articles to dev directory\n $ fatafat publish\n\n # Publish a single article to dev directory\n $ fatafat publish -f contents/article1.md\n\n # Publish multiple articles to dev directory\n $ fatafat publish -f contents/article1.md contents/group/article2.md contents/article3.md\n\n # Publish all articles to prod directory\n $ fatafat publish --prod\n\n # Publish all articles to prod directory and sync with remote host\n $ fatafat publish --prod --sync\n\n # Publish a single article to prod directory\n $ fatafat publish -f contents/article1.md --prod\n\n # Publish a single article to prod directory and sync with remote host\n $ fatafat publish -f contents/article1.md --prod --sync\n\n # Publish multiple articles to prod directory\n $ fatafat publish -f contents/article1.md contents/group/article2.md --prod\n\n # Publish multiple articles to prod directory and sync with remote host\n $ fatafat publish -f contents/article1.md contents/group/article2.md --prod --sync\n\nContact / Feedback\n------------------\n\nSend me a message at \"i DOT subhajit DOT ghosh AT gmail DOT com\" with\nany feedback.", "description_content_type": null, "docs_url": null, "download_url": "UNKNOWN", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "http://github.com/isubuz/fatafat", "keywords": null, "license": "UNKNOWN", "maintainer": null, "maintainer_email": null, "name": "fatafat", "package_url": "https://pypi.org/project/fatafat/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/fatafat/", "project_urls": { "Download": "UNKNOWN", "Homepage": "http://github.com/isubuz/fatafat" }, "release_url": "https://pypi.org/project/fatafat/0.0.2/", "requires_dist": null, "requires_python": null, "summary": "A static blog generator and an offline blogging tool.", "version": "0.0.2" }, "last_serial": 1089535, "releases": { "0.0.1": [ { "comment_text": "", "digests": { "md5": "1cf2522c4d6099d60cf11d8bc921ae70", "sha256": "d29cd1a73c783b026a7d454c93fe075f242c3ffc392482884893021f70d6f608" }, "downloads": -1, "filename": "fatafat-0.0.1-py2.7.egg", "has_sig": false, "md5_digest": "1cf2522c4d6099d60cf11d8bc921ae70", "packagetype": "bdist_egg", "python_version": "2.7", "requires_python": null, "size": 22126, "upload_time": "2014-05-09T11:45:39", "url": "https://files.pythonhosted.org/packages/f3/53/5e10a17e60b4787c3f2403e99fcb808cf5085f8fe8f9d443cafbd6894f7e/fatafat-0.0.1-py2.7.egg" }, { "comment_text": "", "digests": { "md5": "bca2a887a656bb9e0f543bf4be978e5f", "sha256": "e30d8f124be4ba9036192a6e122deb1b2c7530082fb1252d541dd93b88f289c5" }, "downloads": -1, "filename": "fatafat-0.0.1.tar.gz", "has_sig": false, "md5_digest": "bca2a887a656bb9e0f543bf4be978e5f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13183, "upload_time": "2014-05-09T11:46:35", "url": "https://files.pythonhosted.org/packages/54/82/b3ccfb23e4e8e6571984c34e55677683efc9b41c04ed400fdbd9bd95f297/fatafat-0.0.1.tar.gz" } ], "0.0.2": [ { "comment_text": "", "digests": { "md5": "fdf320f1fe025b772f939a68ca443826", "sha256": "362b83759052532e4fec9ca70769866f90aaa10089a9ecabc65a661963609223" }, "downloads": -1, "filename": "fatafat-0.0.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "fdf320f1fe025b772f939a68ca443826", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 20429, "upload_time": "2014-05-12T14:11:58", "url": "https://files.pythonhosted.org/packages/3d/c0/f95410989b781a38eb1fa3377a165f23d7743929236d2f14ae5056e09711/fatafat-0.0.2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "ff88de95a1083c2d2e01757a85c2067e", "sha256": "f51d0a081a74f3e67c15e8889ccdb3589e31dae2fd99317ba6eb4ecf0554a0c4" }, "downloads": -1, "filename": "fatafat-0.0.2.tar.gz", "has_sig": false, "md5_digest": "ff88de95a1083c2d2e01757a85c2067e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 14135, "upload_time": "2014-05-12T14:11:45", "url": "https://files.pythonhosted.org/packages/37/8e/45298ed1d6306b88346dcafb732a4fc68c0ea7b7f2b0735f49fb27a67770/fatafat-0.0.2.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "fdf320f1fe025b772f939a68ca443826", "sha256": "362b83759052532e4fec9ca70769866f90aaa10089a9ecabc65a661963609223" }, "downloads": -1, "filename": "fatafat-0.0.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "fdf320f1fe025b772f939a68ca443826", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 20429, "upload_time": "2014-05-12T14:11:58", "url": "https://files.pythonhosted.org/packages/3d/c0/f95410989b781a38eb1fa3377a165f23d7743929236d2f14ae5056e09711/fatafat-0.0.2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "ff88de95a1083c2d2e01757a85c2067e", "sha256": "f51d0a081a74f3e67c15e8889ccdb3589e31dae2fd99317ba6eb4ecf0554a0c4" }, "downloads": -1, "filename": "fatafat-0.0.2.tar.gz", "has_sig": false, "md5_digest": "ff88de95a1083c2d2e01757a85c2067e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 14135, "upload_time": "2014-05-12T14:11:45", "url": "https://files.pythonhosted.org/packages/37/8e/45298ed1d6306b88346dcafb732a4fc68c0ea7b7f2b0735f49fb27a67770/fatafat-0.0.2.tar.gz" } ] }