# Blogging with Julia code blocks

**URL:** https://discourse.julialang.org/t/blogging-with-julia-code-blocks/2419
**Category:** General Usage
**Tags:** question, web
**Created:** [March 3, 2017, 4:23am UTC](https://discourse.julialang.org/t/blogging-with-julia-code-blocks/2419 "2017-03-03T04:23:41Z")
**Posts on this page:** 20
**Page:** 1

<div class="post-metadata">

### Author: ![juliohm](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/juliohm/32/215266_2.png) [@juliohm](https://discourse.julialang.org/u/juliohm)
#### Post date: [March 3, 2017, 4:23am UTC](https://discourse.julialang.org/t/blogging-with-julia-code-blocks/2419/1 "2017-03-03T04:23:41Z")

</div>

I started a blog ([https://juliohm.github.io](https://juliohm.github.io)) where I am planning to use Julia for my examples. GitHub Pages and Jekyll are the recommended tools by GitHub and many people from the R community have developed plugins for running R code directly when the website is built:

- [http://www.sciviews.org/blog/The-SciViews-Jekyll-Template/](http://www.sciviews.org/blog/The-SciViews-Jekyll-Template/)
- [http://ryankuhn.net/blog/How-To-Use-Plotly-With-Jekyll](http://ryankuhn.net/blog/How-To-Use-Plotly-With-Jekyll)

I wonder if someone knows how to get Julia code working in a similar way, that is, I could write a snippet of Julia inside of a block like

> ```julia  
> ```

and have the block and results printed on the webpage.

---

<div class="post-metadata">

### Author: ![Tamas\_Papp](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/tamas_papp/32/25949_2.png) [@Tamas\_Papp](https://discourse.julialang.org/u/Tamas_Papp)
#### Post date: [March 3, 2017, 8:46am UTC](https://discourse.julialang.org/t/blogging-with-julia-code-blocks/2419/2 "2017-03-03T08:46:44Z")

</div>

AFAIK [Nikola](https://getnikola.com/), another static site generator, works with Jupyter notebooks.

---

<div class="post-metadata">

### Author: ![mpastell](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/mpastell/32/350_2.png) [@mpastell](https://discourse.julialang.org/u/mpastell)
#### Post date: [March 3, 2017, 10:29am UTC](https://discourse.julialang.org/t/blogging-with-julia-code-blocks/2419/3 "2017-03-03T10:29:11Z")

</div>

You could also use [Weave](https://github.com/mpastell/weave.jl) with a custom template.

---

<div class="post-metadata">

### Author: ![Tamas\_Papp](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/tamas_papp/32/25949_2.png) [@Tamas\_Papp](https://discourse.julialang.org/u/Tamas_Papp)
#### Post date: [March 3, 2017, 12:05pm UTC](https://discourse.julialang.org/t/blogging-with-julia-code-blocks/2419/4 "2017-03-03T12:05:42Z")

</div>

Is there an example that integrates [Hugo](https://gohugo.io/) with `Weave.jl` for blogging?

---

<div class="post-metadata">

### Author: ![mpastell](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/mpastell/32/350_2.png) [@mpastell](https://discourse.julialang.org/u/mpastell)
#### Post date: [March 3, 2017, 1:24pm UTC](https://discourse.julialang.org/t/blogging-with-julia-code-blocks/2419/5 "2017-03-03T13:24:09Z")

</div>

Not that I know of. Probably the easiest way is just to convert to from `.jmd` format to markdown. There is a script for calling `weave` from command line [https://github.com/mpastell/Weave.jl/blob/master/bin/weave.jl](https://github.com/mpastell/Weave.jl/blob/master/bin/weave.jl) so that’s easier to use with Makefiles (although I need to update it to support all current input parameters, feel free to open an issue to remind me if you want to use it and something is missing).

---

<div class="post-metadata">

### Author: ![Tamas\_Papp](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/tamas_papp/32/25949_2.png) [@Tamas\_Papp](https://discourse.julialang.org/u/Tamas_Papp)
#### Post date: [March 3, 2017, 3:15pm UTC](https://discourse.julialang.org/t/blogging-with-julia-code-blocks/2419/6 "2017-03-03T15:15:35Z")

</div>

Thanks, I opened an issue. But I don’t insist on Hugo, so if there is an example of how to get `Weave.jl` to work with any static site generator (eg Jekyll) it would be useful.

---

<div class="post-metadata">

### Author: ![juliohm](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/juliohm/32/215266_2.png) [@juliohm](https://discourse.julialang.org/u/juliohm)
#### Post date: [March 3, 2017, 3:56pm UTC](https://discourse.julialang.org/t/blogging-with-julia-code-blocks/2419/7 "2017-03-03T15:56:21Z")

</div>

Thanks for sharing Weave @mpastell, I think it is my best bet. I have to figure out how to run it and paste the HTML in place. Also wondering how to make it work with GitHub pages, if I need to install Julia there too.

---

<div class="post-metadata">

### Author: ![juliohm](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/juliohm/32/215266_2.png) [@juliohm](https://discourse.julialang.org/u/juliohm)
#### Post date: [March 3, 2017, 4:00pm UTC](https://discourse.julialang.org/t/blogging-with-julia-code-blocks/2419/8 "2017-03-03T16:00:16Z")

</div>

@mpastell, Jekyll supports plugins in case we need to add one for Weave there. Do you have experience with it?

---

<div class="post-metadata">

### Author: ![Tamas\_Papp](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/tamas_papp/32/25949_2.png) [@Tamas\_Papp](https://discourse.julialang.org/u/Tamas_Papp)
#### Post date: [March 3, 2017, 5:01pm UTC](https://discourse.julialang.org/t/blogging-with-julia-code-blocks/2419/9 "2017-03-03T17:01:05Z")

</div>

[Figured it out](https://tpapp.github.io/post/julia-post.html) with Hugo. Will work out the quirks and make it public soon.

---

<div class="post-metadata">

### Author: ![juliohm](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/juliohm/32/215266_2.png) [@juliohm](https://discourse.julialang.org/u/juliohm)
#### Post date: [March 4, 2017, 5:00pm UTC](https://discourse.julialang.org/t/blogging-with-julia-code-blocks/2419/10 "2017-03-04T17:00:05Z")

</div>

If someone can figure out a solution with Jekyll, that would be highly appreciated.

---

<div class="post-metadata">

### Author: ![ChrisRackauckas](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/chrisrackauckas/32/77_2.png) [@ChrisRackauckas](https://discourse.julialang.org/u/ChrisRackauckas)
#### Post date: [March 5, 2017, 3:47am UTC](https://discourse.julialang.org/t/blogging-with-julia-code-blocks/2419/11 "2017-03-05T03:47:07Z")

</div>

@oxinabox has a Jekyll blog which has syntax highlighting. You might want to look at his repo.

If there’s a way to use GeSHi with Jekyll, then a version of this would work.

> **[Wordpress Julia Syntax Highlighting - Stochastic Lifestyle](http://www.stochasticlifestyle.com/wordpress-julia-syntax-highlighting/)**
>
> using Julia print("Test for Julia") A = \[0 1 ; 0 1\]; Syntax highlighting in Julia exists? Yes, you can make it work even though no plugins currently support it. The way I was able to get it to work was to use the WP-GeSHi-Highlight WordPress plugin...

---

<div class="post-metadata">

### Author: ![juliohm](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/juliohm/32/215266_2.png) [@juliohm](https://discourse.julialang.org/u/juliohm)
#### Post date: [March 5, 2017, 3:54am UTC](https://discourse.julialang.org/t/blogging-with-julia-code-blocks/2419/12 "2017-03-05T03:54:03Z")

</div>

Thank you @ChrisRackauckas, my main concern is the output, I will see if someone has written a Jekyll plugin for that, I remember finding one for TiKZ that basically runs pdflatex and puts the output in HTML: [https://gist.github.com/hack-ghost/6139753](https://gist.github.com/hack-ghost/6139753)

Maybe we could adapt it to run Weave.jl instead.

---

<div class="post-metadata">

### Author: ![ChrisRackauckas](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/chrisrackauckas/32/77_2.png) [@ChrisRackauckas](https://discourse.julialang.org/u/ChrisRackauckas)
#### Post date: [March 5, 2017, 4:26am UTC](https://discourse.julialang.org/t/blogging-with-julia-code-blocks/2419/13 "2017-03-05T04:26:55Z")

</div>

You can use something like this to transform Julia code from Jupyter notebooks to HTML, and use that?

[https://github.com/ChrisRackauckas/JupyterSite](https://github.com/ChrisRackauckas/JupyterSite)

But something from Weave.jl would likely be more elegant.

FYI, the output that comes out of this is quite horrid. The Jupyter auto-conversion creates some pretty nasty HTML and LaTeX to do it’s coloring, so I’d only use it if it’s copy/pasted

---

<div class="post-metadata">

### Author: ![juliohm](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/juliohm/32/215266_2.png) [@juliohm](https://discourse.julialang.org/u/juliohm)
#### Post date: [March 5, 2017, 4:34am UTC](https://discourse.julialang.org/t/blogging-with-julia-code-blocks/2419/14 "2017-03-05T04:34:54Z")

</div>

Thank you @ChrisRackauckas, I am really hoping to find a cleaner way, maybe I should ask in Jekyll discourse…

---

<div class="post-metadata">

### Author: ![ChrisRackauckas](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/chrisrackauckas/32/77_2.png) [@ChrisRackauckas](https://discourse.julialang.org/u/ChrisRackauckas)
#### Post date: [March 5, 2017, 4:38am UTC](https://discourse.julialang.org/t/blogging-with-julia-code-blocks/2419/15 "2017-03-05T04:38:35Z")

</div>

I took a look at @oxinabox 's setup and it’s pretty clean. You just say where to start and end highlighting. See this:

[https://github.com/oxinabox/oxinabox.github.io/blob/master/\_posts/2017-01-24-JuliaML-and-TensorFlow-Tuitorial.md](https://github.com/oxinabox/oxinabox.github.io/blob/master/_posts/2017-01-24-JuliaML-and-TensorFlow-Tuitorial.md)

for this:

[http://white.ucc.asn.au/2017/01/24/JuliaML-and-TensorFlow-Tuitorial.html](http://white.ucc.asn.au/2017/01/24/JuliaML-and-TensorFlow-Tuitorial.html)

What is that missing? Maybe we can find a quick solution.

---

<div class="post-metadata">

### Author: ![juliohm](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/juliohm/32/215266_2.png) [@juliohm](https://discourse.julialang.org/u/juliohm)
#### Post date: [March 5, 2017, 4:43am UTC](https://discourse.julialang.org/t/blogging-with-julia-code-blocks/2419/16 "2017-03-05T04:43:24Z")

</div>

It is awesome, and definitely better than what I have now, I was just wondering if we could make it literate: write the code and get the result in HTML directly. @oxinabox solution is pasting the output manually, I think I will go with it.

---

<div class="post-metadata">

### Author: ![Tamas\_Papp](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/tamas_papp/32/25949_2.png) [@Tamas\_Papp](https://discourse.julialang.org/u/Tamas_Papp)
#### Post date: [March 5, 2017, 6:15am UTC](https://discourse.julialang.org/t/blogging-with-julia-code-blocks/2419/17 "2017-03-05T06:15:08Z")

</div>

I imagine that also with Jekyll you can write your code in literate `.jmd` files, with YAML front matter, call `weave.jl` to generate the `.md` files, and then use `jekyll` to generate the static pages. That’s my workflow with Hugo, the hard part was dealing with the paths of generated plots.

---

<div class="post-metadata">

### Author: ![juliohm](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/juliohm/32/215266_2.png) [@juliohm](https://discourse.julialang.org/u/juliohm)
#### Post date: [March 5, 2017, 4:16pm UTC](https://discourse.julialang.org/t/blogging-with-julia-code-blocks/2419/18 "2017-03-05T16:16:28Z")

</div>

This is how my Julia code is looking like:

> **[Flipping coins in continuous time: The Poisson process](https://juliohm.github.io/science/coin-flipping/)**
>
> In this post, I would like to contrast two ways of thinking about a coin flip process—one of which is very intuitive and one of which can be very useful for certain applications. This insight is inspired on a stochastic modeling class by Ramesh...

The syntax isn’t quite right and I can’t have the output generated automatically 😢

---

<div class="post-metadata">

### Author: ![ChrisRackauckas](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/chrisrackauckas/32/77_2.png) [@ChrisRackauckas](https://discourse.julialang.org/u/ChrisRackauckas)
#### Post date: [March 5, 2017, 4:47pm UTC](https://discourse.julialang.org/t/blogging-with-julia-code-blocks/2419/19 "2017-03-05T16:47:07Z")

</div>

Don’t forget to submit the feed to JuliaBloggers 🙂

[http://www.juliabloggers.com/julia-bloggers-submit-rss-feed/](http://www.juliabloggers.com/julia-bloggers-submit-rss-feed/)

---

<div class="post-metadata">

### Author: ![dpsanders](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/dpsanders/32/3573_2.png) [@dpsanders](https://discourse.julialang.org/u/dpsanders)
#### Post date: [March 5, 2017, 5:53pm UTC](https://discourse.julialang.org/t/blogging-with-julia-code-blocks/2419/20 "2017-03-05T17:53:57Z")

</div>

Nice blog post! Maybe you can extend it to give an example of the continuous-time process?

[Next page](https://discourse.julialang.org/t/blogging-with-julia-code-blocks/2419.md?page=2)
