recipe-site/_layouts/recipe.html

33 lines
1.7 KiB
HTML

---
layout: default
---
{%- comment -%} this is a gross method of converting "_recipes/example.md" to "example". it does it by removing the leading "_recipes/", which is simple enough, and then the trailing ".md", which is done by converting the string to an array, reversing it, turning it back into a string, removing the leading "dm." (".md" backwards), and doing the the array -> reverse -> string shuffle again. it's ugly but hey it works right {%- endcomment -%}
{%- assign id = page.path | remove_first: "_recipes/" | split: "" | reverse | join: "" | remove_first: "dm." | split: "" | reverse | join: "" -%}
{%- comment -%} unfortunately we have to iterate through the entire subrecipe folder twice - once to see if there are any subrecipes that apply here, and another time to put them in. thankfully we can break out of the first loop if we find a single match. i miss jinja ;u; {%- endcomment -%}
{%- assign applicable_subrecipes = false -%}
{%- for subrecipe in site.subrecipes -%}
{%- if subrecipe.parents contains id -%}
{%- comment -%} we found one! {%- endcomment -%}
{%- assign applicable_subrecipes = true -%}
{%- break -%}
{%- endif -%}
{%- endfor -%}
<h1>{{ page.name }}</h1>
<p class='subtle'> {{ page.method.size }} steps - Estimated cooking time: {{ page.time | default: "Not provided" }}</p>
{%- if applicable_subrecipes %}
<h2> Subrecipes </h2>
{% for subrecipe in site.subrecipes -%}
{%- if subrecipe.parents contains id -%}
<div class='subrecipe' id='sr-{{ subrecipe.name | downcase | url_encode }}'>
<h3>{{ subrecipe.name }}</h3>
<div class='subrecipe-output'>
{{ subrecipe.output }}
</div>
</div>
{%- endif -%}
{%- endfor -%}
{%- endif -%}
{%- include ingredients.html -%}
{%- include method.html -%}