summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMark Powers <mark@marks.kitchen>2024-12-01 19:23:46 -0600
committerMark Powers <mark@marks.kitchen>2024-12-01 19:23:46 -0600
commit2d7874b7a58861ebc452374ad22013c5d200f1f9 (patch)
treed79417c5b9f6db48996ab74b45412a6f29221b88
parente57fbfc1df92bb5f501f2e9cea975fa1283ad72d (diff)
Add recipe content
-rw-r--r--layouts/_default/rss.xml41
-rw-r--r--layouts/recipe/single.html46
-rw-r--r--static/css/common.css33
3 files changed, 120 insertions, 0 deletions
diff --git a/layouts/_default/rss.xml b/layouts/_default/rss.xml
new file mode 100644
index 0000000..202e844
--- /dev/null
+++ b/layouts/_default/rss.xml
@@ -0,0 +1,41 @@
+{{- $pctx := . -}}
+{{- if .IsHome -}}{{ $pctx = .Site }}{{- end -}}
+{{- $pages := slice -}}
+{{- if or $.IsHome $.IsSection -}}
+{{- $pages = $pctx.RegularPages -}}
+{{- else -}}
+{{- $pages = $pctx.Pages -}}
+{{- end -}}
+{{- $limit := .Site.Config.Services.RSS.Limit -}}
+{{- if ge $limit 1 -}}
+{{- $pages = $pages | first $limit -}}
+{{- end -}}
+{{- printf "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?>" | safeHTML }}
+<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
+ <channel>
+ <title>{{ if eq .Title .Site.Title }}{{ .Site.Title }}{{ else }}{{ with .Title }}{{.}} on {{ end }}{{ .Site.Title }}{{ end }}</title>
+ <link>{{ .Permalink }}</link>
+ <description>Recent content {{ if ne .Title .Site.Title }}{{ with .Title }}in {{.}} {{ end }}{{ end }}on {{ .Site.Title }}</description>
+ <generator>Hugo -- gohugo.io</generator>{{ with .Site.LanguageCode }}
+ <language>{{.}}</language>{{end}}{{ with .Site.Author.email }}
+ <managingEditor>{{.}}{{ with $.Site.Author.name }} ({{.}}){{end}}</managingEditor>{{end}}{{ with .Site.Author.email }}
+ <webMaster>{{.}}{{ with $.Site.Author.name }} ({{.}}){{end}}</webMaster>{{end}}{{ with .Site.Copyright }}
+ <copyright>{{.}}</copyright>{{end}}{{ if not .Date.IsZero }}
+ <lastBuildDate>{{ .Date.Format "Mon, 02 Jan 2006 15:04:05 -0700" | safeHTML }}</lastBuildDate>{{ end }}
+ {{- with .OutputFormats.Get "RSS" -}}
+ {{ printf "<atom:link href=%q rel=\"self\" type=%q />" .Permalink .MediaType | safeHTML }}
+ {{- end -}}
+ {{ range $pages }}
+ {{if compare.Eq .Section "blog"}}
+ <item>
+ <title>{{ .Title }}</title>
+ <link>{{ .Permalink }}</link>
+ <pubDate>{{ .Date.Format "Mon, 02 Jan 2006 15:04:05 -0700" | safeHTML }}</pubDate>
+ {{ with .Site.Author.email }}<author>{{.}}{{ with $.Site.Author.name }} ({{.}}){{end}}</author>{{end}}
+ <guid>{{ .Permalink }}</guid>
+ <description>{{ .Summary | html }}</description>
+ </item>
+ {{ end }}
+ {{ end }}
+ </channel>
+</rss> \ No newline at end of file
diff --git a/layouts/recipe/single.html b/layouts/recipe/single.html
new file mode 100644
index 0000000..fb88d7f
--- /dev/null
+++ b/layouts/recipe/single.html
@@ -0,0 +1,46 @@
+{{ define "head" }}
+<link rel="stylesheet" href='{{ "css/single.css" | absURL }}'>
+<script type="application/ld+json">
+ {{ .RawContent }}
+</script>
+{{ end }}
+
+{{ define "main" }}
+{{- $data := transform.Unmarshal .RawContent -}}
+<main id="main" class="post">
+ <a href="{{- $data.url -}}">
+ <h1 class="title">{{ .Title }}</h1>
+ </a>
+ <article class="content recipe">
+ <div><i>{{ .PublishDate.Format "January 2, 2006"}}</i></div>
+ <p>{{- $data.description -}}</p>
+
+ <div class="body">
+ <div class="ingredients">
+ <h2>Ingredients</h2>
+ <ul>
+ {{- range $data.recipeIngredient -}}
+ <li>
+ <input type="checkbox" id="{{ . }}">
+ <label for="{{ . }}">{{ . }}</label>
+ </li>
+ {{ end }}
+ </ul>
+ </div>
+
+ <div class="instructions">
+ <h2>Instructions</h2>
+ <ol>
+ {{- range $data.recipeInstructions -}}
+ <li>
+ <input type="checkbox" id="{{ . }}">
+ <label for="{{ . }}">{{ . }}</label>
+ </li>
+ {{ end }}
+ </ol>
+ </div>
+ </div>
+
+ </article>
+</main>
+{{ end }}
diff --git a/static/css/common.css b/static/css/common.css
index 2782a83..c2b28e7 100644
--- a/static/css/common.css
+++ b/static/css/common.css
@@ -288,4 +288,37 @@ li.post p {
#header > h1 a {
text-decoration: none;
color: inherit;
+}
+
+.recipe .body {
+ display: flex;
+ justify-content: space-between;
+}
+
+.recipe .body .ingredients {
+ width: 35%;
+}
+
+.recipe .body .instructions {
+ width: 60%;
+}
+
+.recipe ol input[type="checkbox"] {
+ display: none;
+}
+
+/* Style for the list items */
+.recipe ul li {
+ list-style-type: none;
+ margin: 5px 0;
+}
+
+/* Strike-through effect when the checkbox is checked */
+.recipe input[type="checkbox"]:checked + label {
+ text-decoration: line-through;
+}
+
+/* Style the label to look like a clickable list item */
+.recipe label {
+ cursor: pointer;
} \ No newline at end of file