Inline Markdown

Posted on  by 



  1. Markdown Inline Html
  2. R Markdown Inline Table
  3. Markdown Inline Code Highlighting
  4. R Markdown Inline Math
  5. Inline Markdown Image

Free, open-source, full-featured Markdown editor. Synchronization is one of the biggest features of StackEdit. It enables you to synchronize any file in your workspace with other files stored in your Google Drive, your Dropbox and your GitHub accounts. This allows you to keep writing on other devices, collaborate with people you share the file with, integrate easily into your workflow. Links can be either inline with the text, or placed at the bottom of the text as references. Link text is enclosed by square brackets , and for inline links, the link URL is enclosed by parens.

Inline code with R Markdown

R Markdown is a well-known tool for reproducible science in R. In this article, I will focus on a few tricks with R inline code.

Inline

Some time ago, I was writing a vignette for my package WordR. I was using R Markdown. At one point I wanted to show `r expression` in the output, exactly as it is shown here, as an inline code block.

In both R Markdown and Markdown, we can write `abc` to show abc. What is not obvious is that you can use double backticks to escape single backticks in the code block. So code like this: `` `abc` `` (mind the spaces!) produces this `abc`.

Now as an exercise, you can guess how I produced the `` `abc` `` block above. Yes, indeed, I have ``` `` `abc` `` ``` in the Rmd source file. And we can go on like this ad infinitum (can we?).

OK, but I wanted to produce `r expression`. Learning the lesson above, we can try `` `r expression` ``. But trying this, I was getting an error:

Obviously, the R Markdown renderer is trying to evaluate the expression. So it seems that R Markdown renderer does not know that it should (should it?) skip R inline code blocks which are enclosed by double backticks.

Markdown inline html

Solution

Making a long (and yes, I spent some time to find a solution) story short. The correct code block to produce `r expression` is `` `r 'u0060r expressionu0060'` ``.

Short explanation how it works: u0060 is an Unicode representation of the backtick (`). So first, the R Markdown renderer finds the R expression within the double backticks and it evaluates it. Important here is the usage of the Unicode for backtick, since using backtick within the expression would result in an error. (We are lucky, that the R Markdown renderer is not running recursively, finding again the R code block and evaluating it again.) So once the R Markdown is done, the Markdown is just seeing `` `r expression` `` in the temporary .md file, and it evaluates it correctly to `r expression` in the HTML output.

Markdown Inline Html

If you want to see (much) more, just look at the source R Markdown file for this article here. Do you know a better, more elegant solution? If you do, please use the discussion below.

Epilogue

R Markdown Inline Table

Some time after I sent the draft of this blog to the RViews admin, I got a reply (thank you!) which pointed to the knitr FAQ page, specifically question number 7 (and a new post from author of knitr package explaining it a little further). It suggests probably more elegant solution of using

Markdown Inline Code Highlighting

Github markdown inline code

R Markdown Inline Math

(mind the newline!) that will produce Some text before inline code `r expression` and some text after or use `` `r knitr::inline_expr('expression')` `` which produces similarly `r expression`.

Inline Markdown Image

But, I believe this post (especially its source) might still help someone to understand how the R inline code is evaluated.





Coments are closed