Compare commits

...

38 Commits

Author SHA1 Message Date
Azkellas 98be867848
Merge 98892944c4 into dbf421848f 2023-11-27 19:48:37 +11:00
James Panther dbf421848f
📝 Update configuration docs 2023-11-27 19:38:56 +11:00
James Panther 782ac59c9b
📝 Update changelog 2023-11-27 19:20:20 +11:00
James Panther 838c9684a2
🔧 Update params.toml template `sharingLinks` 2023-11-27 19:19:12 +11:00
James Panther b0be87c519
🔀 Merge pull request #719 from Jh123x/feat/more-share-options
feat: add share options
2023-11-27 19:17:52 +11:00
James Panther 982b87e3e5
📝 Update changelog 2023-11-27 19:16:27 +11:00
James Panther 20c9f483e5
Revert example site to `basic` header layout 2023-11-27 19:15:05 +11:00
James Panther e0aae4f096
🔀 Merge pull request #705 from Jh123x/fix/460/close-menu-on-site-click
fix: close menu button on click
2023-11-27 19:12:17 +11:00
James Panther c89bf7cac5
📝 Update changelog 2023-11-27 19:11:19 +11:00
James Panther 4db06f9aeb
✏️ Fix typo in warning 2023-11-27 19:10:01 +11:00
James Panther 1dcd318883
🔀 Merge pull request #704 from Jh123x/fix/690/hugo-v0.120.0-author-key-update
feat: move author field to languages.xx.toml under params
2023-11-27 19:08:44 +11:00
James Panther 1b9c2f28c3
📝 Update changelog 2023-11-27 19:06:07 +11:00
James Panther dba7573cfc
🔀 Merge pull request #646 from stereobooster/quicklink
Add quicklink
2023-11-27 19:02:51 +11:00
stereobooster 1e3241997d
Add quicklink 2023-11-27 18:53:31 +11:00
James Panther fa3a47c52b
🏗️ Require Hugo extended version 2023-11-27 08:06:38 +11:00
James Panther 7a9020b52f
📝 Update changelog 2023-11-27 07:55:23 +11:00
James Panther a431f466dc
🔀 Merge pull request #693 from stereobooster/picture-new
feat: picture partial
2023-11-27 07:50:14 +11:00
Wen Junhua 763257a3ac feat: add messages to i18n 2023-11-26 23:27:40 +08:00
Wen Junhua c9ee62bcde fix: update svg 2023-11-26 23:17:56 +08:00
Wen Junhua 2ca6096cdf fix: update hybrid menu as well 2023-11-26 23:15:17 +08:00
Wen Junhua a15820cb37 fix: fix warning 2023-11-26 23:02:47 +08:00
stereobooster c8b33ae51e refactoring 2023-11-26 14:52:34 +01:00
stereobooster 0c6c30fec1 do not lazy load the feature image 2023-11-26 14:42:26 +01:00
stereobooster 6eb34e7124 use 2x instead of x2 in query params 2023-11-26 14:23:42 +01:00
stereobooster 11fd48f5d0 potential solution to screenshot 2023-11-26 14:14:49 +01:00
stereobooster 8cfe33965b use original image as backup for srcset 2023-11-26 14:14:49 +01:00
stereobooster 3ffe2b1002 do not upscale images in picture shortcode 2023-11-26 14:14:49 +01:00
stereobooster 978791808f integrate in single.html 2023-11-26 14:14:48 +01:00
stereobooster c237e04744 Example of integration of picture partial 2023-11-26 14:14:48 +01:00
Wen Junhua 10c4226fce feat: add sharing to line
No changes to color is allowed based on their official website
https://line.me/en/logo
2023-11-25 13:14:47 +08:00
Wen Junhua dc1ea3dfaa feat: add sharing to telegram 2023-11-25 13:14:06 +08:00
Wen Junhua 8a8ae76bf2 docs: update author docs 2023-11-25 12:51:22 +08:00
Wen Junhua 8ae115e95c fix; move function to another file 2023-11-25 12:46:52 +08:00
Wen Junhua 4b3d31eff3 fix: move param under languages.xx.toml params.author 2023-11-25 12:29:10 +08:00
Wen Junhua a785bb0dbf fix: close menu button on click 2023-11-12 19:45:59 +08:00
Wen Junhua 394a018e08 feat: add warning when config is incorrect 2023-11-12 19:09:16 +08:00
Wen Junhua 2dd90e3d20 feat: move author field to params.toml 2023-11-12 18:52:28 +08:00
Etienne 98892944c4 Properly render KaTeX formulas
Add block and inline parameter to katex shortcode to encapsulate
katex notation
2023-10-01 13:03:05 +02:00
75 changed files with 649 additions and 236 deletions

