mirror of
https://github.com/BBaoVanC/bobatheme.git
synced 2025-06-13 09:57:30 -05:00
Compare commits
1 Commits
custom-fon
...
image-resi
Author | SHA1 | Date | |
---|---|---|---|
5fb449a8e7
|
1
.gitignore
vendored
1
.gitignore
vendored
@ -1 +0,0 @@
|
||||
.hugo_build.lock
|
8
.gitmodules
vendored
8
.gitmodules
vendored
@ -1,4 +1,4 @@
|
||||
[submodule "assets/jam"]
|
||||
path = assets/jam
|
||||
url = https://github.com/michaelampr/jam.git
|
||||
branch = master
|
||||
[submodule "assets/feather"]
|
||||
path = assets/feather
|
||||
url = https://github.com/feathericons/feather.git
|
||||
branch = master
|
||||
|
@ -1,4 +1,2 @@
|
||||
# bobatheme
|
||||
|
||||
The (boba) best Hugo theme. Contains everything I need for bbaovanc.com and
|
||||
boba.best.
|
||||
Simple Hugo theme
|
||||
|
@ -1,15 +0,0 @@
|
||||
---
|
||||
|
||||
title: {{ replace .Name "-" " " | title }}
|
||||
|
||||
---
|
||||
|
||||
A short description about the author.
|
||||
|
||||
<!--more-->
|
||||
|
||||
Optionally provide more information about the author here. This part will only
|
||||
show on the author page, not on the authors list page.
|
||||
|
||||
If you delete this section, DO NOT delete the summary separator (`<!--more-->`)
|
||||
or else the summary won't be shown.
|
@ -1,24 +1,13 @@
|
||||
---
|
||||
|
||||
title: {{ replace .Name "-" " " | humanize }}
|
||||
date: {{ .Date }}
|
||||
lastmod: {{ .Date }}
|
||||
title: {{ replace .Name "-" " " | title }}
|
||||
date: {{ .Date | time.Format "2006-01-02" }}
|
||||
toc: true
|
||||
comments: true
|
||||
draft: true
|
||||
|
||||
authors:
|
||||
- {{ with .Site.Author.name }}{{ . }}{{ else }}John Doe{{ end }}
|
||||
|
||||
categories:
|
||||
- archetype-stuff
|
||||
|
||||
tags:
|
||||
- awesome
|
||||
|
||||
series:
|
||||
- archetype
|
||||
|
||||
# this will be shown for the article in list pages and in the page metadata
|
||||
# it can be either an image or video (this might change in the future, however)
|
||||
resources:
|
||||
|
@ -1,15 +0,0 @@
|
||||
---
|
||||
|
||||
title: {{ replace .Name "-" " " | title }}
|
||||
|
||||
---
|
||||
|
||||
A short summary of what the category is about.
|
||||
|
||||
<!--more-->
|
||||
|
||||
Optionally provide more information about the category here. This part will only
|
||||
show on the category page, not on the category list page.
|
||||
|
||||
If you delete this section, DO NOT delete the summary separator (`<!--more-->`)
|
||||
or else the summary won't be shown.
|
@ -1,12 +1,8 @@
|
||||
---
|
||||
|
||||
title: {{ replace .Name "-" " " | humanize }}
|
||||
title: {{ replace .Name "-" " " | title }}
|
||||
menu: main
|
||||
toc: true
|
||||
comments: false
|
||||
|
||||
authors:
|
||||
- {{ with .Site.Author.name }}{{ . }}{{ else }}John Doe{{ end }}
|
||||
|
||||
---
|
||||
|
||||
|
@ -1,15 +0,0 @@
|
||||
---
|
||||
|
||||
title: {{ replace .Name "-" " " | title }}
|
||||
|
||||
---
|
||||
|
||||
Some information about the series.
|
||||
|
||||
<!--more-->
|
||||
|
||||
Optionally provide more information about the series here. This part will only
|
||||
show on the series page, not on the series list page.
|
||||
|
||||
If you delete this section, DO NOT delete the summary separator (`<!--more-->`)
|
||||
or else the summary won't be shown.
|
@ -1,15 +0,0 @@
|
||||
---
|
||||
|
||||
title: {{ replace .Name "-" " " | title }}
|
||||
|
||||
---
|
||||
|
||||
A short summary of what the tag is.
|
||||
|
||||
<!--more-->
|
||||
|
||||
Optionally provide more information about the tag here. This part will only show
|
||||
on the tag page, not on the tags list page.
|
||||
|
||||
If you delete this section, DO NOT delete the summary separator (`<!--more-->`)
|
||||
or else the summary won't be shown.
|
File diff suppressed because it is too large
Load Diff
116
assets/css/starwars.css
Normal file
116
assets/css/starwars.css
Normal file
@ -0,0 +1,116 @@
|
||||
@media screen and (max-width: 700px) {
|
||||
.row {
|
||||
flex-direction: column;
|
||||
}
|
||||
}
|
||||
@media screen and (max-width: 400px) {
|
||||
.navbar a {
|
||||
float: none;
|
||||
width: 100%;
|
||||
}
|
||||
}
|
||||
|
||||
body, html {
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
body {
|
||||
font-family: sans-serif;
|
||||
margin: 0;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
}
|
||||
a {
|
||||
color: blue;
|
||||
}
|
||||
|
||||
.header {
|
||||
padding: 10px;
|
||||
text-align: center;
|
||||
background: url(../images/stars.png);
|
||||
background-size: cover;
|
||||
color: white;
|
||||
}
|
||||
.header h1 {
|
||||
font-size: 50px;
|
||||
font-weight: bold;
|
||||
transform-origin: 50% 100%;
|
||||
transform: perspective(350px) rotateX(25deg);
|
||||
color: yellow;
|
||||
}
|
||||
|
||||
.navbar {
|
||||
overflow: hidden;
|
||||
background-color: #999;
|
||||
}
|
||||
.navbar a {
|
||||
float: left;
|
||||
display: block;
|
||||
color: white;
|
||||
text-align: center;
|
||||
padding: 14px 20px;
|
||||
text-decoration: none;
|
||||
}
|
||||
/* .navbar a.right {
|
||||
float: right;
|
||||
} */
|
||||
.navbar a:hover {
|
||||
background-color: #ddd;
|
||||
color: black;
|
||||
}
|
||||
|
||||
* {
|
||||
box-sizing: border-box;
|
||||
}
|
||||
.row {
|
||||
flex: 1;
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
}
|
||||
.side {
|
||||
width: 25%;
|
||||
background-color: lightgray;
|
||||
padding: 20px;
|
||||
}
|
||||
.main {
|
||||
width: 75%;
|
||||
background-color: white;
|
||||
padding: 20px;
|
||||
}
|
||||
.footer {
|
||||
padding: 20px;
|
||||
text-align: center;
|
||||
background: #ddd;
|
||||
}
|
||||
|
||||
@media (prefers-color-scheme: dark) {
|
||||
body {
|
||||
background-color: black;
|
||||
}
|
||||
a {
|
||||
color: #4da6ff;
|
||||
}
|
||||
.navbar {
|
||||
background-color: #222;
|
||||
}
|
||||
.navbar a {
|
||||
color: lightgray;
|
||||
}
|
||||
.navbar a:hover {
|
||||
background-color: #444;
|
||||
color: white;
|
||||
}
|
||||
.side {
|
||||
background-color: #111;
|
||||
color: lightgray;
|
||||
}
|
||||
.main {
|
||||
background-color: black;
|
||||
color: lightgray;
|
||||
}
|
||||
.footer {
|
||||
background: #222;
|
||||
color: lightgray;
|
||||
}
|
||||
max-width: 650px;
|
||||
}
|
@ -1,104 +0,0 @@
|
||||
/* tango style */
|
||||
|
||||
@media print, (prefers-color-scheme: light) {
|
||||
.chroma {
|
||||
color: black;
|
||||
}
|
||||
|
||||
/* Background */ .bg { background-color: #f8f8f8 }
|
||||
/* PreWrapper */ .chroma { background-color: #f8f8f8; }
|
||||
/* Other */ .chroma .x { color: #000000 }
|
||||
/* Error */ .chroma .err { color: #a40000 }
|
||||
/* CodeLine */ .chroma .cl { }
|
||||
/* LineTableTD */ .chroma .lntd { vertical-align: top; padding: 0; margin: 0; border: 0; }
|
||||
/* LineTable */ .chroma .lntable { border-spacing: 0; padding: 0; margin: 0; border: 0; }
|
||||
/* LineHighlight */ .chroma .hl { background-color: #ffffcc }
|
||||
/* LineNumbersTable */ .chroma .lnt { white-space: pre; user-select: none; margin-right: 0.4em; padding: 0 0.4em 0 0.4em;color: #7f7f7f }
|
||||
/* LineNumbers */ .chroma .ln { white-space: pre; user-select: none; margin-right: 0.4em; padding: 0 0.4em 0 0.4em;color: #7f7f7f }
|
||||
/* Line */ .chroma .line { display: flex; }
|
||||
/* Keyword */ .chroma .k { color: #204a87; font-weight: bold }
|
||||
/* KeywordConstant */ .chroma .kc { color: #204a87; font-weight: bold }
|
||||
/* KeywordDeclaration */ .chroma .kd { color: #204a87; font-weight: bold }
|
||||
/* KeywordNamespace */ .chroma .kn { color: #204a87; font-weight: bold }
|
||||
/* KeywordPseudo */ .chroma .kp { color: #204a87; font-weight: bold }
|
||||
/* KeywordReserved */ .chroma .kr { color: #204a87; font-weight: bold }
|
||||
/* KeywordType */ .chroma .kt { color: #204a87; font-weight: bold }
|
||||
/* Name */ .chroma .n { color: #000000 }
|
||||
/* NameAttribute */ .chroma .na { color: #c4a000 }
|
||||
/* NameBuiltin */ .chroma .nb { color: #204a87 }
|
||||
/* NameBuiltinPseudo */ .chroma .bp { color: #3465a4 }
|
||||
/* NameClass */ .chroma .nc { color: #000000 }
|
||||
/* NameConstant */ .chroma .no { color: #000000 }
|
||||
/* NameDecorator */ .chroma .nd { color: #5c35cc; font-weight: bold }
|
||||
/* NameEntity */ .chroma .ni { color: #ce5c00 }
|
||||
/* NameException */ .chroma .ne { color: #cc0000; font-weight: bold }
|
||||
/* NameFunction */ .chroma .nf { color: #000000 }
|
||||
/* NameFunctionMagic */ .chroma .fm { color: #000000 }
|
||||
/* NameLabel */ .chroma .nl { color: #f57900 }
|
||||
/* NameNamespace */ .chroma .nn { color: #000000 }
|
||||
/* NameOther */ .chroma .nx { color: #000000 }
|
||||
/* NameProperty */ .chroma .py { color: #000000 }
|
||||
/* NameTag */ .chroma .nt { color: #204a87; font-weight: bold }
|
||||
/* NameVariable */ .chroma .nv { color: #000000 }
|
||||
/* NameVariableClass */ .chroma .vc { color: #000000 }
|
||||
/* NameVariableGlobal */ .chroma .vg { color: #000000 }
|
||||
/* NameVariableInstance */ .chroma .vi { color: #000000 }
|
||||
/* NameVariableMagic */ .chroma .vm { color: #000000 }
|
||||
/* Literal */ .chroma .l { color: #000000 }
|
||||
/* LiteralDate */ .chroma .ld { color: #000000 }
|
||||
/* LiteralString */ .chroma .s { color: #4e9a06 }
|
||||
/* LiteralStringAffix */ .chroma .sa { color: #4e9a06 }
|
||||
/* LiteralStringBacktick */ .chroma .sb { color: #4e9a06 }
|
||||
/* LiteralStringChar */ .chroma .sc { color: #4e9a06 }
|
||||
/* LiteralStringDelimiter */ .chroma .dl { color: #4e9a06 }
|
||||
/* LiteralStringDoc */ .chroma .sd { color: #8f5902; font-style: italic }
|
||||
/* LiteralStringDouble */ .chroma .s2 { color: #4e9a06 }
|
||||
/* LiteralStringEscape */ .chroma .se { color: #4e9a06 }
|
||||
/* LiteralStringHeredoc */ .chroma .sh { color: #4e9a06 }
|
||||
/* LiteralStringInterpol */ .chroma .si { color: #4e9a06 }
|
||||
/* LiteralStringOther */ .chroma .sx { color: #4e9a06 }
|
||||
/* LiteralStringRegex */ .chroma .sr { color: #4e9a06 }
|
||||
/* LiteralStringSingle */ .chroma .s1 { color: #4e9a06 }
|
||||
/* LiteralStringSymbol */ .chroma .ss { color: #4e9a06 }
|
||||
/* LiteralNumber */ .chroma .m { color: #0000cf; font-weight: bold }
|
||||
/* LiteralNumberBin */ .chroma .mb { color: #0000cf; font-weight: bold }
|
||||
/* LiteralNumberFloat */ .chroma .mf { color: #0000cf; font-weight: bold }
|
||||
/* LiteralNumberHex */ .chroma .mh { color: #0000cf; font-weight: bold }
|
||||
/* LiteralNumberInteger */ .chroma .mi { color: #0000cf; font-weight: bold }
|
||||
/* LiteralNumberIntegerLong */ .chroma .il { color: #0000cf; font-weight: bold }
|
||||
/* LiteralNumberOct */ .chroma .mo { color: #0000cf; font-weight: bold }
|
||||
/* Operator */ .chroma .o { color: #ce5c00; font-weight: bold }
|
||||
/* OperatorWord */ .chroma .ow { color: #204a87; font-weight: bold }
|
||||
/* Punctuation */ .chroma .p { color: #000000; font-weight: bold }
|
||||
/* Comment */ .chroma .c { color: #8f5902; font-style: italic }
|
||||
/* CommentHashbang */ .chroma .ch { color: #8f5902; font-style: italic }
|
||||
/* CommentMultiline */ .chroma .cm { color: #8f5902; font-style: italic }
|
||||
/* CommentSingle */ .chroma .c1 { color: #8f5902; font-style: italic }
|
||||
/* CommentSpecial */ .chroma .cs { color: #8f5902; font-style: italic }
|
||||
/* CommentPreproc */ .chroma .cp { color: #8f5902; font-style: italic }
|
||||
/* CommentPreprocFile */ .chroma .cpf { color: #8f5902; font-style: italic }
|
||||
/* Generic */ .chroma .g { color: #000000 }
|
||||
/* GenericDeleted */ .chroma .gd { color: #a40000 }
|
||||
/* GenericEmph */ .chroma .ge { color: #000000; font-style: italic }
|
||||
/* GenericError */ .chroma .gr { color: #ef2929 }
|
||||
/* GenericHeading */ .chroma .gh { color: #000080; font-weight: bold }
|
||||
/* GenericInserted */ .chroma .gi { color: #00a000 }
|
||||
/* GenericOutput */ .chroma .go { color: #000000; font-style: italic }
|
||||
/* GenericPrompt */ .chroma .gp { color: #8f5902 }
|
||||
/* GenericStrong */ .chroma .gs { color: #000000; font-weight: bold }
|
||||
/* GenericSubheading */ .chroma .gu { color: #800080; font-weight: bold }
|
||||
/* GenericTraceback */ .chroma .gt { color: #a40000; font-weight: bold }
|
||||
/* GenericUnderline */ .chroma .gl { color: #000000; text-decoration: underline }
|
||||
/* TextWhitespace */ .chroma .w { color: #f8f8f8; text-decoration: underline }
|
||||
|
||||
}
|
||||
|
||||
@media (prefers-color-scheme: light) {
|
||||
/* Background */ .chroma { background-color: #f8f8f8 }
|
||||
}
|
||||
|
||||
@media print {
|
||||
.chroma {
|
||||
background-color: white;
|
||||
}
|
||||
}
|
@ -1,16 +1,11 @@
|
||||
/* native style */
|
||||
|
||||
/* Background */ .bg { color: #d0d0d0; background-color: #202020 }
|
||||
/* PreWrapper */ .chroma { color: #d0d0d0; background-color: #202020; }
|
||||
/* Background */ .chroma { color: #d0d0d0; background-color: #202020 }
|
||||
/* Other */ .chroma .x { }
|
||||
/* Error */ .chroma .err { color: #a61717; background-color: #e3d2d2 }
|
||||
/* CodeLine */ .chroma .cl { }
|
||||
/* LineTableTD */ .chroma .lntd { vertical-align: top; padding: 0; margin: 0; border: 0; }
|
||||
/* LineTable */ .chroma .lntable { border-spacing: 0; padding: 0; margin: 0; border: 0; }
|
||||
/* LineHighlight */ .chroma .hl { background-color: #ffffcc }
|
||||
/* LineNumbersTable */ .chroma .lnt { white-space: pre; user-select: none; margin-right: 0.4em; padding: 0 0.4em 0 0.4em;color: #686868 }
|
||||
/* LineNumbers */ .chroma .ln { white-space: pre; user-select: none; margin-right: 0.4em; padding: 0 0.4em 0 0.4em;color: #686868 }
|
||||
/* Line */ .chroma .line { display: flex; }
|
||||
/* LineTable */ .chroma .lntable { border-spacing: 0; padding: 0; margin: 0; border: 0; width: auto; overflow: auto; display: block; }
|
||||
/* LineHighlight */ .chroma .hl { display: block; width: 100%;background-color: #363636 }
|
||||
/* LineNumbersTable */ .chroma .lnt { margin-right: 0.4em; padding: 0 0.4em 0 0.4em;color: #686868 }
|
||||
/* LineNumbers */ .chroma .ln { margin-right: 0.4em; padding: 0 0.4em 0 0.4em;color: #686868 }
|
||||
/* Keyword */ .chroma .k { color: #6ab825; font-weight: bold }
|
||||
/* KeywordConstant */ .chroma .kc { color: #6ab825; font-weight: bold }
|
||||
/* KeywordDeclaration */ .chroma .kd { color: #6ab825; font-weight: bold }
|
||||
|
1
assets/feather
Submodule
1
assets/feather
Submodule
Submodule assets/feather added at 734f3f5114
BIN
assets/img/stars.png
Normal file
BIN
assets/img/stars.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 20 KiB |
Submodule assets/jam deleted from c8501b14e0
@ -1,35 +0,0 @@
|
||||
// back to top
|
||||
const backToTop = document.getElementById("back-to-top");
|
||||
window.onscroll = function() {
|
||||
if (document.body.scrollTop > 100 || document.documentElement.scrollTop > 100) {
|
||||
backToTop.style.display = "block";
|
||||
} else {
|
||||
backToTop.style.display = "none";
|
||||
}
|
||||
}
|
||||
|
||||
// code block copy to clipboard
|
||||
window.onload = () => {
|
||||
document.querySelectorAll(".code-block").forEach(codeBlock => {
|
||||
const button = codeBlock.querySelector(".code-header > .code-copy-button");
|
||||
|
||||
// lang will not be unset because we default it to text
|
||||
// clone it so it doesn't change the actual DOM element
|
||||
const codeElem = codeBlock.querySelector("code[data-lang]").cloneNode(true);
|
||||
// bashsession: remove command output lines
|
||||
codeElem.querySelectorAll(".go").forEach(e => e.parentNode.removeChild(e));
|
||||
// bashsession: remove prompt symbol
|
||||
codeElem.querySelectorAll(".gp").forEach(e => e.parentNode.removeChild(e));
|
||||
const rawCode = codeElem.innerText;
|
||||
|
||||
const originalCopyText = button.innerHTML;
|
||||
button.onclick = event => {
|
||||
navigator.clipboard.writeText(rawCode);
|
||||
// TODO: maybe we could add a fancier indicator, like a flash or something
|
||||
event.target.innerHTML = "Copied!";
|
||||
setTimeout(() => {
|
||||
event.target.innerHTML = originalCopyText;
|
||||
}, 3000);
|
||||
}
|
||||
});
|
||||
}
|
@ -1,3 +0,0 @@
|
||||
function share_event(service) {
|
||||
// this function does nothing by default
|
||||
}
|
26
config.yaml
26
config.yaml
@ -1,26 +0,0 @@
|
||||
markup:
|
||||
highlight:
|
||||
noClasses: false
|
||||
lineNos: true
|
||||
|
||||
params:
|
||||
readingtime: true
|
||||
|
||||
taxonomies:
|
||||
category: categories
|
||||
tag: tags
|
||||
author: authors
|
||||
series: series
|
||||
|
||||
privacy:
|
||||
googleAnalytics:
|
||||
disable: true
|
||||
|
||||
twitter:
|
||||
enableDNT: true
|
||||
|
||||
vimeo:
|
||||
enableDNT: true
|
||||
|
||||
youtube:
|
||||
privacyEnhanced: true
|
12
data/meses.toml
Normal file
12
data/meses.toml
Normal file
@ -0,0 +1,12 @@
|
||||
1 = "enero"
|
||||
2 = "febrero"
|
||||
3 = "marzo"
|
||||
4 = "abril"
|
||||
5 = "mayo"
|
||||
6 = "julio"
|
||||
7 = "junio"
|
||||
8 = "agosto"
|
||||
9 = "septiembre"
|
||||
10 = "octubre"
|
||||
11 = "noviembre"
|
||||
12 = "diciembre"
|
@ -1,12 +0,0 @@
|
||||
1: "enero"
|
||||
2: "febrero"
|
||||
3: "marzo"
|
||||
4: "abril"
|
||||
5: "mayo"
|
||||
6: "julio"
|
||||
7: "junio"
|
||||
8: "agosto"
|
||||
9: "septiembre"
|
||||
10: "octubre"
|
||||
11: "noviembre"
|
||||
12: "diciembre"
|
41
exampleSite/config.toml
Normal file
41
exampleSite/config.toml
Normal file
@ -0,0 +1,41 @@
|
||||
baseURL = "https://example.com"
|
||||
theme = "bobatheme"
|
||||
defaultContentLanguage = "en"
|
||||
author = "bbaovanc"
|
||||
sectionPagesMenu = "main"
|
||||
enableRobotsTXT = true
|
||||
paginate = 5
|
||||
enableGitInfo = true
|
||||
|
||||
[markup]
|
||||
[markup.highlight]
|
||||
noClasses = false
|
||||
lineNos = true
|
||||
|
||||
[params]
|
||||
# these are for the OpenGraph/Twitter embeds in Hugo
|
||||
description = "Example website for bobatheme"
|
||||
|
||||
# these are for favicons in bobatheme
|
||||
faviconICO = "/favicon.ico"
|
||||
faviconPNG = "/favicon.png"
|
||||
|
||||
# show word count and/or reading time
|
||||
wordcount = true
|
||||
readingtime = true
|
||||
|
||||
# used for last update
|
||||
repoURL = "https://github.com/BBaoVanC/bobatheme"
|
||||
|
||||
[languages]
|
||||
[languages.en]
|
||||
languageName = "English"
|
||||
title = "Example Website"
|
||||
weight = 1
|
||||
|
||||
[languages.es]
|
||||
languageName = "Español"
|
||||
title = "Sitio web ejemplo"
|
||||
weight = 2
|
||||
[languages.es.params]
|
||||
description = "Sitio web ejemplo para bobatheme"
|
@ -1,70 +0,0 @@
|
||||
baseURL: https://example.com
|
||||
theme: bobatheme
|
||||
defaultContentLanguage: en
|
||||
copyright: '© 2021 bbaovanc <a rel="license" href="http://creativecommons.org/licenses/by-sa/4.0/">CC BY-SA 4.0</a>'
|
||||
sectionPagesMenu: main
|
||||
enableRobotsTXT: true
|
||||
paginate: 5
|
||||
enableGitInfo: true
|
||||
|
||||
taxonomies:
|
||||
_merge: deep
|
||||
|
||||
author:
|
||||
name: bbaovanc
|
||||
|
||||
markup: # this just keeps the bobatheme markup styling
|
||||
_merge: deep
|
||||
|
||||
params:
|
||||
# these are for the OpenGraph/Twitter embeds in Hugo
|
||||
description: Example website for bobatheme
|
||||
|
||||
# these are for favicons in bobatheme (disabled by default)
|
||||
# faviconSVG: favicon.svg
|
||||
# appleTouchPNG: apple-touch-icon.png
|
||||
|
||||
# show reading time (enabled by default)
|
||||
# readingtime: true
|
||||
|
||||
# used for "View source" (unset by default)
|
||||
# gitFileURL: https://github.com/BBaoVanC/bobatheme/blob/master
|
||||
# gitFileIcon: github-circle
|
||||
# gitHistoryURL: https://github.com/BBaoVanC/bobatheme/commits/master
|
||||
|
||||
# display a "Latest Posts" section on the homepage below its content
|
||||
homepageLatestPosts: true
|
||||
|
||||
# social media share icons
|
||||
# shareButtons:
|
||||
# twitter: true
|
||||
# facebook: true
|
||||
# linkedin: true
|
||||
# reddit: true
|
||||
# telegram: true
|
||||
# print: true
|
||||
|
||||
# show "Latest Posts" section at bottom of content pages
|
||||
# latestPostsOnContent: true
|
||||
|
||||
# footer: >-
|
||||
# Some example text for the footer.
|
||||
|
||||
|
||||
# see https://gohugo.io/about/hugo-and-gdpr/#all-privacy-settings
|
||||
# you probably want to keep this default
|
||||
privacy:
|
||||
_merge: deep
|
||||
|
||||
languages:
|
||||
en:
|
||||
languageName: English
|
||||
title: Example Website
|
||||
weight: 1
|
||||
|
||||
es:
|
||||
languageName: Español
|
||||
title: Sitio web ejemplo
|
||||
weight: 2
|
||||
params:
|
||||
description: Sitio web ejemplo para bobatheme
|
31
i18n/en.toml
Normal file
31
i18n/en.toml
Normal file
@ -0,0 +1,31 @@
|
||||
[credit_comment]
|
||||
other = "<!-- bobatheme is available under the MIT license at https://github.com/BBaoVanC/bobatheme. -->"
|
||||
|
||||
[long_date]
|
||||
other = "{{ .Date.Format `January 2, 2006` }}"
|
||||
|
||||
[wordcount]
|
||||
one = "{{ . }} word"
|
||||
other = "{{ . }} words"
|
||||
|
||||
[readingtime]
|
||||
one = "{{ . }} min"
|
||||
other = "{{ . }} mins"
|
||||
|
||||
[read_more]
|
||||
other = "Read more"
|
||||
|
||||
|
||||
[browser_no_video_support]
|
||||
other = "Your browser does not support video."
|
||||
|
||||
|
||||
[filtering_for]
|
||||
other = "Filtering for \"{{ . }}\""
|
||||
|
||||
[no_posts]
|
||||
other = "No posts here!"
|
||||
|
||||
|
||||
[table_of_contents]
|
||||
other = "Table of Contents"
|
131
i18n/en.yaml
131
i18n/en.yaml
@ -1,131 +0,0 @@
|
||||
# Misc
|
||||
credit_comment:
|
||||
other: "<!-- bobatheme is available under the MIT license at https://github.com/BBaoVanC/bobatheme. -->"
|
||||
|
||||
table_of_contents:
|
||||
other: "Table of Contents"
|
||||
|
||||
browser_no_video_support:
|
||||
other: "Your browser does not support video."
|
||||
|
||||
latest_posts:
|
||||
other: "Latest Posts"
|
||||
|
||||
see_also:
|
||||
other: "SEE ALSO:"
|
||||
|
||||
copy_to_clipboard:
|
||||
other: "Copy"
|
||||
|
||||
|
||||
# Meta items
|
||||
long_date:
|
||||
other: "{{ .Date.Format `January 2, 2006` }}"
|
||||
|
||||
wordcount:
|
||||
one: "{{ . }} word"
|
||||
other: "{{ . }} words"
|
||||
|
||||
readingtime:
|
||||
one: "{{ . }} min"
|
||||
other: "{{ . }} mins"
|
||||
|
||||
edit_history:
|
||||
other: "Edit history"
|
||||
|
||||
|
||||
# Post count
|
||||
no_posts:
|
||||
other: "No posts here!"
|
||||
|
||||
post_count:
|
||||
one: "{{ . }} post"
|
||||
other: "{{ . }} posts"
|
||||
|
||||
|
||||
# Navigation
|
||||
read_more:
|
||||
other: "Read more"
|
||||
|
||||
related_posts:
|
||||
other: "Related Posts"
|
||||
|
||||
older_post:
|
||||
other: "Older"
|
||||
|
||||
newer_post:
|
||||
other: "Newer"
|
||||
|
||||
|
||||
# ARIA labels
|
||||
aria_header_link:
|
||||
other: "header link"
|
||||
|
||||
aria_back_to_top_button:
|
||||
other: "back to top button"
|
||||
|
||||
aria_rss_link:
|
||||
other: "RSS feed link"
|
||||
|
||||
aria_post_meta_edit_history:
|
||||
other: "link to page edit history"
|
||||
|
||||
aria_post_meta_translations:
|
||||
other: "translations"
|
||||
|
||||
aria_post_meta_categories:
|
||||
other: "categories"
|
||||
|
||||
aria_post_meta_tags:
|
||||
other: "tags"
|
||||
|
||||
aria_post_meta_reading_time:
|
||||
other: "reading time"
|
||||
|
||||
aria_post_meta_authors:
|
||||
other: "authors"
|
||||
|
||||
aria_post_meta_series:
|
||||
other: "series"
|
||||
|
||||
aria_breadcrumbnav:
|
||||
other: "breadcrumb navigation bar"
|
||||
|
||||
aria_post_metadata:
|
||||
other: "post metadata"
|
||||
|
||||
aria_author_metadata:
|
||||
other: "author metadata"
|
||||
|
||||
aria_taxonomy_metadata:
|
||||
other: "taxonomy metadata"
|
||||
|
||||
aria_post_meta_date:
|
||||
other: "date"
|
||||
|
||||
aria_post_meta_modified_date:
|
||||
other: "last modified date"
|
||||
|
||||
aria_author_post_count:
|
||||
other: "post count"
|
||||
|
||||
aria_author_word_count:
|
||||
other: "word count"
|
||||
|
||||
aria_taxonomy_post_count:
|
||||
other: "post count"
|
||||
|
||||
aria_series_metadata:
|
||||
other: "series metadata"
|
||||
|
||||
aria_navbar:
|
||||
other: "navigation bar"
|
||||
|
||||
aria_langpicker:
|
||||
other: "language picker"
|
||||
|
||||
aria_langpicker_list:
|
||||
other: "language list"
|
||||
|
||||
aria_table_of_contents:
|
||||
other: "table of contents"
|
31
i18n/es.toml
Normal file
31
i18n/es.toml
Normal file
@ -0,0 +1,31 @@
|
||||
[credit_comment]
|
||||
other = "<!-- bobatheme está disponible en GitHub basado en la licensia MIT: https://github.com/BBaoVanC/bobatheme. -->"
|
||||
|
||||
[long_date]
|
||||
other = "{{ .Date.Day }} de {{ index .Data.meses (printf `%d` .Date.Month) }} de {{ .Date.Year }}"
|
||||
|
||||
[wordcount]
|
||||
one = "{{ . }} palabra"
|
||||
other = "{{ . }} palabras"
|
||||
|
||||
[readingtime]
|
||||
one = "{{ . }} min"
|
||||
other = "{{ . }} mins"
|
||||
|
||||
[read_more]
|
||||
other = "Leer más"
|
||||
|
||||
|
||||
[browser_no_video_support]
|
||||
other = "Tu navegador de internet no admite video."
|
||||
|
||||
|
||||
[filtering_for]
|
||||
other = "Filtrando por \"{{ . }}\""
|
||||
|
||||
[no_posts]
|
||||
other = "¡No hay contenido para mostrar!"
|
||||
|
||||
|
||||
[table_of_contents]
|
||||
other = "Índice"
|
131
i18n/es.yaml
131
i18n/es.yaml
@ -1,131 +0,0 @@
|
||||
# Misc
|
||||
credit_comment:
|
||||
other: "<!-- bobatheme está disponible en GitHub basado en la licensia MIT: https://github.com/BBaoVanC/bobatheme. -->"
|
||||
|
||||
table_of_contents:
|
||||
other: "Índice"
|
||||
|
||||
browser_no_video_support:
|
||||
other: "Tu navegador de internet no admite video."
|
||||
|
||||
latest_posts:
|
||||
other: "Artículos recientes"
|
||||
|
||||
see_also:
|
||||
other: "Véase también:"
|
||||
|
||||
copy_to_clipboard:
|
||||
other: "Copiar"
|
||||
|
||||
|
||||
# Meta items
|
||||
long_date:
|
||||
other: "{{ .Date.Day }} de {{ index .Data.meses (printf `%d` .Date.Month) }} de {{ .Date.Year }}"
|
||||
|
||||
wordcount:
|
||||
one: "{{ . }} palabra"
|
||||
other: "{{ . }} palabras"
|
||||
|
||||
readingtime:
|
||||
one: "{{ . }} min"
|
||||
other: "{{ . }} mins"
|
||||
|
||||
edit_history:
|
||||
other: "Historial de cambios"
|
||||
|
||||
|
||||
# Post count
|
||||
no_posts:
|
||||
other: "¡No hay contenido para mostrar!"
|
||||
|
||||
post_count:
|
||||
one: "{{ . }} publicación"
|
||||
other: "{{ . }} publicaciones"
|
||||
|
||||
|
||||
# Navigation
|
||||
read_more:
|
||||
other: "Leer más"
|
||||
|
||||
related_posts:
|
||||
other: "Publicaciones similares"
|
||||
|
||||
older_post:
|
||||
other: "Más antiguo"
|
||||
|
||||
newer_post:
|
||||
other: "Más nuevo"
|
||||
|
||||
|
||||
# ARIA labels
|
||||
# aria_header_link:
|
||||
# other: "header link"
|
||||
|
||||
# aria_back_to_top_button:
|
||||
# other: "back to top button"
|
||||
|
||||
# aria_rss_link:
|
||||
# other: "RSS feed link"
|
||||
|
||||
# aria_post_meta_edit_history:
|
||||
# other: "link to page edit history"
|
||||
|
||||
# aria_post_meta_translations:
|
||||
# other: "translations"
|
||||
|
||||
# aria_post_meta_categories:
|
||||
# other: "categories"
|
||||
|
||||
# aria_post_meta_tags:
|
||||
# other: "tags"
|
||||
|
||||
# aria_post_meta_reading_time:
|
||||
# other: "reading time"
|
||||
|
||||
# aria_post_meta_authors:
|
||||
# other: "authors"
|
||||
|
||||
# aria_post_meta_series:
|
||||
# other: "series"
|
||||
|
||||
# aria_breadcrumbnav:
|
||||
# other: "breadcrumb navigation bar"
|
||||
|
||||
# aria_post_metadata:
|
||||
# other: "post metadata"
|
||||
|
||||
# aria_author_metadata:
|
||||
# other: "author metadata"
|
||||
|
||||
# aria_taxonomy_metadata:
|
||||
# other: "taxonomy metadata"
|
||||
|
||||
# aria_post_meta_date:
|
||||
# other: "date"
|
||||
|
||||
# aria_post_meta_modified_date:
|
||||
# other: "last modified date"
|
||||
|
||||
# aria_author_post_count:
|
||||
# other: "post count"
|
||||
|
||||
# aria_author_word_count:
|
||||
# other: "word count"
|
||||
|
||||
# aria_taxonomy_post_count:
|
||||
# other: "post count"
|
||||
|
||||
# aria_series_metadata:
|
||||
# other: "series metadata"
|
||||
|
||||
# aria_navbar:
|
||||
# other: "navigation bar"
|
||||
|
||||
# aria_langpicker:
|
||||
# other: "language picker"
|
||||
|
||||
# aria_langpicker_list:
|
||||
# other: "language list"
|
||||
|
||||
# aria_table_of_contents:
|
||||
# other: "table of contents"
|
@ -1,15 +0,0 @@
|
||||
{{ $type := "text" }}
|
||||
{{ with .Type }}
|
||||
{{ $type = . }}
|
||||
{{ end }}
|
||||
<div class="code-block">
|
||||
<div class="code-header">
|
||||
<pre class="code-type">{{ $type }}</pre>
|
||||
<a href="javascript:void(0)" class="code-copy-button">
|
||||
{{ i18n "copy_to_clipboard" }}
|
||||
</a>
|
||||
</div>
|
||||
|
||||
{{/* a div.highlight is already created by highlight function */}}
|
||||
{{ highlight .Inner $type }}
|
||||
</div>
|
@ -1,7 +1,7 @@
|
||||
<h{{ .Level }} id="{{ .Anchor | safeURL }}" class="section-header">
|
||||
{{ .Text | safeHTML }}
|
||||
<a href="#{{ .Anchor | safeURL }}">
|
||||
<span class="section-header-link" aria-label="{{ i18n "aria_header_link" }}">
|
||||
<span class="section-header-link">
|
||||
{{ partial "icon.html" "link" }}
|
||||
</span>
|
||||
</a>
|
||||
|
@ -1,8 +1 @@
|
||||
<a
|
||||
href="{{ .Destination | safeURL }}"
|
||||
{{ with .Title }}title="{{ . }}"{{ end }}
|
||||
{{ if strings.HasPrefix .Destination "http" }}target="_blank" rel="noopener"{{ end }}
|
||||
>
|
||||
{{- .Text | safeHTML -}}
|
||||
</a>
|
||||
{{- /* This comment gets rid of the trailing newline. */ -}}
|
||||
<a href="{{ .Destination | safeURL }}"{{ with .Title}}title="{{ . }}"{{ end }}{{ if strings.HasPrefix .Destination "http" }}target="_blank" rel="noopener"{{ end }}>{{ .Text | safeHTML }}</a>{{/* DO NOT REMOVE THE TRAILING NEWLINE HERE -- it prevents there from being whitespace in between the link and the next word/element (for example: if there's a period right after a link) */}}
|
@ -1,49 +1,30 @@
|
||||
{{ partial "credit.html" }}
|
||||
<!DOCTYPE html>
|
||||
<html lang="{{ .Language.Lang }}">
|
||||
{{ partial "head.html" . }}
|
||||
{{- partial "head.html" . -}}
|
||||
|
||||
<body>
|
||||
<a id="top" name="top" aria-hidden="true"></a>
|
||||
|
||||
<div class="top">
|
||||
{{ partial "top.html" . }}
|
||||
</div>
|
||||
|
||||
{{ if not .IsHome }}
|
||||
{{ partial "breadcrumb.html" . }}
|
||||
<div class="content">
|
||||
{{- block "main" . }}
|
||||
{{ .Content }}
|
||||
{{- end }}
|
||||
</div>
|
||||
|
||||
{{ with .Site.Copyright }}
|
||||
<footer>
|
||||
<hr>
|
||||
<small>
|
||||
©
|
||||
{{ now.Format "2006" }}
|
||||
{{ $.Site.Author.name }}
|
||||
{{ . | safeHTML }}
|
||||
</small>
|
||||
</footer>
|
||||
{{ end }}
|
||||
|
||||
<main>
|
||||
{{ block "main" . }}
|
||||
THIS TEXT SHOULD NOT SHOW. YUZSIQGHE (that string is so I can grep for it)
|
||||
{{ end }}
|
||||
</main>
|
||||
|
||||
{{ if or .Site.Copyright .Site.Params.footer }}
|
||||
<footer>
|
||||
<small>
|
||||
{{ with .Site.Copyright }}
|
||||
<p>{{ . | safeHTML }}</p>
|
||||
{{ end }}
|
||||
|
||||
{{ with .Site.Params.footer }}
|
||||
{{ . | $.RenderString (dict "display" "block") }}
|
||||
{{ end }}
|
||||
</small>
|
||||
</footer>
|
||||
{{ end }}
|
||||
|
||||
<a id="back-to-top" href="#top" aria-label="{{ i18n "aria_back_to_top_button" }}">
|
||||
{{ partial "icon.html" "chevron-up" }}
|
||||
</a>
|
||||
<noscript>
|
||||
<style>
|
||||
#back-to-top {
|
||||
display: block;
|
||||
}
|
||||
</style>
|
||||
</noscript>
|
||||
</body>
|
||||
|
||||
</html>
|
||||
|
@ -1,25 +1,27 @@
|
||||
{{ define "main" }}
|
||||
<h1>
|
||||
{{ with .Params.icon }}{{ partial "icon.html" . }}{{ end }}
|
||||
{{ .Title | markdownify }}
|
||||
{{ partial "rss-link.html" . }}
|
||||
</h1>
|
||||
|
||||
{{ with .Content }}
|
||||
{{ . }}
|
||||
{{ end }}
|
||||
|
||||
<div class="list-page-content">
|
||||
{{ with .Sections }}
|
||||
<div class="sections">
|
||||
{{ range . }}
|
||||
{{ .Render "summary/section" }}
|
||||
{{ end }}
|
||||
</div>
|
||||
<h1>
|
||||
{{ with .Params.icon }}{{ partial "icon.html" . }}{{ end }}
|
||||
{{ .Title | markdownify }}
|
||||
<span class="rss-link">
|
||||
{{ with .OutputFormats.Get "rss" }}
|
||||
<a href="{{ .Permalink }}">{{ partial "icon.html" "rss" }}</a>
|
||||
{{ end }}
|
||||
</span>
|
||||
</h1>
|
||||
|
||||
{{ partial "page-list.html" .Paginator.Pages }}
|
||||
</div>
|
||||
<div class="posts">
|
||||
{{ range .Paginator.Pages }}
|
||||
{{ .Render "summary" }}
|
||||
{{ else }}
|
||||
{{ i18n "no_posts" }}
|
||||
{{ end }}
|
||||
</div>
|
||||
|
||||
{{ if gt .Paginator.TotalPages 1 }}
|
||||
<div class="pagination">
|
||||
{{ template "_internal/pagination.html" . }}
|
||||
</div>
|
||||
{{ end }}
|
||||
|
||||
{{ partial "pagination.html" . }}
|
||||
{{ end }}
|
||||
|
@ -1,89 +1,27 @@
|
||||
{{ define "main" }}
|
||||
<div class="post-title">
|
||||
<h1>
|
||||
{{ .Title | markdownify }}
|
||||
{{ if .Draft }}{{ partial "icon.html" "write" }}{{ end }}
|
||||
</h1>
|
||||
</div>
|
||||
<div class="post-title">
|
||||
<h1>
|
||||
{{ .Title | markdownify }}
|
||||
{{ if .Draft }}{{ partial "icon.html" "edit" }}{{ end }}
|
||||
</h1>
|
||||
</div>
|
||||
|
||||
{{ partial "post-metadata/full.html" . }}
|
||||
{{ partial "series-box.html" . }}
|
||||
{{ partial "post-metadata.html" . }}
|
||||
|
||||
{{ if .Params.Toc }}
|
||||
<div class="table-of-contents" aria-label="{{ i18n "aria_table_of_contents" }}">
|
||||
<details>
|
||||
<summary>{{ i18n "table_of_contents" }}</summary>
|
||||
{{ .TableOfContents }}
|
||||
</details>
|
||||
</div>
|
||||
<div class="table-of-contents print">
|
||||
{{ i18n "table_of_contents" }}
|
||||
{{ .TableOfContents }}
|
||||
</div>
|
||||
{{ end }}
|
||||
|
||||
{{ with .Resources.GetMatch "feature" }}
|
||||
<div class="post-media">
|
||||
{{ partial "figure.html" (dict "src" .) }}
|
||||
</div>
|
||||
{{ end }}
|
||||
|
||||
<article class="post-content">
|
||||
{{ .Content }}
|
||||
</article>
|
||||
|
||||
{{ partial "series-box.html" . }}
|
||||
|
||||
{{ if or .NextInSection .PrevInSection }}
|
||||
<div class="prevnext">
|
||||
{{ with .NextInSection }}
|
||||
<a class="prev" href="{{ .Permalink }}">
|
||||
<div class="prev-caption">
|
||||
← {{ i18n "newer_post" }}
|
||||
</div>
|
||||
<div class="prev-post">
|
||||
{{ .Title | markdownify }}
|
||||
</div>
|
||||
</a>
|
||||
{{ else }}
|
||||
<div class="prev"></div>
|
||||
{{ end }}
|
||||
|
||||
{{ with .PrevInSection }}
|
||||
<a class="next" href="{{ .Permalink }}">
|
||||
<div class="next-caption">
|
||||
{{ i18n "older_post" }} →
|
||||
</div>
|
||||
<div class="next-post">
|
||||
{{ .Title | markdownify }}
|
||||
</div>
|
||||
</a>
|
||||
{{ else }}
|
||||
<div class="next"></div>
|
||||
{{ end }}
|
||||
</div>
|
||||
{{ end }}
|
||||
|
||||
{{ if .Site.Params.shareButtons }}
|
||||
{{ partial "share.html" . }}
|
||||
{{ end }}
|
||||
|
||||
{{ if .Params.comments }}
|
||||
<div class="comments">
|
||||
{{ partial "comments.html" . }}
|
||||
</div>
|
||||
{{ end }}
|
||||
|
||||
{{ $related := .Site.RegularPages.Related . | first 10 }}
|
||||
{{ with $related }}
|
||||
<div class="related-posts full-width-page-list">
|
||||
<hr>
|
||||
<h1>{{ i18n "related_posts" }}</h1>
|
||||
{{ partial "page-list.html" . }}
|
||||
</div>
|
||||
{{ end }}
|
||||
|
||||
{{ if .Site.Params.latestPostsOnContent }}
|
||||
{{ partialCached "latest-posts.html" . }}
|
||||
{{ end }}
|
||||
{{ if .Params.Toc }}
|
||||
<div id="table-of-contents">
|
||||
<h2>{{ i18n "table_of_contents" }}</h2>
|
||||
{{ .TableOfContents }}
|
||||
</div>
|
||||
{{ end }}
|
||||
|
||||
<hr>
|
||||
|
||||
{{ with .Resources.GetMatch "feature" }}
|
||||
<div class="post-media">
|
||||
{{ partial "figure.html" . }}
|
||||
</div>
|
||||
{{ end }}
|
||||
|
||||
{{ .Content }}
|
||||
{{ end }}
|
||||
|
33
layouts/_default/summary.html
Normal file
33
layouts/_default/summary.html
Normal file
@ -0,0 +1,33 @@
|
||||
<div class="post">
|
||||
<h2 class="post-title">
|
||||
{{ range .Params.categories }}
|
||||
<code>{{ . }}</code>
|
||||
{{ end }}
|
||||
|
||||
{{ with .Parent.Params.icon }}{{ partial "icon.html" . }}{{ end }}
|
||||
<a href="{{ .Permalink }}">{{ .Title | markdownify }}</a>
|
||||
{{ if .Draft }}{{ partial "icon.html" "edit" }}{{ end }}
|
||||
</h2>
|
||||
|
||||
{{ partial "post-metadata.html" . }}
|
||||
|
||||
{{ with .Resources.GetMatch "feature" }}
|
||||
<div class="post-media">
|
||||
{{ partial "figure.html" . }}
|
||||
</div>
|
||||
{{ end }}
|
||||
|
||||
<div class="post-description">
|
||||
{{ if .Description }}
|
||||
<p>
|
||||
{{ .Description | markdownify }}
|
||||
</p>
|
||||
{{ else }}
|
||||
{{ .Summary }}
|
||||
{{ end }}
|
||||
</div>
|
||||
|
||||
<div class="readmore">
|
||||
<a href="{{ .Permalink }}">{{ i18n "read_more" }} →</a>
|
||||
</div>
|
||||
</div>
|
@ -1,16 +0,0 @@
|
||||
<div class="author">
|
||||
<h2 class="author-name">
|
||||
<a href="{{ .Permalink }}">{{ .Title | markdownify }}</a>
|
||||
{{ if .Draft }}{{ partial "icon.html" "write" }}{{ end }}
|
||||
</h2>
|
||||
|
||||
{{ partial "post-metadata/author.html" . }}
|
||||
|
||||
<div class="author-description">
|
||||
{{ partial "description-or-summary.html" . }}
|
||||
</div>
|
||||
|
||||
<div class="readmore">
|
||||
<a href="{{ .Permalink }}">{{ i18n "read_more" }} →</a>
|
||||
</div>
|
||||
</div>
|
@ -1,21 +0,0 @@
|
||||
<h2 class="post-title">
|
||||
{{ with .Parent.Params.icon }}{{ partial "icon.html" . }}{{ end }}
|
||||
<a href="{{ .Permalink }}">{{ .Title | markdownify }}</a>
|
||||
{{ if .Draft }}{{ partial "icon.html" "write" }}{{ end }}
|
||||
</h2>
|
||||
|
||||
{{ partial "post-metadata/short.html" . }}
|
||||
|
||||
{{ with .Resources.GetMatch "feature" }}
|
||||
<div class="post-media">
|
||||
{{ partial "figure.html" (dict "src" .) }}
|
||||
</div>
|
||||
{{ end }}
|
||||
|
||||
<div class="post-description">
|
||||
{{ partial "description-or-summary.html" . }}
|
||||
</div>
|
||||
|
||||
<div class="readmore">
|
||||
<a href="{{ .Permalink }}">{{ i18n "read_more" }} →</a>
|
||||
</div>
|
@ -1,12 +0,0 @@
|
||||
<a class="section-anchor" href="{{ .Permalink }}">
|
||||
<div class="section">
|
||||
<h2 class="section-title">
|
||||
{{ with .Params.icon }}{{ partial "icon.html" . }}{{ end }}
|
||||
{{ .Title | markdownify }}
|
||||
</h2>
|
||||
|
||||
<div class="section-description">
|
||||
{{ partial "description-or-summary.html" . }}
|
||||
</div>
|
||||
</div>
|
||||
</a>
|
@ -1,24 +0,0 @@
|
||||
<h2 class="post-title">
|
||||
{{ with .Parent.Params.icon }}{{ partial "icon.html" . }}{{ end }}
|
||||
<a href="{{ .Permalink }}">{{ .Title | markdownify }}</a>
|
||||
{{ if .Draft }}{{ partial "icon.html" "write" }}{{ end }}
|
||||
</h2>
|
||||
|
||||
{{ partial "post-metadata/series.html" . }}
|
||||
|
||||
<div class="post-description">
|
||||
{{ partial "description-or-summary.html" . }}
|
||||
</div>
|
||||
|
||||
<div class="series-page-list">
|
||||
{{ $i := 0 }}
|
||||
{{ $total := len .Data.Pages }}
|
||||
{{ range .Data.Pages.Reverse }}
|
||||
{{ $i = add 1 $i }}
|
||||
{{ .Scratch.Set "series_position" $i }}
|
||||
{{ .Scratch.Set "series_total" $total }}
|
||||
<article class="post">
|
||||
{{ .Render "summary/series_post" }}
|
||||
</article>
|
||||
{{ end }}
|
||||
</div>
|
@ -1,27 +0,0 @@
|
||||
<div class="post-series-position">
|
||||
{{ if .Scratch.Get "series_position" }}
|
||||
({{ .Scratch.Get "series_position" }}/{{ .Scratch.Get "series_total" }})
|
||||
{{ end }}
|
||||
</div>
|
||||
|
||||
<h2 class="post-title">
|
||||
{{ with .Parent.Params.icon }}{{ partial "icon.html" . }}{{ end }}
|
||||
<a href="{{ .Permalink }}">{{ .Title | markdownify }}</a>
|
||||
{{ if .Draft }}{{ partial "icon.html" "write" }}{{ end }}
|
||||
</h2>
|
||||
|
||||
{{ partial "post-metadata/short.html" . }}
|
||||
|
||||
{{ with .Resources.GetMatch "feature" }}
|
||||
<div class="post-media">
|
||||
{{ partial "figure.html" (dict "src" .) }}
|
||||
</div>
|
||||
{{ end }}
|
||||
|
||||
<div class="post-description">
|
||||
{{ partial "description-or-summary.html" . }}
|
||||
</div>
|
||||
|
||||
<div class="readmore">
|
||||
<a href="{{ .Permalink }}">{{ i18n "read_more" }} →</a>
|
||||
</div>
|
@ -1,24 +0,0 @@
|
||||
{{ define "main" }}
|
||||
<h1>
|
||||
{{ partial "icon.html" "user-circle" }}
|
||||
{{ .Title | markdownify }}
|
||||
</h1>
|
||||
|
||||
{{ with .Content }}
|
||||
{{ . }}
|
||||
{{ end }}
|
||||
|
||||
<div class="page-list">
|
||||
{{ with .Paginator.Pages }}
|
||||
{{ range . }}
|
||||
<article class="post">
|
||||
{{ .Render "summary/author" }}
|
||||
</article>
|
||||
{{ end }}
|
||||
{{ else }}
|
||||
<div>
|
||||
{{ i18n "no_posts" }}
|
||||
</div>
|
||||
{{ end }}
|
||||
</div>
|
||||
{{ end }}
|
@ -1,19 +0,0 @@
|
||||
{{ define "main" }}
|
||||
<div class="author-name">
|
||||
<h1>
|
||||
{{ partial "icon.html" "user-circle" }}
|
||||
{{ .Title | markdownify }}
|
||||
{{ partial "rss-link.html" . }}
|
||||
</h1>
|
||||
</div>
|
||||
|
||||
{{ partial "post-metadata/author.html" . }}
|
||||
|
||||
{{ with .Content }}
|
||||
{{ . }}
|
||||
{{ end }}
|
||||
|
||||
{{ partial "page-list.html" .Paginator.Pages }}
|
||||
|
||||
{{ partial "pagination.html" . }}
|
||||
{{ end }}
|
@ -1,21 +0,0 @@
|
||||
{{ define "main" }}
|
||||
{{ with .Content }}
|
||||
<article class="homepage-content">
|
||||
{{ . }}
|
||||
</article>
|
||||
<hr>
|
||||
{{ end }}
|
||||
|
||||
{{ if .Site.Params.homepageLatestPosts }}
|
||||
<div class="homepage-latest-posts">
|
||||
<h1>
|
||||
{{ i18n "latest_posts" }}
|
||||
{{ partial "rss-link.html" . }}
|
||||
</h1>
|
||||
|
||||
{{ partial "page-list.html" (.Paginate .Site.RegularPages).Pages }}
|
||||
|
||||
{{ partial "pagination.html" . }}
|
||||
</div>
|
||||
{{ end }}
|
||||
{{ end }}
|
2
layouts/index.html
Normal file
2
layouts/index.html
Normal file
@ -0,0 +1,2 @@
|
||||
{{ define "main" }}
|
||||
{{ end }}
|
@ -1,4 +0,0 @@
|
||||
{{/*
|
||||
Create a file named `layouts/partials/additional-head.html` at your site root to
|
||||
add extra tags into <head>. Page variables are passed.
|
||||
*/}}
|
@ -1,19 +0,0 @@
|
||||
<nav class="breadcrumb" aria-label="{{ i18n "aria_breadcrumbnav" }}">
|
||||
<ul>
|
||||
{{ template "breadcrumbnav" (dict "p1" . "p2" .) }}
|
||||
</ul>
|
||||
</nav>
|
||||
{{ define "breadcrumbnav" }}
|
||||
{{ if .p1.Parent }}
|
||||
{{ template "breadcrumbnav" (dict "p1" .p1.Parent "p2" .p2 ) }}
|
||||
{{ else if not .p1.IsHome }}
|
||||
{{ template "breadcrumbnav" (dict "p1" .p1.Site.Home "p2" .p2 ) }}
|
||||
{{ end }}
|
||||
<li{{ if eq .p1 .p2 }} class="active"{{ end }}>
|
||||
{{ if eq .p1 .p2 }}
|
||||
{{ .p1.Title | markdownify }}
|
||||
{{ else }}
|
||||
<a href="{{ .p1.Permalink }}">{{ .p1.Title | markdownify }}</a>
|
||||
{{ end }}
|
||||
</li>
|
||||
{{ end }}
|
@ -1,4 +0,0 @@
|
||||
{{/*
|
||||
Create a file named `layouts/partials/comments.html` at your site root to
|
||||
add a comment system. Page variables are passed.
|
||||
*/}}
|
@ -1,7 +0,0 @@
|
||||
{{ with .Description }}
|
||||
<p>{{ . | markdownify }}</p>
|
||||
{{ else }}
|
||||
{{ with .Summary }}
|
||||
{{ . }}
|
||||
{{ end }}
|
||||
{{ end }}
|
@ -1,28 +1,41 @@
|
||||
{{ $hidecaption := index . "hidecaption" }}
|
||||
<figure>
|
||||
{{ $media := . | resources.Fingerprint "sha512" }}
|
||||
|
||||
{{ if index . "noborder" }}
|
||||
<figure>
|
||||
{{ else }}
|
||||
<figure class="border">
|
||||
{{ end }}
|
||||
{{ if eq .MediaType.MainType "image" }}
|
||||
|
||||
{{ with index . "src" }}
|
||||
{{ $media := . }}
|
||||
{{ if eq .MediaType.MainType "image" }}
|
||||
<img src="{{ $media.Permalink }}" alt="{{ $media.Title }}" />
|
||||
{{ else if eq .MediaType.MainType "video" }}
|
||||
<video controls preload="metadata">
|
||||
<source src="{{ $media.Permalink }}" alt="{{ $media.Title }}">
|
||||
{{ i18n "browser_no_video_support" }}
|
||||
</video>
|
||||
{{ end }}
|
||||
{{ $tiny := $media.Resize "500x" }}
|
||||
{{ $small := $media.Resize "800x" }}
|
||||
{{ $medium := $media.Resize "1200x" }}
|
||||
{{ $large := $media.Resize "1500x" }}
|
||||
<img src="{{ $media.Permalink }}"
|
||||
alt="{{ $media.Title }}"
|
||||
srcset='
|
||||
{{ if ge $media.Width "500" }}
|
||||
{{ $tiny.RelPermalink}} 500w,
|
||||
{{ end }}
|
||||
{{ if ge $media.Width "800" }}
|
||||
{{ $small.RelPermalink }} 800w,
|
||||
{{ end }}
|
||||
{{ if ge $media.Width "1200" }}
|
||||
{{ $medium.RelPermalink }} 1200w,
|
||||
{{ end }}
|
||||
{{ if ge $media.Width "1500" }}
|
||||
{{ $large.RelPermalink }} 1500w,
|
||||
{{ end }}
|
||||
{{ $media.RelPermalink }} {{ $media.Width }}w
|
||||
'
|
||||
/>
|
||||
|
||||
{{ if not $hidecaption }}
|
||||
{{ with $media.Title }}
|
||||
<figcaption>
|
||||
{{ . | markdownify }}
|
||||
</figcaption>
|
||||
{{ end }}
|
||||
{{ end }}
|
||||
{{ else if eq .MediaType.MainType "video" }}
|
||||
<video controls>
|
||||
<source src="{{ $media.Permalink }}" alt="{{ $media.Title }}">
|
||||
{{ i18n "browser_no_video_support" }}
|
||||
</video>
|
||||
{{ end }}
|
||||
|
||||
{{ with $media.Title }}
|
||||
<figcaption>
|
||||
{{ . | markdownify }}
|
||||
</figcaption>
|
||||
{{ end }}
|
||||
</figure>
|
||||
|
@ -4,43 +4,32 @@
|
||||
{{ hugo.Generator }}
|
||||
|
||||
{{ with resources.Get "css/bobastyle.css" | fingerprint "sha512" }}
|
||||
<link rel="stylesheet" type="text/css" href="{{ .Permalink }}" integrity="{{ .Data.Integrity }}" crossorigin="anonymous">
|
||||
<link rel="stylesheet" type="text/css" href="{{ .Permalink }}" integrity="{{ .Data.Integrity }}" crossorigin="anonymous">
|
||||
{{ end }}
|
||||
{{ with resources.Get "css/syntax.css" | fingerprint "sha512" }}
|
||||
<link rel="stylesheet" type="text/css" href="{{ .Permalink }}" integrity="{{ .Data.Integrity }}" crossorigin="anonymous">
|
||||
{{ end }}
|
||||
{{ with resources.Get "css/syntax-light.css" | fingerprint "sha512" }}
|
||||
<link rel="stylesheet" type="text/css" href="{{ .Permalink }}" integrity="{{ .Data.Integrity }}" crossorigin="anonymous">
|
||||
<link rel="stylesheet" type="text/css" href="{{ .Permalink }}" integrity="{{ .Data.Integrity }}" crossorigin="anonymous">
|
||||
{{ end }}
|
||||
|
||||
{{ with resources.Get "js/bobatheme.js" | fingerprint "sha512" }}
|
||||
<script defer src="{{ .Permalink }}" type="text/javascript" integrity="{{ .Data.Integrity }}" crossorigin="anonymous"></script>
|
||||
{{ with .Site.Params.faviconICO }}
|
||||
<link rel="icon" type="image/x-icon" href="{{ . | absURL }}" />
|
||||
{{ end }}
|
||||
{{ with resources.Get "js/share-event.js" | fingerprint "sha512" }}
|
||||
<script defer src="{{ .Permalink }}" type="text/javascript" integrity="{{ .Data.Integrity }}" crossorigin="anonymous"></script>
|
||||
{{ with .Site.Params.faviconPNG }}
|
||||
<link rel="icon" type="image/png" href="{{ . | absURL }}" />
|
||||
{{ end }}
|
||||
|
||||
{{ with .Site.Params.faviconSVG }}
|
||||
<link rel="icon" href="{{ . | absURL }}" />
|
||||
{{ end }}
|
||||
{{ with .Site.Params.appleTouchPNG }}
|
||||
<link rel="apple-touch-icon" href="{{ . | absURL }}" />
|
||||
{{ end }}
|
||||
{{ range .AlternativeOutputFormats -}}
|
||||
{{ printf `<link rel="%s" type="%s" href="%s" title="%s" />` .Rel .MediaType.Type .Permalink $.Site.Title | safeHTML }}
|
||||
{{ end -}}
|
||||
|
||||
{{ if .IsHome }}
|
||||
<title>{{ .Site.Title | plainify }}</title>
|
||||
<title>{{ .Site.Title }}</title>
|
||||
{{ else }}
|
||||
<title>{{ (print .Title " | " .Site.Title) | plainify }}</title>
|
||||
<title>{{ print .Title " | " .Site.Title }}</title>
|
||||
{{ end }}
|
||||
|
||||
{{ partial "seo-tags/opengraph.html" . }}
|
||||
{{ partial "seo-tags/twitter-cards.html" . }}
|
||||
{{ partial "seo-tags/schema.html" . }}
|
||||
{{ partial "seo-tags/link.html" . }}
|
||||
{{ partial "seo-tags/author.html" . }}
|
||||
{{ partial "opengraph.html" . }}
|
||||
{{ template "_internal/twitter_cards.html" . }}
|
||||
{{ template "_internal/schema.html" . }}
|
||||
|
||||
<meta name="language" content="{{ .Language.Lang }}">
|
||||
<meta name="description" content="{{ (partial "seo-description.html" .) | plainify }}">
|
||||
|
||||
{{ partial "additional-head.html" . }}
|
||||
<meta name="description" content="{{ with .Description }}{{ . }}{{ else }}{{if .IsPage}}{{ .Summary }}{{ else }}{{ with .Site.Params.description }}{{ . }}{{ end }}{{ end }}{{ end }}">
|
||||
</head>
|
||||
|
@ -1 +1,5 @@
|
||||
{{ partialCached "icon_code.html" . . }}
|
||||
{{ $icon_resource := resources.Get (printf "feather/icons/%s.svg" .) }}
|
||||
{{ $icon := $icon_resource.Content }}
|
||||
{{ $icon = replaceRE `<svg` `<svg class="icon"` $icon }}
|
||||
{{ $icon = replaceRE `</svg>` (printf `<title>%s icon</title></svg>` .) $icon }}
|
||||
{{ $icon | safeHTML }}
|
||||
|
@ -1,6 +0,0 @@
|
||||
{{- $icon_resource := resources.Get (printf "jam/icons/%s.svg" .) -}}
|
||||
{{- $icon := $icon_resource.Content -}}
|
||||
{{- $icon = replaceRE `<svg` `<svg class="icon"` $icon -}}
|
||||
{{- $icon = replaceRE `</svg>` (printf `<title>%s icon</title></svg>` .) $icon -}}
|
||||
{{- $icon = replaceRE `(width|height)="[0-9]*"` "" $icon -}}
|
||||
{{- $icon | safeHTML -}}
|
@ -1,11 +0,0 @@
|
||||
<div class="latest-posts full-width-page-list">
|
||||
<hr>
|
||||
<h1>
|
||||
{{ i18n "latest_posts" }}
|
||||
{{ partial "rss-link.html" .Site.Home }}
|
||||
</h1>
|
||||
|
||||
{{ with .Site.RegularPages | first 5 }}
|
||||
{{ partial "page-list.html" . }}
|
||||
{{ end }}
|
||||
</div>
|
52
layouts/partials/opengraph.html
Normal file
52
layouts/partials/opengraph.html
Normal file
@ -0,0 +1,52 @@
|
||||
<meta property="og:title" content="{{ .Title }}" />
|
||||
<meta property="og:description" content="{{ with .Description }}{{ . }}{{ else }}{{if .IsPage}}{{ .Summary }}{{ else }}{{ with .Site.Params.description }}{{ . }}{{ end }}{{ end }}{{ end }}" />
|
||||
<meta property="og:type" content="{{ if .IsPage }}article{{ else }}website{{ end }}" />
|
||||
<meta property="og:url" content="{{ .Permalink }}" />
|
||||
|
||||
{{- with $.Params.images -}}
|
||||
{{- range first 6 . }}<meta property="og:image" content="{{ . | absURL }}" />{{ end -}}
|
||||
{{- else -}}
|
||||
{{- $images := $.Resources.ByType "image" -}}
|
||||
{{- $featured := $images.GetMatch "*feature*" -}}
|
||||
{{- if not $featured }}{{ $featured = $images.GetMatch "{*cover*,*thumbnail*}" }}{{ end -}}
|
||||
{{- with $featured -}}
|
||||
<meta property="og:image" content="{{ $featured.Permalink }}"/>
|
||||
{{- else -}}
|
||||
{{- with $.Site.Params.images }}<meta property="og:image" content="{{ index . 0 | absURL }}"/>{{ end -}}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
|
||||
{{- if .IsPage }}
|
||||
{{- $iso8601 := "2006-01-02T15:04:05-07:00" -}}
|
||||
<meta property="article:section" content="{{ .Section }}" />
|
||||
{{ with .PublishDate }}<meta property="article:published_time" {{ .Format $iso8601 | printf "content=%q" | safeHTMLAttr }} />{{ end }}
|
||||
{{ with .Lastmod }}<meta property="article:modified_time" {{ .Format $iso8601 | printf "content=%q" | safeHTMLAttr }} />{{ end }}
|
||||
{{- end -}}
|
||||
|
||||
{{- with .Params.audio }}<meta property="og:audio" content="{{ . }}" />{{ end }}
|
||||
{{- with .Params.locale }}<meta property="og:locale" content="{{ . }}" />{{ end }}
|
||||
{{- with .Site.Params.title }}<meta property="og:site_name" content="{{ . }}" />{{ end }}
|
||||
|
||||
{{- with .Params.videos -}}
|
||||
{{- range first 6 . }}<meta property="og:video" content="{{ . | absURL }}" />{{ end -}}
|
||||
{{- else -}}
|
||||
{{- $videos := $.Resources.ByType "video" -}}
|
||||
{{- $featured_video := $videos.GetMatch "*feature*" -}}
|
||||
{{- if not $featured_video }}{{ $featured_video = $videos.GetMatch "{*cover*,*thumbnail*}" }}{{ end -}}
|
||||
{{- with $featured_video -}}
|
||||
<meta property="og:video" content="{{ $featured_video.Permalink | absURL }}" />
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
|
||||
{{- /* If it is part of a series, link to related articles */}}
|
||||
{{- $permalink := .Permalink }}
|
||||
{{- $siteSeries := .Site.Taxonomies.series }}
|
||||
{{ with .Params.series }}{{- range $name := . }}
|
||||
{{- $series := index $siteSeries ($name | urlize) }}
|
||||
{{- range $page := first 6 $series.Pages }}
|
||||
{{- if ne $page.Permalink $permalink }}<meta property="og:see_also" content="{{ $page.Permalink }}" />{{ end }}
|
||||
{{- end }}
|
||||
{{ end }}{{ end }}
|
||||
|
||||
{{- /* Facebook Page Admin ID for Domain Insights */}}
|
||||
{{- with .Site.Social.facebook_admin }}<meta property="fb:admins" content="{{ . }}" />{{ end }}
|
@ -1,13 +0,0 @@
|
||||
<div class="page-list">
|
||||
{{ with . }}
|
||||
{{ range . }}
|
||||
<article class="post">
|
||||
{{ .Render "summary/post" }}
|
||||
</article>
|
||||
{{ end }}
|
||||
{{ else }}
|
||||
<div>
|
||||
{{ i18n "no_posts" }}
|
||||
</div>
|
||||
{{ end }}
|
||||
</div>
|
@ -1,5 +0,0 @@
|
||||
{{ if gt .Paginator.TotalPages 1 }}
|
||||
<nav class="pagination">
|
||||
{{ template "_internal/pagination.html" . }}
|
||||
</nav>
|
||||
{{ end }}
|
@ -1,16 +0,0 @@
|
||||
{{ with .Params.authors }}
|
||||
<span class="post-meta-item" aria-label="{{ i18n "aria_post_meta_authors" }}">
|
||||
{{ partial "icon.html" "user-circle" }}
|
||||
|
||||
{{ if index $.Site.Taxonomies "authors" }}
|
||||
{{ $authors := slice }}
|
||||
{{ range . }}
|
||||
{{ $url := (printf "authors/%s" (. | anchorize)) | absLangURL }}
|
||||
{{ $authors = $authors | append (printf `<a href="%s">%s</a>` $url . | safeHTML) }}
|
||||
{{ end }}
|
||||
{{ delimit $authors ", " }}
|
||||
{{ else }}
|
||||
{{ delimit . ", " }}
|
||||
{{ end }}
|
||||
</span>
|
||||
{{ end }}
|
@ -1,11 +0,0 @@
|
||||
{{ with (.GetTerms "categories") }}
|
||||
{{ $categories := slice }}
|
||||
{{ range . }}
|
||||
{{ $categories = $categories | append (printf `<a href="%s">%s</a>` .Permalink .LinkTitle) }}
|
||||
{{ end }}
|
||||
|
||||
<div class="categories" aria-label="{{ i18n "aria_post_meta_categories" }}">
|
||||
{{ partial "icon.html" "folder" }}
|
||||
{{ delimit $categories ", " }}
|
||||
</div>
|
||||
{{ end }}
|
@ -1,8 +0,0 @@
|
||||
{{ if and .Site.Params.gitHistoryURL .File.Path }}
|
||||
<span class="post-meta-item post-meta-edit-history" aria-label="{{ i18n "aria_post_meta_edit_history" }}">
|
||||
{{ partial "icon.html" "history" }}
|
||||
<a href="{{ printf "%s/content/%s" .Site.Params.gitHistoryURL .File.Path }}" target="_blank" rel="noopener">
|
||||
{{- i18n "edit_history" -}}
|
||||
</a>
|
||||
</span>
|
||||
{{ end }}
|
@ -1,6 +0,0 @@
|
||||
{{ if ne .Site.Params.readingtime false }}
|
||||
<span class="post-meta-item" aria-label="{{ i18n "aria_post_meta_reading_time" }}">
|
||||
{{ partial "icon.html" "clock" }}
|
||||
{{ i18n "readingtime" .ReadingTime }}
|
||||
</span>
|
||||
{{ end }}
|
@ -1,11 +0,0 @@
|
||||
{{ with (.GetTerms "series") }}
|
||||
{{ $series := slice }}
|
||||
{{ range . }}
|
||||
{{ $series = $series | append (printf `<a href="%s">%s</a>` .Permalink .LinkTitle) }}
|
||||
{{ end }}
|
||||
|
||||
<div class="series" aria-label="{{ i18n "aria_post_meta_series" }}">
|
||||
{{ partial "icon.html" "files" }}
|
||||
{{ delimit $series ", " }}
|
||||
</div>
|
||||
{{ end }}
|
@ -1,11 +0,0 @@
|
||||
{{ with (.GetTerms "tags") }}
|
||||
{{ $tags := slice }}
|
||||
{{ range . }}
|
||||
{{ $tags = $tags | append (printf `<a href="%s">%s</a>` .Permalink .LinkTitle) }}
|
||||
{{ end }}
|
||||
|
||||
<div class="tags" aria-label="{{ i18n "aria_post_meta_tags" }}">
|
||||
{{ partial "icon.html" "tag" }}
|
||||
{{ delimit $tags ", " }}
|
||||
</div>
|
||||
{{ end }}
|
@ -1,8 +0,0 @@
|
||||
{{ if .IsTranslated }}
|
||||
<span class="post-meta-item" aria-label="{{ i18n "aria_post_meta_translations" }}">
|
||||
{{ partial "icon.html" "world" }}
|
||||
{{ range .Translations }}
|
||||
<a href="{{ .Permalink }}">{{ .Language }}</a>
|
||||
{{ end }}
|
||||
</span>
|
||||
{{ end }}
|
66
layouts/partials/post-metadata.html
Normal file
66
layouts/partials/post-metadata.html
Normal file
@ -0,0 +1,66 @@
|
||||
{{ if or .Date .IsTranslated .Site.Params.wordcount .Site.Params.readingtime .Site.Params.repoURL }}
|
||||
<div class="post-metadata">
|
||||
{{ if .Date }}
|
||||
<span class="post-meta-item">
|
||||
{{ partial "icon.html" "calendar" }}
|
||||
<time datetime="{{ .Date.Format "January 2, 2006" }}" pubdate>
|
||||
{{ i18n "long_date" (dict "Date" .Date "Data" .Site.Data) }}
|
||||
</time>
|
||||
</span>
|
||||
|
||||
{{ if not .Site.Params.repoURL }}
|
||||
{{ if ne .Lastmod .Date }}
|
||||
<span class="post-meta-item">
|
||||
{{ partial "icon.html" "edit-2" }}
|
||||
<time datetime="{{ .Lastmod.Format "2006-01-02" }}" pubdate>
|
||||
{{ i18n "long_date" (dict "Date" .Lastmod "Data" .Site.Data) }}
|
||||
</time>
|
||||
{{ end }}
|
||||
</span>
|
||||
{{ end }}
|
||||
{{ end }}
|
||||
|
||||
{{ if .IsTranslated }}
|
||||
<span class="post-meta-item">
|
||||
{{ partial "icon.html" "globe" }}
|
||||
{{ range .Translations }}
|
||||
<a href="{{ .Permalink }}">{{ .Language }}</a>
|
||||
{{ end }}
|
||||
</span>
|
||||
{{ end }}
|
||||
|
||||
{{ if .Site.Params.wordcount }}
|
||||
<span class="post-meta-item">
|
||||
{{ partial "icon.html" "type" }}
|
||||
{{ i18n "wordcount" .WordCount }}
|
||||
</span>
|
||||
{{ end }}
|
||||
|
||||
{{ if .Site.Params.readingtime }}
|
||||
<span class="post-meta-item">
|
||||
{{ partial "icon.html" "clock" }}
|
||||
{{ i18n "readingtime" .ReadingTime }}
|
||||
</span>
|
||||
{{ end }}
|
||||
|
||||
{{ if .Site.Params.repoURL }}
|
||||
{{ with .GitInfo }}
|
||||
<span class="post-meta-item">
|
||||
{{ partial "icon.html" "git-commit" }}
|
||||
<a href="{{ (printf "%s/commit/%s" $.Site.Params.repoURL .Hash) | absLangURL }}">
|
||||
<code>{{ .AbbreviatedHash }}</code>
|
||||
</a>
|
||||
</span>
|
||||
{{ end }}
|
||||
{{ end }}
|
||||
|
||||
<div class="tags">
|
||||
{{ range (.GetTerms "tags") }}
|
||||
<span class="post-meta-item">
|
||||
{{ partial "icon.html" "tag" }}
|
||||
<a href="{{ .Permalink }}">{{ .LinkTitle }}</a>
|
||||
</span>
|
||||
{{ end }}
|
||||
</div>
|
||||
</div>
|
||||
{{ end }}
|
@ -1,17 +0,0 @@
|
||||
<div class="author-metadata" aria-label="{{ i18n "aria_author_metadata" }}">
|
||||
{{/* Calculate the total word count */}}
|
||||
{{ $total_words := 0 }}
|
||||
{{ range .Data.Pages }}
|
||||
{{ $total_words = add $total_words .WordCount }}
|
||||
{{ end }}
|
||||
|
||||
<span class="author-meta-item" aria-label="{{ i18n "aria_author_post_count" }}">
|
||||
{{ partial "icon.html" "newspaper" }}
|
||||
{{ i18n "post_count" (len .Data.Pages) }}
|
||||
</span>
|
||||
|
||||
<span class="author-meta-item" aria-label="{{ i18n "aria_author_word_count" }}">
|
||||
{{ partial "icon.html" "align-left" }}
|
||||
{{ i18n "wordcount" $total_words }}
|
||||
</span>
|
||||
</div>
|
@ -1,31 +0,0 @@
|
||||
{{ if or .Date .Params.authors .IsTranslated .Site.Params.readingtime .Site.Params.gitFileURL }}
|
||||
<div class="post-metadata" aria-label="{{ i18n "aria_post_metadata" }}">
|
||||
{{ if .Date }}
|
||||
<span class="post-meta-item" aria-label="{{ i18n "aria_post_meta_date" }}">
|
||||
{{ partial "icon.html" "calendar" }}
|
||||
<time datetime="{{ .Date.Format "2006-01-02" }}" pubdate>
|
||||
{{ i18n "long_date" (dict "Date" .Date "Data" .Site.Data) }}
|
||||
</time>
|
||||
</span>
|
||||
|
||||
{{/* TODO: make this be a tooltip */}}
|
||||
{{/* DISABLED
|
||||
{{ if ne (time.Format "2006-01-02" .Lastmod) (time.Format "2006-01-02" .Date) }}
|
||||
<span class="post-meta-item" aria-label="{{ i18n "aria_post_meta_modified_date" }}">
|
||||
{{ partial "icon.html" "pencil" }}
|
||||
<time datetime="{{ .Lastmod.Format "2006-01-02" }}" pubdate>
|
||||
{{ i18n "long_date" (dict "Date" .Lastmod "Data" .Site.Data) }}
|
||||
</time>
|
||||
{{ end }}
|
||||
</span>
|
||||
*/}}
|
||||
{{ end }}
|
||||
|
||||
{{ partial "post-meta-item/authors.html" . }}
|
||||
{{ partial "post-meta-item/translations.html" . }}
|
||||
{{ partial "post-meta-item/readingtime.html" . }}
|
||||
{{ partial "post-meta-item/edithistory.html" . }}
|
||||
{{ partial "post-meta-item/categories.html" . }}
|
||||
{{ partial "post-meta-item/tags.html" . }}
|
||||
</div>
|
||||
{{ end }}
|
@ -1,19 +0,0 @@
|
||||
<div class="post-metadata" aria-label="{{ i18n "aria_series_metadata" }}">
|
||||
<span class="post-meta-item">
|
||||
{{ partial "icon.html" "newspaper" }}
|
||||
{{ i18n "post_count" (len .Data.Pages) }}
|
||||
</span>
|
||||
|
||||
{{ if ne .Site.Params.readingtime false }}
|
||||
<span class="post-meta-item">
|
||||
{{ partial "icon.html" "clock" }}
|
||||
{{ $readingtime := 0 }}
|
||||
{{ range .Data.Pages }}
|
||||
{{ $readingtime = (add $readingtime .ReadingTime) }}
|
||||
{{ end }}
|
||||
{{ i18n "readingtime" $readingtime }}
|
||||
</span>
|
||||
{{ end }}
|
||||
|
||||
{{ partial "post-meta-item/translations.html" . }}
|
||||
</div>
|
@ -1,19 +0,0 @@
|
||||
{{ if or .Date .Params.authors .IsTranslated .Site.Params.readingtime }}
|
||||
<div class="post-metadata" aria-label="{{ i18n "aria_post_metadata" }}">
|
||||
{{ if .Date }}
|
||||
<span class="post-meta-item" aria-label="date">
|
||||
{{ partial "icon.html" "calendar" }}
|
||||
<time datetime="{{ .Date.Format "2006-01-02" }}" pubdate>
|
||||
{{ i18n "long_date" (dict "Date" .Date "Data" .Site.Data) }}
|
||||
</time>
|
||||
</span>
|
||||
{{ end }}
|
||||
|
||||
{{ partial "post-meta-item/authors.html" . }}
|
||||
{{ partial "post-meta-item/translations.html" . }}
|
||||
{{ partial "post-meta-item/readingtime.html" . }}
|
||||
{{ partial "post-meta-item/series.html" . }}
|
||||
{{ partial "post-meta-item/categories.html" . }}
|
||||
{{ partial "post-meta-item/tags.html" . }}
|
||||
</div>
|
||||
{{ end }}
|
@ -1,6 +0,0 @@
|
||||
<div class="taxonomy-metadata" aria-label="{{ i18n "aria_taxonomy_metadata" }}">
|
||||
<span class="taxonomy-meta-item" aria-label="{{ i18n "aria_taxonomy_post_count" }}">
|
||||
{{ partial "icon.html" "newspaper" }}
|
||||
{{ i18n "post_count" (len .Data.Pages) }}
|
||||
</span>
|
||||
</div>
|
@ -1,28 +0,0 @@
|
||||
{{ $hidecaption := index . "hidecaption" }}
|
||||
{{ $type := index . "type" }}
|
||||
{{ $src := index . "src" }}
|
||||
{{ $alt := index . "alt" }}
|
||||
|
||||
{{ if index . "border" }}
|
||||
<figure class="border">
|
||||
{{ else }}
|
||||
<figure>
|
||||
{{ end }}
|
||||
|
||||
{{ if eq $type "image" }}
|
||||
<img src="{{ $src }}" alt="{{ $alt }}" />
|
||||
{{ else if eq $type "video" }}
|
||||
<video controls preload="metadata">
|
||||
<source src="{{ $src }}" alt="{{ $alt }}">
|
||||
{{ i18n "browser_no_video_support" }}
|
||||
</video>
|
||||
{{ end }}
|
||||
|
||||
{{ if not $hidecaption }}
|
||||
{{ with $alt }}
|
||||
<figcaption>
|
||||
{{ . | markdownify }}
|
||||
</figcaption>
|
||||
{{ end }}
|
||||
{{ end }}
|
||||
</figure>
|
@ -1,5 +0,0 @@
|
||||
<span class="rss-link">
|
||||
{{ with .OutputFormats.Get "rss" }}
|
||||
<a href="{{ .Permalink }}" target="_blank" rel="noopener" aria-label="{{ i18n "aria_rss_link" }}">{{ partial "icon.html" "rss-feed" }}</a>
|
||||
{{ end }}
|
||||
</span>
|
@ -1,9 +0,0 @@
|
||||
{{- with .Description -}}
|
||||
<p>{{- . | markdownify -}}</p>
|
||||
{{- else -}}
|
||||
{{- with .Summary -}}
|
||||
{{- . -}}
|
||||
{{- else -}}
|
||||
{{- .Site.Params.description -}}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
@ -1,7 +0,0 @@
|
||||
{{ with .Params.authors }}
|
||||
<meta name="author" content="{{ delimit . ", " }}">
|
||||
|
||||
{{ range . }}
|
||||
<meta property="article:author" content="{{ . }}">
|
||||
{{ end }}
|
||||
{{ end }}
|
@ -1,15 +0,0 @@
|
||||
{{ range .AlternativeOutputFormats }}
|
||||
<link rel="{{ .Rel }}" type="{{ .MediaType.Type }}" href="{{ .Permalink }}" title="{{ $.Site.Title | plainify }}">
|
||||
{{ end }}
|
||||
{{ with .OutputFormats.Get "rss" }}
|
||||
<link rel="start" type="{{ .MediaType.Type }}" href="{{ .Permalink }}" title="{{ $.Site.Title | plainify }}">
|
||||
{{ end }}
|
||||
|
||||
{{ with .PrevInSection }}
|
||||
<link rel="prev" title="{{ .Title | plainify }}" href="{{ .Permalink }}">
|
||||
{{ end }}
|
||||
{{ with .NextInSection }}
|
||||
<link rel="next" title="{{ .Title | plainify }}" href="{{ .Permalink }}">
|
||||
{{ end }}
|
||||
|
||||
<link rel="canonical" href="{{ .Permalink }}">
|
@ -1,48 +0,0 @@
|
||||
<meta property="og:title" content="{{ .Title | plainify }}">
|
||||
<meta property="og:description" content="{{ (partial "seo-description.html" .) | plainify }}">
|
||||
<meta property="og:type" content="{{ if .IsPage }}article{{ else }}website{{ end }}">
|
||||
<meta property="og:url" content="{{ .Permalink }}">
|
||||
|
||||
{{ $images := $.Resources.ByType "image" }}
|
||||
{{ $featured := $images.GetMatch "*feature*" }}
|
||||
{{ if not $featured }}
|
||||
{{ $featured = $images.GetMatch "{*cover*,*thumbnail*}" }}
|
||||
{{ end }}
|
||||
|
||||
{{ with $featured }}
|
||||
<meta property="og:image" content="{{ $featured.Permalink }}">
|
||||
{{ end }}
|
||||
|
||||
{{ with .Section }}
|
||||
<meta property="article:section" content="{{ . }}">
|
||||
{{ end }}
|
||||
|
||||
{{ $format := "2006-01-02T15:04:05-07:00" }}
|
||||
{{ with .Date }}
|
||||
<meta property="article:published_time" content="{{ .Format $format }}">
|
||||
{{ end }}
|
||||
{{ with .Lastmod }}
|
||||
<meta property="article:modified_time" {{ .Format $format | printf "content=%q" | safeHTMLAttr }}>
|
||||
{{ end }}
|
||||
|
||||
{{ with .Params.audio }}
|
||||
<meta property="og:audio" content="{{ . }}">
|
||||
{{ end }}
|
||||
|
||||
{{ with .Language.Lang }}
|
||||
<meta property="og:locale" content="{{ . }}">
|
||||
{{ end }}
|
||||
|
||||
{{ with .Site.Params.title }}
|
||||
<meta property="og:site_name" content="{{ . }}">
|
||||
{{ end }}
|
||||
|
||||
{{ $videos := $.Resources.ByType "video" }}
|
||||
{{ $featured_video := $videos.GetMatch "*feature*" }}
|
||||
{{ if not $featured_video }}
|
||||
{{ $featured_video = $videos.GetMatch "{*cover*,*thumbnail*}" }}
|
||||
{{ end }}
|
||||
|
||||
{{ with $featured_video }}
|
||||
<meta property="og:video" content="{{ $featured_video.Permalink | absURL }}">
|
||||
{{ end }}
|
@ -1,30 +0,0 @@
|
||||
<meta itemprop="name" content="{{ .Title | plainify }}">
|
||||
<meta itemprop="description" content="{{ (partial "seo-description.html" .) | plainify }}">
|
||||
|
||||
{{ $format := "2006-01-02T15:04:05-07:00" }}
|
||||
{{ with .Date }}
|
||||
<meta itemprop="datePublished" content="{{ .Format $format }}">
|
||||
{{ end }}
|
||||
{{ with .Lastmod }}
|
||||
<meta itemprop="dateModified" content="{{ .Format $format }}">
|
||||
{{ end }}
|
||||
|
||||
<meta itemprop="wordCount" content="{{ .WordCount }}">
|
||||
|
||||
{{ $images := $.Resources.ByType "image" }}
|
||||
{{ $featured := $images.GetMatch "*feature*" }}
|
||||
{{ if not $featured }}
|
||||
{{ $featured = $images.GetMatch "{*cover*,*thumbnail*}" }}
|
||||
{{ end }}
|
||||
|
||||
{{ with $featured }}
|
||||
<meta itemprop="image" content="{{ $featured.Permalink }}">
|
||||
{{ end }}
|
||||
|
||||
{{ with (.GetTerms "tags") }}
|
||||
{{ $tags := slice }}
|
||||
{{ range . }}
|
||||
{{ $tags = $tags | append .LinkTitle }}
|
||||
{{ end }}
|
||||
<meta itemprop="keywords" content="{{ delimit $tags ", " }}">
|
||||
{{ end }}
|
@ -1,29 +0,0 @@
|
||||
{{ $images := $.Resources.ByType "image" }}
|
||||
{{ $featured := $images.GetMatch "*feature*" }}
|
||||
{{ if not $featured }}
|
||||
{{ $featured = $images.GetMatch "{*cover*,*thumbnail*}" }}
|
||||
{{ end }}
|
||||
|
||||
{{ with $featured }}
|
||||
{{ $ratio := 0 }}
|
||||
{{ if gt .Width .Height }}
|
||||
{{ $ratio = div (float .Width) .Height }}
|
||||
{{ else }}
|
||||
{{ $ratio = div (float .Height) .Width }}
|
||||
{{ end }}
|
||||
|
||||
{{ if lt $ratio 1.75 }}
|
||||
<meta name="twitter:card" content="summary_large_image">
|
||||
{{ else }}
|
||||
<meta name="twitter:card" content="summary">
|
||||
{{ end }}
|
||||
|
||||
<meta name="twitter:image" content="{{ $featured.Permalink }}">
|
||||
{{ end }}
|
||||
|
||||
<meta name="twitter:title" content="{{ .Title | plainify }}">
|
||||
<meta name="twitter:description" content="{{ (partial "seo-description.html" .) | plainify }}">
|
||||
|
||||
{{ with .Site.Social.twitter }}
|
||||
<meta name="twitter:site" content="@{{ . }}">
|
||||
{{ end }}
|
@ -1,17 +0,0 @@
|
||||
{{ with (.GetTerms "series") }}
|
||||
{{ $series := slice }}
|
||||
{{ range . }}
|
||||
{{ $series = $series | append (printf `<a href="%s">%s</a>` .Permalink .LinkTitle) }}
|
||||
{{ end }}
|
||||
|
||||
<div class="series-box">
|
||||
{{ partial "icon.html" "info" }}
|
||||
{{ if gt (len $series) 1 }}
|
||||
This post is part of multiple series:
|
||||
{{ else }}
|
||||
This post is part of a series:
|
||||
{{ end }}
|
||||
|
||||
{{ delimit $series ", " }}
|
||||
</div>
|
||||
{{ end }}
|
@ -1,63 +0,0 @@
|
||||
<div class="share-buttons">
|
||||
{{ if .Site.Params.shareButtons.twitter }}
|
||||
<a class="twitter-share"
|
||||
target="_blank"
|
||||
rel="noopener"
|
||||
onclick="share_event('Twitter');"
|
||||
href="https://twitter.com/intent/tweet?url={{ .Permalink }}&text={{ .Title }}&via=bbaovanc">
|
||||
{{- partial "icon.html" "twitter" -}}
|
||||
</a>
|
||||
{{ end }}
|
||||
|
||||
{{ if .Site.Params.shareButtons.facebook }}
|
||||
<a class="facebook-share"
|
||||
target="_blank"
|
||||
rel="noopener"
|
||||
onclick="share_event('Facebook');"
|
||||
href="https://www.facebook.com/sharer.php?u={{ .Permalink }}">
|
||||
{{- partial "icon.html" "facebook" -}}
|
||||
</a>
|
||||
{{ end }}
|
||||
|
||||
{{ if .Site.Params.shareButtons.linkedin }}
|
||||
<a class="linkedin-share"
|
||||
target="_blank"
|
||||
rel="noopener"
|
||||
onclick="share_event('LinkedIn');"
|
||||
href="https://www.linkedin.com/sharing/share-offsite/?url={{ .Permalink }}">
|
||||
{{- partial "icon.html" "linkedin" -}}
|
||||
</a>
|
||||
{{ end }}
|
||||
|
||||
{{ if .Site.Params.shareButtons.reddit }}
|
||||
<a class="reddit-share"
|
||||
target="_blank"
|
||||
rel="noopener"
|
||||
onclick="share_event('Reddit');"
|
||||
href="https://reddit.com/submit?url={{ .Permalink }}&title={{ .Title }}">
|
||||
{{- partial "icon.html" "reddit" -}}
|
||||
</a>
|
||||
{{ end }}
|
||||
|
||||
{{/* Telegram icon doesn't have `viewbox` set, which breaks the sizing.
|
||||
https://stackoverflow.com/q/72073399/19003757
|
||||
https://github.com/michaelampr/jam/issues/39
|
||||
{{ if .Site.Params.shareButtons.telegram }}
|
||||
<a class="telegram-share"
|
||||
target="_blank"
|
||||
rel="noopener"
|
||||
onclick="share_event('Telegram');"
|
||||
href="https://t.me/share/url?url={{ .Permalink }}&text={{ .Title }}">
|
||||
{{- partial "icon.html" "telegram" -}}
|
||||
</a>
|
||||
{{ end }}
|
||||
*/}}
|
||||
|
||||
{{ if .Site.Params.shareButtons.print }}
|
||||
<a class="print-share"
|
||||
href="javascript:void(0)"
|
||||
onclick="window.print(); share_event('Print');">
|
||||
{{- partial "icon.html" "printer" -}}
|
||||
</a>
|
||||
{{ end }}
|
||||
</div>
|
@ -1,54 +1,27 @@
|
||||
<header class="header">
|
||||
<a href="{{ .Site.Home.Permalink | absLangURL }}">
|
||||
{{ .Site.Title | markdownify }}
|
||||
</a>
|
||||
</header>
|
||||
<h2 class="header">
|
||||
<a href="{{ "/" | absLangURL }}">{{ .Site.Title | markdownify }}</a>
|
||||
</h2>
|
||||
|
||||
<div class="topbar">
|
||||
<nav class="navbar" aria-label="{{ i18n "aria_navbar" }}">
|
||||
{{ with .Site.Home }}
|
||||
<a class="navbar-item{{ if $.IsHome }} active{{ end }}" href="{{ .Permalink | absLangURL }}">{{ .Title | markdownify }}</a>
|
||||
{{ end }}
|
||||
|
||||
{{ range .Site.Menus.main }}
|
||||
{{ $isActive := false }}
|
||||
{{ if or ($.HasMenuCurrent .Menu .) ($.IsMenuCurrent .Menu .) }}
|
||||
{{ $isActive = true }}
|
||||
{{ end }}
|
||||
<a class="navbar-item{{ if $isActive }} active{{ end }}"
|
||||
{{ if strings.HasPrefix .URL "http" }}target="_blank" rel="noopener"{{ end }}
|
||||
href="{{ .URL }}">{{ .Name }}</a>
|
||||
{{ end }}
|
||||
</nav>
|
||||
|
||||
{{ if .Site.IsMultiLingual }}
|
||||
<details class="langpicker" aria-label="{{ i18n "aria_langpicker" }}">
|
||||
<summary>
|
||||
{{- partial "icon.html" "world" -}}
|
||||
</summary>
|
||||
<ul class="languages" aria-label="{{ i18n "aria_langpicker_list" }}">
|
||||
{{ range .AllTranslations }}
|
||||
<li>
|
||||
<a class="langpicker-item{{ if eq .Language $.Site.Language }} active{{ end }}" href="{{ .Permalink }}">{{ .Language.LanguageName }}</a>
|
||||
</li>
|
||||
{{ end }}
|
||||
|
||||
{{ $site_translations := slice }}
|
||||
{{ range .Site.Languages }}
|
||||
{{ $site_translations = $site_translations | append .LanguageName }}
|
||||
{{ end }}
|
||||
|
||||
{{ $translation_codes := slice }}
|
||||
{{ range .AllTranslations }}
|
||||
{{ $translation_codes = $translation_codes | append .Language }}
|
||||
{{ end }}
|
||||
|
||||
{{ range (.Site.Languages | complement $translation_codes) }}
|
||||
<li>
|
||||
<a class="langpicker-item unavailable" aria-disabled="true">{{ .LanguageName }}</a>
|
||||
</li>
|
||||
{{ end }}
|
||||
</ul>
|
||||
</details>
|
||||
<nav class="navbar">
|
||||
{{ with .Site.GetPage "/" }}
|
||||
<a class="navbar-item" href="{{ .Permalink | absLangURL }}">{{ .Title }}</a>
|
||||
{{ end }}
|
||||
</div>
|
||||
|
||||
{{ range .Site.Menus.main }}
|
||||
<a class="navbar-item" href="{{ .URL | absLangURL }}">{{ .Name }}</a>
|
||||
{{ end }}
|
||||
</nav>
|
||||
|
||||
{{ if .Site.IsMultiLingual }}
|
||||
<nav class="langbar">
|
||||
{{ range .Site.Home.AllTranslations }}
|
||||
|
||||
{{ if eq .Language $.Site.Language }}
|
||||
<b><a class="langbar-item" href="{{ .Permalink }}">{{ .Language.LanguageName }}</a></b>
|
||||
{{ else }}
|
||||
<a class="langbar-item" href="{{ .Permalink }}">{{ .Language.LanguageName }}</a>
|
||||
{{ end }}
|
||||
|
||||
{{ end }}
|
||||
</nav>
|
||||
{{ end }}
|
||||
|
@ -1,24 +0,0 @@
|
||||
{{ define "main" }}
|
||||
<h1>
|
||||
{{ partial "icon.html" "files" }}
|
||||
{{ .Title | markdownify }}
|
||||
</h1>
|
||||
|
||||
{{ with .Content }}
|
||||
{{ . }}
|
||||
{{ end }}
|
||||
|
||||
<div class="series-taxonomy-list">
|
||||
{{ with .Pages }}
|
||||
{{ range . }}
|
||||
<article class="series-taxonomy">
|
||||
{{ .Render "summary/series" }}
|
||||
</article>
|
||||
{{ end }}
|
||||
{{ else }}
|
||||
<div>
|
||||
{{ i18n "no_posts" }}
|
||||
</div>
|
||||
{{ end }}
|
||||
</div>
|
||||
{{ end }}
|
@ -1,20 +0,0 @@
|
||||
{{ define "main" }}
|
||||
<h1>
|
||||
{{ partial "icon.html" "files" }}
|
||||
{{ .Title | markdownify }}
|
||||
{{ partial "rss-link.html" . }}
|
||||
</h1>
|
||||
|
||||
{{ partial "post-metadata/series.html" . }}
|
||||
|
||||
{{ with .Content }}
|
||||
{{ . }}
|
||||
{{ end }}
|
||||
|
||||
{{ with .Paginator.Pages.Reverse }}
|
||||
{{ partial "page-list.html" . }}
|
||||
{{ end }}
|
||||
|
||||
|
||||
{{ partial "pagination.html" . }}
|
||||
{{ end }}
|
@ -1,5 +0,0 @@
|
||||
{{ if .IsNamedParams }}
|
||||
<abbr title="{{ .Get "title" }}">{{ .Inner }}</abbr>
|
||||
{{ else }}
|
||||
<abbr title="{{ .Get 0 }}">{{ .Inner }}</abbr>
|
||||
{{ end }}
|
@ -1,28 +0,0 @@
|
||||
{{ $type := "" }}
|
||||
{{ if .IsNamedParams }}
|
||||
{{ $type = .Get "type" | default "note" }}
|
||||
{{ else }}
|
||||
{{ $type = .Get 0 | default "note" }}
|
||||
{{ end }}
|
||||
|
||||
{{/* This idea comes from the LoveIt theme:
|
||||
https://github.com/dillonzq/LoveIt/blob/aa834e89af8349f6c18d4c7ad50a73fd5f1e40e0/layouts/shortcodes/admonition.html#L3-L14
|
||||
*/}}
|
||||
|
||||
{{ $icons := dict "note" "pencil" }}
|
||||
{{ $icons = dict "info" "info" | merge $icons }}
|
||||
{{ $icons = dict "tip" "lightbulb" | merge $icons }}
|
||||
{{ $icons = dict "warning" "info" | merge $icons }}
|
||||
{{ $icons = dict "example" "flask" | merge $icons }}
|
||||
{{ $icons = dict "quote" "quote" | merge $icons }}
|
||||
|
||||
<aside class="{{ $type }}">
|
||||
<div class="aside-title">
|
||||
{{ partial "icon.html" (index $icons $type) }}
|
||||
{{ title $type }}
|
||||
</div>
|
||||
|
||||
<div class="aside-content">
|
||||
{{ .Inner | .Page.RenderString (dict "display" "block") }}
|
||||
</div>
|
||||
</aside>
|
@ -1,15 +1,2 @@
|
||||
{{ $resource := .Page.Resources.GetMatch (.Get "src") }}
|
||||
|
||||
{{ $noborder := false }}
|
||||
{{ if .Get "noborder" }}
|
||||
{{ $noborder = true }}
|
||||
{{ end }}
|
||||
|
||||
{{ $hidecaption := false }}
|
||||
{{ if .Get "hidecaption" }}
|
||||
{{ $hidecaption = true }}
|
||||
{{ end }}
|
||||
|
||||
<p>
|
||||
{{ partial "figure.html" (dict "src" $resource "noborder" $noborder "hidecaption" $hidecaption) }}
|
||||
</p>
|
||||
{{ $resource := $.Page.Resources.GetMatch (.Get "src") }}
|
||||
{{ partial "figure.html" $resource }}
|
||||
|
@ -1 +0,0 @@
|
||||
<hr class="full-width-hr">
|
@ -1,13 +0,0 @@
|
||||
{{ $border := false }}
|
||||
{{ if .Get "border" }}
|
||||
{{ $border = true }}
|
||||
{{ end }}
|
||||
|
||||
{{ $hidecaption := false }}
|
||||
{{ if .Get "hidecaption" }}
|
||||
{{ $hidecaption = true }}
|
||||
{{ end }}
|
||||
|
||||
<p>
|
||||
{{ partial "remote_figure.html" (dict "src" (.Get "src") "border" $border "hidecaption" $hidecaption "type" (.Get "type") "alt" (.Get "alt")) }}
|
||||
</p>
|
@ -1,7 +0,0 @@
|
||||
<div class="see-also">
|
||||
{{ with .Site.GetPage (.Get 0) }}
|
||||
<p>{{ i18n "see_also" }} <a href="{{ .Permalink }}">{{ .Title | markdownify }}</a></p>
|
||||
{{ else }}
|
||||
{{ errorf "Page could not be found for see-also shortcode: %s" .Position }}
|
||||
{{ end }}
|
||||
</div>
|
@ -1,10 +0,0 @@
|
||||
{{/* See https://willschenk.com/articles/2020/styling_tables_with_hugo/ */}}
|
||||
|
||||
{{ $class := "markdown" }}
|
||||
{{ with .Get "class" }}
|
||||
{{ $class = delimit (slice $class .) " " }}
|
||||
{{ end }}
|
||||
|
||||
{{ $htmlTable := .Inner | markdownify }}
|
||||
{{ $new := printf `<table class="%s">` $class }}
|
||||
{{ (replace $htmlTable "<table>" $new) | safeHTML }}
|
@ -1,41 +1,41 @@
|
||||
{{ define "main" }}
|
||||
<div class="post-title">
|
||||
<h1>
|
||||
{{ if eq .Data.Singular "tag" }}
|
||||
{{ partial "icon.html" "tag" }}
|
||||
{{ else if eq .Data.Singular "category" }}
|
||||
{{ partial "icon.html" "folder" }}
|
||||
{{ else }}
|
||||
{{ partial "icon.html" "filter" }}
|
||||
{{ end }}
|
||||
|
||||
{{ .Title | markdownify }}
|
||||
</h1>
|
||||
</div>
|
||||
|
||||
{{ with .Content }}
|
||||
{{ . }}
|
||||
{{ end }}
|
||||
|
||||
<div class="taxonomy-list">
|
||||
{{ with .Data.Terms.Alphabetical }}
|
||||
{{ range . }}
|
||||
{{ with .Page }}
|
||||
<article class="taxonomy-term">
|
||||
<div class="taxonomy-list-left">
|
||||
<a href="{{ .Permalink }}">
|
||||
<p>{{ .Title | markdownify }}</p>
|
||||
</a>
|
||||
{{ partial "post-metadata/taxonomy.html" . }}
|
||||
</div>
|
||||
{{ partial "description-or-summary.html" . }}
|
||||
</article>
|
||||
{{ end }}
|
||||
{{ end }}
|
||||
{{ else }}
|
||||
<div>
|
||||
{{ i18n "no_posts" }}
|
||||
</div>
|
||||
<h1>
|
||||
{{ partial "icon.html" "filter" }}
|
||||
{{ i18n "filtering_for" .Title }}
|
||||
{{ if eq .Kind "term" }}
|
||||
<span class="rss-link">
|
||||
{{ with .OutputFormats.Get "rss" }}
|
||||
<a href="{{ .Permalink }}">{{ partial "icon.html" "rss" }}</a>
|
||||
{{ end }}
|
||||
</div>
|
||||
</span>
|
||||
{{ end }}
|
||||
</h1>
|
||||
|
||||
{{ if eq .Kind "taxonomy" }}
|
||||
<ul>
|
||||
{{ range .Pages }}
|
||||
<li>
|
||||
<a href="{{ .Permalink }}">{{ .Title | markdownify }}</a>
|
||||
</li>
|
||||
{{ end }}
|
||||
</ul>
|
||||
|
||||
{{ else }}
|
||||
{{ range .Paginator.Pages }}
|
||||
{{ .Render "summary" }}
|
||||
{{ else }}
|
||||
<div>
|
||||
{{ i18n "no_posts" }}
|
||||
</div>
|
||||
{{ end }}
|
||||
|
||||
{{ if gt .Paginator.TotalPages 1 }}
|
||||
<div class="pagination">
|
||||
{{ template "_internal/pagination.html" . }}
|
||||
</div>
|
||||
{{ end }}
|
||||
|
||||
{{ end }}
|
||||
|
||||
{{ end }}
|
||||
|
@ -1,26 +0,0 @@
|
||||
{{ define "main" }}
|
||||
<div class="post-title">
|
||||
<h1>
|
||||
{{ if eq .Data.Singular "tag" }}
|
||||
{{ partial "icon.html" "tag" }}
|
||||
{{ else if eq .Data.Singular "category" }}
|
||||
{{ partial "icon.html" "folder" }}
|
||||
{{ else }}
|
||||
{{ partial "icon.html" "filter" }}
|
||||
{{ end }}
|
||||
|
||||
{{ .Title | markdownify }}
|
||||
{{ partial "rss-link.html" . }}
|
||||
</h1>
|
||||
</div>
|
||||
|
||||
{{ partial "post-metadata/taxonomy.html" . }}
|
||||
|
||||
{{ with .Content }}
|
||||
{{ . }}
|
||||
{{ end }}
|
||||
|
||||
{{ partial "page-list.html" .Paginator.Pages }}
|
||||
|
||||
{{ partial "pagination.html" . }}
|
||||
{{ end }}
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user