{ "info": { "author": "Stefan Thesing", "author_email": "software@webdings.de", "bugtrack_url": null, "classifiers": [ "Development Status :: 3 - Alpha", "Intended Audience :: Education", "Intended Audience :: Science/Research", "License :: OSI Approved :: GNU General Public License v3 or later (GPLv3+)", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.3", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5", "Topic :: Other/Nonlisted Topic", "Topic :: Text Processing :: Indexing" ], "description": "Zettels\n=======\n\nZettels is a command line tool implementing Niklas Luhmann's system of a\n\"Zettelkasten\".\n\nIt's still in alpha stage and probably very buggy.\n\nWhat does Zettels do?\n---------------------\n\nZettels is a command line tool to index markdown files (your zettels).\nIt reads YAML-metadata blocks as defined by\n`pandoc `__\nand also parses the `markdown\nhyperlinks `__\nin each file.\n\nThe resulting index contains the metadata and the targets of the\nhyperlinks.\n\nHave a look at the files in ``examples/Zettelkasten`` and\n``examples/index.yaml`` to get a better idea.\n\nZettels can also be used to query the index. The output can then be\npiped to other tools (like grep or as arguments for the text editor of\nyour choice).\n\nIt's intended to be used for a \"Zettelkasten\" like Niklas Luhmann used\nit.\n\nWhat the heck is a Zettelkasten?\n--------------------------------\n\n\"Zettel\" is German for \"note\" or \"slip of paper\". \"Kasten\" is German for\n\"box\". Think of old style library catalogues.\n\nObviously, this piece of software is not a box of paper sheets. However,\n`Niklas Luhmann `__ used\nsuch a box in a very specific way for his academic work.\n\nA wonderful introduction in Luhmann's system of a Zettelkasten are the\nslides of a talk by Daniel L\u00fcdecke: `Introduction to Luhmann's\nZettelkasten-Thinking `__\n\nIn Luhmann's own words: `Communicating with Slip\nBoxes `__\n(translation of \"Kommunikation mit Zettelk\u00e4sten\").\n\nIf you speak German, there's more:\n\n- Luhmann, Niklas (1981): Kommunikation mit Zettelk\u00e4sten. Ein\n Erfahrungsbericht. in: H. Baier / H.M. Kepplinger / K. Reumann\n (Eds.), \u00d6ffentliche Meinung und sozialer Wandel. Opladen:\n Westdeutscher Verlag. pp. 22-28\n- Daniel L\u00fcdecke: `Luhmanns Arbeitsweise im elektronischen\n Zettelkasten `__\n- Thomas Schlesinger: `Wissen konservieren und kuratieren mit dem\n Zettelkasten nach Niklas\n Luhmann `__\n- Universit\u00e4t Bielefeld: Video - `Einblicke in das System der Zettel -\n Geheimnis um Niklas Luhmanns\n Zettelkasten `__\n\nWhat, no GUI?\n-------------\n\nTrue. A GUI for querying the index would be nice. However, as such,\nZettels doesn't provide one. It is intended to be used in a toolchain of\nUNIX-tools.\n\nI myself edit my Zettelkasten in my favourite text editor and have\ncreated a little module that allows me to query its index from there.\nSo, if you use Textadept or don't care which text editor you use, have a\nlook at `ta-zettels `__.\n\nAlternatives\n~~~~~~~~~~~~\n\nIf you're looking for a GUI, all-in-one approach to implementing\nLuhmann's idea into software, I can recommend Daniel L\u00fcdecke's\n`Zettelkasten `__\n(sjPlot/Zettelkasten).\n\nInstallation and setup\n----------------------\n\n1. Install using pip (or pip3, depending on your OS):\n ``pip install zettels``\n2. Run ``zettels --setup`` \u2013 follow the interactive setup process\n3. Run ``zettels -su`` once to initially build the index.\n\nUsage\n-----\n\nRun ``zettels -h`` for a complete list of options. Some examples:\n\nBuild or update the index:\n~~~~~~~~~~~~~~~~~~~~~~~~~~\n\n::\n\n zettels -su\n\nShorthand for ``--silentupdate``\n\nQuerying the index\n~~~~~~~~~~~~~~~~~~\n\nShow a list of all zettels:\n\n::\n\n zettels\n\nShow a list of all zettels, but update the index first:\n\n::\n\n zettels -u\n\nShow info about a specific zettel, e.g. file1.md:\n\n::\n\n zettels file1.md\n\nShow info about two zettels, e.g. file1.md and file2.md:\n\n::\n\n zettels file1.md file2.md\n\nShow a list of followups of a specific zettel, e.g. file1.md:\n\n::\n\n zettels -f file1.md\n\nShow a list of zettels a specific zettel links to, e.g. file1.md:\n\n::\n\n zettels -l file1.md\n\nShow a list of zettels linking to a specific zettel, e.g. file1.md:\n\n::\n\n zettels -i file1.md\n\nAnd finally, a bit of fun with pipes: Let's say you want to see which\nzettels apart from file1.md itself link to the followups of file1.md:\n\n::\n\n zettels -f file1.md | zettels -i | grep -v file1.md\n\nTry it with example data\n~~~~~~~~~~~~~~~~~~~~~~~~\n\nRun e.g.\n\n::\n\n zettels -s examples/zettels.cfg.yaml examples/Zettelkasten/file1.md\n\nZettel format\n-------------\n\nZettels doesn't require your markdown files to have a metadata block.\nBut to be really effective parts of your Zettelkasten, a YAML metadata\nblock containing an entry for ``title``, ``tags`` and ``followups`` is\nnecessary.\n\n.. code:: yaml\n\n ---\n title: 'Example Zettel'\n tags: [example, question]\n followups: [file.md, subdir/anotherfile.md, ../yetanotherfile.md]\n ...\n\nIf no such metadata is present, Zettels will replace it with appropriate\n\"empty\" values in the index:\n\n- ``title``: \"untitled\"\n- ``tags``: \"[]\"\n- ``followups``: \"[]\"\n\nInstead of finishing the metadata block with ``...`` you can also use\n``---``.\n\n.. code:: yaml\n\n ---\n title: 'Example Zettel'\n tags: [example, question]\n followups: [file.md, subdir/anotherfile.md, ../yetanotherfile.md]\n ---\n\nIn fact, a zettel file may contain several YAML-blocks. However, Zettels\nwill only parse the first one. The metadata block may contain a variety\nof other entries (e.g. ``author``, ``date``) \u2013 maybe for other tools,\nlike pandoc \u2013 but those other entries are ignored by Zettels and do not\nbecome part of Zettels' index.\n\nTo manually link between zettels, use the \"inline syntax\" for markdown\nhyperlinks:\n\n.. code:: [.markdown]\n\n [link text](url)\n\nLinks between zettel files should be relative links. The same is true\nfor entries in ``followups``.\n\nOutput format\n-------------\n\nThe output can be tweaked to your needs. In the settings file (default:\n~/.config/zettels.cfg.yaml), you'll find two settings:\n\n- ``outputformat`` - standard format\n- ``prettyformat`` - used when Zettels is called with the ``--pretty``\n flag\n\nThese output formats are given as `Python Format\nStrings `__.\nQuery output consists of two fields that these format strings can\nprocess:\n\n::\n\n 1. title - accessible by `'{0[0]}'`\n 2. path (relative to the Zettelkasten directory) - accessible by `'{0[1]}'`\n\nBy default the formats are:\n\n::\n\n outputformat: '{0[1]}'\n prettyformat: '{0[0]:<40}| {0[1]}'\n\nStandard ``outputformat`` just outputs the path(s) of the query results,\n``prettyformat`` is a pseudo-table with the title(s) of the query result\nin the first column (which is at least 40 characters wide), and the\npath(s) in the second column.\n\nThe output format can also be tweaked on a per call basis with the\n``-o`` flag, that takes a custom output format.\n\nSee the `Python Format String\nSyntax `__\nfor details.\n\nRequirements\n------------\n\n- Python 3.x\n- `grep `__ &\n `find `__\u2013 Your Python\n runtime must be able to find and execute the UNIX tools ``grep`` and\n ``find``. Zettels is tested against GNU grep and GNU find, but other\n implementations should be fine, too.\n- `PyYaml `__\n- `pathspec `__>=0.5.0\n\n\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/sthesing/Zettels", "keywords": "notetaking zettelkasten", "license": "GPLv3+", "maintainer": "", "maintainer_email": "", "name": "zettels", "package_url": "https://pypi.org/project/zettels/", "platform": "", "project_url": "https://pypi.org/project/zettels/", "project_urls": { "Homepage": "https://github.com/sthesing/Zettels" }, "release_url": "https://pypi.org/project/zettels/0.6.0/", "requires_dist": [ "PyYAML", "pathspec (>=0.5.0)", "check-manifest; extra == 'dev'", "pypandoc; extra == 'dev'", "coverage; extra == 'test'" ], "requires_python": "", "summary": "A command line tool implementing Luhmann's system of a \"Zettelkasten\".", "version": "0.6.0" }, "last_serial": 3055746, "releases": { "0.2.0": [ { "comment_text": "", "digests": { "md5": "0ed979eb80edbc6bac733c8afbed85f8", "sha256": "62b396cb460c3c7e473356e9289af20631850ff6e9a89bc43b50670c0f0489dd" }, "downloads": -1, "filename": "zettels-0.2.0-py3-none-any.whl", "has_sig": false, "md5_digest": "0ed979eb80edbc6bac733c8afbed85f8", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 19130, "upload_time": "2017-05-30T11:58:29", "url": "https://files.pythonhosted.org/packages/a5/bf/79091ff05f9cd1c18c6059d2a9c9217a32ecc1c613fdd966362a84532130/zettels-0.2.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "174ed469b4562f8058ba1583a02260b4", "sha256": "a6bddcfa5ae597ed297c8d3d8c4f6cb339dd12b56c2c62affdee77db84231a61" }, "downloads": -1, "filename": "zettels-0.2.0.tar.gz", "has_sig": false, "md5_digest": "174ed469b4562f8058ba1583a02260b4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 27195, "upload_time": "2017-05-30T11:58:31", "url": "https://files.pythonhosted.org/packages/31/7a/95ec2cd288df768c38f7750c2cdc23302d79308754eda24ff992f1c81649/zettels-0.2.0.tar.gz" } ], "0.2.1": [ { "comment_text": "", "digests": { "md5": "64966a2fe769bb9e6d2304c708b22186", "sha256": "bfe27a4faa5e4643d0a3afc1b508d762976b92ef79706eead1ba132c4360c081" }, "downloads": -1, "filename": "zettels-0.2.1-py3-none-any.whl", "has_sig": false, "md5_digest": "64966a2fe769bb9e6d2304c708b22186", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 19219, "upload_time": "2017-05-30T12:54:22", "url": "https://files.pythonhosted.org/packages/b3/27/002a9687daa6de04c7ee3a4bce7c4241e8a02e6b343fd01d80889f4a6389/zettels-0.2.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "4890f72f0dc7f98368957eae2ef0cdfe", "sha256": "250139a5cc850c128a8527df7ac07b5c79e4eccb1f529d453d6bdf8cf4a88021" }, "downloads": -1, "filename": "zettels-0.2.1.tar.gz", "has_sig": false, "md5_digest": "4890f72f0dc7f98368957eae2ef0cdfe", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 27283, "upload_time": "2017-05-30T12:54:24", "url": "https://files.pythonhosted.org/packages/a9/14/ab235e862f0c2c3f9e4f805eb22a967a8eaa70f2561dab74ba99d7569535/zettels-0.2.1.tar.gz" } ], "0.3.0": [ { "comment_text": "", "digests": { "md5": "d6aa563b20634d290b0753c79a3b7c4d", "sha256": "3241806d67598b0a473455593c606b5e482e7a652e7a2a6e1ff4e01b33661d7d" }, "downloads": -1, "filename": "zettels-0.3.0-py3-none-any.whl", "has_sig": false, "md5_digest": "d6aa563b20634d290b0753c79a3b7c4d", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 24862, "upload_time": "2017-05-31T15:08:36", "url": "https://files.pythonhosted.org/packages/37/80/9933884804c59e5803c30f1a0f21f3e43e9fa12f3e2e6dc0094da3d43889/zettels-0.3.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "2922e578ce18f135285c98057e3ef079", "sha256": "85138f0a799963dbe028614cbecf6ce819a8e7d620b3496af1514433c42805fa" }, "downloads": -1, "filename": "zettels-0.3.0.tar.gz", "has_sig": false, "md5_digest": "2922e578ce18f135285c98057e3ef079", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 31046, "upload_time": "2017-05-31T15:08:39", "url": "https://files.pythonhosted.org/packages/f8/c4/99dc51ba6abe7a28dcd393f36fe212cb87adca1936639c0ec670cc27b00e/zettels-0.3.0.tar.gz" } ], "0.4.0": [ { "comment_text": "", "digests": { "md5": "80a65d7550cce5800f31fda3ddc4f37e", "sha256": "1c72bceaf1f7661275147376a4f8fd6b8a75a3792e3f1b803a1c6f42bfc10885" }, "downloads": -1, "filename": "zettels-0.4.0-py3-none-any.whl", "has_sig": false, "md5_digest": "80a65d7550cce5800f31fda3ddc4f37e", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 25692, "upload_time": "2017-06-01T22:28:32", "url": "https://files.pythonhosted.org/packages/cb/fe/afa1fdaf4b116a670f5cbf49f88e72f0edc72ede0a0c4971bedfa4813c62/zettels-0.4.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "7532b52bcb6e6338be610aa7997f9080", "sha256": "a617a8de6078721b47e36ca3f50bbf8c8e516f0570c1ebd7e1b5439973197140" }, "downloads": -1, "filename": "zettels-0.4.0.tar.gz", "has_sig": false, "md5_digest": "7532b52bcb6e6338be610aa7997f9080", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 32602, "upload_time": "2017-06-01T22:28:33", "url": "https://files.pythonhosted.org/packages/6d/89/8f43568940cf7e03190c9d15cc1278ca08207958a1ca268edaa30856ec22/zettels-0.4.0.tar.gz" } ], "0.5.0": [ { "comment_text": "", "digests": { "md5": "efbbdb9a4337629cbd5970030be78b9f", "sha256": "89c8e651671f16c00347bb7b9a843487ccc08de17ab5b2643a03bfd3d7804865" }, "downloads": -1, "filename": "zettels-0.5.0-py3-none-any.whl", "has_sig": false, "md5_digest": "efbbdb9a4337629cbd5970030be78b9f", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 26386, "upload_time": "2017-06-09T11:25:44", "url": "https://files.pythonhosted.org/packages/42/2c/ed9867b40115e717ff6a0b451cbd9f7ecb6b957f74d2f70056a0d85aa9a7/zettels-0.5.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "83af3305b7a6fd3783ef7c0f1fe91435", "sha256": "07f6197641b8f6492c7a6b2a2ebe6c736c33b85486b3aee626ec7c1bb3d76129" }, "downloads": -1, "filename": "zettels-0.5.0.tar.gz", "has_sig": false, "md5_digest": "83af3305b7a6fd3783ef7c0f1fe91435", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 32553, "upload_time": "2017-06-09T11:25:47", "url": "https://files.pythonhosted.org/packages/df/8f/c9ab43b42249e4dbae0a5c7c65541f38b22ce52fe54f53f976d848e8e323/zettels-0.5.0.tar.gz" } ], "0.6.0": [ { "comment_text": "", "digests": { "md5": "a50538403b25bb373d3af247c7d13d2b", "sha256": "35b1b0b2e05878a44fce12963d94441a2331fec111a20f5c0085aac65535f59d" }, "downloads": -1, "filename": "zettels-0.6.0-py3-none-any.whl", "has_sig": false, "md5_digest": "a50538403b25bb373d3af247c7d13d2b", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 28302, "upload_time": "2017-07-28T13:44:01", "url": "https://files.pythonhosted.org/packages/c4/21/1b4b93f2adbf3fa32cfb113dec6f10ff74f6c46637e9ceee3f53140667d1/zettels-0.6.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "d63bf9b463e460f6a9421f0eb13f8d3f", "sha256": "1b09bf076ebb4d85aba9b870b05335a4e260b4210008c05caf90427fa9f39a53" }, "downloads": -1, "filename": "zettels-0.6.0.tar.gz", "has_sig": false, "md5_digest": "d63bf9b463e460f6a9421f0eb13f8d3f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 34738, "upload_time": "2017-07-28T13:44:03", "url": "https://files.pythonhosted.org/packages/ff/ef/7cdfaf746660fa9184081a99d7979057a05cafb4374592f9954afff914d1/zettels-0.6.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "a50538403b25bb373d3af247c7d13d2b", "sha256": "35b1b0b2e05878a44fce12963d94441a2331fec111a20f5c0085aac65535f59d" }, "downloads": -1, "filename": "zettels-0.6.0-py3-none-any.whl", "has_sig": false, "md5_digest": "a50538403b25bb373d3af247c7d13d2b", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 28302, "upload_time": "2017-07-28T13:44:01", "url": "https://files.pythonhosted.org/packages/c4/21/1b4b93f2adbf3fa32cfb113dec6f10ff74f6c46637e9ceee3f53140667d1/zettels-0.6.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "d63bf9b463e460f6a9421f0eb13f8d3f", "sha256": "1b09bf076ebb4d85aba9b870b05335a4e260b4210008c05caf90427fa9f39a53" }, "downloads": -1, "filename": "zettels-0.6.0.tar.gz", "has_sig": false, "md5_digest": "d63bf9b463e460f6a9421f0eb13f8d3f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 34738, "upload_time": "2017-07-28T13:44:03", "url": "https://files.pythonhosted.org/packages/ff/ef/7cdfaf746660fa9184081a99d7979057a05cafb4374592f9954afff914d1/zettels-0.6.0.tar.gz" } ] }