| --- |
| title: Documentation |
| in_menu: true |
| sort_info: 7 |
| --- |
| # kramdown Documentation |
| |
| ## Overview |
| |
| kramdown is first and foremost a library for converting text written in a superset of Markdown to |
| HTML. However, due to its modular architecture it is able to support additional input and output |
| formats. The following input and output formats are currently supported: |
| |
| * Input: [kramdown](parser/kramdown.html) (a superset of Markdown), |
| [Markdown](parser/markdown.html), [Github Flavored Markdown](parser/gfm.html), [HTML](parser/html.html) |
| |
| * Output: [HTML](converter/html.html), [LaTeX](converter/latex.html), |
| [kramdown](converter/kramdown.html), [RemoveHtmlTags](converter/remove_html_tags.html) (a special |
| converter which removes HTML tags, normally used in conjunction with the LaTeX or kramdown |
| converters) |
| |
| The [kramdown syntax page](syntax.html) describes in detail what is supported and how it differs |
| from standard Markdown. |
| |
| For all available options have a look at the [options documentation](options.html) or have a look at |
| a parser/converter page to see which options they support! |
| |
| |
| ## Usage |
| |
| {:ruby: .language-ruby} |
| |
| The kramdown package provides two ways for using it: |
| |
| * **As a library** |
| |
| kramdown uses basically the same API as [RedCloth], [BlueCloth] and [Maruku]: |
| |
| require 'kramdown' |
| |
| puts Kramdown::Document.new(text).to_html |
| {:ruby} |
| |
| The second parameter to the `new` call is an options hash for (de)activating certain features. For |
| example, to disable automatic header ID generation, you can do the following: |
| |
| puts Kramdown::Document.new(text, :auto_ids => false).to_html |
| {:ruby} |
| |
| The default parser used is `kramdown`, however, you can select a different one with the `:input` |
| option: |
| |
| puts Kramdown::Document.new(text, :input => 'html').to_latex |
| {:ruby} |
| |
| You can also reuse the created document object to produce multiple outputs: |
| |
| doc = Kramdown::Document.new(text, :input => 'html') |
| puts doc.to_html |
| puts doc.to_latex |
| {:ruby} |
| |
| More information on how to use or extend kramdown can be found in the [API |
| documentation](rdoc/index.html)! |
| |
| * **As an application** |
| |
| Together with the library files a binary called `kramdown` is shipped which can be used to convert |
| text in any supported input format to any supported output format. It either reads from the files |
| specified as the command line arguments or from the standard input. For example: |
| |
| kramdown path/to/kramdown/doc/syntax.page |
| |
| The input and output formats as well as all available kramdown options are supported through |
| command line switches. |
| |
| |
| ## Tests |
| |
| kramdown uses various test suites to verify the correct working of the parsers and converters. For |
| more information, have a look at the [tests document](tests.html). |
| |
| |
| {include_file: doc/links.markdown} |