First pass at getting tables to render properly.

Markdown doesn't really have a concept of tables in its base syntax,
although in theory you can pass through HTML wherever you like.
Some Markdown processors support extensions a la `|---|---|`, but
this syntax tends to be limited and unwieldy if your tables are big
or complicated.

Unfortunately, while you can pass through HTML, Markdown processors
also don't usually parse the HTML to handle embedded Markdown syntax,
and so something like `<td>**text**</td>` might not get translated
into `<td><b>text</b></td>`. In Eleventy's case (with the Markdown
processor we're using), in order for text to be processed as markdown
it needs to be separated from HTML by blank lines, which would make
HTML-based tables quite verbose.

Lastly, on Sites-authored pages, it can be tricky to tell which
tables are meant to contain tabular content and which are tables
being used for presentation/layout purposes.

The upshot of all of this is that while this CL implements some
basic table support, it's still pretty buggy and there's work left
to be done. But, this is better than no tables whatsoever.

Bug: 1260449
Change-Id: I2dd07fe95c02491a72ec61ae2c0001f2ac063f1f
Reviewed-by: Struan Shrimpton <>
Commit-Queue: Dirk Pranke <>
170 files changed
tree: 997adeb9c4830a14dfee500e84e96fb79f413e3f
  1. docs/
  2. infra/
  3. scripts/
  4. site/
  5. third_party/
  6. .eleventy.js
  7. .firebaserc
  8. .gclient
  9. .gitignore
  10. .vpython3
  12. DEPS
  13. firebase.json
  14. node_modules.tar.gz.sha1
  15. npmw
  16. OWNERS
  17. package-lock.json
  18. package.json

Source code for

This Git repo contains the source content for

NOTE: 2021-10-19. This is not (yet) actually true. This is a work-in-progress repo that we plan to move to.

The website is implemented by serving static content (mostly Markdown files) that is translated / built ahead of time into HTML using the Eleventy static site generator (which is written in Node/JS) and deployed onto Firebase Cloud Hosting.

The Markdown is translated using a single extremely simple Nunjucks template and the site is served with a single basic Sass/SCSS stylesheet (using the Node/NPM library version of Sass).

Large objects (PDFs, big images, etc.) are stored in a Google Cloud Storage bucket, indexed by SHA-1 checksums that are committed into this repo.

See //docs/ if you wish to contribute to the site.