View File

@ -22,6 +22,7 @@ jobs:
uses: peaceiris/actions-hugo@v2
with:
hugo-version: "latest"
extended: true
- name: Build
working-directory: ./exampleSite

View File

@ -19,6 +19,7 @@ jobs:
uses: peaceiris/actions-hugo@v2
with:
hugo-version: "latest"
extended: true
- name: Build
working-directory: ./exampleSite

View File

@ -8,7 +8,21 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
### Added
- Warning when building if links to markdown files cannot be resolved ([#691](https://github.com/jpanther/congo/pull/691))
- 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
@ -83,6 +97,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
- Spanish translation of example site samples ([#606](https://github.com/jpanther/congo/pull/606))
- Japanese translation of docs and example site ([#618](https://github.com/jpanther/congo/pull/618))
- German translation of example site ([#631](https://github.com/jpanther/congo/pull/631))
- Properly render KaTeX formulas by adding `block` or `inline` parameter to `katex` shortcode [#634](https://github.com/jpanther/congo/pull/634)
### Changed

View File

@ -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

View File

@ -0,0 +1,6 @@
/*
Closes the hamburger menu when a link is clicked.
*/
function close_menu() {
document.getElementById('menu-controller').checked=false
}

View File

@ -0,0 +1,4 @@
window.addEventListener("load", () => {
quicklink.listen();
});

View File

@ -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});

View File

@ -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"

View File

@ -1,3 +1,3 @@
[hugoVersion]
extended = false
extended = true
min = "0.87.0"

View File

@ -12,6 +12,7 @@ autoSwitchAppearance = true
enableSearch = false
enableCodeCopy = false
enableImageLazyLoading = true
enableImageWebp = true
# robots = ""
fingerprintAlgorithm = "sha256"
@ -50,7 +51,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

View File

@ -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"
}
}

View File

@ -12,7 +12,7 @@ copyright = "&copy; 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!"

View File

@ -12,7 +12,7 @@ copyright = "&copy; 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!"

View File

@ -12,7 +12,7 @@ copyright = "&copy; 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!"

View File

@ -12,7 +12,7 @@ copyright = "&copy; 2023 Congo contributors"
mainSections = ["samples"]
description = "Tailwind CSSをベースに開発された強力で軽量なHugo向けテーマ"
[author]
[params.author]
name = "Congo"
image = "img/author.jpg"
headline = "ただならぬテーマ!"

View File

@ -1,3 +1,3 @@
[hugoVersion]
extended = false
min = "0.86.1"
extended = true
min = "0.87.0"

View File

@ -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

View File

@ -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 -->
### メニュー

View File

@ -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.|

View File

@ -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" >}})セクションで説明されています。

View File

@ -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.

View File

@ -60,6 +60,7 @@ jobs:
uses: peaceiris/actions-hugo@v2
with:
hugo-version: "latest"
extended: true
- name: Build
run: hugo --minify

View File

@ -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).

View File

@ -175,21 +175,28 @@ Congoは、標準的なMarkdown構文を使用した場合の画像について
## Katex
`katex` を使うと、KaTeXパッケージを使って記事の内容に数式を追加することができます。利用可能な構文については[supported TeX functions](https://katex.org/docs/supported.html)のオンラインリファレンスを参照してください。
数式は `katex` ショートコードを使用し、パラメータに `block` (ブロック式の場合) または `inline` を指定してレンダリングすることができます。詳細は[数学的表記]({{< ref "mathematical-notation" >}})を参照してください。
記事中に数式を含めるには、コンテンツ内の任意の場所にショートコードを配置するだけです。記事ごとに一度記述するだけで、KaTeXが自動的にそのページのマークアップをレンダリングします。インライン表記とブロック表記の両方がサポートされています。
インライン記法は、式を区切り記号 `\\(``\\)` で囲むことで生成できます。ブロック記法の場合は `$$` です。
利用可能な構文については[サポートされているTeX関数](https://katex.org/docs/supported.html)のオンラインリファレンスを参照してください。
**例:**
```
インライン記法: {{</* katex inline */>}}f(a,b,c) = (a^2+b^2+c^2)^3{{</* /katex */>}}
```
インライン記法: {{< katex inline >}}f(a,b,c) = (a^2+b^2+c^2)^3{{< /katex >}}
ブロック表記
```md
{{</* katex */>}}
\\(f(a,b,c) = (a^2+b^2+c^2)^3\\)
{{</* katex block */>}}
f(a,b,c) = (a^2+b^2+c^2)^3
{{</* /katex */>}}
```
{{< katex >}}
\\(f(a,b,c) = (a^2+b^2+c^2)^3\\)
{{< katex block>}}
f(a,b,c) = (a^2+b^2+c^2)^3
{{< /katex>}}
[数学的表記のサンプル]({{< ref "mathematical-notation" >}})でより多くの例をチェックしてください。

View File

@ -175,21 +175,28 @@ Icons can also be used in partials by calling the [icon partial]({{< ref "partia
## Katex
The `katex` shortcode can be used to add mathematical expressions to article content using the KaTeX package. Refer to the online reference of [supported TeX functions](https://katex.org/docs/supported.html) for the available syntax.
Mathematical expressions can be rendered using either the `katex` shortcode, with either `block` (for block expression) or `inline` as parameter. See [mathematical notation]({{< ref "mathematical-notation" >}}) for more details.
It uses the KaTeX library to render mathematical notation within articles.
To include mathematical expressions in an article, simply place the shortcode anywhere with the content. It only needs to be included once per article and KaTeX will automatically render any markup on that page. Both inline and block notation are supported.
Inline notation can be generated by wrapping the expression in `\\(` and `\\)` delimiters. Alternatively, block notation can be generated using `$$` delimiters.
Refer to the online reference of [supported TeX functions](https://katex.org/docs/supported.html) for the available syntax.
**Example:**
```md
{{</* katex */>}}
\\(f(a,b,c) = (a^2+b^2+c^2)^3\\)
```
Inline notation: {{</* katex inline */>}}f(a,b,c) = (a^2+b^2+c^2)^3{{</* /katex */>}}
```
Inline notation: {{< katex inline >}}f(a,b,c) = (a^2+b^2+c^2)^3{{< /katex >}}
Block notation:
```
{{</* katex block */>}}
f(a,b,c) = (a^2+b^2+c^2)^3
{{</* /katex */>}}
```
{{< katex >}}
\\(f(a,b,c) = (a^2+b^2+c^2)^3\\)
{{< katex block >}}
f(a,b,c) = (a^2+b^2+c^2)^3
{{< /katex >}}
Check out the [mathematical notation samples]({{< ref "mathematical-notation" >}}) page for more examples.

View File

@ -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 >}} |

View File

@ -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 >}} |

View File

@ -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 >}} |

View File

@ -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 >}} |

View File

@ -9,38 +9,39 @@ KaTeX kann verwendet werden, um mathematische Notationen in Artikeln darzustelle
<!--more-->
{{< katex >}}
Congo bindet die KaTeX-Assets nur dann in das Projekt ein, wenn die mathematische Notation verwendet wird. Damit dies funktioniert, kann einfach der Shortcode [`katex`]({{< ref path="docs/shortcodes#katex" lang="en" >}}) in den Artikel eingefügt werden. Jede KaTeX-Syntax auf dieser Seite wird dann automatisch gerendert.
Congo bindet die KaTeX-Assets nur dann in das Projekt ein, wenn die mathematische Notation verwendet wird. Damit dies funktioniert, kann einfach der Shortcode [`katex`]({{< ref path="docs/shortcodes#katex" lang="en" >}}) der entweder mit `katex block` oder `katex inline` verwendet werden kann in den Artikel eingefügt werden. Jede KaTeX-Syntax auf dieser Seite wird dann automatisch gerendert.
Die Online-Referenz der [unterstützten TeX-Funktionen](https://katex.org/docs/supported.html) zeigt Syntax-Beispiele.
## Inline-Schreibweise
Die Inline-Schreibweise kann erzeugt werden, indem der Ausdruck in die Trennzeichen `\(` und `\)` eingeschlossen wird.
Die Inline-Schreibweise kann erzeugt werden, indem der Ausdruck in den Shortcode `katex inline` oder `katex` eingeschlossen wird.
**Beispiel:**
```tex
% KaTeX Inline-Schreibweise
Inline-Schreibweise: \\(\varphi = \dfrac{1+\sqrt5}{2}= 1.6180339887…\\)
Inline-Schreibweise: {{</* katex inline */>}}\varphi = \dfrac{1+\sqrt5}{2}= 1.6180339887…{{</* /katex */>}}
Kurzfassung: {{</* katex */>}}\varphi = \dfrac{1+\sqrt5}{2}= 1.6180339887…{{</* /katex */>}}
```
Inline-Schreibweise: \\(\varphi = \dfrac{1+\sqrt5}{2}= 1.6180339887…\\)
Inline-Schreibweise: {{< katex inline >}}\varphi = \dfrac{1+\sqrt5}{2}= 1.6180339887…{{< /katex >}}
Kurzfassung: {{< katex >}}\varphi = \dfrac{1+\sqrt5}{2}= 1.6180339887…{{< /katex >}}
## Schreibweise als Block
Alternativ kann die Blockschreibweise mit Hilfe von `$$`-Trennzeichen erzeugt werden. Dadurch wird der Ausdruck in einem eigenen HTML-Block ausgegeben.
Alternativ kann die Blockschreibweise mit dem Parameter `block` erzeugt werden. Dadurch wird der Ausdruck in einem eigenen HTML-Block ausgegeben.
**Beispiel:**
```tex
% KaTeX mit Block-Schreibweise
$$
{{</* katex block */>}}
\varphi = 1+\frac{1} {1+\frac{1} {1+\frac{1} {1+\cdots} } }
$$
{{</* /katex */>}}
```
$$
{{< katex block >}}
\varphi = 1+\frac{1} {1+\frac{1} {1+\frac{1} {1+\cdots} } }
$$
{{< /katex >}}

View File

@ -9,38 +9,41 @@ Una breve muestra de notación matemática en Congo.
<!--more-->
{{< katex >}}
Congo solo incluirá los assets de KaTeX en su proyecto si utiliza notación matemática. Para que esto funcione, simplemente incluya el [`katex` shortcode]({{< ref path="docs/shortcodes#katex" lang="en" >}}) dentro del artículo. Cualquier sintaxis de KaTeX en esa página se renderizará automáticamente.
Congo sólo incluirá los recursos de KaTeX en su proyecto si hace uso de la notación matemática. Para que esto funcione, congo proporciona un shortcode [`katex`]({{< ref path="docs/shortcodes#katex" lang="en" >}}) que puede usarse con `katex block` o `katex inline`.
Cualquier sintaxis KaTeX dentro del shortcode se renderizará automáticamente.
Utilice la documentación en línea de [funciones TeX admitidas](https://katex.org/docs/supported.html) para conocer la sintaxis disponible.
## Notación en línea
La notación en línea se puede generar envolviendo la expresión en los delimitadores `\\(` y `\\)`.
La notación inline puede generarse envolviendo la expresión en el shortcode `katex inline` o `katex`.
**Ejemplo:**
```tex
% KaTeX notación en línea
Notación en línea: \\(\varphi = \dfrac{1+\sqrt5}{2}= 1.6180339887…\\)
Notación en línea: {{</* katex inline */>}}\varphi = \dfrac{1+\sqrt5}{2}= 1.6180339887…{{</* /katex */>}}
Versión abreviada: {{</* katex */>}}\varphi = \dfrac{1+\sqrt5}{2}= 1.6180339887…{{</* /katex */>}}
```
Notación en línea: \\(\varphi = \dfrac{1+\sqrt5}{2}= 1.6180339887…\\)
Notación en línea: {{< katex inline >}}\varphi = \dfrac{1+\sqrt5}{2}= 1.6180339887…{{< /katex >}}
Versión abreviada: {{< katex >}}\varphi = \dfrac{1+\sqrt5}{2}= 1.6180339887…{{< /katex >}}
## Notación en bloque
Alternativamente, la notación en bloque se puede generar usando delimitadores `$$`. Esto generará la expresión en su propio bloque HTML.
Alternativamente, puede generarse una notación en bloque utilizando el parámetro `block`. Esto mostrará la expresión en su propio bloque HTML.
**Ejemplo:**
```tex
% KaTeX notación en bloque
$$
{{</* katex block */>}}
\varphi = 1+\frac{1} {1+\frac{1} {1+\frac{1} {1+\cdots} } }
$$
{{</* /katex */>}}
```
$$
{{< katex block >}}
\varphi = 1+\frac{1} {1+\frac{1} {1+\frac{1} {1+\cdots} } }
$$
{{< /katex >}}

View File

@ -9,38 +9,40 @@ tags: ["sample", "katex", "maths", "shortcodes"]
<!--more-->
{{< katex >}}
Congoは、数学的記法を使用する場合にのみ、KaTeXアセットをプロジェクトにバンドルします。これを動作させるために、congoは `katex block` または `katex inline` で使用できるショートコード [`katex`]({{< ref path="docs/shortcodes#katex" lang="en" >}}) を提供しています。
ショートコード内のKaTeX構文は自動的にレンダリングされます。
Congoは、数学的表記を使用する場合にのみ、KaTeXアセットをプロジェクトにバンドルします。これを動作させるには、単に記事内に[`katex` ショートコード]({{< ref "docs/shortcodes#katex" >}})をインクルードしてください。そのページ上のKaTeX構文は自動的にレンダリングされます
利用可能な構文については[サポートされているTeX関数](https://katex.org/docs/supported.html)のオンラインリファレンスを参照してください
使用可能な構文については、[supported TeX functions](https://katex.org/docs/supported.html)のオンラインリファレンスを参照してください。
## インライン記法
インライン記法は、式を `\\(``\\)` で囲むことで生成できます
インライン記法は `katex inline` または `katex` ショートコードで式をラップすることで生成できる
**例:**
```tex
% KaTeX inline notation
インライン記法: \\(\varphi = \dfrac{1+\sqrt5}{2}= 1.6180339887…\\)
インライン記法: {{</* katex inline */>}}\varphi = \dfrac{1+\sqrt5}{2}= 1.6180339887…{{</* /katex */>}}
速記版: {{</* katex */>}}\varphi = \dfrac{1+\sqrt5}{2}= 1.6180339887…{{</* /katex */>}}
```
インライン記法: {{< katex inline >}}\varphi = \dfrac{1+\sqrt5}{2}= 1.6180339887…{{< /katex >}}
インライン記法: \\(\varphi = \dfrac{1+\sqrt5}{2}= 1.6180339887…\\)
速記版: {{< katex >}}\varphi = \dfrac{1+\sqrt5}{2}= 1.6180339887…{{< /katex >}}
## ブロック記法
あるいは、 `$$` を使ってブロック記法で生成することもできます。これは式を独自のHTMLブロックとして出力します。
また、`block` パラメータを使ってブロック表記を生成することもできます。これは式を独自のHTMLブロックで出力します。
**例:**
```tex
% KaTeX block notation
$$
{{</* katex block */>}}
\varphi = 1+\frac{1} {1+\frac{1} {1+\frac{1} {1+\cdots} } }
$$
{{</* /katex */>}}
```
$$
{{< katex block >}}
\varphi = 1+\frac{1} {1+\frac{1} {1+\frac{1} {1+\cdots} } }
$$
{{< /katex >}}

View File

@ -9,38 +9,40 @@ KaTeX can be used to render mathematical notation within articles.
<!--more-->
{{< katex >}}
Congo will only bundle the KaTeX assets into your project if you make use of mathematical notation. In order for this to work, simply include the [`katex` shortcode]({{< ref "docs/shortcodes#katex" >}}) within the article. Any KaTeX syntax on that page will then be automatically rendered.
Congo will only bundle the KaTeX assets into your project if you make use of mathematical notation. In order for this to work, congo provides a shortcode [`katex`]({{< ref "docs/shortcodes#katex" >}}) than can be used with either `katex block` or `katex inline`.
Any KaTeX syntax inside the shortcode will be automatically rendered.
Use the online reference of [supported TeX functions](https://katex.org/docs/supported.html) for the available syntax.
## Inline notation
Inline notation can be generated by wrapping the expression in `\\(` and `\\)` delimiters.
Inline notation can be generated by wrapping the expression in the `katex inline` or `katex` shortcode.
**Example:**
```tex
% KaTeX inline notation
Inline notation: \\(\varphi = \dfrac{1+\sqrt5}{2}= 1.6180339887…\\)
Inline notation: {{</* katex inline */>}}\varphi = \dfrac{1+\sqrt5}{2}= 1.6180339887…{{</* /katex */>}}
Shorthand version: {{</* katex */>}}\varphi = \dfrac{1+\sqrt5}{2}= 1.6180339887…{{</* /katex */>}}
```
Inline notation: \\(\varphi = \dfrac{1+\sqrt5}{2}= 1.6180339887…\\)
Inline notation: {{< katex inline >}}\varphi = \dfrac{1+\sqrt5}{2}= 1.6180339887…{{< /katex >}}
Shorthand version: {{< katex >}}\varphi = \dfrac{1+\sqrt5}{2}= 1.6180339887…{{< /katex >}}
## Block notation
Alternatively, block notation can be generated using `$$` delimiters. This will output the expression in its own HTML block.
Alternatively, block notation can be generated using the `block` parameter. This will output the expression in its own HTML block.
**Example:**
```tex
% KaTeX block notation
$$
{{</* katex block */>}}
\varphi = 1+\frac{1} {1+\frac{1} {1+\frac{1} {1+\cdots} } }
$$
{{</* /katex */>}}
```
$$
{{< katex block >}}
\varphi = 1+\frac{1} {1+\frac{1} {1+\frac{1} {1+\cdots} } }
$$
{{< /katex >}}

View File

@ -51,6 +51,8 @@ sharing:
pinterest: "تثبيت على بينتريست"
reddit: "نشر على ريديت"
twitter: "تغريد على تويتر"
telegram: "شارك على تيليجرام"
line: "شارك على لاين"
shortcode:
recent_articles: "حديثًا"

View File

@ -51,6 +51,8 @@ sharing:
pinterest: "Пин в Pinterest"
reddit: "Публикуване в Reddit"
twitter: "Туит в Twitter"
telegram: "Споделете в Telegram"
line: Споделете в LINE""
shortcode:
recent_articles: "Последни"

View File

@ -51,6 +51,8 @@ sharing:
pinterest: "পিন্টারেস্টে পিন করুন"
reddit: "রেড্ডিটে জমা দিন"
twitter: "ট্যুইট করুন"
telegram: "টেলিগ্রামে শেয়ার করুন"
line: "লাইনে শেয়ার করুন"
shortcode:
recent_articles: "সাম্প্রতিক"

View File

@ -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é"

View File

@ -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"

View File

@ -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"

View File

@ -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"

View File

@ -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"

View File

@ -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"

View File

@ -51,6 +51,8 @@ sharing:
pinterest: "שיתוף בפינטרסט"
reddit: "שליחה לרדיט"
twitter: "ציוץ בטוויטר"
telegram: "שיתוף בטלגרם"
line: "שיתוף בליין"
shortcode:
recent_articles: "חדשים"

View File

@ -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"

View File

@ -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"

View File

@ -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"

View File

@ -51,6 +51,8 @@ sharing:
pinterest: "Pinterestでピンする"
reddit: "Redditに投稿する"
twitter: "Twitterに投稿する"
telegram: "Telegramでシェアする"
line: "LINEでシェアする"
shortcode:
recent_articles: "最近の記事"

View File

@ -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"

View File

@ -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"

View File

@ -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"

View File

@ -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"

View File

@ -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"

View File

@ -55,6 +55,8 @@ sharing:
pinterest: "Поделиться на Pinterest"
reddit: "Опубликовать на Reddit"
twitter: "Опубликовать на Twitter"
telegram: "Поделиться на Telegram"
line: "Поделиться на LINE"
shortcode:
recent_articles: "Последние"

View File

@ -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"

View File

@ -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"

View File

@ -55,6 +55,8 @@ sharing:
pinterest: "Зберегти на Pinterest"
reddit: "Опублікувати на Reddit"
twitter: "Поширити на Twitter"
telegram: "Поширити на Telegram"
line: "Поширити на LINE"
shortcode:
recent_articles: "Недавні дописи"

View File

@ -50,6 +50,8 @@ sharing:
pinterest: "钉到 Pinterest"
reddit: "提交到 Reddit"
twitter: "分享到 Twitter"
telegram: "分享到 Telegram"
line: "分享到 LINE"
shortcode:
recent_articles: "最近的文章"

View File

@ -51,6 +51,8 @@ sharing:
pinterest: "釘到 Pinterest"
reddit: "發送到 Reddit"
twitter: "推到 Twitter"
telegram: "分享到 Telegram"
line: "分享到 LINE"
shortcode:
recent_articles: "最近的文章"

View File

@ -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 }}
/>
{{ 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 }}
{{ $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>

View File

@ -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 }}

View File

@ -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 }}

View File

@ -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>

View File

@ -86,7 +86,7 @@
{{- else }}
&copy;
{{ now.Format "2006" }}
{{ .Site.Author.name | markdownify | emojify }}
{{ .Site.Language.Params.Author.name | markdownify | emojify }}
{{- end }}
</p>
{{ end }}

View File

@ -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 }}

View File

@ -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 }}

View File

@ -93,6 +93,7 @@
<a
href="{{ .URL }}"
title="{{ .Title }}"
onclick="close_menu()"
{{ with .Params.target }}target="{{ . }}"{{ end }}
>{{ with .Params.icon }}
<span

View File

@ -93,6 +93,7 @@
<a
href="{{ .URL }}"
title="{{ .Title }}"
onclick="close_menu()"
{{ with .Params.target }}target="{{ . }}"{{ end }}
>{{ with .Params.icon }}
<span

View File

@ -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>

View File

@ -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 }}

View File

@ -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 }}

View File

@ -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>

View File

@ -1 +1,8 @@
{{/* Nothing to see here */}}
{{ $mode := .Get 0 }}
{{ if eq $mode "block" }}
$${{.Inner}}$$
{{ else if or (eq $mode "inline") (eq $mode nil) }}
\({{.Inner}}\)
{{ else }}
{{ errorf "Invalid katex mode: expected block or inline" }}
{{ end }}

View File

@ -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"
{{ end }}
width="100%"
height="auto"
style="max-width:{{ div $image.Width 2 }}px; max-height:{{ div $image.Height 2 }}px;"
/>
{{ $altText := "" }}
{{ with .Get "alt" }}
{{ $altText = . }}
{{ else }}
{{ $altText = (.Get "caption") | markdownify | plainify }}
{{ end }}
{{ partial "picture.html" (dict "img" $image "alt" $altText "x2" true) }}
{{- if .Get "href" }}</a>{{ end -}}
{{- if .Get "caption" -}}
<figcaption>

233
package-lock.json generated
View File

@ -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",

View File

@ -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"
}
]
}