{"id":21195590,"url":"https://github.com/openpeeps/marvdown","last_synced_at":"2026-03-19T19:15:58.474Z","repository":{"id":168757707,"uuid":"458632197","full_name":"openpeeps/marvdown","owner":"openpeeps","description":"This is Marvdown ⚡️ A stupid simple Markdown parser, cli app \u0026 native addon for NodeJS / Bun. 👑 Written in Nim language","archived":false,"fork":false,"pushed_at":"2024-11-18T21:17:35.000Z","size":417,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-01-21T14:15:38.897Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Nim","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/openpeeps.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-02-12T20:30:12.000Z","updated_at":"2024-11-18T21:17:39.000Z","dependencies_parsed_at":null,"dependency_job_id":"0b16f88c-b9d1-4995-ba0a-a7292f5787af","html_url":"https://github.com/openpeeps/marvdown","commit_stats":null,"previous_names":["openpeeps/marvdown"],"tags_count":0,"template":false,"template_full_name":"openpeeps/pistachio","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/openpeeps%2Fmarvdown","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/openpeeps%2Fmarvdown/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/openpeeps%2Fmarvdown/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/openpeeps%2Fmarvdown/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/openpeeps","download_url":"https://codeload.github.com/openpeeps/marvdown/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243652711,"owners_count":20325607,"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-11-20T19:29:02.686Z","updated_at":"2025-12-29T20:59:04.990Z","avatar_url":"https://github.com/openpeeps.png","language":"Nim","funding_links":["https://www.paypal.com/donate/?hosted_button_id=RJK3ZTDWPL55C"],"categories":["Data"],"sub_categories":["Parsing"],"readme":"\u003cp align=\"center\"\u003e\n    \u003cimg src=\"https://raw.githubusercontent.com/openpeeps/marvdown/main/.github/marvdown-logo.png\" width=\"128px\"\u003e\u003cbr\u003e\n    This is Marvdown ⚡️ A stupid simple Markdown parser\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ccode\u003enimble install marvdown\u003c/code\u003e / \u003ccode\u003enpm install @openpeeps/marvdown\u003c/code\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://openpeeps.github.io/marvdown/\"\u003eAPI reference\u003c/a\u003e | \u003ca href=\"https://github.com/openpeeps/marvdown/releases\"\u003eDownload\u003c/a\u003e\u003cbr\u003e\u003cbr\u003e\n  \u003cimg src=\"https://github.com/openpeeps/marvdown/workflows/test/badge.svg\" alt=\"Github Actions\"\u003e \u003cimg src=\"https://github.com/openpeeps/marvdown/workflows/docs/badge.svg\" alt=\"Github Actions\"\u003e\n\u003c/p\u003e\n\n\u003e [!NOTE]  \n\u003e Marv is still in early development. Some features are not fully implemented yet. Contributions are welcome!\n\n## 😍 Key Features\n- [x] Extremely Fast \u0026 Lightweight! [Check benchmarks](#benchmarks)\n- [x] Compiled cross-platform CLI app\n- [x] Nim library for easy integration in your 👑 Nim projects\n- [x] Addon for Node.js JavaScript runtime via N-API\n- [x] Markdown to HTML\n  - [x] Auto-generate Table of Contents (ToC)\n  - [x] Auto-generate heading IDs for anchor links\n- [ ] Markdown to PDF\n- [x] Markdown to JSON (structured data)\n- [ ] GitHub Flavored Markdown (GFM)\n\n## About\nMarv is a stupid simple markdown parser written in [Nim](https://nim-lang.org). It can be used as a library in your Nim projects or as a CLI tool to convert markdown files to HTML. Currently, it supports basic markdown syntax like headings, paragraphs, bold, italic, links, images, lists, blockquotes, code blocks and inline code.\n\n## Installing\n\nInstall Marvdown via [Nimble](https://nim-lang.org/docs/nimble.html)\n```\nnimble install marvdown\n```\n\nFor Node.js install Marvdown via [npm](https://www.npmjs.com/package/@openpeeps/marvdown)\n\nA GitHub action will build the binary CLI app and Node.js addon evertime a new release is published. Download the latest version of Marvdown from the [Github releases page](https://github.com/openpeeps/marvdown/releases).\n\n## Example Usage\nUsing Marvdown from the command line is super easy. Just run:\n```\nmarvdown html sample.md --optAnchors --bench\n```\nEnable anchor generations for headings with `--optAnchors` flag. Run benchmarks with `--bench` flag.\n\n### Programming with Marvdown\n\nIn Nim language the fastest way to convert markdown to HTML is to use the `toHtml()` proc.\n```nim\nimport marvdown\n\necho marvdown.toHtml(readFile(\"sample.md\"))\n```\n\nIn JavaScript or TypeScript you can load the N-API addon and use the `toHtml()` function.\n```js\nconst fs = require('fs');\nconst marvdown = require('@openpeeps/marvdown')\n\nlet output = marvdown.toHtml(fs.readFileSync('sample.md', 'utf8'))\nconsole.log(output)\n```\n\n_todo: example of custom options_\n\nFor more examples, see the [/examples folder](#). Also check out the [API reference](https://openpeeps.github.io/marvdown/) for more details 👌\n\n### Benchmarks\nMarvdown is super fast! It can parse large markdown files in milliseconds. Here is a quick benchmark\nover 100K lines of markdown text (~5.3 MB)\n\n```\nBenchmark 1: marvdown html bigdoc.md\n  Time (abs ≡):        188.1 ms               [User: 166.9 ms, System: 19.8 ms]\n```\n\n_Benchmark made with [hyperfine](https://github.com/sharkdp/hyperfine)_\n\n### ❤ Contributions \u0026 Support\n- 🐛 Found a bug? [Create a new Issue](https://github.com/openpeeps/marvdown/issues)\n- 👋 Wanna help? [Fork it!](https://github.com/openpeeps/marvdown/fork)\n- 😎 [Get €20 in cloud credits from Hetzner](https://hetzner.cloud/?ref=Hm0mYGM9NxZ4)\n- 🥰 [Donate to OpenPeeps via PayPal address](https://www.paypal.com/donate/?hosted_button_id=RJK3ZTDWPL55C)\n\n### Credits\nOriginal illustration made by 💙 [Olha](https://www.deviantart.com/jo316) remixed with Sora.\n\n### 🎩 License\n**Marv** | [MIT License](https://github.com/openpeeps/marvdown/blob/main/LICENSE).\n[Made by Humans from OpenPeeps](https://github.com/openpeeps).\u003cbr\u003e\nCopyright \u0026copy; 2024 OpenPeeps \u0026 Contributors \u0026mdash; All rights reserved.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fopenpeeps%2Fmarvdown","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fopenpeeps%2Fmarvdown","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fopenpeeps%2Fmarvdown/lists"}