mirror of
https://github.com/gcushen/hugo-academic.git
synced 2025-07-26 03:00:50 +02:00
fix: add support for Hugo v0.55
Requires Hugo v0.55.2+. Does not work with Hugo v0.55.0 due to bugs fixed in v0.55.2. Fix #1017
This commit is contained in:
parent
817cac04dd
commit
585bdf643b
43 changed files with 218 additions and 255 deletions
10
README.md
10
README.md
|
@ -74,22 +74,20 @@ You can choose from one of the following four methods to install:
|
|||
* One-click install of Academic creates an `academic-kickstart` repository in your GitHub or GitLab account
|
||||
* Netlify will provide you with a customizable URL to access your new site, [or get your own domain](https://sourcethemes.com/academic/docs/domain/)
|
||||
* Shortly after editing content in your repository, your site will automatically update
|
||||
* Optionally, use [Git](https://git-scm.com/downloads) to clone your new repository to your computer for offline editing
|
||||
* Optionally, to edit your site in a [Markdown editor](https://www.typora.io) on your computer, perform the steps in the [*Install with Git*](#install-with-git) section below
|
||||
|
||||
### Install with Git
|
||||
|
||||
Prerequisites:
|
||||
|
||||
* [Download and install Git](https://git-scm.com/downloads)
|
||||
* [Download and install Hugo v0.53](https://gohugo.io/getting-started/installing/#quick-install)
|
||||
* [Download and install Hugo v0.55.2+](https://gohugo.io/getting-started/installing/#quick-install)
|
||||
|
||||
Install:
|
||||
|
||||
1. [Fork](https://github.com/sourcethemes/academic-kickstart#fork-destination-box) the *Academic Kickstart* repository and clone your fork with Git:
|
||||
1. [Fork](https://github.com/sourcethemes/academic-kickstart#fork-destination-box) the *Academic Kickstart* repository and clone your fork with Git, replacing `sourcethemes` with your GitHub username (unless you wish to clone without forking):
|
||||
|
||||
git clone https://github.com/sourcethemes/academic-kickstart.git My_Website
|
||||
|
||||
*Note that if you forked Academic Kickstart, the above command should be edited to clone your fork, i.e. replace `sourcethemes` with your GitHub username.*
|
||||
|
||||
2. Initialize the theme:
|
||||
|
||||
|
@ -100,7 +98,7 @@ Install:
|
|||
|
||||
Prerequisites:
|
||||
|
||||
* [Download and install Hugo v0.53](https://gohugo.io/getting-started/installing/#quick-install)
|
||||
* [Download and install Hugo v0.55.2+](https://gohugo.io/getting-started/installing/#quick-install)
|
||||
|
||||
Install:
|
||||
|
||||
|
|
|
@ -40,7 +40,6 @@ paginate = 10 # Number of items per page in paginated lists.
|
|||
enableEmoji = true
|
||||
footnotereturnlinkcontents = "<sup>^</sup>"
|
||||
ignoreFiles = ["\\.ipynb$", ".ipynb_checkpoints$", "\\.Rmd$", "\\.Rmarkdown$", "_files$", "_cache$"]
|
||||
preserveTaxonomyNames = true
|
||||
|
||||
[outputs]
|
||||
home = [ "HTML", "CSS", "RSS", "JSON" ]
|
||||
|
|
|
@ -1,16 +1,16 @@
|
|||
+++
|
||||
title = "Academic: the website designer for Hugo"
|
||||
title = "Academic: the website builder for Hugo"
|
||||
subtitle = "Create a beautifully simple website in under 10 minutes :rocket:"
|
||||
|
||||
date = 2016-04-20T00:00:00
|
||||
lastmod = 2018-01-13T00:00:00
|
||||
draft = false
|
||||
date = 2016-04-20T00:00:00 # Schedule a publish date
|
||||
lastmod = 2019-04-17T00:00:00 # Date last modified
|
||||
draft = false # Display this post? (true/false)
|
||||
|
||||
# Authors. Comma separated list, e.g. `["Bob Smith", "David Jones"]`.
|
||||
authors = ["admin"]
|
||||
|
||||
tags = ["Academic"]
|
||||
summary = "Create a beautifully simple website or blog in under 10 minutes."
|
||||
summary = "Create a beautifully simple website in under 10 minutes."
|
||||
|
||||
# Projects (optional).
|
||||
# Associate this post with one or more of your projects.
|
||||
|
@ -76,10 +76,12 @@ image = "theme-cupcake.png"
|
|||
caption = "Cupcake"
|
||||
+++
|
||||
|
||||
**Academic** makes it easy to create a beautiful website for free using Markdown. Customize anything on your site with widgets, themes, and language packs.
|
||||
**Create a free website with Academic using Markdown, Jupyter, or RStudio. Choose a beautiful color theme and build anything with the Page Builder - over 40 _widgets_, _themes_, and _language packs_ included!**
|
||||
|
||||
Follow our easy [step by step guide](https://sourcethemes.com/academic/docs/install/) to learn how to build your own free website with Academic. [Check out the personal demo](https://academic-demo.netlify.com/) or the [business demo](https://sourcethemes.com/academic/) of what you'll get in less than 10 minutes.
|
||||
[Check out the latest **demo**](https://academic-demo.netlify.com/) of what you'll get in less than 10 minutes, or [view the **showcase**](https://sourcethemes.com/academic/#expo) of personal, project, and business sites.
|
||||
|
||||
- [**Setup Academic**](#install)
|
||||
- [**Get Started**](https://sourcethemes.com/academic/docs/get-started/)
|
||||
- [View the documentation](https://sourcethemes.com/academic/docs/)
|
||||
- [Ask a question](http://discuss.gohugo.io/)
|
||||
- [Request a feature or report a bug](https://github.com/gcushen/hugo-academic/issues)
|
||||
|
@ -92,19 +94,29 @@ Follow our easy [step by step guide](https://sourcethemes.com/academic/docs/inst
|
|||
|
||||
[](https://github.com/gcushen/hugo-academic/)
|
||||
|
||||
Key features:
|
||||
**Key features:**
|
||||
|
||||
- Easily manage various content including homepage, blog posts, publications, talks, and projects
|
||||
- Extensible via **color themes** and **widgets/plugins**
|
||||
- Write in [Markdown](https://sourcethemes.com/academic/docs/writing-markdown-latex/) for easy formatting and code highlighting, with [LaTeX](https://en.wikibooks.org/wiki/LaTeX/Mathematics) for mathematical expressions
|
||||
- Social/academic network linking, [Google Analytics](https://analytics.google.com), and [Disqus](https://disqus.com) comments
|
||||
- Responsive and mobile friendly
|
||||
- Simple and refreshing one page design
|
||||
- Multilingual and easy to customize
|
||||
- **Page builder** - Create *anything* with [**widgets**](https://sourcethemes.com/academic/docs/page-builder/) and [**elements**](https://sourcethemes.com/academic/docs/writing-markdown-latex/)
|
||||
- **Edit any type of content** - Blog posts, publications, talks, slides, projects, and more!
|
||||
- **Create content** in [**Markdown**](https://sourcethemes.com/academic/docs/writing-markdown-latex/), [**Jupyter**](https://sourcethemes.com/academic/docs/jupyter/), or [**RStudio**](https://sourcethemes.com/academic/docs/install/#install-with-rstudio)
|
||||
- **Plugin System** - Fully customizable [**color** and **font themes**](https://sourcethemes.com/academic/themes/)
|
||||
- **Display Code and Math** - Code highlighting and [LaTeX math](https://en.wikibooks.org/wiki/LaTeX/Mathematics) supported
|
||||
- **Integrations** - [Google Analytics](https://analytics.google.com), [Disqus commenting](https://disqus.com), Maps, Contact Forms, and more!
|
||||
- **Beautiful Site** - Simple and refreshing one page design
|
||||
- **Industry-Leading SEO** - Help get your website found on search engines and social media
|
||||
- **Media Galleries** - Display your images and videos with captions in a customizable gallery
|
||||
- **Mobile Friendly** - Look amazing on every screen with a mobile friendly version of your site
|
||||
- **Multi-language** - 15+ language packs including English, 中文, and Português
|
||||
- **Multi-user** - Each author gets their own profile page
|
||||
- **Privacy Pack** - Assists with GDPR
|
||||
- **Stand Out** - Bring your site to life with animation, parallax backgrounds, and scroll effects
|
||||
- **One-Click Deployment** - No servers. No databases. Only files.
|
||||
|
||||
## Color Themes
|
||||
|
||||
Academic is available in different color themes and font themes.
|
||||
Academic comes with **day (light) and night (dark) mode** built-in. Click the sun/moon icon in the top right of the [Demo](https://academic-demo.netlify.com/) to see it in action!
|
||||
|
||||
Choose a stunning color and font theme for your site. Themes are fully customizable and include:
|
||||
|
||||
{{< gallery >}}
|
||||
|
||||
|
@ -117,76 +129,18 @@ Academic is available in different color themes and font themes.
|
|||
|
||||
You can choose from one of the following four methods to install:
|
||||
|
||||
* one-click install using your web browser (recommended)
|
||||
* install on your computer using Git with the Command Prompt/Terminal app
|
||||
* install on your computer by downloading the ZIP files
|
||||
* install on your computer with RStudio
|
||||
* [**one-click install using your web browser (recommended)**](https://sourcethemes.com/academic/docs/install/#install-with-web-browser)
|
||||
* [install on your computer using **Git** with the Command Prompt/Terminal app](https://sourcethemes.com/academic/docs/install/#install-with-git)
|
||||
* [install on your computer by downloading the **ZIP files**](https://sourcethemes.com/academic/docs/install/#install-with-zip)
|
||||
* [install on your computer with **RStudio**](https://sourcethemes.com/academic/docs/install/#install-with-rstudio)
|
||||
|
||||
### Quick install using your web browser
|
||||
|
||||
1. [Install Academic with Netlify](https://app.netlify.com/start/deploy?repository=https://github.com/sourcethemes/academic-kickstart)
|
||||
* Netlify will provide you with a customizable URL to access your new site
|
||||
2. On GitHub, go to your newly created `academic-kickstart` repository and edit `config.toml` to personalize your site. Shortly after saving the file, your site will automatically update
|
||||
3. Read the [Quick Start Guide](https://sourcethemes.com/academic/docs/) to learn how to add Markdown content. For inspiration, refer to the [Markdown content](https://github.com/gcushen/hugo-academic/tree/master/exampleSite) which powers the [Demo](https://academic-demo.netlify.com/)
|
||||
|
||||
### Install with Git
|
||||
|
||||
Prerequisites:
|
||||
|
||||
* [Download and install Git](https://git-scm.com/downloads)
|
||||
* [Download and install Hugo](https://gohugo.io/getting-started/installing/#quick-install)
|
||||
|
||||
1. [Fork](https://github.com/sourcethemes/academic-kickstart#fork-destination-box) the *Academic Kickstart* repository and clone your fork with Git:
|
||||
|
||||
git clone https://github.com/sourcethemes/academic-kickstart.git My_Website
|
||||
|
||||
*Note that if you forked Academic Kickstart, the above command should be edited to clone your fork, i.e. replace `sourcethemes` with your GitHub username.*
|
||||
|
||||
2. Initialize the theme:
|
||||
|
||||
cd My_Website
|
||||
git submodule update --init --recursive
|
||||
|
||||
### Install with ZIP
|
||||
|
||||
1. [Download](https://github.com/sourcethemes/academic-kickstart/archive/master.zip) and extract *Academic Kickstart*
|
||||
2. [Download](https://github.com/gcushen/hugo-academic/archive/master.zip) and extract the *Academic theme* to the `themes/academic/` folder from the above step
|
||||
|
||||
### Install with RStudio
|
||||
|
||||
[View the guide to installing Academic with RStudio](https://sourcethemes.com/academic/docs/install/#install-with-rstudio)
|
||||
|
||||
## Quick start
|
||||
|
||||
1. If you installed on your computer, view your new website by running the following command:
|
||||
|
||||
hugo server
|
||||
|
||||
Now visit [localhost:1313](http://localhost:1313) and your new Academic powered website will appear. Otherwise, if using Netlify, they will provide you with your URL.
|
||||
|
||||
2. Read the [Quick Start Guide](https://sourcethemes.com/academic/docs/) to learn how to add Markdown content, customize your site, and deploy it. For inspiration, refer to the [Markdown content](https://github.com/gcushen/hugo-academic/tree/master/exampleSite) which powers the [Demo](https://academic-demo.netlify.com/)
|
||||
|
||||
3. Build your site by running the `hugo` command. Then [host it for free using Github Pages](https://georgecushen.com/create-your-website-with-hugo/) or Netlify (refer to the first installation method). Alternatively, copy the generated `public/` directory (by FTP, Rsync, etc.) to your production web server (such as a university's hosting service).
|
||||
Then [personalize and deploy your new site](https://sourcethemes.com/academic/docs/get-started/).
|
||||
|
||||
## Updating
|
||||
|
||||
Feel free to *star* the project on [Github](https://github.com/gcushen/hugo-academic/) to help keep track of updates and check out the [release notes](https://sourcethemes.com/academic/updates) prior to updating your site.
|
||||
[View the Update Guide](https://sourcethemes.com/academic/docs/update/).
|
||||
|
||||
Before updating the framework, it is recommended to make a backup of your entire website directory (or at least your `themes/academic` directory) and record your current version number.
|
||||
|
||||
By default, Academic is installed as a Git submodule which can be updated by running the following command:
|
||||
|
||||
```bash
|
||||
git submodule update --remote --merge
|
||||
```
|
||||
|
||||
[Check out the update guide](https://sourcethemes.com/academic/docs/update/) for full instructions and alternative methods.
|
||||
|
||||
## Feedback & Contributing
|
||||
|
||||
Please use the [issue tracker](https://github.com/gcushen/hugo-academic/issues) to let me know about any bugs or feature requests, or alternatively make a pull request.
|
||||
|
||||
For support, head over to the [Hugo discussion forum](http://discuss.gohugo.io).
|
||||
Feel free to *star* the project on [Github](https://github.com/gcushen/hugo-academic/) to help keep track of [updates](https://sourcethemes.com/academic/updates).
|
||||
|
||||
## License
|
||||
|
||||
|
|
|
@ -77,7 +77,7 @@ Click on the **Slides** button above to view the built-in slides feature.
|
|||
|
||||
Slides can be added in a few ways:
|
||||
|
||||
- **Create** slides using Academic's *Slides* feature and link using `url_slides` parameter in the front matter of the talk file
|
||||
- **Create** slides using Academic's [*Slides*](https://sourcethemes.com/academic/docs/managing-content/#create-slides) feature and link using `slides` parameter in the front matter of the talk file
|
||||
- **Upload** an existing slide deck to `static/` and link using `url_slides` parameter in the front matter of the talk file
|
||||
- **Embed** your slides (e.g. Google Slides) or presentation video on this page using [shortcodes](https://sourcethemes.com/academic/docs/writing-markdown-latex/).
|
||||
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
{{ partial "navbar.html" . }}
|
||||
|
||||
{{/* Just display author name as title if user profile unavailable. */}}
|
||||
{{ if not ($.Site.GetPage (printf "/author/%s" (urlize .Title))) }}
|
||||
{{ if not (site.GetPage (printf "/author/%s" (urlize .Title))) }}
|
||||
<div class="universal-wrapper pt-3">
|
||||
<h1 itemprop="name">{{ .Title }}</h1>
|
||||
</div>
|
||||
|
@ -13,7 +13,7 @@
|
|||
{{/* Only show About widget if a profile has been configured for this user. */}}
|
||||
{{ $widget := "widgets/about.html" }}
|
||||
{{ $params := dict "root" $ "page" . "author" .Title }}
|
||||
{{ with $.Site.GetPage (printf "/author/%s" (urlize .Title)) }}
|
||||
{{ with site.GetPage (printf "/author/%s" (urlize .Title)) }}
|
||||
{{ partial $widget $params }}
|
||||
{{ end }}
|
||||
|
||||
|
|
|
@ -12,7 +12,7 @@
|
|||
{{ $paginator := .Paginate .Data.Pages }}
|
||||
{{ range $k, $v := $paginator.Pages }}
|
||||
{{ $person_page_path := (printf "/author/%s" (urlize $v.Title)) }}
|
||||
{{ $person_page := $.Site.GetPage $person_page_path }}
|
||||
{{ $person_page := site.GetPage $person_page_path }}
|
||||
{{ $name := "" }}
|
||||
{{ if $person_page }}
|
||||
{{ $person := $person_page.Params }}
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
{{- $scr := .Scratch -}}
|
||||
{{- $scr.Set "site" $.Site -}}
|
||||
{{- $scr.Set "site" site -}}
|
||||
|
||||
{{- partial "css/parse_theme.css" . -}}
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
{{ if not (isset $.Site.Params "color_theme") }}
|
||||
{{ if not (isset site.Params "color_theme") }}
|
||||
{{ errorf "Please complete the installation of Academic by following the steps at https://sourcethemes.com/academic/docs/install/" }}
|
||||
{{ end }}
|
||||
{{ partial "widget_page.html" . }}
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
{{- /* Add the index page of docs separately since it's not in RegularPages above. */ -}}
|
||||
{{- $pages := $pages | union (where (where .Site.Pages "Kind" "section") "Type" "docs") -}}
|
||||
{{- /* Add author pages to index so their bios can be searched. Hide empty `/author/` node. */ -}}
|
||||
{{- $pages := $pages | union (where (where $.Site.Pages "Section" "author") "Params.name" "!=" nil) -}}
|
||||
{{- $pages := $pages | union (where (where site.Pages "Section" "author") "Params.name" "!=" nil) -}}
|
||||
|
||||
{{- range $pages -}}
|
||||
{{- /* Do not index drafts or private pages. */ -}}
|
||||
|
@ -29,7 +29,7 @@
|
|||
{{- if eq .Section "author" -}}
|
||||
{{- $title = .Params.name -}}
|
||||
{{- $dir := path.Base (path.Split .Path).Dir -}}
|
||||
{{- with $.Site.GetPage (printf "/authors/%s" (path.Base (path.Split .Path).Dir)) -}}
|
||||
{{- with site.GetPage (printf "/authors/%s" (path.Base (path.Split .Path).Dir)) -}}
|
||||
{{- $permalink = .Permalink -}}
|
||||
{{- $rel_permalink = .RelPermalink -}}
|
||||
{{- end -}}
|
||||
|
@ -41,7 +41,7 @@
|
|||
{{- $authors = slice -}}
|
||||
{{- range $k, $v := .Params.authors -}}
|
||||
{{- $person_page_path := (printf "/author/%s" (urlize $v)) -}}
|
||||
{{- $person_page := $.Site.GetPage $person_page_path -}}
|
||||
{{- $person_page := site.GetPage $person_page_path -}}
|
||||
{{- if $person_page -}}
|
||||
{{- $person := $person_page.Params -}}
|
||||
{{- $authors = $authors | append $person.name -}}
|
||||
|
@ -54,7 +54,7 @@
|
|||
{{- end -}}
|
||||
|
||||
{{- /* Add page to index. */ -}}
|
||||
{{- $index = $index | append (dict "objectID" .UniqueID "date" .Date.UTC.Unix "publishdate" .PublishDate "lastmod" .Lastmod.UTC.Unix "expirydate" .ExpiryDate.UTC.Unix "lang" .Lang "permalink" $permalink "relpermalink" $rel_permalink "title" $title "summary" (plainify $desc) "content" .Plain "authors" $authors "kind" .Kind "type" .Type "section" .Section "tags" .Params.Tags "categories" .Params.Categories) -}}
|
||||
{{- $index = $index | append (dict "objectID" .File.UniqueID "date" .Date.UTC.Unix "publishdate" .PublishDate "lastmod" .Lastmod.UTC.Unix "expirydate" .ExpiryDate.UTC.Unix "lang" .Lang "permalink" $permalink "relpermalink" $rel_permalink "title" $title "summary" (plainify $desc) "content" .Plain "authors" $authors "kind" .Kind "type" .Type "section" .Section "tags" .Params.Tags "categories" .Params.Categories) -}}
|
||||
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
|
|
|
@ -39,7 +39,7 @@
|
|||
</div>
|
||||
|
||||
<div class="body-footer">
|
||||
{{ i18n "last_updated" }} {{ $.Lastmod.Format $.Site.Params.date_format }}
|
||||
{{ i18n "last_updated" }} {{ $.Lastmod.Format site.Params.date_format }}
|
||||
</div>
|
||||
|
||||
</article>
|
||||
|
|
|
@ -10,14 +10,14 @@
|
|||
<span><i class="fas fa-bars"></i></span>
|
||||
</button>
|
||||
|
||||
{{ if eq $.Site.Params.search.engine 1 }}
|
||||
{{ if eq site.Params.search.engine 1 }}
|
||||
<input name="q" type="search" class="form-control" id="search-query" placeholder="{{ i18n "search_placeholder" }}" autocomplete="off">
|
||||
{{ end }}
|
||||
</form>
|
||||
|
||||
<nav class="collapse docs-links" id="docs-nav">
|
||||
{{ with (index .Site.Menus $menu_name) }}
|
||||
{{ range (index $.Site.Menus $menu_name).ByWeight }}
|
||||
{{ range (index site.Menus $menu_name).ByWeight }}
|
||||
<div class="docs-toc-item{{ if $current_page.IsMenuCurrent $menu_name . }} active{{ end }}">
|
||||
<a class="docs-toc-link" {{ if .URL }}href="{{ .URL }}"{{else if .HasChildren }}href="{{ (index .Children 0).URL }}"{{end}}>{{ .Name }}</a>
|
||||
|
||||
|
|
|
@ -42,8 +42,8 @@
|
|||
{{ end }}
|
||||
|
||||
{{/* Comments JS. */}}
|
||||
{{ $comments_enabled := and $.Site.DisqusShortname (not (or $.Site.Params.disable_comments $.Params.disable_comments)) }}
|
||||
{{ if and $comments_enabled ($.Site.Params.comment_count | default true) }}
|
||||
{{ $comments_enabled := and site.DisqusShortname (not (or site.Params.disable_comments $.Params.disable_comments)) }}
|
||||
{{ if and $comments_enabled (site.Params.comment_count | default true) }}
|
||||
<script id="dsq-count-scr" src="//{{ .Site.DisqusShortname }}.disqus.com/count.js" async></script>
|
||||
{{ end }}
|
||||
|
||||
|
@ -78,7 +78,7 @@
|
|||
</script>
|
||||
{{ end }}
|
||||
|
||||
{{ if eq $.Site.Params.search.engine 1 }}
|
||||
{{ if eq site.Params.search.engine 1 }}
|
||||
{{/* Fuse search result template. */}}
|
||||
<script id="search-hit-fuse-template" type="text/x-template">
|
||||
<div class="search-hit" id="summary-{{"{{key}}"}}">
|
||||
|
@ -91,7 +91,7 @@
|
|||
</div>
|
||||
</div>
|
||||
</script>
|
||||
{{ else if eq $.Site.Params.search.engine 2 }}
|
||||
{{ else if eq site.Params.search.engine 2 }}
|
||||
{{/* Algolia search result template. */}}
|
||||
<script id="search-hit-algolia-template" type="text/html">
|
||||
<div class="search-hit">
|
||||
|
@ -135,7 +135,7 @@
|
|||
{{ $js_bundle := slice }}
|
||||
{{ if eq .Site.Params.search.engine 1 }}
|
||||
{{ $js_bundle = slice $js_academic $js_academic_search }}
|
||||
{{ else if eq $.Site.Params.search.engine 2 }}
|
||||
{{ else if eq site.Params.search.engine 2 }}
|
||||
{{ $js_bundle = slice $js_academic $js_algolia_search }}
|
||||
{{ else }}
|
||||
{{ $js_bundle = slice $js_academic }}
|
||||
|
|
|
@ -6,7 +6,6 @@
|
|||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<meta name="generator" content="Source Themes Academic {{ .Site.Data.academic.version }}">
|
||||
{{ .Hugo.Generator }}
|
||||
|
||||
{{ $scr := .Scratch }}
|
||||
|
||||
|
@ -14,7 +13,7 @@
|
|||
{{ $superuser_name := "" }}
|
||||
{{ $superuser_username := "" }}
|
||||
{{ $superuser_role := "" }}
|
||||
{{ range first 1 (where (where $.Site.Pages "Section" "author") "Params.superuser" true) }}
|
||||
{{ range first 1 (where (where site.Pages "Section" "author") "Params.superuser" true) }}
|
||||
{{ $superuser_name = .Params.name }}
|
||||
{{ $superuser_username = delimit (last 1 (split (substr .File.Dir 0 -1) "/")) "" }}
|
||||
{{ $superuser_role = .Params.role }}
|
||||
|
@ -133,9 +132,9 @@
|
|||
{{ end }}
|
||||
{{ end }}
|
||||
|
||||
{{ if or .Site.RSSLink .RSSLink }}
|
||||
<link rel="alternate" href="{{ .RSSLink | default .Site.RSSLink }}" type="application/rss+xml" title="{{ .Site.Title }}">
|
||||
<link rel="feed" href="{{ .RSSLink | default .Site.RSSLink }}" type="application/rss+xml" title="{{ .Site.Title }}">
|
||||
{{ with .OutputFormats.Get "RSS" }}
|
||||
<link rel="alternate" href="{{ .RelPermalink }}" type="application/rss+xml" title="{{ site.Title }}">
|
||||
<link rel="feed" href="{{ .RelPermalink }}" type="application/rss+xml" title="{{ site.Title }}">
|
||||
{{ end }}
|
||||
|
||||
<link rel="manifest" href="{{ "site.webmanifest" | relURL }}">
|
||||
|
@ -154,7 +153,7 @@
|
|||
{{ else if .Site.Params.sharing_image }}
|
||||
{{ $og_image = printf "img/%s" .Site.Params.sharing_image | absURL }}
|
||||
{{ else if .Site.Params.avatar }}
|
||||
{{ $og_image = (printf "img/%s" $.Site.Params.avatar) | absURL }}
|
||||
{{ $og_image = (printf "img/%s" site.Params.avatar) | absURL }}
|
||||
{{ $twitter_card = "summary" }}
|
||||
{{ else }}
|
||||
{{ $og_image = "img/icon-192.png" | absURL }}
|
||||
|
|
|
@ -37,11 +37,11 @@
|
|||
{{ end }}
|
||||
<span itemprop="startDate">
|
||||
{{ $date := $item.Date }}
|
||||
{{ (time $date).Format $.Site.Params.date_format }}
|
||||
{{ (time $date).Format site.Params.date_format }}
|
||||
{{ if not $item.Params.all_day }}
|
||||
{{ (time $date).Format ($.Site.Params.time_format | default "3:04 PM") }}
|
||||
{{ (time $date).Format (site.Params.time_format | default "3:04 PM") }}
|
||||
{{ with $item.Params.date_end }}
|
||||
— {{ (time .).Format ($.Site.Params.time_format | default "3:04 PM") }}
|
||||
— {{ (time .).Format (site.Params.time_format | default "3:04 PM") }}
|
||||
{{ end }}
|
||||
{{ end }}
|
||||
</span>
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
<i class="far fa-file-alt pub-icon" aria-hidden="true"></i>
|
||||
|
||||
{{/* APA Style */}}
|
||||
{{ if eq ($.Site.Params.publications.citation_style | default "apa") "apa" }}
|
||||
{{ if eq (site.Params.publications.citation_style | default "apa") "apa" }}
|
||||
|
||||
<span itemprop="author" class="article-metadata li-cite-author">
|
||||
{{ partial "page_metadata_authors" . }}
|
||||
|
|
|
@ -46,11 +46,11 @@
|
|||
<div>
|
||||
<span itemprop="startDate">
|
||||
{{ $date := $item.Date }}
|
||||
{{ (time $date).Format $.Site.Params.date_format }}
|
||||
{{ (time $date).Format site.Params.date_format }}
|
||||
{{ if not $item.Params.all_day }}
|
||||
{{ (time $date).Format ($.Site.Params.time_format | default "3:04 PM") }}
|
||||
{{ (time $date).Format (site.Params.time_format | default "3:04 PM") }}
|
||||
{{ with $item.Params.date_end }}
|
||||
— {{ (time .).Format ($.Site.Params.time_format | default "3:04 PM") }}
|
||||
— {{ (time .).Format (site.Params.time_format | default "3:04 PM") }}
|
||||
{{ end }}
|
||||
{{ end }}
|
||||
</span>
|
||||
|
|
|
@ -26,11 +26,11 @@
|
|||
<div class="article-metadata">
|
||||
<span itemprop="startDate">
|
||||
{{ $date := $item.Date }}
|
||||
{{ (time $date).Format $.Site.Params.date_format }}
|
||||
{{ (time $date).Format site.Params.date_format }}
|
||||
{{ if not $item.Params.all_day }}
|
||||
{{ (time $date).Format ($.Site.Params.time_format | default "3:04 PM") }}
|
||||
{{ (time $date).Format (site.Params.time_format | default "3:04 PM") }}
|
||||
{{ with $item.Params.date_end }}
|
||||
— {{ (time .).Format ($.Site.Params.time_format | default "3:04 PM") }}
|
||||
— {{ (time .).Format (site.Params.time_format | default "3:04 PM") }}
|
||||
{{ end }}
|
||||
{{ end }}
|
||||
</span>
|
||||
|
|
|
@ -15,12 +15,12 @@
|
|||
{{ end }}
|
||||
|
||||
{{ $person_page_path := (printf "/author/%s" $author_urlize) }}
|
||||
{{ $person_page := $.Site.GetPage $person_page_path }}
|
||||
{{ $person_page := site.GetPage $person_page_path }}
|
||||
{{ with $person_page }}
|
||||
{{ $link := printf "/authors/%s" $author_urlize | relURL }}
|
||||
{{ $avatar := ($person_page.Resources.ByType "image").GetMatch "*avatar*" }}
|
||||
<div class="media author-card" itemscope itemtype="http://schema.org/Person">
|
||||
{{ if and $.Site.Params.gravatar .Params.email }}
|
||||
{{ if and site.Params.gravatar .Params.email }}
|
||||
<img class="portrait mr-3" src="https://s.gravatar.com/avatar/{{ md5 .Params.email }}?s=200')" itemprop="image" alt="Avatar">
|
||||
{{ else if $avatar }}
|
||||
{{ $avatar_image := $avatar.Fill "250x250 Center" }}
|
||||
|
|
|
@ -1,10 +1,10 @@
|
|||
{{ $is_list := .is_list }}
|
||||
{{ $ := .content }}
|
||||
{{ $page := .page }}
|
||||
{{ $link := "" }}
|
||||
|
||||
{{/* ***** TODO: Deprecate `url_preprint` in favour of `url_pdf` given there's now a dedicated "Preprint" pub. type. ***** */}}
|
||||
{{ with $.Params.url_preprint }}
|
||||
{{ $resource := $.Resources.GetMatch . }}
|
||||
{{ with $page.Params.url_preprint }}
|
||||
{{ $resource := $page.Resources.GetMatch . }}
|
||||
{{ if $resource }}
|
||||
{{ $link = $resource.RelPermalink }}
|
||||
{{ else }}
|
||||
|
@ -15,12 +15,12 @@
|
|||
</a>
|
||||
{{ end }}
|
||||
{{ $pdf := "" }}
|
||||
{{ $resource := $.Resources.GetMatch (printf "%s.pdf" $.File.ContentBaseName) }}
|
||||
{{ $resource := $page.Resources.GetMatch (printf "%s.pdf" $page.File.ContentBaseName) }}
|
||||
{{ with $resource }}
|
||||
{{ $pdf = .RelPermalink }}
|
||||
{{ else }}
|
||||
{{ if $.Params.url_pdf }}
|
||||
{{ $pdf = $.Params.url_pdf | relURL }}
|
||||
{{ if $page.Params.url_pdf }}
|
||||
{{ $pdf = $page.Params.url_pdf | relURL }}
|
||||
{{ end }}
|
||||
{{ end }}
|
||||
|
||||
|
@ -29,15 +29,15 @@
|
|||
{{ i18n "btn_pdf" }}
|
||||
</a>
|
||||
{{ end }}
|
||||
{{ $resource := $.Resources.GetMatch "*.bib" }}
|
||||
{{ $resource := $page.Resources.GetMatch "*.bib" }}
|
||||
{{ with $resource }}
|
||||
<button type="button" class="btn btn-outline-primary my-1 mr-1{{ if $is_list }} btn-sm{{end}} js-cite-modal"
|
||||
data-filename="{{ .RelPermalink }}">
|
||||
{{ i18n "btn_cite" }}
|
||||
</button>
|
||||
{{ end }}
|
||||
{{ with $.Params.url_code }}
|
||||
{{ $resource := $.Resources.GetMatch . }}
|
||||
{{ with $page.Params.url_code }}
|
||||
{{ $resource := $page.Resources.GetMatch . }}
|
||||
{{ if $resource }}
|
||||
{{ $link = $resource.RelPermalink }}
|
||||
{{ else }}
|
||||
|
@ -47,8 +47,8 @@
|
|||
{{ i18n "btn_code" }}
|
||||
</a>
|
||||
{{ end }}
|
||||
{{ with $.Params.url_dataset }}
|
||||
{{ $resource := $.Resources.GetMatch . }}
|
||||
{{ with $page.Params.url_dataset }}
|
||||
{{ $resource := $page.Resources.GetMatch . }}
|
||||
{{ if $resource }}
|
||||
{{ $link = $resource.RelPermalink }}
|
||||
{{ else }}
|
||||
|
@ -58,25 +58,25 @@
|
|||
{{ i18n "btn_dataset" }}
|
||||
</a>
|
||||
{{ end }}
|
||||
{{ if $.Params.projects }}
|
||||
{{ range $.Params.projects }}
|
||||
{{ with ($.Site.GetPage (printf "project/%s" .)) }}
|
||||
{{ if $page.Params.projects }}
|
||||
{{ range $page.Params.projects }}
|
||||
{{ with (site.GetPage (printf "project/%s" .)) }}
|
||||
<a class="btn btn-outline-primary my-1 mr-1{{ if $is_list }} btn-sm{{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." $.File.Path . */}}
|
||||
{{/* 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 $.Params.url_project }}
|
||||
{{ with $page.Params.url_project }}
|
||||
<a class="btn btn-outline-primary my-1 mr-1{{ if $is_list }} btn-sm{{end}}" href="{{ . }}" target="_blank" rel="noopener">
|
||||
{{ i18n "btn_project" }}
|
||||
</a>
|
||||
{{ end }}
|
||||
{{ end }}
|
||||
{{ with $.Params.url_poster }}
|
||||
{{ $resource := $.Resources.GetMatch . }}
|
||||
{{ with $page.Params.url_poster }}
|
||||
{{ $resource := $page.Resources.GetMatch . }}
|
||||
{{ if $resource }}
|
||||
{{ $link = $resource.RelPermalink }}
|
||||
{{ else }}
|
||||
|
@ -86,15 +86,15 @@
|
|||
{{ i18n "btn_poster" }}
|
||||
</a>
|
||||
{{ end }}
|
||||
{{ if $.Params.slides }}
|
||||
{{ with ($.Site.GetPage (printf "slides/%s" $.Params.slides)) }}
|
||||
{{ if $page.Params.slides }}
|
||||
{{ with (site.GetPage (printf "slides/%s" $page.Params.slides)) }}
|
||||
<a class="btn btn-outline-primary my-1 mr-1{{ if $is_list }} btn-sm{{end}}" href="{{ .RelPermalink }}" target="_blank">
|
||||
{{ i18n "btn_slides" }}
|
||||
</a>
|
||||
{{ end }}
|
||||
{{ else }}
|
||||
{{ with $.Params.url_slides }}
|
||||
{{ $resource := $.Resources.GetMatch . }}
|
||||
{{ with $page.Params.url_slides }}
|
||||
{{ $resource := $page.Resources.GetMatch . }}
|
||||
{{ if $resource }}
|
||||
{{ $link = $resource.RelPermalink }}
|
||||
{{ else }}
|
||||
|
@ -105,8 +105,8 @@
|
|||
</a>
|
||||
{{ end }}
|
||||
{{ end }}
|
||||
{{ with $.Params.url_video }}
|
||||
{{ $resource := $.Resources.GetMatch . }}
|
||||
{{ with $page.Params.url_video }}
|
||||
{{ $resource := $page.Resources.GetMatch . }}
|
||||
{{ if $resource }}
|
||||
{{ $link = $resource.RelPermalink }}
|
||||
{{ else }}
|
||||
|
@ -116,8 +116,8 @@
|
|||
{{ i18n "btn_video" }}
|
||||
</a>
|
||||
{{ end }}
|
||||
{{ with $.Params.url_source }}
|
||||
{{ $resource := $.Resources.GetMatch . }}
|
||||
{{ with $page.Params.url_source }}
|
||||
{{ $resource := $page.Resources.GetMatch . }}
|
||||
{{ if $resource }}
|
||||
{{ $link = $resource.RelPermalink }}
|
||||
{{ else }}
|
||||
|
@ -127,12 +127,12 @@
|
|||
{{ i18n "btn_source" }}
|
||||
</a>
|
||||
{{ end }}
|
||||
{{ with $.Params.doi }}
|
||||
{{ with $page.Params.doi }}
|
||||
<a class="btn btn-outline-primary my-1 mr-1{{ if $is_list }} btn-sm{{end}}" href="https://doi.org/{{ . }}" target="_blank" rel="noopener">
|
||||
DOI
|
||||
</a>
|
||||
{{ end }}
|
||||
{{ range $.Params.links }}
|
||||
{{ range $page.Params.links }}
|
||||
{{ $pack := or .icon_pack "fas" }}
|
||||
{{ $pack_prefix := $pack }}
|
||||
{{ if in (slice "fab" "fas" "far" "fal") $pack }}
|
||||
|
@ -142,7 +142,7 @@
|
|||
{{ $scheme := (urls.Parse $link).Scheme }}
|
||||
{{ $target := "" }}
|
||||
{{ if not $scheme }}
|
||||
{{ $resource := $.Resources.GetMatch .url }}
|
||||
{{ $resource := $page.Resources.GetMatch .url }}
|
||||
{{ if $resource }}
|
||||
{{ $link = $resource.RelPermalink }}
|
||||
{{ else }}
|
||||
|
|
|
@ -1,19 +1,20 @@
|
|||
{{/* Div wrapper around page links. */}}
|
||||
{{/* The wrapper is hidden when the page has no link buttons. */}}
|
||||
|
||||
{{ $page := . }}
|
||||
{{ $pdf_link := false }}
|
||||
{{ $cite_link := false }}
|
||||
|
||||
{{ $slug := "" }}
|
||||
{{ if eq $.File.TranslationBaseName "index" }}{{/* Check if using dir-based page bundles. */}}
|
||||
{{ $slug = delimit (last 1 (split (substr $.Dir 0 -1) "/")) "" }}
|
||||
{{ if eq $page.File.TranslationBaseName "index" }}{{/* Check if using dir-based page bundles. */}}
|
||||
{{ $slug = delimit (last 1 (split (substr $page.File.Dir 0 -1) "/")) "" }}
|
||||
{{ end }}
|
||||
{{ $resource := $.Resources.GetMatch (printf "%s.pdf" $slug) }}
|
||||
{{ $resource := $page.Resources.GetMatch (printf "%s.pdf" $slug) }}
|
||||
{{ with $resource }}
|
||||
{{ $pdf_link = true }}
|
||||
{{ end }}
|
||||
|
||||
{{ $resource := $.Resources.GetMatch "*.bib" }}
|
||||
{{ $resource := $page.Resources.GetMatch "*.bib" }}
|
||||
{{ with $resource }}
|
||||
{{ $cite_link = true }}
|
||||
{{ end }}
|
||||
|
@ -23,6 +24,6 @@
|
|||
{{ 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 "content" . "is_list" 0) }}
|
||||
{{ partial "page_links" (dict "page" $page "is_list" 0) }}
|
||||
</div>
|
||||
{{ end }}
|
||||
|
|
|
@ -19,9 +19,9 @@
|
|||
|
||||
{{ if not (in (slice "talk" "page") $.Type) }}
|
||||
<span class="article-date">
|
||||
{{ $date := $.Lastmod.Format $.Site.Params.date_format }}
|
||||
{{ $date := $.Lastmod.Format site.Params.date_format }}
|
||||
{{ if eq $.Type "publication" }}
|
||||
{{ $date = $.Date.Format ($.Site.Params.publications.date_format | default "January, 2006") }}
|
||||
{{ $date = $.Date.Format (site.Params.publications.date_format | default "January, 2006") }}
|
||||
{{ else }}
|
||||
{{ if ne $.Params.Lastmod $.Params.Date }}
|
||||
{{ i18n "last_updated" }}
|
||||
|
@ -42,15 +42,15 @@
|
|||
</span>
|
||||
{{ end }}
|
||||
|
||||
{{ if and (eq $.Type "post") (not (or (eq $.Site.Params.reading_time false) (eq $.Params.reading_time false))) }}
|
||||
{{ if and (eq $.Type "post") (not (or (eq site.Params.reading_time false) (eq $.Params.reading_time false))) }}
|
||||
<span class="middot-divider"></span>
|
||||
<span class="article-reading-time">
|
||||
{{ $.ReadingTime }} {{ i18n "minute_read" }}
|
||||
</span>
|
||||
{{ end }}
|
||||
|
||||
{{ $comments_enabled := and $.Site.DisqusShortname (not (or $.Site.Params.disable_comments (eq $.Params.comments false))) }}
|
||||
{{ if and $comments_enabled ($.Site.Params.comment_count | default true) }}
|
||||
{{ $comments_enabled := and site.DisqusShortname (not (or site.Params.disable_comments (eq $.Params.comments false))) }}
|
||||
{{ if and $comments_enabled (site.Params.comment_count | default true) }}
|
||||
<span class="middot-divider"></span>
|
||||
<a href="{{ $.RelPermalink }}#disqus_thread"><!-- Count will be inserted here --></a>
|
||||
{{ end}}
|
||||
|
@ -62,7 +62,7 @@
|
|||
<span class="article-categories">
|
||||
<i class="fas fa-folder"></i>
|
||||
{{ range $k, $v := $.Params.categories }}
|
||||
<a href="{{ ($.Site.GetPage (printf "categories/%s" .)).RelPermalink }}">{{ . }}</a>
|
||||
<a href="{{ (site.GetPage (printf "categories/%s" .)).RelPermalink }}">{{ . }}</a>
|
||||
{{- if lt $k (sub $categoriesLen 1) -}}, {{ end }}
|
||||
{{ end }}
|
||||
</span>
|
||||
|
|
|
@ -5,10 +5,10 @@
|
|||
{{ range $k, $v := $.Params.authors -}}
|
||||
<span itemscope itemprop="author" itemtype="http://schema.org/Person">
|
||||
<span itemprop="name">
|
||||
{{ $link := ($.Site.GetPage (printf "/authors/%s" $v)).RelPermalink }}
|
||||
{{ $link := (site.GetPage (printf "/authors/%s" (urlize $v))).RelPermalink }}
|
||||
|
||||
{{ $person_page_path := (printf "/author/%s" (urlize $v)) }}
|
||||
{{ $person_page := $.Site.GetPage $person_page_path }}
|
||||
{{ $person_page := site.GetPage $person_page_path }}
|
||||
{{ if $person_page }}
|
||||
{{ $person := $person_page.Params }}
|
||||
{{- printf "<a href=\"%s\">%s</a>" $link $person.name | safeHTML -}}
|
||||
|
|
|
@ -2,10 +2,10 @@
|
|||
<nav>
|
||||
<ul class="pagination justify-content-center">
|
||||
{{ if .Paginator.HasPrev }}
|
||||
<li class="page-item"><a class="page-link" href="{{ .Paginator.Prev.URL }}">«</a></li>
|
||||
<li class="page-item"><a class="page-link" href="{{ .Paginator.Prev.RelPermalink }}">«</a></li>
|
||||
{{ end }}
|
||||
{{ if .Paginator.HasNext }}
|
||||
<li class="page-item"><a class="page-link" href="{{ .Paginator.Next.URL }}">»</a></li>
|
||||
<li class="page-item"><a class="page-link" href="{{ .Paginator.Next.RelPermalink }}">»</a></li>
|
||||
{{ end }}
|
||||
</ul>
|
||||
</nav>
|
||||
|
|
|
@ -12,7 +12,7 @@
|
|||
</div>
|
||||
|
||||
<div id="search-box">
|
||||
{{ if eq $.Site.Params.search.engine 1 }}
|
||||
{{ if eq site.Params.search.engine 1 }}
|
||||
<input name="q" id="search-query" placeholder="{{i18n "search_placeholder"}}" autocapitalize="off"
|
||||
autocomplete="off" autocorrect="off" role="textbox" spellcheck="false" type="search">
|
||||
{{ else }}
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
{{ if gt $tagsLen 0 }}
|
||||
<div class="article-tags">
|
||||
{{ range $k, $v := $.Params.tags }}
|
||||
<a class="badge badge-light" href="{{ ($.Site.GetPage (printf "tags/%s" .)).RelPermalink }}">{{ . }}</a>
|
||||
<a class="badge badge-light" href="{{ (site.GetPage (printf "tags/%s" .)).RelPermalink }}">{{ . }}</a>
|
||||
{{ end }}
|
||||
</div>
|
||||
{{ end }}
|
||||
|
|
|
@ -9,7 +9,7 @@
|
|||
{{end}}
|
||||
|
||||
{{ $person_page_path := (printf "/author/%s" (urlize $author)) }}
|
||||
{{ $person_page := $.Site.GetPage $person_page_path }}
|
||||
{{ $person_page := site.GetPage $person_page_path }}
|
||||
{{ if not $person_page }}
|
||||
{{ errorf "Could not find an author page at `%s`. Please check the value of `author` in your About widget and create an associated author page if one does not already exist." $person_page_path }}
|
||||
{{end}}
|
||||
|
@ -17,11 +17,11 @@
|
|||
{{ $avatar := ($person_page.Resources.ByType "image").GetMatch "*avatar*" }}
|
||||
|
||||
<!-- About widget -->
|
||||
<div class="row" itemprop="author" itemscope itemtype="http://schema.org/Person" itemref="{{ if $.Site.Params.email }}person-email{{ end }}{{ if $.Site.Params.phone }} person-telephone{{ end }}{{ if $.Site.Params.address}} person-address{{ end }}">
|
||||
<div class="row" itemprop="author" itemscope itemtype="http://schema.org/Person" itemref="{{ if site.Params.email }}person-email{{ end }}{{ if site.Params.phone }} person-telephone{{ end }}{{ if site.Params.address}} person-address{{ end }}">
|
||||
<div class="col-12 col-lg-4">
|
||||
<div id="profile">
|
||||
|
||||
{{ if $.Site.Params.gravatar }}
|
||||
{{ if site.Params.gravatar }}
|
||||
<img class="portrait" src="https://s.gravatar.com/avatar/{{ md5 $person.email }}?s=200')" itemprop="image" alt="Avatar">
|
||||
{{ else if $avatar }}
|
||||
{{ $avatar_image := $avatar.Fill "250x250 Center" }}
|
||||
|
|
|
@ -17,10 +17,10 @@
|
|||
{{ if eq $page.Params.email_form 1 }}
|
||||
{{ $post_action = "netlify" }}
|
||||
{{ else }}
|
||||
{{ if not $.Site.Params.email }}
|
||||
{{ if not site.Params.email }}
|
||||
{{ errorf "Please set an email address for the contact form using the `email` parameter in `config.toml`. Otherwise, set `email_form = 0` to disable the contact form." }}
|
||||
{{ end }}
|
||||
{{ $post_action = printf "action=\"https://formspree.io/%s\"" $.Site.Params.email }}
|
||||
{{ $post_action = printf "action=\"https://formspree.io/%s\"" site.Params.email }}
|
||||
{{end}}
|
||||
|
||||
<div class="mb-3">
|
||||
|
@ -44,16 +44,16 @@
|
|||
|
||||
<ul class="fa-ul" itemscope>
|
||||
|
||||
{{ if and $.Site.Params.email (not $page.Params.email_form) }}
|
||||
{{ if and site.Params.email (not $page.Params.email_form) }}
|
||||
<li>
|
||||
<i class="fa-li fas fa-envelope fa-2x" aria-hidden="true"></i>
|
||||
<span id="person-email" itemprop="email">
|
||||
{{- if $autolink }}<a href="mailto:{{ $.Site.Params.email }}">{{ $.Site.Params.email }}</a>{{ else }}{{ $.Site.Params.email }}{{ end -}}
|
||||
{{- if $autolink }}<a href="mailto:{{ site.Params.email }}">{{ site.Params.email }}</a>{{ else }}{{ site.Params.email }}{{ end -}}
|
||||
</span>
|
||||
</li>
|
||||
{{ end }}
|
||||
|
||||
{{ with $.Site.Params.phone }}
|
||||
{{ with site.Params.phone }}
|
||||
<li>
|
||||
<i class="fa-li fas fa-phone fa-2x" aria-hidden="true"></i>
|
||||
<span id="person-telephone" itemprop="telephone">
|
||||
|
@ -62,21 +62,21 @@
|
|||
</li>
|
||||
{{ end }}
|
||||
|
||||
{{ with $.Site.Params.address }}
|
||||
{{ with site.Params.address }}
|
||||
<li>
|
||||
<i class="fa-li fas fa-map-marker fa-2x" aria-hidden="true"></i>
|
||||
<span id="person-address" itemprop="address">{{ . | markdownify | emojify }}</span>
|
||||
</li>
|
||||
{{ end }}
|
||||
|
||||
{{ with $.Site.Params.office_hours }}
|
||||
{{ with site.Params.office_hours }}
|
||||
<li>
|
||||
<i class="fa-li fas fa-clock fa-2x" aria-hidden="true"></i>
|
||||
<span>{{ . | markdownify | emojify }}</span>
|
||||
</li>
|
||||
{{ end }}
|
||||
|
||||
{{ with $.Site.Params.appointment_url }}
|
||||
{{ with site.Params.appointment_url }}
|
||||
<li>
|
||||
<i class="fa-li fas fa-calendar-check fa-2x" aria-hidden="true"></i>
|
||||
<a href="{{ . }}" target="_blank" rel="noopener">{{ i18n "book_appointment" | default "Book an appointment" }}</a>
|
||||
|
@ -84,7 +84,7 @@
|
|||
{{ end }}
|
||||
|
||||
{{/* Contact links. */}}
|
||||
{{ range $.Site.Params.contact_links }}
|
||||
{{ range site.Params.contact_links }}
|
||||
{{ $pack := or .icon_pack "fas" }}
|
||||
{{ $pack_prefix := $pack }}
|
||||
{{ if in (slice "fab" "fas" "far" "fal") $pack }}
|
||||
|
@ -106,14 +106,14 @@
|
|||
|
||||
</ul>
|
||||
|
||||
{{ if $.Site.Params.map }}
|
||||
{{ if site.Params.map }}
|
||||
<div class="d-none">
|
||||
<input id="map-provider" value="{{ $.Site.Params.map }}">
|
||||
<input id="map-lat" value="{{ $.Site.Params.latitude }}">
|
||||
<input id="map-lng" value="{{ $.Site.Params.longitude }}">
|
||||
<input id="map-dir" value="{{ $.Site.Params.address }}">
|
||||
<input id="map-zoom" value="{{ $.Site.Params.zoom | default "15" }}">
|
||||
<input id="map-api-key" value="{{ $.Site.Params.map_api_key }}">
|
||||
<input id="map-provider" value="{{ site.Params.map }}">
|
||||
<input id="map-lat" value="{{ site.Params.latitude }}">
|
||||
<input id="map-lng" value="{{ site.Params.longitude }}">
|
||||
<input id="map-dir" value="{{ site.Params.address }}">
|
||||
<input id="map-zoom" value="{{ site.Params.zoom | default "15" }}">
|
||||
<input id="map-api-key" value="{{ site.Params.map_api_key }}">
|
||||
</div>
|
||||
<div id="map"></div>
|
||||
{{ end }}
|
||||
|
|
|
@ -8,19 +8,19 @@
|
|||
{{ $items_sort := $st.Params.content.order| default "desc" }}
|
||||
|
||||
{{/* Query */}}
|
||||
{{ $query := where (where $.Site.RegularPages "Type" $items_type) "Params.featured" true }}
|
||||
{{ $query := where (where site.RegularPages "Type" $items_type) "Params.featured" true }}
|
||||
|
||||
{{/* Filters */}}
|
||||
{{ if $st.Params.content.filters.tag }}
|
||||
{{ $archive_page := $.Site.GetPage (printf "tags/%s" $st.Params.content.filters.tag) }}
|
||||
{{ $archive_page := site.GetPage (printf "tags/%s" $st.Params.content.filters.tag) }}
|
||||
{{ $query = $query | intersect $archive_page.Pages }}
|
||||
{{ end }}
|
||||
{{ if $st.Params.content.filters.category }}
|
||||
{{ $archive_page := $.Site.GetPage (printf "categories/%s" $st.Params.content.filters.category) }}
|
||||
{{ $archive_page := site.GetPage (printf "categories/%s" $st.Params.content.filters.category) }}
|
||||
{{ $query = $query | intersect $archive_page.Pages }}
|
||||
{{ end }}
|
||||
{{ if $st.Params.content.filters.publication_type }}
|
||||
{{ $archive_page := $.Site.GetPage (printf "publication_types/%s" $st.Params.content.filters.publication_type) }}
|
||||
{{ $archive_page := site.GetPage (printf "publication_types/%s" $st.Params.content.filters.publication_type) }}
|
||||
{{ $query = $query | intersect $archive_page.Pages }}
|
||||
{{ end }}
|
||||
|
||||
|
|
|
@ -14,20 +14,20 @@
|
|||
{{ $items_sort := $st.Params.content.order | default "desc" }}
|
||||
|
||||
{{/* Query */}}
|
||||
{{ $query := where $.Site.RegularPages "Type" $items_type }}
|
||||
{{ $archive_page := $.Site.GetPage "Section" $items_type }}
|
||||
{{ $query := where site.RegularPages "Type" $items_type }}
|
||||
{{ $archive_page := site.GetPage "Section" $items_type }}
|
||||
|
||||
{{/* Filters */}}
|
||||
{{ if $st.Params.content.filters.tag }}
|
||||
{{ $archive_page = $.Site.GetPage (printf "tags/%s" $st.Params.content.filters.tag) }}
|
||||
{{ $archive_page = site.GetPage (printf "tags/%s" $st.Params.content.filters.tag) }}
|
||||
{{ $query = $query | intersect $archive_page.Pages }}
|
||||
{{ end }}
|
||||
{{ if $st.Params.content.filters.category }}
|
||||
{{ $archive_page = $.Site.GetPage (printf "categories/%s" $st.Params.content.filters.category) }}
|
||||
{{ $archive_page = site.GetPage (printf "categories/%s" $st.Params.content.filters.category) }}
|
||||
{{ $query = $query | intersect $archive_page.Pages }}
|
||||
{{ end }}
|
||||
{{ if $st.Params.content.filters.publication_type }}
|
||||
{{ $archive_page = $.Site.GetPage (printf "publication_types/%s" $st.Params.content.filters.publication_type) }}
|
||||
{{ $archive_page = site.GetPage (printf "publication_types/%s" $st.Params.content.filters.publication_type) }}
|
||||
{{ $query = $query | intersect $archive_page.Pages }}
|
||||
{{ end }}
|
||||
{{ if $st.Params.content.filters.exclude_featured }}
|
||||
|
|
|
@ -11,7 +11,7 @@
|
|||
|
||||
{{ with $page.Content }}
|
||||
<div class="col-md-12">
|
||||
<p>{{ . | markdownify }}</p>
|
||||
<p>{{ . }}</p>
|
||||
</div>
|
||||
{{ end }}
|
||||
|
||||
|
@ -20,18 +20,18 @@
|
|||
<h2 class="mb-4">{{ . | markdownify }}</h2>
|
||||
</div>
|
||||
|
||||
{{ $query := where (where $.Site.Pages "Section" "author") ".Params.user_groups" "intersect" (slice .) }}
|
||||
{{ $query := where (where site.Pages "Section" "author") ".Params.user_groups" "intersect" (slice .) }}
|
||||
{{ range $query }}
|
||||
|
||||
{{ $avatar := (.Resources.ByType "image").GetMatch "*avatar*" }}
|
||||
{{/* Get link to user's profile page. */}}
|
||||
{{ $link := "" }}
|
||||
{{ with $.Site.GetPage (printf "/authors/%s" (path.Base (path.Split .Path).Dir)) }}
|
||||
{{ with site.GetPage (printf "/authors/%s" (path.Base (path.Split .Path).File.Dir)) }}
|
||||
{{ $link = .RelPermalink }}
|
||||
{{ end }}
|
||||
<div class="col-12 col-sm-auto people-person">
|
||||
{{ $src := "" }}
|
||||
{{ if $.Site.Params.gravatar }}
|
||||
{{ if site.Params.gravatar }}
|
||||
{{ $src = printf "https://s.gravatar.com/avatar/%s?s=200" (md5 .Params.email) }}
|
||||
{{ else if $avatar }}
|
||||
{{ $avatar_image := $avatar.Fill "150x150 Center" }}
|
||||
|
|
|
@ -67,7 +67,7 @@
|
|||
{{ end }}
|
||||
|
||||
<div class="{{ if or $st.Params.content.filter_button (eq $st.Params.design.view 3) }}isotope projects-container{{end}} {{if eq $st.Params.design.view 3}}js-layout-masonry{{else}}row js-layout-row{{end}} {{ if eq $st.Params.design.view 5 }}project-showcase mt-5{{end}}">
|
||||
{{ range $idx, $item := where $.Site.RegularPages "Type" $items_type }}
|
||||
{{ range $idx, $item := where site.RegularPages "Type" $items_type }}
|
||||
{{ $link := $item.RelPermalink }}
|
||||
{{ $target := "" }}
|
||||
{{ if $item.Params.external_link }}
|
||||
|
|
|
@ -3,28 +3,28 @@
|
|||
|
||||
<div class="row">
|
||||
<div class="col-12 col-lg-4 section-heading">
|
||||
<h1>{{ with $page.Title }}{{ . | markdownify }}{{ end }}</h1>
|
||||
{{ with $page.Params.subtitle }}<p>{{ . | markdownify }}</p>{{ end }}
|
||||
<h1>{{ with $page.Title }}{{ . | markdownify | emojify }}{{ end }}</h1>
|
||||
{{ with $page.Params.subtitle }}<p>{{ . | markdownify | emojify }}</p>{{ end }}
|
||||
</div>
|
||||
<div class="col-12 col-lg-8">
|
||||
{{ with $page.Content }}<p>{{ . | markdownify }}</p>{{ end }}
|
||||
{{ with $page.Content }}<p>{{ . }}</p>{{ end }}
|
||||
|
||||
{{ if not (eq (len $.Site.Taxonomies.tags) 0) }}
|
||||
{{ if not (eq (len site.Taxonomies.tags) 0) }}
|
||||
{{ $fontSmall := 0.8 }}
|
||||
{{ $fontBig := 2.5 }}
|
||||
|
||||
{{ $fontDelta := sub $fontBig $fontSmall }}
|
||||
{{ $min := len (index $.Site.Taxonomies.tags.ByCount.Reverse 0).Pages }}
|
||||
{{ $max := add (len (index $.Site.Taxonomies.tags.ByCount 0).Pages) 1 }}
|
||||
{{ $min := len (index site.Taxonomies.tags.ByCount.Reverse 0).Pages }}
|
||||
{{ $max := add (len (index site.Taxonomies.tags.ByCount 0).Pages) 1 }}
|
||||
{{ $delta := sub $max $min }}
|
||||
{{ $fontStep := div $fontDelta $delta }}
|
||||
|
||||
<div class="tag-cloud">
|
||||
{{ range $name, $taxonomy := $.Site.Taxonomies.tags }}
|
||||
{{ range $name, $taxonomy := site.Taxonomies.tags }}
|
||||
{{ $tagCount := len $taxonomy.Pages }}
|
||||
{{ $weight := div (sub (math.Log $tagCount) (math.Log $min)) (sub (math.Log $max) (math.Log $min)) }}
|
||||
{{ $fontSize := add $fontSmall (mul (sub $fontBig $fontSmall) $weight) }}
|
||||
<a href="{{ ($.Site.GetPage (printf "tags/%s" $name)).RelPermalink }}" style="font-size:{{ $fontSize }}rem">{{ $name }}</a>
|
||||
<a href="{{ .Page.RelPermalink }}" style="font-size:{{ $fontSize }}rem">{{ $name }}</a>
|
||||
{{ end }}
|
||||
</div>
|
||||
{{ end }}
|
||||
|
|
|
@ -21,7 +21,7 @@
|
|||
{{ partial "pub_types.html" $ }}
|
||||
{{ $pub_types := $.Scratch.Get "pub_types" }}
|
||||
{{ range $index, $pubtype := .Params.publication_types }}
|
||||
<a href="{{ ($.Site.GetPage "section" "publication").RelPermalink }}#{{ . | urlize }}">
|
||||
<a href="{{ (site.GetPage "section" "publication").RelPermalink }}#{{ . | urlize }}">
|
||||
{{ index $pub_types (int .) }}
|
||||
</a>
|
||||
{{ end }}
|
||||
|
|
|
@ -1,21 +1,30 @@
|
|||
{{/* Generate RSS with full page content rather than just summary. */}}
|
||||
{{- $pages := .Data.Pages -}}
|
||||
{{- $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>{{ with .Title }}{{.}} on {{ end }}{{ .Site.Title }}</title>
|
||||
<title>{{ if eq .Title .Site.Title }}{{ .Site.Title }}{{ else }}{{ with .Title }}{{.}} on {{ end }}{{ .Site.Title }}{{ end }}</title>
|
||||
<link>{{ .Permalink }}</link>
|
||||
<description>Recent content {{ with .Title }}in {{.}} {{ end }}on {{ .Site.Title }}</description>
|
||||
<description>Recent content {{ if ne .Title .Site.Title }}{{ with .Title }}in {{.}} {{ end }}{{ end }}on {{ .Site.Title }}</description>
|
||||
<generator>Source Themes Academic (https://sourcethemes.com/academic/)</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 }}
|
||||
<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 }}
|
||||
<atom:link href="{{.URL}}" rel="self" type="application/rss+xml" />
|
||||
{{ range first 15 .Data.Pages }}
|
||||
{{ with .OutputFormats.Get "RSS" }}
|
||||
{{ printf "<atom:link href=%q rel=\"self\" type=%q />" .Permalink .MediaType | safeHTML }}
|
||||
{{ end }}
|
||||
{{ range $pages }}
|
||||
<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}}
|
||||
{{ with .Site.Author.email }}<author>{{.}}{{ with site.Author.name }} ({{.}}){{end}}</author>{{end}}
|
||||
<guid>{{ .Permalink }}</guid>
|
||||
<description>{{ .Content | html }}</description>
|
||||
</item>
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
<div class="alert alert-{{ .Get 0 }}">
|
||||
<div>
|
||||
{{ .Inner }}
|
||||
{{ .Inner | markdownify | emojify }}
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
@ -1 +1 @@
|
|||
<span class="markup-quote">{{ .Inner }}</span>
|
||||
<span class="markup-quote">{{ .Inner | markdownify | emojify }}</span>
|
|
@ -1,5 +1,5 @@
|
|||
<ul class="list-unstyled">
|
||||
{{ range ($.Site.GetPage "taxonomyTerm" "categories").Pages }}
|
||||
{{ range (site.GetPage "taxonomyTerm" "categories").Pages }}
|
||||
<li><a href="{{.RelPermalink}}">{{.Title}}</a></li>
|
||||
{{ end }}
|
||||
</ul>
|
|
@ -1,5 +1,5 @@
|
|||
<ul class="list-unstyled">
|
||||
{{ range ($.Site.GetPage "taxonomyTerm" "tags").Pages }}
|
||||
{{ range (site.GetPage "taxonomyTerm" "tags").Pages }}
|
||||
<li><a href="{{.RelPermalink}}">{{.Title}}</a></li>
|
||||
{{ end }}
|
||||
</ul>
|
|
@ -1,3 +1,3 @@
|
|||
<aside class="notes">
|
||||
{{ .Inner | markdownify }}
|
||||
{{ .Inner | markdownify | emojify }}
|
||||
</aside>
|
|
@ -1,14 +0,0 @@
|
|||
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" xmlns:xhtml="http://www.w3.org/1999/xhtml">
|
||||
{{ range .Data.Pages }}
|
||||
<url>
|
||||
{{ if .IsTranslated }}
|
||||
<xhtml:link rel="alternate" href="{{ .Permalink }}" hreflang="{{ .Lang }}"/>{{ range .Translations }}
|
||||
<xhtml:link rel="alternate" href="{{ .Permalink }}" hreflang="{{ .Lang }}"/>{{ end }}
|
||||
{{ end }}
|
||||
<loc>{{ .Permalink }}</loc>{{ if not .Lastmod.IsZero }}
|
||||
<lastmod>{{ safeHTML ( .Lastmod.Format "2006-01-02T15:04:05-07:00" ) }}</lastmod>{{ end }}{{ with .Sitemap.ChangeFreq }}
|
||||
<changefreq>{{ . }}</changefreq>{{ end }}{{ if ge .Sitemap.Priority 0.0 }}
|
||||
<priority>{{ .Sitemap.Priority }}</priority>{{ end }}
|
||||
</url>
|
||||
{{ end }}
|
||||
</urlset>
|
|
@ -20,12 +20,12 @@
|
|||
<div class="col-12 col-md-3 pub-row-heading">{{ i18n "date" }}</div>
|
||||
<div class="col-12 col-md-9" itemprop="datePublished">
|
||||
{{ $date := .Date }}
|
||||
{{ (time $date).Format $.Site.Params.date_format }}
|
||||
{{ (time $date).Format site.Params.date_format }}
|
||||
<div class="talk-time">
|
||||
{{ if not .Params.all_day }}
|
||||
{{ (time $date).Format ($.Site.Params.time_format | default "3:04 PM") }}
|
||||
{{ (time $date).Format (site.Params.time_format | default "3:04 PM") }}
|
||||
{{ with .Params.date_end }}
|
||||
— {{ (time .).Format ($.Site.Params.time_format | default "3:04 PM") }}
|
||||
— {{ (time .).Format (site.Params.time_format | default "3:04 PM") }}
|
||||
{{ end }}
|
||||
{{ end }}
|
||||
</div>
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
|
||||
[build.environment]
|
||||
HUGO_THEME = "repo"
|
||||
HUGO_VERSION = "0.53"
|
||||
HUGO_VERSION = "0.55.2"
|
||||
HUGO_ENABLEGITINFO = "true"
|
||||
|
||||
[context.production.environment]
|
||||
|
|
43
theme.toml
43
theme.toml
|
@ -1,25 +1,42 @@
|
|||
name = "Academic"
|
||||
license = "MIT"
|
||||
licenselink = "https://github.com/gcushen/hugo-academic/blob/master/LICENSE.md"
|
||||
description = "The website designer for Hugo. Build anything and deploy with one click! Fully customizable with themes, plugins, and language packs."
|
||||
description = "The website builder for Hugo. Build *anything* with widgets and deploy with one click! Fully personalize your site with themes, plugins, and language packs."
|
||||
homepage = "https://sourcethemes.com/academic/"
|
||||
min_version = "0.53"
|
||||
tags = ["academic",
|
||||
min_version = "0.55"
|
||||
tags = ["widgets",
|
||||
"resume",
|
||||
"portfolio",
|
||||
"responsive",
|
||||
"student",
|
||||
"clean",
|
||||
"personal",
|
||||
"university",
|
||||
"company",
|
||||
"blog",
|
||||
"minimal"
|
||||
"minimal",
|
||||
"light",
|
||||
"dark",
|
||||
"multilingual",
|
||||
"documentation",
|
||||
"landing page",
|
||||
"projects",
|
||||
"single page",
|
||||
"contact form",
|
||||
"mobile",
|
||||
"gallery",
|
||||
"search",
|
||||
"presentation",
|
||||
"simple",
|
||||
"minimalist",
|
||||
"starter",
|
||||
"modern",
|
||||
"one page",
|
||||
"customizable",
|
||||
"technical",
|
||||
"product",
|
||||
"slide"
|
||||
]
|
||||
features = ["academic profile",
|
||||
"research publication system",
|
||||
"projects",
|
||||
"blog",
|
||||
"teaching",
|
||||
"contact"
|
||||
]
|
||||
features = ["page builder", "widgets", "themes", "search", "research publication system", "filterable portfolio",
|
||||
"blog", "create courses", "talks", "events", "slides", "gallery", "contact form"]
|
||||
|
||||
[author]
|
||||
name = "George Cushen"
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue