Marked 2 5 3 – Easily Preview Your Markdown Documents

broken image


  1. Marked 2 5 3 – Easily Preview Your Markdown Documents And Share
  2. Marked 2 5 3 – Easily Preview Your Markdown Documents Pdf
  3. Marked 2 5 3 – Easily Preview Your Markdown Documents And Make

It costs $11.99 directly from Terpstra's Web site, with a free 7-day trial available. The original version of Marked is available in the Mac App Store for $3.99, but lacks some of the features of Marked 2. Terpstra told me that Marked 2 may return to the Mac App Store in the future. At first blush, Marked 2 is incredibly simple. Marked 1.3 released, plus 5 free copies! Marked 1.3 drawing winners; Marked 1.3.1, more MultiMarkdown goodies; Marked scripts: nvALT, Evernote, MarsEdit, Scrivener; Get Marked: 50% off for Black Friday; The second Marked giveaway! Calling screenwriter nerds; Marked 1.3.2 in review; Marked 1.3.2 is live!

Marked 2 5 3 – easily preview your markdown documents and data

Interactive documents are a new way to build Shiny apps. An interactive document is an R Markdown file that contains Shiny widgets and outputs. You write the report in markdown, and then launch it as an app with the click of a button.

First, let's say that you're using iAWriter or Ulysses to write articles for your blog/website, and that you're using Markdown to format your article on the go. After you open Marked 2, simply drag the document you're writing into this app, and it will automatically render the live preview.

This article will show you how to write an R Markdown report.

The companion article, Introduction to interactive documents, will show you how to turn an R Markdown report into an interactive document with Shiny components.

R Markdown

R Markdown is a file format for making dynamic documents with R. An R Markdown document is written in markdown (an easy-to-write plain text format) and contains chunks of embedded R code, like the document below.

R Markdown files are designed to be used with the rmarkdown package. rmarkdown comes installed with the RStudio IDE, but you can acquire your own copy of rmarkdown from CRAN with the command

R Markdown files are the source code for rich, reproducible documents. You can transform an R Markdown file in two ways.

  1. knit - You can knit the file. The rmarkdown package will call the knitr package. knitr will run each chunk of R code in the document and append the results of the code to the document next to the code chunk. This workflow saves time and facilitates reproducible reports.

    Consider how authors typically include graphs (or tables, or numbers) in a report. The author makes the graph, saves it as a file, and then copy and pastes it into the final report. This process relies on manual labor. If the data changes, the author must repeat the entire process to update the graph.

    In the R Markdown paradigm, each report contains the code it needs to make its own graphs, tables, numbers, etc. The author can automatically update the report by re-knitting.

  2. convert - You can convert the file. The rmarkdown package will use the pandoc program to transform the file into a new format. For example, you can convert your .Rmd file into an HTML, PDF, or Microsoft Word file. You can even turn the file into an HTML5 or PDF slideshow. rmarkdown will preserve the text, code results, and formatting contained in your original .Rmd file.

    Conversion lets you do your original work in markdown, which is very easy to use. You can include R code to knit, and you can share your document in a variety of formats.

In practice, authors almost always knit and convert their documents at the same time. In this article, I will use the term render to refer to the two step process of knitting and converting an R Markdown file.

You can manually render an R Markdown file with rmarkdown::render(). This is what the above document looks like when rendered as a HTML file.

In practice, you do not need to call rmarkdown::render(). You can use a button in the RStudio IDE to render your reprt. R Markdown is heavily integrated into the RStudio IDE.

Getting started

To create an R Markdown report, open a plain text file and save it with the extension .Rmd. You can open a plain text file in your scripts editor by clicking File > New File > Text File in the RStudio toolbar.

Be sure to save the file with the extension .Rmd. The RStudio IDE enables several helpful buttons when you save the file with the .Rmd extension. You can save your file by clicking File > Save in the RStudio toolbar.

R Markdown reports rely on three frameworks

  1. markdown for formatted text
  2. knitr for embedded R code
  3. YAML for render parameters

The sections below describe each framework.

Markdown for formatted text

.Rmd files are meant to contain text written in markdown. Markdown is a set of conventions for formatting plain text. You can use markdown to indicate

  • bold and italic text
  • lists
  • headers (e.g., section titles)
  • hyperlinks
  • and much more

The conventions of markdown are very unobtrusive, which make Markdown files easy to read. The file below uses several of the most useful markdown conventions.

