diff --git a/.gitea/workflows/prod.yml b/.gitea/workflows/prod.yml index c3c0691..4ffe6d2 100644 --- a/.gitea/workflows/prod.yml +++ b/.gitea/workflows/prod.yml @@ -20,7 +20,7 @@ jobs: run: | cd /opt/data/actions/schuelerzeitung-main rm -rf public - NODE_ENV=production npm i && hugo --minify --gc --baseURL "https://schuelerzeitung-gcg.de/" + hugo --minify --gc --baseURL "https://schuelerzeitung-gcg.de/" - name: deploy run: | cd /opt/data/actions/schuelerzeitung-main/public @@ -45,7 +45,7 @@ jobs: run: | cd /opt/data/actions/schuelerzeitung-main rm -rf test - NODE_ENV=production npm i && hugo --minify --gc --baseURL "https://test.schuelerzeitung-gcg.de/" --buildDrafts --buildFuture -d test + hugo --minify --gc --baseURL "https://test.schuelerzeitung-gcg.de/" --buildDrafts --buildFuture -d test - name: deploy run: | cd /opt/data/actions/schuelerzeitung-main/test diff --git a/.gitignore b/.gitignore index b22c909..6d35fff 100644 --- a/.gitignore +++ b/.gitignore @@ -1,5 +1,4 @@ -hugo_stats.json -.hugo_build.lock -node_modules/ -public/ -resources/ +public +resources + +.hugo_build.lock \ No newline at end of file diff --git a/LICENSE b/LICENSE index f7c0729..4de976a 100644 --- a/LICENSE +++ b/LICENSE @@ -1,21 +1,22 @@ -The MIT License (MIT) +MIT License -Copyright (c) 2023 Georg-Cantor-Gymnasium Halle (Saale) -Copyright (c) 2021 Varun A P +Copyright (c) 2023 "Der Pinguin" +Copyright (c) 2021 Jimmy Cai -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/README.md b/README.md new file mode 100644 index 0000000..24718a5 --- /dev/null +++ b/README.md @@ -0,0 +1,57 @@ +logo + +# Hugo Theme Stack Starter Template + +This is a quick start template for [Hugo theme Stack](https://github.com/CaiJimmy/hugo-theme-stack). It uses [Hugo modules](https://gohugo.io/hugo-modules/) feature to load the theme. + +It comes with a basic theme structure and configuration. GitHub action has been set up to deploy the theme to a public GitHub page automatically. Also, there's a cron job to update the theme automatically everyday. + +## Get started + +1. Click *Use this template*, and create your repository on GitHub. +![Step 1](https://user-images.githubusercontent.com/5889006/156916624-20b2a784-f3a9-4718-aa5f-ce2a436b241f.png) + +2. Once the repository is created, create a GitHub codespace asociated with it. +![Create codespace](https://user-images.githubusercontent.com/5889006/156916672-43b7b6e9-4ffb-4704-b4ba-d5ca40ffcae7.png) + +3. And voila! You're ready to go. The codespace has been configured with the latest version of Hugo extended, just run `hugo server` in the terminal and see your new site in action. + +4. Check `config` folder for the configuration files. You can edit them to suit your needs. Make sure to update the `baseurl` property in `config/_default/config.toml` to your site's URL. + +5. Once you're done editing the site, just commit it and push it. GitHub action will deploy the site automatically to GitHub page asociated with the repository. +![GitHub action](https://user-images.githubusercontent.com/5889006/156916881-90b8bb9b-1925-4e60-9d7a-8026cda729bf.png) + +--- + +In case you don't want to use GitHub codespace, you can also run this template in your local machine. **You need to install Git, Go and Hugo extended locally.** + +## Update theme manually + +Run: + +```bash +hugo mod get -u github.com/CaiJimmy/hugo-theme-stack/v3 +hugo mod tidy +``` + +> This starter template has been configured with `v3` version of theme. Due to the limitation of Go module, once the `v4` or up version of theme is released, you need to update the theme manually. (Modifying `config/module.toml` file) + +## Deploy to another static page hostings + +If you want to build this site using another static page hosting, you need to make sure they have Go installed in the machine. + +
+ Vercel + +You need to overwrite build command to install manually Go: + +``` +amazon-linux-extras install golang1.11 && hugo --gc --minify +``` + +![](https://user-images.githubusercontent.com/5889006/156917172-01e4d418-3469-4ffb-97e4-a905d28b8424.png) + +Make sure also to specify Hugo version in the environment variable `HUGO_VERSION` (Use the latest version of Hugo extended): + +![Environment variable](https://user-images.githubusercontent.com/5889006/156917212-afb7c70d-ab85-480f-8288-b15781a462c0.png) +
diff --git a/assets/css/paginator.css b/assets/css/paginator.css deleted file mode 100644 index e4687c1..0000000 --- a/assets/css/paginator.css +++ /dev/null @@ -1,15 +0,0 @@ -.pagination { - @apply inline-flex border rounded px-1 dark:border-gray-600; -} -.page-item { - @apply mx-0.5 my-1 cursor-pointer rounded hover:bg-gray-800 hover:text-white dark:hover:bg-gray-500 dark:hover:text-white; -} -a.page-link { - @apply px-3 py-1 block; -} -.page-item.active { - @apply bg-gray-800 text-white dark:bg-gray-300 dark:text-gray-900; -} -.page-item.disabled { - @apply text-gray-400 hover:bg-transparent hover:text-gray-400 cursor-not-allowed; -} diff --git a/assets/css/postcss.config.js b/assets/css/postcss.config.js deleted file mode 100644 index efc4841..0000000 --- a/assets/css/postcss.config.js +++ /dev/null @@ -1,13 +0,0 @@ -const themeDir = __dirname + "/../../"; - -module.exports = { - plugins: [ - require("postcss-import")({ - path: [themeDir], - }), - require("tailwindcss")(themeDir + "assets/css/tailwind.config.js"), - require("autoprefixer")({ - path: [themeDir], - }), - ], -}; diff --git a/assets/css/site.css b/assets/css/site.css deleted file mode 100644 index 08cebee..0000000 --- a/assets/css/site.css +++ /dev/null @@ -1,55 +0,0 @@ -/* Custom Styles */ -body { - font-family: "Inter", sans-serif; -} - -/* Fonts */ - -/* inter-300 - latin */ -@font-face { - font-family: "Inter"; - font-style: normal; - font-weight: 300; - src: url("/fonts/inter-v3-latin-300.eot"); /* IE9 Compat Modes */ - src: local(""), - url("/fonts/inter-v3-latin-300.eot?#iefix") format("embedded-opentype"), - /* IE6-IE8 */ url("/fonts/inter-v3-latin-300.woff2") format("woff2"), - /* Super Modern Browsers */ url("/fonts/inter-v3-latin-300.woff") - format("woff"), - /* Modern Browsers */ url("/fonts/inter-v3-latin-300.ttf") - format("truetype"), - /* Safari, Android, iOS */ url("/fonts/inter-v3-latin-300.svg#Inter") - format("svg"); /* Legacy iOS */ -} -/* inter-500 - latin */ -@font-face { - font-family: "Inter"; - font-style: normal; - font-weight: 500; - src: url("/fonts/inter-v3-latin-500.eot"); /* IE9 Compat Modes */ - src: local(""), - url("/fonts/inter-v3-latin-500.eot?#iefix") format("embedded-opentype"), - /* IE6-IE8 */ url("/fonts/inter-v3-latin-500.woff2") format("woff2"), - /* Super Modern Browsers */ url("/fonts/inter-v3-latin-500.woff") - format("woff"), - /* Modern Browsers */ url("/fonts/inter-v3-latin-500.ttf") - format("truetype"), - /* Safari, Android, iOS */ url("/fonts/inter-v3-latin-500.svg#Inter") - format("svg"); /* Legacy iOS */ -} -/* inter-700 - latin */ -@font-face { - font-family: "Inter"; - font-style: normal; - font-weight: 700; - src: url("/fonts/inter-v3-latin-700.eot"); /* IE9 Compat Modes */ - src: local(""), - url("/fonts/inter-v3-latin-700.eot?#iefix") format("embedded-opentype"), - /* IE6-IE8 */ url("/fonts/inter-v3-latin-700.woff2") format("woff2"), - /* Super Modern Browsers */ url("/fonts/inter-v3-latin-700.woff") - format("woff"), - /* Modern Browsers */ url("/fonts/inter-v3-latin-700.ttf") - format("truetype"), - /* Safari, Android, iOS */ url("/fonts/inter-v3-latin-700.svg#Inter") - format("svg"); /* Legacy iOS */ -} diff --git a/assets/css/styles.css b/assets/css/styles.css deleted file mode 100644 index 362532c..0000000 --- a/assets/css/styles.css +++ /dev/null @@ -1,55 +0,0 @@ -/* Tailwind base - put variables under: tailwind.config.js */ -@import "node_modules/tailwindcss/base"; -/* Tailwind component classes registered by plugins*/ -@import "node_modules/tailwindcss/components"; -/* Site Specific */ -@import "assets/css/site"; -/* Paginator */ -@import "assets/css/paginator"; -/* Tailwind's utility classes - generated based on config file */ -@import "node_modules/tailwindcss/utilities"; - -@layer components { - details.toc[open] summary ~ * { - animation: slideUp 0.25s ease-in-out; - } - - @keyframes slideUp { - 0% { - opacity: 0; - transform: translateY(10px); - } - 100% { - opacity: 1; - transform: translateY(0); - } - } - - details.toc[open] summary svg { - @apply duration-200 rotate-180 ease-in-out; - } - - details.toc > ul { - @apply ml-4; - } - - details.toc ul { - @apply list-none; - margin-top: 0.125rem /* 2px */ !important; - margin-bottom: 0.125rem /* 2px */ !important; - } - details.toc ul li { - margin-top: 0.125rem /* 2px */ !important; - margin-bottom: 0.125rem /* 2px */ !important; - } - details.toc ul li:before { - @apply rounded-none bg-gray-400; - } - details.toc ul li a { - @apply no-underline text-gray-700 dark:text-gray-200 text-base; - } - - a:empty { - display: none; - } -} diff --git a/assets/css/tailwind.config.js b/assets/css/tailwind.config.js deleted file mode 100644 index 8c4ca7d..0000000 --- a/assets/css/tailwind.config.js +++ /dev/null @@ -1,105 +0,0 @@ -const themeDir = __dirname + "/../../"; - -module.exports = { - content: { - enabled: process.env.HUGO_ENVIRONMENT === "production", - content: [ - themeDir + "layouts/**/*.html", - themeDir + "content/**/*.html", - "layouts/**/*.html", - "config.toml", - "content/**/*.html", - "assets/js/search.js", - "exampleSite/layouts/**/*.html", - "exampleSite/config.toml", - "exampleSite/content/**/*.html", - ], - }, - darkMode: "class", - theme: { - extend: { - typography: (theme) => ({ - DEFAULT: { - css: [ - { - 'code::before': { - content: '""', - }, - 'code::after': { - content: '""', - }, - } - ] - }, - dark: { - css: [ - { - color: theme("colors.gray.400"), - '[class~="lead"]': { - color: theme("colors.gray.300"), - }, - a: { - color: theme("colors.white"), - }, - strong: { - color: theme("colors.white"), - }, - "ol > li::before": { - color: theme("colors.gray.400"), - }, - "ul > li::before": { - backgroundColor: theme("colors.gray.600"), - }, - hr: { - borderColor: theme("colors.gray.200"), - }, - blockquote: { - color: theme("colors.gray.200"), - borderLeftColor: theme("colors.gray.600"), - }, - h1: { - color: theme("colors.white"), - }, - h2: { - color: theme("colors.white"), - }, - h3: { - color: theme("colors.white"), - }, - h4: { - color: theme("colors.white"), - }, - "figure figcaption": { - color: theme("colors.gray.400"), - }, - code: { - color: theme("colors.white"), - }, - "a code": { - color: theme("colors.white"), - }, - 'code::before': { - content: '""', - }, - 'code::after': { - content: '""', - }, - pre: { - color: theme("colors.gray.200"), - backgroundColor: theme("colors.gray.800"), - }, - thead: { - color: theme("colors.white"), - borderBottomColor: theme("colors.gray.400"), - }, - "tbody tr": { - borderBottomColor: theme("colors.gray.600"), - }, - }, - ], - }, - }), - }, - }, - plugins: [require("@tailwindcss/typography")], -}; diff --git a/assets/icons/brand-instagram.svg b/assets/icons/brand-instagram.svg new file mode 100644 index 0000000..f64c7b3 --- /dev/null +++ b/assets/icons/brand-instagram.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/assets/icons/users-group.svg b/assets/icons/users-group.svg new file mode 100644 index 0000000..2a730de --- /dev/null +++ b/assets/icons/users-group.svg @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/assets/img/avatar.png b/assets/img/avatar.png new file mode 100644 index 0000000..bab4bde Binary files /dev/null and b/assets/img/avatar.png differ diff --git a/static/grafik-circle.webp b/assets/img/grafik-circle.webp similarity index 100% rename from static/grafik-circle.webp rename to assets/img/grafik-circle.webp diff --git a/assets/js/fuse.min.js b/assets/js/fuse.min.js deleted file mode 100644 index 7a2ef00..0000000 --- a/assets/js/fuse.min.js +++ /dev/null @@ -1,9 +0,0 @@ -/** - * Fuse.js v6.4.6 - Lightweight fuzzy-search (http://fusejs.io) - * - * Copyright (c) 2021 Kiro Risk (http://kiro.me) - * All Rights Reserved. Apache Software License 2.0 - * - * http://www.apache.org/licenses/LICENSE-2.0 - */ -var e,t;e=this,t=function(){"use strict";function e(t){return(e="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(t)}function t(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function n(e,t){for(var n=0;ne.length)&&(t=e.length);for(var n=0,r=new Array(t);n0&&void 0!==arguments[0]?arguments[0]:3,t=new Map,n=Math.pow(10,e);return{get:function(e){var r=e.match(I).length;if(t.has(r))return t.get(r);var i=1/Math.sqrt(r),o=parseFloat(Math.round(i*n)/n);return t.set(r,o),o},clear:function(){t.clear()}}}var E=function(){function e(){var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=n.getFn,i=void 0===r?A.getFn:r;t(this,e),this.norm=C(3),this.getFn=i,this.isCreated=!1,this.setIndexRecords()}return r(e,[{key:"setSources",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];this.docs=e}},{key:"setIndexRecords",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];this.records=e}},{key:"setKeys",value:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];this.keys=t,this._keysMap={},t.forEach((function(t,n){e._keysMap[t.id]=n}))}},{key:"create",value:function(){var e=this;!this.isCreated&&this.docs.length&&(this.isCreated=!0,g(this.docs[0])?this.docs.forEach((function(t,n){e._addString(t,n)})):this.docs.forEach((function(t,n){e._addObject(t,n)})),this.norm.clear())}},{key:"add",value:function(e){var t=this.size();g(e)?this._addString(e,t):this._addObject(e,t)}},{key:"removeAt",value:function(e){this.records.splice(e,1);for(var t=e,n=this.size();t2&&void 0!==arguments[2]?arguments[2]:{},r=n.getFn,i=void 0===r?A.getFn:r,o=new E({getFn:i});return o.setKeys(e.map(_)),o.setSources(t),o.create(),o}function R(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=t.errors,r=void 0===n?0:n,i=t.currentLocation,o=void 0===i?0:i,c=t.expectedLocation,a=void 0===c?0:c,s=t.distance,u=void 0===s?A.distance:s,h=t.ignoreLocation,f=void 0===h?A.ignoreLocation:h,l=r/e.length;if(f)return l;var d=Math.abs(a-o);return u?l+d/u:d?1:l}function F(){for(var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:A.minMatchCharLength,n=[],r=-1,i=-1,o=0,c=e.length;o=t&&n.push([r,i]),r=-1)}return e[o-1]&&o-r>=t&&n.push([r,o-1]),n}function P(e){for(var t={},n=0,r=e.length;n1&&void 0!==arguments[1]?arguments[1]:{},o=i.location,c=void 0===o?A.location:o,a=i.threshold,s=void 0===a?A.threshold:a,u=i.distance,h=void 0===u?A.distance:u,f=i.includeMatches,l=void 0===f?A.includeMatches:f,d=i.findAllMatches,v=void 0===d?A.findAllMatches:d,g=i.minMatchCharLength,y=void 0===g?A.minMatchCharLength:g,p=i.isCaseSensitive,m=void 0===p?A.isCaseSensitive:p,k=i.ignoreLocation,M=void 0===k?A.ignoreLocation:k;if(t(this,e),this.options={location:c,threshold:s,distance:h,includeMatches:l,findAllMatches:v,minMatchCharLength:y,isCaseSensitive:m,ignoreLocation:M},this.pattern=m?n:n.toLowerCase(),this.chunks=[],this.pattern.length){var b=function(e,t){r.chunks.push({pattern:e,alphabet:P(e),startIndex:t})},x=this.pattern.length;if(x>32){for(var L=0,S=x%32,w=x-S;L3&&void 0!==arguments[3]?arguments[3]:{},i=r.location,o=void 0===i?A.location:i,c=r.distance,a=void 0===c?A.distance:c,s=r.threshold,u=void 0===s?A.threshold:s,h=r.findAllMatches,f=void 0===h?A.findAllMatches:h,l=r.minMatchCharLength,d=void 0===l?A.minMatchCharLength:l,v=r.includeMatches,g=void 0===v?A.includeMatches:v,y=r.ignoreLocation,p=void 0===y?A.ignoreLocation:y;if(t.length>32)throw new Error(L(32));for(var m,k=t.length,M=e.length,b=Math.max(0,Math.min(o,M)),x=u,S=b,w=d>1||g,_=w?Array(M):[];(m=e.indexOf(t,S))>-1;){var O=R(t,{currentLocation:m,expectedLocation:b,distance:a,ignoreLocation:p});if(x=Math.min(O,x),S=m+k,w)for(var j=0;j=K;J-=1){var T=J-1,U=n[e.charAt(T)];if(w&&(_[T]=+!!U),W[J]=(W[J+1]<<1|1)&U,P&&(W[J]|=(I[J+1]|I[J])<<1|1|I[J+1]),W[J]&$&&(C=R(t,{errors:P,currentLocation:T,expectedLocation:b,distance:a,ignoreLocation:p}))<=x){if(x=C,(S=T)<=b)break;K=Math.max(1,2*b-S)}}var V=R(t,{errors:P+1,currentLocation:b,expectedLocation:b,distance:a,ignoreLocation:p});if(V>x)break;I=W}var B={isMatch:S>=0,score:Math.max(.001,C)};if(w){var G=F(_,d);G.length?g&&(B.indices=G):B.isMatch=!1}return B}(e,n,i,{location:c+o,distance:a,threshold:s,findAllMatches:u,minMatchCharLength:h,includeMatches:r,ignoreLocation:f}),p=y.isMatch,m=y.score,k=y.indices;p&&(g=!0),v+=m,p&&k&&(d=[].concat(l(d),l(k)))}));var y={isMatch:g,score:g?v/this.chunks.length:1};return g&&r&&(y.indices=d),y}}]),e}(),D=function(){function e(n){t(this,e),this.pattern=n}return r(e,[{key:"search",value:function(){}}],[{key:"isMultiMatch",value:function(e){return z(e,this.multiRegex)}},{key:"isSingleMatch",value:function(e){return z(e,this.singleRegex)}}]),e}();function z(e,t){var n=e.match(t);return n?n[1]:null}var K=function(e){a(i,e);var n=f(i);function i(e){return t(this,i),n.call(this,e)}return r(i,[{key:"search",value:function(e){var t=e===this.pattern;return{isMatch:t,score:t?0:1,indices:[0,this.pattern.length-1]}}}],[{key:"type",get:function(){return"exact"}},{key:"multiRegex",get:function(){return/^="(.*)"$/}},{key:"singleRegex",get:function(){return/^=(.*)$/}}]),i}(D),q=function(e){a(i,e);var n=f(i);function i(e){return t(this,i),n.call(this,e)}return r(i,[{key:"search",value:function(e){var t=-1===e.indexOf(this.pattern);return{isMatch:t,score:t?0:1,indices:[0,e.length-1]}}}],[{key:"type",get:function(){return"inverse-exact"}},{key:"multiRegex",get:function(){return/^!"(.*)"$/}},{key:"singleRegex",get:function(){return/^!(.*)$/}}]),i}(D),W=function(e){a(i,e);var n=f(i);function i(e){return t(this,i),n.call(this,e)}return r(i,[{key:"search",value:function(e){var t=e.startsWith(this.pattern);return{isMatch:t,score:t?0:1,indices:[0,this.pattern.length-1]}}}],[{key:"type",get:function(){return"prefix-exact"}},{key:"multiRegex",get:function(){return/^\^"(.*)"$/}},{key:"singleRegex",get:function(){return/^\^(.*)$/}}]),i}(D),J=function(e){a(i,e);var n=f(i);function i(e){return t(this,i),n.call(this,e)}return r(i,[{key:"search",value:function(e){var t=!e.startsWith(this.pattern);return{isMatch:t,score:t?0:1,indices:[0,e.length-1]}}}],[{key:"type",get:function(){return"inverse-prefix-exact"}},{key:"multiRegex",get:function(){return/^!\^"(.*)"$/}},{key:"singleRegex",get:function(){return/^!\^(.*)$/}}]),i}(D),T=function(e){a(i,e);var n=f(i);function i(e){return t(this,i),n.call(this,e)}return r(i,[{key:"search",value:function(e){var t=e.endsWith(this.pattern);return{isMatch:t,score:t?0:1,indices:[e.length-this.pattern.length,e.length-1]}}}],[{key:"type",get:function(){return"suffix-exact"}},{key:"multiRegex",get:function(){return/^"(.*)"\$$/}},{key:"singleRegex",get:function(){return/^(.*)\$$/}}]),i}(D),U=function(e){a(i,e);var n=f(i);function i(e){return t(this,i),n.call(this,e)}return r(i,[{key:"search",value:function(e){var t=!e.endsWith(this.pattern);return{isMatch:t,score:t?0:1,indices:[0,e.length-1]}}}],[{key:"type",get:function(){return"inverse-suffix-exact"}},{key:"multiRegex",get:function(){return/^!"(.*)"\$$/}},{key:"singleRegex",get:function(){return/^!(.*)\$$/}}]),i}(D),V=function(e){a(i,e);var n=f(i);function i(e){var r,o=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},c=o.location,a=void 0===c?A.location:c,s=o.threshold,u=void 0===s?A.threshold:s,h=o.distance,f=void 0===h?A.distance:h,l=o.includeMatches,d=void 0===l?A.includeMatches:l,v=o.findAllMatches,g=void 0===v?A.findAllMatches:v,y=o.minMatchCharLength,p=void 0===y?A.minMatchCharLength:y,m=o.isCaseSensitive,k=void 0===m?A.isCaseSensitive:m,M=o.ignoreLocation,b=void 0===M?A.ignoreLocation:M;return t(this,i),(r=n.call(this,e))._bitapSearch=new N(e,{location:a,threshold:u,distance:f,includeMatches:d,findAllMatches:g,minMatchCharLength:p,isCaseSensitive:k,ignoreLocation:b}),r}return r(i,[{key:"search",value:function(e){return this._bitapSearch.searchIn(e)}}],[{key:"type",get:function(){return"fuzzy"}},{key:"multiRegex",get:function(){return/^"(.*)"$/}},{key:"singleRegex",get:function(){return/^(.*)$/}}]),i}(D),B=function(e){a(i,e);var n=f(i);function i(e){return t(this,i),n.call(this,e)}return r(i,[{key:"search",value:function(e){for(var t,n=0,r=[],i=this.pattern.length;(t=e.indexOf(this.pattern,n))>-1;)n=t+i,r.push([t,n-1]);var o=!!r.length;return{isMatch:o,score:o?0:1,indices:r}}}],[{key:"type",get:function(){return"include"}},{key:"multiRegex",get:function(){return/^'"(.*)"$/}},{key:"singleRegex",get:function(){return/^'(.*)$/}}]),i}(D),G=[K,B,W,J,U,T,q,V],H=G.length,Q=/ +(?=([^\"]*\"[^\"]*\")*[^\"]*$)/;function X(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return e.split("|").map((function(e){for(var n=e.trim().split(Q).filter((function(e){return e&&!!e.trim()})),r=[],i=0,o=n.length;i1&&void 0!==arguments[1]?arguments[1]:{},i=r.isCaseSensitive,o=void 0===i?A.isCaseSensitive:i,c=r.includeMatches,a=void 0===c?A.includeMatches:c,s=r.minMatchCharLength,u=void 0===s?A.minMatchCharLength:s,h=r.ignoreLocation,f=void 0===h?A.ignoreLocation:h,l=r.findAllMatches,d=void 0===l?A.findAllMatches:l,v=r.location,g=void 0===v?A.location:v,y=r.threshold,p=void 0===y?A.threshold:y,m=r.distance,k=void 0===m?A.distance:m;t(this,e),this.query=null,this.options={isCaseSensitive:o,includeMatches:a,minMatchCharLength:u,findAllMatches:d,ignoreLocation:f,location:g,threshold:p,distance:k},this.pattern=o?n:n.toLowerCase(),this.query=X(this.pattern,this.options)}return r(e,[{key:"searchIn",value:function(e){var t=this.query;if(!t)return{isMatch:!1,score:1};var n=this.options,r=n.includeMatches;e=n.isCaseSensitive?e:e.toLowerCase();for(var i=0,o=[],c=0,a=0,s=t.length;a-1&&(n.refIndex=e.idx),t.matches.push(n)}}))}function le(e,t){t.score=e.score}function de(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=n.includeMatches,i=void 0===r?A.includeMatches:r,o=n.includeScore,c=void 0===o?A.includeScore:o,a=[];return i&&a.push(fe),c&&a.push(le),e.map((function(e){var n=e.idx,r={item:t[n],refIndex:n};return a.length&&a.forEach((function(t){t(e,r)})),r}))}var ve=function(){function e(n){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},i=arguments.length>2?arguments[2]:void 0;t(this,e),this.options=c({},A,{},r),this.options.useExtendedSearch,this._keyStore=new w(this.options.keys),this.setCollection(n,i)}return r(e,[{key:"setCollection",value:function(e,t){if(this._docs=e,t&&!(t instanceof E))throw new Error("Incorrect 'index' type");this._myIndex=t||$(this.options.keys,this._docs,{getFn:this.options.getFn})}},{key:"add",value:function(e){k(e)&&(this._docs.push(e),this._myIndex.add(e))}},{key:"remove",value:function(){for(var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:function(){return!1},t=[],n=0,r=this._docs.length;n1&&void 0!==arguments[1]?arguments[1]:{},n=t.limit,r=void 0===n?-1:n,i=this.options,o=i.includeMatches,c=i.includeScore,a=i.shouldSort,s=i.sortFn,u=i.ignoreFieldNorm,h=g(e)?g(this._docs[0])?this._searchStringList(e):this._searchObjectList(e):this._searchLogical(e);return he(h,{ignoreFieldNorm:u}),a&&h.sort(s),y(r)&&r>-1&&(h=h.slice(0,r)),de(h,this._docs,{includeMatches:o,includeScore:c})}},{key:"_searchStringList",value:function(e){var t=te(e,this.options),n=this._myIndex.records,r=[];return n.forEach((function(e){var n=e.v,i=e.i,o=e.n;if(k(n)){var c=t.searchIn(n),a=c.isMatch,s=c.score,u=c.indices;a&&r.push({item:n,idx:i,matches:[{score:s,value:n,norm:o,indices:u}]})}})),r}},{key:"_searchLogical",value:function(e){var t=this,n=function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=n.auto,i=void 0===r||r,o=function e(n){var r=Object.keys(n),o=ae(n);if(!o&&r.length>1&&!ce(n))return e(ue(n));if(se(n)){var c=o?n[ie]:r[0],a=o?n[oe]:n[c];if(!g(a))throw new Error(x(c));var s={keyId:j(c),pattern:a};return i&&(s.searcher=te(a,t)),s}var u={children:[],operator:r[0]};return r.forEach((function(t){var r=n[t];v(r)&&r.forEach((function(t){u.children.push(e(t))}))})),u};return ce(e)||(e=ue(e)),o(e)}(e,this.options),r=this._myIndex.records,i={},o=[];return r.forEach((function(e){var r=e.$,c=e.i;if(k(r)){var a=function e(n,r,i){if(!n.children){var o=n.keyId,c=n.searcher,a=t._findMatches({key:t._keyStore.get(o),value:t._myIndex.getValueForItemAtKeyId(r,o),searcher:c});return a&&a.length?[{idx:i,item:r,matches:a}]:[]}switch(n.operator){case ne:for(var s=[],u=0,h=n.children.length;u1&&void 0!==arguments[1]?arguments[1]:{},n=t.getFn,r=void 0===n?A.getFn:n,i=e.keys,o=e.records,c=new E({getFn:r});return c.setKeys(i),c.setIndexRecords(o),c},ve.config=A,function(){ee.push.apply(ee,arguments)}(Z),ve},"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e=e||self).Fuse=t(); diff --git a/assets/js/search.js b/assets/js/search.js deleted file mode 100644 index 18caeb0..0000000 --- a/assets/js/search.js +++ /dev/null @@ -1,174 +0,0 @@ -// Credits to search implementation: https://gist.github.com/cmod/5410eae147e4318164258742dd053993 - -var fuse; // holds our search engine -var searchVisible = false; -var firstRun = true; // allow us to delay loading json data unless search activated -var list = document.querySelector('.search-list'); // targets the
    -var first = list.firstChild; // first child of search list -var last = list.lastChild; // last child of search list -var maininput = document.querySelector('.search-ui input'); // input box for search -var searchResultsHeading = document.querySelector('.search-results'); // input box for search -var noResults = document.querySelector('.no-results'); // input box for search -var resultsAvailable = false; // Did we get any search results? - -// ========================================== -// The main keyboard event listener running the show -// -document.querySelector('.open-search').addEventListener('click', openSearch); -document.querySelector('.close-search').addEventListener('click', closeSearch); - -function closeSearch() { - document.querySelector('.search-ui').classList.add("hidden"); - document.activeElement.blur(); // remove focus from search box - searchVisible = false; // search not visible - searchResultsHeading.classList.add('hidden'); -} - -function openSearch() { - // Load json search index if first time invoking search - // Means we don't load json unless searches are going to happen; keep user payload small unless needed - if (firstRun) { - loadSearch(); // loads our json data and builds fuse.js search index - firstRun = false; // let's never do this again - } - - //Close the mobile menu when search is click. - mobileMenu.classList.toggle('hidden'); - - // Toggle visibility of search box - if (!searchVisible) { - document.querySelector('.search-ui').classList.remove("hidden"); - document.querySelector('.search-ui input').focus(); // put focus in input box so you can just start typing - searchVisible = true; // search visible - } -} - -document.addEventListener('keydown', function (event) { - - if (event.metaKey && event.which === 191) { - openSearch() - } - - // Allow ESC (27) to close search box - if (event.keyCode == 27) { - if (searchVisible) { - document.querySelector('.search-ui').classList.add("hidden"); - document.activeElement.blur(); - searchVisible = false; - searchResultsHeading.classList.add('hidden'); - } - } - - // DOWN (40) arrow - if (event.keyCode == 40) { - if (searchVisible && resultsAvailable) { - console.log("down"); - event.preventDefault(); // stop window from scrolling - if (document.activeElement == maininput) { first.focus(); } // if the currently focused element is the main input --> focus the first
  • - else if (document.activeElement == last) { last.focus(); } // if we're at the bottom, stay there - else { document.activeElement.parentElement.nextSibling.firstElementChild.focus(); } // otherwise select the next search result - } - } - - // UP (38) arrow - if (event.keyCode == 38) { - if (searchVisible && resultsAvailable) { - event.preventDefault(); // stop window from scrolling - if (document.activeElement == maininput) { maininput.focus(); } // If we're in the input box, do nothing - else if (document.activeElement == first) { maininput.focus(); } // If we're at the first item, go to input box - else { document.activeElement.parentElement.previousSibling.firstElementChild.focus(); } // Otherwise, select the search result above the current active one - } - } -}) - - -// ========================================== -// execute search as each character is typed -// -document.querySelector('.search-ui input').onkeyup = function (e) { - executeSearch(this.value); -} - - -// ========================================== -// fetch some json without jquery -// -function fetchJSONFile(path, callback) { - var httpRequest = new XMLHttpRequest(); - httpRequest.onreadystatechange = function () { - if (httpRequest.readyState === 4) { - if (httpRequest.status === 200) { - var data = JSON.parse(httpRequest.responseText); - if (callback) callback(data); - } - } - }; - httpRequest.open('GET', path); - httpRequest.send(); -} - - -// ========================================== -// load our search index, only executed once -// on first call of search box (CMD-/) -// -function loadSearch() { - const lang = document.querySelector('head > meta[name="lang"]')?.getAttribute?.('content') - fetchJSONFile(`${lang ? "/" + lang : ""}/index.json`, function (data) { - - var options = { // fuse.js options; check fuse.js website for details - shouldSort: true, - location: 0, - distance: 100, - threshold: 0.4, - minMatchCharLength: 2, - keys: [ - 'title', - 'permalink', - 'contents' - ] - }; - fuse = new Fuse(data, options); // build the index from the json file - }); -} - - -// ========================================== -// using the index we loaded on CMD-/, run -// a search query (for "term") every time a letter is typed -// in the search box -// -function executeSearch(term) { - let results = fuse.search(term); // the actual query being run using fuse.js - let searchitems = ''; // our results bucket - - if (results.length === 0) { // no results based on what was typed into the input box - resultsAvailable = false; - searchitems = ''; - if (term !== "") { - noResults.classList.remove('hidden') - } else { - noResults.classList.add('hidden') - } - } else { // build our html - noResults.classList.add('hidden') - if (term !== "") { - searchResultsHeading.classList.remove('hidden'); - } - - for (let item in results.slice(0, 5)) { // only show first 5 results - const title = '
    ' + results[item].item.title + '
    '; - const date = results[item].item.date ? '
    ' + new Date(results[item].item.date).toUTCString().substring(0, 16) + '
    ' : ''; - const contents = '
    ' + results[item].item.contents + '
    '; - - searchitems = searchitems + '
  • ' + title + '' + date + contents + '
  • '; - } - resultsAvailable = true; - } - - list.innerHTML = searchitems; - if (results.length > 0) { - first = list.firstChild.firstElementChild; // first result container — used for checking against keyboard up/down location - last = list.lastChild.firstElementChild; // last result container — used for checking against keyboard up/down location - } -} diff --git a/assets/jsconfig.json b/assets/jsconfig.json new file mode 100644 index 0000000..fb2c4db --- /dev/null +++ b/assets/jsconfig.json @@ -0,0 +1,10 @@ +{ + "compilerOptions": { + "baseUrl": ".", + "paths": { + "*": [ + "../../../.cache/hugo_cache/modules/filecache/modules/pkg/mod/github.com/!cai!jimmy/hugo-theme-stack/v3@v3.21.0/assets/*" + ] + } + } +} \ No newline at end of file diff --git a/assets/scss/custom.scss b/assets/scss/custom.scss new file mode 100644 index 0000000..5b0c342 --- /dev/null +++ b/assets/scss/custom.scss @@ -0,0 +1,14 @@ +/* + You can add your own custom styles here. +*/ +.left-sidebar { + --sidebar-avatar-size: 100%; + + @include respond(2xl) { + --sidebar-avatar-size: 100%; + } +} + +.sidebar header .site-avatar { + height: auto; +} \ No newline at end of file diff --git a/config.toml b/config.toml deleted file mode 100644 index 4c88edd..0000000 --- a/config.toml +++ /dev/null @@ -1,110 +0,0 @@ -baseurl = "https://schuelerzeitung-gcg.de" -metaDataFormat = "yaml" - -DefaultContentLanguage = "de" -DefaultContentLanguageInSubdir = false -enableEmoji = true -[languages] - [languages.de] - contentDir = "content/de" # Deutsch - weight = 2 - languageName = "Deutsch" - title = "Der Pinguin - Die Schülerzeitung des GCG" - description = "Modernes Blog-Theme für Ihre Hugo-Site." - [languages.de.params] - introTitle = "Hi! Willkommen beim πnguin!" - introSubtitle = "Wir sind die Schülerzeitung des Georg-Cantor-Gymnasiums, gemacht von und für Schüler:innen." - introPhoto = "/grafik-circle.webp" - logo = "/logo.png" - [[languages.de.menu.main]] - name = "Artikel" - url = "blog" - weight = 1 - - [[languages.de.menu.main]] - name = "Über uns" - url = "page/about/" - weight = 2 - - [[languages.de.menu.main]] - name = "Tags" - url = "tags" - weight = 3 - -[params] - # Enable the darkmode toggle in header - darkModeToggle = true - - # Enable search in header - enableSearch = true - - # Option to customize the search parameters of a page - # Below are the supported options; Note that including entire content - # may slowdown the loading of search results - # Title of page is included by default - searchKeys = [ - "tags", - "date", - "categories", - "summary", - "content", - "link", - "author" - ] - - # Custom copyright - optional - copyright = "Copyright © 2023 - Der πnguin - Made with :heart:, [Blist](https://github.com/apvarun/blist-hugo-theme) and [Hugo](https://gohugo.io)" - favicon = "/favicon.svg" - - # Color for the intro details and social links block, not applicable for dark mode - # Supported values: Any color from TailwindCSS default colors - # Reference: https://tailwindcss.com/docs/customizing-colors - ascentColor = "bg-blue-100" - - # The page bundle that is shown on the front page - frontBundle = "blog" - - # Used to hide the post metadata such as posted date, reading time and word count - # Can be used at site level or page level - hideMeta = false - - # To hide "Other languages" option if the post is available in multiple languages - # Can be used at site level or page level - hideOtherLanguages = true - - # Add support for Table of contents - # Can be added to a page level also in markdown frontmatter - toc = true - - # Hides the thumbnail in post view - # Thumbnails in home and blog pages will still be shown - # This setting can also be in page's markdown file - hidePageThumbnail = false - -# Comments system -[params.comments] - system = "cactus.chat" - siteName = "schuelerzeitung-gcg.de" - -[params.homepage.social] - # Global params common for both languages - title = "Es gibt mehr von uns!" - description = "Die Schülerzeitung ist auch auf anderen Plattformen verfügbar" - - [[params.homepage.social.icons]] - website = "instagram" - url = "https://instagram.com/schuelerzeitung.gcg/" - -[build] - writeStats = true - -[outputs] - home = ["HTML", "RSS", "JSON"] - -# syntax highlight settings -[markup] - [markup.highlight] - style = "dracula" - [markup.goldmark.renderer] - # Enable to include inline HTML - unsafe = true diff --git a/config/_default/_languages.toml b/config/_default/_languages.toml new file mode 100644 index 0000000..a21370f --- /dev/null +++ b/config/_default/_languages.toml @@ -0,0 +1,6 @@ +# Rename this file to languages.toml to enable multilingual support +[de] +languageName = "Deutsch" +languagedirection = "ltr" +title = "Der πnguin" +weight = 1 diff --git a/config/_default/config.toml b/config/_default/config.toml new file mode 100644 index 0000000..c008fc8 --- /dev/null +++ b/config/_default/config.toml @@ -0,0 +1,9 @@ +# Change baseurl before deploy +baseurl = "https://schuelerzeitung-gcg.de" +languageCode = "de-de" +paginate = 5 +title = "Der πnguin" + +# Theme i18n support +# Available values: en, fr, id, ja, ko, pt-br, zh-cn, zh-tw, es, de, nl, it, th, el, uk, ar +defaultContentLanguage = "de" \ No newline at end of file diff --git a/config/_default/markup.toml b/config/_default/markup.toml new file mode 100644 index 0000000..ec22d56 --- /dev/null +++ b/config/_default/markup.toml @@ -0,0 +1,17 @@ +# Markdown renderer configuration +[goldmark.renderer] +unsafe = true + +[tableOfContents] +endLevel = 4 +ordered = true +startLevel = 2 + +[highlight] +noClasses = false +codeFences = true +guessSyntax = true +lineNoStart = 1 +lineNos = true +lineNumbersInTable = true +tabWidth = 4 diff --git a/config/_default/menu.toml b/config/_default/menu.toml new file mode 100644 index 0000000..f45c22b --- /dev/null +++ b/config/_default/menu.toml @@ -0,0 +1,16 @@ +# Configure main menu and social menu +#[[main]] +#identifier = "home" +#name = "Home" +#url = "/" +#[main.params] +#icon = "home" +#newtab = true + +[[social]] +identifier = "instagram" +name = "Instagram" +url = "https://instagram.com/schuelerzeitung.gcg/" + +[social.params] +icon = "brand-instagram" diff --git a/config/_default/module.toml b/config/_default/module.toml new file mode 100644 index 0000000..f13256c --- /dev/null +++ b/config/_default/module.toml @@ -0,0 +1,2 @@ +[[imports]] +path = "github.com/CaiJimmy/hugo-theme-stack/v3" diff --git a/config/_default/params.toml b/config/_default/params.toml new file mode 100644 index 0000000..1880f84 --- /dev/null +++ b/config/_default/params.toml @@ -0,0 +1,148 @@ +# Pages placed under these sections will be shown on homepage and archive page. +mainSections = ["post"] +# Output page's full content in RSS. +rssFullContent = true +favicon = "/favicon.png" + +[footer] +since = 2023 + +[dateFormat] +published = "02. Jan 2006" +lastUpdated = "02. Jan 2006 15:04 MST" + +[sidebar] +emoji = "" +subtitle = "Wir sind die Schülerzeitung des Georg-Cantor-Gymnasiums, gemacht von und für Schüler:innen." + +[sidebar.avatar] +enabled = true +local = true +src = "img/grafik-circle.webp" + +[article] +math = false +readingTime = true + +[article.license] +enabled = false +default = "Licensed under CC BY-NC-SA 4.0" + +## Widgets +[[widgets.homepage]] +type = "search" + +[[widgets.homepage]] +type = "archives" + +[widgets.homepage.params] +limit = 5 + +[[widgets.homepage]] +type = "categories" + +[widgets.homepage.params] +limit = 10 + +[[widgets.homepage]] +type = "tag-cloud" + +[widgets.homepage.params] +limit = 10 + +[[widgets.page]] +type = "toc" + +[opengraph.twitter] +site = "" +card = "summary_large_image" + +[defaultImage.opengraph] +enabled = false +local = false +src = "" + +[colorScheme] +toggle = true +default = "auto" + +[imageProcessing.cover] +enabled = true + +[imageProcessing.content] +enabled = true + +## Comments +[comments] +enabled = false +provider = "disqus" + +[comments.disqusjs] +shortname = "" +apiUrl = "" +apiKey = "" +admin = "" +adminLabel = "" + +[comments.utterances] +repo = "" +issueTerm = "pathname" +label = "" + +[comments.remark42] +host = "" +site = "" +locale = "" + +[comments.vssue] +platform = "" +owner = "" +repo = "" +clientId = "" +clientSecret = "" +autoCreateIssue = false + +[comments.waline] +serverURL = "" +lang = "" +visitor = "" +avatar = "" +emoji = ["https://cdn.jsdelivr.net/gh/walinejs/emojis/weibo"] +requiredMeta = ["name", "email", "url"] +placeholder = "" + +[comments.waline.locale] +admin = "Admin" + +[comments.twikoo] +envId = "" +region = "" +path = "" +lang = "" + +[comments.cactus] +defaultHomeserverUrl = "https://matrix.cactus.chat:8448" +serverName = "cactus.chat" +siteName = "" + +[comments.giscus] +repo = "" +repoID = "" +category = "" +categoryID = "" +mapping = "" +lightTheme = "" +darkTheme = "" +reactionsEnabled = 1 +emitMetadata = 0 + +[comments.gitalk] +owner = "" +admin = "" +repo = "" +clientID = "" +clientSecret = "" + +[comments.cusdis] +host = "" +id = "" diff --git a/config/_default/permalinks.toml b/config/_default/permalinks.toml new file mode 100644 index 0000000..2499a7e --- /dev/null +++ b/config/_default/permalinks.toml @@ -0,0 +1,3 @@ +# Permalinks format of each content section +post = "/p/:slug/" +page = "/:slug/" \ No newline at end of file diff --git a/config/_default/related.toml b/config/_default/related.toml new file mode 100644 index 0000000..ae9f69a --- /dev/null +++ b/config/_default/related.toml @@ -0,0 +1,12 @@ +# Related contents configuration +includeNewer = true +threshold = 60 +toLower = false + +[[indices]] +name = "tags" +weight = 100 + +[[indices]] +name = "categories" +weight = 200 diff --git a/content/_index.md b/content/_index.md new file mode 100644 index 0000000..bd2fb38 --- /dev/null +++ b/content/_index.md @@ -0,0 +1,8 @@ +--- +menu: + main: + name: Startseite + weight: 1 + params: + icon: home +--- \ No newline at end of file diff --git a/content/de/admin/_index.md b/content/admin/_index.md similarity index 100% rename from content/de/admin/_index.md rename to content/admin/_index.md diff --git a/content/categories/_index.md b/content/categories/_index.md new file mode 100644 index 0000000..bfac769 --- /dev/null +++ b/content/categories/_index.md @@ -0,0 +1,3 @@ +--- +title: Kategorien +--- \ No newline at end of file diff --git a/content/de/blog/_index.md b/content/de/blog/_index.md deleted file mode 100644 index ad80dbb..0000000 --- a/content/de/blog/_index.md +++ /dev/null @@ -1,3 +0,0 @@ ---- -title: Artikel ---- diff --git a/content/de/page/about.md b/content/de/page/about.md deleted file mode 100644 index a530624..0000000 --- a/content/de/page/about.md +++ /dev/null @@ -1,41 +0,0 @@ ---- -title: Über uns -draft: false -date: 2023-03-26 -author: Denys Konovalov -description: null -keywords: - - über-uns - - team ---- -Hi! Willkommen beim πnguin! - -Wir sind die Schülerzeitung des Georg-Cantor-Gymnasiums, gemacht von und für Schüler:innen. - -Bei uns können Schüler und Schülerinnen eigene Texte verfassen und ihrem Interesse am Journalismus nachgehen. - -Die fertigen Ausgaben werden auf dieser Website, auf Instagram ([[@schuelerzeitung.gcg](@schuelerzeitung.gcg)](https://instagram.com/schuelerzeitung.gcg)) und als analoge Ausgaben in der Lernwerkstatt veröffentlicht. - -Unter dem Titel der Pinguin, unserem Schulmaskottchen, veröffentlichen wir Texte über Bücher, Spiele oder auch über unser Schulleben. Neue Ideen sind uns jederzeit willkommen. - -## Kontakt - -Anmeldung über [schuelerzeitung@cantor-gymnasium.de](schuelerzeitung@cantor-gymnasium.de) mit Name, Klasse und Handynummer. - -Betreuer: - -**Herr A. Sprawe** -_sprawe@cantor-gymnasium.de_ -Sprechzeit: _Donnerstag, 4. Stunde + 2. Hofpause_ - -## Mitwirkende - -Beteiligte, die namentlich genannt werden wollten, sind hier aufgelistet. - -- **Lilly Meißner** (Kl. 9) - Chefredakteurin -- **Adele Noelke** (Kl. 11) - Design & Grafik -- **Denys Konovalov** (Kl. 9) - Internet-Auftritt - - - - diff --git a/content/page/about/index.md b/content/page/about/index.md new file mode 100644 index 0000000..31e6de4 --- /dev/null +++ b/content/page/about/index.md @@ -0,0 +1,45 @@ +--- +title: Über uns +draft: false +date: 2023-10-21 +description: null +tags: + - Team +show-in-menu: true +menu: + main: + weight: 3 + params: + icon: users-group +--- +Hi! Willkommen beim πnguin! + +Wir sind die Schülerzeitung des Georg-Cantor-Gymnasiums, gemacht von und für Schüler:innen. + +Bei uns können Schüler und Schülerinnen eigene Texte verfassen und ihrem Interesse am Journalismus nachgehen. + +Die fertigen Ausgaben werden auf dieser Website, auf Instagram ([@schuelerzeitung.gcg](https://instagram.com/schuelerzeitung.gcg)) und als analoge Ausgaben in der Lernwerkstatt veröffentlicht. + +Unter dem Titel "Der Pinguin", unserem Schulmaskottchen, veröffentlichen wir Texte über Bücher, Spiele oder auch über unser Schulleben. Neue Ideen sind uns jederzeit willkommen. + +## Kontakt + +Anmeldung über [schuelerzeitung@cantor-gymnasium.de](mailto:schuelerzeitung@cantor-gymnasium.de) mit Name, Klasse und Handynummer. + +> ### Betreuer +> +>**Herr A. Sprawe** +>_[sprawe@cantor-gymnasium.de](mailto:sprawe@cantor-gymnasium.de)_ +> Sprechzeit: _Donnerstag, 4. Stunde + 2. Hofpause_ + +## Mitwirkende + +Beteiligte, die namentlich genannt werden wollten, sind hier aufgelistet. + +- **Lilly Meißner** (Kl. 10) - Chefredakteurin +- **Adele Noelke** (Kl. 12) - Design & Grafik +- **Denys Konovalov** (Kl. 10) - Internet-Auftritt + + + + diff --git a/content/page/archives/index.md b/content/page/archives/index.md new file mode 100644 index 0000000..3893040 --- /dev/null +++ b/content/page/archives/index.md @@ -0,0 +1,15 @@ +--- +title: Archiv +date: 2022-03-06 +layout: archives +slug: archives +draft: false +description: Interne Seite, nicht bearbeiten! +show-in-menu: true +menu: + main: + weight: 2 + params: + icon: archives +--- +Platzhalter diff --git a/content/page/search/index.md b/content/page/search/index.md new file mode 100644 index 0000000..55c0842 --- /dev/null +++ b/content/page/search/index.md @@ -0,0 +1,18 @@ +--- +title: Suche +slug: search +layout: search +outputs: + - html + - json +draft: false +date: 2023-10-21 +description: Interne Seite, nicht bearbeiten! +show-in-menu: true +menu: + main: + weight: 3 + params: + icon: search +--- +Platzhalter diff --git a/static/buchempfehlung-2023-01.webp b/content/post/buchempfehlung-2023-1/buchempfehlung-2023-01.webp similarity index 100% rename from static/buchempfehlung-2023-01.webp rename to content/post/buchempfehlung-2023-1/buchempfehlung-2023-01.webp diff --git a/content/de/blog/buchempfehlung-2023-1.md b/content/post/buchempfehlung-2023-1/index.md similarity index 93% rename from content/de/blog/buchempfehlung-2023-1.md rename to content/post/buchempfehlung-2023-1/index.md index 0a524b3..6d32ff2 100644 --- a/content/de/blog/buchempfehlung-2023-1.md +++ b/content/post/buchempfehlung-2023-1/index.md @@ -1,17 +1,18 @@ --- -title: "Buchempfehlung: The inheritance Games" +title: "The Inheritance Games" draft: false date: 2023-02-16 -author: "" description: "" -thumbnail: /buchempfehlung-2023-01.webp +image: buchempfehlung-2023-01.webp +categories: + - Buchempfehlungen tags: - buchempfehlung - "2023" -type: blog +type: post --- -> - **Titel:** The inheritance Games +> - **Titel:** The Inheritance Games > - **Autor/-in:** Jennifer Lynn Barnes > - **Genre:** Mysterie/Thriller > - **Deutsche Ersterscheinung:** Januar 2022 diff --git a/content/de/blog/horoskop-2023-1.md b/content/post/horoskop-2023-1/index.md similarity index 94% rename from content/de/blog/horoskop-2023-1.md rename to content/post/horoskop-2023-1/index.md index ba2d2e5..0e26cf4 100644 --- a/content/de/blog/horoskop-2023-1.md +++ b/content/post/horoskop-2023-1/index.md @@ -2,23 +2,23 @@ title: Horoskop (2023/1) draft: false date: 2023-02-16 -author: "" description: Wassermann, Fische -thumbnail: /preview.webp +categories: + - Horoskope tags: - "2023" - horoskop -type: blog +type: post --- -### Wassermann +## Wassermann Wo ein Wille ist, da ist auch ein Weg: Ihre selbstgesteckten Ziele werden in den nächsten Wochen in Reichweite liegen, seien Sie daher wachsam und setzen Sie sich ruhig mit Ihrer Meinung durch. Besonders Ihre Kreativität kann Ihnen dabei helfen! Doch werden Sie nicht ungeduldig, dies könnte Sie viel Kraft kosten. Auch in der Liebe sieht es gut für Sie aus, durch Ihre Hilfsbereitschaft finden Sie schnell neue Kontakte, besonders die Cafeteria ist ein guter Ort dafür. Doch lassen Sie sich dies nicht zu teuer kommen! Geben Sie Ihr Geld am besten sparsam aus, oder es wird schneller weg seien, als es Ihnen lieb ist. -### Fische +## Fische Der frühe Vogel fängt den Wurm: Sowohl Ihre schulischen als auch Ihre Ziele in der Liebe werden in weite Ferne rücken, diff --git a/content/de/blog/modulkurs-2023.md b/content/post/modulkurs-chemie-2023/index.md similarity index 98% rename from content/de/blog/modulkurs-2023.md rename to content/post/modulkurs-chemie-2023/index.md index 16d393c..d309d45 100644 --- a/content/de/blog/modulkurs-2023.md +++ b/content/post/modulkurs-chemie-2023/index.md @@ -2,14 +2,14 @@ title: Modulkurs Chemie 2023 draft: false date: 2023-02-16 -author: "" description: "" -thumbnail: /preview.webp +categories: + - Berichte tags: - modulkurs - "2023" - chemie -type: blog +type: post --- Der Chemieleistungskurs konnte in der Schule einfach nicht genug von der diff --git a/content/de/blog/umweltschutz-101-2023-1.md b/content/post/umweltschutz-101-2023-1/index.md similarity index 93% rename from content/de/blog/umweltschutz-101-2023-1.md rename to content/post/umweltschutz-101-2023-1/index.md index 074a304..acd6529 100644 --- a/content/de/blog/umweltschutz-101-2023-1.md +++ b/content/post/umweltschutz-101-2023-1/index.md @@ -1,18 +1,17 @@ --- -title: Umweltschutz 101 (2023/1) +title: Umweltschutz 101 draft: false date: 2023-02-16 -author: "" description: Was? Umweltschutz? Nicht schon wieder! -thumbnail: /preview.webp +categories: + - Umweltschutz tags: - umweltschutz - klimanews - klima - "2023" -type: blog +type: post --- -Was? Umweltschutz? Nicht schon wieder! Du kennst die folgenden Dinge bestimmt auch: Dein Capri-Sonne Strobhalm ist aus Pappe, auf Veranstaltungen gibt es kein Plastikgeschirr mehr, Zoos werden geschlossen und die C&A @@ -31,11 +30,11 @@ UMWELTSCHUTZ 101 die besten Tipps und Tricks für euch, um euch unter die Arme z Ihr werdet hier fortan in jeder Ausgabe aktuelle Klimavews und einen Litehack zum aktiven Umweltschutz erhalten, LOS GEHT'S!!! -> ### Positive Klimanews: +> # Positive Klimanews: > Dieses Jahr starten die ersten Vorbereitungen für das „Schumacher-Quartier", ein Wohnungsquartier aus Holz, welches schon 2027 bezugsfertig sein soll. Es ist mit geplanten 5000 Wohneinheiten das größte Holzbauquartier Europas. > Was das bringt? Holz speichert im Gegensatz zu Zement viele Treibhausgase ,anstatt sie auszustoßen. Das Bundesinstitut für Bau-, Stadt-, und Raumforschung errechnete vor gut einem Jahr, dass ein Viertel der Treibhausgasemissionen der Bauphase von Zementgebäuden geht. Die erste Holzstadt, geplant auf dem ehemaligen Flughafen Berlin-Tegel soll schon bald zu einem riesigen Kohlenstoffspeicher werden. -> ### Negative Klimanews: +> # Negative Klimanews: > Deutschland will idealerweise bis 2030 den Kohleaustieg schaffen. Kohlekraft soll künftig mit erneuerbaren Energie, somit unter anderem Windkraft, ersetzt werden. Für dieses Vorhaben muss jedes Bundeland 2% seiner Fläche für Windkraftanlagen bereitstellen, was nicht überall auf Zustimmung trifft. > In Bayern ist der Bau von Windkraftanlagen seit 2014 durch strenge Abstandsregelungen zu Wohnsiedlungen und Naturschutzgebieten fast zum Stillstand gekommen. > Bundeswirtschaftsminister Robert Habeck (Grüne) hat nun ganz schön zu kämpfen, Bayern zu einem Kompromiss zu bewegen. Es ist bis jetzt keine Einigung in Aussicht. diff --git a/go.mod b/go.mod new file mode 100644 index 0000000..715d42e --- /dev/null +++ b/go.mod @@ -0,0 +1,5 @@ +module github.com/CaiJimmy/hugo-theme-stack-starter + +go 1.17 + +require github.com/CaiJimmy/hugo-theme-stack/v3 v3.21.0 // indirect diff --git a/go.sum b/go.sum new file mode 100644 index 0000000..92f2a36 --- /dev/null +++ b/go.sum @@ -0,0 +1,2 @@ +github.com/CaiJimmy/hugo-theme-stack/v3 v3.21.0 h1:GT519sWiMhJCYO2xkxgjTvgGZsfP31Q79OURWGTT8/Y= +github.com/CaiJimmy/hugo-theme-stack/v3 v3.21.0/go.mod h1:IPmCXiIxlFSLFYS0tOmYP6ySLviyeNVSabyvSuaxD+I= diff --git a/i18n/de.yaml b/i18n/de.yaml deleted file mode 100644 index 106fb74..0000000 --- a/i18n/de.yaml +++ /dev/null @@ -1,97 +0,0 @@ -# Content -- id: postedOnDate - translation: "Gepostet am {{ . }}" -- id: lastModified - translation: "(Zuletzt geändert am {{ . }})" -- id: translationsLabel - translation: "Andere Sprachen: " -- id: translationsSeparator - translation: ", " -- id: readMore - translation: "Mehr" -- id: morePosts - translation: "Mehr Posts" -- id: olderPosts - translation: "Ältere Posts" -- id: newerPosts - translation: "Neuere Posts" -- id: previousPost - translation: "Letzter Post" -- id: nextPost - translation: "Nächster Post" -- id: readTime - translation: "Minuten" -- id: words - translation: "Wörter" - -# Date -- id: January - translation: "Januar" -- id: February - translation: "Februar" -- id: March - translation: "März" -- id: April - translation: "April" -- id: May - translation: "Mai" -- id: June - translation: "Juni" -- id: July - translation: "Juli" -- id: August - translation: "August" -- id: September - translation: "September" -- id: October - translation: "Oktober" -- id: November - translation: "November" -- id: December - translation: "Dezember" - -# 404 page -- id: pageNotFound - translation: "Ups, diese Seite existiert nicht. (404 Error)" - -# Footer -- id: poweredBy # Accepts HTML - translation: 'Hugo v{{ .Site.Hugo.Version }} angetrieben  •  Theme Beautiful Hugo angepasst von Beautiful Jekyll' - -# Navigation -- id: toggleNavigation - translation: "Navigation" -- id: languageSwitcherLabel - translation: "Sprache" -- id: gcseLabelShort - translation: "Suche" -- id: gcseLabelLong - translation: "Suche {{ .Site.Title }}" -- id: gcseClose - translation: "Schließen" - -# Staticman -- id: noComment - translation: "Kein Kommentar" -- id: oneComment - translation: "Kommentar" -- id: moreComment - translation: "Kommentare" -- id: useMarkdown - translation: "Sie können Markdown-Syntax verwenden" -- id: yourName - translation: "Ihr Name" -- id: yourEmail - translation: "Ihre Emailadresse" -- id: yourWebsite - translation: "Ihre Website" - -# Delayed Disqus -- id: show - translation: "Zeige" -- id: comments - translation: "Kommentare" - -# Related posts -- id: seeAlso - translation: "Siehe auch" diff --git a/layouts/.gitkeep b/layouts/.gitkeep deleted file mode 100644 index e69de29..0000000 diff --git a/layouts/404.html b/layouts/404.html deleted file mode 100644 index d1a9aa7..0000000 --- a/layouts/404.html +++ /dev/null @@ -1,26 +0,0 @@ -{{ define "main" }} - -
    - - - - - - - - - - - - - - -
    - -{{ end }} \ No newline at end of file diff --git a/layouts/_default/_markup/render-link.html b/layouts/_default/_markup/render-link.html deleted file mode 100644 index f8210cd..0000000 --- a/layouts/_default/_markup/render-link.html +++ /dev/null @@ -1 +0,0 @@ -{{ .Text }} diff --git a/layouts/_default/baseof.html b/layouts/_default/baseof.html deleted file mode 100644 index 3086f56..0000000 --- a/layouts/_default/baseof.html +++ /dev/null @@ -1,11 +0,0 @@ - - - {{- partial "head.html" . -}} - - {{- partial "header.html" . -}} -
    - {{- block "main" . }}{{- end }} -
    - {{- partial "footer.html" . -}} - - diff --git a/layouts/_default/index.json b/layouts/_default/index.json deleted file mode 100644 index 5f92808..0000000 --- a/layouts/_default/index.json +++ /dev/null @@ -1,36 +0,0 @@ -{{- $.Scratch.Add "index" slice -}} -{{- range .Site.RegularPages -}} -{{- if .Site.Params.searchKeys -}} -{{ $page := . }} - {{ $dict := dict "title" $page.Title }} - {{- range .Site.Params.searchKeys -}} - {{- if (eq . "tags") -}} - {{ $dict = merge $dict (dict "tags" $page.Params.tags) }} - {{- end -}} - {{- if (eq . "date") -}} - {{ $dict = merge $dict (dict "date" $page.Params.Lastmod) }} - {{- end -}} - {{- if (eq . "categories") -}} - {{ $dict = merge $dict (dict "categories" $page.Params.categories) }} - {{- end -}} - {{- if (eq . "author") -}} - {{ $dict = merge $dict (dict "author" $page.Params.author) }} - {{- end -}} - {{- if (eq . "summary") -}} - {{ $dict = merge $dict (dict "contents" $page.Summary) }} - {{- end -}} - {{- if (eq . "contents") -}} - {{ $dict = merge $dict (dict "contents" $page.Content) }} - {{- end -}} - {{- if (eq . "link") -}} - {{ $dict = merge $dict (dict "permalink" $page.Permalink) }} - {{- end -}} - - {{- end -}} - {{- $.Scratch.Add "index" $dict -}} -{{- else -}} - {{- $.Scratch.Add "index" (dict "title" .Title "tags" .Params.tags "date" .Params.Lastmod "categories" .Params.categories "contents" .Summary "permalink" .Permalink) -}} -{{- end -}} - -{{- end -}} -{{- $.Scratch.Get "index" | jsonify -}} diff --git a/layouts/_default/list.html b/layouts/_default/list.html deleted file mode 100644 index 981cb62..0000000 --- a/layouts/_default/list.html +++ /dev/null @@ -1,15 +0,0 @@ -{{ define "main" }} - -

    {{ .Title }}

    - - {{ $paginator := .Paginate .Pages.ByDate.Reverse 6 }} -
    - {{ range $paginator.Pages }} - {{- partial "blog-card.html" . -}} - {{ end }} -
    - - {{- partial "pagination.html" . -}} - - {{- partial "social.html" . -}} -{{ end }} diff --git a/layouts/_default/single.html b/layouts/_default/single.html deleted file mode 100644 index f083d8a..0000000 --- a/layouts/_default/single.html +++ /dev/null @@ -1,77 +0,0 @@ -{{ define "main" }} - {{ $lastmodstr := (partial "date.html" (dict "date" .Lastmod "language" $.Page.Language "format" "long")) }} - {{ $datestr := (partial "date.html" (dict "date" .Date "language" $.Page.Language "format" "long")) }} - - {{ if (and .Params.thumbnail (not (or .Site.Params.hidePageThumbnail .Params.hidePageThumbnail)) ) }} -
    - - {{ if not (or (or .Site.Params.hideMeta .Params.hideMeta) false) }} -
    - {{ $datestr }} -
    - {{ end }} -
    - {{ end }} - -
    - -

    {{ .Title }}

    - {{ if not (or (or .Site.Params.hideMeta .Params.hideMeta) false) }} -
    - - - - - - - - - {{ $datestr | i18n "postedOnDate" }} - {{ if ne $datestr $lastmodstr }} -  {{ $lastmodstr | i18n "lastModified" }}
    - {{ else }} -  •  - {{ end }} - - - - - - {{ i18n "readingTime"}}{{ .ReadingTime }} {{ i18n "readTime" }} -  • - - - - - - - - - {{ .WordCount }} {{ i18n "words" }} - {{ if not (or (or .Site.Params.hideOtherLanguages .Params.hideOtherLanguages) false) }} - {{ if .IsTranslated -}} - {{- $sortedTranslations := sort .Translations "Site.Language.Weight" -}} - {{- $links := apply $sortedTranslations "partial" "translation_link.html" "." -}} - {{- $cleanLinks := apply $links "chomp" "." -}} - {{- $linksOutput := delimit $cleanLinks (i18n "translationsSeparator") -}} -  • {{ i18n "translationsLabel" }} {{ $linksOutput }} - {{- end }} - {{ end }} - {{ with .Params.author }} -  •  - {{ . }} - {{ end }} -
    - {{ end }} - - {{ if (or .Site.Params.toc .Params.toc) }} - {{- partial "toc.html" . -}} - {{ end }} - - {{ .Content }} -
    - - {{- partial "comments.html" . -}} - - {{- partial "social.html" . -}} -{{ end }} diff --git a/layouts/admin/list.html b/layouts/admin/list.html index 1efed84..01e7e53 100644 --- a/layouts/admin/list.html +++ b/layouts/admin/list.html @@ -9,153 +9,165 @@ /> Static CMS - + - {{- $styles := resources.Get "css/styles.css" | postCSS (dict "config" - "./assets/css/postcss.config.js") -}} {{- if .Site.IsServer }} - - {{ else }} {{- $styles := $styles| minify | fingerprint | - resources.PostProcess -}} - - {{ end -}} diff --git a/layouts/index.html b/layouts/index.html deleted file mode 100644 index f7fdad2..0000000 --- a/layouts/index.html +++ /dev/null @@ -1,21 +0,0 @@ -{{ define "main" }} - {{- partial "intro.html" . -}} - {{ $frontBundle := .Site.Params.frontBundle | default "blog" }} -
    - {{ range first 6 (where .Site.RegularPages.ByDate.Reverse "Type" $frontBundle) }} - {{- partial "blog-card.html" . -}} - {{ end }} -
    - - {{ if gt (len (where .Site.RegularPages.ByDate.Reverse "Type" $frontBundle)) 6 }} - - {{ end }} - - {{- partial "social.html" . -}} -{{ end }} diff --git a/layouts/partials/blog-card.html b/layouts/partials/blog-card.html deleted file mode 100644 index 17f45f6..0000000 --- a/layouts/partials/blog-card.html +++ /dev/null @@ -1,27 +0,0 @@ -
    - - {{ if .Params.thumbnail }} -
    - {{ .Params.title }} - {{ if not (or (or .Site.Params.hideMeta .Params.hideMeta) false) }} -
    - {{ partial "date.html" (dict "date" .Date "language" $.Page.Language "format" "short") }} -
    - {{ end }} -
    - {{ end }} -
    {{ .Params.title }}
    -
    {{ .Params.description }}
    -
    -{{ if not (or (or .Site.Params.hideOtherLanguages .Params.hideOtherLanguages) false) }} - {{ if .IsTranslated -}} -
    - {{- $sortedTranslations := sort .Translations "Site.Language.Weight" -}} - {{- $links := apply $sortedTranslations "partial" "translation_link.html" "." -}} - {{- $cleanLinks := apply $links "chomp" "." -}} - {{- $linksOutput := delimit $cleanLinks (i18n "translationsSeparator") -}} - {{ i18n "translationsLabel" }}{{ $linksOutput }} -
    - {{- end }} -{{ end }} -
    diff --git a/layouts/partials/comments.html b/layouts/partials/comments.html deleted file mode 100644 index 36360a5..0000000 --- a/layouts/partials/comments.html +++ /dev/null @@ -1,38 +0,0 @@ -{{ if .Site.Params.comments.system }} -
    - {{ if eq .Site.Params.comments.system "cactus.chat" }} - - - -
    - - - {{ end }} -
    -{{ end }} \ No newline at end of file diff --git a/layouts/partials/date.html b/layouts/partials/date.html deleted file mode 100644 index 410d13a..0000000 --- a/layouts/partials/date.html +++ /dev/null @@ -1,13 +0,0 @@ -{{ if or (eq "de" .language.Lang) (eq "fr" .language.Lang) }} - {{ if eq "long" .format }} - {{ .date.Format "02" }}. {{ i18n (.date.Format "January")}} {{ .date.Format "2006"}} - {{ else }} - {{ .date.Format "02" }}. {{ substr (i18n (.date.Format "January")) 0 3 }} {{ .date.Format "06"}} - {{ end }} -{{ else }} - {{ if eq "long" .format }} - {{ .date.Format "January 2, 2006" }} - {{ else }} - {{ .date.Format "Jan 2, 06" }} - {{ end }} -{{ end }} diff --git a/layouts/partials/footer.html b/layouts/partials/footer.html deleted file mode 100644 index 455a16a..0000000 --- a/layouts/partials/footer.html +++ /dev/null @@ -1,81 +0,0 @@ -
    - - {{ if (isset .Site.Params "copyright") }} - {{ .Site.Params.copyright | markdownify | emojify }} - {{ else }} - {{ dateFormat "2006" now }} © {{ .Site.Title }} - {{ end }} - - - - - - - -
    - -{{ if .Site.Params.enableSearch }} -{{- partial "search-ui.html" . -}} -{{ end }} - -{{ template "_internal/google_analytics.html" . }} - -{{ if ge (len .Site.Languages) 3 }} - -{{ end }} - -{{ if .Site.Params.darkModeToggle }} - -{{ end }} - - diff --git a/layouts/partials/head.html b/layouts/partials/head.html deleted file mode 100644 index 2f28f08..0000000 --- a/layouts/partials/head.html +++ /dev/null @@ -1,66 +0,0 @@ - - - - - - - - {{ if not .IsHome }}{{ .Title }} - {{ end }}{{ site.Title }} - - - {{- if .Keywords }} - - {{ end -}} - {{- if .Params.Author }} - - {{ end -}} - - {{ hugo.Generator }} - - {{- $styles := resources.Get "css/styles.css" | postCSS (dict "config" "./assets/css/postcss.config.js") -}} - {{- if .Site.IsServer }} - - {{ else }} - {{- $styles := $styles| minify | fingerprint | resources.PostProcess -}} - - {{ end -}} - - - {{ if .Params.math }} - - - - - - {{ end }} - - {{ range .AlternativeOutputFormats -}} - {{ printf `` .Rel .MediaType.Type .Permalink $.Site.Title | safeHTML }} - {{ end -}} - - {{ template "_internal/opengraph.html" . }} - {{ template "_internal/twitter_cards.html" . }} - {{ template "_internal/schema.html" . }} - - {{ if gt (len .Site.Languages) 1}} - - {{ end }} - diff --git a/layouts/partials/header.html b/layouts/partials/header.html deleted file mode 100644 index 448269b..0000000 --- a/layouts/partials/header.html +++ /dev/null @@ -1,105 +0,0 @@ -
    - - {{ if .Site.Params.logo }} - {{ .Site.Title }} - {{ else }} - {{ .Site.Title }} - {{ end }} - - - -
    diff --git a/layouts/partials/intro.html b/layouts/partials/intro.html deleted file mode 100644 index c84e612..0000000 --- a/layouts/partials/intro.html +++ /dev/null @@ -1,9 +0,0 @@ -
    -
    -
    -

    {{ .Site.Params.introTitle | safeHTML}}

    -

    {{ .Site.Params.introSubtitle | safeHTML}}

    -
    - {{ .Site.Title }} -
    -
    \ No newline at end of file diff --git a/layouts/partials/pagination.html b/layouts/partials/pagination.html deleted file mode 100644 index c36850d..0000000 --- a/layouts/partials/pagination.html +++ /dev/null @@ -1,3 +0,0 @@ -
    - {{ template "_internal/pagination.html" . }} -
    diff --git a/layouts/partials/search-ui.html b/layouts/partials/search-ui.html deleted file mode 100644 index 8a5df82..0000000 --- a/layouts/partials/search-ui.html +++ /dev/null @@ -1,35 +0,0 @@ - - -{{ $fuse := resources.Get "js/fuse.min.js" }} -{{ $search := resources.Get "js/search.js" }} - -{{ $concatjs := slice $fuse $search | resources.Concat "js/scripts.js" | resources.Minify }} - \ No newline at end of file diff --git a/layouts/partials/sidebar/left.html b/layouts/partials/sidebar/left.html new file mode 100644 index 0000000..1dc2758 --- /dev/null +++ b/layouts/partials/sidebar/left.html @@ -0,0 +1,100 @@ + diff --git a/layouts/partials/social.html b/layouts/partials/social.html deleted file mode 100644 index 4d535f1..0000000 --- a/layouts/partials/social.html +++ /dev/null @@ -1,488 +0,0 @@ -
    -
    -
    -
    {{ .Site.Params.homepage.social.title }}
    -

    {{ .Site.Params.homepage.social.description }}

    -
    - -
      - {{range .Site.Params.homepage.social.icons}} - - {{ if eq .website "twitter" }} -
    • - - - - - - -
    • - {{ end }} - - {{ if eq .website "mastodon" }} -
    • - - - - - - - -
    • - {{ end }} - - {{ if eq .website "linkedin" }} -
    • - - - - - - - - - - -
    • - {{ end }} - - {{ if eq .website "xing" }} -
    • - - - - - - -
    • - {{ end }} - - {{ if eq .website "github" }} -
    • - - - - - - -
    • - {{ end }} - - {{ if eq .website "telegram" }} -
    • - - - - -
    • - {{ end }} - - {{ if eq .website "buymeacoffee" }} -
    • - - - - - - -
    • - {{ end }} - - {{ if eq .website "medium" }} -
    • - - - - - - - - - - - -
    • - {{ end }} - - {{ if eq .website "reddit" }} -
    • - - - - - - - - - - - -
    • - {{ end }} - - {{ if eq .website "dribbble" }} -
    • - - - - - - - - - -
    • - {{ end }} - - {{ if eq .website "youtube" }} -
    • - - - - - - - -
    • - {{ end }} - - {{ if eq .website "instagram" }} -
    • - - - -
    • - {{ end }} - - {{ if eq .website "stackoverflow" }} -
    • - - - - - - -
    • - {{ end }} - - {{ if eq .website "xda" }} -
    • - - - - - -
    • - {{ end }} - - {{ if eq .website "tiktok" }} -
    • - - - - - -
    • - {{ end }} - - {{ if eq .website "googlescholar" }} -
    • - - - - - -
    • - {{ end }} - - {{ if eq .website "facebook" }} -
    • - - - - - - -
    • - {{ end }} - - {{ if eq .website "behance" }} -
    • - - - - - - - - - -
    • - {{ end }} - - {{end}} -
    -
    -
    diff --git a/layouts/partials/toc.html b/layouts/partials/toc.html deleted file mode 100644 index 4e10236..0000000 --- a/layouts/partials/toc.html +++ /dev/null @@ -1,94 +0,0 @@ -{{- $headers := findRE "(.|\n])+?" .Content -}} - {{- $has_headers := ge (len $headers) 1 -}} - {{- if $has_headers -}} - - {{- $largest := 6 -}} - {{- range $headers -}} - {{- $headerLevel := index (findRE "[1-4]" . 1) 0 -}} - {{- $headerLevel := len (seq $headerLevel) -}} - {{- if lt $headerLevel $largest -}} - {{- $largest = $headerLevel -}} - {{- end -}} - {{- end -}} - - {{- $firstHeaderLevel := len (seq (index (findRE "[1-4]" (index $headers 0) 1) 0)) -}} - - {{- $.Scratch.Set "bareul" slice -}} -
    - - Inhalt - - - - - - -
      - {{- range seq (sub $firstHeaderLevel $largest) -}} -
        - {{- $.Scratch.Add "bareul" (sub (add $largest .) 1) -}} - {{- end -}} - {{- range $i, $header := $headers -}} - {{- $headerLevel := index (findRE "[1-4]" . 1) 0 -}} - {{- $headerLevel := len (seq $headerLevel) -}} - - {{/* get id="xyz" */}} - {{ $id := index (findRE "(id=\"(.*?)\")" $header 9) 0 }} - - {{/* strip id="" to leave xyz (no way to get regex capturing groups in hugo :( */}} - {{ $cleanedID := replace (replace $id "id=\"" "") "\"" "" }} - {{- $header := replaceRE "((.|\n])+?)" "$1" $header -}} - - {{- if ne $i 0 -}} - {{- $prevHeaderLevel := index (findRE "[1-4]" (index $headers (sub $i 1)) 1) 0 -}} - {{- $prevHeaderLevel := len (seq $prevHeaderLevel) -}} - {{- if gt $headerLevel $prevHeaderLevel -}} - {{- range seq $prevHeaderLevel (sub $headerLevel 1) -}} -
          - {{/* the first should not be recorded */}} - {{- if ne $prevHeaderLevel . -}} - {{- $.Scratch.Add "bareul" . -}} - {{- end -}} - {{- end -}} - {{- else -}} - - {{- if lt $headerLevel $prevHeaderLevel -}} - {{- range seq (sub $prevHeaderLevel 1) -1 $headerLevel -}} - {{- if in ($.Scratch.Get "bareul") . -}} -
        - {{/* manually do pop item */}} - {{- $tmp := $.Scratch.Get "bareul" -}} - {{- $.Scratch.Delete "bareul" -}} - {{- $.Scratch.Set "bareul" slice}} - {{- range seq (sub (len $tmp) 1) -}} - {{- $.Scratch.Add "bareul" (index $tmp (sub . 1)) -}} - {{- end -}} - {{- else -}} -
      - - {{- end -}} - {{- end -}} - {{- end -}} - {{- end -}} -
    • - {{- $header | safeHTML -}} - {{- else -}} -
    • - {{- $header | safeHTML -}} - {{- end -}} - {{- end -}} - - {{ $firstHeaderLevel := $largest }} - {{- $lastHeaderLevel := len (seq (index (findRE "[1-4]" (index $headers (sub (len $headers) 1)) 1) 0)) -}} -
    • - {{- range seq (sub $lastHeaderLevel $firstHeaderLevel) -}} - {{- if in ($.Scratch.Get "bareul") (add . $firstHeaderLevel) -}} -
    - {{- else -}} -
- - {{- end -}} - {{- end -}} - - - {{- end -}} \ No newline at end of file diff --git a/layouts/partials/translation_link.html b/layouts/partials/translation_link.html deleted file mode 100644 index 1f9a817..0000000 --- a/layouts/partials/translation_link.html +++ /dev/null @@ -1,2 +0,0 @@ -{{ default .Lang .Site.Language.LanguageName }} - diff --git a/package-lock.json b/package-lock.json deleted file mode 100644 index 41c95a0..0000000 --- a/package-lock.json +++ /dev/null @@ -1,1650 +0,0 @@ -{ - "name": "blist", - "version": "2.1.0", - "lockfileVersion": 3, - "requires": true, - "packages": { - "": { - "name": "blist", - "version": "2.1.0", - "license": "MIT", - "devDependencies": { - "@tailwindcss/typography": "^0.5.10", - "autoprefixer": "^10.4.16", - "postcss": "^8.4.31", - "postcss-cli": "^8.3.1", - "postcss-import": "^14.0.1", - "tailwindcss": "^3.3.3" - } - }, - "node_modules/@alloc/quick-lru": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/@alloc/quick-lru/-/quick-lru-5.2.0.tgz", - "integrity": "sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@jridgewell/gen-mapping": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz", - "integrity": "sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==", - "dev": true, - "dependencies": { - "@jridgewell/set-array": "^1.0.1", - "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.9" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/resolve-uri": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz", - "integrity": "sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==", - "dev": true, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/set-array": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", - "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", - "dev": true, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/sourcemap-codec": { - "version": "1.4.15", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", - "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==", - "dev": true - }, - "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.20", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.20.tgz", - "integrity": "sha512-R8LcPeWZol2zR8mmH3JeKQ6QRCFb7XgUhV9ZlGhHLGyg4wpPiPZNQOOWhFZhxKw8u//yTbNGI42Bx/3paXEQ+Q==", - "dev": true, - "dependencies": { - "@jridgewell/resolve-uri": "^3.1.0", - "@jridgewell/sourcemap-codec": "^1.4.14" - } - }, - "node_modules/@nodelib/fs.scandir": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", - "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", - "dev": true, - "dependencies": { - "@nodelib/fs.stat": "2.0.5", - "run-parallel": "^1.1.9" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@nodelib/fs.stat": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", - "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", - "dev": true, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@nodelib/fs.walk": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", - "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", - "dev": true, - "dependencies": { - "@nodelib/fs.scandir": "2.1.5", - "fastq": "^1.6.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@tailwindcss/typography": { - "version": "0.5.10", - "resolved": "https://registry.npmjs.org/@tailwindcss/typography/-/typography-0.5.10.tgz", - "integrity": "sha512-Pe8BuPJQJd3FfRnm6H0ulKIGoMEQS+Vq01R6M5aCrFB/ccR/shT+0kXLjouGC1gFLm9hopTFN+DMP0pfwRWzPw==", - "dev": true, - "dependencies": { - "lodash.castarray": "^4.4.0", - "lodash.isplainobject": "^4.0.6", - "lodash.merge": "^4.6.2", - "postcss-selector-parser": "6.0.10" - }, - "peerDependencies": { - "tailwindcss": ">=3.0.0 || insiders" - } - }, - "node_modules/@tailwindcss/typography/node_modules/postcss-selector-parser": { - "version": "6.0.10", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.10.tgz", - "integrity": "sha512-IQ7TZdoaqbT+LCpShg46jnZVlhWD2w6iQYAcYXfHARZ7X1t/UGhhceQDs5X0cGqKvYlHNOuv7Oa1xmb0oQuA3w==", - "dev": true, - "dependencies": { - "cssesc": "^3.0.0", - "util-deprecate": "^1.0.2" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/any-promise": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz", - "integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==", - "dev": true - }, - "node_modules/anymatch": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", - "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", - "dev": true, - "dependencies": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/arg": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz", - "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==", - "dev": true - }, - "node_modules/array-union": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", - "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/at-least-node": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz", - "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==", - "dev": true, - "engines": { - "node": ">= 4.0.0" - } - }, - "node_modules/autoprefixer": { - "version": "10.4.16", - "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.16.tgz", - "integrity": "sha512-7vd3UC6xKp0HLfua5IjZlcXvGAGy7cBAXTg2lyQ/8WpNhd6SiZ8Be+xm3FyBSYJx5GKcpRCzBh7RH4/0dnY+uQ==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/autoprefixer" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "dependencies": { - "browserslist": "^4.21.10", - "caniuse-lite": "^1.0.30001538", - "fraction.js": "^4.3.6", - "normalize-range": "^0.1.2", - "picocolors": "^1.0.0", - "postcss-value-parser": "^4.2.0" - }, - "bin": { - "autoprefixer": "bin/autoprefixer" - }, - "engines": { - "node": "^10 || ^12 || >=14" - }, - "peerDependencies": { - "postcss": "^8.1.0" - } - }, - "node_modules/balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", - "dev": true - }, - "node_modules/binary-extensions": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", - "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dev": true, - "dependencies": { - "fill-range": "^7.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/browserslist": { - "version": "4.22.1", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.22.1.tgz", - "integrity": "sha512-FEVc202+2iuClEhZhrWy6ZiAcRLvNMyYcxZ8raemul1DYVOVdFsbqckWLdsixQZCpJlwe77Z3UTalE7jsjnKfQ==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/browserslist" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "dependencies": { - "caniuse-lite": "^1.0.30001541", - "electron-to-chromium": "^1.4.535", - "node-releases": "^2.0.13", - "update-browserslist-db": "^1.0.13" - }, - "bin": { - "browserslist": "cli.js" - }, - "engines": { - "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" - } - }, - "node_modules/camelcase-css": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/camelcase-css/-/camelcase-css-2.0.1.tgz", - "integrity": "sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==", - "dev": true, - "engines": { - "node": ">= 6" - } - }, - "node_modules/caniuse-lite": { - "version": "1.0.30001551", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001551.tgz", - "integrity": "sha512-vtBAez47BoGMMzlbYhfXrMV1kvRF2WP/lqiMuDu1Sb4EE4LKEgjopFDSRtZfdVnslNRpOqV/woE+Xgrwj6VQlg==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/caniuse-lite" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ] - }, - "node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/chokidar": { - "version": "3.5.3", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", - "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", - "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://paulmillr.com/funding/" - } - ], - "dependencies": { - "anymatch": "~3.1.2", - "braces": "~3.0.2", - "glob-parent": "~5.1.2", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.6.0" - }, - "engines": { - "node": ">= 8.10.0" - }, - "optionalDependencies": { - "fsevents": "~2.3.2" - } - }, - "node_modules/cliui": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", - "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", - "dev": true, - "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^7.0.0" - } - }, - "node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/commander": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", - "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", - "dev": true, - "engines": { - "node": ">= 6" - } - }, - "node_modules/concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", - "dev": true - }, - "node_modules/cssesc": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", - "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", - "dev": true, - "bin": { - "cssesc": "bin/cssesc" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/dependency-graph": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/dependency-graph/-/dependency-graph-0.9.0.tgz", - "integrity": "sha512-9YLIBURXj4DJMFALxXw9K3Y3rwb5Fk0X5/8ipCzaN84+gKxoHK43tVKRNakCQbiEx07E8Uwhuq21BpUagFhZ8w==", - "dev": true, - "engines": { - "node": ">= 0.6.0" - } - }, - "node_modules/didyoumean": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz", - "integrity": "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==", - "dev": true - }, - "node_modules/dir-glob": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", - "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", - "dev": true, - "dependencies": { - "path-type": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/dlv": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz", - "integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==", - "dev": true - }, - "node_modules/electron-to-chromium": { - "version": "1.4.563", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.563.tgz", - "integrity": "sha512-dg5gj5qOgfZNkPNeyKBZQAQitIQ/xwfIDmEQJHCbXaD9ebTZxwJXUsDYcBlAvZGZLi+/354l35J1wkmP6CqYaw==", - "dev": true - }, - "node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true - }, - "node_modules/escalade": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/fast-glob": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.1.tgz", - "integrity": "sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg==", - "dev": true, - "dependencies": { - "@nodelib/fs.stat": "^2.0.2", - "@nodelib/fs.walk": "^1.2.3", - "glob-parent": "^5.1.2", - "merge2": "^1.3.0", - "micromatch": "^4.0.4" - }, - "engines": { - "node": ">=8.6.0" - } - }, - "node_modules/fastq": { - "version": "1.15.0", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.15.0.tgz", - "integrity": "sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==", - "dev": true, - "dependencies": { - "reusify": "^1.0.4" - } - }, - "node_modules/fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "dev": true, - "dependencies": { - "to-regex-range": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/fraction.js": { - "version": "4.3.7", - "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.3.7.tgz", - "integrity": "sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==", - "dev": true, - "engines": { - "node": "*" - }, - "funding": { - "type": "patreon", - "url": "https://github.com/sponsors/rawify" - } - }, - "node_modules/fs-extra": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", - "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", - "dev": true, - "dependencies": { - "at-least-node": "^1.0.0", - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", - "dev": true - }, - "node_modules/fsevents": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", - "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", - "dev": true, - "hasInstallScript": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": "^8.16.0 || ^10.6.0 || >=11.0.0" - } - }, - "node_modules/function-bind": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", - "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", - "dev": true, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/get-caller-file": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", - "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", - "dev": true, - "engines": { - "node": "6.* || 8.* || >= 10.*" - } - }, - "node_modules/get-stdin": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-8.0.0.tgz", - "integrity": "sha512-sY22aA6xchAzprjyqmSEQv4UbAAzRN0L2dQB0NlN5acTTK9Don6nhoc3eAbUnpZiCANAMfd/+40kVdKfFygohg==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/glob": { - "version": "7.1.6", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", - "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", - "dev": true, - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dev": true, - "dependencies": { - "is-glob": "^4.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/globby": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", - "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", - "dev": true, - "dependencies": { - "array-union": "^2.1.0", - "dir-glob": "^3.0.1", - "fast-glob": "^3.2.9", - "ignore": "^5.2.0", - "merge2": "^1.4.1", - "slash": "^3.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/graceful-fs": { - "version": "4.2.11", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", - "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", - "dev": true - }, - "node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/hasown": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.0.tgz", - "integrity": "sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==", - "dev": true, - "dependencies": { - "function-bind": "^1.1.2" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/ignore": { - "version": "5.2.4", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz", - "integrity": "sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==", - "dev": true, - "engines": { - "node": ">= 4" - } - }, - "node_modules/inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", - "dev": true, - "dependencies": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "node_modules/inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "dev": true - }, - "node_modules/is-binary-path": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", - "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", - "dev": true, - "dependencies": { - "binary-extensions": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/is-core-module": { - "version": "2.13.1", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz", - "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==", - "dev": true, - "dependencies": { - "hasown": "^2.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/is-glob": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", - "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", - "dev": true, - "dependencies": { - "is-extglob": "^2.1.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true, - "engines": { - "node": ">=0.12.0" - } - }, - "node_modules/jiti": { - "version": "1.20.0", - "resolved": "https://registry.npmjs.org/jiti/-/jiti-1.20.0.tgz", - "integrity": "sha512-3TV69ZbrvV6U5DfQimop50jE9Dl6J8O1ja1dvBbMba/sZ3YBEQqJ2VZRoQPVnhlzjNtU1vaXRZVrVjU4qtm8yA==", - "dev": true, - "bin": { - "jiti": "bin/jiti.js" - } - }, - "node_modules/jsonfile": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", - "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", - "dev": true, - "dependencies": { - "universalify": "^2.0.0" - }, - "optionalDependencies": { - "graceful-fs": "^4.1.6" - } - }, - "node_modules/lilconfig": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.1.0.tgz", - "integrity": "sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==", - "dev": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/lines-and-columns": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", - "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", - "dev": true - }, - "node_modules/lodash.castarray": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/lodash.castarray/-/lodash.castarray-4.4.0.tgz", - "integrity": "sha512-aVx8ztPv7/2ULbArGJ2Y42bG1mEQ5mGjpdvrbJcJFU3TbYybe+QlLS4pst9zV52ymy2in1KpFPiZnAOATxD4+Q==", - "dev": true - }, - "node_modules/lodash.isplainobject": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", - "integrity": "sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==", - "dev": true - }, - "node_modules/lodash.merge": { - "version": "4.6.2", - "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", - "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", - "dev": true - }, - "node_modules/merge2": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", - "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", - "dev": true, - "engines": { - "node": ">= 8" - } - }, - "node_modules/micromatch": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", - "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", - "dev": true, - "dependencies": { - "braces": "^3.0.2", - "picomatch": "^2.3.1" - }, - "engines": { - "node": ">=8.6" - } - }, - "node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/mz": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz", - "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==", - "dev": true, - "dependencies": { - "any-promise": "^1.0.0", - "object-assign": "^4.0.1", - "thenify-all": "^1.0.0" - } - }, - "node_modules/nanoid": { - "version": "3.3.6", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.6.tgz", - "integrity": "sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "bin": { - "nanoid": "bin/nanoid.cjs" - }, - "engines": { - "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" - } - }, - "node_modules/node-releases": { - "version": "2.0.13", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.13.tgz", - "integrity": "sha512-uYr7J37ae/ORWdZeQ1xxMJe3NtdmqMC/JZK+geofDrkLUApKRHPd18/TxtBOJ4A0/+uUIliorNrfYV6s1b02eQ==", - "dev": true - }, - "node_modules/normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/normalize-range": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", - "integrity": "sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-hash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-3.0.0.tgz", - "integrity": "sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==", - "dev": true, - "engines": { - "node": ">= 6" - } - }, - "node_modules/once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", - "dev": true, - "dependencies": { - "wrappy": "1" - } - }, - "node_modules/path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/path-parse": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", - "dev": true - }, - "node_modules/path-type": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", - "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/picocolors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", - "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", - "dev": true - }, - "node_modules/picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", - "dev": true, - "engines": { - "node": ">=8.6" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, - "node_modules/pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/pirates": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.6.tgz", - "integrity": "sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==", - "dev": true, - "engines": { - "node": ">= 6" - } - }, - "node_modules/postcss": { - "version": "8.4.31", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.31.tgz", - "integrity": "sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/postcss" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "dependencies": { - "nanoid": "^3.3.6", - "picocolors": "^1.0.0", - "source-map-js": "^1.0.2" - }, - "engines": { - "node": "^10 || ^12 || >=14" - } - }, - "node_modules/postcss-cli": { - "version": "8.3.1", - "resolved": "https://registry.npmjs.org/postcss-cli/-/postcss-cli-8.3.1.tgz", - "integrity": "sha512-leHXsQRq89S3JC9zw/tKyiVV2jAhnfQe0J8VI4eQQbUjwIe0XxVqLrR+7UsahF1s9wi4GlqP6SJ8ydf44cgF2Q==", - "dev": true, - "dependencies": { - "chalk": "^4.0.0", - "chokidar": "^3.3.0", - "dependency-graph": "^0.9.0", - "fs-extra": "^9.0.0", - "get-stdin": "^8.0.0", - "globby": "^11.0.0", - "postcss-load-config": "^3.0.0", - "postcss-reporter": "^7.0.0", - "pretty-hrtime": "^1.0.3", - "read-cache": "^1.0.0", - "slash": "^3.0.0", - "yargs": "^16.0.0" - }, - "bin": { - "postcss": "bin/postcss" - }, - "engines": { - "node": ">=10" - }, - "peerDependencies": { - "postcss": "^8.0.0" - } - }, - "node_modules/postcss-import": { - "version": "14.1.0", - "resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-14.1.0.tgz", - "integrity": "sha512-flwI+Vgm4SElObFVPpTIT7SU7R3qk2L7PyduMcokiaVKuWv9d/U+Gm/QAd8NDLuykTWTkcrjOeD2Pp1rMeBTGw==", - "dev": true, - "dependencies": { - "postcss-value-parser": "^4.0.0", - "read-cache": "^1.0.0", - "resolve": "^1.1.7" - }, - "engines": { - "node": ">=10.0.0" - }, - "peerDependencies": { - "postcss": "^8.0.0" - } - }, - "node_modules/postcss-js": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/postcss-js/-/postcss-js-4.0.1.tgz", - "integrity": "sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==", - "dev": true, - "dependencies": { - "camelcase-css": "^2.0.1" - }, - "engines": { - "node": "^12 || ^14 || >= 16" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - "peerDependencies": { - "postcss": "^8.4.21" - } - }, - "node_modules/postcss-load-config": { - "version": "3.1.4", - "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-3.1.4.tgz", - "integrity": "sha512-6DiM4E7v4coTE4uzA8U//WhtPwyhiim3eyjEMFCnUpzbrkK9wJHgKDT2mR+HbtSrd/NubVaYTOpSpjUl8NQeRg==", - "dev": true, - "dependencies": { - "lilconfig": "^2.0.5", - "yaml": "^1.10.2" - }, - "engines": { - "node": ">= 10" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - "peerDependencies": { - "postcss": ">=8.0.9", - "ts-node": ">=9.0.0" - }, - "peerDependenciesMeta": { - "postcss": { - "optional": true - }, - "ts-node": { - "optional": true - } - } - }, - "node_modules/postcss-nested": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/postcss-nested/-/postcss-nested-6.0.1.tgz", - "integrity": "sha512-mEp4xPMi5bSWiMbsgoPfcP74lsWLHkQbZc3sY+jWYd65CUwXrUaTp0fmNpa01ZcETKlIgUdFN/MpS2xZtqL9dQ==", - "dev": true, - "dependencies": { - "postcss-selector-parser": "^6.0.11" - }, - "engines": { - "node": ">=12.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - "peerDependencies": { - "postcss": "^8.2.14" - } - }, - "node_modules/postcss-reporter": { - "version": "7.0.5", - "resolved": "https://registry.npmjs.org/postcss-reporter/-/postcss-reporter-7.0.5.tgz", - "integrity": "sha512-glWg7VZBilooZGOFPhN9msJ3FQs19Hie7l5a/eE6WglzYqVeH3ong3ShFcp9kDWJT1g2Y/wd59cocf9XxBtkWA==", - "dev": true, - "dependencies": { - "picocolors": "^1.0.0", - "thenby": "^1.3.4" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - "peerDependencies": { - "postcss": "^8.1.0" - } - }, - "node_modules/postcss-selector-parser": { - "version": "6.0.13", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.13.tgz", - "integrity": "sha512-EaV1Gl4mUEV4ddhDnv/xtj7sxwrwxdetHdWUGnT4VJQf+4d05v6lHYZr8N573k5Z0BViss7BDhfWtKS3+sfAqQ==", - "dev": true, - "dependencies": { - "cssesc": "^3.0.0", - "util-deprecate": "^1.0.2" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/postcss-value-parser": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", - "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", - "dev": true - }, - "node_modules/pretty-hrtime": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/pretty-hrtime/-/pretty-hrtime-1.0.3.tgz", - "integrity": "sha512-66hKPCr+72mlfiSjlEB1+45IjXSqvVAIy6mocupoww4tBFE9R9IhwwUGoI4G++Tc9Aq+2rxOt0RFU6gPcrte0A==", - "dev": true, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/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, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/read-cache": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz", - "integrity": "sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==", - "dev": true, - "dependencies": { - "pify": "^2.3.0" - } - }, - "node_modules/readdirp": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", - "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", - "dev": true, - "dependencies": { - "picomatch": "^2.2.1" - }, - "engines": { - "node": ">=8.10.0" - } - }, - "node_modules/require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/resolve": { - "version": "1.22.8", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", - "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", - "dev": true, - "dependencies": { - "is-core-module": "^2.13.0", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - }, - "bin": { - "resolve": "bin/resolve" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/reusify": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", - "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", - "dev": true, - "engines": { - "iojs": ">=1.0.0", - "node": ">=0.10.0" - } - }, - "node_modules/run-parallel": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", - "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "dependencies": { - "queue-microtask": "^1.2.2" - } - }, - "node_modules/slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/source-map-js": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", - "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/sucrase": { - "version": "3.34.0", - "resolved": "https://registry.npmjs.org/sucrase/-/sucrase-3.34.0.tgz", - "integrity": "sha512-70/LQEZ07TEcxiU2dz51FKaE6hCTWC6vr7FOk3Gr0U60C3shtAN+H+BFr9XlYe5xqf3RA8nrc+VIwzCfnxuXJw==", - "dev": true, - "dependencies": { - "@jridgewell/gen-mapping": "^0.3.2", - "commander": "^4.0.0", - "glob": "7.1.6", - "lines-and-columns": "^1.1.6", - "mz": "^2.7.0", - "pirates": "^4.0.1", - "ts-interface-checker": "^0.1.9" - }, - "bin": { - "sucrase": "bin/sucrase", - "sucrase-node": "bin/sucrase-node" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/supports-preserve-symlinks-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", - "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", - "dev": true, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/tailwindcss": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.3.3.tgz", - "integrity": "sha512-A0KgSkef7eE4Mf+nKJ83i75TMyq8HqY3qmFIJSWy8bNt0v1lG7jUcpGpoTFxAwYcWOphcTBLPPJg+bDfhDf52w==", - "dev": true, - "dependencies": { - "@alloc/quick-lru": "^5.2.0", - "arg": "^5.0.2", - "chokidar": "^3.5.3", - "didyoumean": "^1.2.2", - "dlv": "^1.1.3", - "fast-glob": "^3.2.12", - "glob-parent": "^6.0.2", - "is-glob": "^4.0.3", - "jiti": "^1.18.2", - "lilconfig": "^2.1.0", - "micromatch": "^4.0.5", - "normalize-path": "^3.0.0", - "object-hash": "^3.0.0", - "picocolors": "^1.0.0", - "postcss": "^8.4.23", - "postcss-import": "^15.1.0", - "postcss-js": "^4.0.1", - "postcss-load-config": "^4.0.1", - "postcss-nested": "^6.0.1", - "postcss-selector-parser": "^6.0.11", - "resolve": "^1.22.2", - "sucrase": "^3.32.0" - }, - "bin": { - "tailwind": "lib/cli.js", - "tailwindcss": "lib/cli.js" - }, - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/tailwindcss/node_modules/glob-parent": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", - "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", - "dev": true, - "dependencies": { - "is-glob": "^4.0.3" - }, - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/tailwindcss/node_modules/postcss-import": { - "version": "15.1.0", - "resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-15.1.0.tgz", - "integrity": "sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==", - "dev": true, - "dependencies": { - "postcss-value-parser": "^4.0.0", - "read-cache": "^1.0.0", - "resolve": "^1.1.7" - }, - "engines": { - "node": ">=14.0.0" - }, - "peerDependencies": { - "postcss": "^8.0.0" - } - }, - "node_modules/tailwindcss/node_modules/postcss-load-config": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-4.0.1.tgz", - "integrity": "sha512-vEJIc8RdiBRu3oRAI0ymerOn+7rPuMvRXslTvZUKZonDHFIczxztIyJ1urxM1x9JXEikvpWWTUUqal5j/8QgvA==", - "dev": true, - "dependencies": { - "lilconfig": "^2.0.5", - "yaml": "^2.1.1" - }, - "engines": { - "node": ">= 14" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - "peerDependencies": { - "postcss": ">=8.0.9", - "ts-node": ">=9.0.0" - }, - "peerDependenciesMeta": { - "postcss": { - "optional": true - }, - "ts-node": { - "optional": true - } - } - }, - "node_modules/tailwindcss/node_modules/yaml": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.3.3.tgz", - "integrity": "sha512-zw0VAJxgeZ6+++/su5AFoqBbZbrEakwu+X0M5HmcwUiBL7AzcuPKjj5we4xfQLp78LkEMpD0cOnUhmgOVy3KdQ==", - "dev": true, - "engines": { - "node": ">= 14" - } - }, - "node_modules/thenby": { - "version": "1.3.4", - "resolved": "https://registry.npmjs.org/thenby/-/thenby-1.3.4.tgz", - "integrity": "sha512-89Gi5raiWA3QZ4b2ePcEwswC3me9JIg+ToSgtE0JWeCynLnLxNr/f9G+xfo9K+Oj4AFdom8YNJjibIARTJmapQ==", - "dev": true - }, - "node_modules/thenify": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz", - "integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==", - "dev": true, - "dependencies": { - "any-promise": "^1.0.0" - } - }, - "node_modules/thenify-all": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz", - "integrity": "sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==", - "dev": true, - "dependencies": { - "thenify": ">= 3.1.0 < 4" - }, - "engines": { - "node": ">=0.8" - } - }, - "node_modules/to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dev": true, - "dependencies": { - "is-number": "^7.0.0" - }, - "engines": { - "node": ">=8.0" - } - }, - "node_modules/ts-interface-checker": { - "version": "0.1.13", - "resolved": "https://registry.npmjs.org/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz", - "integrity": "sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==", - "dev": true - }, - "node_modules/universalify": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", - "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", - "dev": true, - "engines": { - "node": ">= 10.0.0" - } - }, - "node_modules/update-browserslist-db": { - "version": "1.0.13", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz", - "integrity": "sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/browserslist" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "dependencies": { - "escalade": "^3.1.1", - "picocolors": "^1.0.0" - }, - "bin": { - "update-browserslist-db": "cli.js" - }, - "peerDependencies": { - "browserslist": ">= 4.21.0" - } - }, - "node_modules/util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", - "dev": true - }, - "node_modules/wrap-ansi": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, - "node_modules/wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", - "dev": true - }, - "node_modules/y18n": { - "version": "5.0.8", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", - "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", - "dev": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/yaml": { - "version": "1.10.2", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", - "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", - "dev": true, - "engines": { - "node": ">= 6" - } - }, - "node_modules/yargs": { - "version": "16.2.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", - "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", - "dev": true, - "dependencies": { - "cliui": "^7.0.2", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.0", - "y18n": "^5.0.5", - "yargs-parser": "^20.2.2" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/yargs-parser": { - "version": "20.2.9", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", - "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", - "dev": true, - "engines": { - "node": ">=10" - } - } - } -} diff --git a/package.json b/package.json deleted file mode 100644 index c99ee01..0000000 --- a/package.json +++ /dev/null @@ -1,27 +0,0 @@ -{ - "name": "blist", - "version": "2.1.0", - "description": "Blist is a clean and fast blog theme for your Hugo site.", - "main": "index.js", - "repository": "https://github.com/apvarun/blist-hugo-theme", - "author": "Varun A P", - "license": "MIT", - "scripts": { - "start": "hugo server --disableFastRender", - "build": "NODE_ENV=production hugo --gc" - }, - "devDependencies": { - "@tailwindcss/typography": "^0.5.10", - "autoprefixer": "^10.4.16", - "postcss": "^8.4.31", - "postcss-cli": "^8.3.1", - "postcss-import": "^14.0.1", - "tailwindcss": "^3.3.3" - }, - "browserslist": [ - "last 1 version", - "> 1%", - "maintained node versions", - "not dead" - ] -} diff --git a/static/admin/collections.js b/static/admin/collections.js index 200b401..1646888 100644 --- a/static/admin/collections.js +++ b/static/admin/collections.js @@ -1,9 +1,10 @@ const PostCollection = { - name: "posts", + name: "post", label: "Artikel", description: "Hier könnt ihr die Artikel der Schülerzeitung bearbeiten.", icon: "news", - folder: "content/de/blog", + folder: "content/post", + path: "{{slug}}/index.md", create: true, editor: { preview: true, @@ -12,10 +13,9 @@ const PostCollection = { }, filter: { field: "type", - value: "blog", - // pattern: "^((?!_index.md).)*$" + value: "post", }, - summary_fields: ["title", "date", "draft", "author"], + summary_fields: ["title", "date", "draft"], fields: [ { name: "title", @@ -38,12 +38,6 @@ const PostCollection = { format: "yyyy-MM-dd", required: true, }, - { - name: "author", - label: "Autor", - widget: "string", - required: false, - }, { name: "description", label: "Beschreibung", @@ -51,10 +45,10 @@ const PostCollection = { required: false, }, { - name: "thumbnail", + name: "image", label: "Titelbild", widget: "image", - required: true, + required: false, }, { name: "tags", @@ -63,6 +57,13 @@ const PostCollection = { delimiter: ",", required: false, }, + { + name: "categories", + label: "Kategorien", + widget: "list", + delimiter: ",", + required: false, + }, { name: "type", widget: "hidden", @@ -78,11 +79,12 @@ const PostCollection = { }; const PagesCollection = { - name: "pages", + name: "page", label: "Seiten", description: "Hier könnt ihr die Zusatzseiten der Website bearbeiten.", icon: "page", - folder: "content/de/page", + folder: "content/page", + path: "{{slug}}/index.md", create: true, editor: { preview: true, @@ -112,12 +114,6 @@ const PagesCollection = { format: "yyyy-MM-dd", required: true, }, - { - name: "author", - label: "Autor", - widget: "string", - required: false, - }, { name: "description", label: "Beschreibung", @@ -125,18 +121,48 @@ const PagesCollection = { required: false, }, { - name: "thumbnail", - label: "Titelbild", - widget: "image", - required: false, - }, - { - name: "keywords", - label: "Schlüsselwörter", + name: "tags", + label: "Tags", widget: "list", delimiter: ",", required: false, }, + { + name: "show-in-menu", + label: "Im Menü anzeigen", + widget: "boolean", + required: false, + }, + { + name: "menu", + label: "Menü", + widget: "object", + condition: { + field: "show-in-menu", + value: true, + }, + fields: [ + { + name: "main", + label: "Hauptmenü", + widget: "object", + fields: [ + { + name: "weight", + label: "Gewichtung", + widget: "string", + required: true, + }, + { + name: "params", + label: "Parameter", + widget: "keyvalue", + required: false, + } + ] + } + ] + }, { name: "body", label: "Inhalt", diff --git a/static/blog-post.jpg b/static/blog-post.jpg deleted file mode 100644 index 6cbe82f..0000000 Binary files a/static/blog-post.jpg and /dev/null differ diff --git a/static/featured-placeholder.jpg b/static/featured-placeholder.jpg deleted file mode 100644 index c7c46a5..0000000 Binary files a/static/featured-placeholder.jpg and /dev/null differ diff --git a/static/fonts/inter-v3-latin-300.eot b/static/fonts/inter-v3-latin-300.eot deleted file mode 100644 index 8e5b0aa..0000000 Binary files a/static/fonts/inter-v3-latin-300.eot and /dev/null differ diff --git a/static/fonts/inter-v3-latin-300.svg b/static/fonts/inter-v3-latin-300.svg deleted file mode 100644 index 6908131..0000000 --- a/static/fonts/inter-v3-latin-300.svg +++ /dev/null @@ -1,350 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/static/fonts/inter-v3-latin-300.ttf b/static/fonts/inter-v3-latin-300.ttf deleted file mode 100644 index e599ba1..0000000 Binary files a/static/fonts/inter-v3-latin-300.ttf and /dev/null differ diff --git a/static/fonts/inter-v3-latin-300.woff b/static/fonts/inter-v3-latin-300.woff deleted file mode 100644 index 25d3971..0000000 Binary files a/static/fonts/inter-v3-latin-300.woff and /dev/null differ diff --git a/static/fonts/inter-v3-latin-300.woff2 b/static/fonts/inter-v3-latin-300.woff2 deleted file mode 100644 index 605d1b2..0000000 Binary files a/static/fonts/inter-v3-latin-300.woff2 and /dev/null differ diff --git a/static/fonts/inter-v3-latin-500.eot b/static/fonts/inter-v3-latin-500.eot deleted file mode 100644 index d8243f5..0000000 Binary files a/static/fonts/inter-v3-latin-500.eot and /dev/null differ diff --git a/static/fonts/inter-v3-latin-500.svg b/static/fonts/inter-v3-latin-500.svg deleted file mode 100644 index 737585d..0000000 --- a/static/fonts/inter-v3-latin-500.svg +++ /dev/null @@ -1,351 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/static/fonts/inter-v3-latin-500.ttf b/static/fonts/inter-v3-latin-500.ttf deleted file mode 100644 index 7b1b1da..0000000 Binary files a/static/fonts/inter-v3-latin-500.ttf and /dev/null differ diff --git a/static/fonts/inter-v3-latin-500.woff b/static/fonts/inter-v3-latin-500.woff deleted file mode 100644 index b1367b1..0000000 Binary files a/static/fonts/inter-v3-latin-500.woff and /dev/null differ diff --git a/static/fonts/inter-v3-latin-500.woff2 b/static/fonts/inter-v3-latin-500.woff2 deleted file mode 100644 index f96e8ab..0000000 Binary files a/static/fonts/inter-v3-latin-500.woff2 and /dev/null differ diff --git a/static/fonts/inter-v3-latin-700.eot b/static/fonts/inter-v3-latin-700.eot deleted file mode 100644 index 18f602e..0000000 Binary files a/static/fonts/inter-v3-latin-700.eot and /dev/null differ diff --git a/static/fonts/inter-v3-latin-700.svg b/static/fonts/inter-v3-latin-700.svg deleted file mode 100644 index 1ed86ff..0000000 --- a/static/fonts/inter-v3-latin-700.svg +++ /dev/null @@ -1,352 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/static/fonts/inter-v3-latin-700.ttf b/static/fonts/inter-v3-latin-700.ttf deleted file mode 100644 index 83855b9..0000000 Binary files a/static/fonts/inter-v3-latin-700.ttf and /dev/null differ diff --git a/static/fonts/inter-v3-latin-700.woff b/static/fonts/inter-v3-latin-700.woff deleted file mode 100644 index 86e8911..0000000 Binary files a/static/fonts/inter-v3-latin-700.woff and /dev/null differ diff --git a/static/fonts/inter-v3-latin-700.woff2 b/static/fonts/inter-v3-latin-700.woff2 deleted file mode 100644 index f6215ed..0000000 Binary files a/static/fonts/inter-v3-latin-700.woff2 and /dev/null differ diff --git a/static/logo.png b/static/logo.png deleted file mode 100644 index ceaa805..0000000 Binary files a/static/logo.png and /dev/null differ diff --git a/static/preview.webp b/static/preview.webp deleted file mode 100644 index 8b80eb5..0000000 Binary files a/static/preview.webp and /dev/null differ