{ "info": { "author": "Paul Landes", "author_email": "landes@mailc.net", "bugtrack_url": null, "classifiers": [], "description": "# Export Zotero to a web site\n\n[![Gitter chat][gitter-badge]][gitter-link]\n\n[![Travis CI Build Status][travis-badge]][travis-link]\n\nThis project exports your local [Zotero] library to a usable HTML website.\nThis generated website has the following features:\n\n* Easily access your papers, site snapshots, notes from a navigation tree.\n* Provides metadata from collections and attachments (i.e. referenes etc).\n* Display PDF papers and website snapshot (the latter as framed).\n* Method to navigate to/view the paper/website snapshot directly.\n* Snazzy look and feel from the latest [Bootstrap] CSS/Javascript library.\n\n\n## Table of Contents\n\n- [Obtaining](#obtaining)\n- [Sample Site](#sample-site)\n- [Usage](#usage)\n - [Show Structure](#show-structure)\n - [Website Creation](#website-creation)\n - [Export Subcollections](#export-subcollections)\n - [Configuration File](#configuration-file)\n- [Process](#process)\n - [Keeping the Website In Sync With Zotero](#keeping-the-website-in-sync-with-zotero)\n - [Platform](#platform)\n- [Command Line Help](#command-line-help)\n- [Attribution](#attribution)\n- [Screenshot](#screenshot)\n- [Todo](#todo)\n- [Zotero Plugin Listing](#zotero-plugin-listing)\n- [Changelog](#changelog)\n- [License](#license)\n\n\n\n\n\n## Obtaining\n\nThe easist way to install the command line program is via the `pip` installer:\n```bash\npip install zensols.zotsite\n```\n\nBinaries are also available on [pypi].\n\n\n## Sample Site\n\nSee the [live demo], which provides a variety of resources found in my own\nlibrary. *Note:* To my knowledge, all of these resources are free to\ndistribute and violate no laws. If I've missed one,\nplease [create an issue](CONTRIBUTING.md).\n\n\n## Usage\n\n**Important:** You _must_ shut down [Zotero] before you invoking this script.\nNothing goes wrong when you don't. However, the script uses an SQLite file\nthat the program (pessimistically) locks.\n\nThe program has two modes: show configuration (a good first step) and create\nthe web site.\n\n\n### Show Structure\n\nYou can see what the program is parsing from your [Zotero] library:\n\n```bash\nzotsite print\n```\n\n\n### Website Creation\n\nRun the program (without the angle brackets):\n\n```bash\nzotsite export -o \n```\n\nAfter the program runs, `sitedir` will be where the tool creates/generates the\nthe new site. Note you can also give a `--datadir` to tell the program where\nyour [Zotero] library is. This can also be configured in\nyour [configuration](#configuration-file).\n\nThe website will work as served from either a website or from the local file\nsystem. You can pass `levels` as a URL encoded parameter to produce the number\nof levels when the page is loaded.\n\nOn the left you can click on the tree to select collections or attachments.\nYou have to drill all the way down to the leaf level in the tree to get at your\nattachements and notes. At the leaf level you can select and unselect a node\nbut all other nodes are note *selectable*.\n\nBy clicking on a non-leaf node it expands or collapses everything *and* gives\nthe meta data for that collection. Note that this behavior was decided more by\nthe way [Tree View] works more than anything else since it is designed to show\nthe entire tree list at once.\n\n\n### Export Subcollections\n\nThe folder directory structure in [Zotero] are called *collections*. You can\nexport only collections given a regular expression with the `--collection`\nflag.\n\n\n\n### Configuration File\n\nAll command line parameters you provide can also be given in a `ini` style\nconfiguration file, for example:\n\n```ini\n[default]\ndata_dir=%(HOME)s/.zotero\n```\n\ntells the program where the [Zotero] data directory is located in the user's\nhome directory with name `.zotero` (this defaults to the Zotero default).\n\nYou can indicate where the program configuration file is with the `ZOTSITERC`\nenvironment variable or use the `--config` command line program.\n\n\n## Process\n\nThe tool does the following:\n\n1. Exports the meta data (directory structure, references, notes, etc) from\n your [Zotero] library. On MacOS, this is done by querying the file system\n SQLite DB files.\n2. Copies a static site that enables traversal of the exported data.\n3. Copies your [Zotero] stored papers, snapshot (sites) etc.\n4. Generates a navigation tree to easily find your papers/content.\n\n\n### Keeping the Website In Sync With Zotero\n\nCurrently there is no way to do this (contributions are welcome). However\nthere is a script I use to do this when I know I'm going to need to use the\nsite, which is [here](src/sh/zotsync.sh).\n\n\n### Platform\n\nThis project uses the SQLite Python library and should run on other platforms\nbut assumes a directory structure that's been tested on OSX.\n\n\n## Command Line Help\n\nCommand line usage as provided with the `--help` option:\n\n```sql\nUsage: usage: zotsite [options]\n\nOptions:\n --version show program's version number and exit\n -h, --help show this help message and exit\n -w NUMBER, --whine=NUMBER\n add verbosity to logging\n -c FILE, --config=FILE\n configuration file\nActions:\n export Export\n -d, --datadir the location of the Zotero data directory\n -o, --outputdir the directory to output the website\n --collection regular expression to match collections\n --staticdirs comma separated directories to static files\n\n print Print structure\n -d, --datadir the location of the Zotero data directory\n --collection SQL like pattern to match collections\n```\n\n\n## Attribution\n\nThis software uses:\n* Python 3\n* [Bootstrap] version 4\n* [Tree View] for Bootstrap\n* [Popper] for tooltips\n\n\n## Screenshot\n\nAlso see the [live demo].\n\n![Screenshot](doc/snapshot.png?raw=true \"Zotero Screenshot\")\n\n\n## Todo\n\n* Make the site portion a proper Javascript site. Right now, all the `min`s\n are added in the distribution to same directory as\n the [main navigation/content](src/site/js/zotero.js) file.\n* Add functionality to the disabled *View* button that drills down in a paper\n and finds a PDF or site to view withouth the user having to do this.\n* Use something like zotxt to make this work with a plugin rather than directly\n against the SQLite DB.\n\n\n## Zotero Plugin Listing\n\nThis is listed as a [plugin] on the Zotero site.\n\n\n## Changelog\n\nAn extensive changelog is available [here](CHANGELOG.md).\n\n\n## License\n\nCopyright \u00a9 2018 Paul Landes\n\nPermission is hereby granted, free of charge, to any person obtaining a copy of\nthis software and associated documentation files (the \"Software\"), to deal in\nthe Software without restriction, including without limitation the rights to\nuse, copy, modify, merge, publish, distribute, sublicense, and/or sell copies\nof the Software, and to permit persons to whom the Software is furnished to do\nso, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n\n\n\n[travis-link]: https://travis-ci.org/plandes/zotsite\n[travis-badge]: https://travis-ci.org/plandes/zotsite.svg?branch=master\n[gitter-link]: https://gitter.im/zoterosite/zotsite\n[gitter-badge]: https://badges.gitter.im/zoterosite/gitter.png\n\n[pypi]: https://pypi.org/project/zensols.zotsite/\n[live demo]: https://plandes.github.io/zotsite/sample/index.html\n\n[Zotero]: https://www.zotero.org\n[Bootstrap]: https://getbootstrap.com\n[Tree View]: https://github.com/jonmiles/bootstrap-treeview\n[Popper]: https://popper.js.org\n[plugin]: https://www.zotero.org/support/plugins#website_integration\n\n\n", "description_content_type": "text/markdown", "docs_url": null, "download_url": "https://github.com/plandes/zotsite/releases/download/v0.2.3/zensols.zotsite-0.2.3-py3-none-any.whl", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/plandes/zotsite", "keywords": "academic,web,website,research", "license": "", "maintainer": "", "maintainer_email": "", "name": "zensols.zotsite", "package_url": "https://pypi.org/project/zensols.zotsite/", "platform": "", "project_url": "https://pypi.org/project/zensols.zotsite/", "project_urls": { "Download": "https://github.com/plandes/zotsite/releases/download/v0.2.3/zensols.zotsite-0.2.3-py3-none-any.whl", "Homepage": "https://github.com/plandes/zotsite" }, "release_url": "https://pypi.org/project/zensols.zotsite/0.2.3/", "requires_dist": [ "zensols.actioncli (>=1.0.6)" ], "requires_python": "", "summary": "This project attempts to export a local Zotero library to a usable HTML website.", "version": "0.2.3" }, "last_serial": 4252811, "releases": { "0.1": [ { "comment_text": "", "digests": { "md5": "b8b3271d6aae5e37d2312ea1a4c12ee2", "sha256": "6ba4a643e6c5ad7c3603bd2cd4356e13ac04d4d1465a31d0038f991f70b40a3e" }, "downloads": -1, "filename": "zensols.zotsite-0.1.tar.gz", "has_sig": false, "md5_digest": "b8b3271d6aae5e37d2312ea1a4c12ee2", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 417153, "upload_time": "2018-03-28T01:49:04", "url": "https://files.pythonhosted.org/packages/4f/28/a0fd39bd47cfdd41951a9281a0428be75fd615b4b1ebd0b95b71962395d7/zensols.zotsite-0.1.tar.gz" } ], "0.2.0": [ { "comment_text": "", "digests": { "md5": "c68005a3974f8f65c7a0cee3c71f51ce", "sha256": "88c2d81e8b5ab1346189c3571a9171d394165473220da03188972e53ba447c1c" }, "downloads": -1, "filename": "zensols.zotsite-0.2.0-py3.6.egg", "has_sig": false, "md5_digest": "c68005a3974f8f65c7a0cee3c71f51ce", "packagetype": "bdist_egg", "python_version": "3.6", "requires_python": null, "size": 434969, "upload_time": "2018-08-11T02:05:47", "url": "https://files.pythonhosted.org/packages/52/73/190a34c48f25eddd9945c10902e8fcb3fdc940e5c7652b89770006a51cd4/zensols.zotsite-0.2.0-py3.6.egg" }, { "comment_text": "", "digests": { "md5": "1a36f2373546ad82ba27be977a0c8d4a", "sha256": "3e2442898cda0bd0e099dab5a891475434badb278048416a22dfe8dfab882136" }, "downloads": -1, "filename": "zensols.zotsite-0.2.0-py3-none-any.whl", "has_sig": false, "md5_digest": "1a36f2373546ad82ba27be977a0c8d4a", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 424011, "upload_time": "2018-08-11T02:05:45", "url": "https://files.pythonhosted.org/packages/1c/ff/88fe32e1ec94b2ae9c14cddf6fcdac80a7c54dfc48f5b924f2550ae40359/zensols.zotsite-0.2.0-py3-none-any.whl" } ], "0.2.1": [ { "comment_text": "", "digests": { "md5": "5d636b6936436e4297970ec941cffaf1", "sha256": "c53421ab6d3b8ffa5347fc7796a3b6fda525a3fa70ba622c48b7d31d912d0de2" }, "downloads": -1, "filename": "zensols.zotsite-0.2.1-py3.6.egg", "has_sig": false, "md5_digest": "5d636b6936436e4297970ec941cffaf1", "packagetype": "bdist_egg", "python_version": "3.6", "requires_python": null, "size": 435118, "upload_time": "2018-08-11T23:51:33", "url": "https://files.pythonhosted.org/packages/00/46/9069ae8c482f18fedadf0e2e56ba072a2227f64313f8ee1b4daaee794e40/zensols.zotsite-0.2.1-py3.6.egg" }, { "comment_text": "", "digests": { "md5": "ef85388b1c713bbf6a100054b1749b0f", "sha256": "10070e96bc7bc5841dfeb98d651e0ac99f69176cf74421a6a601c304c7bc7e7b" }, "downloads": -1, "filename": "zensols.zotsite-0.2.1-py3-none-any.whl", "has_sig": false, "md5_digest": "ef85388b1c713bbf6a100054b1749b0f", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 424039, "upload_time": "2018-08-11T23:51:31", "url": "https://files.pythonhosted.org/packages/1b/21/5e749de0f523a2b60fe027ca922db5c34298a848e8a200a7742c3396a8ed/zensols.zotsite-0.2.1-py3-none-any.whl" } ], "0.2.2": [ { "comment_text": "", "digests": { "md5": "9ed7e06f4478b9a9d519bc6aae8175a9", "sha256": "f30fd2cc970d39bd5f71fc42a39d45300460750a634b80022d308d15bb1b462a" }, "downloads": -1, "filename": "zensols.zotsite-0.2.2-py3.6.egg", "has_sig": false, "md5_digest": "9ed7e06f4478b9a9d519bc6aae8175a9", "packagetype": "bdist_egg", "python_version": "3.6", "requires_python": null, "size": 435685, "upload_time": "2018-09-01T20:37:08", "url": "https://files.pythonhosted.org/packages/75/aa/8f0cb20126ad0186f99ca942469589cf0421f6a23c518b658cab89111e2e/zensols.zotsite-0.2.2-py3.6.egg" }, { "comment_text": "", "digests": { "md5": "7b5f9756dfb2e8f2b0ff598b90acbb70", "sha256": "9a0844bb8a1ea1044480aefe02da4ea4e4eaa55b5236da9cb497a99915fd9522" }, "downloads": -1, "filename": "zensols.zotsite-0.2.2-py3-none-any.whl", "has_sig": false, "md5_digest": "7b5f9756dfb2e8f2b0ff598b90acbb70", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 424373, "upload_time": "2018-09-01T20:37:07", "url": "https://files.pythonhosted.org/packages/e8/1b/ab1781b1766e5aba148eb3faf6b6019eb0e70ccbed97a1195c699ffc48b4/zensols.zotsite-0.2.2-py3-none-any.whl" } ], "0.2.3": [ { "comment_text": "", "digests": { "md5": "ea8c9c3f6298f121fb3ffbef532c4445", "sha256": "13d3ae76bbc92c2f3dcc5020889648c71bdab63e982e11960eb9c143d7754915" }, "downloads": -1, "filename": "zensols.zotsite-0.2.3-py3.6.egg", "has_sig": false, "md5_digest": "ea8c9c3f6298f121fb3ffbef532c4445", "packagetype": "bdist_egg", "python_version": "3.6", "requires_python": null, "size": 446647, "upload_time": "2018-09-09T03:06:56", "url": "https://files.pythonhosted.org/packages/d2/0e/980fec7a87de181de38f2d27936895eb82d7790a921b4ddc59b1ccedca36/zensols.zotsite-0.2.3-py3.6.egg" }, { "comment_text": "", "digests": { "md5": "ebc1f7ed41b0063db2b92a51d7fc5cd0", "sha256": "bdb95a71472edcef81665f319f7aa9a6e017c61b15965a042c80ebb8d303ed02" }, "downloads": -1, "filename": "zensols.zotsite-0.2.3-py3-none-any.whl", "has_sig": false, "md5_digest": "ebc1f7ed41b0063db2b92a51d7fc5cd0", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 430506, "upload_time": "2018-09-09T03:06:54", "url": "https://files.pythonhosted.org/packages/f8/f3/bb805b141bca2e5a1cafcb3f746d8771b2647c96f100a40fc9ee11d3f48d/zensols.zotsite-0.2.3-py3-none-any.whl" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "ea8c9c3f6298f121fb3ffbef532c4445", "sha256": "13d3ae76bbc92c2f3dcc5020889648c71bdab63e982e11960eb9c143d7754915" }, "downloads": -1, "filename": "zensols.zotsite-0.2.3-py3.6.egg", "has_sig": false, "md5_digest": "ea8c9c3f6298f121fb3ffbef532c4445", "packagetype": "bdist_egg", "python_version": "3.6", "requires_python": null, "size": 446647, "upload_time": "2018-09-09T03:06:56", "url": "https://files.pythonhosted.org/packages/d2/0e/980fec7a87de181de38f2d27936895eb82d7790a921b4ddc59b1ccedca36/zensols.zotsite-0.2.3-py3.6.egg" }, { "comment_text": "", "digests": { "md5": "ebc1f7ed41b0063db2b92a51d7fc5cd0", "sha256": "bdb95a71472edcef81665f319f7aa9a6e017c61b15965a042c80ebb8d303ed02" }, "downloads": -1, "filename": "zensols.zotsite-0.2.3-py3-none-any.whl", "has_sig": false, "md5_digest": "ebc1f7ed41b0063db2b92a51d7fc5cd0", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 430506, "upload_time": "2018-09-09T03:06:54", "url": "https://files.pythonhosted.org/packages/f8/f3/bb805b141bca2e5a1cafcb3f746d8771b2647c96f100a40fc9ee11d3f48d/zensols.zotsite-0.2.3-py3-none-any.whl" } ] }