rejectedsoftware / Ddox

Licence: other
Advanced D documentation engine

Programming Languages

dlang
54 projects

Projects that are alternatives of or similar to Ddox

Pydoc Markdown
Create Python API documentation in Markdown format.
Stars: ✭ 273 (+378.95%)
Mutual labels:  documentation-generator
Fastcore
Python supercharged for the fastai library
Stars: ✭ 565 (+891.23%)
Mutual labels:  documentation-generator
Samovar
Stars: ✭ 23 (-59.65%)
Mutual labels:  documentation-generator
Sourcedocs
Generate Markdown documentation from source code
Stars: ✭ 286 (+401.75%)
Mutual labels:  documentation-generator
Documenter.jl
A documentation generator for Julia.
Stars: ✭ 384 (+573.68%)
Mutual labels:  documentation-generator
Pdoc
🐍 ➡️ 📜 Auto-generate API documentation for Python projects
Stars: ✭ 604 (+959.65%)
Mutual labels:  documentation-generator
insomnia-plugin-documenter
Export Insomnia workspace HTML documentation.
Stars: ✭ 23 (-59.65%)
Mutual labels:  documentation-generator
Bsdoc
📚 Documentation Generator for BuckleScript
Stars: ✭ 43 (-24.56%)
Mutual labels:  documentation-generator
Drf Spectacular
Sane and flexible OpenAPI 3 schema generation for Django REST framework.
Stars: ✭ 414 (+626.32%)
Mutual labels:  documentation-generator
Apidoc
RESTful API 文档生成工具,支持 Go、Java、Swift、JavaScript、Rust、PHP、Python、Typescript、Kotlin 和 Ruby 等大部分语言。
Stars: ✭ 785 (+1277.19%)
Mutual labels:  documentation-generator
Insomnia Documenter
Tool to create minimalist and beautiful API documentation pages using your Insomnia workspace export file.
Stars: ✭ 284 (+398.25%)
Mutual labels:  documentation-generator
Test2doc
Generate documentation for your REST/HTTP API from your Go unit tests
Stars: ✭ 327 (+473.68%)
Mutual labels:  documentation-generator
Wowchemy Hugo Modules
🔥 Hugo website builder, Hugo themes & Hugo CMS. No code, build with widgets! 创建在线课程,学术简历或初创网站。
Stars: ✭ 6,093 (+10589.47%)
Mutual labels:  documentation-generator
Literate.jl
Simple package for literate programming in Julia
Stars: ✭ 272 (+377.19%)
Mutual labels:  documentation-generator
Pdoc
API Documentation for Python Projects
Stars: ✭ 853 (+1396.49%)
Mutual labels:  documentation-generator
Doxyrest
A compiler from Doxygen XML to reStructuredText -- hence, the name. It parses XML databases generated by Doxygen and produces reStructuredText for the Python documentation generator Sphinx.
Stars: ✭ 265 (+364.91%)
Mutual labels:  documentation-generator
Daux.io
Daux.io is an documentation generator that uses a simple folder structure and Markdown files to create custom documentation on the fly. It helps you create great looking documentation in a developer friendly way.
Stars: ✭ 603 (+957.89%)
Mutual labels:  documentation-generator
App
Fast and searchable Ruby docs
Stars: ✭ 47 (-17.54%)
Mutual labels:  documentation-generator
Hawkmoth
Hawkmoth - Sphinx Autodoc for C
Stars: ✭ 31 (-45.61%)
Mutual labels:  documentation-generator
Gatsby Gitbook Starter
Generate GitBook style modern docs/tutorial websites using Gatsby + MDX
Stars: ✭ 700 (+1128.07%)
Mutual labels:  documentation-generator

DDOX documentation engine

This is an alternative documentation generator for programs written in the D programming language. It aims to be fully compatible with Ddoc (the documentation generator built into the D compiler). Additional features include:

  • Advanced page-per-symbol layout based on Diet templates
  • Full automatic cross-referencing
  • Automatically generated index, search database and site map
  • Filtering of symbols and modules based on their name and protection level
  • Integrated web server for fast local documentation serving
  • Directly embeddable into vibe.d applications

For real world examples see the vibe.d API documentation and the D standard library documentation.

Build Status

First steps

  1. Install dub
  2. Generate JSON for your project by adding the command line switches -D -X -Xfdocs.json to your DMD command line (Note that you may need to clean up all the generated .html files afterwards)
  3. Check out ddox and run dub build from its root folder

Note that DDOX uses vibe.d, which currently by default uses libevent as its core. Please follow its installation instructions, too, if necessary.

Filtering docs

You can filter the JSON file using ddox filter <path_to_json>.

The following command will filter out all modules starting with "core.sync.", except those starting with "core.sync.mutex" or "core.sync.condition". --in always takes precedence over --ex here. Additionally, all members with a protection lower than public will be filtered out.

./ddox filter path/to/docs.json --ex core.sync. --in core.sync.mutex --in core.sync.condition --min-protection Public

Serving the docs on localhost

Ensure your current working directory contains ddox's directory "public", or a modified version of it (otherwise the CSS stylings and JavaScript extras won't work).

cd path/to/ddox

Then, simply run the following command and go to http://127.0.0.1:8080/

./ddox serve-html path/to/docs.json

Generating offline documentation

The following commands will generate HTML docs (along with the default CSS stylings and JavaScript extras) in the folder "destination/path/public":

cp -r path/to/ddox/public destination/path
./ddox generate-html path/to/docs.json destination/path/public

Built-in support in DUB

Documentation for DUB projects can be built as simple as by running the following command within the project's directory:

dub build -b ddox

The "-ddoxFilterArgs" field in dub.json (resp. x:ddoxFilterArgs in dub.sdl) can be used to customize the included contents.

Quickly serving the documentation on a local HTTP server, which is usually faster than writing out all HTML files to disk, is also possible:

dub run -b ddox

DDOX specific Ddoc macros

Apart from the standard set of predefined macros, DDOX defines a macro DDOX_ROOT_DIR, which contains the relative path to the root of the documentation hierarchy (ending with a slash). It can be used to link to resources that reside in a fixed location within the same directory tree.

Known issues

There are a number of issues due to limitations of the JSON output that DMD generates:

  • User defined attributes don't show up in the documentation (issue #6)
  • Declarations within static if are not shown (issues #19 and #86)
  • Modules without a documented module declaration are omitted (issues #164 and #10)
  • Some declarations with complex types may fail to parse and will be missing proper cross linking
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].