{"id":13961439,"url":"https://github.com/vedvyas/doxytag2zealdb","last_synced_at":"2025-07-21T06:30:55.351Z","repository":{"id":44650389,"uuid":"62769896","full_name":"vedvyas/doxytag2zealdb","owner":"vedvyas","description":"doxytag2zealdb creates a SQLite3 database from a Doxygen tag file to enable searchable Doxygen docsets with categorized entries in tools like helm-dash, Zeal, and Dash. MIRROR. Please report issues and submit pull requests upstream @","archived":false,"fork":false,"pushed_at":"2022-02-11T06:34:09.000Z","size":64,"stargazers_count":9,"open_issues_count":0,"forks_count":2,"subscribers_count":3,"default_branch":"master","last_synced_at":"2024-11-28T07:34:31.079Z","etag":null,"topics":["dash-docset","docset","doxygen","sqlite3","zeal"],"latest_commit_sha":null,"homepage":"https://gitlab.com/vedvyas/doxytag2zealdb","language":"Python","has_issues":false,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/vedvyas.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"COPYING","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2016-07-07T02:52:25.000Z","updated_at":"2024-05-27T13:19:58.000Z","dependencies_parsed_at":"2022-09-13T15:40:44.816Z","dependency_job_id":null,"html_url":"https://github.com/vedvyas/doxytag2zealdb","commit_stats":null,"previous_names":[],"tags_count":7,"template":false,"template_full_name":null,"purl":"pkg:github/vedvyas/doxytag2zealdb","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vedvyas%2Fdoxytag2zealdb","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vedvyas%2Fdoxytag2zealdb/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vedvyas%2Fdoxytag2zealdb/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vedvyas%2Fdoxytag2zealdb/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/vedvyas","download_url":"https://codeload.github.com/vedvyas/doxytag2zealdb/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vedvyas%2Fdoxytag2zealdb/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":266253498,"owners_count":23900051,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["dash-docset","docset","doxygen","sqlite3","zeal"],"created_at":"2024-08-08T17:01:08.188Z","updated_at":"2025-07-21T06:30:55.090Z","avatar_url":"https://github.com/vedvyas.png","language":"Python","funding_links":[],"categories":["Python"],"sub_categories":[],"readme":"doxytag2zealdb\n==============\n\ndoxytag2zealdb creates a SQLite3 database from a Doxygen tag file to enable\nsearchable Doxygen docsets with categorized entries in tools like\n[helm-dash][1], [Zeal][2], and [Dash][3].\n\n## Introduction ##\n\n[Doxygen's `GENERATE_DOCSET`][4] configuration option does most of the work to\nget a usable docset for use with helm-dash and friends. However, one still has\nto write a SQLite3 database to facilitate searching and browsing by entry type.\n\ndoxytag2zealdb uses [Beautiful Soup][5] to traverse Doxygen tag files, then\nextracts and prepares entries to write to the DB as suggested in the\n[Dash guide on generating docsets][6]. By default, it also updates\n`Info.plist`, which is expected to be one directory-level up from the output\nDB, to indicate that a Dash-style docset index is used (for Dash users). This\ncan be disabled by specifying `--dont-update-info-plist`.\n\ndoxytag2zealdb has been developed against the Doxygen tag file output for a few\nC++ codebases. At present:\n\n- Several Doxygen tag file entry types are mapped to their corresponding docset\n  entry types. There may be more mapping opportunities to the [entry types][7]\n  in the docset generation guide.\n\n- There are command-line options to include function arguments and return types\n  in entry names (e.g., `some_func(int \u0026output, const double input) -\u003e bool` by\n  specifying `--include-function-signatures`) and include the parent scope in\n  entry names for class/struct/namespace members (e.g., `SomeClass::Method` by\n  specifying `--include-parent-scopes`). These options can be combined.\n\n## Requirements ##\n\nPython 2.7 or Python 3 with `beautifulsoup4` (4.4.1), `lxml` (3.6.0), and\n`docopt` (0.6.2)\n\n## Installation ##\n\nThe `doxytag2zealdb` module can be executed directly from a repository\nclone or extracted source tarball, provided that the requirements are\ninstalled, using `python -m doxytag2zealdb`.\n\nAlternatively, one may may run `setup.py` (`python setup.py install`) or\ninstall from PyPI (`pip install [--user] [--upgrade] doxytag2zealdb`). Note\nthat the entrypoint is simply `doxytag2zealdb` when installing via these\nmethods.\n\n## Typical Usage ##\n\n1. Suppose you have a project named `foo` with Doxygen configuration in\n   `foo.dox`. As suggested in the\n   [Doxygen section of the Dash docset guide][8], at least make sure\n   `GENERATE_DOCSET = yes` in `foo.dox`. Ensure HTML output is enabled and\n   also specify tag file generation with\n   `GENERATE_TAGFILE = /path/to/desired/foo.tag`. You may wish to further\n   customize `DOCSET_BUNDLE_ID` (which controls the name of the docset\n   subdirectory), other `DOCSET_*` options, and the other options mentioned in\n   the guide.\n\n2. If the top-level Doxygen output directory is `output`, go to `output/html/`\n   and run `make`. An error about missing `docsetutil` is fine (and expected\n   when not using macOS and an old-enough Xcode install). Also,\n   `output/html/$(DOCSET_BUNDLE_ID).docset/Contents/Info.plist` [should have\n   the `isDashDocset` key set to `true`][9]. doxytag2zealdb will do this\n   automatically; additionally pass `--dont-update-info-plist` in the next step\n   if this is not desired.\n\n3. The SQLite DB is expected to be named `docSet.dsidx` and placed in the\n   directory `output/html/$(DOCSET_BUNDLE_ID).docset/Contents/Resources/`,\n   where `$(DOCSET_BUNDLE_ID)` may be something like `org.doxygen.Project` if\n   left uncustomized in `foo.dox`. This is where doxytag2zealdb comes in:\n   \n        [python -m] doxytag2zealdb --tag /path/to/desired/foo.tag \\\n          --db /path/to/output/html/$(DOCSET_BUNDLE_ID).docset/Contents/Resources/docSet.dsidx \\\n          --include-parent-scopes --include-function-signatures\n\n4. After adding an icon and whatever else,\n   `output/html/$(DOCSET_BUNDLE_ID).docset` should be ready to use with the\n   tool of your choice.\n\n## Extending It ##\n\nThere are multiple ways to extend doxytag2zealdb's behavior:\n\n- Options can be added to existing `TagProcessor`s. See `TagProcessor` and\n  `functionTagProcessor` for examples of this. Also see how keyword arguments\n  get passed around from `doxytag2zealdb.py` to `TagfileProcessor` to\n  `TagProcessor`s and their superclasses.\n\n- One can subclass `TagProcessor` (or one of its existing child classes) to\n  handle a new tag case. Then add it to the registrations in\n  `TagfileProcessor.init_tag_processors()` or separately register it at\n  runtime, if you like.\n\n- Command-line options are easily added using [docopt][10]. See the module\n  docstring and code in `doxytag2zealdb.py`.\n\n- ...\n\n## Contributing ##\n\nPlease file issues and submit pull (merge) requests upstream at\n\u003chttps://gitlab.com/vedvyas/doxytag2zealdb\u003e.\n\n## License ##\n\ndoxytag2zealdb is distributed under the terms of the GNU General Public License\nversion 3 or (at your option) any later version. Please see COPYING.\n\n[1]: https://github.com/areina/helm-dash\n[2]: https://github.com/zealdocs/zeal\n[3]: https://kapeli.com/dash\n[4]: http://www.stack.nl/~dimitri/doxygen/manual/config.html#cfg_generate_docset\n[5]: https://www.crummy.com/software/BeautifulSoup\n[6]: https://kapeli.com/docsets#createsqlite\n[7]: https://kapeli.com/docsets#supportedentrytypes\n[8]: https://kapeli.com/docsets#doxygen\n[9]: https://kapeli.com/resources/Info.plist\n[10]: http://docopt.org\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvedvyas%2Fdoxytag2zealdb","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fvedvyas%2Fdoxytag2zealdb","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvedvyas%2Fdoxytag2zealdb/lists"}