mirror of https://github.com/jpanther/congo.git
Compare commits
43 Commits
636c6811ff
...
cd610e83f5
Author | SHA1 | Date |
---|---|---|
Wolf Noble | cd610e83f5 | |
James Panther | dbf421848f | |
James Panther | 782ac59c9b | |
James Panther | 838c9684a2 | |
James Panther | b0be87c519 | |
James Panther | 982b87e3e5 | |
James Panther | 20c9f483e5 | |
James Panther | e0aae4f096 | |
James Panther | c89bf7cac5 | |
James Panther | 4db06f9aeb | |
James Panther | 1dcd318883 | |
James Panther | 1b9c2f28c3 | |
James Panther | dba7573cfc | |
stereobooster | 1e3241997d | |
James Panther | fa3a47c52b | |
James Panther | 7a9020b52f | |
James Panther | a431f466dc | |
Wen Junhua | 763257a3ac | |
Wen Junhua | c9ee62bcde | |
Wen Junhua | 2ca6096cdf | |
Wen Junhua | a15820cb37 | |
stereobooster | c8b33ae51e | |
stereobooster | 0c6c30fec1 | |
stereobooster | 6eb34e7124 | |
stereobooster | 11fd48f5d0 | |
stereobooster | 8cfe33965b | |
stereobooster | 3ffe2b1002 | |
stereobooster | 978791808f | |
stereobooster | c237e04744 | |
James Panther | 16edb5da3b | |
James Panther | 041fc30fe9 | |
James Panther | a9f79b7495 | |
James Panther | 05c3fef94a | |
James Panther | 6e4ace75f8 | |
Wen Junhua | 10c4226fce | |
Wen Junhua | dc1ea3dfaa | |
Wen Junhua | 8a8ae76bf2 | |
Wen Junhua | 8ae115e95c | |
Wen Junhua | 4b3d31eff3 | |
Wen Junhua | a785bb0dbf | |
Wen Junhua | 394a018e08 | |
Wen Junhua | 2dd90e3d20 | |
stereobooster | e70c968e56 |
|
@ -22,6 +22,7 @@ jobs:
|
|||
uses: peaceiris/actions-hugo@v2
|
||||
with:
|
||||
hugo-version: "latest"
|
||||
extended: true
|
||||
|
||||
- name: Build
|
||||
working-directory: ./exampleSite
|
||||
|
|
|
@ -19,6 +19,7 @@ jobs:
|
|||
uses: peaceiris/actions-hugo@v2
|
||||
with:
|
||||
hugo-version: "latest"
|
||||
extended: true
|
||||
|
||||
- name: Build
|
||||
working-directory: ./exampleSite
|
||||
|
|
31
CHANGELOG.md
31
CHANGELOG.md
|
@ -6,6 +6,34 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
|||
|
||||
## [Unreleased]
|
||||
|
||||
### Added
|
||||
|
||||
- Quicklink support ([#646](https://github.com/jpanther/congo/pull/646))
|
||||
- Automatic support for WebP images ([#693](https://github.com/jpanther/congo/pull/693))
|
||||
- Warning when building if links to Markdown files cannot be resolved ([#691](https://github.com/jpanther/congo/pull/691))
|
||||
- Ability to share articles to Telegram and Line ([#719](https://github.com/jpanther/congo/pull/719))
|
||||
- New icon for `line` ([#719](https://github.com/jpanther/congo/pull/719))
|
||||
|
||||
### Changed
|
||||
|
||||
- ⚠️ Hugo extended version is now required when building sites
|
||||
- ⚠️ Author params block in language configuration has been moved to `params.author` ([#704](https://github.com/jpanther/congo/pull/704))
|
||||
- Refactored image logic into a new `picture.html` partial ([#693](https://github.com/jpanther/congo/pull/693))
|
||||
|
||||
### Fixed
|
||||
|
||||
- Hamburger menu is not dismissed when links are clicked ([#705](https://github.com/jpanther/congo/pull/705))
|
||||
|
||||
### Removed
|
||||
|
||||
- Fathom Analytics custom domain parameter as this is no longer supported by Fathom
|
||||
|
||||
## [2.7.6] - 2023-11-26
|
||||
|
||||
### Fixed
|
||||
|
||||
- Some Mermaid diagram elements not styled correctly in dark mode ([#706](https://github.com/jpanther/congo/issues/706))
|
||||
|
||||
## [2.7.5] - 2023-11-25
|
||||
|
||||
### Added
|
||||
|
@ -797,7 +825,8 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
|||
- Advanced customisation using simple Tailwind colour definitions and styles
|
||||
- Fully documented
|
||||
|
||||
[Unreleased]: https://github.com/jpanther/congo/compare/v2.7.5...HEAD
|
||||
[Unreleased]: https://github.com/jpanther/congo/compare/v2.7.6...HEAD
|
||||
[2.7.6]: https://github.com/jpanther/congo/compare/v2.7.5...v2.7.6
|
||||
[2.7.5]: https://github.com/jpanther/congo/compare/v2.7.4...v2.7.5
|
||||
[2.7.4]: https://github.com/jpanther/congo/compare/v2.7.3...v2.7.4
|
||||
[2.7.3]: https://github.com/jpanther/congo/compare/v2.7.2...v2.7.3
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/*! Congo v2.7.5 | MIT License | https://github.com/jpanther/congo */
|
||||
/*! Congo v2.7.6 | MIT License | https://github.com/jpanther/congo */
|
||||
|
||||
/*! tailwindcss v3.3.5 | MIT License | https://tailwindcss.com */
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/*! Congo v2.7.5 | MIT License | https://github.com/jpanther/congo */
|
||||
/*! Congo v2.7.6 | MIT License | https://github.com/jpanther/congo */
|
||||
|
||||
@tailwind base;
|
||||
@tailwind components;
|
||||
|
|
|
@ -0,0 +1 @@
|
|||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!--!Font Awesome Pro 6.4.2 by @fontawesome - https://fontawesome.com License -https://fontawesome.com/license (Commercial License) Copyright 2023 Fonticons, Inc. --><path fill="currentColor" d="M311 196.8v81.3c0 2.1-1.6 3.7-3.7 3.7h-13c-1.3 0-2.4-.7-3-1.5l-37.3-50.3v48.2c0 2.1-1.6 3.7-3.7 3.7h-13c-2.1 0-3.7-1.6-3.7-3.7V196.9c0-2.1 1.6-3.7 3.7-3.7h12.9c1.1 0 2.4 .6 3 1.6l37.3 50.3V196.9c0-2.1 1.6-3.7 3.7-3.7h13c2.1-.1 3.8 1.6 3.8 3.5zm-93.7-3.7h-13c-2.1 0-3.7 1.6-3.7 3.7v81.3c0 2.1 1.6 3.7 3.7 3.7h13c2.1 0 3.7-1.6 3.7-3.7V196.8c0-1.9-1.6-3.7-3.7-3.7zm-31.4 68.1H150.3V196.8c0-2.1-1.6-3.7-3.7-3.7h-13c-2.1 0-3.7 1.6-3.7 3.7v81.3c0 1 .3 1.8 1 2.5c.7 .6 1.5 1 2.5 1h52.2c2.1 0 3.7-1.6 3.7-3.7v-13c0-1.9-1.6-3.7-3.5-3.7zm193.7-68.1H327.3c-1.9 0-3.7 1.6-3.7 3.7v81.3c0 1.9 1.6 3.7 3.7 3.7h52.2c2.1 0 3.7-1.6 3.7-3.7V265c0-2.1-1.6-3.7-3.7-3.7H344V247.7h35.5c2.1 0 3.7-1.6 3.7-3.7V230.9c0-2.1-1.6-3.7-3.7-3.7H344V213.5h35.5c2.1 0 3.7-1.6 3.7-3.7v-13c-.1-1.9-1.7-3.7-3.7-3.7zM512 93.4V419.4c-.1 51.2-42.1 92.7-93.4 92.6H92.6C41.4 511.9-.1 469.8 0 418.6V92.6C.1 41.4 42.2-.1 93.4 0H419.4c51.2 .1 92.7 42.1 92.6 93.4zM441.6 233.5c0-83.4-83.7-151.3-186.4-151.3s-186.4 67.9-186.4 151.3c0 74.7 66.3 137.4 155.9 149.3c21.8 4.7 19.3 12.7 14.4 42.1c-.8 4.7-3.8 18.4 16.1 10.1s107.3-63.2 146.5-108.2c27-29.7 39.9-59.8 39.9-93.1z" /></svg>
|
After Width: | Height: | Size: 1.4 KiB |
|
@ -0,0 +1,6 @@
|
|||
/*
|
||||
Closes the hamburger menu when a link is clicked.
|
||||
*/
|
||||
function close_menu() {
|
||||
document.getElementById('menu-controller').checked=false
|
||||
}
|
|
@ -2,19 +2,29 @@ function css(name) {
|
|||
return "rgb(" + getComputedStyle(document.documentElement).getPropertyValue(name) + ")";
|
||||
}
|
||||
|
||||
let isDark = document.documentElement.classList.contains("dark");
|
||||
|
||||
mermaid.initialize({
|
||||
theme: "base",
|
||||
themeVariables: {
|
||||
background: css("--color-neutral"),
|
||||
primaryColor: css("--color-primary-200"),
|
||||
secondaryColor: css("--color-secondary-200"),
|
||||
tertiaryColor: css("--color-neutral-100"),
|
||||
primaryBorderColor: css("--color-primary-400"),
|
||||
primaryTextColor: isDark ? css("--color-neutral-200") : css("--color-neutral-700"),
|
||||
primaryColor: isDark ? css("--color-primary-700") : css("--color-primary-200"),
|
||||
secondaryColor: isDark ? css("--color-secondary-700") : css("--color-secondary-200"),
|
||||
tertiaryColor: isDark ? css("--color-neutral-700") : css("--color-neutral-100"),
|
||||
primaryBorderColor: isDark ? css("--color-primary-500") : css("--color-primary-400"),
|
||||
secondaryBorderColor: css("--color-secondary-400"),
|
||||
tertiaryBorderColor: css("--color-neutral-400"),
|
||||
lineColor: css("--color-neutral-600"),
|
||||
tertiaryBorderColor: isDark ? css("--color-neutral-300") : css("--color-neutral-400"),
|
||||
lineColor: isDark ? css("--color-neutral-300") : css("--color-neutral-600"),
|
||||
fontFamily:
|
||||
"ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,segoe ui,Roboto,helvetica neue,Arial,noto sans,sans-serif",
|
||||
fontSize: "16px",
|
||||
pieTitleTextSize: "19px",
|
||||
pieSectionTextSize: "16px",
|
||||
pieLegendTextSize: "16px",
|
||||
pieStrokeWidth: "1px",
|
||||
pieOuterStrokeWidth: "0.5px",
|
||||
pieStrokeColor: isDark ? css("--color-neutral-300") : css("--color-neutral-400"),
|
||||
pieOpacity: "1",
|
||||
},
|
||||
});
|
||||
|
|
|
@ -0,0 +1,4 @@
|
|||
window.addEventListener("load", () => {
|
||||
quicklink.listen();
|
||||
});
|
||||
|
|
@ -0,0 +1 @@
|
|||
!function(e,n){"object"==typeof exports&&"undefined"!=typeof module?n(exports):"function"==typeof define&&define.amd?define(["exports"],n):n(e.quicklink={})}(this,function(e){function n(e){return new Promise(function(n,r,t){(t=new XMLHttpRequest).open("GET",e,t.withCredentials=!0),t.onload=function(){200===t.status?n():r()},t.send()})}var r,t=(r=document.createElement("link")).relList&&r.relList.supports&&r.relList.supports("prefetch")?function(e){return new Promise(function(n,r,t){(t=document.createElement("link")).rel="prefetch",t.href=e,t.onload=n,t.onerror=r,document.head.appendChild(t)})}:n,o=window.requestIdleCallback||function(e){var n=Date.now();return setTimeout(function(){e({didTimeout:!1,timeRemaining:function(){return Math.max(0,50-(Date.now()-n))}})},1)},i=new Set,c=new Set,u=!1;function a(e){if(e){if(e.saveData)return new Error("Save-Data is enabled");if(/2g/.test(e.effectiveType))return new Error("network conditions are poor")}return!0}function s(e,r,o){var s=a(navigator.connection);return s instanceof Error?Promise.reject(new Error("Cannot prefetch, "+s.message)):(c.size>0&&!u&&console.warn("[Warning] You are using both prefetching and prerendering on the same document"),Promise.all([].concat(e).map(function(e){if(!i.has(e))return i.add(e),(r?function(e){return window.fetch?fetch(e,{credentials:"include"}):n(e)}:t)(new URL(e,location.href).toString())})))}function f(e,n){var r=a(navigator.connection);if(r instanceof Error)return Promise.reject(new Error("Cannot prerender, "+r.message));if(!HTMLScriptElement.supports("speculationrules"))return s(e),Promise.reject(new Error("This browser does not support the speculation rules API. Falling back to prefetch."));if(document.querySelector('script[type="speculationrules"]'))return Promise.reject(new Error("Speculation Rules is already defined and cannot be altered."));for(var t=0,o=[].concat(e);t<o.length;t+=1){var f=o[t];if(window.location.origin!==new URL(f,window.location.href).origin)return Promise.reject(new Error("Only same origin URLs are allowed: "+f));c.add(f)}i.size>0&&!u&&console.warn("[Warning] You are using both prefetching and prerendering on the same document");var l=function(e){var n=document.createElement("script");n.type="speculationrules",n.text='{"prerender":[{"source": "list","urls": ["'+Array.from(e).join('","')+'"]}]}';try{document.head.appendChild(n)}catch(e){return e}return!0}(c);return!0===l?Promise.resolve():Promise.reject(l)}e.listen=function(e){if(e||(e={}),window.IntersectionObserver){var n=function(e){e=e||1;var n=[],r=0;function t(){r<e&&n.length>0&&(n.shift()(),r++)}return[function(e){n.push(e)>1||t()},function(){r--,t()}]}(e.throttle||1/0),r=n[0],t=n[1],a=e.limit||1/0,l=e.origins||[location.hostname],d=e.ignores||[],h=e.delay||0,p=[],m=e.timeoutFn||o,w="function"==typeof e.hrefFn&&e.hrefFn,g=e.prerender||!1;u=e.prerenderAndPrefetch||!1;var v=new IntersectionObserver(function(n){n.forEach(function(n){if(n.isIntersecting)p.push((n=n.target).href),function(e,n){n?setTimeout(e,n):e()}(function(){-1!==p.indexOf(n.href)&&(v.unobserve(n),(u||g)&&c.size<1?f(w?w(n):n.href).catch(function(n){if(!e.onError)throw n;e.onError(n)}):i.size<a&&!g&&r(function(){s(w?w(n):n.href,e.priority).then(t).catch(function(n){t(),e.onError&&e.onError(n)})}))},h);else{var o=p.indexOf((n=n.target).href);o>-1&&p.splice(o)}})},{threshold:e.threshold||0});return m(function(){(e.el||document).querySelectorAll("a").forEach(function(e){l.length&&!l.includes(e.hostname)||function e(n,r){return Array.isArray(r)?r.some(function(r){return e(n,r)}):(r.test||r).call(r,n.href,n)}(e,d)||v.observe(e)})},{timeout:e.timeout||2e3}),function(){i.clear(),v.disconnect()}}},e.prefetch=s,e.prerender=f});
|
|
@ -12,7 +12,7 @@ title = "Congo"
|
|||
# mainSections = ["section1", "section2"]
|
||||
# description = "My awesome website"
|
||||
|
||||
[author]
|
||||
[params.author]
|
||||
# name = "Your name here"
|
||||
# image = "img/author.jpg"
|
||||
# headline = "I'm only human"
|
||||
|
|
|
@ -1,3 +1,3 @@
|
|||
[hugoVersion]
|
||||
extended = false
|
||||
extended = true
|
||||
min = "0.87.0"
|
||||
|
|
|
@ -17,6 +17,7 @@ autoSwitchAppearance = true
|
|||
enableSearch = false
|
||||
enableCodeCopy = false
|
||||
enableImageLazyLoading = true
|
||||
enableImageWebp = true
|
||||
|
||||
# robots = ""
|
||||
fingerprintAlgorithm = "sha256"
|
||||
|
@ -55,7 +56,7 @@ fingerprintAlgorithm = "sha256"
|
|||
showTaxonomies = false
|
||||
showWordCount = false
|
||||
showComments = false
|
||||
# sharingLinks = ["facebook", "twitter", "mastodon", "pinterest", "reddit", "linkedin", "email"]
|
||||
# sharingLinks = ["facebook", "twitter", "mastodon", "pinterest", "reddit", "linkedin", "email", "telegram", "line"]
|
||||
|
||||
[list]
|
||||
showBreadcrumbs = false
|
||||
|
@ -73,7 +74,6 @@ fingerprintAlgorithm = "sha256"
|
|||
|
||||
[fathomAnalytics]
|
||||
# site = "ABC12345"
|
||||
# domain = "llama.yoursite.com"
|
||||
|
||||
[plausibleAnalytics]
|
||||
# domain = "blog.yoursite.com"
|
||||
|
|
|
@ -33,5 +33,15 @@
|
|||
"icon": "twitter",
|
||||
"title": "sharing.twitter",
|
||||
"url": "https://twitter.com/intent/tweet/?url=%s&text=%s"
|
||||
},
|
||||
"telegram": {
|
||||
"icon": "telegram",
|
||||
"title": "sharing.telegram",
|
||||
"url": "https://telegram.me/share/url?text=%s&url=%s"
|
||||
},
|
||||
"line": {
|
||||
"icon": "line",
|
||||
"title": "sharing.line",
|
||||
"url": "https://line.me/R/share?text=%s%s"
|
||||
}
|
||||
}
|
||||
|
|
|
@ -12,7 +12,7 @@ copyright = "© 2023 Congo contributors"
|
|||
mainSections = ["samples"]
|
||||
description = "Ein leistungsstarkes, leichtgewichtiges Theme für Hugo, das mit Tailwind CSS erstellt wurde."
|
||||
|
||||
[author]
|
||||
[params.author]
|
||||
name = "Congo"
|
||||
image = "img/author.jpg"
|
||||
headline = "Nicht dein Durschnitts-Theme!"
|
||||
|
|
|
@ -12,7 +12,7 @@ copyright = "© 2023 Congo contributors"
|
|||
mainSections = ["samples"]
|
||||
description = "A powerful, lightweight theme for Hugo built with Tailwind CSS."
|
||||
|
||||
[author]
|
||||
[params.author]
|
||||
name = "Congo"
|
||||
image = "img/author.jpg"
|
||||
headline = "Not your ordinary theme!"
|
||||
|
|
|
@ -12,7 +12,7 @@ copyright = "© 2023 Congo contributors"
|
|||
mainSections = ["samples"]
|
||||
description = "Un tema poderoso y liviano para Hugo creado con Tailwind CSS."
|
||||
|
||||
[author]
|
||||
[params.author]
|
||||
name = "Congo"
|
||||
image = "img/author.jpg"
|
||||
headline = "¡No es tu tema ordinario!"
|
||||
|
|
|
@ -12,7 +12,7 @@ copyright = "© 2023 Congo contributors"
|
|||
mainSections = ["samples"]
|
||||
description = "Tailwind CSSをベースに開発された強力で軽量なHugo向けテーマ"
|
||||
|
||||
[author]
|
||||
[params.author]
|
||||
name = "Congo"
|
||||
image = "img/author.jpg"
|
||||
headline = "ただならぬテーマ!"
|
||||
|
|
|
@ -1,3 +1,3 @@
|
|||
[hugoVersion]
|
||||
extended = false
|
||||
min = "0.86.1"
|
||||
extended = true
|
||||
min = "0.87.0"
|
||||
|
|
|
@ -12,6 +12,8 @@ autoSwitchAppearance = true
|
|||
enableSearch = true
|
||||
enableCodeCopy = true
|
||||
enableImageLazyLoading = true
|
||||
enableImageWebp = true
|
||||
enableQuicklink = true
|
||||
|
||||
# robots = ""
|
||||
fingerprintAlgorithm = "sha256"
|
||||
|
@ -50,7 +52,7 @@ fingerprintAlgorithm = "sha256"
|
|||
showTaxonomies = false
|
||||
showWordCount = false
|
||||
showComments = false
|
||||
# sharingLinks = ["facebook", "twitter", "mastodon", "pinterest", "reddit", "linkedin", "email"]
|
||||
# sharingLinks = ["facebook", "twitter", "mastodon", "pinterest", "reddit", "linkedin", "email", "telegram", "line"]
|
||||
|
||||
[list]
|
||||
showBreadcrumbs = true
|
||||
|
@ -68,7 +70,6 @@ fingerprintAlgorithm = "sha256"
|
|||
|
||||
[fathomAnalytics]
|
||||
# site = "ABC12345"
|
||||
# domain = "llama.yoursite.com"
|
||||
|
||||
[verification]
|
||||
# google = ""
|
||||
|
|
|
@ -100,11 +100,11 @@ Congoは現在、以下の言語に対応しています:
|
|||
|`params.dateFormat`|`"2 January 2006"`|日付の書式。許容される書式については、[Hugo docs](https://gohugo.io/functions/format/#gos-layout-string)を参照してください。|
|
||||
|`params.mainSections`|_Not set_|最近の記事リストに表示するセクション。指定されていない場合は、記事の数が最も多いセクションが使われます。|
|
||||
|`params.description`|_Not set_|ウェブサイトの説明。これはサイトのメタデータに使用されます。|
|
||||
|`author.name`|_Not set_|著者の名前。これは記事のフッターと、プロフィールレイアウトが使用されている場合にホームページに表示されます。|
|
||||
|`author.image`|_Not set_|著者の画像ファイルへのパス。画像は縦横比1:1で、 `assets/` に置くこと。|
|
||||
|`author.headline`|_Not set_|著者の見出しを含むMarkdown文字列。プロフィールのトップページで著者の名前の下に表示されます。|
|
||||
|`author.bio`|_Not set_|著者の経歴を含むMarkdown文字列。記事のフッターに表示されます。|
|
||||
|`author.links`|_Not set_|著者の詳細とともに表示するリンク。設定ファイルにはリンクの例が含まれており、コメントを外すだけで有効にすることができます。リンクが表示される順番は、配列に表示される順番によって決まります。 `assets/icons/` に対応するSVGアイコンを用意することで、カスタムリンクを追加することもできます。|
|
||||
|`params.author.name`|_Not set_|著者の名前。これは記事のフッターと、プロフィールレイアウトが使用されている場合にホームページに表示されます。|
|
||||
|`params.author.image`|_Not set_|著者の画像ファイルへのパス。画像は縦横比1:1で、 `assets/` に置くこと。|
|
||||
|`params.author.headline`|_Not set_|著者の見出しを含むMarkdown文字列。プロフィールのトップページで著者の名前の下に表示されます。|
|
||||
|`params.author.bio`|_Not set_|著者の経歴を含むMarkdown文字列。記事のフッターに表示されます。|
|
||||
|`params.author.links`|_Not set_|著者の詳細とともに表示するリンク。設定ファイルにはリンクの例が含まれており、コメントを外すだけで有効にすることができます。リンクが表示される順番は、配列に表示される順番によって決まります。 `assets/icons/` に対応するSVGアイコンを用意することで、カスタムリンクを追加することもできます。|
|
||||
<!-- prettier-ignore-end -->
|
||||
|
||||
### メニュー
|
||||
|
@ -169,7 +169,6 @@ Congoはテーマの機能を制御する多数の設定パラメーターを提
|
|||
|`sitemap.excludedKinds`|`["taxonomy", "term"]`|生成される `/sitemap.xml` から除外されるべきコンテンツの種類。許容される値については[Hugo docs](https://gohugo.io/templates/section-templates/#page-kinds)を参照してください。|
|
||||
|`taxonomy.showTermCount`|`true`|TaxonomiesのリストにTermごとの記事数を表示するかどうか。|
|
||||
|`fathomAnalytics.site`|_Not set_|Fathom Analyticsによって生成されたウェブサイトのサイトコード。詳細は[アナリティクス]({{< ref "partials#アナリティクス" >}})を参照してください。|
|
||||
|`fathomAnalytics.domain`|_Not set_|Fathom Analyticsでカスタムドメインを使用している場合、カスタムドメインから`script.js`を提供するためにここに指定します。|
|
||||
|`verification.google`|_Not set_|サイトのメタデータに含めるGoogleが提供するサイト検証文字列。|
|
||||
|`verification.bing`|_Not set_|サイトのメタデータに含めるBingが提供するサイト検証文字列。|
|
||||
|`verification.pinterest`|_Not set_|サイトのメタデータに含めるPinterestが提供するサイト検証文字列。|
|
||||
|
|
|
@ -100,11 +100,11 @@ The default file can be used as a template to create additional languages, or re
|
|||
|`params.dateFormat`|`"2 January 2006"`|How dates are formatted in this language. Refer to the [Hugo docs](https://gohugo.io/functions/format/#gos-layout-string) for acceptable formats.|
|
||||
|`params.mainSections`|_Not set_|The sections that should be displayed in the recent articles list. If not provided the section with the greatest number of articles is used.|
|
||||
|`params.description`|_Not set_|The website description. This will be used in the site metadata.|
|
||||
|`author.name`|_Not set_|The author's name. This will be displayed in article footers, and on the homepage when the profile layout is used.|
|
||||
|`author.image`|_Not set_|Path to the image file of the author. The image should be a 1:1 aspect ratio and placed in the site's `assets/` folder.|
|
||||
|`author.headline`|_Not set_|A Markdown string containing the author's headline. It will be displayed on the profile homepage under the author's name.|
|
||||
|`author.bio`|_Not set_|A Markdown string containing the author's bio. It will be displayed in article footers.|
|
||||
|`author.links`|_Not set_|The links to display alongside the author's details. The config file contains example links which can simply be uncommented to enable. The order that the links are displayed is determined by the order they appear in the array. Custom links can be added by providing corresponding SVG icon assets in `assets/icons/`.|
|
||||
|`params.author.name`|_Not set_|The author's name. This will be displayed in article footers, and on the homepage when the profile layout is used.|
|
||||
|`params.author.image`|_Not set_|Path to the image file of the author. The image should be a 1:1 aspect ratio and placed in the site's `assets/` folder.|
|
||||
|`params.author.headline`|_Not set_|A Markdown string containing the author's headline. It will be displayed on the profile homepage under the author's name.|
|
||||
|`params.author.bio`|_Not set_|A Markdown string containing the author's bio. It will be displayed in article footers.|
|
||||
|`params.author.links`|_Not set_|The links to display alongside the author's details. The config file contains example links which can simply be uncommented to enable. The order that the links are displayed is determined by the order they appear in the array. Custom links can be added by providing corresponding SVG icon assets in `assets/icons/`.|
|
||||
<!-- prettier-ignore-end -->
|
||||
|
||||
### Menus
|
||||
|
@ -130,6 +130,8 @@ Many of the article defaults here can be overridden on a per article basis by sp
|
|||
|`enableSearch`|`false`|Whether site search is enabled. Set to `true` to enable search functionality. Note that the search feature depends on the `outputs.home` setting in the [site configuration](#site-configuration) being set correctly.|
|
||||
|`enableCodeCopy`|`false`|Whether copy-to-clipboard buttons are enabled for `<code>` blocks. The `highlight.noClasses` parameter must be set to `false` for code copy to function correctly. Read more about [other configuration files](#other-configuration-files) below.|
|
||||
|`enableImageLazyLoading`|`true`|Whether images should be marked for lazy loading by the browser.|
|
||||
|`enableImageWebp`|`true`|Whether images should be output in the more performant WebP format.|
|
||||
|`enableQuicklink`|`true`|Whether the [Quicklink](https://getquick.link/) library should be included in the site. Quicklink prefetches links based upon the user's viewport and leads to faster page navigation.|
|
||||
|`robots`|_Not set_|String that indicates how robots should handle your site. If set, it will be output in the page head. Refer to [Google's docs](https://developers.google.com/search/docs/advanced/robots/robots_meta_tag#directives) for valid values.|
|
||||
|`fingerprintAlgorithm`|`"sha256"`|String that indicates which hashing algorithm is used when fingerprinting assets. Valid options include `md5`, `sha256`, `sha384` and `sha512`.|
|
||||
|`header.layout`|`"basic"`|The layout of the page header and menu. Valid values are `basic`, `hamburger`, `hybrid` or `custom`. When set to `custom`, you must provide your own layout by creating a `/layouts/partials/header/custom.html` file.|
|
||||
|
@ -159,7 +161,7 @@ Many of the article defaults here can be overridden on a per article basis by sp
|
|||
|`article.showTaxonomies`|`false`|Whether or not the taxonomies related to this article are displayed.|
|
||||
|`article.showWordCount`|`false`|Whether or not article word counts are displayed.|
|
||||
|`article.showComments`|`false`|Whether or not the [comments partial]({{< ref "partials#comments" >}}) is included after the article footer.|
|
||||
|`article.sharingLinks`|_Not set_|Which sharing links to display at the end of each article. When not provided, or set to `false` no links will be displayed.|
|
||||
|`article.sharingLinks`|_Not set_|An array of sharing links to display at the end of each article. Valid options include `facebook`, `twitter`, `mastodon`, `pinterest`, `reddit`, `linkedin`, `email`, `telegram` and `line`. When not provided, or set to `false`, no links will be displayed.|
|
||||
|`list.showBreadcrumbs`|`false`|Whether or not breadcrumbs are displayed in the header on list pages.|
|
||||
|`list.showTableOfContents`|`false`|Whether or not the table of contents is displayed on list pages.|
|
||||
|`list.showTaxonomies`|`false`|Whether or not the taxonomies related to this article are displayed on list pages.|
|
||||
|
@ -169,7 +171,6 @@ Many of the article defaults here can be overridden on a per article basis by sp
|
|||
|`sitemap.excludedKinds`|`["taxonomy", "term"]`|Kinds of content that should be excluded from the generated `/sitemap.xml` file. Refer to the [Hugo docs](https://gohugo.io/templates/section-templates/#page-kinds) for acceptable values.|
|
||||
|`taxonomy.showTermCount`|`true`|Whether or not the number of articles within a taxonomy term is displayed on the taxonomy listing.|
|
||||
|`fathomAnalytics.site`|_Not set_|The site code generated by Fathom Analytics for the website. Refer to the [Analytics docs]({{< ref "partials#analytics" >}}) for more details.|
|
||||
|`fathomAnalytics.domain`|_Not set_|If using a custom domain with Fathom Analytics, provide it here to serve `script.js` from the custom domain.|
|
||||
|`plausibleAnalytics.domain`|_Not set_|Enter the domain of the website you want to track. Refer to the [Analytics docs]({{< ref "partials#analytics" >}}) for more details.|
|
||||
|`plausibleAnalytics.event`|_Not set_|Plausible api event proxied URL. Refer to the [Analytics docs]({{< ref "partials#analytics" >}}) for more details.|
|
||||
|`plausibleAnalytics.script`|_Not set_|Plausible analysis script proxied URL. Refer to the [Analytics docs]({{< ref "partials#analytics" >}}) for more details.|
|
||||
|
|
|
@ -38,7 +38,7 @@ languageCode = "en"
|
|||
|
||||
title = "My awesome website"
|
||||
|
||||
[author]
|
||||
[params.author]
|
||||
name = "My name"
|
||||
image = "img/author.jpg"
|
||||
headline = "A generally awesome human"
|
||||
|
@ -48,7 +48,7 @@ links = [
|
|||
]
|
||||
```
|
||||
|
||||
`[author]` はウェブサイト上でどのように著者情報を表示するかを決定します。画像はサイトの `assets/` に置きましょう。リンクはリストの記述順に沿って表示されます。
|
||||
`[params.author]` はウェブサイト上でどのように著者情報を表示するかを決定します。画像はサイトの `assets/` に置きましょう。リンクはリストの記述順に沿って表示されます。
|
||||
|
||||
各設定に関する詳細情報は、[設定]({{< ref "configuration" >}})セクションで説明されています。
|
||||
|
||||
|
|
|
@ -38,7 +38,7 @@ The language code in the language config filename should match the `languageCode
|
|||
|
||||
title = "My awesome website"
|
||||
|
||||
[author]
|
||||
[params.author]
|
||||
name = "My name"
|
||||
image = "img/author.jpg"
|
||||
headline = "A generally awesome human"
|
||||
|
@ -48,7 +48,7 @@ links = [
|
|||
]
|
||||
```
|
||||
|
||||
The `[author]` configuration determines how the author information is displayed on the website. The image should be placed in the site's `assets/` folder. Links will be displayed in the order they are listed.
|
||||
The `[params.author]` configuration determines how the author information is displayed on the website. The image should be placed in the site's `assets/` folder. Links will be displayed in the order they are listed.
|
||||
|
||||
If you need extra detail, further information about each of these configuration options, is covered in the [Configuration]({{< ref "configuration" >}}) section.
|
||||
|
||||
|
|
|
@ -60,6 +60,7 @@ jobs:
|
|||
uses: peaceiris/actions-hugo@v2
|
||||
with:
|
||||
hugo-version: "latest"
|
||||
extended: true
|
||||
|
||||
- name: Build
|
||||
run: hugo --minify
|
||||
|
|
|
@ -21,7 +21,7 @@ These instructions will get you up and running using Hugo and Congo from a compl
|
|||
If you haven't used Hugo before, you will need to [install it onto your local machine](https://gohugo.io/getting-started/installing). You can check if it's already installed by running the command `hugo version`.
|
||||
|
||||
{{< alert >}}
|
||||
Make sure you are using **Hugo version 0.87.0** or later as the theme takes advantage of some of the latest Hugo features.
|
||||
Make sure you are using **Hugo extended version 0.87.0** or later as the theme takes advantage of some of the latest Hugo features.
|
||||
{{< /alert >}}
|
||||
|
||||
You can find detailed installation instructions for your platform in the [Hugo docs](https://gohugo.io/getting-started/installing).
|
||||
|
|
Binary file not shown.
After Width: | Height: | Size: 48 KiB |
|
@ -10,18 +10,21 @@ tags: ["partials", "analytics", "privacy", "comments", "favicons", "icon", "docs
|
|||
|
||||
## Analytics
|
||||
|
||||
Congo provides built-in support for Fathom Analytics and Google Analytics. Fathom is a paid alternative to Google Analytics that respects user privacy. If you're interested you can use this affiliate link to [receive $10 credit](https://usefathom.com/ref/RLAJSV) and try the service.
|
||||
Congo provides support for various analytics providers out of the box, as well as the ability to include custom code for any provider of your choice. If you don't currently have an analytics provider, check out Fathom Analytics.
|
||||
|
||||
### Fathom Analytics
|
||||
|
||||
To enable Fathom Analytics support, simply provide your Fathom site code in the `config/_default/params.toml` file. If you also use the custom domain feature of Fathom and would like to serve their script from your domain, you can also additionally provide the `domain` configuration value. If you don't provide a `domain` value, the script will load directly from Fathom DNS.
|
||||
Fathom Analytics is a privacy-first service that is a great alternative to Google Analytics. It allows you to get all the visitor information you need, without spying on them. As a Congo user, you can use this affiliate link to [receive $10 credit](https://usefathom.com/ref/RLAJSV) and try the service.
|
||||
|
||||
[![Fathom Analytics. Website analytics without compromise. Zero cookies, GDPR compliant, and privacy-first. Start a free trial.](fathom-analytics.jpg)](https://usefathom.com/ref/RLAJSV)
|
||||
|
||||
To enable Fathom Analytics support, simply provide your Fathom site code in the `config/_default/params.toml` file. The script will load in your site directly from the Fathom Analytics CDN.
|
||||
|
||||
```toml
|
||||
# config/_default/params.toml
|
||||
|
||||
[fathomAnalytics]
|
||||
site = "ABC12345"
|
||||
domain = "llama.yoursite.com"
|
||||
```
|
||||
|
||||
### Plausible Analytics
|
||||
|
|
|
@ -46,6 +46,7 @@ Die vollständige Liste der integrierten Icons und ihre entsprechenden Namen fin
|
|||
| kickstarter | {{< icon kickstarter >}} |
|
||||
| lastfm | {{< icon lastfm >}} |
|
||||
| lightbulb | {{< icon lightbulb >}} |
|
||||
| line | {{< icon line >}} |
|
||||
| link | {{< icon link >}} |
|
||||
| linkedin | {{< icon linkedin >}} |
|
||||
| list | {{< icon list >}} |
|
||||
|
|
|
@ -46,6 +46,7 @@ La lista completa de íconos incorporados y sus nombres correspondientes se pued
|
|||
| kickstarter | {{< icon kickstarter >}} |
|
||||
| lastfm | {{< icon lastfm >}} |
|
||||
| lightbulb | {{< icon lightbulb >}} |
|
||||
| line | {{< icon line >}} |
|
||||
| link | {{< icon link >}} |
|
||||
| linkedin | {{< icon linkedin >}} |
|
||||
| list | {{< icon list >}} |
|
||||
|
|
|
@ -46,6 +46,7 @@ Congo は[FontAwesome 6](https://fontawesome.com/icons)のアイコンをサポ
|
|||
| kickstarter | {{< icon kickstarter >}} |
|
||||
| lastfm | {{< icon lastfm >}} |
|
||||
| lightbulb | {{< icon lightbulb >}} |
|
||||
| line | {{< icon line >}} |
|
||||
| link | {{< icon link >}} |
|
||||
| linkedin | {{< icon linkedin >}} |
|
||||
| list | {{< icon list >}} |
|
||||
|
|
|
@ -46,6 +46,7 @@ The full list of built-in icons and their corresponding names can referenced bel
|
|||
| kickstarter | {{< icon kickstarter >}} |
|
||||
| lastfm | {{< icon lastfm >}} |
|
||||
| lightbulb | {{< icon lightbulb >}} |
|
||||
| line | {{< icon line >}} |
|
||||
| link | {{< icon link >}} |
|
||||
| linkedin | {{< icon linkedin >}} |
|
||||
| list | {{< icon list >}} |
|
||||
|
|
|
@ -51,6 +51,8 @@ sharing:
|
|||
pinterest: "تثبيت على بينتريست"
|
||||
reddit: "نشر على ريديت"
|
||||
twitter: "تغريد على تويتر"
|
||||
telegram: "شارك على تيليجرام"
|
||||
line: "شارك على لاين"
|
||||
|
||||
shortcode:
|
||||
recent_articles: "حديثًا"
|
||||
|
|
|
@ -51,6 +51,8 @@ sharing:
|
|||
pinterest: "Пин в Pinterest"
|
||||
reddit: "Публикуване в Reddit"
|
||||
twitter: "Туит в Twitter"
|
||||
telegram: "Споделете в Telegram"
|
||||
line: Споделете в LINE""
|
||||
|
||||
shortcode:
|
||||
recent_articles: "Последни"
|
||||
|
|
|
@ -51,6 +51,8 @@ sharing:
|
|||
pinterest: "পিন্টারেস্টে পিন করুন"
|
||||
reddit: "রেড্ডিটে জমা দিন"
|
||||
twitter: "ট্যুইট করুন"
|
||||
telegram: "টেলিগ্রামে শেয়ার করুন"
|
||||
line: "লাইনে শেয়ার করুন"
|
||||
|
||||
shortcode:
|
||||
recent_articles: "সাম্প্রতিক"
|
||||
|
|
|
@ -51,6 +51,8 @@ sharing:
|
|||
pinterest: "Pin na Pinterest"
|
||||
reddit: "Odeslat na Reddit"
|
||||
twitter: "Tweet na Twitter"
|
||||
telegram: "Sdílejte na Telegram"
|
||||
line: "Sdílejte na LINE"
|
||||
|
||||
shortcode:
|
||||
recent_articles: "Nedávné"
|
||||
|
|
|
@ -51,6 +51,8 @@ sharing:
|
|||
pinterest: "Auf Pinterest pinnen"
|
||||
reddit: "An Reddit senden"
|
||||
twitter: "Auf Twitter teilen"
|
||||
telegram: "Auf Telegram teilen"
|
||||
line: "Auf LINE teilen"
|
||||
|
||||
shortcode:
|
||||
recent_articles: "Neue Beiträge"
|
||||
|
|
|
@ -51,6 +51,8 @@ sharing:
|
|||
pinterest: "Pin on Pinterest"
|
||||
reddit: "Submit to Reddit"
|
||||
twitter: "Tweet on Twitter"
|
||||
telegram: "Share on Telegram"
|
||||
line: "Share on LINE"
|
||||
|
||||
shortcode:
|
||||
recent_articles: "Recent"
|
||||
|
|
|
@ -51,6 +51,8 @@ sharing:
|
|||
pinterest: "Pinear en Pinterest"
|
||||
reddit: "Publicar en Reddit"
|
||||
twitter: "Tuitear en Twitter"
|
||||
telegram: "Compartir en Telegram"
|
||||
line: "Compartir en LINE"
|
||||
|
||||
shortcode:
|
||||
recent_articles: "Reciente"
|
||||
|
|
|
@ -51,6 +51,8 @@ sharing:
|
|||
pinterest: "Kiinnitä Pinterestiin"
|
||||
reddit: "Lähetä Reddittiin"
|
||||
twitter: "Twiittaa Twitterissä"
|
||||
telegram: "Jaa Telegramissa"
|
||||
line: "Jaa LINEssä"
|
||||
|
||||
shortcode:
|
||||
recent_articles: "Viimeaikaiset"
|
||||
|
|
|
@ -51,6 +51,8 @@ sharing:
|
|||
pinterest: "Poster sur Pinterest"
|
||||
reddit: "Poster sur Reddit"
|
||||
twitter: "Tweeter"
|
||||
telegram: "Partager sur Telegram"
|
||||
line: "Partager sur LINE"
|
||||
|
||||
shortcode:
|
||||
recent_articles: "Articles récents"
|
||||
|
|
|
@ -51,6 +51,8 @@ sharing:
|
|||
pinterest: "שיתוף בפינטרסט"
|
||||
reddit: "שליחה לרדיט"
|
||||
twitter: "ציוץ בטוויטר"
|
||||
telegram: "שיתוף בטלגרם"
|
||||
line: "שיתוף בליין"
|
||||
|
||||
shortcode:
|
||||
recent_articles: "חדשים"
|
||||
|
|
|
@ -51,6 +51,8 @@ sharing:
|
|||
pinterest: "Megosztás a Pinteresten"
|
||||
reddit: "Megosztás a Redditen"
|
||||
twitter: "Megosztás a Twitteren"
|
||||
telegram: "Megosztás a Telegramon"
|
||||
line: "Megosztás a LINE-on"
|
||||
|
||||
shortcode:
|
||||
recent_articles: "Friss"
|
||||
|
|
|
@ -51,6 +51,8 @@ sharing:
|
|||
pinterest: "Pin di Pinterest"
|
||||
reddit: "Kirim ke Reddit"
|
||||
twitter: "Tweet di Twitter"
|
||||
telegram: "Bagikan ke Telegram"
|
||||
line: "Bagikan ke LINE"
|
||||
|
||||
shortcode:
|
||||
recent_articles: "Terbaru"
|
||||
|
|
|
@ -51,6 +51,8 @@ sharing:
|
|||
pinterest: "Pinna su Pinterest"
|
||||
reddit: "Invia a Reddit"
|
||||
twitter: "Tweetta su Twitter"
|
||||
telegram: "Condividi su Telegram"
|
||||
line: "Condividi su LINE"
|
||||
|
||||
shortcode:
|
||||
recent_articles: "Recenti"
|
||||
|
|
|
@ -51,6 +51,8 @@ sharing:
|
|||
pinterest: "Pinterestでピンする"
|
||||
reddit: "Redditに投稿する"
|
||||
twitter: "Twitterに投稿する"
|
||||
telegram: "Telegramでシェアする"
|
||||
line: "LINEでシェアする"
|
||||
|
||||
shortcode:
|
||||
recent_articles: "最近の記事"
|
||||
|
|
|
@ -51,6 +51,8 @@ sharing:
|
|||
pinterest: "Pin op Pinterest"
|
||||
reddit: "Verzend naar Reddit"
|
||||
twitter: "Tweet op Twitter"
|
||||
telegram: "Deel op Telegram"
|
||||
line: "Deel op LINE"
|
||||
|
||||
shortcode:
|
||||
recent_articles: "Recent"
|
||||
|
|
|
@ -51,6 +51,8 @@ sharing:
|
|||
pinterest: "Udostępnij na Pinterest"
|
||||
reddit: "Udostępnij na Reddit"
|
||||
twitter: "Udostępnij na Twitter"
|
||||
telegram: "Udostępnij na Telegram"
|
||||
line: "Udostępnij na LINE"
|
||||
|
||||
shortcode:
|
||||
recent_articles: "Ostatnie"
|
||||
|
|
|
@ -51,6 +51,8 @@ sharing:
|
|||
pinterest: "Pin no Pinterest"
|
||||
reddit: "Postar no Reddit"
|
||||
twitter: "Tweet no Twitter"
|
||||
telegram: "Compartilhar pelo Telegram"
|
||||
line: "Compartilhar pelo LINE"
|
||||
|
||||
shortcode:
|
||||
recent_articles: "Recente"
|
||||
|
|
|
@ -51,6 +51,8 @@ sharing:
|
|||
pinterest: "Partilhar no Pinterest"
|
||||
reddit: "Partilhar no Reddit"
|
||||
twitter: "Partilhar no Twitter"
|
||||
telegram: "Partilhar pelo Telegram"
|
||||
line: "Partilhar pelo LINE"
|
||||
|
||||
shortcode:
|
||||
recent_articles: "Recente"
|
||||
|
|
|
@ -51,6 +51,8 @@ sharing:
|
|||
pinterest: "Pune pe Pinterest"
|
||||
reddit: "Postează pe Reddit"
|
||||
twitter: "Scrie pe Twitter"
|
||||
telegram: "Trimite pe Telegram"
|
||||
line: "Trimite pe LINE"
|
||||
|
||||
shortcode:
|
||||
recent_articles: "Cele mai noi"
|
||||
|
|
|
@ -55,6 +55,8 @@ sharing:
|
|||
pinterest: "Поделиться на Pinterest"
|
||||
reddit: "Опубликовать на Reddit"
|
||||
twitter: "Опубликовать на Twitter"
|
||||
telegram: "Поделиться на Telegram"
|
||||
line: "Поделиться на LINE"
|
||||
|
||||
shortcode:
|
||||
recent_articles: "Последние"
|
||||
|
|
|
@ -51,6 +51,8 @@ sharing:
|
|||
pinterest: "Pin na Pinterest"
|
||||
reddit: "Odoslať na Reddit"
|
||||
twitter: "Tweet na Twitteri"
|
||||
telegram: "Zdieľaj na Telegram"
|
||||
line: "Zdieľaj na LINE"
|
||||
|
||||
shortcode:
|
||||
recent_articles: "Nedávne"
|
||||
|
|
|
@ -50,6 +50,8 @@ sharing:
|
|||
pinterest: "Pinterest'te pinle"
|
||||
reddit: "Reddit'te gönder"
|
||||
twitter: "Twitter'da Tweetle"
|
||||
telegram: "Telegram'da paylaş"
|
||||
line: "LINE'da paylaş"
|
||||
|
||||
shortcode:
|
||||
recent_articles: "Güncel"
|
||||
|
|
|
@ -55,6 +55,8 @@ sharing:
|
|||
pinterest: "Зберегти на Pinterest"
|
||||
reddit: "Опублікувати на Reddit"
|
||||
twitter: "Поширити на Twitter"
|
||||
telegram: "Поширити на Telegram"
|
||||
line: "Поширити на LINE"
|
||||
|
||||
shortcode:
|
||||
recent_articles: "Недавні дописи"
|
||||
|
|
|
@ -50,6 +50,8 @@ sharing:
|
|||
pinterest: "钉到 Pinterest"
|
||||
reddit: "提交到 Reddit"
|
||||
twitter: "分享到 Twitter"
|
||||
telegram: "分享到 Telegram"
|
||||
line: "分享到 LINE"
|
||||
|
||||
shortcode:
|
||||
recent_articles: "最近的文章"
|
||||
|
|
|
@ -51,6 +51,8 @@ sharing:
|
|||
pinterest: "釘到 Pinterest"
|
||||
reddit: "發送到 Reddit"
|
||||
twitter: "推到 Twitter"
|
||||
telegram: "分享到 Telegram"
|
||||
line: "分享到 LINE"
|
||||
|
||||
shortcode:
|
||||
recent_articles: "最近的文章"
|
||||
|
|
|
@ -1,64 +1,28 @@
|
|||
{{ $url := urls.Parse .Destination }}
|
||||
{{ $altText := .Text }}
|
||||
{{ $caption := .Title }}
|
||||
{{ $lazyLoad := $.Page.Site.Params.enableImageLazyLoading | default true }}
|
||||
{{ if findRE "^https?" $url.Scheme }}
|
||||
<figure>
|
||||
<img
|
||||
class="mx-auto my-0 rounded-md"
|
||||
src="{{ $url.String }}"
|
||||
alt="{{ $altText }}"
|
||||
{{ if $lazyLoad }}
|
||||
loading="lazy"
|
||||
{{ end }}
|
||||
/>
|
||||
{{ $class := "mx-auto my-0 rounded-md" }}
|
||||
|
||||
{{ $file := $url.Path }}
|
||||
{{ $img := .Page.Resources.GetMatch $file }}
|
||||
{{- if and (not $img) .Page.File }}
|
||||
{{ $path := path.Join .Page.File.Dir $file }}
|
||||
{{ $img = resources.Get $path }}
|
||||
{{ end -}}
|
||||
|
||||
{{/* https://github.com/gohugoio/hugo/pull/10666 */}}
|
||||
{{- $params := $url.Query -}}
|
||||
{{- $x2Param := $params.Get "2x" -}}
|
||||
{{- $x2 := false -}}
|
||||
{{- if eq $x2Param "true" -}}
|
||||
{{- $x2 = true -}}
|
||||
{{- end -}}
|
||||
|
||||
<figure>
|
||||
{{- with $img -}}
|
||||
{{ partial "picture.html" (dict "img" . "alt" $altText "class" $class "x2" $x2) }}
|
||||
{{- else -}}
|
||||
<img src="{{ .Destination | safeURL }}" alt="{{ $altText }}" class="{{ $class }}"/>
|
||||
{{- end -}}
|
||||
{{ with $caption }}<figcaption class="text-center">{{ . | markdownify }}</figcaption>{{ end }}
|
||||
</figure>
|
||||
{{ else }}
|
||||
{{ $resource := "" }}
|
||||
{{ if $.Page.Resources.GetMatch ($url.String) }}
|
||||
{{ $resource = $.Page.Resources.GetMatch ($url.String) }}
|
||||
{{ else if resources.GetMatch ($url.String) }}
|
||||
{{ $resource = resources.Get ($url.String) }}
|
||||
{{ end }}
|
||||
{{ with $resource }}
|
||||
<figure>
|
||||
<img
|
||||
class="mx-auto my-0 rounded-md"
|
||||
{{ if eq .MediaType.SubType "svg" }}
|
||||
src="{{ .RelPermalink }}"
|
||||
{{ else }}
|
||||
width="{{ .Width }}"
|
||||
height="{{ .Height }}"
|
||||
{{ if lt .Width 660 }}
|
||||
src="{{ .RelPermalink }}"
|
||||
{{ else }}
|
||||
srcset="
|
||||
{{- (.Resize "330x").RelPermalink }} 330w,
|
||||
{{- (.Resize "660x").RelPermalink }} 660w,
|
||||
{{- (.Resize "1024x").RelPermalink }} 1024w,
|
||||
{{- (.Resize "1320x").RelPermalink }} 2x"
|
||||
src="{{ (.Resize "660x").RelPermalink }}"
|
||||
{{ end }}
|
||||
{{ end }}
|
||||
alt="{{ $altText }}"
|
||||
{{ if $lazyLoad }}
|
||||
loading="lazy"
|
||||
{{ end }}
|
||||
/>
|
||||
{{ with $caption }}<figcaption class="text-center">{{ . | markdownify }}</figcaption>{{ end }}
|
||||
</figure>
|
||||
{{ else }}
|
||||
<figure>
|
||||
<img
|
||||
class="mx-auto my-0 rounded-md"
|
||||
src="{{ $url.String }}"
|
||||
alt="{{ $altText }}"
|
||||
{{ if $lazyLoad }}
|
||||
loading="lazy"
|
||||
{{ end }}
|
||||
/>
|
||||
{{ with $caption }}<figcaption class="text-center">{{ . | markdownify }}</figcaption>{{ end }}
|
||||
</figure>
|
||||
{{ end }}
|
||||
{{ end }}
|
||||
</figure>
|
||||
|
|
|
@ -2,10 +2,16 @@
|
|||
{{- $isRemote := strings.HasPrefix $link "http" -}}
|
||||
{{- if not $isRemote }}
|
||||
{{ $url := urls.Parse .Destination }}
|
||||
{{ if $url.Path }}
|
||||
{{- if $url.Path }}
|
||||
{{ $fragment := "" }}
|
||||
{{- with $url.Fragment }}{{ $fragment = printf "#%s" . }}{{ end -}}
|
||||
{{- with .Page.GetPage $url.Path }}{{ $link = printf "%s%s" .RelPermalink $fragment }}{{ end -}}
|
||||
{{ end }}
|
||||
{{- with .Page.GetPage $url.Path }}
|
||||
{{ $link = printf "%s%s" .RelPermalink $fragment }}
|
||||
{{ else }}
|
||||
{{- if hasSuffix $url.Path ".md" }}
|
||||
{{ warnf "[CONGO] Can't resolve: %s" .Destination }}
|
||||
{{ end -}}
|
||||
{{ end -}}
|
||||
{{ end -}}
|
||||
{{ end -}}
|
||||
<a href="{{ $link | safeURL }}"{{ with .Title }} title="{{ . }}"{{ end }}{{ if $isRemote }} target="_blank" rel="noreferrer"{{ end }}>{{- .Text | safeHTML -}}</a>
|
|
@ -15,25 +15,9 @@
|
|||
</div>
|
||||
{{ with $feature }}
|
||||
<div class="prose">
|
||||
<img
|
||||
class="mb-6 -mt-4 rounded-md"
|
||||
{{ if eq .MediaType.SubType "svg" }}
|
||||
src="{{ .RelPermalink }}"
|
||||
{{ else }}
|
||||
width="{{ .Width }}"
|
||||
height="{{ .Height }}"
|
||||
{{ if lt .Width 660 }}
|
||||
src="{{ .RelPermalink }}"
|
||||
{{ else }}
|
||||
srcset="
|
||||
{{- (.Resize "330x").RelPermalink }} 330w,
|
||||
{{- (.Resize "660x").RelPermalink }} 660w,
|
||||
{{- (.Resize "1024x").RelPermalink }} 1024w,
|
||||
{{- (.Resize "1320x").RelPermalink }} 2x"
|
||||
{{ end }}
|
||||
{{ end }}
|
||||
alt="{{ $.Params.featureAlt | default $.Params.coverAlt | default "" }}"
|
||||
/>
|
||||
{{ $altText := $.Params.featureAlt | default $.Params.coverAlt | default "" }}
|
||||
{{ $class := "mb-6 -mt-4 rounded-md" }}
|
||||
{{ partial "picture.html" (dict "img" . "alt" $altText "class" $class "lazy" false) }}
|
||||
{{ with $.Params.coverCaption }}
|
||||
<figcaption class="mb-6 -mt-3 text-center">{{ . | markdownify }}</figcaption>
|
||||
{{ end }}
|
||||
|
|
|
@ -1,11 +1,7 @@
|
|||
{{ if hugo.IsProduction }}
|
||||
{{ with .Site.Params.fathomAnalytics.site }}
|
||||
{{ if isset $.Site.Params.fathomanalytics "domain" }}
|
||||
<script defer src="https://{{ $.Site.Params.fathomanalytics.domain }}/script.js" data-site="{{ . }}"></script>
|
||||
{{ else }}
|
||||
<script defer src="https://cdn.usefathom.com/script.js" data-site="{{ . }}"></script>
|
||||
{{ end }}
|
||||
{{ end }}
|
||||
{{ with site.Params.plausibleAnalytics.domain }}
|
||||
<script defer
|
||||
data-domain="{{ . }}"
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
{{ with .Site.Author.links }}
|
||||
{{ with .Site.Language.Params.Author.links }}
|
||||
<div class="flex flex-wrap text-neutral-400 dark:text-neutral-500">
|
||||
{{ range $links := . }}
|
||||
{{ range $name, $url := $links }}
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
{{ if .Params.showAuthor | default (.Site.Params.article.showAuthor | default true) }}
|
||||
<div class="flex">
|
||||
{{ with .Site.Author.image }}
|
||||
{{ with .Site.Language.Params.Author.image }}
|
||||
{{ $authorImage := resources.Get . }}
|
||||
{{ if $authorImage }}
|
||||
{{ $authorImage := $authorImage.Fill "192x192 Center" }}
|
||||
|
@ -8,7 +8,7 @@
|
|||
class="!mb-0 !mt-0 me-4 h-24 w-24 rounded-full"
|
||||
width="96"
|
||||
height="96"
|
||||
alt="{{ $.Site.Author.name | default "Author" }}"
|
||||
alt="{{ $.Site.Language.Params.Author.name | default "Author" }}"
|
||||
src="{{ $authorImage.RelPermalink }}"
|
||||
{{ if $.Site.Params.enableImageLazyLoading | default true }}
|
||||
loading="lazy"
|
||||
|
@ -17,7 +17,7 @@
|
|||
{{ end }}
|
||||
{{ end }}
|
||||
<div class="place-self-center">
|
||||
{{ with .Site.Author.name | markdownify | emojify }}
|
||||
{{ with .Site.Language.Params.Author.name | markdownify | emojify }}
|
||||
<div class="text-[0.6rem] uppercase leading-3 text-neutral-500 dark:text-neutral-400">
|
||||
{{ i18n "author.byline_title" | markdownify | emojify }}
|
||||
</div>
|
||||
|
@ -25,7 +25,7 @@
|
|||
{{ . }}
|
||||
</div>
|
||||
{{ end }}
|
||||
{{ with .Site.Author.bio | markdownify | emojify }}
|
||||
{{ with .Site.Language.Params.Author.bio | markdownify | emojify }}
|
||||
<div class="text-sm text-neutral-700 dark:text-neutral-400">{{ . }}</div>
|
||||
{{ end }}
|
||||
<div class="text-2xl sm:text-lg">{{ partialCached "author-links.html" . }}</div>
|
||||
|
|
|
@ -86,7 +86,7 @@
|
|||
{{- else }}
|
||||
©
|
||||
{{ now.Format "2006" }}
|
||||
{{ .Site.Author.name | markdownify | emojify }}
|
||||
{{ .Site.Language.Params.Author.name | markdownify | emojify }}
|
||||
{{- end }}
|
||||
</p>
|
||||
{{ end }}
|
||||
|
|
|
@ -7,3 +7,6 @@
|
|||
{{ if ne .Params.logo nil }}
|
||||
{{ warnf "[CONGO] Theme parameter `logo` has been renamed to `header.logo`. Please update your site configuration." }}
|
||||
{{ end }}
|
||||
{{ if .Author }}
|
||||
{{ warnf "[CONGO] Theme parameter `author` block in `languages.xx.toml` has been renamed to `params.author`. Please update your site configuration." }}
|
||||
{{ end }}
|
||||
|
|
|
@ -43,10 +43,19 @@
|
|||
{{ $jsSearch := resources.Get "js/search.js" }}
|
||||
{{ $assets.Add "js" (slice $jsFuse $jsSearch) }}
|
||||
{{ end }}
|
||||
{{ if .Site.Params.enableQuicklink | default false }}
|
||||
{{ $jsQuicklink := resources.Get "lib/quicklink/quicklink.umd.js" }}
|
||||
{{ $jsQuicklinkInit := resources.Get "js/quicklink.js" }}
|
||||
{{ $assets.Add "js" (slice $jsQuicklink $jsQuicklinkInit) }}
|
||||
{{ end }}
|
||||
{{ if .Site.Params.enableCodeCopy | default false }}
|
||||
{{ $jsCode := resources.Get "js/code.js" }}
|
||||
{{ $assets.Add "js" (slice $jsCode) }}
|
||||
{{ end }}
|
||||
{{ if or (eq .Site.Params.header.layout "hamburger") (eq .Site.Params.header.layout "hybrid") }}
|
||||
{{ $jsMenu := resources.Get "js/menu.js" }}
|
||||
{{ $assets.Add "js" (slice $jsMenu) }}
|
||||
{{ end }}
|
||||
{{ if eq (site.Language.LanguageDirection | default "ltr") "rtl" }}
|
||||
{{ $jsRTL := resources.Get "js/rtl.js" }}
|
||||
{{ $assets.Add "js" (slice $jsRTL) }}
|
||||
|
@ -117,8 +126,8 @@
|
|||
{{/* Schema */}}
|
||||
{{ partial "schema.html" . }}
|
||||
{{/* Me */}}
|
||||
{{ with .Site.Author.name }}<meta name="author" content="{{ . }}" />{{ end }}
|
||||
{{ with .Site.Author.links }}
|
||||
{{ with .Site.Language.Params.Author.name }}<meta name="author" content="{{ . }}" />{{ end }}
|
||||
{{ with .Site.Language.Params.Author.links }}
|
||||
{{ range $links := . }}
|
||||
{{ range $name, $url := $links }}<link href="{{ $url }}" rel="me" />{{ end }}
|
||||
{{ end }}
|
||||
|
|
|
@ -93,6 +93,7 @@
|
|||
<a
|
||||
href="{{ .URL }}"
|
||||
title="{{ .Title }}"
|
||||
onclick="close_menu()"
|
||||
{{ with .Params.target }}target="{{ . }}"{{ end }}
|
||||
>{{ with .Params.icon }}
|
||||
<span
|
||||
|
|
|
@ -93,6 +93,7 @@
|
|||
<a
|
||||
href="{{ .URL }}"
|
||||
title="{{ .Title }}"
|
||||
onclick="close_menu()"
|
||||
{{ with .Params.target }}target="{{ . }}"{{ end }}
|
||||
>{{ with .Params.icon }}
|
||||
<span
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
{{ end }} flex flex-col items-center justify-center text-center"
|
||||
>
|
||||
<header class="mb-3 flex flex-col items-center">
|
||||
{{ with .Site.Author.image }}
|
||||
{{ with .Site.Language.Params.Author.image }}
|
||||
{{ $authorImage := resources.Get . }}
|
||||
{{ if $authorImage }}
|
||||
{{ $authorImage := $authorImage.Fill "288x288 Center" }}
|
||||
|
@ -12,15 +12,15 @@
|
|||
class="mb-2 h-36 w-36 rounded-full"
|
||||
width="144"
|
||||
height="144"
|
||||
alt="{{ $.Site.Author.name | default "Author" }}"
|
||||
alt="{{ $.Site.Language.Params.Author.name | default "Author" }}"
|
||||
src="{{ $authorImage.RelPermalink }}"
|
||||
/>
|
||||
{{ end }}
|
||||
{{ end }}
|
||||
<h1 class="text-4xl font-extrabold">
|
||||
{{ .Site.Author.name | default .Site.Title }}
|
||||
{{ .Site.Language.Params.Author.name | default .Site.Title }}
|
||||
</h1>
|
||||
{{ with .Site.Author.headline }}
|
||||
{{ with .Site.Language.Params.Author.headline }}
|
||||
<h2 class="text-xl text-neutral-500 dark:text-neutral-400">
|
||||
{{ . | markdownify | emojify }}
|
||||
</h2>
|
||||
|
|
|
@ -0,0 +1,112 @@
|
|||
{{ $img := .img }}
|
||||
{{ $alt := .alt }}
|
||||
{{ $class := .class }}
|
||||
{{ $lazy := .lazy | default $.Page.Site.Params.enableImageLazyLoading | default true }}
|
||||
{{ $webp := .webp | default $.Page.Site.Params.enableImageWebp | default true }}
|
||||
{{ $lqip := .lqip | default false }}
|
||||
{{ $x2 := .x2 | default false }}
|
||||
|
||||
{{ with $img }}
|
||||
{{ if (eq .MediaType.SubType "svg") }}
|
||||
{{ $width := ""}}
|
||||
{{ $height := ""}}
|
||||
{{ $svgContent := .Content }}
|
||||
{{ range (findRESubmatch `<svg[^>]*width=["']([.0-9]*)["'a-zA-Z]` $svgContent 1) }}
|
||||
{{ $width = index . 1 }}
|
||||
{{ end }}
|
||||
{{ range (findRESubmatch `<svg[^>]*height=["']([.0-9]*)["'a-zA-Z]` $svgContent 1) }}
|
||||
{{ $height = index . 1 }}
|
||||
{{ end }}
|
||||
{{ if (eq "" $width $height) }}
|
||||
{{ range (findRESubmatch `<svg[^>]*viewBox=["']?([.0-9]*) ([.0-9]*) ([.0-9]*) ([.0-9]*)` $svgContent 1) }}
|
||||
{{ $width = index . 3 }}
|
||||
{{ $height = index . 4 }}
|
||||
{{ end }}
|
||||
{{ end }}
|
||||
{{ if (eq "" $width $height) }}
|
||||
{{ warnf "Can't detect width and height for SVG %s" .RelPermalink }}
|
||||
{{/* do not use lazy without dimensions */}}
|
||||
{{ $lazy = false }}
|
||||
{{ end }}
|
||||
<picture {{ with $class }} class="{{ . }}" {{ end }}>
|
||||
<img
|
||||
src="{{ .RelPermalink }}"
|
||||
{{ with $width }} width="{{ . }}" {{ end }}
|
||||
{{ with $height }} height="{{ . }}" {{ end }}
|
||||
{{ with $class }} class="{{ . }}" {{ end }}
|
||||
{{ with $alt }} alt="{{ . }}" {{ end }}
|
||||
{{ with $lazy }} loading="lazy" decoding="async" {{ end }}
|
||||
>
|
||||
</picture>
|
||||
{{ else }}
|
||||
<picture
|
||||
{{ with $class }} class="{{ . }}" {{ end }}
|
||||
{{ if $lqip }}
|
||||
{{ $bg := (.Resize "20x webp q20").Content | base64Encode }}
|
||||
style="background-image:url(data:image/webp;base64,{{ $bg }});background-size:cover"
|
||||
{{ end }}
|
||||
>
|
||||
{{ $width := .Width }}
|
||||
{{ $height := .Height }}
|
||||
{{ if $x2 }}
|
||||
{{ $width = div .Width 2 }}
|
||||
{{ $height = div .Height 2 }}
|
||||
{{ end }}
|
||||
{{ if $webp }}
|
||||
<source
|
||||
{{ if lt .Width 660 }}
|
||||
{{ with .Resize (printf "%dx%d webp" .Width .Height) }}
|
||||
src="{{ .RelPermalink }}"
|
||||
{{ end }}
|
||||
{{ else }}
|
||||
srcset="
|
||||
{{- (.Resize "330x webp").RelPermalink }} 330w,
|
||||
{{- (.Resize "660x webp").RelPermalink }} 660w
|
||||
{{ if gt .Width 1024 }}
|
||||
,{{ (.Resize "1024x webp").RelPermalink }} 1024w
|
||||
{{ else }}
|
||||
{{ with .Resize (printf "%dx%d webp" .Width .Height) }}
|
||||
,{{ .RelPermalink }} {{ .Width }}w
|
||||
{{ end }}
|
||||
{{ end }}
|
||||
{{ if gt .Width 1320 }}
|
||||
,{{ (.Resize "1320x webp").RelPermalink }} 2x
|
||||
{{ else }}
|
||||
{{ with .Resize (printf "%dx%d webp" .Width .Height) }}
|
||||
,{{ .RelPermalink }} {{ .Width }}w
|
||||
{{ end }}
|
||||
{{ end }}"
|
||||
src="{{ (.Resize "660x webp").RelPermalink }}"
|
||||
{{ end }}
|
||||
type="image/webp"
|
||||
/>
|
||||
{{ end }}
|
||||
<img
|
||||
src="{{ .RelPermalink }}"
|
||||
width="{{ $width }}"
|
||||
height="{{ $height }}"
|
||||
{{ with $class }} class="{{ . }}" {{ end }}
|
||||
{{ with $alt }} alt="{{ . }}" {{ end }}
|
||||
{{ with $lazy }} loading="lazy" decoding="async" {{ end }}
|
||||
{{ if lt .Width 660 }}
|
||||
src="{{ .RelPermalink }}"
|
||||
{{ else }}
|
||||
srcset="
|
||||
{{- (.Resize "330x").RelPermalink }} 330w,
|
||||
{{- (.Resize "660x").RelPermalink }} 660w
|
||||
{{ if gt .Width 1024 }}
|
||||
,{{ (.Resize "1024x").RelPermalink }} 1024w
|
||||
{{ else }}
|
||||
,{{ .RelPermalink }} {{ .Width }}w
|
||||
{{ end }}
|
||||
{{ if gt .Width 1320 }}
|
||||
,{{ (.Resize "1320x").RelPermalink }} 2x
|
||||
{{ else }}
|
||||
,{{ .RelPermalink }} {{ .Width }}w
|
||||
{{ end }}"
|
||||
src="{{ (.Resize "660x").RelPermalink }}"
|
||||
{{ end }}
|
||||
>
|
||||
</picture>
|
||||
{{ end }}
|
||||
{{ end }}
|
|
@ -11,7 +11,7 @@
|
|||
{{ with .Site.Params.keywords }}"keywords": {{ . }},{{ end }}
|
||||
"publisher" : {
|
||||
"@type": "Person",
|
||||
"name": "{{ .Site.Author.name | safeJS }}"
|
||||
"name": "{{ .Site.Language.Params.Author.name | safeJS }}"
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
@ -30,7 +30,7 @@
|
|||
"url" : "{{ .Permalink }}",
|
||||
"author" : {
|
||||
"@type": "Person",
|
||||
"name": "{{ .Site.Author.name | safeJS }}"
|
||||
"name": "{{ .Site.Language.Params.Author.name | safeJS }}"
|
||||
},
|
||||
{{ with .PublishDate }}"copyrightYear": "{{ .Format "2006" }}",{{ end }}
|
||||
{{ with .Date }}"dateCreated": "{{ .Format $iso8601 }}",{{ end }}
|
||||
|
|
|
@ -6,45 +6,23 @@
|
|||
{{ $caption := .Get "caption" }}
|
||||
{{ $href := .Get "href" }}
|
||||
{{ $class := .Get "class" }}
|
||||
|
||||
{{ $file := $url.Path }}
|
||||
{{ $img := .Page.Resources.GetMatch $file }}
|
||||
{{- if and (not $img) .Page.File }}
|
||||
{{ $path := path.Join .Page.File.Dir $file }}
|
||||
{{ $img = resources.Get $path }}
|
||||
{{ end -}}
|
||||
|
||||
<figure{{ with $class }} class="{{ . }}"{{ end }}>
|
||||
{{ with $href }}<a href="{{ . }}">{{ end }}
|
||||
<img
|
||||
class="mx-auto my-0 rounded-md"
|
||||
alt="{{ $altText }}"
|
||||
{{ if .Site.Params.enableImageLazyLoading | default true }}
|
||||
loading="lazy"
|
||||
{{ end }}
|
||||
{{ if findRE "^https?" $url.Scheme }}
|
||||
src="{{ $url.String }}"
|
||||
{{ else }}
|
||||
{{ $resource := "" }}
|
||||
{{ if $.Page.Resources.GetMatch ($url.String) }}
|
||||
{{ $resource = $.Page.Resources.GetMatch ($url.String) }}
|
||||
{{ else if resources.GetMatch ($url.String) }}
|
||||
{{ $resource = resources.Get ($url.String) }}
|
||||
{{ end }}
|
||||
{{ with $resource }}
|
||||
{{ if eq .MediaType.SubType "svg" }}
|
||||
src="{{ .RelPermalink }}"
|
||||
{{ else }}
|
||||
width="{{ .Width }}"
|
||||
height="{{ .Height }}"
|
||||
{{ if lt .Width 660 }}
|
||||
src="{{ .RelPermalink }}"
|
||||
{{ else }}
|
||||
srcset="
|
||||
{{- (.Resize "330x").RelPermalink }} 330w,
|
||||
{{- (.Resize "660x").RelPermalink }} 660w,
|
||||
{{- (.Resize "1024x").RelPermalink }} 1024w,
|
||||
{{- (.Resize "1320x").RelPermalink }} 2x"
|
||||
src="{{ (.Resize "660x").RelPermalink }}"
|
||||
{{ end }}
|
||||
{{ end }}
|
||||
{{ else }}
|
||||
src="{{ $url.String }}"
|
||||
{{ end }}
|
||||
{{ end }}
|
||||
/>
|
||||
|
||||
{{- with $img -}}
|
||||
{{ partial "picture.html" (dict "img" . "alt" $altText "class" $class) }}
|
||||
{{- else -}}
|
||||
<img src="{{ $url.String }}" alt="{{ $altText }}" class="{{ $class }}"/>
|
||||
{{- end -}}
|
||||
|
||||
{{ with $href }}</a>{{ end }}
|
||||
{{ with $caption }}<figcaption class="text-center">{{ . | markdownify }}</figcaption>{{ end }}
|
||||
</figure>
|
||||
|
|
|
@ -4,17 +4,16 @@
|
|||
{{- if .Get "href" -}}
|
||||
<a href="{{ .Get "href" }}">
|
||||
{{- end -}}
|
||||
<img src="{{ $image.RelPermalink }}"
|
||||
{{- if or (.Get "alt") (.Get "caption") }}
|
||||
alt="{{ with .Get "alt" }}{{ . }}{{ else }}{{ .Get "caption" | markdownify | plainify }}{{ end }}"
|
||||
{{- end -}}
|
||||
{{ if .Site.Params.enableImageLazyLoading | default true }}
|
||||
loading="lazy"
|
||||
|
||||
{{ $altText := "" }}
|
||||
{{ with .Get "alt" }}
|
||||
{{ $altText = . }}
|
||||
{{ else }}
|
||||
{{ $altText = (.Get "caption") | markdownify | plainify }}
|
||||
{{ end }}
|
||||
width="100%"
|
||||
height="auto"
|
||||
style="max-width:{{ div $image.Width 2 }}px; max-height:{{ div $image.Height 2 }}px;"
|
||||
/>
|
||||
|
||||
{{ partial "picture.html" (dict "img" $image "alt" $altText "x2" true) }}
|
||||
|
||||
{{- if .Get "href" }}</a>{{ end -}}
|
||||
{{- if .Get "caption" -}}
|
||||
<figcaption>
|
||||
|
|
|
@ -1,12 +1,12 @@
|
|||
{
|
||||
"name": "hugo-congo-theme",
|
||||
"version": "2.7.4",
|
||||
"version": "2.7.6",
|
||||
"lockfileVersion": 2,
|
||||
"requires": true,
|
||||
"packages": {
|
||||
"": {
|
||||
"name": "hugo-congo-theme",
|
||||
"version": "2.7.4",
|
||||
"version": "2.7.6",
|
||||
"hasInstallScript": true,
|
||||
"license": "MIT",
|
||||
"devDependencies": {
|
||||
|
@ -18,6 +18,7 @@
|
|||
"prettier": "^3.1.0",
|
||||
"prettier-plugin-go-template": "^0.0.15",
|
||||
"prettier-plugin-tailwindcss": "^0.5.7",
|
||||
"quicklink": "^2.3.0",
|
||||
"rimraf": "^5.0.5",
|
||||
"tailwindcss": "^3.3.5",
|
||||
"vendor-copy": "^3.0.1"
|
||||
|
@ -1351,6 +1352,13 @@
|
|||
"jiti": "bin/jiti.js"
|
||||
}
|
||||
},
|
||||
"node_modules/js-tokens": {
|
||||
"version": "4.0.0",
|
||||
"resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
|
||||
"integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==",
|
||||
"dev": true,
|
||||
"peer": true
|
||||
},
|
||||
"node_modules/katex": {
|
||||
"version": "0.16.9",
|
||||
"resolved": "https://registry.npmjs.org/katex/-/katex-0.16.9.tgz",
|
||||
|
@ -1433,6 +1441,19 @@
|
|||
"integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==",
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/loose-envify": {
|
||||
"version": "1.4.0",
|
||||
"resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz",
|
||||
"integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==",
|
||||
"dev": true,
|
||||
"peer": true,
|
||||
"dependencies": {
|
||||
"js-tokens": "^3.0.0 || ^4.0.0"
|
||||
},
|
||||
"bin": {
|
||||
"loose-envify": "cli.js"
|
||||
}
|
||||
},
|
||||
"node_modules/lru-cache": {
|
||||
"version": "10.0.1",
|
||||
"resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.0.1.tgz",
|
||||
|
@ -2413,6 +2434,18 @@
|
|||
}
|
||||
}
|
||||
},
|
||||
"node_modules/prop-types": {
|
||||
"version": "15.8.1",
|
||||
"resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz",
|
||||
"integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==",
|
||||
"dev": true,
|
||||
"peer": true,
|
||||
"dependencies": {
|
||||
"loose-envify": "^1.4.0",
|
||||
"object-assign": "^4.1.1",
|
||||
"react-is": "^16.13.1"
|
||||
}
|
||||
},
|
||||
"node_modules/queue-microtask": {
|
||||
"version": "1.2.3",
|
||||
"resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz",
|
||||
|
@ -2433,6 +2466,58 @@
|
|||
}
|
||||
]
|
||||
},
|
||||
"node_modules/quicklink": {
|
||||
"version": "2.3.0",
|
||||
"resolved": "https://registry.npmjs.org/quicklink/-/quicklink-2.3.0.tgz",
|
||||
"integrity": "sha512-FyTanYArl5Gz2/C0ZjErvfFJtem/+d1RM4eK0jiXO6mL4Zjje+xsYtcK3ZtKX2Yb3HSfah5HekWrH2qhttYQjQ==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"route-manifest": "^1.0.0",
|
||||
"throttles": "^1.0.0"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"react": "^16.8.0",
|
||||
"react-dom": "^16.8.0"
|
||||
}
|
||||
},
|
||||
"node_modules/react": {
|
||||
"version": "16.14.0",
|
||||
"resolved": "https://registry.npmjs.org/react/-/react-16.14.0.tgz",
|
||||
"integrity": "sha512-0X2CImDkJGApiAlcf0ODKIneSwBPhqJawOa5wCtKbu7ZECrmS26NvtSILynQ66cgkT/RJ4LidJOc3bUESwmU8g==",
|
||||
"dev": true,
|
||||
"peer": true,
|
||||
"dependencies": {
|
||||
"loose-envify": "^1.1.0",
|
||||
"object-assign": "^4.1.1",
|
||||
"prop-types": "^15.6.2"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=0.10.0"
|
||||
}
|
||||
},
|
||||
"node_modules/react-dom": {
|
||||
"version": "16.14.0",
|
||||
"resolved": "https://registry.npmjs.org/react-dom/-/react-dom-16.14.0.tgz",
|
||||
"integrity": "sha512-1gCeQXDLoIqMgqD3IO2Ah9bnf0w9kzhwN5q4FGnHZ67hBm9yePzB5JJAIQCc8x3pFnNlwFq4RidZggNAAkzWWw==",
|
||||
"dev": true,
|
||||
"peer": true,
|
||||
"dependencies": {
|
||||
"loose-envify": "^1.1.0",
|
||||
"object-assign": "^4.1.1",
|
||||
"prop-types": "^15.6.2",
|
||||
"scheduler": "^0.19.1"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"react": "^16.14.0"
|
||||
}
|
||||
},
|
||||
"node_modules/react-is": {
|
||||
"version": "16.13.1",
|
||||
"resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz",
|
||||
"integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==",
|
||||
"dev": true,
|
||||
"peer": true
|
||||
},
|
||||
"node_modules/read-cache": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz",
|
||||
|
@ -2454,6 +2539,15 @@
|
|||
"node": ">=8.10.0"
|
||||
}
|
||||
},
|
||||
"node_modules/regexparam": {
|
||||
"version": "1.3.0",
|
||||
"resolved": "https://registry.npmjs.org/regexparam/-/regexparam-1.3.0.tgz",
|
||||
"integrity": "sha512-6IQpFBv6e5vz1QAqI+V4k8P2e/3gRrqfCJ9FI+O1FLQTO+Uz6RXZEZOPmTJ6hlGj7gkERzY5BRCv09whKP96/g==",
|
||||
"dev": true,
|
||||
"engines": {
|
||||
"node": ">=6"
|
||||
}
|
||||
},
|
||||
"node_modules/resolve": {
|
||||
"version": "1.22.2",
|
||||
"resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.2.tgz",
|
||||
|
@ -2505,6 +2599,18 @@
|
|||
"integrity": "sha512-ndEIpszUHiG4HtDsQLeIuMvRsDnn8c8rYStabochtUeCvfuvNptb5TUbVD68LRAILPX7p9nqQGh4xJgn3EHS/g==",
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/route-manifest": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/route-manifest/-/route-manifest-1.0.0.tgz",
|
||||
"integrity": "sha512-qn0xJr4nnF4caj0erOLLAHYiNyzqhzpUbgDQcEHrmBoG4sWCDLnIXLH7VccNSxe9cWgbP2Kw/OjME+eH3CeRSA==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"regexparam": "^1.3.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">= 6"
|
||||
}
|
||||
},
|
||||
"node_modules/run-parallel": {
|
||||
"version": "1.2.0",
|
||||
"resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz",
|
||||
|
@ -2552,6 +2658,17 @@
|
|||
"integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==",
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/scheduler": {
|
||||
"version": "0.19.1",
|
||||
"resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.19.1.tgz",
|
||||
"integrity": "sha512-n/zwRWRYSUj0/3g/otKDRPMh6qv2SYMWNq85IEa8iZyAv8od9zDYpGSnpBEjNgcMNq6Scbu5KfIPxNF72R/2EA==",
|
||||
"dev": true,
|
||||
"peer": true,
|
||||
"dependencies": {
|
||||
"loose-envify": "^1.1.0",
|
||||
"object-assign": "^4.1.1"
|
||||
}
|
||||
},
|
||||
"node_modules/shebang-command": {
|
||||
"version": "2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz",
|
||||
|
@ -2852,6 +2969,15 @@
|
|||
"node": ">=0.8"
|
||||
}
|
||||
},
|
||||
"node_modules/throttles": {
|
||||
"version": "1.0.1",
|
||||
"resolved": "https://registry.npmjs.org/throttles/-/throttles-1.0.1.tgz",
|
||||
"integrity": "sha512-fab7Xg+zELr9KOv4fkaBoe/b3L0GMGLd0IBSCn16GoE/Qx6/OfCr1eGNyEcDU2pUA79qQfZ8kPQWlRuok4YwTw==",
|
||||
"dev": true,
|
||||
"engines": {
|
||||
"node": ">=6"
|
||||
}
|
||||
},
|
||||
"node_modules/to-regex-range": {
|
||||
"version": "5.0.1",
|
||||
"resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
|
||||
|
@ -4110,6 +4236,13 @@
|
|||
"integrity": "sha512-3TV69ZbrvV6U5DfQimop50jE9Dl6J8O1ja1dvBbMba/sZ3YBEQqJ2VZRoQPVnhlzjNtU1vaXRZVrVjU4qtm8yA==",
|
||||
"dev": true
|
||||
},
|
||||
"js-tokens": {
|
||||
"version": "4.0.0",
|
||||
"resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
|
||||
"integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==",
|
||||
"dev": true,
|
||||
"peer": true
|
||||
},
|
||||
"katex": {
|
||||
"version": "0.16.9",
|
||||
"resolved": "https://registry.npmjs.org/katex/-/katex-0.16.9.tgz",
|
||||
|
@ -4179,6 +4312,16 @@
|
|||
"integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==",
|
||||
"dev": true
|
||||
},
|
||||
"loose-envify": {
|
||||
"version": "1.4.0",
|
||||
"resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz",
|
||||
"integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==",
|
||||
"dev": true,
|
||||
"peer": true,
|
||||
"requires": {
|
||||
"js-tokens": "^3.0.0 || ^4.0.0"
|
||||
}
|
||||
},
|
||||
"lru-cache": {
|
||||
"version": "10.0.1",
|
||||
"resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.0.1.tgz",
|
||||
|
@ -4726,12 +4869,66 @@
|
|||
"dev": true,
|
||||
"requires": {}
|
||||
},
|
||||
"prop-types": {
|
||||
"version": "15.8.1",
|
||||
"resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz",
|
||||
"integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==",
|
||||
"dev": true,
|
||||
"peer": true,
|
||||
"requires": {
|
||||
"loose-envify": "^1.4.0",
|
||||
"object-assign": "^4.1.1",
|
||||
"react-is": "^16.13.1"
|
||||
}
|
||||
},
|
||||
"queue-microtask": {
|
||||
"version": "1.2.3",
|
||||
"resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz",
|
||||
"integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==",
|
||||
"dev": true
|
||||
},
|
||||
"quicklink": {
|
||||
"version": "2.3.0",
|
||||
"resolved": "https://registry.npmjs.org/quicklink/-/quicklink-2.3.0.tgz",
|
||||
"integrity": "sha512-FyTanYArl5Gz2/C0ZjErvfFJtem/+d1RM4eK0jiXO6mL4Zjje+xsYtcK3ZtKX2Yb3HSfah5HekWrH2qhttYQjQ==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"route-manifest": "^1.0.0",
|
||||
"throttles": "^1.0.0"
|
||||
}
|
||||
},
|
||||
"react": {
|
||||
"version": "16.14.0",
|
||||
"resolved": "https://registry.npmjs.org/react/-/react-16.14.0.tgz",
|
||||
"integrity": "sha512-0X2CImDkJGApiAlcf0ODKIneSwBPhqJawOa5wCtKbu7ZECrmS26NvtSILynQ66cgkT/RJ4LidJOc3bUESwmU8g==",
|
||||
"dev": true,
|
||||
"peer": true,
|
||||
"requires": {
|
||||
"loose-envify": "^1.1.0",
|
||||
"object-assign": "^4.1.1",
|
||||
"prop-types": "^15.6.2"
|
||||
}
|
||||
},
|
||||
"react-dom": {
|
||||
"version": "16.14.0",
|
||||
"resolved": "https://registry.npmjs.org/react-dom/-/react-dom-16.14.0.tgz",
|
||||
"integrity": "sha512-1gCeQXDLoIqMgqD3IO2Ah9bnf0w9kzhwN5q4FGnHZ67hBm9yePzB5JJAIQCc8x3pFnNlwFq4RidZggNAAkzWWw==",
|
||||
"dev": true,
|
||||
"peer": true,
|
||||
"requires": {
|
||||
"loose-envify": "^1.1.0",
|
||||
"object-assign": "^4.1.1",
|
||||
"prop-types": "^15.6.2",
|
||||
"scheduler": "^0.19.1"
|
||||
}
|
||||
},
|
||||
"react-is": {
|
||||
"version": "16.13.1",
|
||||
"resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz",
|
||||
"integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==",
|
||||
"dev": true,
|
||||
"peer": true
|
||||
},
|
||||
"read-cache": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz",
|
||||
|
@ -4750,6 +4947,12 @@
|
|||
"picomatch": "^2.2.1"
|
||||
}
|
||||
},
|
||||
"regexparam": {
|
||||
"version": "1.3.0",
|
||||
"resolved": "https://registry.npmjs.org/regexparam/-/regexparam-1.3.0.tgz",
|
||||
"integrity": "sha512-6IQpFBv6e5vz1QAqI+V4k8P2e/3gRrqfCJ9FI+O1FLQTO+Uz6RXZEZOPmTJ6hlGj7gkERzY5BRCv09whKP96/g==",
|
||||
"dev": true
|
||||
},
|
||||
"resolve": {
|
||||
"version": "1.22.2",
|
||||
"resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.2.tgz",
|
||||
|
@ -4782,6 +4985,15 @@
|
|||
"integrity": "sha512-ndEIpszUHiG4HtDsQLeIuMvRsDnn8c8rYStabochtUeCvfuvNptb5TUbVD68LRAILPX7p9nqQGh4xJgn3EHS/g==",
|
||||
"dev": true
|
||||
},
|
||||
"route-manifest": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/route-manifest/-/route-manifest-1.0.0.tgz",
|
||||
"integrity": "sha512-qn0xJr4nnF4caj0erOLLAHYiNyzqhzpUbgDQcEHrmBoG4sWCDLnIXLH7VccNSxe9cWgbP2Kw/OjME+eH3CeRSA==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"regexparam": "^1.3.0"
|
||||
}
|
||||
},
|
||||
"run-parallel": {
|
||||
"version": "1.2.0",
|
||||
"resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz",
|
||||
|
@ -4812,6 +5024,17 @@
|
|||
"integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==",
|
||||
"dev": true
|
||||
},
|
||||
"scheduler": {
|
||||
"version": "0.19.1",
|
||||
"resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.19.1.tgz",
|
||||
"integrity": "sha512-n/zwRWRYSUj0/3g/otKDRPMh6qv2SYMWNq85IEa8iZyAv8od9zDYpGSnpBEjNgcMNq6Scbu5KfIPxNF72R/2EA==",
|
||||
"dev": true,
|
||||
"peer": true,
|
||||
"requires": {
|
||||
"loose-envify": "^1.1.0",
|
||||
"object-assign": "^4.1.1"
|
||||
}
|
||||
},
|
||||
"shebang-command": {
|
||||
"version": "2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz",
|
||||
|
@ -5038,6 +5261,12 @@
|
|||
"thenify": ">= 3.1.0 < 4"
|
||||
}
|
||||
},
|
||||
"throttles": {
|
||||
"version": "1.0.1",
|
||||
"resolved": "https://registry.npmjs.org/throttles/-/throttles-1.0.1.tgz",
|
||||
"integrity": "sha512-fab7Xg+zELr9KOv4fkaBoe/b3L0GMGLd0IBSCn16GoE/Qx6/OfCr1eGNyEcDU2pUA79qQfZ8kPQWlRuok4YwTw==",
|
||||
"dev": true
|
||||
},
|
||||
"to-regex-range": {
|
||||
"version": "5.0.1",
|
||||
"resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
{
|
||||
"name": "hugo-congo-theme",
|
||||
"version": "2.7.5",
|
||||
"version": "2.7.6",
|
||||
"description": "Congo theme for Hugo",
|
||||
"scripts": {
|
||||
"preinstall": "rimraf assets/lib",
|
||||
|
@ -37,6 +37,7 @@
|
|||
"prettier": "^3.1.0",
|
||||
"prettier-plugin-go-template": "^0.0.15",
|
||||
"prettier-plugin-tailwindcss": "^0.5.7",
|
||||
"quicklink": "^2.3.0",
|
||||
"rimraf": "^5.0.5",
|
||||
"tailwindcss": "^3.3.5",
|
||||
"vendor-copy": "^3.0.1"
|
||||
|
@ -70,6 +71,10 @@
|
|||
{
|
||||
"from": "node_modules/fuse.js/dist/fuse.min.js",
|
||||
"to": "assets/lib/fuse/fuse.min.js"
|
||||
},
|
||||
{
|
||||
"from": "node_modules/quicklink/dist/quicklink.umd.js",
|
||||
"to": "assets/lib/quicklink/quicklink.umd.js"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue