Add Tab's railroad.js to the blog

- Include railroad.js from http://tabatkins.github.io/railroad-diagrams/
- Include railroad.css from the same, and tweak it to match my style a bit
  better
- Add a railroad-utils.js file that declares a railroadDiagram function. It
  takes a builder function and an element ID, calls the builder and adds the
  resulting diagram to the element with the given ID.
- Add a railroad_diagram shortcode that wraps that all up so you can write a
  diagram inline with a post.
- Add script includes if the railroad_diagram shortcode is used. The shortcut
  sets a variable in the page's .Scratch that is looked up in the head partial
  template to determine whether to include these scripts.
This commit is contained in:
Eryn Wells 2022-08-16 09:06:30 -07:00
parent 4c51db76aa
commit 9ffa94f8af
5 changed files with 1484 additions and 0 deletions

View file

@ -45,6 +45,11 @@
<link rel="{{ .Rel }}" type="{{ .MediaType.Type }}" href="{{ .Permalink }}" title="{{ site.Title }}">
{{ end }}
{{ if and .IsPage (.Page.Scratch.Get "includes_railroad_diagram") }}
<script defer src="{{ `scripts/railroad.js` | absURL }}"></script>
<script defer src="{{ `scripts/railroad-utils.js` | absURL }}"></script>
{{ end }}
<!-- Misc -->
{{ if or hugo.IsProduction (eq site.Params.env "production") }}
<!---->