The file demonstrates how to use markdown to indicate:

  1. headers - Place one or more hashtags at the start of a line that will be a header (or sub-header). For example, # Say Hello to markdown. A single hashtag creates a first level header. Two hashtags, ##, creates a second level header, and so on.

  2. italicized and bold text - Surround italicized text with asterisks, like this *without realizing it*. Surround bold text with two asterisks, like this **easy to use**.

  3. lists - Group lines into bullet points that begin with asterisks. Leave a blank line before the first bullet, like this

  4. hyperlinks - Surround links with brackets, and then provide the link target in parentheses, like this [Github](www.github.com).

You can learn about more of markdown's conventions in the Markdown Quick Reference guide, which comes with the RStudio IDE.

To access the guide, open a .md or .Rmd file in RStudio. Then click the question mark that appears at the top of the scripts pane. Next, select 'Markdown Quick Reference'. RStudio will open the Markdown Quick Reference guide in the Help pane.

Rendering

To transform your markdown file into an HTML, PDF, or Word document, click the 'Knit' icon that appears above your file in the scripts editor. A drop down menu will let you select the type of output that you want. Thumbtack 2 2 1 mac os x.

When you click the button, rmarkdown will duplicate your text in the new file format. rmarkdown will use the formatting instructions that you provided with markdown syntax.

Once the file is rendered, RStudio will show you a preview of the new output and save the output file in your working directory.

Here is how the markdown script above would look in each output format.

Note: RStudio does not build PDF and Word documents from scratch. You will need to have a distribution of Latex installed on your computer to make PDFs and Microsoft Word (or a similar program) installed to make Word files.

knitr for embedded R code

The knitr package extends the basic markdown syntax to include chunks of executable R code.

When you render the report, knitr will run the code and add the results to the output file. You can have the output display just the code, just the results, or both.

To embed a chunk of R code into your report, surround the code with two lines that each contain three backticks. After the first set of backticks, include {r}, which alerts knitr that you have included a chunk of R code. The result will look like this

When you render your document, knitr will run the code and append the results to the code chunk. knitr will provide formatting and syntax highlighting to both the code and its results (where appropriate).

As a result, the markdown snippet above will look like this when rendered (to HTML).

To omit the results from your final report (and not run the code) add the argument eval = FALSE inside the brackets and after r. This will place a copy of your code into the report.

To omit the code from the final report (while including the results) add the argument echo = FALSE. This will place a copy of the results into your report.

echo = FALSE is very handy for adding plots to a report, since you usually do not want to see the code that generates the plot.

echo and eval are not the only arguments that you can use to customize code chunks. You can learn more about formatting the output of code chunks at the rmarkdown and knitr websites.

Inline code

To embed R code in a line of text, surround the code with a pair of backticks and the letter r, like this.

knitr will replace the inline code with its result in your final document (inline code is always replaced by its result). The result will appear as if it were part of the original text. For example, the snippet above will appear like this:

YAML for render parameters

You can use a YAML header to control how rmarkdown renders your .Rmd file. A YAML header is a section of key: value pairs surrounded by --- marks, like below

The output: value determines what type of output to convert the file into when you call rmarkdown::render(). Note: you do not need to specify output: if you render your file with the RStudio IDE knit button.

output: recognizes the following values:

  • html_document, which will create HTML output (default)
  • pdf_document, which will create PDF output
  • word_document, which will create Word output

If you use the RStudio IDE knit button to render your file, the selection you make in the gui will override the output: setting.

Slideshows

You can also use the output: value to render your document as a slideshow.

  • output: ioslides_presentation will create an ioslides (HTML5) slideshow
  • output: beamer_presentation will create a beamer (PDF) slideshow

Note: The knit button in the RStudio IDE will update to show slideshow options when you include one of the above output values and save your .Rmd file.

rmarkdown will convert your document into a slideshow by starting a new slide at each header or horizontal rule (e.g., ***).

Visit rmakdown.rstudio.com to learn about more YAML options that control the render process.

Recap

R Markdown documents provide quick, reproducible reporting from R. You write your document in markdown and embed executable R code chunks with the knitr syntax.

You can update your document at any time by re-knitting the code chunks.

You can then convert your document into several common formats.

R Markdown documents implement Donald's Knuth's idea of literate programming and take the manual labor out of writing and maintaining reports. Moreover, they are quick to learn. You already know ecnough about markdown, knitr, and YAML to begin writing your own R Markdown reports.

In the next article, Introduction to interactive documents, you will learn how to add interactive Shiny components to an R Markdown report. This creates a quick workflow for writing light-weight Shiny apps.

To learn more about R Markdown and interactive documents, please visit rmarkdown.rstudio.com.

