first commit

This commit is contained in:
yann
2025-11-03 18:11:56 +01:00
commit fa2387cb10
350 changed files with 17971 additions and 0 deletions

25
assets/js/data/mathjax.js Normal file
View File

@@ -0,0 +1,25 @@
---
layout: compress
# WARNING: Don't use '//' to comment out code, use '{% comment %}' and '{% endcomment %}' instead.
---
{%- comment -%}
See: <https://docs.mathjax.org/en/latest/options/input/tex.html#tex-options>
{%- endcomment -%}
MathJax = {
tex: {
{%- comment -%} start/end delimiter pairs for in-line math {%- endcomment -%}
inlineMath: [
['$', '$'],
['\\(', '\\)']
],
{%- comment -%} start/end delimiter pairs for display math {%- endcomment -%}
displayMath: [
['$$', '$$'],
['\\[', '\\]']
],
{%- comment -%} equation numbering {%- endcomment -%}
tags: 'ams'
}
};

View File

@@ -0,0 +1,25 @@
---
layout: compress
swcache: true
---
[
{% assign posts = site.posts | sort: 'last_modified_at' | reverse %}
{% for post in posts %}
{
"title": {{ post.title | jsonify }},
"url": {{ post.url | relative_url | jsonify }},
"categories": {{ post.categories | join: ', ' | jsonify }},
"tags": {{ post.tags | join: ', ' | jsonify }},
"date": "{{ post.date | date: '%d/%m/%Y' }}",
{% if post.last_modified_at %}
"datemodif": "{{ post.last_modified_at | date: '%d/%m/%Y' }}",
{% else %}
"datemodif": "",
{% endif %}
{% include no-linenos.html content=post.content %}
{% assign _content = content | strip_html | strip_newlines %}
"snippet": {{ _content | truncate: 200 | jsonify }}
}{% unless forloop.last %},{% endunless %}
{% endfor %}
]

View File

@@ -0,0 +1,20 @@
---
layout: compress
swcache: true
---
[
{% for post in site.posts %}
{
"title": {{ post.title | jsonify }},
"url": {{ post.url | relative_url | jsonify }},
"categories": {{ post.categories | join: ', ' | jsonify }},
"tags": {{ post.tags | join: ', ' | jsonify }},
"date": "{{ post.date }}",
{% include no-linenos.html content=post.content %}
{% assign _content = content | strip_html | strip_newlines %}
"snippet": {{ _content | truncate: 200 | jsonify }},
"content": {{ _content | jsonify }}
}{% unless forloop.last %},{% endunless %}
{% endfor %}
]

47
assets/js/data/swconf.js Normal file
View File

@@ -0,0 +1,47 @@
---
layout: compress
permalink: '/:path/swconf.js'
# Note that this file will be fetched by the ServiceWorker, so it will not be cached.
---
const swconf = {
{% if site.pwa.cache.enabled %}
cacheName: 'chirpy-{{ "now" | date: "%s" }}',
{%- comment -%} Resources added to the cache during PWA installation. {%- endcomment -%}
resources: [
'{{ "/assets/css/:THEME.css" | replace: ':THEME', site.theme | relative_url }}',
'{{ "/" | relative_url }}',
{% for tab in site.tabs %}
'{{- tab.url | relative_url -}}',
{% endfor %}
{% assign cache_list = site.static_files | where: 'swcache', true %}
{% for file in cache_list %}
'{{ file.path | relative_url }}'{%- unless forloop.last -%},{%- endunless -%}
{% endfor %}
],
interceptor: {
{%- comment -%} URLs containing the following paths will not be cached. {%- endcomment -%}
paths: [
{% for path in site.pwa.cache.deny_paths %}
{% unless path == empty %}
'{{ path | relative_url }}'{%- unless forloop.last -%},{%- endunless -%}
{% endunless %}
{% endfor %}
],
{%- comment -%} URLs containing the following prefixes will not be cached. {%- endcomment -%}
urlPrefixes: [
{% if site.analytics.goatcounter.id != nil and site.pageviews.provider == 'goatcounter' %}
'https://{{ site.analytics.goatcounter.id }}.goatcounter.com/counter/'
{% endif %}
]
},
purge: false
{% else %}
purge: true
{% endif %}
};

7
assets/js/dist/app.min.js vendored Normal file

File diff suppressed because one or more lines are too long

4
assets/js/dist/categories.min.js vendored Normal file

File diff suppressed because one or more lines are too long

4
assets/js/dist/commons.min.js vendored Normal file

File diff suppressed because one or more lines are too long

4
assets/js/dist/home.min.js vendored Normal file

File diff suppressed because one or more lines are too long

