diff options
author | ronv <ronalds.vilcins@gmail.com> | 2020-01-30 20:19:33 +0200 |
---|---|---|
committer | ronv <ronalds.vilcins@gmail.com> | 2020-01-30 20:19:33 +0200 |
commit | a1a0a4ad553f59906930d44bf56b089421d2c7a5 (patch) | |
tree | ca8b44675434a07394c63a4b0bb22390ed261589 /_includes | |
parent | bc7896a33321ad0c6e22ad60f20e498f55900c12 (diff) | |
download | wiki-a1a0a4ad553f59906930d44bf56b089421d2c7a5.tar.gz |
initial commit
Diffstat (limited to '_includes')
-rw-r--r-- | _includes/anchor_headings.html | 105 | ||||
-rwxr-xr-x | _includes/head.html | 37 | ||||
-rw-r--r-- | _includes/inline.scss | 1 | ||||
-rwxr-xr-x | _includes/navigation.html | 10 |
4 files changed, 153 insertions, 0 deletions
diff --git a/_includes/anchor_headings.html b/_includes/anchor_headings.html new file mode 100644 index 0000000..21e2d04 --- /dev/null +++ b/_includes/anchor_headings.html @@ -0,0 +1,105 @@ +{% capture headingsWorkspace %} + {% comment %} + Version 1.0.4 + https://github.com/allejo/jekyll-anchor-headings + + "Be the pull request you wish to see in the world." ~Ben Balter + + Usage: + {% include anchor_headings.html html=content %} + + Parameters: + * html (string) - the HTML of compiled markdown generated by kramdown in Jekyll + + Optional Parameters: + * beforeHeading (bool) : false - Set to true if the anchor should be placed _before_ the heading's content + * anchorAttrs (string) : '' - Any custom HTML attributes that will be added to the `<a>` tag; you may NOT use `href`, `class` or `title` + * anchorBody (string) : '' - The content that will be placed inside the anchor; the `%heading%` placeholder is available + * anchorClass (string) : '' - The class(es) that will be used for each anchor. Separate multiple classes with a space + * anchorTitle (string) : '' - The `title` attribute that will be used for anchors + * h_min (int) : 1 - The minimum header level to build an anchor for; any header lower than this value will be ignored + * h_max (int) : 6 - The maximum header level to build an anchor for; any header greater than this value will be ignored + * bodyPrefix (string) : '' - Anything that should be inserted inside of the heading tag _before_ its anchor and content + * bodySuffix (string) : '' - Anything that should be inserted inside of the heading tag _after_ its anchor and content + + Output: + The original HTML with the addition of anchors inside of all of the h1-h6 headings. + {% endcomment %} + + {% assign minHeader = include.h_min | default: 1 %} + {% assign maxHeader = include.h_max | default: 6 %} + {% assign beforeHeading = include.beforeHeading %} + {% assign nodes = include.html | split: '<h' %} + + {% capture edited_headings %}{% endcapture %} + + {% for _node in nodes %} + {% capture node %}{{ _node | strip }}{% endcapture %} + + {% if node == "" %} + {% continue %} + {% endif %} + + {% assign nextChar = node | replace: '"', '' | strip | slice: 0, 1 %} + {% assign headerLevel = nextChar | times: 1 %} + + <!-- If the level is cast to 0, it means it's not a h1-h6 tag, so let's try to fix it --> + {% if headerLevel == 0 %} + {% if nextChar != '<' and nextChar != '' %} + {% capture node %}<h{{ node }}{% endcapture %} + {% endif %} + + {% capture edited_headings %}{{ edited_headings }}{{ node }}{% endcapture %} + {% continue %} + {% endif %} + + {% assign _workspace = node | split: '</h' %} + {% assign _idWorkspace = _workspace[0] | split: 'id="' %} + {% assign _idWorkspace = _idWorkspace[1] | split: '"' %} + {% assign html_id = _idWorkspace[0] %} + + {% capture _hAttrToStrip %}{{ _workspace[0] | split: '>' | first }}>{% endcapture %} + {% assign header = _workspace[0] | replace: _hAttrToStrip, '' %} + + <!-- Build the anchor to inject for our heading --> + {% capture anchor %}{% endcapture %} + + {% if html_id and headerLevel >= minHeader and headerLevel <= maxHeader %} + {% capture anchor %}href="#{{ html_id }}"{% endcapture %} + + {% if include.anchorClass %} + {% capture anchor %}{{ anchor }} class="{{ include.anchorClass }}"{% endcapture %} + {% endif %} + + {% if include.anchorTitle %} + {% capture anchor %}{{ anchor }} title="{{ include.anchorTitle | replace: '%heading%', header }}"{% endcapture %} + {% endif %} + + {% if include.anchorAttrs %} + {% capture anchor %}{{ anchor }} {{ include.anchorAttrs }}{% endcapture %} + {% endif %} + + {% capture anchor %}<a {{ anchor }}>{{ include.anchorBody | replace: '%heading%', header | default: '' }}</a>{% endcapture %} + + <!-- In order to prevent adding extra space after a heading, we'll let the 'anchor' value contain it --> + {% if beforeHeading %} + {% capture anchor %}{{ anchor }} {% endcapture %} + {% else %} + {% capture anchor %} {{ anchor }}{% endcapture %} + {% endif %} + {% endif %} + + {% capture new_heading %} + <h{{ _hAttrToStrip }} + {{ include.bodyPrefix }} + {% if beforeHeading %} + {{ anchor }}{{ header }} + {% else %} + {{ header }}{{ anchor }} + {% endif %} + {{ include.bodySuffix }} + </h{{ _workspace | last }} + {% endcapture %} + {% capture edited_headings %}{{ edited_headings }}{{ new_heading }}{% endcapture %} + {% endfor %} +{% endcapture %}{% assign headingsWorkspace = '' %}{{ edited_headings | strip }}
\ No newline at end of file diff --git a/_includes/head.html b/_includes/head.html new file mode 100755 index 0000000..6662583 --- /dev/null +++ b/_includes/head.html @@ -0,0 +1,37 @@ +<head> + <meta charset="UTF-8"> + <meta name="viewport" content="width=device-width, initial-scale=1.0"> + + {% seo title=false %} + + <title> + {% if page.tag or page.title %} + {% if page.tag %} + {{ page.tag | escape }} + {% else %} + {{ page.title | escape }} + {% endif %} + - + {% endif %} + {% if paginator and paginator.page and paginator.total_pages > 1 and paginator.page > 1 %} + Page {{ paginator.page }} of {{ paginator.total_pages }} - + {% endif %} + {{ site.title | escape }} + {% unless page.tag or page.title %} + - {{ site.description | escape }} + {% endunless %} + </title> + + <link rel="shortcut icon" href="{{ site.baseurl }}/favicon.png"> + <link rel="alternate" type="application/atom+xml" title="{{ site.title }}" href="{{ site.baseurl }}/atom.xml"> + <link rel="alternate" type="application/json" title="{{ site.title }}" href="{{ "/feed.json" | prepend: site.baseurl | prepend: site.url }}" /> + <link rel="sitemap" type="application/xml" title="sitemap" href="{{ site.baseurl }}/sitemap.xml" /> + + <style> + {% capture include_to_scssify %} + {% include inline.scss %} + {% endcapture %} + {{ include_to_scssify | scssify }} + </style> + +</head> diff --git a/_includes/inline.scss b/_includes/inline.scss new file mode 100644 index 0000000..a93cc06 --- /dev/null +++ b/_includes/inline.scss @@ -0,0 +1 @@ +@import "main";
\ No newline at end of file diff --git a/_includes/navigation.html b/_includes/navigation.html new file mode 100755 index 0000000..ebbfbd5 --- /dev/null +++ b/_includes/navigation.html @@ -0,0 +1,10 @@ +<header role="banner"> + <!--<h1 class="logo">{{ site.title }}</h1>--> + <nav role="navigation"> +<ul> + {% for item in site.data.navigation.links %} + <li><a href="{{ item.url }}" {% if item.url == page.url %} class="active"{% endif %}>{{ item.title }}</a></li> + {% endfor %} +</ul> +</nav> +</header>
\ No newline at end of file |