Inspired in part by setext, the lightweight markup language designed for TidBITS in 1992, John Gruber's Markdown revolutionized the way people write for the Web a dozen years later. Writers were freed from coding cumbersome HTML tags or managing bloated Web design apps; Markdown provides a standard method of writing a plain text document that can easily be converted to HTML for display on a Web site.

Markdown is now used in many content management systems, including our own TidBITS Publishing System, where the connection with setext made adoption easy. Book publishing services like Leanpub rely on Markdown too, and Take Control uses Markdown as part of our ebook workflow (see 'Celebrating Ten Years of Take Control,' 28 October 2013). Markdown's simplicity has even made writing more accessible, making it easier for the vision-impaired to become authors (see 'With Markdown, Even the Blind Can Write,' 18 June 2013).

Besides Gruber, the man most responsible for the popularity of Markdown is programmer Brett Terpstra. He has released a plethora of excellent free tools for users of the markup language, including:

  • nvALT for note taking
  • Markdown Service Tools to simplify writing Markdown
  • TextExpander snippets for a variety of tasks
  • Marky the Markdownifier, which translates HTML into Markdown
  • MarkdownEditing package for the Sublime Text 2 editor
  • PopClip extensions for Markdown and more
  • A bundle of Markdown tools for the Blogsmith CMS
  • Markdown QuickTags for the WordPress CMS
  • Grablinks Safari extension to grab Markdown links from a Web page
  • TabLinks Safari extension to save open tabs as Markdown links

But there's one tool Brett Terpstra charges money for: Marked 2, a Markdown previewer. It costs $11.99 directly from Terpstra's Web site, with a free 7-day trial available. The original version of Marked is available in the Mac App Store for $3.99, but lacks some of the features of Marked 2. Terpstra told me that Marked 2 may return to the Mac App Store in the future.

