Summary
Transform html into markdown. Useful for example if you want to import html into your markdown based application.
Changelog
See Change Log
Requirements
- Nokogiri
- Ruby 2.7.0 or higher
Installation
Install the gem
[sudo] gem install reverse_markdownor add it to your Gemfile
gem 'reverse_markdown'Features
- Supports all the established html tags like
h1,h2,h3,h4,h5,h6,p,em,strong,i,b,blockquote,code,img,a,hr,li,ol,ul,table,tr,th,td,br,figure - Module based - if you miss a tag, just add it
- Can deal with nested lists
- Inline and block code is supported
- Supports blockquote
Usage
Ruby
You can convert html content as string or Nokogiri document:
input = '<strong>feelings</strong>'
result = ReverseMarkdown.convert input
result.inspect # " **feelings** "Commandline
It's also possible to convert html files to markdown using the binary:
$ reverse_markdown file.html > file.md
$ cat file.html | reverse_markdown > file.mdConfiguration
The following options are available:
-
unknown_tags(defaultpass_through) - how to handle unknown tags. Valid options are:-
pass_through- Include the unknown tag completely into the result -
drop- Drop the unknown tag and its content -
bypass- Ignore the unknown tag but try to convert its content -
raise- Raise an error to let you know
-
-
github_flavored(defaultfalse) - use github flavored markdown (yet only code blocks are supported) -
tag_border(default' ') - how to handle tag borders. valid options are:-
' '- Add whitespace if there is none at tag borders. -
''- Do not not add whitespace.
-
As options
Just pass your chosen configuration options in after the input. The given options will last for this operation only.
ReverseMarkdown.convert(input, unknown_tags: :raise, github_flavored: true)Preconfigure
Or configure it block style on a initializer level. These configurations will last for all conversions until they are set to something different.
ReverseMarkdown.config do |config|
config.unknown_tags = :bypass
config.github_flavored = true
config.tag_border = ''
endRelated stuff
- Write custom converters - Wiki entry about how to write your own converter
- html_massage - A gem by Harlan T. Wood to convert regular sites into markdown using reverse_markdown
- word-to-markdown - Convert word docs into markdown while using reverse_markdown, by Ben Balter
- markdown syntax - The markdown syntax specification
- github flavored markdown - Githubs extension to markdown
- wmd-editor - Markdown flavored text editor
Thanks
Thanks to all contributors and all other helpers:
- Empact Ben Woosley
- harlantwood Harlan T. Wood
- aprescott Adam Prescott
- danschultzer Dan Schultzer
- Benjamin-Dobell Benjamin Dobell
- schkovich Goran Miskovic
- craig-day Craig Day
- grmartin Glenn R. Martin
- willglynn Will Glynn