A more generic tag/value component
Write styles and templates for a more generic tag/value component. Use this component for the taxonomy lists, draft tag, and page dates in the summary template.
This commit is contained in:
parent
b51aca950c
commit
edd6eb996b
11 changed files with 123 additions and 58 deletions
50
assets/css/050_tags.css
Normal file
50
assets/css/050_tags.css
Normal file
|
@ -0,0 +1,50 @@
|
|||
|
||||
|
||||
|
||||
|
||||
|
||||
/*****************
|
||||
* COMPONENT: TAG
|
||||
*****************/
|
||||
|
||||
.tag {
|
||||
display: flex;
|
||||
gap: 1ch;
|
||||
font-family: var(--font-family-monospace);
|
||||
|
||||
.tag__name {
|
||||
color: var(--text-color-secondary);
|
||||
text-transform: uppercase;
|
||||
white-space: nowrap;
|
||||
|
||||
&::after {
|
||||
content: " =";
|
||||
}
|
||||
}
|
||||
|
||||
.tag__value {
|
||||
color: var(--text-color-primary);
|
||||
}
|
||||
|
||||
.tag__value--list {
|
||||
--spacing: 1ch;
|
||||
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
gap: 0 var(--spacing);
|
||||
list-style-type: none;
|
||||
margin-block: 0;
|
||||
padding-inline-start: 0;
|
||||
}
|
||||
|
||||
.tag__value__list-item {
|
||||
padding-inline-start: 0;
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
.tag__value__list-item:not(:first-child)::before {
|
||||
color: var(--text-color-secondary);
|
||||
content: ":";
|
||||
margin-inline-end: var(--spacing);
|
||||
}
|
||||
}
|
|
@ -8,6 +8,7 @@
|
|||
|
||||
.page-footer {
|
||||
margin-block-start: var(--space-xl);
|
||||
font-size: var(--text-s);
|
||||
|
||||
:last-child {
|
||||
margin-bottom: 0;
|
||||
|
|
|
@ -1,3 +1,8 @@
|
|||
|
||||
|
||||
|
||||
|
||||
|
||||
/**************************
|
||||
# COMPONENT: PAGE SUMMARY
|
||||
**************************/
|
||||
|
@ -16,8 +21,6 @@
|
|||
.page-summary__date {
|
||||
color: var(--text-color-secondary);
|
||||
display: block;
|
||||
font-size: var(--text-s);
|
||||
line-height: 1;
|
||||
}
|
||||
|
||||
.page-summary__title {
|
||||
|
@ -40,6 +43,11 @@
|
|||
font-weight: normal;
|
||||
}
|
||||
|
||||
.page-summary__date,
|
||||
.page-summary__draft {
|
||||
font-size: var(--text-s);
|
||||
}
|
||||
|
||||
:is(
|
||||
.page-summary__heading,
|
||||
.page-summary__subtitle,
|
||||
|
|
|
@ -1,46 +0,0 @@
|
|||
|
||||
|
||||
|
||||
|
||||
|
||||
/***************************
|
||||
* COMPONENT: TAXONOMY LIST
|
||||
***************************/
|
||||
|
||||
.taxonomy-list {
|
||||
display: flex;
|
||||
gap: 1ch;
|
||||
font-family: var(--font-family-monospace);
|
||||
|
||||
.taxonomy-list__name {
|
||||
color: var(--text-color-secondary);
|
||||
text-transform: uppercase;
|
||||
white-space: nowrap;
|
||||
|
||||
&::after {
|
||||
content: " =";
|
||||
}
|
||||
}
|
||||
|
||||
.taxonomy-list__terms {
|
||||
--spacing: 1ch;
|
||||
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
gap: 0 var(--spacing);
|
||||
list-style-type: none;
|
||||
margin-block: 0;
|
||||
padding-inline-start: 0;
|
||||
|
||||
li {
|
||||
padding-inline-start: 0;
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
li:not(:first-child)::before {
|
||||
color: var(--text-color-secondary);
|
||||
content: ":";
|
||||
margin-inline-end: var(--spacing);
|
||||
}
|
||||
}
|
||||
}
|
|
@ -1,2 +1,8 @@
|
|||
datePublishedName: Published
|
||||
|
||||
draft: Draft
|
||||
draftYes: "YES"
|
||||
draftNo: "NO"
|
||||
|
||||
home: Home
|
||||
tableOfContents: Table of Contents
|
||||
|
|
|
@ -7,7 +7,10 @@
|
|||
<div class="page-summary__content">{{ . | markdownify }}</div>
|
||||
{{ end }}
|
||||
{{- end }}
|
||||
{{ with .Date }}
|
||||
<time class="page-summary__date" datetime="{{ . | time.Format "2006-01-02" }}">{{ . | time.Format ":date_medium" }}</time>
|
||||
{{ end }}
|
||||
{{- if ne hugo.Environment "production" -}}
|
||||
{{ partial "page/taxonomy_draft.html" (dict "page" . "class" "page-summary__draft") }}
|
||||
{{- end -}}
|
||||
{{- if .Date -}}
|
||||
{{- partial "page/date.html" (dict "page" . "class" "page-summary__date") -}}
|
||||
{{- end }}
|
||||
</article>
|
||||
|
|
|
@ -9,9 +9,11 @@
|
|||
{{ end -}}
|
||||
|
||||
<div class="main--list__page-list">
|
||||
{{ range .Pages.ByDate.Reverse }}
|
||||
{{ range .Pages.ByDate.Reverse -}}
|
||||
{{ if or (not .Draft) hugo.IsDevelopment }}
|
||||
{{ .Render "page_summary" }}
|
||||
{{ end }}
|
||||
{{- end }}
|
||||
</div>
|
||||
</main>
|
||||
{{ end }}
|
||||
|
|
25
layouts/partials/page/date.html
Normal file
25
layouts/partials/page/date.html
Normal file
|
@ -0,0 +1,25 @@
|
|||
{{/*
|
||||
|
||||
Outputs a date tag for a page.
|
||||
|
||||
@context {Page} .page The current page
|
||||
@context {String} .date The date, one of "published", or "updated".
|
||||
@context {String} .class Additional classes to apply to the rendered content.
|
||||
|
||||
*/}}
|
||||
|
||||
{{- $page := .page -}}
|
||||
{{- $dateName := .date -}}
|
||||
|
||||
{{- $name := "" -}}
|
||||
{{- $date := $page.Date -}}
|
||||
|
||||
{{- if or (not $dateName) (eq $dateName "date") }}
|
||||
{{- $name = T "datePublishedName" -}}
|
||||
{{- else -}}
|
||||
{{ end -}}
|
||||
|
||||
<div class="{{ with .class }}{{ . }} {{ end }}tag">
|
||||
<span class="tag__name">{{ $name }}</span>
|
||||
<span class="tag__value">{{ $date | time.Format "2006-01-02" }}</span>
|
||||
</div>
|
|
@ -1,2 +1,5 @@
|
|||
{{ if or hugo.IsDevelopment .Draft }}
|
||||
{{ partial "page/taxonomy_draft.html" (dict "page" .) }}
|
||||
{{ end }}
|
||||
{{ partial "page/taxonomy_list.html" (dict "page" . "taxonomy" "categories") }}
|
||||
{{ partial "page/taxonomy_list.html" (dict "page" . "taxonomy" "tags") }}
|
||||
|
|
13
layouts/partials/page/taxonomy_draft.html
Normal file
13
layouts/partials/page/taxonomy_draft.html
Normal file
|
@ -0,0 +1,13 @@
|
|||
{{- /*
|
||||
Outputs a DRAFT tag for the page.
|
||||
|
||||
@context {Page} .page The current page
|
||||
@context {String} .class A list of additional classes to apply to the top-level element
|
||||
|
||||
*/ -}}
|
||||
|
||||
{{- $page := .page -}}
|
||||
<div class="{{ with .class }}{{ . }} {{ end }}tag tag--draft" data-name="draft">
|
||||
<span class="tag__name">{{ T "draft" }}</span>
|
||||
<span class="tag__value">{{ T (cond $page.Draft "draftYes" "draftNo") }}</li>
|
||||
</div>
|
|
@ -13,10 +13,10 @@
|
|||
{{- with T $taxonomy (len .) }}
|
||||
{{ $name = . }}
|
||||
{{ end -}}
|
||||
<div class="taxonomy-list">
|
||||
<span class="taxonomy-list__name">{{ $name }}</span>
|
||||
<ul class="taxonomy-list__terms" data-name="{{ $name }}">
|
||||
{{ range . }}<li><a href="{{ .RelPermalink }}">{{ .Title }}</a></li>{{ end }}
|
||||
<div class="tag">
|
||||
<span class="tag__name">{{ $name }}</span>
|
||||
<ul class="tag__value--list" data-name="{{ $name }}">
|
||||
{{ range . }}<li class="tag__value__list-item"><a href="{{ .RelPermalink }}">{{ .Title }}</a></li>{{ end }}
|
||||
</ul>
|
||||
</div>
|
||||
{{ end }}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue