{"id":13494037,"url":"https://github.com/hdoc/hdoc","last_synced_at":"2025-03-28T13:31:59.759Z","repository":{"id":42085150,"uuid":"350397519","full_name":"hdoc/hdoc","owner":"hdoc","description":"The modern documentation tool for C++.","archived":false,"fork":false,"pushed_at":"2024-04-09T20:24:20.000Z","size":11574,"stargazers_count":302,"open_issues_count":15,"forks_count":22,"subscribers_count":6,"default_branch":"master","last_synced_at":"2024-08-01T19:48:39.470Z","etag":null,"topics":["cpp","documentation-tool","doxygen"],"latest_commit_sha":null,"homepage":"https://hdoc.io/","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"agpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/hdoc.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2021-03-22T15:38:12.000Z","updated_at":"2024-07-30T04:58:21.000Z","dependencies_parsed_at":"2023-01-20T01:04:25.351Z","dependency_job_id":"f327b803-17a1-497e-951e-74b8ae356191","html_url":"https://github.com/hdoc/hdoc","commit_stats":null,"previous_names":[],"tags_count":12,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hdoc%2Fhdoc","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hdoc%2Fhdoc/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hdoc%2Fhdoc/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hdoc%2Fhdoc/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/hdoc","download_url":"https://codeload.github.com/hdoc/hdoc/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":222382387,"owners_count":16975376,"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":["cpp","documentation-tool","doxygen"],"created_at":"2024-07-31T19:01:21.116Z","updated_at":"2024-10-31T08:31:40.147Z","avatar_url":"https://github.com/hdoc.png","language":"C++","readme":"\u003ch1 align=\"center\"\u003e\n    \u003cimg\n        width=\"300\"\n        alt=\"hdoc logo\"\n        src=\"assets/icon.png\"\u003e\n\u003c/h1\u003e\n\n\u003ch3 align=\"center\"\u003e\n    hdoc: the modern documentation tool for C++\n\u003c/h3\u003e\n\nSee [hdoc.io](https://hdoc.io/) for more details.\nUsage documentation is hosted at [hdoc.io/docs](https://hdoc.io/docs).\n\n## An important notice about this repository\n\nThe contents of this repository are a subset of a private repository where hdoc's development takes place.\n\n## Overview and features\n\n* **Autogenerated API documentation.** hdoc generated API documentation for every function, record, enum, and namespace in your codebase.\n* **Integrated Markdown pages.** hdoc converts your Markdown pages into a website and puts it next to your API docs. All of your documentation is in one place.\n* **Instant codebase search.** Instant search-as-you-type lookup of symbols throughout your entire codebase.\n* **Easy CI integration.** Your documentation is never out of date if you build it with your code. All you need to do is add hdoc to your build job.\n* **Advanced C++ parser.** hdoc understands the newest C++ features with its advanced LLVM/Clang-based parser.\n* **Clean, fast output.** hdoc outputs fully static HTML with no required Javascript, ensuring your users never have to wait.\n\n## Quick start\n\n### Linux\n\nhdoc depends on LLVM/Clang and OpenSSL, and all other dependencies are vendored in `subprojects/`.\nhdoc also comes with a Nix Flake which sets up a development environment for you with all of the needed dependencies, and should work on all Linux distributions.\nFollow the instructions below to build hdoc.\n\n```sh\n# Build hdoc\nmeson build             # Configure the build directory\nninja -C build          # Compile hdoc binaries and tests\n./build/hdoc --verbose  # Run hdoc over itself, saving the HTML documentation to ./hdoc-output/\n```\n\nMore instructions for using hdoc can be found at [hdoc.io/docs](https://hdoc.io/docs).\n\n### Windows (Unofficial Support)\n\nWindows support for hdoc is unofficial and was contributed by [@yqs112358](https://github.com/yqs112358/).\nWindows is unofficially supported as the hdoc team does not use it for development.\nhdoc is not tested on Windows and no guarantee is made for its functionality there.\nHowever, the following instructions for compiling hdoc on Windows.\n\n`MSYS2` and `MinGW-w64-x86_64-gcc` must be installed in order to compile hdoc on Windows.\nOnce the prerequisites have been installed, follow the instructions below to build hdoc:\n\n```sh\n# Install dependent packages for MinGW\npacman -S groff\npacman -S unzip\npacman -S mingw-w64-x86_64-meson\npacman -S mingw-w64-x86_64-cmake\npacman -S mingw-w64-x86_64-clang\npacman -S mingw-w64-x86_64-clang-analyzer\npacman -S mingw-w64-x86_64-clang-tools-extra\n\n# Set PATH\nexport PATH=/mingw64/bin:/mingw64/lib:$PATH\t\t# You can also add this line into ~/.bashrc\n\n# Build hdoc\nmeson build             # Configure the build directory\nninja -C build          # Compile hdoc binaries and tests\n./build/hdoc --verbose  # Run hdoc over itself, saving the HTML documentation to ./hdoc-output/\n```\n\nReportedly, `hdoc-online.exe` does not currently work on Windows due to a linking problem.\nHowever, `hdoc.exe` should work.\n\n## Running tests\n\nhdoc has a suite of unit and integration tests, which can be run using the instructions below.\n\n```sh\n# Assumes you've already built hdoc\ncd build\n\n# Running indexing tests, unit tests, and JSON serialization/deserialization tests\n./hdoc-tests\n\n# Running integration tests\ncd ../tests/integration_tests\n./clone-corpus-repos.sh        # Pull testing repos from GitHub\n./test.sh                      # Run hdoc over testing repos\n```\n\n## Repository structure\n\n```\nhdoc\n├── assets       # Static HTML/CSS/Favicons used in the generated HTML docs\n├── schemas      # JSON schema for hdoc's JSON payload output\n├── site         # Source code for hdoc.io and hdoc's documentation\n├── src          # C++ source code\n│   ├── frontend   # Parses configuration file and CLI arguments\n│   ├── indexer    # Parses a codebase and extracts documentation from it into an index\n│   ├── serde      # Serialization/Deserialization of hdoc's index into HTML and other formats\n│   ├── support    # Ancillary code used to parallelize indexing\n│   └── types      # Types used by hdoc\n├── subprojects  # Vendored dependencies\n└── tests        # Testing code\n    ├── index-tests  # Unit tests of hdoc's indexing functionality\n    ├── integration-tests # Integration testing scripts\n    ├── json-tests   # Tests for JSON serialization and deserialization\n    └── unit-tests   # Unit tests for a small portion of hdoc's codebase\n```\n\n## Attribution\n\nhdoc relies on several open source software projects.\nWe thank all of the contributors to these projects for their work.\nThese are listed below in alphabetical order:\n- [argparse](https://github.com/p-ranav/argparse)\n- [Bulma](https://bulma.io/)\n- [Clang](https://clang.llvm.org/)\n- [cmark-gfm](https://github.com/github/cmark-gfm)\n- [cpp-httplib](https://github.com/yhirose/cpp-httplib)\n- [CTML](https://github.com/tinfoilboy/CTML)\n- [doctest](https://github.com/onqtam/doctest)\n- [highlight.js](https://github.com/highlightjs/highlight.js)\n- [KaTeX](https://github.com/KaTeX/KaTeX)\n- [LLVM](https://llvm.org/)\n- [minisearch](https://github.com/lucaong/minisearch)\n- [rapidjson](https://github.com/Tencent/rapidjson)\n- [spdlog](https://github.com/gabime/spdlog)\n- [toml++](https://marzer.github.io/tomlplusplus/)\n\nMore information, including licenses, can be found at [hdoc.io/oss](https://hdoc.io/oss/).\n\n## License\n\nhdoc is available under the AGPLv3 license, or a custom commercial license.\nFor more information about commercial licensing, reach out to [contact@hdoc.io](mailto:contact@hdoc.io).\n","funding_links":[],"categories":["Documentation","C++"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhdoc%2Fhdoc","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhdoc%2Fhdoc","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhdoc%2Fhdoc/lists"}