Render collections of R Markdown documents into a website with the rmarkdown::rendersite function. Each.Rmd file becomes a page of the site. Here we build a website from these files available on RStudio Cloud. Each website requires. A file named site.yml, which provides the global YAML header for the site. There are a number of ways in which you can 'run Markdown' on your website. For a large part, it depends on your web server's environment. Below is a basic summary of the options: Run a traditional 'live' server. See full list on medium.com.
Markdown is a syntax designed specifically for easier web writing. In this post, you’ll find the best free online Markdown editors.
Markdown Table To Html
Project documentation with Markdown.
Overview
MkDocs is a fast, simple and downright gorgeous static sitegenerator that's geared towards building project documentation. Documentationsource files are written in Markdown, and configured with a single YAMLconfiguration file. Start by reading the introduction below, then check the UserGuide for more info.
Host anywhere
MkDocs builds completely static HTML sites that you can host on GitHub pages,Amazon S3, or anywhere else you choose.
Great themes available
There's a stack of good looking themes available for MkDocs. Choose betweenthe built in themes: mkdocs and readthedocs, select one of the 3rdparty themes listed on the MkDocs Themes wiki page, or build your own.
Preview your site as you work
The built-in dev-server allows you to preview your documentation as you'rewriting it. It will even auto-reload and refresh your browser whenever you saveyour changes.
Easy to customize
Get your project documentation looking just the way you want it by customizingthe theme and/or installing some plugins.
Installation
Install with a Package Manager
If you have and use a package manager (such as apt-get, dnf, homebrew,yum, chocolatey, etc.) to install packages on your system, then you maywant to search for a 'MkDocs' package and, if a recent version is available,install it with your package manager (check your system's documentation fordetails). That's it, you're done! Skip down to Getting Started.
If your package manager does not have a recent 'MkDocs' package, you can stilluse your package manager to install 'Python' and 'pip'. Then you can use pip toinstall MkDocs.
Manual Installation
In order to manually install MkDocs you'll need Python installed on yoursystem, as well as the Python package manager, pip. You can check if you havethese already installed from the command line:
MkDocs supports Python versions 3.5, 3.6, 3.7, 3.8, and pypy3.
Installing Python
Install Python by downloading an installer appropriate for your system frompython.org and running it.
Note
If you are installing Python on Windows, be sure to check the box to havePython added to your PATH if the installer offers such an option (it'snormally off by default).
Installing pip
If you're using a recent version of Python, the Python package manager, pip,is most likely installed by default. However, you may need to upgrade pip to thelasted version:
If you need to install pip for the first time, download get-pip.py.Then run the following command to install it:
Installing MkDocs
Install the mkdocs
package using pip:
You should now have the mkdocs
command installed on your system. Run mkdocs--version
to check that everything worked okay.
Note
If you would like manpages installed for MkDocs, the click-man tool cangenerate and install them for you. Simply run the following two commands:
See the click-man documentation for an explanation of why manpages arenot automatically generated and installed by pip.
Note
If you are using Windows, some of the above commands may not workout-of-the-box.
A quick solution may be to preface every Python command with python -m
like this:
For a more permanent solution, you may need to edit your PATH
environmentvariable to include the Scripts
directory of your Python installation.Recent versions of Python include a script to do this for you. Navigate toyour Python installation directory (for example C:Python38
), open theTools
, then Scripts
folder, and run the win_add2path.py
file by doubleclicking on it. Alternatively, you can download the script and run it(python win_add2path.py
).
Getting Started
Getting started is super easy.
Take a moment to review the initial project that has been created for you.
There's a single configuration file named mkdocs.yml
, and a folder nameddocs
that will contain your documentation source files. Right now the docs
folder just contains a single documentation page, named index.md
.
MkDocs comes with a built-in dev-server that lets you preview your documentationas you work on it. Make sure you're in the same directory as the mkdocs.yml
configuration file, and then start the server by running the mkdocs serve
command:
Open up http://127.0.0.1:8000/
in your browser, and you'll see the defaulthome page being displayed:
The dev-server also supports auto-reloading, and will rebuild your documentationwhenever anything in the configuration file, documentation directory, or themedirectory changes.
Open the docs/index.md
document in your text editor of choice, change theinitial heading to MkLorum
, and save your changes. Your browser willauto-reload and you should see your updated documentation immediately.
Now try editing the configuration file: mkdocs.yml
. Change thesite_name
setting to MkLorum
and save the file.
Your browser should immediately reload, and you'll see your new site name takeeffect.
Adding pages
Now add a second page to your documentation:
As our documentation site will include some navigation headers, you may want toedit the configuration file and add some information about the order, title, andnesting of each page in the navigation header by adding a nav
setting:
Save your changes and you'll now see a navigation bar with Home
and About
items on the left as well as Search
, Previous
, and Next
items on theright.
Try the menu items and navigate back and forth between pages. Then click onSearch
. A search dialog will appear, allowing you to search for any text onany page. Notice that the search results include every occurrence of the searchterm on the site and links directly to the section of the page in which thesearch term appears. You get all of that with no effort or configuration on yourpart!
Theming our documentation
Now change the configuration file to alter how the documentation is displayed bychanging the theme. Edit the mkdocs.yml
file and add a theme
setting:
Save your changes, and you'll see the ReadTheDocs theme being used.
Changing the Favicon Icon
By default, MkDocs uses the MkDocs favicon icon. To use a different icon, createan img
subdirectory in your docs_dir
and copy your custom favicon.ico
fileto that directory. MkDocs will automatically detect and use that file as yourfavicon icon.
Building the site
That's looking good. You're ready to deploy the first pass of your MkLorum
documentation. First build the documentation:
This will create a new directory, named site
. Take a look inside thedirectory:
Notice that your source documentation has been output as two HTML files namedindex.html
and about/index.html
. You also have various other media that'sbeen copied into the site
directory as part of the documentation theme. Youeven have a sitemap.xml
file and mkdocs/search_index.json
.
If you're using source code control such as git
you probably don't want tocheck your documentation builds into the repository. Add a line containingsite/
to your .gitignore
file.
If you're using another source code control tool you'll want to check itsdocumentation on how to ignore specific directories.
After some time, files may be removed from the documentation but they will stillreside in the site
directory. To remove those stale files, just run mkdocs
with the --clean
switch.
Other Commands and Options
There are various other commands and options available. For a complete list ofcommands, use the --help
flag:
To view a list of options available on a given command, use the --help
flagwith that command. For example, to get a list of all options available for thebuild
command run the following:
Deploying
The documentation site that you just built only uses static files so you'll beable to host it from pretty much anywhere. GitHub project pages and AmazonS3 may be good hosting options, depending upon your needs. Upload the contentsof the entire site
directory to wherever you're hosting your website from andyou're done. For specific instructions on a number of common hosts, see theDeploying your Docs page.
Getting help
To get help with MkDocs, please use the discussion group, GitHub issues orthe MkDocs IRC channel #mkdocs
on freenode.
When I first started building my website, I decided to use Wix. It’s a great website builder that has lots of custom options – it is kind of like the PowerPoint of website editing. My one issue with Wix is that I wanted to easily embed some R code into its pages. I was already familiar with R Markdown, so being able to publish R Markdown documents directly would be ideal.
In the following post, I am going to ELI5 the entire process I go through to publish my R Markdown documents to a website. I probably went a little overboard embedding links, but I didn’t want anyone to feel lost trying to figure out what I was talking about at any given moment (what the heck is a fork on GitHub?). It took my some time to iron out the process, so I hope you find this helpful.
Lastly, I am running this on macOS. The process should be the same for non-macOS users, but installation of some of the packages may be a little different.
Jekyll, Markdown & Github
After some internet searching about how to publish my R Markdown files directly to a website, I discovered Jekyll. Jekyll will produce static sites from Markdown files and GitHub will host your Jekyll site for free. Installation of Jekyll was simple and and efficient, so I won’t cover it in detail here.
Once Jekyll was installed, I forked the Jekyll Now repository from GitHub to setup a basic website shell. Make sure to rename the repository to yourgithubusername.github.io since this will be your site’s custom URL. Now you can go to your URL and you will have a (very basic and generic) website!
R Studio
Most of you reading this probably already have R Studio installed. If you do not, install it! I’d recommend using R Studio for publishing your R Markdown documents since it allows you to create projects (like… for managing website content) and easily integrates with GitHub.
If R Studio is not already linked to your GitHub account, this will need to be setup. Once complete, create a new project using version control and link the repository you just created (yourgithubusername.github.io). Now, all files from the Jekyll Now repository will be available locally. This is where I do all of the editing for my posts, which I then push to GitHub once they are ready.
I would now open the _config.yml in your local repository and add some personalization and social media to your site. I linked Google Analytics and Disqus to my site so people like you can comment or chide me for any mistakes I made while writing this :). There are also some really cool Jekyll Themes available for free. Since I originally used Wix to develop my site (and signed up for a yearly subscription, doh!), I did not add a custom theme. Maybe once my subscription lapses, I will get around to this. For now, I link my ehenry09.github.io pages to my Wix site.
How Can I Run Markdown On My Website? - Stack Overflow
R Markdown
Using Jekyll gets us one step closer to being able to publish R Markdown files. The missing link is converting the R Markdown files to Markdown, which in turn will allow Jekyll to publish them to your GitHub site. The best solution I found was developed by Nicole White. Her process uses knitr to convert an R Markdown file to Markdown and then integrates the files nicely into the Jekyll framework. I’ll walk through her process, but please give her all the credit.
First, in your root directory, create a new folder called _drafts. Create a new R Markdown file (your first post!) and save it in the _drafts folder. Make sure that you save the R Markdown file using standard Jekyll nomenclature, lowercase text separated by hyphens.
At the top of your new R Markdown file, delete output: html_document
(or whatever output is specified) and add layout: post
. If your post includes images, you will also need to add this chunk below as the first chunk in your post. Make sure to change name-of-your-post- below to whatever you saved your first post as.
Note: In order for the following code to work, you also need to have the URL (yourgithubusername.github.io) specified in the _config.yml file. Also, you do not need to change the https://ehenry09.github.io/
- this will automatically be generated from the _config.yml file.
Convert Markdown Table To Html
In your R Markdown document, feel free to add whatever content you’d like. In Nichole White’s example she produced some simple plots using the publicly available cars dataset. I’d recommend testing out some images to ensure the paths are being correctly set.
Save the script below in your _drafts folder as r2jekyll.R. This is the script that will take a R Markdown file, using knitr convert it into Markdown, and then move the Markdown file to your _posts folder. The Markdown files in the _posts folder will in turn be published by Jekyll.
You will need to make the script executable. To do this, open up a terminal window. Navigate to the _drafts directory cd your-file-path/_drafts
and execute the code chmod +x r2jekyll.R
. Then you can run script below, again making sure you replace the name-of-your-post to your actual post name.
Check your _posts folder and you will see your first post in Markdown format.
Preview Your Post
I like to preview and tweak the formatting of my posts before pushing them to GitHub. To setup a local server and preview your post, navigate to the root directory of your website in the terminal and execute the command below.
The text succeeding the successful command will direct you to the server address (usually http://127.0.0.1:4000/). You will now be able to preview your site using your internet browser.
TA-DA! That’s it - your first post is published!
BONUS SECTION: Publishing Jupyter Notebooks
Occasionally, I will work in Python using Jupyter Notebooks. Being able to publish these workbooks to a site would be just as amazing publishing my R Markdowns documents. Basically, I’d need to convert a Jupyter Notebook to Markdown. I found an elegant solution, nbconvert, developed by Thomas Kluyver to accomplish this file conversion. I use the Python package manager Anaconda (which I recommend if you do any work in Python), so installation of nbconvert was easy – simply run conda install nbconvert
in your terminal. If you don’t have them installed already, you should also get TeX (link is for Mac users) and Pandoc. This file converter has a lot of features; you can read the documentation for yourself, however, I will walk through the basic the steps below.
Use The Markdown Web Part - SharePoint
First, add the Jupyter Notebook file you would like to publish to the _drafts folder. Make sure the file is named using standard Jekyll nomenclature, lowercase text separated by hyphens. Then, in the terminal, navigate to the drafts folder cd your-file-path/_drafts
. Run the following code:
This converts your Jupyter Notebook to Markdown, which will allow Jekyll to publish it to your site. You will manually need to move the file to the _posts folder once complete (yeah… I will work on a script to automate this at some point) and then push it to GitHub.
Add Markdown To Website
That’s it! I hope somebody found this helpful. I did take me a while to put all the pieces together, but now the process is running like a well oiled machine.