The source of the TMLR blog, a Jekyll
site. Every push to main is built and deployed to GitHub Pages by
.github/workflows/deploy.yml.
- Create the file with format
_posts/YYYY-MM-DD-some-slug.md. The date and the slug in the file name give the URL,https://blog.tmlr.org/YYYY/some-slug/. - Fill in the front matter (see below) and write the post in Markdown (kramdown, GitHub-flavoured). Figures with captions, code blocks, math, footnotes and tables all work; see the notes under the front matter below.
- Preview it locally (below), then push to
mainor open a pull request. Pull requests only build the site as a check; pushes tomaindeploy it.
Posts in _drafts/ (no date needed in the file name) show up in the local
preview but are never deployed. To take a published post offline, move it to
_drafts/.
---
title: "Announcing the 2026 TMLR Outstanding Certification"
date: 2026-12-01 # required; a date in the future is still published
authors: # optional; a string, a list of strings, or {name, url} maps
- name: Gautam Kamath
url: http://www.gautamkamath.com/
- TMLR Editors-in-Chief
tags: [certifications] # optional; used as categories in the RSS feed
description: >- # strongly recommended: front page, RSS feed, link previews
The 2026 TMLR Outstanding Certification is awarded to ...
image: /assets/img/posts/some-slug/figure-1.png # optional; shown on the front-page card and in link previews
featured: true # optional; pins the post to the card at the top of the front page
math: true # optional; loads MathJax, write math as $$ ... $$
---Images go in assets/img/posts/<slug>/ and are referenced with an absolute
path, . For a caption use
an HTML <figure> with a <figcaption> around the <img>. Code blocks use
triple backticks with a language name; footnotes are [^1] markers with a
[^1]: ... line at the end; math needs math: true in the front matter and
is written as $$ ... $$ (inline, or on its own lines for display math).
The card at the top of the front page shows the post with featured: true
(the newest one if several have it), or the newest post when none does. Its
picture is the post's image, letterboxed so charts stay readable.
You need Ruby 3.1 or newer. Run:
make install # bundle install
make serve # http://localhost:4000, includes _drafts/, reloads on save