A list of all options to control Markdown rendering. Options that are enabled by default are marked by a + prefix, and those disabled by default are marked by -.

markdown_options()

Value

A character vector of all available options.

Details

See vignette('intro', package = 'markdown') for the full list of options and their documentation.

Examples

# all available options
markdown::markdown_options()
#>  [1] "+auto_identifiers" "+autolink"         "+embed_resources" 
#>  [4] "+js_highlight"     "+js_math"          "+latex_math"      
#>  [7] "+smart"            "+smartypants"      "+strikethrough"   
#> [10] "+subscript"        "+superscript"      "+table"           
#> [13] "+tasklist"         "-hardbreaks"       "-number_sections" 
#> [16] "-tagfilter"        "-toc"             

library(markdown)

# toc example
mkd <- c("# Header 1", "p1", "## Header 2", "p2")

cat(mark(mkd, options = "+number_sections"))
#> <h1 id="header-1"><span class="section-number">1.</span> Header 1</h1>
#> <p>p1</p>
#> <h2 id="header-2"><span class="section-number">1.1</span> Header 2</h2>
#> <p>p2</p>
cat(mark(mkd, options = "+number_sections+toc"))
#> <div id="TOC">
#> <ul class="numbered">
#> <li><a href="#header-1"><span class="section-number">1.</span> Header 1</a>
#> <ul>
#> <li><a href="#header-2"><span class="section-number">1.1</span> Header 2</a></li>
#> </ul>
#> </li>
#> </ul>
#> </div>
#> <h1 id="header-1"><span class="section-number">1.</span> Header 1</h1>
#> <p>p1</p>
#> <h2 id="header-2"><span class="section-number">1.1</span> Header 2</h2>
#> <p>p2</p>

# hard_wrap example
cat(mark("foo\nbar\n"))
#> <p>foo
#> bar</p>
cat(mark("foo\nbar\n", options = "hard_wrap"))
#> <p>foo<br />
#> bar</p>

# latex math example
mkd <- c(
  "`$x$` is inline math $x$!", "", "Display style:", "", "$$x + y$$", "",
  "\\begin{eqnarray}
a^{2}+b^{2} & = & c^{2}\\\\
\\sin^{2}(x)+\\cos^{2}(x) & = & 1
\\end{eqnarray}"
)

cat(mark(mkd))
#> <p><code>$x$</code> is inline math \(x\)!</p>
#> <p>Display style:</p>
#> <p>$$x + y$$</p>
#> <p>\begin{eqnarray} a^{2}+b^{2} &amp; = &amp; c^{2}\\ \sin^{2}(x)+\cos^{2}(x) &amp; = &amp; 1 \end{eqnarray}</p>
cat(mark(mkd, options = "-latex_math"))
#> <p><code>$x$</code> is inline math $x$!</p>
#> <p>Display style:</p>
#> <p>$$x + y$$</p>
#> <p>\begin{eqnarray}
#> a^{2}+b^{2} &amp; = &amp; c^{2}\
#> \sin^{2}(x)+\cos^{2}(x) &amp; = &amp; 1
#> \end{eqnarray}</p>

# tables example (need 4 spaces at beginning of line here)
cat(mark("
First Header  | Second Header
------------- | -------------
Content Cell  | Content Cell
Content Cell  | Content Cell
"))
#> <table>
#> <thead>
#> <tr>
#> <th>First Header</th>
#> <th>Second Header</th>
#> </tr>
#> </thead>
#> <tbody>
#> <tr>
#> <td>Content Cell</td>
#> <td>Content Cell</td>
#> </tr>
#> <tr>
#> <td>Content Cell</td>
#> <td>Content Cell</td>
#> </tr>
#> </tbody>
#> </table>

# but not here
cat(mark("
First Header  | Second Header
------------- | -------------
Content Cell  | Content Cell
Content Cell  | Content Cell
", options = '-table'))
#> <p>First Header  | Second Header
#> ———–– | ———––
#> Content Cell  | Content Cell
#> Content Cell  | Content Cell</p>

# autolink example
cat(mark("https://www.r-project.org/"))
#> <p><a href="https://www.r-project.org/">https://www.r-project.org/</a></p>
cat(mark("https://www.r-project.org/", options = "-autolink"))
#> <p>https://www.r-project.org/</p>

# strikethrough example
cat(mark("~~awesome~~"))
#> <p><del>awesome</del></p>
cat(mark("~~awesome~~", options = "-strikethrough"))
#> <p>~~awesome~~</p>

# superscript and subscript examples
cat(mark("2^10^"))
#> <p>2<sup>10</sup></p>
cat(mark("2^10^", options = "-superscript"))
#> <p>2^10^</p>
cat(mark("H~2~O"))
#> <p>H<sub>2</sub>O</p>
cat(mark("H~2~O", options = "-subscript"))
#> <p>H~2~O</p>

# code blocks
cat(mark('```r\n1 + 1;\n```'))
#> <pre><code class="language-r">1 + 1;
#> </code></pre>
cat(mark('```{.r}\n1 + 1;\n```'))
#> <pre><code class="language-r">1 + 1;
#> </code></pre>
cat(mark('```{.r .js}\n1 + 1;\n```'))
#> <pre><code class="language-r js">1 + 1;
#> </code></pre>
cat(mark('```{.r .js #foo}\n1 + 1;\n```'))
#> <pre><code class="language-r js" id="foo">1 + 1;
#> </code></pre>
cat(mark('```{.r .js #foo style="color:red;"}\n1 + 1;\n```'))
#> <pre><code class="language-r js" id="foo" style="color:red;">1 + 1;
#> </code></pre>
cat(mark('````\n```{r, echo=TRUE}\n1 + 1;\n```\n````'))
#> <pre><code>```{r, echo=TRUE}
#> 1 + 1;
#> ```
#> </code></pre>

# raw blocks
cat(mark('```{=html}\n<p>raw HTML</p>\n```'))
#> <p>raw HTML</p>
cat(mark('```{=latex}\n<p>raw HTML</p>\n```'))

# skip_html tags
mkd = '<style>a {}</style><script type="text/javascript">console.log("No!");</script>\n[Hello](#)'
cat(mark(mkd))
#> <style>a {}</style><script type="text/javascript">console.log("No!");</script>
#> <p><a href="#">Hello</a></p>
# TODO: wait for https://github.com/r-lib/commonmark/issues/15 to be fixed
# cat(mark(mkd, options = "tagfilter"))