Google Docs To Markdown

Posted onby

Professors across the country are scrambling to tidy up their syllabi. But how to best share them with students? I’ll be publishing my “Digital Storytelling and Social Media” syllabus on Github using a simple website publishing format called RMarkdown. The good news is, if you can type your syllabus into Google Docs, you can build a site like this:

The following tutorial walks you through how to convert a Google Doc into RMarkdown and then upload it to a Github repository and then host it live on Github Pages. Mine can be found here:

  • One suggestion: use Pandoc to convert Markdown to docx, then import to Google Docs using the Google Drive API. You can also accomplish this using the Google Drive web interface: Convert markdown to ODT (or some other intermediate) using pandoc: pandoc -f markdown -t odt -s -o MyFile.odt; Move the ODT file into your Google Drive folder.
  • Google Docs to Markdown Instantly Convert Google docs to Markdown. In seconds, in bulk, and without losing any formatting!

Hi Docs to Markdown users! If you're saving time and money using this add-on, consider donating to a good cause. I'm choosing to donate all proceeds from this Buy Me a Coffee campaign to the Equal Justice Initiative.From the EJI web site. Give it a name, like 'ConvertToMarkdown.' Now your script is saved, and you can run it anytime you like. To run it against a Google Document, just open that document, click Tools, then select.

Export your Google Doc to Markdown

Markdown is simple syntax for documents. Headers look like this # Title and links like [click me](http://websi.te).

To convert your Google Doc into Markdown, copy this gdocs2md script from Github user Renato Mangini and insert it into your Google Doc’s script library by opening your Google Doc, navigating over to Tools -> Script editor… and then pasting the script into the field like this:

Save the script as ConvertToMarkdown. It will ask you for permission to access your Google Docs and permission to send you an email. Next, run the script by clicking the triangular “play” button or selecting Run -> ConvertToMarkdown. The script will send you an email with a subject line that starts with [MARKDOWN_MAKER] followed by your document name.

Download the markdown file and open it in a text editor like Sublime Text.

Install R Studio and the rmarkdown package

Now that you have your syllabus – or document – in markdown, you can begin pasting it into RMarkdown files. Download and open R Studio and install the “rmarkdown” package by going to Tools -> Install Packages… and looking for rmarkdown. Alternatively, type install.packages(“rmarkdown”) into the Console and hit return.

Create website pages in R Studio

Next, create a file called index.Rmd by going to File -> New File -> R Markdown… and selecting HTML after putting in a title and author.

The top of your index.Rmd file must follow this format:

I’ve added the following:

