All Projects → s-panferov → tygen

s-panferov / tygen

Licence: MIT license
Modern documentation generator for TypeScript built with ReactJS

Programming Languages

typescript
32286 projects
CSS
56736 projects
javascript
184084 projects - #8 most used programming language

Projects that are alternatives of or similar to tygen

ank
ΛNK: Compile time docs verification and evaluation for Kotlin and Java (Temporarily moved to Arrow-kt)
Stars: ✭ 52 (+126.09%)
Mutual labels:  documentation-tool, documentation-generator
Nbdev
Create delightful python projects using Jupyter Notebooks
Stars: ✭ 3,061 (+13208.7%)
Mutual labels:  documentation-tool, documentation-generator
Redoc
📘 OpenAPI/Swagger-generated API Reference Documentation
Stars: ✭ 15,935 (+69182.61%)
Mutual labels:  documentation-tool, documentation-generator
live-documenter
.NET documentation generator and live reader. Generate documentation from .NET code and xml comments, fast, quick and easy.
Stars: ✭ 64 (+178.26%)
Mutual labels:  documentation-tool, documentation-generator
NextBook
NextBook is quick and easy way to build technical books or documentation with markdown that run blazingly fast.
Stars: ✭ 153 (+565.22%)
Mutual labels:  documentation-tool, documentation-generator
Nbdev template
Template for nbdev projects
Stars: ✭ 161 (+600%)
Mutual labels:  documentation-tool, documentation-generator
Ford
Automatically generates FORtran Documentation from comments within the code.
Stars: ✭ 245 (+965.22%)
Mutual labels:  documentation-tool, documentation-generator
Drf Autodocs
Ultimately automated DRF documentation rendering(UNMAINTAINED)
Stars: ✭ 82 (+256.52%)
Mutual labels:  documentation-tool, documentation-generator
numpydoc.el
Insert NumPy style docstrings in Python functions.
Stars: ✭ 33 (+43.48%)
Mutual labels:  documentation-tool, documentation-generator
BooGi
Generate GitBook-like modern docs/tutorial websites using Gatsby
Stars: ✭ 117 (+408.7%)
Mutual labels:  documentation-tool, documentation-generator
Documentalist
📝 A sort-of-static site generator optimized for living documentation of software projects
Stars: ✭ 130 (+465.22%)
Mutual labels:  documentation-tool, documentation-generator
badge-generator
Magically generate Markdown badges for your docs 🛡️ 🦡 🧙
Stars: ✭ 104 (+352.17%)
Mutual labels:  documentation-tool, documentation-generator
Naturaldocs
Natural Docs source code documentation system
Stars: ✭ 106 (+360.87%)
Mutual labels:  documentation-tool, documentation-generator
newdoc
The newdoc tool generates files formatted with AsciiDoc, which are used in Red Hat documentation.
Stars: ✭ 14 (-39.13%)
Mutual labels:  documentation-tool, documentation-generator
Dox
Haxe documentation generator.
Stars: ✭ 98 (+326.09%)
Mutual labels:  documentation-tool, documentation-generator
Dart
DART is a test documentation tool created by the Lockheed Martin Red Team to document and report on penetration tests, especially in isolated network environments.
Stars: ✭ 207 (+800%)
Mutual labels:  documentation-tool, documentation-generator
Jsdoc To Markdown
Generate markdown documentation from jsdoc-annotated javascript
Stars: ✭ 1,199 (+5113.04%)
Mutual labels:  documentation-tool, documentation-generator
Graphdoc
Static page generator for documenting GraphQL Schema
Stars: ✭ 1,218 (+5195.65%)
Mutual labels:  documentation-tool, documentation-generator
strictdoc
Software for writing technical requirements specifications.
Stars: ✭ 80 (+247.83%)
Mutual labels:  documentation-tool, documentation-generator
cutedoc
Generate stunning documentation for any project using simple markdown files.
Stars: ✭ 16 (-30.43%)
Mutual labels:  documentation-tool, documentation-generator

TyGen — TypeScript documentation generator

Gitter Build Status

This project aims to create a full-featured modern TypeScript documentation generator with support of all the latest TypeScript features. It can build an interlinked representation of all project files, so every symbol of your program (and your dependencies) is inspectable, even those dependencies in @types/* packages.

Big goals:

  1. Full-featured static/dynamic TypeScript documentation generator.
  2. Special support for ReactJS/Angular/Vue projects.
  3. All-in-one documentation portal: tsdoc.io

Donation request

This project has very ambitious goals, but demands a lot of attention and hard work to make things right. I need to invest tons of my free time and right now this project is supported solely by my enthusiasm.

We all know that maintaining an open source project is a HARD work. Enthusiasm burns out and does not last forever (especially after you get your first 100 bug reports without a proper description and reproduction steps), but money can motivate you for years. And this is why I ask you to consider a donation if you're interested me to continue this work.

Patreon donate button

Example output

Just visit tsdoc.io and search for a package you're interested in.

Work in progress

This project is an active development phase, so please expect it to change rapidly and break often.

Install

You can use npm or yarn to install tygen. This project consists of several different packages with different purposes:

  • Package @tygen/reflector contains code to reflect TypeScript internal program representation into a set of JSON reflections.
  • Package @tygen/html helps to pre-render JSON reflections into a static HTML or serve them as a web-server. This package written as a modern frontend application in ReactJS and server-side rendering.
yarn add --dev @tygen/reflector @tygen/html

Use

tygen has several binaries to help you to generate/serve reflections and a documentation.

If you want all-in-one command to generate ready-to-serve static HTML documentation:

yarn exec -- tygen generate --project=. --out=docs --with=@tygen/html

First argument of the tygen --project <source> command should point to a folder with a tsconfig.json file. tygen will compile your project with TypeScript compiler and then generate reflections and HTML files.

Please take note:

  1. tygen can generate documentation only for well-typed projects (with no compilation errors).
  2. HTML compilation can take some time, tygen is not optimized for performance yet.

Result documentation can be served as static files with any capable web server or opened as file:// resource in your browser.

What is supported

TypeScript > 3.0 is supported. I cannot guarantee backward compatibility at this stage, so expect this project to support only several most recent TypeScript versions.

How to contribute

Right now the best way to contribute is to:

  1. Help to provide better and more comprehensive reflections in @tygen/reflector package.

  2. Propose a better UX/design, because current one is very basic.

  3. Help to deal with potential crashes.

  4. Help to write tests. This may potentially help to become backward-compatible in the future. This projects does not have tests yet. This is an informed decision, I want to concentrate on functionality first.

How to build

To run this stuff in development mode:

  1. Run yarn install
  2. Open 3 different terminal tabs: 1.1 Run yarn exec server-watch 1.1 Run yarn exec client-watch 1.1 Run yarn exec tsc -- -b --watch
  3. Generate example reflections by running:
node ./packages/tygen-reflector/lib/cli.js reflect --project=examples/simple --out=docs --write-inventory

My vscode debugging configuration:

{
	"name": "Reflect example",
	"type": "node",
	"request": "launch",
	"runtimeExecutable": "${workspaceRoot}/roarr.sh",
	"program": "${workspaceRoot}/packages/tygen-reflector/lib/cli.js",
	"args": [
		"reflect",
		"--project",
		"examples/simple",
		"--out",
		"docs",
		"--include-external",
		"--include-libs",
		"--enable-search",
		"--write-inventory"
	],
	"cwd": "${workspaceRoot}/",
	"runtimeArgs": ["--nolazy", "--stack_size=90000"],
	"sourceMaps": true,
	"protocol": "inspector",
	"stopOnEntry": false,
	"outputCapture": "std",
	"env": {
		"NODE_ENV": "development",
		"ROARR_LOG": "true"
	}
}
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].