{
"info": {
"author": "Andrew Kubera",
"author_email": "andrew.kubera@gmail.com",
"bugtrack_url": null,
"classifiers": [
"Development Status :: 2 - Pre-Alpha",
"License :: OSI Approved :: Apache Software License",
"Programming Language :: Python :: 3",
"Programming Language :: Python :: 3.4",
"Topic :: Internet :: WWW/HTTP :: Dynamic Content",
"Topic :: Utilities"
],
"description": "\nAberdeen\n========\n\nSimple python script for taking a directory of markdown files and\ngenerating/storing the backend of a blog.\n\nThe goal is to enable quick editing of simple text-files and posting them to a\ndatabase via a push to a git branch (default 'publish').\n\nUpon running, a python JSON object is created from each file found. There is a\nmarkdown header extracted from the file indicating post title, date posted,\nauthors, tags, etc. The content of the post is converted automatically to html\nand added to the final object in the path.\n\nThe resulting objects (currently) are sent to a MongoDB session and saved to the\nspecified collection.\n\nThis process is strictly a 'model' management system, any view and controller\nmust be built/managed by you.\n\n(The name comes from the \"Aberdeen\" fish hook \ud83c\udfa3)\n\nRequirements\n------------\n\n- `Python 3.4 `__\n- `Markdown `__\n- **Supported Databases**\n - mongodb - `asyncio\\_mongo `__\n\nInstallation\n------------\n\nCopy the ``post-update``, ``aberdeen.py`` and config files to the directory\n``hooks`` in the git repository on the server. Edit the config file to your\nspecifications. This will be updated when uploaded to pypi.\n\nServer Setup\n------------\n\nOn your server, create a bare git repository, something like 'blog\\_data'. This\nwill simply hold all your markdown (or maybe *other* type) files. Create a\n'publish' branch in addition to another 'working' one (presumably 'master'). Add\nthe post-update webhook and configuration as explained in Installation. Clone\nthe repo to your working computer.\n\nUsage\n-----\n\nThis program requires a key-value pair header in each of the markdown files that\nhave typical elements required for blogging\n\n::\n\n ---\n title : Post Title\n date : Mar 15, 2015\n tags : Example\n Feeling Happy\n XYZ\n author: Me\n ---\n\n # My New Post\n This is a great post! *All* my markdown works\n\nThe 'tags' attribute in this example will generate a list of strings; for more\ninformation on how the metadata header works, `read this\n`__.\n\nAberdeen creates a python 'time' object from the 'date' attribute. It will try\nto be smart about the style of the date, and there are a few ways to interpret\nthe datetime from the string, but it has to be accepted in some form or another\nby the `strptime\n`__\nfunction of python \u2018time\u2019 library. The first way to work will be saved, so it\nrewards consistency. It is recommended you put in a time field if you care about\nthat, else it will default to midnight of the determined date.\n\n*Maybe this can be specified in the config file? (that's not implemented yet.)*\n\nThis kind of information is great for storing in NoSQL databases, so MongoDB is\nthe only database currently supported. The content of the markdown is converted\nto HTML and added to the result as 'html\\_content' field. The objects are sorted\nin terms of date and written to the database. The previous table or collection\nwill dropped and the new items added. (***NO GUARANTEE*** that the items will be\nin the same order).\n\nOther Things\n------------\n\nRemeber this does not have any HTML structure or view-support for a blog. This\nstrictly converts one form of a model (markdown files) to another (database\nentries). The view/controllers are totally up to you for retreiving and\ndisplaying the posts.\n\nAlways assume that the database collection/table will be **erased** upon every\npush. The idea is the database reflects the files, so changing a file will\nreplace that entry in the database. It is recommended to NOT use fixed links to\nposts. It is suggested to used date+title as a unique identifier. Alternatively,\nyou could store a unique post id in the metadata field, if you want some\nassurance that things will be fixed (but it's up to you to keep track of the and\ntheir uniqueness).\n\nLICENSE\n-------\n\nApache 2.0\n",
"description_content_type": null,
"docs_url": null,
"download_url": "https://github.com/akubera/aberdeen/archive/v0.4.0.tar.gz",
"downloads": {
"last_day": -1,
"last_month": -1,
"last_week": -1
},
"home_page": "https://github.com/akubera/aberdeen",
"keywords": "markdown,blog,publishing,nosql,mongodb",
"license": "Apache 2.0",
"maintainer": null,
"maintainer_email": null,
"name": "aberdeen",
"package_url": "https://pypi.org/project/aberdeen/",
"platform": "any",
"project_url": "https://pypi.org/project/aberdeen/",
"project_urls": {
"Download": "https://github.com/akubera/aberdeen/archive/v0.4.0.tar.gz",
"Homepage": "https://github.com/akubera/aberdeen"
},
"release_url": "https://pypi.org/project/aberdeen/0.4.0/",
"requires_dist": null,
"requires_python": null,
"summary": "Conversion from markdown files to database entries to use as the backend of a blog",
"version": "0.4.0"
},
"last_serial": 1489481,
"releases": {
"0.1.0": [],
"0.2.3": [
{
"comment_text": "",
"digests": {
"md5": "c8e8ea1d7085e15978f2a9c2a765d7c1",
"sha256": "f7edc97f525b0fdbd8f06481c2c32384567b0b7757a9a73875fb7187f20a16b2"
},
"downloads": -1,
"filename": "aberdeen-0.2.3.tar.gz",
"has_sig": false,
"md5_digest": "c8e8ea1d7085e15978f2a9c2a765d7c1",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 7477,
"upload_time": "2015-03-29T12:35:36",
"url": "https://files.pythonhosted.org/packages/fc/da/1a7f8597a57292262aadf9f148931eb94da2563cb8646a4e72552625c090/aberdeen-0.2.3.tar.gz"
}
],
"0.2.3.1": [],
"0.2.3.2": [
{
"comment_text": "",
"digests": {
"md5": "71f2a288b815cc1dc0f222e1068a2821",
"sha256": "a731ea3659143eb7b7ed6d59ef0bb75593b8239d80c9f7df486f199b213327ff"
},
"downloads": -1,
"filename": "aberdeen-0.2.3.2.tar.gz",
"has_sig": false,
"md5_digest": "71f2a288b815cc1dc0f222e1068a2821",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 8253,
"upload_time": "2015-03-29T15:11:44",
"url": "https://files.pythonhosted.org/packages/2f/1e/39994034acb2baa0a6cf742cd01413b51cbfa5f94b80b11eed8675d8abc3/aberdeen-0.2.3.2.tar.gz"
}
],
"0.3.0": [
{
"comment_text": "",
"digests": {
"md5": "9443b3fec007d4e0cc6727030710cf5b",
"sha256": "52afa6fdcfd96e34f641c6fc6de7375662397a9843ef5984edc60dea4d1d289c"
},
"downloads": -1,
"filename": "aberdeen-0.3.0.tar.gz",
"has_sig": false,
"md5_digest": "9443b3fec007d4e0cc6727030710cf5b",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 8529,
"upload_time": "2015-03-29T17:09:52",
"url": "https://files.pythonhosted.org/packages/cf/15/f0dab202533556bd676532b1e1771de9b44818b7b7827d437de22e00bf6d/aberdeen-0.3.0.tar.gz"
}
],
"0.4.0": [
{
"comment_text": "",
"digests": {
"md5": "7e943580a0900213013a5939b4cc65ae",
"sha256": "f80279ef3fa1c4ebd20497352c4ce8af62132e0752c14e0658be851802aa62bf"
},
"downloads": -1,
"filename": "aberdeen-0.4.0.tar.gz",
"has_sig": false,
"md5_digest": "7e943580a0900213013a5939b4cc65ae",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 8516,
"upload_time": "2015-04-03T10:49:29",
"url": "https://files.pythonhosted.org/packages/e2/06/728a8155a7ef774fdd7fa1dd86c80f66cfee38424790d6e2a1e93a37ff80/aberdeen-0.4.0.tar.gz"
}
]
},
"urls": [
{
"comment_text": "",
"digests": {
"md5": "7e943580a0900213013a5939b4cc65ae",
"sha256": "f80279ef3fa1c4ebd20497352c4ce8af62132e0752c14e0658be851802aa62bf"
},
"downloads": -1,
"filename": "aberdeen-0.4.0.tar.gz",
"has_sig": false,
"md5_digest": "7e943580a0900213013a5939b4cc65ae",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 8516,
"upload_time": "2015-04-03T10:49:29",
"url": "https://files.pythonhosted.org/packages/e2/06/728a8155a7ef774fdd7fa1dd86c80f66cfee38424790d6e2a1e93a37ff80/aberdeen-0.4.0.tar.gz"
}
]
}