jekyll-wns

A collection of filters, tags and hooks that I use on my pages.

Installation

  1. Add gem "jekyll-wns", git: "https://github.com/0xReki/jekyll-wns.git, branch: "main" to your site's Gemfile and run bundle
  2. Add the following to your site's _config.yml:
gems:
  - jekyll-wns

Usage

Filters

Checksums

{{ site.content | sha384_64 }}
{{ site.content | sha384 }}
{{ site.content | sha256_64 }}
{{ site.content | sha256 }}

File Size

{{ site.content | file_size }}

Tags

Scene Breaks

{% scene_break leaves %}
<p style="text-align:center" data-mce-style="text-align:center">πŸ™ πŸ™‘ πŸ™“ πŸ™’ πŸ™ πŸ™‘ πŸ™“ πŸ™’ πŸ™ πŸ™‘ πŸ™“ πŸ™’</p>
{% scene_break wave %}
<p style="text-align:center;letter-spacing:-.13em" data-mce-style="text-align:center;letter-spacing:-.13em">◠◑◠◑◠◑◠◑◠◑◠◑◠◑◠◑◠◑◠◑◠‏</p>
{% scene_break wall %}
<p style="text-align:center;letter-spacing:-.2em" data-mce-style="text-align:center;letter-spacing:-.2em">β€ŽβšŽβ€βšβ€ŽβšŽβšβ€ŽβšŽβšβ€ŽβšŽβšβ€ŽβšŽβšβ€ŽβšŽβšβ€ŽβšŽβšβ€ŽβšŽβšβ€ŽβšŽβšβ€ŽβšŽβšβ€ŽβšŽ</p>
{% scene_break %}
<p style="text-align:center" data-mce-style="text-align:center">πŸ™ΏπŸ™ΎπŸ™ΏπŸ™ΎπŸ™ΏπŸ™ΎπŸ™ΏπŸ™Ύ

YouTube Embed

The following snippet should be integrated into your site for the tag to properly work:

function loadYouTube() {
  var videos = d.getElementsByClassName('youtube');
  for (var i = 0; i < videos.length; i++) {
    videos[i].innerHTML = d.getElementById(videos[i].getAttribute('data-videoid')).innerHTML;
  }
}
{% youtube U6xJfP7-HCc|Base 12 β€” Numberphile %}
<div class="youtube" data-videoid="youtube-U6xJfP7-HCc">
  <a class="btn btn-lg btn-block btn-primary" href="https://youtu.be/U6xJfP7-HCc" target="_blank" rel="noopener">
    Watch β€œBase 12 β€” Numberphile” on YouTube
  </a>
  <a class="btn btn-lg btn-block btn-primary" href="javascript:loadYouTube();">
    Load YouTube Video (3rd party script)
  </a>
</div>
<script id="youtube-U6xJfP7-HCc" type="text/html">
  <div style='position: relative; padding-bottom: 56.25%; padding-top: 30px; height: 0; overflow: hidden;'>
    <iframe
      style='position: absolute; top: 0; left: 0; width: 100%; height: 100%;'
      src='https://www.youtube-nocookie.com/embed/U6xJfP7-HCc?rel=0'
      frameborder='0'
      allow='accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture'
      allowfullscreen></iframe>
  </div>
</script>

Hooks

Automatic replacement of spaces to en quads after each sentence

Assuming your files are each sentence in their own line, just add this to your _config.yml:

wns:
  quads: true

Automatic typographic handling of abbreviations

Just omit the space between the letters and use normal spaces, then add this to your _config.yml:

wns:
  abbrevations: true
Example
… tools, e.g., hammer,…

With abbreviations: true:

… tools,&nbsp;e.&#8239;\g.,&nbsp;hammer,…