4
assets/js/dist/misc.min.js vendored Normal file

File diff suppressed because one or more lines are too long

4
assets/js/dist/page.min.js vendored Normal file

File diff suppressed because one or more lines are too long

4
assets/js/dist/post.min.js vendored Normal file

File diff suppressed because one or more lines are too long

7
assets/js/dist/sw.min.js vendored Normal file
View File

@@ -0,0 +1,7 @@
---
permalink: /:basename
---
/*!
* jekyll-theme-chirpy v7.2.4 | © 2019 Cotes Chung | MIT Licensed | https://github.com/cotes2020/jekyll-theme-chirpy/
*/
!function(){"use strict";importScripts("./assets/js/data/swconf.js");const e=swconf.purge,t=swconf.interceptor;self.addEventListener("install",(t=>{e||t.waitUntil(caches.open(swconf.cacheName).then((e=>e.addAll(swconf.resources))))})),self.addEventListener("activate",(t=>{t.waitUntil(caches.keys().then((t=>Promise.all(t.map((t=>e||t!==swconf.cacheName?caches.delete(t):void 0))))))})),self.addEventListener("message",(e=>{"SKIP_WAITING"===e.data&&self.skipWaiting()})),self.addEventListener("fetch",(s=>{s.request.headers.has("range")||s.respondWith(caches.match(s.request).then((n=>n||fetch(s.request).then((n=>{const r=s.request.url;if(e||"GET"!==s.request.method||!function(e){const s=new URL(e),n=s.pathname;if(!s.protocol.startsWith("http"))return!1;for(const e of t.urlPrefixes)if(s.href.startsWith(e))return!1;for(const e of t.paths)if(n.startsWith(e))return!1;return!0}(r))return n;let a=n.clone();return caches.open(swconf.cacheName).then((e=>{e.put(s.request,a)})),n})))))}))}();

4
assets/js/dist/theme.min.js vendored Normal file
View File

@@ -0,0 +1,4 @@
/*!
* jekyll-theme-chirpy v7.2.4 | © 2019 Cotes Chung | MIT Licensed | https://github.com/cotes2020/jekyll-theme-chirpy/
*/
var Theme=function(){"use strict";function t(t,e,i){if("function"==typeof t?t===e:t.has(e))return arguments.length<3?e:i;throw new TypeError("Private element is not present on this object")}function e(e,i,s){return s(t(e,i))}var i;class s{static get DARK(){return"dark"}static get LIGHT(){return"light"}static get ID(){return"theme-mode"}static get visualState(){return e(s,this,o)?e(s,this,n):e(s,this,h)?this.DARK:this.LIGHT}static getThemeMapper(t,e){return{[this.LIGHT]:t,[this.DARK]:e}}static init(){this.switchable&&(t(s,this,b)._.addEventListener("change",(()=>{const i=e(s,this,n);t(s,this,u).call(this),i!==this.visualState&&t(s,this,l).call(this)})),e(s,this,o)&&(e(s,this,r)?t(s,this,a).call(this):t(s,this,c).call(this)))}static flip(){e(s,this,o)?t(s,this,u).call(this):e(s,this,h)?t(s,this,c).call(this):t(s,this,a).call(this),t(s,this,l).call(this)}}function n(e){return sessionStorage.getItem(t(i,e,g)._)}function r(t){return e(i,t,n)===t.DARK}function o(t){return null!==e(i,t,n)}function h(e){return t(i,e,b)._.matches}function a(){document.documentElement.setAttribute(t(i,this,v)._,this.DARK),sessionStorage.setItem(t(i,this,g)._,this.DARK)}function c(){document.documentElement.setAttribute(t(i,this,v)._,this.LIGHT),sessionStorage.setItem(t(i,this,g)._,this.LIGHT)}function u(){document.documentElement.removeAttribute(t(i,this,v)._),sessionStorage.removeItem(t(i,this,g)._)}function l(){window.postMessage({id:this.ID},"*")}i=s;var m,f,d,g={_:"mode"},v={_:"data-mode"},b={_:window.matchMedia("(prefers-color-scheme: dark)")};return m=s,f="switchable",d=!document.documentElement.hasAttribute(t(i,i,v)._),(f=function(t){var e=function(t,e){if("object"!=typeof t||!t)return t;var i=t[Symbol.toPrimitive];if(void 0!==i){var s=i.call(t,e);if("object"!=typeof s)return s;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===e?String:Number)(t)}(t,"string");return"symbol"==typeof e?e:e+""}(f))in m?Object.defineProperty(m,f,{value:d,enumerable:!0,configurable:!0,writable:!0}):m[f]=d,s.init(),s}();