mirror of
https://github.com/gcushen/hugo-academic.git
synced 2025-01-08 03:45:16 +01:00
Compare commits
6 commits
dcdb3d3506
...
75a42222e9
Author | SHA1 | Date | |
---|---|---|---|
|
75a42222e9 | ||
|
2261d9b5f8 | ||
|
4a22c57dc3 | ||
|
347501f9ea | ||
|
d147e71f52 | ||
|
eba36169bb |
21 changed files with 446 additions and 10 deletions
|
@ -5,4 +5,5 @@
|
|||
@import "main.css";
|
||||
@import "./components/all.css";
|
||||
@import "./blox/all.css";
|
||||
@import "./views/attachments.css";
|
||||
@import "chroma.css";
|
||||
|
|
14
modules/blox-tailwind/assets/css/themes/emerald.css
Normal file
14
modules/blox-tailwind/assets/css/themes/emerald.css
Normal file
|
@ -0,0 +1,14 @@
|
|||
/* Hugo Blox color theme: EMERALD */
|
||||
:root {
|
||||
--color-primary-50: 236 253 245;
|
||||
--color-primary-100: 209 250 229;
|
||||
--color-primary-200: 167 243 208;
|
||||
--color-primary-300: 110 231 183;
|
||||
--color-primary-400: 52 211 153;
|
||||
--color-primary-500: 16 185 129;
|
||||
--color-primary-600: 5 150 105;
|
||||
--color-primary-700: 4 120 87;
|
||||
--color-primary-800: 6 95 70;
|
||||
--color-primary-900: 6 78 59;
|
||||
--color-primary-950: 2 44 34;
|
||||
}
|
11
modules/blox-tailwind/assets/css/views/attachments.css
Normal file
11
modules/blox-tailwind/assets/css/views/attachments.css
Normal file
|
@ -0,0 +1,11 @@
|
|||
.hb-attachment-link {
|
||||
@apply inline-block text-primary-600 dark:text-primary-400 font-bold uppercase outline-none focus:outline-none mr-1 mb-1 ease-linear transition-all duration-150;
|
||||
}
|
||||
|
||||
.hb-attachment-link-small {
|
||||
@apply px-3 py-1 text-xs;
|
||||
}
|
||||
|
||||
.hb-attachment-link-large {
|
||||
@apply px-8 py-3;
|
||||
}
|
BIN
modules/blox-tailwind/assets/dist/font/RobotoSlab-VariableFont_wght.ttf
vendored
Normal file
BIN
modules/blox-tailwind/assets/dist/font/RobotoSlab-VariableFont_wght.ttf
vendored
Normal file
Binary file not shown.
4
modules/blox-tailwind/assets/dist/wc.min.css
vendored
4
modules/blox-tailwind/assets/dist/wc.min.css
vendored
File diff suppressed because one or more lines are too long
12
modules/blox-tailwind/data/address_formats.toml
Normal file
12
modules/blox-tailwind/data/address_formats.toml
Normal file
|
@ -0,0 +1,12 @@
|
|||
# Address formats.
|
||||
en-ca = {order = ['street', 'city', 'region', 'postcode', 'country'], delimiters = ['<br>', ', ', '<br>', '<br>']}
|
||||
en-us = {order = ['street', 'city', 'region', 'postcode'], delimiters = [', ', ', ', ' ', '']}
|
||||
en-gb = {order = ['street', 'city', 'region', 'postcode'], delimiters = [', ', ', ', ', ', '']}
|
||||
de = {order = ['street', 'postcode', 'city'], delimiters = ['<br>', ' ', '']}
|
||||
fr-ca = {order = ['street', 'city', 'region', 'postcode', 'country'], delimiters = ['<br>', ', ', '<br>', '<br>']}
|
||||
fr-fr = {order = ['street', 'postcode', 'city'], delimiters = ['<br>', ' ', '']}
|
||||
nl = {order = ['street', 'postcode', 'city', 'country'], delimiters = ['<br>', ' ', '<br>', '']}
|
||||
zh = {order = ['postcode', 'region', 'city', 'street'], delimiters = [' ', ' ', ' ', '']}
|
||||
pt-br = {order = ['street', 'city', 'region', 'postcode', 'country'], delimiters = ['<br>', ', ', '<br>', '<br>']}
|
||||
il = {order = ['street', 'city', 'postcode', 'country'], delimiters = [', ', ' ', ' ', '']}
|
||||
fi = {order = ['street', 'postcode', 'city', 'country'], delimiters = [', ', ' ', ', ']}
|
|
@ -1,4 +1,14 @@
|
|||
{{ define "main" }}
|
||||
|
||||
{{ $pub_type_csl := "" }}
|
||||
{{ $pub_type_display := "" }}
|
||||
{{ if .Params.publication_types }}
|
||||
{{ if reflect.IsSlice .Params.publication_types }}
|
||||
{{ $pub_type_csl = index .Params.publication_types 0 }}
|
||||
{{ $pub_type_display = i18n (printf "pub_%s" (strings.Replace $pub_type_csl "-" "_")) | default (strings.Title $pub_type_csl) }}
|
||||
{{ end }}
|
||||
{{ end }}
|
||||
|
||||
<div class="mx-auto flex max-w-screen-xl">
|
||||
{{ partial "components/sidebar.html" (dict "context" . "no_sidebar" true) }}
|
||||
{{ partial "components/toc.html" . }}
|
||||
|
@ -15,7 +25,8 @@
|
|||
{{- .Title -}}
|
||||
</h1>
|
||||
|
||||
<div class="mt-4 mb-16 text-gray-500 dark:text-gray-300 text-sm flex items-center flex-wrap gap-y-2">
|
||||
<div class="mt-4 mb-16">
|
||||
<div class="text-gray-500 dark:text-gray-300 text-sm flex items-center flex-wrap gap-y-2">
|
||||
{{- if .Date | and (not .Params.hide_date) -}}
|
||||
<span class="mr-1">{{- .Date | time.Format (site.Params.locale.date_format | default ":date_long") -}}</span>
|
||||
{{- if .Params.authors }}<span class="mx-1">·</span>{{ end -}}
|
||||
|
@ -47,8 +58,15 @@
|
|||
{{ .ReadingTime }} {{ i18n "minute_read" }}
|
||||
</span>
|
||||
{{ end }}
|
||||
</div>
|
||||
|
||||
<div class="mt-3">
|
||||
{{ partial "page_links_div.html" . }}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
{{ $featured := partial "functions/get_featured_image.html" . }}
|
||||
{{/* Featured image layout */}}
|
||||
{{ if and $featured (not .Params.image.preview_only) }}
|
||||
|
@ -79,6 +97,59 @@
|
|||
</div>
|
||||
{{end}}
|
||||
|
||||
{{/* EVENT / PUBLICATION METADATA */}}
|
||||
{{ if .Params.abstract | or (eq .Type "publication") | or (eq .Type "event") }}
|
||||
<div class="max-w-prose grid grid-cols-1 md:grid-cols-[200px_auto] gap-4 my-6">
|
||||
|
||||
{{ if .Params.abstract }}
|
||||
<div class="font-bold text-2xl">{{ i18n "abstract" }}</div>
|
||||
<div>{{ .Params.abstract | markdownify }}</div>
|
||||
{{ end }}
|
||||
|
||||
{{/* If the type is Uncategorized, hide the type. */}}
|
||||
{{ if $pub_type_display }}
|
||||
<div class="font-bold text-2xl">{{ i18n "publication_type" }}</div>
|
||||
<div>
|
||||
<a href="{{ range first 1 (.GetTerms "publication_types") }}{{.RelPermalink}}{{end}}">
|
||||
{{ $pub_type_display }}
|
||||
</a>
|
||||
</div>
|
||||
{{ end }}
|
||||
|
||||
{{ if .Params.publication }}
|
||||
<div class="font-bold text-2xl">{{ i18n "publication" }}</div>
|
||||
<div>{{ .Params.publication | markdownify }}</div>
|
||||
{{ end }}
|
||||
|
||||
{{ if eq .Type "event" }}
|
||||
<div class="font-bold text-2xl">{{ i18n "date" }}</div>
|
||||
<div>
|
||||
{{ partial "functions/get_event_dates" . }}
|
||||
</div>
|
||||
{{ end }}
|
||||
|
||||
{{ if .Params.event }}
|
||||
<div class="font-bold text-2xl">{{ i18n "event" }}</div>
|
||||
<div>
|
||||
{{ with .Params.event_url }}<a href="{{ . }}" target="_blank" rel="noopener">{{ end }}
|
||||
{{ .Params.event | markdownify }}
|
||||
{{ if .Params.event_url }}</a>{{ end }}
|
||||
</div>
|
||||
{{ end }}
|
||||
|
||||
{{ if .Params.location }}
|
||||
<div class="font-bold text-2xl">{{ i18n "location" }}</div>
|
||||
<div>
|
||||
<p>{{ .Params.location | markdownify }}</p>
|
||||
{{ if .Params.address }}
|
||||
<p>{{partial "functions/get_address" (dict "root" . "address" .Params.address) }}</p>
|
||||
{{end}}
|
||||
</div>
|
||||
{{ end }}
|
||||
|
||||
</div>
|
||||
{{ end }}
|
||||
|
||||
<div class="prose prose-slate lg:prose-xl dark:prose-invert">
|
||||
{{ .Content }}
|
||||
</div>
|
||||
|
|
|
@ -78,7 +78,7 @@
|
|||
|
||||
{{ $columns := $block.design.columns | default "2" }}
|
||||
|
||||
{{ if $block.content.text }}
|
||||
{{ if $block.content.title }}
|
||||
<div class="flex flex-col items-center max-w-prose mx-auto gap-3 justify-center">
|
||||
|
||||
<div class="mb-6 text-3xl font-bold text-gray-900 dark:text-white">
|
||||
|
|
|
@ -13,6 +13,7 @@
|
|||
{{ errorf "Could not find an author page at `%s`. Please check the value of `author` in your Skill block and create an associated author page if one does not already exist. See https://docs.hugoblox.com/page-builder/#about " $person_page_path }}
|
||||
{{end}}
|
||||
{{ $skills := $person_page.Params.skills }}
|
||||
{{ $show_show_skill_percentage := $block.design.show_skill_percentage | default true }}
|
||||
|
||||
<div class="flex flex-col items-center max-w-prose mx-auto gap-3 justify-center">
|
||||
|
||||
|
@ -52,7 +53,7 @@
|
|||
{{ .name | markdownify | emojify }}
|
||||
{{ with .description }}<p class="skills-description">{{ . | markdownify | emojify }}</p>{{ end }}
|
||||
</span>
|
||||
{{ if .percent }}
|
||||
{{ if .percent | and $show_show_skill_percentage }}
|
||||
<div class="skills-wrapper" {{with $color_border}}{{ (printf "style=\"border-color: %s\"" .) | safeHTMLAttr }}{{end}}>
|
||||
<div class="skills-percent" style="width: {{ (printf "%s" (cast.ToString (.percent | default 100))) | safeCSS }}%; {{with $color}}{{ (printf "background-color: %s" .) | safeCSS }}{{end}}"></div>
|
||||
</div>
|
||||
|
|
|
@ -0,0 +1,23 @@
|
|||
{{/* Function to return a formatted address given a semantic address. */}}
|
||||
|
||||
{{/* Check for valid site config. */}}
|
||||
{{ if not site.Data.address_formats }}{{errorf "Address formats missing from `data/address_formats.toml`!"}}{{end}}
|
||||
|
||||
{{ $page := . }}
|
||||
{{ $address := .address }}
|
||||
{{ $format_name := $page.Params.address_format | default site.Params.locale.address_format | default "en-us" }}
|
||||
|
||||
{{ if not (isset site.Data.address_formats $format_name) }}{{ errorf "Address format `%s` missing from `data/address_formats.toml`!" $format_name }}{{end}}
|
||||
|
||||
{{ $format := index site.Data.address_formats $format_name }}
|
||||
{{ $address_display := slice }}
|
||||
|
||||
{{ range $k, $v := $format.order }}
|
||||
{{ if eq $v "street" | and $address.street }}{{$address_display = $address_display | append (transform.HTMLEscape $address.street) | append (index $format.delimiters $k | default "") }}{{end}}
|
||||
{{ if eq $v "city" | and $address.city }}{{$address_display = $address_display | append (transform.HTMLEscape $address.city) | append (index $format.delimiters $k | default "") }}{{end}}
|
||||
{{ if eq $v "region" | and $address.region }}{{$address_display = $address_display | append (transform.HTMLEscape $address.region) | append (index $format.delimiters $k | default "") }}{{end}}
|
||||
{{ if eq $v "postcode" | and $address.postcode }}{{$address_display = $address_display | append (transform.HTMLEscape $address.postcode) | append (index $format.delimiters $k | default "") }}{{end}}
|
||||
{{ if eq $v "country" | and $address.country }}{{$address_display = $address_display | append (transform.HTMLEscape $address.country) | append (index $format.delimiters $k | default "") }}{{end}}
|
||||
{{end}}
|
||||
|
||||
{{ return safeHTML (delimit $address_display "") }}
|
|
@ -0,0 +1,17 @@
|
|||
{{/* Function to get event start and end dates/times. */}}
|
||||
{{ $t1 := time .Date }}{{/* Start datetime. */}}
|
||||
{{ $str := slice (time.Format site.Params.locale.date_format (time $t1)) }}{{/* Init return string with start date. */}}
|
||||
{{/* Show start time if not all day event. */}}
|
||||
{{ if not .Params.all_day }}{{ $str = $str | append (time.Format site.Params.locale.time_format (time $t1)) }}{{ end }}
|
||||
{{/* Show event end date if provided. */}}
|
||||
{{ if .Params.date_end }}
|
||||
{{ $str = $str | append "—" }}
|
||||
{{ $t2 := time .Params.date_end}}{{/* End datetime. */}}
|
||||
{{/* Show end date if it differs to start date. */}}
|
||||
{{ if not (eq $t1.Year $t2.Year | and (eq $t1.Month $t2.Month) | and (eq $t1.Day $t2.Day)) }}
|
||||
{{ $str = $str | append (time.Format site.Params.locale.date_format (time $t2)) }}
|
||||
{{ end }}
|
||||
{{/* Show end time if not all day event. */}}
|
||||
{{ if not .Params.all_day }}{{ $str = $str | append (time.Format site.Params.locale.time_format (time $t2)) }}{{ end }}
|
||||
{{ end }}
|
||||
{{ return ((delimit $str " ") | safeHTML) }}
|
|
@ -0,0 +1,23 @@
|
|||
{{/* Return true if the page has attachments or link buttons to display. */}}
|
||||
|
||||
{{ $page := . }}
|
||||
|
||||
{{ $pdf_link := false }}
|
||||
{{/* Prevent Hugo warning ".File.ContentBaseName on zero object." for content not backed by a Markdown file, */}}
|
||||
{{/* such as auto-generated taxonomy pages, and sections without an explicit index file. */}}
|
||||
{{/* The file check is required when called from `_default/list.html`, the fallback list view for the above cases. */}}
|
||||
{{ with $page.File }}
|
||||
{{ $slug := $page.File.ContentBaseName }}
|
||||
{{ $resource := $page.Resources.GetMatch (printf "%s.pdf" $slug) }}
|
||||
{{ with $resource }}
|
||||
{{ $pdf_link = true }}
|
||||
{{ end }}
|
||||
{{ end }}
|
||||
|
||||
{{ $cite_link := false }}
|
||||
{{ $resource := $page.Resources.GetMatch "cite.bib" }}
|
||||
{{ with $resource }}
|
||||
{{ $cite_link = true }}
|
||||
{{ end }}
|
||||
|
||||
{{ return ($cite_link | or $pdf_link | or .Params.url_preprint | or .Params.url_pdf | or .Params.url_slides | or .Params.url_video | or .Params.url_source | or .Params.url_code | or .Params.url_dataset | or .Params.url_poster | or .Params.url_project | or .Params.doi | or .Params.links | or .Params.projects | or .Params.slides) }}
|
167
modules/blox-tailwind/layouts/partials/page_links.html
Normal file
167
modules/blox-tailwind/layouts/partials/page_links.html
Normal file
|
@ -0,0 +1,167 @@
|
|||
{{ $is_list := .is_list }}
|
||||
{{ $page := .page }}
|
||||
{{ $link := "" }}
|
||||
|
||||
{{/* ***** TODO: Deprecate `url_preprint` in favour of `url_pdf` given there's now a dedicated "Preprint" pub. type. ***** */}}
|
||||
{{ with $page.Params.url_preprint }}
|
||||
{{ $resource := $page.Resources.GetMatch . }}
|
||||
{{ if $resource }}
|
||||
{{ $link = $resource.RelPermalink }}
|
||||
{{ else }}
|
||||
{{ $link = . | relURL }}
|
||||
{{ end }}
|
||||
<a class="hb-attachment-link {{ if $is_list }}hb-attachment-small{{else}}hb-attachment-large{{end}}" href="{{ $link }}" target="_blank" rel="noopener">
|
||||
{{ i18n "btn_preprint" }}
|
||||
</a>
|
||||
{{ end }}
|
||||
{{ $pdf := "" }}
|
||||
{{ $resource := $page.Resources.GetMatch (printf "%s.pdf" $page.File.ContentBaseName) }}
|
||||
{{ with $resource }}
|
||||
{{ $pdf = .RelPermalink }}
|
||||
{{ else }}
|
||||
{{ if $page.Params.url_pdf }}
|
||||
{{ $pdf = $page.Params.url_pdf | relURL }}
|
||||
{{ end }}
|
||||
{{ end }}
|
||||
|
||||
{{ with $pdf }}
|
||||
<a class="hb-attachment-link {{ if $is_list }}hb-attachment-small{{else}}hb-attachment-large{{end}}" href="{{ . }}" target="_blank" rel="noopener">
|
||||
{{ partial "functions/get_icon" (dict "name" "document-text" "attributes" "style=\"height: 1em\" class='inline-block'") }}
|
||||
{{ i18n "btn_pdf" }}
|
||||
</a>
|
||||
{{ end }}
|
||||
{{ $resource := $page.Resources.GetMatch "cite.bib" }}
|
||||
{{ with $resource }}
|
||||
<a class="hb-attachment-link {{ if $is_list }}hb-attachment-small{{else}}hb-attachment-large{{end}}" href="{{ .RelPermalink }}" target="_blank" data-filename="{{ .RelPermalink }}">
|
||||
{{ partial "functions/get_icon" (dict "name" "document-duplicate" "attributes" "style=\"height: 1em\" class='inline-block'") }}
|
||||
{{ i18n "btn_cite" }}
|
||||
</a>
|
||||
{{ end }}
|
||||
{{ with $page.Params.url_code }}
|
||||
{{ $resource := $page.Resources.GetMatch . }}
|
||||
{{ if $resource }}
|
||||
{{ $link = $resource.RelPermalink }}
|
||||
{{ else }}
|
||||
{{ $link = . | relURL }}
|
||||
{{ end }}
|
||||
<a class="hb-attachment-link {{ if $is_list }}hb-attachment-small{{else}}hb-attachment-large{{end}}" href="{{ $link }}" target="_blank" rel="noopener">
|
||||
{{ partial "functions/get_icon" (dict "name" "code-bracket" "attributes" "style=\"height: 1em\" class='inline-block'") }}
|
||||
{{ i18n "btn_code" }}
|
||||
</a>
|
||||
{{ end }}
|
||||
{{ with $page.Params.url_dataset }}
|
||||
{{ $resource := $page.Resources.GetMatch . }}
|
||||
{{ if $resource }}
|
||||
{{ $link = $resource.RelPermalink }}
|
||||
{{ else }}
|
||||
{{ $link = . | relURL }}
|
||||
{{ end }}
|
||||
<a class="hb-attachment-link {{ if $is_list }}hb-attachment-small{{else}}hb-attachment-large{{end}}" href="{{ $link }}" target="_blank" rel="noopener">
|
||||
{{ partial "functions/get_icon" (dict "name" "circle-stack" "attributes" "style=\"height: 1em\" class='inline-block'") }}
|
||||
{{ i18n "btn_dataset" }}
|
||||
</a>
|
||||
{{ end }}
|
||||
{{ if $page.Params.projects }}
|
||||
{{ range $page.Params.projects }}
|
||||
{{ with (site.GetPage (printf "project/%s" .)) }}
|
||||
<a class="hb-attachment-link {{ if $is_list }}hb-attachment-small{{else}}hb-attachment-large{{end}}" href="{{ .RelPermalink }}">
|
||||
{{ i18n "btn_project" }}
|
||||
</a>
|
||||
{{ else }}
|
||||
{{/* errorf "The `projects` parameter in `content/%s` references a project file, `content/project/%s`, which cannot be found. Please either set `projects = []` or fix the reference." $page.File.Path . */}}
|
||||
{{ end }}
|
||||
{{ end }}
|
||||
{{ else }}
|
||||
{{ with $page.Params.url_project }}
|
||||
<a class="hb-attachment-link {{ if $is_list }}hb-attachment-small{{else}}hb-attachment-large{{end}}" href="{{ . }}" target="_blank" rel="noopener">
|
||||
{{ i18n "btn_project" }}
|
||||
</a>
|
||||
{{ end }}
|
||||
{{ end }}
|
||||
{{ with $page.Params.url_poster }}
|
||||
{{ $resource := $page.Resources.GetMatch . }}
|
||||
{{ if $resource }}
|
||||
{{ $link = $resource.RelPermalink }}
|
||||
{{ else }}
|
||||
{{ $link = . | relURL }}
|
||||
{{ end }}
|
||||
<a class="hb-attachment-link {{ if $is_list }}hb-attachment-small{{else}}hb-attachment-large{{end}}" href="{{ $link }}" target="_blank" rel="noopener">
|
||||
{{ partial "functions/get_icon" (dict "name" "photo" "attributes" "style=\"height: 1em\" class='inline-block'") }}
|
||||
{{ i18n "btn_poster" }}
|
||||
</a>
|
||||
{{ end }}
|
||||
{{ if $page.Params.slides }}
|
||||
{{ with (site.GetPage (printf "slides/%s" $page.Params.slides)) }}
|
||||
<a class="hb-attachment-link {{ if $is_list }}hb-attachment-small{{else}}hb-attachment-large{{end}}" href="{{ .RelPermalink }}" target="_blank">
|
||||
{{ partial "functions/get_icon" (dict "name" "presentation-chart-bar" "attributes" "style=\"height: 1em\" class='inline-block'") }}
|
||||
{{ i18n "btn_slides" }}
|
||||
</a>
|
||||
{{ end }}
|
||||
{{ else }}
|
||||
{{ with $page.Params.url_slides }}
|
||||
{{ $resource := $page.Resources.GetMatch . }}
|
||||
{{ if $resource }}
|
||||
{{ $link = $resource.RelPermalink }}
|
||||
{{ else }}
|
||||
{{ $link = . | relURL }}
|
||||
{{ end }}
|
||||
<a class="hb-attachment-link {{ if $is_list }}hb-attachment-small{{else}}hb-attachment-large{{end}}" href="{{ $link }}" target="_blank" rel="noopener">
|
||||
{{ partial "functions/get_icon" (dict "name" "presentation-chart-bar" "attributes" "style=\"height: 1em\" class='inline-block'") }}
|
||||
{{ i18n "btn_slides" }}
|
||||
</a>
|
||||
{{ end }}
|
||||
{{ end }}
|
||||
{{ with $page.Params.url_video }}
|
||||
{{ $resource := $page.Resources.GetMatch . }}
|
||||
{{ if $resource }}
|
||||
{{ $link = $resource.RelPermalink }}
|
||||
{{ else }}
|
||||
{{ $link = . | relURL }}
|
||||
{{ end }}
|
||||
<a class="hb-attachment-link {{ if $is_list }}hb-attachment-small{{else}}hb-attachment-large{{end}}" href="{{ $link }}" target="_blank" rel="noopener">
|
||||
{{ partial "functions/get_icon" (dict "name" "video-camera" "attributes" "style=\"height: 1em\" class='inline-block'") }}
|
||||
{{ i18n "btn_video" }}
|
||||
</a>
|
||||
{{ end }}
|
||||
{{ with $page.Params.url_source }}
|
||||
{{ $resource := $page.Resources.GetMatch . }}
|
||||
{{ if $resource }}
|
||||
{{ $link = $resource.RelPermalink }}
|
||||
{{ else }}
|
||||
{{ $link = . | relURL }}
|
||||
{{ end }}
|
||||
<a class="hb-attachment-link {{ if $is_list }}hb-attachment-small{{else}}hb-attachment-large{{end}}" href="{{ $link }}" target="_blank" rel="noopener">
|
||||
{{ partial "functions/get_icon" (dict "name" "document" "attributes" "style=\"height: 1em\" class='inline-block'") }}
|
||||
{{ i18n "btn_source" }}
|
||||
</a>
|
||||
{{ end }}
|
||||
{{ with $page.Params.doi }}
|
||||
<a class="hb-attachment-link {{ if $is_list }}hb-attachment-small{{else}}hb-attachment-large{{end}}" href="https://doi.org/{{ . }}" target="_blank" rel="noopener">
|
||||
DOI
|
||||
</a>
|
||||
{{ end }}
|
||||
{{ range $page.Params.links }}
|
||||
{{ $pack := or .icon_pack "fas" }}
|
||||
{{ $pack_prefix := $pack }}
|
||||
{{ if in (slice "fab" "fas" "far" "fal") $pack }}
|
||||
{{ $pack_prefix = "fa" }}
|
||||
{{ end }}
|
||||
{{ $link := .url | default "" }}
|
||||
{{ $scheme := (urls.Parse $link).Scheme }}
|
||||
{{ $target := "" }}
|
||||
{{ if not $scheme }}
|
||||
{{ $resource := $page.Resources.GetMatch $link }}
|
||||
{{ if $resource }}
|
||||
{{ $link = $resource.RelPermalink }}
|
||||
{{ else }}
|
||||
{{ $link = $link | relURL }}
|
||||
{{ end }}
|
||||
{{ else if in (slice "http" "https") $scheme }}
|
||||
{{ $target = "target=\"_blank\" rel=\"noopener\"" }}
|
||||
{{ end }}
|
||||
<a class="hb-attachment-link {{ if $is_list }}hb-attachment-small{{else}}hb-attachment-large{{end}}" href="{{ $link | safeURL }}" {{ $target | safeHTMLAttr }}>
|
||||
{{ partial "functions/get_icon" (dict "name" "link" "attributes" "style=\"height: 1em\" class='inline-block'") }}
|
||||
{{ if .icon }}<i class="{{ $pack }} {{ $pack_prefix }}-{{ .icon }} {{if .name}}mr-1{{end}}"></i>{{end}}
|
||||
{{- with .name }}{{ . | safeHTML }}{{ end -}}
|
||||
</a>
|
||||
{{ end }}
|
12
modules/blox-tailwind/layouts/partials/page_links_div.html
Normal file
12
modules/blox-tailwind/layouts/partials/page_links_div.html
Normal file
|
@ -0,0 +1,12 @@
|
|||
{{/* Div wrapper around page links. */}}
|
||||
{{/* The wrapper is hidden when the page has no link buttons. */}}
|
||||
|
||||
{{ $has_attachments := partial "functions/has_attachments" . }}
|
||||
{{ if $has_attachments | or .Params.external_link }}
|
||||
<div class="">
|
||||
{{ with .Params.external_link }}
|
||||
<a class="btn btn-outline-primary my-1" href="{{ . }}" target="_blank" rel="noopener">{{ i18n "open_project_site" }}</a>
|
||||
{{ end }}
|
||||
{{ partial "page_links" (dict "page" . "is_list" 0) }}
|
||||
</div>
|
||||
{{ end }}
|
|
@ -0,0 +1,24 @@
|
|||
{{/* Display author list. */}}
|
||||
|
||||
{{- $taxonomy := "authors" }}
|
||||
{{ if .Param $taxonomy }}
|
||||
{{ range $index, $value := (.GetTerms $taxonomy) }}
|
||||
{{- /* Highlight the author's name? */ -}}
|
||||
{{- $highlight_name := .Page.Params.highlight_name | default false -}}
|
||||
|
||||
{{- if gt $index 0 }}, {{ end -}}
|
||||
<span {{ if $highlight_name }}class="font-bold"{{end}}>
|
||||
{{/* Effectively check the page's `_build` option as `_build` is not exposed in Hugo's Page object. */}}
|
||||
{{- if .RelPermalink -}}
|
||||
<a href="{{.RelPermalink}}">{{.LinkTitle}}</a>
|
||||
{{- else -}}
|
||||
{{ .LinkTitle }}
|
||||
{{- end -}}
|
||||
</span>
|
||||
{{- if isset $.Params "author_notes" -}}
|
||||
{{- with (index $.Params.author_notes $index) -}}
|
||||
<i class="author-notes fas fa-info-circle" data-toggle="tooltip" title="{{.}}"></i>
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
|
@ -216,7 +216,15 @@
|
|||
|
||||
{{/* Load font theme */}}
|
||||
{{ $font_family := "Inter var" }}
|
||||
{{ $font_file := "Inter.var.woff2" }}
|
||||
{{ $font_file := "" }}
|
||||
{{ $font_type := "" }}
|
||||
{{ if eq site.Params.appearance.font "serif" }}
|
||||
{{ $font_file = "RobotoSlab-VariableFont_wght.ttf" }}
|
||||
{{ $font_type = "truetype" }}
|
||||
{{else}}
|
||||
{{ $font_file = "Inter.var.woff2" }}
|
||||
{{ $font_type = "woff2" }}
|
||||
{{end}}
|
||||
{{ $font := resources.Get (printf "dist/font/%s" $font_file) }}
|
||||
<style>
|
||||
@font-face {
|
||||
|
@ -224,7 +232,7 @@
|
|||
font-style: normal;
|
||||
font-weight: 100 900;
|
||||
font-display: swap;
|
||||
src: url({{ $font.RelPermalink }}) format("woff2");
|
||||
src: url({{ $font.RelPermalink }}) format({{$font_type}});
|
||||
}
|
||||
</style>
|
||||
|
||||
|
|
|
@ -0,0 +1,2 @@
|
|||
</div>
|
||||
</div>
|
48
modules/blox-tailwind/layouts/partials/views/citation.html
Normal file
48
modules/blox-tailwind/layouts/partials/views/citation.html
Normal file
|
@ -0,0 +1,48 @@
|
|||
{{ $item := .item }}
|
||||
{{ $has_attachments := partial "functions/has_attachments" $item }}
|
||||
|
||||
<div class="pub-list-item view-citation" style="margin-bottom: 1rem">
|
||||
<i class="far fa-file-alt pub-icon" aria-hidden="true"></i>
|
||||
|
||||
{{/* APA Style */}}
|
||||
{{ if eq (site.Params.publications.citation_style | default "apa") "apa" }}
|
||||
|
||||
<span class="article-metadata li-cite-author">
|
||||
{{ partial "page_metadata_authors" $item }}
|
||||
</span>
|
||||
({{- $item.Date.Format "2006" -}}).
|
||||
<a href="{{ $item.RelPermalink }}" class="underline">{{ $item.Title }}</a>.
|
||||
{{ if $item.Params.publication_short }}
|
||||
{{- $item.Params.publication_short | markdownify -}}.
|
||||
{{ else if $item.Params.publication }}
|
||||
{{- $item.Params.publication | markdownify -}}.
|
||||
{{ end }}
|
||||
|
||||
{{ if $has_attachments }}
|
||||
<div class="flex space-x-3">
|
||||
{{ partial "page_links" (dict "page" $item "is_list" 1) }}
|
||||
</div>
|
||||
{{ end }}
|
||||
|
||||
{{/* MLA Style */}}
|
||||
{{ else }}
|
||||
|
||||
<span class="article-metadata li-cite-author">
|
||||
{{ partial "page_metadata_authors" $item }}.
|
||||
</span>
|
||||
<a href="{{ $item.RelPermalink }}">{{ $item.Title }}</a>.
|
||||
{{ if $item.Params.publication_short }}
|
||||
{{- $item.Params.publication_short | markdownify -}},
|
||||
{{ else if $item.Params.publication }}
|
||||
{{- $item.Params.publication | markdownify -}},
|
||||
{{ end }}
|
||||
{{- $item.Date.Format "2006" -}}.
|
||||
|
||||
{{ if $has_attachments }}
|
||||
<div class="flex space-x-3">
|
||||
{{ partial "page_links" (dict "page" $item "is_list" 1) }}
|
||||
</div>
|
||||
{{ end }}
|
||||
|
||||
{{ end }}
|
||||
</div>
|
|
@ -0,0 +1,2 @@
|
|||
<div class="mt-16 sm:mt-20 w-fit">
|
||||
<div class="flex max-w-3xl flex-col space-y-3">
|
|
@ -10,7 +10,7 @@
|
|||
*/}}
|
||||
{{ $icon := "information-circle" }}
|
||||
{{ $class := "bg-primary-100 dark:bg-primary-900" }}
|
||||
{{ $class_text := "text-primary-400" }}
|
||||
{{ $class_text := "text-primary-600 dark:text-primary-300" }}
|
||||
{{ with (.Get 0) }}
|
||||
{{ if eq . "note" }}
|
||||
{{ $icon = "information-circle" }}
|
||||
|
@ -22,7 +22,7 @@
|
|||
{{ $icon = . }}
|
||||
{{end}}
|
||||
{{end}}
|
||||
<div class="flex px-4 py-3 rounded-md {{$class}}">
|
||||
<div class="flex px-4 py-3 mb-6 rounded-md {{$class}}">
|
||||
<span class="pr-3 pt-1 {{$class_text}}">
|
||||
{{ partial "functions/get_icon" (dict "name" $icon "attributes" "height=\"24\"") }}
|
||||
</span>
|
||||
|
|
|
@ -14,7 +14,7 @@ module.exports = {
|
|||
'./layouts/**/*.html',
|
||||
'**/libs/chroma/*.css',
|
||||
'./**/*.svg',
|
||||
'../../starters/**/*.html',
|
||||
'../../starters/**/*.md',
|
||||
...content_extra,
|
||||
// ...(process.env.HB_TPL ? '../../starters/'+process.env.HB_TPL+'/hugo_stats.json' : './hugo_stats.json'),
|
||||
],
|
||||
|
|
Loading…
Reference in a new issue