{"id":13471165,"url":"https://github.com/tmcw/docbox","last_synced_at":"2025-05-15T15:09:21.644Z","repository":{"id":57213906,"uuid":"53007065","full_name":"tmcw/docbox","owner":"tmcw","description":"REST API documentation generator","archived":false,"fork":false,"pushed_at":"2020-04-21T21:08:24.000Z","size":196,"stargazers_count":1136,"open_issues_count":6,"forks_count":189,"subscribers_count":25,"default_branch":"master","last_synced_at":"2025-03-31T21:43:36.756Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"CSS","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"isc","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/tmcw.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2016-03-03T00:27:53.000Z","updated_at":"2025-03-31T00:47:40.000Z","dependencies_parsed_at":"2022-08-31T18:01:12.763Z","dependency_job_id":null,"html_url":"https://github.com/tmcw/docbox","commit_stats":null,"previous_names":[],"tags_count":11,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tmcw%2Fdocbox","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tmcw%2Fdocbox/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tmcw%2Fdocbox/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tmcw%2Fdocbox/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/tmcw","download_url":"https://codeload.github.com/tmcw/docbox/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247737770,"owners_count":20987718,"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":[],"created_at":"2024-07-31T16:00:40.890Z","updated_at":"2025-04-07T22:04:26.092Z","avatar_url":"https://github.com/tmcw.png","language":"CSS","readme":"\u003cp align='center'\u003e\u003cimg src='https://c1.staticflickr.com/5/4786/26869034328_9ff90bf2ac.jpg' width=250\u003e\n\t\u003cbr /\u003edocbox\u003c/p\u003e\n\t\n[![Circle CI](https://circleci.com/gh/tmcw/docbox.svg?style=shield)](https://circleci.com/gh/tmcw/docbox)\n\n**Docbox is an open source REST API documentation system.** It takes structured Markdown files and generates a friendly two-column layout with navigation, permalinks, and examples. The documentation source files that Docbox uses are friendly for documentation authors and free of presentational code: it's Markdown.\n\n[![](https://farm2.staticflickr.com/1534/24963539843_e26a00b3e1_b.jpg)](https://67-53007065-gh.circle-artifacts.com/0/tmp/circle-artifacts.NCC9T6a/index.html#our-api)\n\n_[Demo documentation](https://67-53007065-gh.circle-artifacts.com/0/tmp/circle-artifacts.NCC9T6a/index.html#our-api)_\n\n**Docbox is a JavaScript application written with React.** The core magic is thanks to the [remark](http://remark.js.org/) Markdown parser, which enables the layout: after parsing a file into an [Abstract Syntax Tree](https://en.wikipedia.org/wiki/Abstract_syntax_tree), we can move examples to the right, prose to the left, and build the navigation system.\n\n**It has a supercharged test suite**. Our tests check for everything from broken links to invalid examples and structure problems: this way, the application is only concerned with output and you can proactively enforce consistency and correctness. We even extract JavaScript examples from documentation and test them with [eslint](http://eslint.org/)\n\n**When you're ready to ship**, Docbox's `build` task minifies JavaScript and uses React's server rendering code to make documentation indexable for search engines and viewable without JavaScript.\n\n## Writing Documentation\n\nDocumentation is written as Markdown files in the `content` directory, and is organized by the `src/custom/content.js` file - that file requires each documentation page and puts them in order. This demo has a little bit of content - [content/example.md](content/example.md) and [content/introduction.md](content/introduction.md), so that there's an example to follow.\n\n## Testing-driven\n\nDocbox's test suite is an integral part of the design: it's designed to catch any error that would produce invalid documentation and also designed to be extended with custom rules for your documentation standards. Remember to run `npm test` if anything looks funky, and if you have a standard you want to enforce, to enforce it automatically by writing a test!\n\n## Customization\n\nAll custom code - code that relates to brands and specifics of APIs - is in the `./src/custom` directory. Content is [src/custom/content.js](custom/content.js) and brand names \u0026 tweaks are in [src/custom/index.js](src/custom/index.js), with inline documentation for both.\n\n## Development\n\nWe care about the ease of writing documentation. Docbox comes with batteries included: after you `npm install` the project, you can run `npm start` and its development server, [budo](https://github.com/mattdesl/budo), will serve the website locally and update automatically.\n\n### Requirements\n\n* Node v4 or higher\n* NPM\n* Git\n\nTo run the site locally:\n\n1. Clone this repository\n2. `git clone https://github.com/tmcw/docbox.git`\n3. `npm install`\n4. `npm start`\n5. Open http://localhost:9966/\n\n## Tests\n\nTests cover both the source code of Docbox as well as the content in the `content/` directory.\n\nTo run tests:\n\n1. Clone this repository\n2. `git clone https://github.com/tmcw/docbox.git`\n3. `npm install`\n4. `npm test`\n\n\n## Deployment\n\nThe `npm run build` command builds a `bundle.js` file that contains all the JavaScript code and content needed to show the site, and creates an `index.html` file that already contains the site content. Note that this _replaces_ the existing `index.html` file, so it's best to run this only when deploying the site and to undo changes to `index.html` if you want to keep working on content.\n\n1. Clone this repository\n2. `git clone https://github.com/tmcw/docbox.git`\n3. `npm install`\n4. `npm run build`\n\n---\n\n### Using docbox\n\n* [Mapbox API Documentation](https://www.mapbox.com/api-documentation/)\n* Mapillary uses docbox for [API Documentation](https://www.mapillary.com/developer/api-documentation/) and [Tiles Documentation](https://www.mapillary.com/developer/tiles-documentation/)\n* The open source [Project OSRM](http://project-osrm.org/docs/v5.10.0/api/#general-options) routing engine uses Docbox for its API documentation.\n* [8th Wall](https://docs.8thwall.com/) uses Docbox for the documentation of their AR product\n* [HYCON](https://docs.hycon.io/#introduction) documents their REST API for a blockchain with Docbox\n* _[do you use docbox? let us know!](https://github.com/tmcw/docbox/issues/new?title=I%27m%20using%20docbox!)_\n\n### [FAQ \u0026 See Also](https://github.com/mapbox/docbox/wiki)\n\nProps to [Tripit's Slate project](https://github.com/tripit/slate), which served\nas the inspiration for Docbox's layout. We also maintain a [list of similar projects](https://github.com/tmcw/docbox/wiki).\n","funding_links":[],"categories":["API Documentation","CSS","API Docs","others","Open Source Tools","Documentation"],"sub_categories":[".NET","Free",".Dart"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftmcw%2Fdocbox","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftmcw%2Fdocbox","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftmcw%2Fdocbox/lists"}