{ "info": { "author": "fluffy", "author_email": "fluffy@beesbuzz.biz", "bugtrack_url": null, "classifiers": [ "Development Status :: 3 - Alpha", "Intended Audience :: Developers", "Intended Audience :: End Users/Desktop", "License :: OSI Approved :: MIT License", "Natural Language :: English", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7", "Topic :: Internet :: WWW/HTTP :: Dynamic Content", "Topic :: Internet :: WWW/HTTP :: Dynamic Content :: Content Management System", "Topic :: Internet :: WWW/HTTP :: Dynamic Content :: News/Diary" ], "description": "# mt2publ\n\nA tool to (partially) convert a Movable Type website for use with Publ.\n\n## Basic usage\n\nCurrently only SQLite databases are supported (although adding direct support for MySQL and Postgres isn't too hard). If you have a MySQL database dump you can convert it to SQLite via [mysql2sqlite](https://github.com/dumblob/mysql2sqlite), and for Postgres you can follow [these instructions](https://manuelvanrijn.nl/blog/2012/01/18/convert-postgresql-to-sqlite/).\n\n```\npip install mt2publ\nmt2publ -b BLOG_ID -c /path/to/site/content database.db\n```\n\nIf you don't specify `-b` then it will dump all entries and category metadata from the MT database, which is probably not what you want if you have multiple blogs configured on the dashboard. You can find the specific blog ID by looking at its URL from the dashboard.\n\n## Current status\n\nIt has been tested successfully to extract entries and categories from a single Movable Type 4.21 website.\n\n## Features\n\n### What's supported\n\n* Markdown, Rich Text, and HTML entries (both with and without \"convert linebreaks\" set), with both intro and extended text\n* Publication status:\n * \"Draft\" and \"Scheduled\" supported directly\n * \"Review\" becomes \"HIDDEN\"\n * \"Spam\" becomes \"GONE\"\n * \"Published\" tries to do the right thing with Publ's scheduling model\n* Category metadata\n* Blog metadata (stored on the root category)\n* Multiple categories with some limitations:\n * It tries to infer the actual category based on the entry's primary category and what other subcategories an entry is in\n * All category placements are set in metadata headers, allowing manual cleanup (and fancy template logic if you so choose)\n* Sets path aliases of \"entry\" and \"page\" assets based on the original template mappings\n* Preserves the original entry ID as `Import-ID`\n* `Entry-Type` for entry vs. page\n* `Atom-Tag` for the original, inferior atom `` elements\n\n### What won't be supported\n\n* Asset relocation\n* Converting HTML/richtext entries to Markdown (use [Pandoc](http://pandoc.org) if you're feeling brave)\n* Native multiple categories (unless those become [supported by Publ](https://github.com/PlaidWeb/Publ/issues/163))\n* Things which are absolutely too complicated to get right, such as:\n * Full automated template conversion\n\n### What's feasible\n\n* Limited template conversion as a starting point\n* Limited category path alias support\n* Native support for MySQL, Oracle, and Postgres databases\n* Tags\n* Output backends for other blogging systems (Jekyll, Pelican, etc.)\n* Comment export (probably using the WordPress comment dump format, since many hosted comment systems support that, notably Disqus)\n\n## Data compatibility notes\n\n### Entry dates\n\nThe `Date` and `Last-Modified` are based on local time, since Movable Type only provides a single global timezone offset (not even a locale!) for the *entire blog*.\n\n### Feed ``s\n\n`Atom-Tag` potentially leaks data and shouldn't be used, unless you are really worried about Atom feed subscribers seeing duplicate entries. If you still want to use this feature, the appropriate XML fragment would be:\n\n```jinja\n{% if entry['Atom-Tag'] %}\n{{entry['Atom-Tag']}}\n{% else %}\nurn:uuid:{{entry.uuid}}\n{% endif %}\n```\n\n\n\n", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/PlaidWeb/Pushl", "keywords": "blog conversion movabletype mt publ", "license": "", "maintainer": "", "maintainer_email": "", "name": "mt2publ", "package_url": "https://pypi.org/project/mt2publ/", "platform": "", "project_url": "https://pypi.org/project/mt2publ/", "project_urls": { "Bug Reports": "https://github.com/PlaidWeb/mt2publ/issues", "Discord": "https://discord.gg/xADP3ja", "Funding": "https://patreon.com/fluffy", "Homepage": "https://github.com/PlaidWeb/Pushl", "Source": "https://github.com/PlaidWeb/mt2publ/" }, "release_url": "https://pypi.org/project/mt2publ/0.1.1/", "requires_dist": [ "pony", "pylint ; extra == 'dev'", "twine ; extra == 'dev'" ], "requires_python": ">=3.4", "summary": "A tool to convert a Movable Type site to a Publ site", "version": "0.1.1" }, "last_serial": 4848932, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "md5": "9211a5eb9a9035f03bf7d89f096667cd", "sha256": "613ad14e807085517a99b02a975daa5e3fc69d39c7119401036e9157206c6535" }, "downloads": -1, "filename": "mt2publ-0.1.0-py3-none-any.whl", "has_sig": false, "md5_digest": "9211a5eb9a9035f03bf7d89f096667cd", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.4", "size": 9341, "upload_time": "2019-02-20T19:51:22", "url": "https://files.pythonhosted.org/packages/35/db/d4e545174835649cc6cc4bda708696fc82fbcd4f2aeec12a9f1bf829cc2e/mt2publ-0.1.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "c6bc4bf949eea9b5b96543700810f50f", "sha256": "ca6f2fc2ad6e085eecea0a383003239cf12346cb49aa1e45c3a256d48cc4db53" }, "downloads": -1, "filename": "mt2publ-0.1.0.tar.gz", "has_sig": false, "md5_digest": "c6bc4bf949eea9b5b96543700810f50f", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.4", "size": 7002, "upload_time": "2019-02-20T19:51:24", "url": "https://files.pythonhosted.org/packages/f6/59/f5ac2fd744a6f583746ef7e61d348179fa7aea00704af4495e7c69fbfb00/mt2publ-0.1.0.tar.gz" } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "0cb652e994718d2f9073006d11575672", "sha256": "517bc3caa69ac77960feed1492a60346705c394bcf54fa8347478ccc5e17bb66" }, "downloads": -1, "filename": "mt2publ-0.1.1-py3-none-any.whl", "has_sig": false, "md5_digest": "0cb652e994718d2f9073006d11575672", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.4", "size": 10906, "upload_time": "2019-02-21T07:18:14", "url": "https://files.pythonhosted.org/packages/12/48/aa0125d7a92b99044cc6b80722114e32509ca3ad01633e827d5f5e47d5f6/mt2publ-0.1.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "79bbce38704d8bc850fa55e956a1a157", "sha256": "742369d7adda3d7ca66cf3ffc9bb23f2227bb82b9ded9e3f66cbf543997fe766" }, "downloads": -1, "filename": "mt2publ-0.1.1.tar.gz", "has_sig": false, "md5_digest": "79bbce38704d8bc850fa55e956a1a157", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.4", "size": 8675, "upload_time": "2019-02-21T07:18:15", "url": "https://files.pythonhosted.org/packages/27/3e/e7e48985604a0360cc2d7e6d196e153eee9935061b77c1d9bf83691504a8/mt2publ-0.1.1.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "0cb652e994718d2f9073006d11575672", "sha256": "517bc3caa69ac77960feed1492a60346705c394bcf54fa8347478ccc5e17bb66" }, "downloads": -1, "filename": "mt2publ-0.1.1-py3-none-any.whl", "has_sig": false, "md5_digest": "0cb652e994718d2f9073006d11575672", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.4", "size": 10906, "upload_time": "2019-02-21T07:18:14", "url": "https://files.pythonhosted.org/packages/12/48/aa0125d7a92b99044cc6b80722114e32509ca3ad01633e827d5f5e47d5f6/mt2publ-0.1.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "79bbce38704d8bc850fa55e956a1a157", "sha256": "742369d7adda3d7ca66cf3ffc9bb23f2227bb82b9ded9e3f66cbf543997fe766" }, "downloads": -1, "filename": "mt2publ-0.1.1.tar.gz", "has_sig": false, "md5_digest": "79bbce38704d8bc850fa55e956a1a157", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.4", "size": 8675, "upload_time": "2019-02-21T07:18:15", "url": "https://files.pythonhosted.org/packages/27/3e/e7e48985604a0360cc2d7e6d196e153eee9935061b77c1d9bf83691504a8/mt2publ-0.1.1.tar.gz" } ] }