big updat:
All checks were successful
Android Build / publish (push) Successful in 57s
Linux Build / publish (push) Successful in 53s

- update dependencies
- add webp support and webp conversion for profile images
This commit is contained in:
olcxja 2026-07-02 22:40:46 +02:00
commit 95aaaa69ea
244 changed files with 121382 additions and 86 deletions

152
node_modules/gif.js/site/templates/index.html generated vendored Normal file
View file

@ -0,0 +1,152 @@
{% extends 'layout.html' %}
{% block scripts %}
<script src="gif.js?v={{ version }}"></script>
<script src="scripts/main.js?v={{ version }}"></script>
{% endblock %}
{% block body %}
<h2>Usage</h2>
{{ contents['code.md'].html }}
<h2>Demo</h2>
<p>
GIF images are generated in the background using web workers. Hover the original and reference
tabs to see respective image.
</p>
<p>
Reference images are rendered with photoshop cs6 using the perceptual setting with no dither.
</p>
<div class="demo">
<div class="images">
<img class="render">
<img class="original" src="images/test/anim1.jpg">
<img class="original" src="images/test/anim2.jpg">
<img class="original" src="images/test/anim3.jpg">
<img class="original" src="images/test/anim4.jpg">
<img class="reference" src="images/test/anim-ref.gif">
</div>
<ul class="hover-buttons">
<li class="original">Original</li>
<li class="reference">Reference</li>
</ul>
<div class="controls">
<p class="quality">
<label>Quality</label>
<input type="range" step="1" min="1" max="30" value="20">
<span class="value">10</span>
</p>
<p class="delay">
<label>Delay</label>
<input type="range" step="1" min="0" max="1000" value="500">
<span class="value">500ms</span>
</p>
<p class="repeat">
<label>Repeat</label>
<input type="range" step="1" min="0" max="21" value="21">
<span class="value">forever</span>
</p>
<p class="dither">
<label>Dither</label>
<select>
<option selected>None</option>
<option>Atkinson</option>
<option>Atkinson-serpentine </option>
<option>FalseFloydSteinberg</option>
<option>FalseFloydSteinberg-serpentine</option>
<option>FloydSteinberg</option>
<option>FloydSteinberg-serpentine</option>
<option>Stucki</option>
<option>Stucki-serpentine</option>
</select>
</p>
<p class="info">
<pre>Loading...</pre>
</p>
</div>
</div>
<div class="demo">
<div class="images">
<img class="render">
<img class="original" src="images/test/test1-orig.jpg">
<img class="reference" src="images/test/test1-ref.gif">
</div>
<ul class="hover-buttons">
<li class="original">Original</li>
<li class="reference">Reference</li>
</ul>
<div class="controls">
<p class="quality">
<label>Quality</label>
<input type="range" step="1" min="1" max="30" value="20">
<span class="value">10</span>
</p>
<p class="dither">
<label>Dither</label>
<select>
<option selected>None</option>
<option>Atkinson</option>
<option>Atkinson-serpentine </option>
<option>FalseFloydSteinberg</option>
<option>FalseFloydSteinberg-serpentine</option>
<option>FloydSteinberg</option>
<option>FloydSteinberg-serpentine</option>
<option>Stucki</option>
<option>Stucki-serpentine</option>
</select>
</p>
<p class="info">
<pre>Loading...</pre>
</p>
</div>
</div>
<div class="demo">
<div class="images">
<img class="render">
<img class="original" src="images/test/test3-orig.png">
<img class="reference" src="images/test/test3-ref.gif">
</div>
<ul class="hover-buttons">
<li class="original">Original</li>
<li class="reference">Reference</li>
</ul>
<div class="controls">
<p class="quality">
<label>Quality</label>
<input type="range" step="1" min="1" max="30" value="20">
<span class="value">10</span>
</p>
<p class="dither">
<label>Dither</label>
<select>
<option selected>None</option>
<option>Atkinson</option>
<option>Atkinson-serpentine </option>
<option>FalseFloydSteinberg</option>
<option>FalseFloydSteinberg-serpentine</option>
<option>FloydSteinberg</option>
<option>FloydSteinberg-serpentine</option>
<option>Stucki</option>
<option>Stucki-serpentine</option>
</select>
</p>
<p class="info">
<pre>Loading...</pre>
</p>
</div>
</div>
<h2>Other tests</h2>
<ul>
{% for test in contents.tests._.pages %}
<li><a href="{{ test.url }}">{{ test.title }}</a></li>
{% endfor %}
</ul>
{% endblock %}

39
node_modules/gif.js/site/templates/layout.html generated vendored Normal file
View file

@ -0,0 +1,39 @@
<!DOCTYPE html>
<html class="no-js">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<title>{{ name }}</title>
<meta name="description" content="{{ description }}">
<meta name="keywords" content="{{ keywords }}">
<meta name="viewport" content="width=device-width">
<meta property="og:title" content="{{ name }}">
<meta property="og:url" content="{{ url }}">
<meta property="og:description" content="{{ description }}">
<meta property="og:type" content="website">
<link rel="stylesheet" href="{{ env.config.baseUrl }}styles/main.css">
<script>
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
})(window,document,'script','//www.google-analytics.com/analytics.js','ga');
ga('create', 'UA-41063995-1', 'jnordberg.github.io');
ga('send', 'pageview');
</script>
{% block scripts %}{% endblock %}
</head>
<body>
<header>
<h1>gif.js</h1>
<p>{{ description }}</p>
<p class="github"><a href="https://github.com/jnordberg/gif.js">Download &amp; Docs on GitHub</a></p>
</header>
<div class="wrap">
{% block body %}{% endblock %}
</div>
<footer>
<a href="https://creativecommons.org/licenses/by-sa/3.0/">&copy;&copy;</a> 2013
<a href="http://johan-nordberg.com/">Johan Nordberg</a>
</footer>
</body>
</html>

19
node_modules/gif.js/site/templates/test.html generated vendored Normal file
View file

@ -0,0 +1,19 @@
{% extends 'layout.html' %}
{% set script = contents.tests[page.metadata.script] %}
{% block scripts %}
<script src="{{ env.config.baseUrl }}gif.js?v={{ version }}"></script>
<script src="{{ script.url }}?v={{ version }}"></script>
{% endblock %}
{% block body %}
<h2>{{ page.title }}</h2>
<div class="test">
{{ page.html }}
</div>
<h2>Source</h2>
<pre class="src">
<code>{{ hljs.highlightAuto(script.source).value }}</code>
</pre>
{% endblock %}