{"id":24130208,"url":"https://github.com/tsuberim/soldoc","last_synced_at":"2026-04-07T15:32:19.645Z","repository":{"id":57161443,"uuid":"121259318","full_name":"tsuberim/soldoc","owner":"tsuberim","description":"A documentation generator for solidity projects, inspired by TypeDoc.","archived":false,"fork":false,"pushed_at":"2018-03-18T14:30:12.000Z","size":169,"stargazers_count":6,"open_issues_count":12,"forks_count":4,"subscribers_count":2,"default_branch":"master","last_synced_at":"2026-01-02T16:46:34.648Z","etag":null,"topics":["documentation","documentation-generator","documentation-tool","ethereum","json","markdown","nodejs","npm","solidity","truffle"],"latest_commit_sha":null,"homepage":"https://www.npmjs.org/package/@soldoc/soldoc","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/tsuberim.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}},"created_at":"2018-02-12T14:51:25.000Z","updated_at":"2025-06-19T19:36:10.000Z","dependencies_parsed_at":"2022-09-09T09:51:39.123Z","dependency_job_id":null,"html_url":"https://github.com/tsuberim/soldoc","commit_stats":null,"previous_names":["dev-matan-tsuberi/soldoc"],"tags_count":26,"template":false,"template_full_name":null,"purl":"pkg:github/tsuberim/soldoc","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tsuberim%2Fsoldoc","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tsuberim%2Fsoldoc/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tsuberim%2Fsoldoc/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tsuberim%2Fsoldoc/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/tsuberim","download_url":"https://codeload.github.com/tsuberim/soldoc/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tsuberim%2Fsoldoc/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31518516,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-07T03:10:19.677Z","status":"ssl_error","status_checked_at":"2026-04-07T03:10:13.982Z","response_time":105,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":["documentation","documentation-generator","documentation-tool","ethereum","json","markdown","nodejs","npm","solidity","truffle"],"created_at":"2025-01-11T20:19:51.778Z","updated_at":"2026-04-07T15:32:19.626Z","avatar_url":"https://github.com/tsuberim.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# SolDoc\n\n[![NPM Package](https://img.shields.io/npm/v/@soldoc/soldoc.svg?style=flat-square)](https://www.npmjs.org/package/@soldoc/soldoc)\n\n\u003e A documentation generator for solidity projects, inspired by [TypeDoc](http://typedoc.org/).\n\n## Usage\n\nSolDoc can be used as a CLI app or as a library and called from your code.\n\n### As a CLI tool\n\n1. Install: `yarn global add @soldoc/soldoc` / `npm i -g @soldoc/soldoc`.\n2. Use the CLI:\n    ```\n    Usage: cli.js --in \u003cinput dir\u003e -o \u003cout dir\u003e\n\n    Options:\n    --help          Show help                                            [boolean]\n    --version       Show version number                                  [boolean]\n    --options       Path to JSON config file\n    --in            Specifies the location the input files should be read from.\n                                                [string] [default: \"./contracts\"]\n    --json, -j      Output the parsed information to a json file instead of\n                    rendering.                                            [string]\n    --out, -o       Specifies the location the documentation should be written to. [string] [default: \"./docs\"]\n    --quiet, -q     No stdout output                    [boolean] [default: false]\n    --theme, -t     Specifies a npm module that exports a default\n                    `render(filepath,contractName,contactInfo,options):\n                    {content,extension}` function\n                                            [string] [default: \"@soldoc/markdown\"]\n    --repo-url, -r  Specifies remote repository url. Uses `repository` field in\n                    `package.json` if available and not specified.        [string]\n    --log, -l       Specifies the location the log file should be written to.\n                                                                            [string]\n\n    Examples:\n    cli.js --in ./contracts -o ./docs  Render `.sol` files in `./contracts` into\n                                        `.docs`\n\n    For more information, visit https://github.com/dev-matan-tsuberi/soldoc\n    ```\n\n### As a library\n\n1. Install: `yarn add --dev @soldoc/soldoc` / `npm i --save-dev @soldoc/soldoc`.\n2. Import in your project as:\n    ```JavaScript\n    import soldoc from '@soldoc/soldoc';\n\n    /* default options */\n    soldoc.defaults = {\n        in: './contracts',\n        out: './docs',\n        /* json: undefined, */\n        /* repoUrl: undefined, */\n        /* log: undefined, */\n        quiet: false,\n        theme: '@soldoc/markdown',\n    };\n    soldoc(options); // returns a promise\n    ```\n\n## Themes\n\nSolDoc is easily themeable, installing a theme is as simple as `yarn add @soldoc/\u003ctheme\u003e` / `npm i --save @soldoc/\u003ctheme\u003e` and setting a configuration option:\n1. In the cli: `soldoc --theme @soldoc/\u003ctheme\u003e`.\n2. In code: `soldoc({theme: '@soldoc/\u003ctheme\u003e'})`.\n\nCurrently the official themes are:\n1. [![NPM Package](https://img.shields.io/npm/v/@soldoc/markdown.svg?style=flat-square)](https://www.npmjs.org/package/@soldoc/markdown) [@soldoc/markdown](packages/markdown) **\\*Default\\*** - A simple markdown theme.\n2. [![NPM Package](https://img.shields.io/npm/v/@soldoc/json.svg?style=flat-square)](https://www.npmjs.org/package/@soldoc/json) [@soldoc/json](packages/json)  - A theme that just outputs a JSON object.\n2. [Create a theme!](docs/create_a_theme.md)\n\nYou can pass custom options to `\u003ctheme\u003e` under it's name, example:\n\noptions.json\n```\n{\n    ...\n    \"theme\": \"@soldoc/markdown\",\n    \"@soldoc/markdown\": {\n       ...\n    }\n}\n```\n\n## Contribute\n\nGet started:\n\n1. `git clone git@github.com:dev-matan-tsuberi/soldoc.git \u0026\u0026 cd soldoc`\n2. `yarn`\n3. `yarn lerna bootstrap`\n4. Done.\n\n**Note**: This project is managed as a **monorepo** and uses [lerna.js](https://lernajs.io/).\n\nThis project needs contributors!\nPull requests are very welcome and needed.\nCheck out [issues with label `help wanted`](https://github.com/dev-matan-tsuberi/soldoc/issues?q=is%3Aopen+is%3Aissue+label%3A%22help+wanted%22) to get started.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftsuberim%2Fsoldoc","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftsuberim%2Fsoldoc","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftsuberim%2Fsoldoc/lists"}