Package: zensols.zotsite
Zotsite: A Zotero Export UtilityThis project exports your localZoterolibrary to a usable HTML website.
This generated website has the following features:Easily access your papers, site snapshots, notes from a navigation tree.Provides metadata from collections and attachments (i.e. referenes etc).Display PDF papers and website snapshot (the latter as framed).Search function dynamically narrows down the papers you're looking for.Embed links to a specific collection, article, item, note etc.Export only a portion of your collection with regular expressions using the
collection name.BetterBibtexintegration.Snazzy look and feel from the latestBootstrapCSS/Javascript library.DocumentationSee thefull documentation.ObtainingThe easist way to install the command line program is via thepipinstaller:pip3installzensols.zotsiteBinaries are also available onpypi.ProcessThe tool does the following:Exports the meta data (directory structure, references, notes, etc) from
yourZoterolibrary.  On MacOS, this is done by querying the file system
SQLite DB files.Copies a static site that enables traversal of the exported data.Copies yourZoterostored papers, snapshot (sites) etc.Generates a navigation tree to easily find your papers/content.Sample Site DemonstrationSee thelive demo, which provides a variety of resources found in my own
library.Note:To my knowledge, all of these resources are free to
distribute and violate no laws.  If I've missed one,
pleasecreate an issue.RequirementsBetterBibtexplugin for Zotero.UsageThe command line program has two modes: show configuration (a good first step)
and to create the web site.  You can see what the program is parsing from yourZoterolibrary:zotsiteprintTo create the stand-alone site, run the program (without the angle brackets):zotsiteexportIf your library is not in the default $HOME/zotero directory you will need to change that path by making a zotsite.conf config file:zotsiteexport--collectionzotsite.confThis will create the html files in the directory ./zotsiteSeeusagefor more information.Configuration FileEither an environment variableZOTSITERCmust be set or a-cconfiguration
option must be given and point to a file to customize how the program works.
See the testconfiguration filefor an example and inline comments for more
detail on how and what can be configured.Ubuntu and Linux Systems with Python 3.5 or Previous VersionPleaseread this issueif you
are installing a Ubuntu or any Linux system with Python 3.5 or previous
version.Command Line HelpCommand line usage as provided with the--helpoption:Usage:zotsite[list|export|print][options]:

ThisprojectexportsyourlocalZoterolibrarytoausableHTMLwebsite.

Options:-h,--help[actions]showthishelpmessageandexit--versionshowtheprogramversionandexit--levelXtheapplicationloggerlevel,Xisoneof:debug,err,info,warn-c,--configFILEtheconfigurationfile

Actions:
listlistallactionsandhelp--lstfmt<json|name|text>texttheoutputformatfortheactionlistingexport(default)generateandexportthezoterowebsite--collectionREGEXaregularexpressionusedtofilter"collection"nodes-o,--outputdirDIRthedirectorytodumpthesite;defaulttoconfigurationfile-s,--showwhethertobrowsetothecreatedsite(needs"pip install zensols.showfile")printprint(sub)collectionsandpapersinthosecollectionsasatree--collectionREGEXaregularexpressionusedtofilter"collection"nodesAttributionThis software uses:Python 3jQueryversion 3DataTablesversion 1.12Bootstrapversion 4Tree Viewfor BootstrapPopperfor tooltipsCopy to ClipboardfunctionScreenshotAlso see thelive demo.TodoMake the site portion a proper Javascript site.  Right now, all themins
are added in the distribution to same directory as
themain navigation/contentfile.Add functionality to the disabledViewbutton that drills down in a paper
and finds a PDF or site to view withouth the user having to do this.Use something like zotxt to make this work with a plugin rather than directly
against the SQLite DB.Zotero Plugin ListingThis is listed as apluginon the Zotero site.ChangelogAn extensive changelog is availablehere.CommunityPlease star this repository and let me know how and where you use this API.
Contributions as pull requests, feedback and any input is welcome.LicenseMIT LicenseCopyright (c) 2019 - 2023 Paul Landes