{"id":13583527,"url":"https://github.com/breakdance/breakdance","last_synced_at":"2025-05-15T18:07:27.913Z","repository":{"id":46670245,"uuid":"80587548","full_name":"breakdance/breakdance","owner":"breakdance","description":"It's time for your markup to get down! HTML to markdown converter. Breakdance is a highly pluggable, flexible and easy to use.","archived":false,"fork":false,"pushed_at":"2022-05-24T21:39:01.000Z","size":1748,"stargazers_count":531,"open_issues_count":16,"forks_count":31,"subscribers_count":23,"default_branch":"master","last_synced_at":"2025-04-07T23:07:55.690Z","etag":null,"topics":["commonmark","compile","convert","converter","gfm","html","html-to-markdown","markdown","markdown-it","marked","markup","parse","remarkable","render","to-markdown","turndown"],"latest_commit_sha":null,"homepage":"https://breakdance.github.io/breakdance/","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/breakdance.png","metadata":{"files":{"readme":"README.md","changelog":"changelog.md","contributing":".github/contributing.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2017-02-01T03:52:24.000Z","updated_at":"2025-03-05T09:38:24.000Z","dependencies_parsed_at":"2022-09-07T01:23:07.441Z","dependency_job_id":null,"html_url":"https://github.com/breakdance/breakdance","commit_stats":null,"previous_names":[],"tags_count":13,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/breakdance%2Fbreakdance","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/breakdance%2Fbreakdance/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/breakdance%2Fbreakdance/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/breakdance%2Fbreakdance/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/breakdance","download_url":"https://codeload.github.com/breakdance/breakdance/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254394722,"owners_count":22063984,"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":["commonmark","compile","convert","converter","gfm","html","html-to-markdown","markdown","markdown-it","marked","markup","parse","remarkable","render","to-markdown","turndown"],"created_at":"2024-08-01T15:03:33.303Z","updated_at":"2025-05-15T18:07:27.860Z","avatar_url":"https://github.com/breakdance.png","language":"JavaScript","funding_links":[],"categories":["JavaScript","Github Repositories"],"sub_categories":["HTML stuff"],"readme":"# breakdance [![NPM version](https://img.shields.io/npm/v/breakdance.svg?style=flat)](https://www.npmjs.com/package/breakdance) [![NPM monthly downloads](https://img.shields.io/npm/dm/breakdance.svg?style=flat)](https://npmjs.org/package/breakdance)  [![NPM total downloads](https://img.shields.io/npm/dt/breakdance.svg?style=flat)](https://npmjs.org/package/breakdance) [![Build Status](https://img.shields.io/travis/breakdance/breakdance.svg?style=flat)](https://travis-ci.org/breakdance/breakdance)\n\n\u003e Breakdance is a node.js library for converting HTML to markdown. Highly pluggable, flexible and easy to use. It's time for your markup to get down.\n\nBreakdance is a node.js library for converting HTML to markdown. You can use breakdance to:\n\n* Migrate HTML blog posts to markdown\n* Convert wiki pages to markdown\n* Convert HTML documentation to markdown\n* Convert HTML presentations or slide decks to markdown\n* Convert busy web pages into readable markdown documents.\n\nVisit [our website](https://breakdance.github.io/breakdance/index.html) for [detailed documentation](https://breakdance.github.io/breakdance/docs.html), [examples](https://breakdance.github.io/breakdance/examples.html), [recipes](https://breakdance.github.io/breakdance/recipes.html), and advice on [authoring and finding plugins](https://breakdance.github.io/breakdance/plugins.html).\n\n## Why should I use breakdance?\n\nBreakdance uses [cheerio](https://github.com/cheeriojs/cheerio) to parse HTML, and [snapdragon](https://github.com/jonschlinkert/snapdragon) for rendering, which provides granular control over the entire conversion process in a way that is easy to understand, reason about, and [customize](https://breakdance.github.io/breakdance/plugins.html). If you see something you don't like, it's easy to change!\n\n**Generates well-formatted markdown**\n\n* Comprehensive [HTML tag coverage](lib/compiler.js).\n* Granular control over every HTML element and attributes\n* Even **converts HTML tables** to markdown!\n\n**Extremely pluggable**\n\nEvery part of the conversion is customizable:\n\n* [options](https://breakdance.github.io/breakdance/plugins.html) are available for customizing output of any HTML tag if you don't like the defaults\n* [plugins](https://breakdance.github.io/breakdance/plugins.html) are easy to write if you'd like to share your customizations with the world\n\n## HTML-to-markdown example\n\n**Tables**\n\nThe following HTML table from [bootstrap's docs](https://github.com/twbs/bootstrap):\n\n```html\n\u003ch2 id=tables-hover-rows\u003eHover rows\u003c/h2\u003e\n\u003cp\u003eAdd \u003ccode\u003e.table-hover\u003c/code\u003e to enable a hover state on table rows within a \u003ccode\u003e\u0026lt;tbody\u0026gt;\u003c/code\u003e.\u003c/p\u003e\n\u003cdiv class=bs-example data-example-id=hoverable-table\u003e\n  \u003ctable class=\"table table-hover\"\u003e\n    \u003cthead\u003e\n      \u003ctr\u003e\n        \u003cth\u003e#\u003c/th\u003e\n        \u003cth\u003eFirst Name\u003c/th\u003e\n        \u003cth\u003eLast Name\u003c/th\u003e\n        \u003cth\u003eUsername\u003c/th\u003e\n      \u003c/tr\u003e\n    \u003c/thead\u003e\n    \u003ctbody\u003e\n      \u003ctr\u003e\n        \u003cth scope=row\u003e1\u003c/th\u003e\n        \u003ctd\u003eMark\u003c/td\u003e\n        \u003ctd\u003eOtto\u003c/td\u003e\n        \u003ctd\u003e@mdo\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n        \u003cth scope=row\u003e2\u003c/th\u003e\n        \u003ctd\u003eJacob\u003c/td\u003e\n        \u003ctd\u003eThornton\u003c/td\u003e\n        \u003ctd\u003e@fat\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n        \u003cth scope=row\u003e3\u003c/th\u003e\n        \u003ctd\u003eLarry\u003c/td\u003e\n        \u003ctd\u003ethe Bird\u003c/td\u003e\n        \u003ctd\u003e@twitter\u003c/td\u003e\n      \u003c/tr\u003e\n    \u003c/tbody\u003e\n  \u003c/table\u003e\n\u003c/div\u003e\n```\n\nWould render to the following markdown:\n\n```\n## Hover rows\n\nAdd `.table-hover` to enable a hover state on table rows within a `\u003ctbody\u003e`.\n\n| # | First Name | Last Name | Username |\n| --- | --- | --- | --- |\n| 1 | Mark | Otto | @mdo |\n| 2 | Jacob | Thornton | @fat |\n| 3 | Larry | the Bird | @twitter |\n```\n\nSee [the documentation](https://breakdance.github.io/breakdance/examples.html) for more examples.\n\n## About\n\n### Community\n\nGet updates on Breakdance's development and chat with the project maintainers and community members.\n\n* Follow [@breakdancejs on Twitter](https://twitter.com/breakdancejs).\n* Join the [conversation on Gitter](https://gitter.im/breakdance/breakdance?utm_source=share-link\u0026utm_medium=link\u0026utm_campaign=share-link)\n* Implementation help may be found on Stack Overflow (please use the tag [breakdance](https://stackoverflow.com/questions/tagged/breakdance)`breakdance`).\n* For maximum discoverability, plugin developers should use the keyword `breakdance` on packages which modify or add to the functionality of Breakdance when distributing through [npm](https://www.npmjs.com/browse/keyword/breakdance) or similar delivery mechanisms.\n\n### Related projects\n\n* [breakdance-checklist](https://www.npmjs.com/package/breakdance-checklist): Plugin that adds checklist rendering support to breakdance, similar to task lists in github-flavored-markdown. | [homepage](https://github.com/breakdance/breakdance-checklist \"Plugin that adds checklist rendering support to breakdance, similar to task lists in github-flavored-markdown.\")\n* [breakdance-reflinks](https://www.npmjs.com/package/breakdance-reflinks): Breakdance plugin that aggregates the urls from hrefs and src attributes at the bottom of… [more](https://github.com/breakdance/breakdance-reflinks) | [homepage](https://github.com/breakdance/breakdance-reflinks \"Breakdance plugin that aggregates the urls from hrefs and src attributes at the bottom of the file as reference links.\")\n* [breakdance-util](https://www.npmjs.com/package/breakdance-util): Utility functions for breakdance plugins. | [homepage](https://github.com/breakdance/breakdance-util \"Utility functions for breakdance plugins.\")\n\n### Contributing\n\nPull requests and stars are always welcome. For bugs and feature requests, [please create an issue](../../issues/new).\n\nPlease read the [contributing guide](.github/contributing.md) for advice on opening issues, pull requests, and coding standards.\n\n### Contributors\n\n| **Commits** | **Contributor** | \n| --- | --- |\n| 118 | [jonschlinkert](https://github.com/jonschlinkert) |\n| 3 | [doowb](https://github.com/doowb) |\n| 1 | [davidbgk](https://github.com/davidbgk) |\n\n### Release history\n\nChangelog entries are classified using the following labels from [keep-a-changelog](https://github.com/olivierlacan/keep-a-changelog):\n\n* `added`: for new features\n* `changed`: for changes in existing functionality\n* `deprecated`: for once-stable features removed in upcoming releases\n* `removed`: for deprecated features removed in this release\n* `fixed`: for any bug fixes\n\nCustom labels used in this changelog:\n\n* `dependencies`: bumps dependencies\n* `housekeeping`: code re-organization, minor edits, or other changes that don't fit in one of the other categories.\n\n##### [3.0.0](https://github.com/breakdance/breakdance/compare/2.0.0...3.0.0) - 2017-05-12\n\n**Removed**\n\n* CLI was externalized to [breakdance-cli][]\n\n##### [2.0.0](https://github.com/breakdance/breakdance/compare/1.1.0...2.0.0) - 2017-04-25\n\n**Changed**\n\n* `\u003cb\u003e`: now renders as `**bold**`, same as `\u003cstrong\u003e` tags\n* `\u003ci\u003e`: now renders as `_italics_`, same as `\u003cem\u003e` tags\n\n##### [1.1.0](https://github.com/breakdance/breakdance/compare/1.0.0...1.1.0) - 2017-04-21\n\n**Fixed**\n\n* `\u003ccode\u003e`: improvements to whitespace handling\n* `\u003ccode\u003e`: no longer renders empty tags\n* `\u003cp\u003e`: normalize Unicode `U+00A0` non-breaking spaces to \"normal\" Unicode `U+0020` spaces. Non-breaking spaces are useful in HTML, but cause flow problems in markdown.\n\n**Added**\n\n* documentation for `options.comments`, `options.unsmarty`, `options.trailingWhitespace`, all previously undocumented options. [See breakdance's options](https://breakdance.github.io/breakdance/docs.html#options)\n\n##### [1.0.0](https://github.com/breakdance/breakdance/compare/0.1.5...1.0.0) - 2017-03-12\n\n**Added**\n\n* Adds support for `\u003cbase\u003e`, closes [issue #3](https://github.com/breakdance/breakdance/issues/3)\n\n**Changed**\n\n* Changed the CLI command from `tomd` to either `br`. As a fallback, you can also use `breakdance` if there is a conflict. The CLI has not yet been documented, so hopefully this doesn't cause any issues for anyone.\n\n##### [0.1.5](https://github.com/breakdance/breakdance/compare/0.1.4...0.1.5)\n\n**Fixed**\n\n* An extra trailing newline was being added on `\u003ccode\u003e` tags\n\n**Added**\n\n* Adds `keepEmpty` option, to selective keep empty tags that are omitted by built-in `omitEmpty` tags\n* Adds documentation for `omit`, `pick` and `omitEmpty` and `keepEmpty` options\n\n**Changed**\n\n* Externalized `utils.js` to [breakdance-util](https://github.com/breakdance/breakdance-util), to allow plugin authors to use the same utilities as breakdance, for consistency.\n\n##### [0.1.4](https://github.com/breakdance/breakdance/compare/0.1.0...0.1.4)\n\n**Fixed**\n\n* Better whitespace handling in `table`, `a` and `dl` tags\n\n**Added**\n\n* Adds documentation for `url` option\n\n##### [0.1.0]\n\nFirst release.\n\n_(Changelog generated by [helper-changelog](https://github.com/helpers/helper-changelog))_\n\n### Running tests\n\nRunning and reviewing unit tests is a great way to get familiarized with a library and its API. You can install dependencies and run tests with the following command:\n\n```sh\n$ npm install \u0026\u0026 npm test\n```\n\n### Author\n\n**Jon Schlinkert**\n\n* [github/jonschlinkert](https://github.com/jonschlinkert)\n* [twitter/jonschlinkert](https://twitter.com/jonschlinkert)\n\n### License\n\nCopyright © 2017, [Jon Schlinkert](https://github.com/jonschlinkert).\nReleased under the [MIT license](LICENSE).\n\n***\n\n_This file was generated by [verb-generate-readme](https://github.com/verbose/verb-generate-readme), v0.5.0, on May 12, 2017._\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbreakdance%2Fbreakdance","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbreakdance%2Fbreakdance","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbreakdance%2Fbreakdance/lists"}