To include a table of contents and spice up the site with nice typography using the cosmo theme, I’ve included some extra information including toc: true (meaning yes, I want a table of contents), toc_depth: 2 (meaning only # headlines and ## subheds will show up in the table of contents) and toc_float: true (meaning the table of contents will stay put as I scroll down).

Note: cosmo is cool. But you can play with themes and colors by consulting the RMarkdown HTML page. Below, some highlights:

Preview your index page

Using the Knit button or by clicking File -> Knit Document, you can preview your webpage in R Studio. Looking good!

Create additional pages

For my weekly schedule and assignments, I wanted to create additional pages. Open new .Rmd documents and paste in the corresponding markdown text. Save as schedule.Rmd and assignments.Rmd, for example. Make sure these pages have headers, too.

Creating the _site.yml file

RMarkdown websites require a _site.yml file to organize the rest of the files and add a navigation bar. In your text editor, create and save a _site.yml file following this format to name your website and include a navbar:

The output_dir: “.” is required if you want to host this website on Github pages. We do, so make sure to include it!

Notice the navbar. You can link to outside URLs or to the other pages you’ve built. Make sure to use .html. (In the next step, we’ll convert our pages from .Rmd to .html files).

Build your pages

Once you’ve finished editing your .Rmd files, you can build them into .html files. Make sure the .Rmd and .yml files are all in the same directory.


In R Studio, go to the Console pane in the bottom-left and type rmarkdown::render(“index.Rmd”) and click enter. Do the same for rmarkdown::render(“assignments.Rmd”) and rmarkdown::render(“schedule.Rmd”) or whatever you’ve named your other pages. The files should be processed by R Studio and end up in the same directory you’ve saved the .Rmd and .yml files. Open the .html files in an internet browser to double-check them.

Push the files to Github

Log into Github and create a new repository for your webpage. Make sure to initialize the repository with a README file.

Once you’re in your new repository, click Upload files:

Drag and drop in your files and click Commit changes:

Alternatively, you could use Github Desktop or the command line to commit files to your repository.

Google Docs To Markdown Free

Add a .nojekyll file to repo

As the RMarkdown websites page explains, you must add a file named .nojekyll “to your site source code directory” because “this tells GitHub Pages to not process your site with the Jekyll engine.”

Next to Upload files, click Create new file. Name it .nojekyll and click Commit new file at the bottom of the page.

Publish your repo as a Github page

Finally, head to the Settings tab of your repository.

Scroll down to the Github Pages section and click None. Select master branch as your Source and then hit Save.

Now, navigate to {username}{reponame} and your website should be live! Mine is at

Happy coding!

Update: Thanks Ryan Cordell for writing a script in R that “automates the rendering of HTML files from Rmd and automatically generates the page menu for the site, eliminating much duplicative work.”

Markdown is a lightweight and easy-to-use syntax for styling all forms of writing on the GitHub platform.

What you will learn:

  • How the Markdown format makes styled collaborative editing easy
  • How Markdown differs from traditional formatting approaches
  • How to use Markdown to format text
  • How to leverage GitHub’s automatic Markdown rendering
  • How to apply GitHub’s unique Markdown extensions

What is Markdown?

Markdown is a way to style text on the web. You control the display of the document; formatting words as bold or italic, adding images, and creating lists are just a few of the things we can do with Markdown. Mostly, Markdown is just regular text with a few non-alphabetic characters thrown in, like # or *.

You can use Markdown most places around GitHub:

  • Comments in Issues and Pull Requests
  • Files with the .md or .markdown extension

For more information, see “Writing on GitHub” in the GitHub Help.


It's very easy to make some words bold and other words italic with Markdown. You can even link to Google!
Google Docs To Markdown

Syntax guide

Here’s an overview of Markdown syntax that you can use anywhere on or in your own text files.









Inline code

GitHub Flavored Markdown uses its own version of the Markdown syntax that provides an additional set of useful features, many of which make it easier to work with content on

Google Docs To Markdown File

Note that some features of GitHub Flavored Markdown are only available in the descriptions and comments of Issues and Pull Requests. These include @mentions as well as references to SHA-1 hashes, Issues, and Pull Requests. Task Lists are also available in Gist comments and in Gist Markdown files.

Syntax highlighting

Here’s an example of how you can use syntax highlighting with GitHub Flavored Markdown:

You can also simply indent your code by four spaces:

Here’s an example of Python code without syntax highlighting:

Task Lists

If you include a task list in the first comment of an Issue, you will get a handy progress indicator in your issue list. It also works in Pull Requests!


You can create tables by assembling a list of words and dividing them with hyphens - (for the first row), and then separating each column with a pipe :

Would become:

First HeaderSecond Header
Content from cell 1Content from cell 2
Content in the first columnContent in the second column

SHA references

Any reference to a commit’s SHA-1 hash will be automatically converted into a link to that commit on GitHub.

Issue references within a repository

Any number that refers to an Issue or Pull Request will be automatically converted into a link.


Username @mentions

Typing an @ symbol, followed by a username, will notify that person to come and view the comment. This is called an “@mention”, because you’re mentioning the individual. You can also @mention teams within an organization.

Automatic linking for URLs

Any URL (like will be automatically converted into a clickable link.


Any word wrapped with two tildes (like ~~this~~) will appear crossed out.


Google Docs Convert To Html

GitHub supports emoji!

Google Doc To Html

To see a list of every image we support, check out the Emoji Cheat Sheet.

Convert Google Doc To Markdown

Last updated Jan 15, 2014