{ "info": { "author": "Benjamin Althues", "author_email": "benjamin@babab.nl", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Environment :: Console", "Environment :: Web Environment", "Intended Audience :: Developers", "Intended Audience :: End Users/Desktop", "Intended Audience :: Information Technology", "Intended Audience :: System Administrators", "License :: OSI Approved :: ISC License (ISCL)", "Natural Language :: English", "Operating System :: POSIX", "Operating System :: Unix", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", "Topic :: Adaptive Technologies", "Topic :: Documentation", "Topic :: Internet", "Topic :: Internet :: WWW/HTTP", "Topic :: Office/Business", "Topic :: Text Editors :: Documentation", "Topic :: Text Editors :: Text Processing", "Topic :: Text Processing :: Filters", "Topic :: Text Processing :: Linguistic", "Topic :: Text Processing :: Markup :: HTML", "Topic :: Text Processing :: Markup :: XML", "Topic :: Utilities" ], "description": "Tuhinga\n==============================================================================\n\n.. image:: https://travis-ci.org/babab/tuhinga.svg?branch=master\n :target: https://travis-ci.org/babab/tuhinga\n\nTuhinga is a minimalistic markup language that translates to XML/HTML.\nIt can help you reduce typing and quicken the editing process of HTML\npages. It may remind you a little of HAML since it shares a few common\nconcepts, but it has different goals. HAML is essentially a template\nlanguage, while tuhinga is a tiny markup language primarily aimed to be\njust a precursor for XML/HTML documents.\n\nThe only true goal of Tuhinga is **conciseness**. And this is also\nwhere it stands out against other solutions. It is the prettiest.\nThis means it may never support XML and HTML for the full 100%, since\nthat would cause the need for a much more expansive syntax. Use it if\nyou think HAML is a good idea, but not beatiful enough. Otherwise I'd\nadvise to just use HAML, since it is much more mature and has numerous\nimplementations.\n\nThe implementation of Tuhinga is written in Python. Supported Python\nversions are 2.7 and 3.2 and later.\n\n- Github: http://github.com/babab/tuhinga\n- Bitbucket: http://bitbucket.org/babab/tuhinga\n\n\nA tuhinga example document\n------------------------------------------------------------------------------\n\nAn example of a HTML5 (\\*.tuh) document::\n\n ; Comments start with ;\n\n html5\n head\n meta-charset utf-8\n meta :name=viewport device-width, initial-scale=1.0\n title Page title\n body\n #main.container\n h1.page-header Page title\n .row\n .col-lg-12\n p Paragraph line 1\n :: line 2\n :: line 3\n small line 4\n p\n :: line 1\n :: line 2\n #footer.container\n p.muted Copyright & 2015 Me\n\nAfter converting to HTML:\n\n.. code-block:: html\n\n \n \n \n \n \n Page title\n \n \n
\n

Page title

\n
\n
\n

\n Paragraph line 1\n line 2\n line 3\n line 4\n

\n

\n line 1\n line 2\n

\n
\n
\n
\n
\n

Copyright & 2015 Me

\n
\n \n \n\n\nThe tuhinga equivalent of any HTML output uses roughly 33% less\ncharacters, and not a single angle bracket.\n\n\nUsing Tuhinga to write XML / HTML5\n------------------------------------------------------------------------------\n\nThe handling of certain symbols like `js`, `meta`, `input` and other\nvoid elements and the *$content* that follows is done by applying a\nset of rules, called a mapping. All other elements are treated with\nthe default handling of the Lexer (currently there is only a XML/HTML\nLexer).\n\nWhat follows are the rules that are applied with the default mapping.\nYou can alter how these mappings work though. This means you can easily\nadd your own symbols.\n\nSpecial symbols\n###############\n\n- **html5**: sets doctype; is expanded to ... \n- **css**: expanded to \n- **input**: expanded to \n- **input-***: expanded to \n- **js**: an alternative for writing **script-src**\n- **link**: expanded to \n- **meta**: expanded to \n- **meta-charset**: expanded to \n- **script-src**: expanded to \n\nRecognised as void elements (elements that do not close)\n########################################################\n\narea, base, br, col, embed, hr, img, keygen, param, source, track,\ninput (mapped content), link (mapped content), meta (mapped content),\nwbr\n\n\nConvert tuhinga templates with the python module\n------------------------------------------------------------------------------\n\nTuhinga is distributed as a single module and can be downloaded and\nused directly. If you install Tuhinga into your system or\nvirtualenv, you can use the more convenient **tuh** executable script.\nIf you use the module, simply replace **tuh** with **./tuhinga.py** in\nthe instructions below.\n\nConverting a document is simple:\n\n.. code-block:: console\n\n $ tuh somedocument.tuh > somedocument.html\n\nYou can also read from stdinput:\n\n.. code-block:: console\n\n $ cat somedocument.tuh | tuh > somedocument.html # passing a file\n $ tuh > somedocument.html # typing a doc directly in the terminal\n\nThe Tuhinga module itself has no external dependencies. The Tuhinga\nwebREPL is distributed independently and requires bottle.\n\n\nDownload and install\n--------------------\n\nTuhinga itself has no external dependencies. If you have pip installed,\nyou can just:\n\n.. code-block:: console\n\n # pip install tuhinga\n\nTo work with the current development version, do something like this:\n\n.. code-block:: console\n\n $ git clone git://bitbucket.org/babab/tuhinga.git\n # cd tuhinga\n # python setup.py install\n\n\nConvert tuhinga templates with the instant webREPL\n------------------------------------------------------------------------------\n\nUse the webREPL as an easy way to fiddle around with writing tuhinga\ndocuments or use it as a serious tool to quickly write up your pages. It\nwill give instant feedback of the output after each keystroke.\n\nThe webREPL is written using the bottle Python micro-framework, which is\nnot a dependency of tuhinga itself. Therefore, you must be sure to have\nbottle installed if you wish to use it.\n\nInstall bottle (in a virtualenv)\n################################\n\n.. code-block:: console\n\n $ pip install bottle\n\nRun the webREPL\n###############\n\n.. code-block:: console\n\n $ ./tuhinga_webrepl.py\n\nNow you can visit *http://localhost:8080/* and play around.\n\n\nSyntax file for Vim\n------------------------------------------------------------------------------\n\nIf you use Vim for your editing, you can install the syntax file to have\npretty syntax highlighting for Tuturu (\\*.tuh) documents. It's my first\ngo at writing a syntax.vim file and it currently has some small bugs,\nwhich should probably be resolved soon.\n\n.. image:: http://i.imgur.com/uqpEpjN.png\n\nInstall the tuh.vim syntax file into your .vim folder:\n\n.. code-block:: console\n\n $ mkdir -p ~/.vim/syntax\n $ cp tuh.vim ~/.vim/syntax\n\nAnd use it in your Vim buffer with ``:set filetype=tuh``\n\n\nLicense\n-------\n\nCopyright (c) 2014-2015 Benjamin Althues \n\nPermission to use, copy, modify, and distribute this software for any\npurpose with or without fee is hereby granted, provided that the above\ncopyright notice and this permission notice appear in all copies.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES\nWITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF\nMERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR\nANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES\nWHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN\nACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF\nOR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.\n\nChange Log\n==========\n\nAll notable changes to tuhinga will be documented here. The project\nadheres to `Semantic Versioning `_.\n\n\n0.1.1 - 2013-05-28\n------------------\n\nAdded\n#####\n- Package as (source and) wheel distribution to speed up installations\n- This CHANGELOG\n\n\n0.1.0 - 2013-05-21\n------------------\nAdded\n#####\n- Initial release", "description_content_type": null, "docs_url": "https://pythonhosted.org/tuhinga/", "download_url": "https://pypi.python.org/pypi/tuhinga", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "http://github.com/babab/tuhinga", "keywords": null, "license": "ISC", "maintainer": null, "maintainer_email": null, "name": "tuhinga", "package_url": "https://pypi.org/project/tuhinga/", "platform": "any", "project_url": "https://pypi.org/project/tuhinga/", "project_urls": { "Download": "https://pypi.python.org/pypi/tuhinga", "Homepage": "http://github.com/babab/tuhinga" }, "release_url": "https://pypi.org/project/tuhinga/0.1.1/", "requires_dist": null, "requires_python": null, "summary": "Minimalistic markup language that translates to XML/HTML", "version": "0.1.1" }, "last_serial": 1566999, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "md5": "0ee5efb9343b58724a840e696a04125b", "sha256": "0ecfbdb8f02dc1c96388d6baadc5d4ee3e60205e35357c655081d96b4168f979" }, "downloads": -1, "filename": "tuhinga-0.1.0.tar.gz", "has_sig": false, "md5_digest": "0ee5efb9343b58724a840e696a04125b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10608, "upload_time": "2015-05-21T20:09:00", "url": "https://files.pythonhosted.org/packages/ae/81/94c0ed44d3dff6942b2724dfdda979f503307d231b35e3662f850fa96156/tuhinga-0.1.0.tar.gz" } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "41b71b0c6d49cb1febb956027b950519", "sha256": "caaa7c9aa02c0bb43e45372878414b66e20737b99df50f7fa46db6f5771c854f" }, "downloads": -1, "filename": "tuhinga-0.1.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "41b71b0c6d49cb1febb956027b950519", "packagetype": "bdist_wheel", "python_version": "3.4", "requires_python": null, "size": 22791, "upload_time": "2015-05-28T21:04:36", "url": "https://files.pythonhosted.org/packages/b4/26/741a178ba509851e8d2658200cffb715655576515ba2030fca9726fff78b/tuhinga-0.1.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "182b7408f77bd0f800399b85e3687299", "sha256": "29799e83e094cb8757a48e432e639c22453d1f4f1b22cb36073c61b98bfd5904" }, "downloads": -1, "filename": "tuhinga-0.1.1.tar.gz", "has_sig": false, "md5_digest": "182b7408f77bd0f800399b85e3687299", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12717, "upload_time": "2015-05-28T21:04:24", "url": "https://files.pythonhosted.org/packages/a8/89/8ae3f2d857265f8bae79fa1a9f340d5eafde87335fd651a2bfc0bc88b16a/tuhinga-0.1.1.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "41b71b0c6d49cb1febb956027b950519", "sha256": "caaa7c9aa02c0bb43e45372878414b66e20737b99df50f7fa46db6f5771c854f" }, "downloads": -1, "filename": "tuhinga-0.1.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "41b71b0c6d49cb1febb956027b950519", "packagetype": "bdist_wheel", "python_version": "3.4", "requires_python": null, "size": 22791, "upload_time": "2015-05-28T21:04:36", "url": "https://files.pythonhosted.org/packages/b4/26/741a178ba509851e8d2658200cffb715655576515ba2030fca9726fff78b/tuhinga-0.1.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "182b7408f77bd0f800399b85e3687299", "sha256": "29799e83e094cb8757a48e432e639c22453d1f4f1b22cb36073c61b98bfd5904" }, "downloads": -1, "filename": "tuhinga-0.1.1.tar.gz", "has_sig": false, "md5_digest": "182b7408f77bd0f800399b85e3687299", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12717, "upload_time": "2015-05-28T21:04:24", "url": "https://files.pythonhosted.org/packages/a8/89/8ae3f2d857265f8bae79fa1a9f340d5eafde87335fd651a2bfc0bc88b16a/tuhinga-0.1.1.tar.gz" } ] }