At first blush, Marked 2 is incredibly simple. Drop a Markdown-formatted text file onto Marked's app icon and a window pops up with a preview of how the file will look on the Web. You can even drag the proxy icon from a text editor's title bar into Marked, and the preview updates every time you save. (I use Gabe Weatherhead's Keyboard Maestro macro to open BBEdit documents in Marked.) The Marked preview shows live links and even images, if you stick to standard Markdown format.


But Marked isn't just a Markdown previewer — BBEdit users can choose Markup > Preview in BBEdit for that. Marked goes further, providing a powerful editing and formatting package that both expands upon Markdown's capabilities and makes you a better writer. Let's take a look at the top features.

Statistics — You might have noticed in the above screenshot that Marked displays a word count at the bottom of the window. Click it (or press Command-Option-S) and it also shows the number of paragraphs, sentences, and characters. Select some text, and a little statistics balloon reports word, character, and line counts for the selection.

If you choose Preview > Detailed Statistics (Command-I — this menu item is also available by clicking the gear icon in the lower-right corner of Marked's window), Marked displays a lovely set of in-depth stats, including average words per sentence, percentage of complex words, reading ease, grade level, fog index, and even an estimate of how long the document will take to read. From the Preview menu, you can also choose to show readability statistics at the bottom instead of paragraph, sentence, and character counts (or just Option-click the word count display).


Keywords and Word Repetition — Even the best writers can get stuck on a certain word, using it over and over, or resort to clichés and junk words like 'very.' There are plenty of tools to check spelling and grammar, but Marked is the only editing tool I've used that addresses these writing tics.

Marked 2 5 3 – Easily Preview Your Markdown Documents And Share

To see if you're overusing a word, choose Preview > Visualize Word Repetition (Control-Command-W). Repeated words are highlighted in pink, and if you hover over one with your mouse pointer, Marked darkens the highlight and shows other instances of the same word.


To check for verboten words, choose Preview > Highlight Keywords (Command-Shift-H). Marked comes with a dictionary of words and phrases to avoid or replace, such as: 'actually,' 'very,' and 'really.' It highlights these with four colors: pink for words to avoid, purple for those for which you might want to find alternatives, blue for other words you've told Marked to highlight, and green for custom — which denotes temporary keywords.


Temporary keywords are just that — words you want to highlight for a single document. To set them, choose Preview > Keyword Drawer (Command-Shift-K) or click the arrow icon at the bottom of the window. A pop-up appears with a notepad for temporary keywords. Enter one per line, and click Update to highlight those words in green.

Marked 2 5 3 – Easily Preview Your Markdown Documents Pdf


It would be nice to be able to create temporary keywords to avoid checking as well. While writing this review, the words 'Marked' and 'Markdown' appear over and over again, but justly so — the article is about them. I don't need to see them in the list of overused words.

To edit the permanent list of words to highlight, choose Preview > Edit Keywords to bring up Marked's Proofing preference pane. It has three tabs: Avoid, Use Alternate, and Other (which corresponds to the blue highlight mentioned above). Each gives you a ruled text field, so it's simple to click inside to edit or add. If you screw up, you can restore the defaults for each.

Format and Export — Marked not only previews text, it also formats text, according to a number of built-in themes. The default is Swiss, as indicated in the lower left of the preview window. Click the theme name to display a menu of eight themes, each with a keyboard shortcut. Special note to fiction writers: the Manuscript theme formats your document as though it came from a typewriter.


Not enamored of the defaults? You can create your own with standard CSS, if you're familiar with styling Web pages. Create your style sheet as you would normally in BBEdit or CSSEdit or whatever, save it, and then, back in Marked, choose Marked > Preferences > Style. Click the + button and select your CSS file.


Custom CSS styles aren't just a pretty way of viewing your documents. Once you're previewing in Marked, you can copy out HTML or rich text, or export to PDF, .doc, .docx, and .odt. Be sure to turn off highlights first, or they'll be embedded in your document! The conversion isn't always perfect, but it offers a tantalizing look at a future where Markdown can easily be turned into any other format. It's sort of like XML for humans.


You can view the HTML of your document at any time by selecting the angle brackets (<>) in the upper-right corner of Marked's window.

Custom Preprocessors and Other Languages — Marked can handle a variety of markup languages beyond Markdown and MultiMarkdown. It also supports the Fountain screenwriting language, the CriticMarkup editing standard, the aforementioned Leanpub publishing service's Markdown variant, the Mathjax mathematics display engine, and the Discount Markdown variant. Marked can even do tables of contents and chapter splits, so you could in theory use it to help build
ebooks.

In addition to plain text documents, Marked can preview documents written in MarsEdit and Scrivener, both of which emphasize content over form — though each has its own formatting and preview capabilities.

If you prefer some other markup language, never fear, because you can tie in custom processors and preprocessors, which enable you to add additional languages or specific processing directives.

Marked 2 5 3 – Easily Preview Your Markdown Documents And Make

For instance, here at TidBITS, we have specified a custom variant of Markdown that allows the use of what we call 'lazy links,' reference-style links that use asterisks in place of per-link labels. A bit of Perl code in the TidBITS Publishing System translates lazy links to regular reference links on the backend.

Lazy links may seem a bit nutty to John Gruber, but they let us use Keyboard Maestro macros for automating link creation, make it easy to group links with their associated paragraphs, simplify editing and reordering links, and give us a more accurate preview of how our plain text email edition will look. (Want in on a secret? In the Web version of this article, click the pipe | between the category and date to see how we facilitate linking.)

But Marked doesn't understand our lazy links out of the box. I contacted Brett Terpstra to ask him if he could add such support, and to my delight, he was nice enough to write a custom preprocessor that does it for us! He even expanded it with the capability to include linked footnotes. How's that for customer service?

(Speaking of links, choosing Preview > Validate External Links is a great way to make sure all the links in an article work before going live with it.)

So no matter what markup language you use, if it can be translated to HTML, Marked should be able to handle it.

Power and Simplicity — If I were forced to come up with a complaint, it would be that Marked's design language sometimes clashes. For instance, the Detailed Statistics display features iOS 7-like thin text on a white background. But the temporary keyword editor uses a skeuomorphic notepad and switch, on a linen background — a throwback to iOS 6's visual style. (Terpstra says he's in the process of redesigning this.)

But that's nitpicking. It's incredible how much power has been tucked into what seems like such a simple app. If you compose serious text in Markdown or any of Marked's other supported languages, Marked 2 is a must-have for its word repetition and statistics tools alone — not to mention many of the features we didn't get around to, such as adapting it for long-form reading.

But even more exciting, Marked's powerful formatting and export capabilities take us closer to the day when human-readable, plain-text markup languages may largely supplant machine-readable, proprietary file formats for everyday uses. You probably won't be able to design a brochure in Markdown or the equivalent, but for an article, script, manual, or novel, the combination of a lightweight markup language and Marked could eliminate the need for a complex word processor or page layout application. And the beauty of these plain text markup languages is that files using them can be opened on any platform, using many different apps. If you still have documents locked away in MacWrite or WriteNow format, you know how hard it can be to
bring older files into the present.

So if you work with text, and certainly if you're already doing much of your writing in Markdown, give Marked 2 a try. It has earned a permanent spot in my workflow, and, if it meets your needs as well, picking up a copy for $11.99 is a great way to show Brett Terpstra some appreciation for all the other Markdown-related tools he's given away for free over the years.





broken image