start playing with 0.15 bundle format

This commit is contained in:
Jean-Marie 'Histausse' Mineau 2026-06-17 08:05:59 +02:00
parent 3be22c5654
commit ba51d75528
Signed by: histausse
GPG key ID: B66AEEDA9B645AD2
14 changed files with 1221 additions and 288 deletions

View file

@ -95,8 +95,8 @@
} }
}} }}
html.style(get-css()) get-css()
html.script(get-js()) get-js()
context for tag in additionnal-head-tags.final() { context for tag in additionnal-head-tags.final() {
tag tag
} }

View file

@ -22,12 +22,12 @@
/// Concatenate all css found in css-list at the end of the document /// Concatenate all css found in css-list at the end of the document
#let get-css() = context { #let get-css() = context {
css-list.final().join("\n\n") html.style(css-list.final().join("\n\n"))
} }
/// Concatenate all js found in js-list at the end of the document /// Concatenate all js found in js-list at the end of the document
#let get-js() = context { #let get-js() = context {
js-list.final().join("\n\n") html.script(js-list.final().join("\n\n"))
} }
#let html-show(body) = { #let html-show(body) = {

View file

Before

Width:  |  Height:  |  Size: 934 KiB

After

Width:  |  Height:  |  Size: 934 KiB

Before After
Before After

View file

Before

Width:  |  Height:  |  Size: 344 KiB

After

Width:  |  Height:  |  Size: 344 KiB

Before After
Before After

View file

Before

Width:  |  Height:  |  Size: 29 KiB

After

Width:  |  Height:  |  Size: 29 KiB

Before After
Before After

278
test_template/index.typ Normal file
View file

@ -0,0 +1,278 @@
#import "@local/template-web:0.0.1": *
#let summ = summary(
url: "http://test.example.com",
title: "TeTyTe",
preview-image: image(
"assets/platypus.png",
alt: "A drawing of a blue-ish round-ish platypus with big eyes, holding a laptop. This platypus is quite cute, but I might be biased.",
),
author: "Me!",
tags: ("test", "html/css", "typst"),
description: "Test of the TTT template",
date: datetime(year: 1942, month: 4, day: 1),
)
#show: webpage.with(
..summ.template-args,
logo: image(
"assets/platypus.png",
alt: "A drawing of a blue-ish round-ish platypus with big eyes, holding a laptop. This platypus is quite cute, but I might be biased.",
height: 100pt,
width: 100pt, // TODO 0.15 regression? in 0.14 setting the height was enough
),
header: [
= Test TeTyTe
Hello World!
],
footer: context [
#sym.copyright #document.date.display("[year]") Histausse \
Please don't train AI on my stuff without explicit permission
],
nav-elements: (
/*
link(
"http://test.example.com",
image(
"assets/platypus.png",
alt: "A drawing of a blue-ish round-ish platypus with big eyes, holding a laptop. This platypus is quite cute, but I might be biased.",
height: 2em,
)
),*/
html.a(href: "http://test.example.com", aria-label: "Home", icons.home-icon), // /!\ aria-label is important for accessibility /!\
html.a(href: "/feed.rss", aria-label: "RSS feed", icons.rss-icon),
),
menu: [
- #link("example.com")[Hello Void!]
- #link("example.com")[Demons]
- #link("example.com")[Run]
- #link("example.com")[When]
- #link("example.com")[A]
- #link("example.com")[Good]
- #link("example.com")[Man]
- #link("example.com")[Goes]
- #link("example.com")[To]
- #link("example.com")[War]
],
site-name: "TTT",
icon: "/img/platypus.png", // TODO: use <ico> somehow? probably not supported in 0.15
// Pyscript:
pyscript-data-list: (
"remote-2026.3.1": pyscript-data(
"https://pyscript.net/releases/2026.3.1/core.js",
additionnal-head-tags: {
html.elem("script", attrs: (src: "/mini-coi.js")) // TODO: use <mini-coi> somehow? probably not supported in 0.15
html.elem("link", attrs: (rel: "stylesheet", href: "https://pyscript.net/releases/2026.3.1/core.css"))
},
)
),
pyscript-version: "remote-2026.3.1",
)
#lorem(400)
```python-run
n = ""
while not n.isnumeric():
n = input("enter a valid number: ")
for i in range(1, int(n) + 1):
if i % 3 == 0 and i % 5 == 0:
print("plopliplop")
elif i % 3 == 0:
print("plop")
elif i % 5 == 0:
print("plip")
else:
print(i)
```
```python-run
# /// script
# # requires-python = ">=3.11" # not supported yet
# dependencies = [
# "rich",
# ]
#
# [tool.pyscript]
# repl = true
# [tool.pyscript.files]
# "https://peps.python.org/api/peps.json" = "./peps.json"
# ///
import json
from rich.pretty import pprint
with open("./peps.json") as fd:
data = json.load(fd)
pprint([(k, v["title"]) for k, v in data.items()][:10])
# >>> print(data["723"]["title"])
# Inline script metadata
```
```python-run
# /// script
# # requires-python = ">=3.11" # not supported yet
# dependencies = [
# "rich",
# ]
#
# [tool.pyscript]
# repl = true
# hide-meta = true
# [tool.pyscript.files]
# "https://peps.python.org/api/peps.json" = "./peps.json"
# ///
# setting tool.pyscript.hide-meta to true will hide the `/// script` section
import json
from rich.pretty import pprint
with open("./peps.json") as fd:
data = json.load(fd)
pprint([(k, v["title"]) for k, v in data.items()][:10])
# >>> print(data["723"]["title"])
# Inline script metadata
```
```python-run
# /// script
# dependencies = [
# "pygame-ce",
# "./python-packages/isn_s_cube-0.1.0-py3-none-any.whl"
# ]
# [tool.pyscript]
# pygame = true
# ///
from isn_s_cube import wasm
await wasm()
```
#summ.card
Test, `this is not a code block`, end test.
```python
def plopliplop(n: int)
for i in range(n):
if i % 3 == 0 and i % 5 == 0:
print("plopliplop")
elif i % 3 == 0:
print("plop")
elif i % 5 == 0:
print("plip")
else:
print(i)
```
#raw(range(10).map(i => lorem(100)).join("\n"), block: true)
/*
#figure({
show table: set text(size: 0.80em)
table(
columns: 5,
//inset: (x: 0% + 5pt, y: 0% + 2pt),
stroke: none,
align: center+horizon,
table.hline(),
table.header(
table.cell(colspan: 5, inset: 3pt)[],
table.cell(rowspan: 2)[*SDK version*],
table.vline(end: 3),
table.vline(start: 4),
table.cell(colspan: 4)[*Number of API methods*],
[Documented], [In emulator], [Only documented], [Only in emulator],
),
table.cell(colspan: 5, inset: 3pt)[],
table.hline(),
table.cell(colspan: 5, inset: 3pt)[],
[32], [495713], [499837], [1060], [5184],
[33], [537427], [539236], [1258], [3067],
[34], [605106], [605098], [26], [18],
table.cell(colspan: 4, inset: 3pt)[],
table.hline(),
)},
caption: [Comparison of API methods between documentation and emulators],
)<tab:cl-platform_apis>
*/
```raw-css
table {
//border: 1px solid blue;
border-bottom: 1px solid #999999;
border-top: 1px solid #999999;
border-collapse: collapse;
margin: 0.4em;
}
th, td {
padding: 0.2em 0.5em;
}
td {
//border: 1px solid red;
}
thead {
border-bottom: 1px solid #999999;
}
```
/*
#table(
columns: 5,
//inset: (x: 0% + 5pt, y: 0% + 2pt),
//stroke: none,
align: center+horizon,
table.hline(),
table.header(
table.cell(rowspan: 2)[*SDK version*],
table.cell(colspan: 4)[*Number of API methods*],
table.cell(stroke: black)[Documented], [In emulator], [Only documented], [Only in emulator],
),
table.hline(),
[32], [495713], [499837], [1060], [5184],
[33], [537427], [539236], [1258], [3067],
[34], [605106], [605098], [26], [18],
table.hline(),
)
*/
#figure(
image(
"assets/smol-platypus.png",
alt: "A drawing of a blue-ish round-ish platypus with big eyes, holding a laptop. This platypus is quite cute, but I might be biased.",
),
caption: [A Platypus!]
)
#figure(
image(
"assets/big-platypus.png",
alt: "A drawing of a blue-ish round-ish platypus with big eyes, holding a laptop. This platypus is quite cute, but I might be biased.",
),
caption: [A Big Platypus!]
)
#let perm = (17, 6, 20, 19, 15, 5, 13, 11, 14, 12, 16, 10, 2, 3, 1, 9, 7, 4, 18, 8)
#let summaries = range(20).map(i =>
summary(
url: "http://test.example.com/tst/" + str(perm.at(i)),
title: "Card " + str(perm.at(i)),
tags: if perm.at(i) == 20 {
("tag2", "tag5","loooooonnnnnnnnnnnnnng-tag","some-tag","some-other-tag")
} else {
(2, 3, 5, 7).filter(j => calc.rem(perm.at(i), j) == 0).map(j => "tag" + str(j))
},
preview-image: summ.preview-image,
img-copyright: if calc.rem(i, 3) == 0 { [Histausse ] } else { none },
author: "Me!",
description: lorem(10 * calc.rem(i * 123, 10)),
date: datetime(year: 2000, month: 12, day: perm.at(i)),
)
)
#card-list(
min-width: 200,
summaries,
)

View file

@ -1,289 +1,32 @@
#import "@local/template-web:0.0.1": * #import "index.typ": summ, summaries
#import "@local/template-web:0.0.1": rss
#let summ = summary( #document(
url: "http://test.example.com", "index.html",
title: "TeTyTe", ..summ.document-args,
preview-image: image( include "index.typ"
"./platypus.png", )
alt: "A drawing of a blue-ish round-ish platypus with big eyes, holding a laptop. This platypus is quite cute, but I might be biased.", #asset(
), "/img/platypus.png",
author: "Me!", read("assets/platypus.png", encoding: none),
tags: ("test", "html/css", "typst"), ) <ico>
description: "Test of the TTT template", #asset(
date: datetime(year: 1942, month: 4, day: 1), "/mini-coi.js",
read("assets/mini-coi.js", encoding: none),
) <mini-coi>
#asset(
"/python-packages/isn_s_cube-0.1.0-py3-none-any.whl",
read("assets/isn_s_cube-0.1.0-py3-none-any.whl", encoding: none),
) )
#set document( #asset(
..summ.document-args "feed.rss",
) rss(
#show: webpage.with( "TeTyTe test typst template",
..summ.template-args, "https://test.example.com",
logo: image( "Test of the TTT template",
"./platypus.png", "https://test.example.com/rss.rss",
alt: "A drawing of a blue-ish round-ish platypus with big eyes, holding a laptop. This platypus is quite cute, but I might be biased.", summaries,
height: 100pt, webmaster: "me@example.com (Me)",
),
header: [
= Test TeTyTe
Hello World!
],
footer: context [
#sym.copyright #document.date.display("[year]") Histausse \
Please don't train AI on my stuff without explicit permission
],
nav-elements: (
/*
link(
"http://test.example.com",
image(
"./platypus.png",
alt: "A drawing of a blue-ish round-ish platypus with big eyes, holding a laptop. This platypus is quite cute, but I might be biased.",
height: 2em,
)
),*/
html.a(href: "http://test.example.com", aria-label: "Home", icons.home-icon), // /!\ aria-label is important for accessibility /!\
html.a(href: "http://test.example.com/feed.rss", aria-label: "RSS feed", icons.rss-icon),
),
menu: [
- #link("example.com")[Hello Void!]
- #link("example.com")[Demons]
- #link("example.com")[Run]
- #link("example.com")[When]
- #link("example.com")[A]
- #link("example.com")[Good]
- #link("example.com")[Man]
- #link("example.com")[Goes]
- #link("example.com")[To]
- #link("example.com")[War]
],
site-name: "TTT",
icon: "https://jean-marie.mineau.eu/website_assets/platypus.png",
// Pyscript:
pyscript-data-list: (
"remote-2026.3.1": pyscript-data(
"https://pyscript.net/releases/2026.3.1/core.js",
additionnal-head-tags: {
html.elem("script", attrs: (src: "./mini-coi.js"))
html.elem("link", attrs: (rel: "stylesheet", href: "https://pyscript.net/releases/2026.3.1/core.css"))
},
)
),
pyscript-version: "remote-2026.3.1",
)
#lorem(400)
```python-run
n = ""
while not n.isnumeric():
n = input("enter a valid number: ")
for i in range(1, int(n) + 1):
if i % 3 == 0 and i % 5 == 0:
print("plopliplop")
elif i % 3 == 0:
print("plop")
elif i % 5 == 0:
print("plip")
else:
print(i)
```
```python-run
# /// script
# # requires-python = ">=3.11" # not supported yet
# dependencies = [
# "rich",
# ]
#
# [tool.pyscript]
# repl = true
# [tool.pyscript.files]
# "https://peps.python.org/api/peps.json" = "./peps.json"
# ///
import json
from rich.pretty import pprint
with open("./peps.json") as fd:
data = json.load(fd)
pprint([(k, v["title"]) for k, v in data.items()][:10])
# >>> print(data["723"]["title"])
# Inline script metadata
```
```python-run
# /// script
# # requires-python = ">=3.11" # not supported yet
# dependencies = [
# "rich",
# ]
#
# [tool.pyscript]
# repl = true
# hide-meta = true
# [tool.pyscript.files]
# "https://peps.python.org/api/peps.json" = "./peps.json"
# ///
# setting tool.pyscript.hide-meta to true will hide the `/// script` section
import json
from rich.pretty import pprint
with open("./peps.json") as fd:
data = json.load(fd)
pprint([(k, v["title"]) for k, v in data.items()][:10])
# >>> print(data["723"]["title"])
# Inline script metadata
```
```python-run
# /// script
# dependencies = [
# "pygame-ce",
# "./isn_s_cube-0.1.0-py3-none-any.whl"
# ]
# [tool.pyscript]
# pygame = true
# ///
from isn_s_cube import wasm
await wasm()
```
#summ.card
Test, `this is not a code block`, end test.
```python
def plopliplop(n: int)
for i in range(n):
if i % 3 == 0 and i % 5 == 0:
print("plopliplop")
elif i % 3 == 0:
print("plop")
elif i % 5 == 0:
print("plip")
else:
print(i)
```
#raw(range(10).map(i => lorem(100)).join("\n"), block: true)
/*
#figure({
show table: set text(size: 0.80em)
table(
columns: 5,
//inset: (x: 0% + 5pt, y: 0% + 2pt),
stroke: none,
align: center+horizon,
table.hline(),
table.header(
table.cell(colspan: 5, inset: 3pt)[],
table.cell(rowspan: 2)[*SDK version*],
table.vline(end: 3),
table.vline(start: 4),
table.cell(colspan: 4)[*Number of API methods*],
[Documented], [In emulator], [Only documented], [Only in emulator],
),
table.cell(colspan: 5, inset: 3pt)[],
table.hline(),
table.cell(colspan: 5, inset: 3pt)[],
[32], [495713], [499837], [1060], [5184],
[33], [537427], [539236], [1258], [3067],
[34], [605106], [605098], [26], [18],
table.cell(colspan: 4, inset: 3pt)[],
table.hline(),
)},
caption: [Comparison of API methods between documentation and emulators],
)<tab:cl-platform_apis>
*/
```raw-css
table {
//border: 1px solid blue;
border-bottom: 1px solid #999999;
border-top: 1px solid #999999;
border-collapse: collapse;
margin: 0.4em;
}
th, td {
padding: 0.2em 0.5em;
}
td {
//border: 1px solid red;
}
thead {
border-bottom: 1px solid #999999;
}
```
/*
#table(
columns: 5,
//inset: (x: 0% + 5pt, y: 0% + 2pt),
//stroke: none,
align: center+horizon,
table.hline(),
table.header(
table.cell(rowspan: 2)[*SDK version*],
table.cell(colspan: 4)[*Number of API methods*],
table.cell(stroke: black)[Documented], [In emulator], [Only documented], [Only in emulator],
),
table.hline(),
[32], [495713], [499837], [1060], [5184],
[33], [537427], [539236], [1258], [3067],
[34], [605106], [605098], [26], [18],
table.hline(),
)
*/
#figure(
image(
"./smol-platypus.png",
alt: "A drawing of a blue-ish round-ish platypus with big eyes, holding a laptop. This platypus is quite cute, but I might be biased.",
),
caption: [A Platypus!]
)
#figure(
image(
"./big-platypus.png",
alt: "A drawing of a blue-ish round-ish platypus with big eyes, holding a laptop. This platypus is quite cute, but I might be biased.",
),
caption: [A Big Platypus!]
)
#let perm = (17, 6, 20, 19, 15, 5, 13, 11, 14, 12, 16, 10, 2, 3, 1, 9, 7, 4, 18, 8)
#let summaries = range(20).map(i =>
summary(
url: "http://test.example.com/tst/" + str(perm.at(i)),
title: "Card " + str(perm.at(i)),
tags: if perm.at(i) == 20 {
("tag2", "tag5","loooooonnnnnnnnnnnnnng-tag","some-tag","some-other-tag")
} else {
(2, 3, 5, 7).filter(j => calc.rem(perm.at(i), j) == 0).map(j => "tag" + str(j))
},
preview-image: summ.preview-image,
img-copyright: if calc.rem(i, 3) == 0 { [Histausse ] } else { none },
author: "Me!",
description: lorem(10 * calc.rem(i * 123, 10)),
date: datetime(year: 2000, month: 12, day: perm.at(i)),
) )
) )
#card-list(
min-width: 200,
summaries,
)
#raw(lang: "xml", block: true, rss(
"TeTyTe test typst template",
"https://test.example.com",
"Test of the TTT template",
"https://test.example.com/rss.rss",
summaries,
webmaster: "me@example.com (Me)",
))

178
test_template/main/feed.rss Normal file
View file

@ -0,0 +1,178 @@
<rss xmlns:atom="http://www.w3.org/2005/Atom" version="2.0">
<channel>
<title>TeTyTe test typst template</title>
<link>https://test.example.com</link>
<description>Test of the TTT template</description>
<language>en-us</language>
<lastBuildDate>16 Jun 2026 00:00:01 +0000</lastBuildDate>
<docs>https://www.rssboard.org/rss-specification</docs>
<generator>Some random Typst scrypt</generator>
<atom:link href="https://test.example.com/rss.rss" rel="self" type="application/rss+xml"/>
<webMaster>me@example.com (Me)</webMaster>
<item>
<title>Card 20</title>
<link>http://test.example.com/tst/20</link>
<guid>http://test.example.com/tst/20</guid>
<description>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magnam aliquam quaerat voluptatem. Ut enim aeque doleamus animo, cum corpore dolemus, fieri tamen permagna accessio potest, si aliquod aeternum et infinitum impendere malum nobis opinemur. Quod idem licet transferre in voluptatem, ut postea variari voluptas distinguique possit, augeri amplificarique non possit. At.</description>
<pubDate>20 Dec 2000 00:00:01 +0000</pubDate>
<category>tag2</category>
<category>tag5</category>
<category>loooooonnnnnnnnnnnnnng-tag</category>
<category>some-tag</category>
<category>some-other-tag</category>
</item>
<item>
<title>Card 19</title>
<link>http://test.example.com/tst/19</link>
<guid>http://test.example.com/tst/19</guid>
<description>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magnam aliquam quaerat voluptatem. Ut enim aeque doleamus animo, cum corpore dolemus, fieri tamen permagna accessio potest, si aliquod aeternum et infinitum impendere malum nobis opinemur. Quod idem licet transferre in voluptatem, ut postea variari voluptas distinguique possit, augeri amplificarique non possit. At etiam Athenis, ut e patre audiebam facete et urbane Stoicos irridente, statua est in quo a nobis philosophia defensa et collaudata est, cum id, quod maxime placeat, facere possimus, omnis.</description>
<pubDate>19 Dec 2000 00:00:01 +0000</pubDate>
</item>
<item>
<title>Card 18</title>
<link>http://test.example.com/tst/18</link>
<guid>http://test.example.com/tst/18</guid>
<description>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magnam aliquam quaerat voluptatem. Ut enim aeque doleamus animo, cum corpore dolemus, fieri tamen permagna accessio potest, si aliquod aeternum et infinitum impendere.</description>
<pubDate>18 Dec 2000 00:00:01 +0000</pubDate>
<category>tag2</category>
<category>tag3</category>
</item>
<item>
<title>Card 17</title>
<link>http://test.example.com/tst/17</link>
<guid>http://test.example.com/tst/17</guid>
<description></description>
<pubDate>17 Dec 2000 00:00:01 +0000</pubDate>
</item>
<item>
<title>Card 16</title>
<link>http://test.example.com/tst/16</link>
<guid>http://test.example.com/tst/16</guid>
<description></description>
<pubDate>16 Dec 2000 00:00:01 +0000</pubDate>
<category>tag2</category>
</item>
<item>
<title>Card 15</title>
<link>http://test.example.com/tst/15</link>
<guid>http://test.example.com/tst/15</guid>
<description>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magnam aliquam quaerat.</description>
<pubDate>15 Dec 2000 00:00:01 +0000</pubDate>
<category>tag3</category>
<category>tag5</category>
</item>
<item>
<title>Card 14</title>
<link>http://test.example.com/tst/14</link>
<guid>http://test.example.com/tst/14</guid>
<description>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magnam aliquam quaerat voluptatem. Ut enim aeque doleamus animo, cum corpore dolemus, fieri tamen permagna accessio potest, si aliquod aeternum et infinitum impendere.</description>
<pubDate>14 Dec 2000 00:00:01 +0000</pubDate>
<category>tag2</category>
<category>tag7</category>
</item>
<item>
<title>Card 13</title>
<link>http://test.example.com/tst/13</link>
<guid>http://test.example.com/tst/13</guid>
<description>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magnam aliquam quaerat voluptatem. Ut enim aeque doleamus animo, cum corpore dolemus, fieri tamen permagna accessio potest, si aliquod aeternum et infinitum impendere malum nobis opinemur. Quod idem licet transferre in voluptatem, ut postea variari voluptas distinguique possit, augeri amplificarique non possit. At etiam Athenis, ut e patre audiebam facete et urbane Stoicos irridente, statua est in quo a nobis philosophia defensa et.</description>
<pubDate>13 Dec 2000 00:00:01 +0000</pubDate>
</item>
<item>
<title>Card 12</title>
<link>http://test.example.com/tst/12</link>
<guid>http://test.example.com/tst/12</guid>
<description>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magnam aliquam quaerat voluptatem. Ut enim aeque doleamus animo, cum corpore dolemus, fieri tamen permagna accessio potest, si aliquod aeternum et infinitum impendere malum nobis opinemur. Quod idem licet transferre in voluptatem, ut postea variari voluptas distinguique possit, augeri amplificarique non possit. At etiam Athenis, ut e patre audiebam facete et urbane Stoicos.</description>
<pubDate>12 Dec 2000 00:00:01 +0000</pubDate>
<category>tag2</category>
<category>tag3</category>
</item>
<item>
<title>Card 11</title>
<link>http://test.example.com/tst/11</link>
<guid>http://test.example.com/tst/11</guid>
<description>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do.</description>
<pubDate>11 Dec 2000 00:00:01 +0000</pubDate>
</item>
<item>
<title>Card 10</title>
<link>http://test.example.com/tst/10</link>
<guid>http://test.example.com/tst/10</guid>
<description>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magnam aliquam quaerat voluptatem. Ut enim aeque doleamus animo, cum corpore dolemus, fieri.</description>
<pubDate>10 Dec 2000 00:00:01 +0000</pubDate>
<category>tag2</category>
<category>tag5</category>
</item>
<item>
<title>Card 9</title>
<link>http://test.example.com/tst/9</link>
<guid>http://test.example.com/tst/9</guid>
<description>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magnam aliquam quaerat voluptatem. Ut enim aeque doleamus animo, cum corpore dolemus, fieri tamen permagna accessio potest, si aliquod aeternum et infinitum impendere malum nobis opinemur. Quod idem licet transferre in voluptatem, ut.</description>
<pubDate>09 Dec 2000 00:00:01 +0000</pubDate>
<category>tag3</category>
</item>
<item>
<title>Card 8</title>
<link>http://test.example.com/tst/8</link>
<guid>http://test.example.com/tst/8</guid>
<description>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magnam aliquam quaerat voluptatem. Ut enim aeque doleamus animo, cum corpore dolemus, fieri tamen permagna accessio potest, si aliquod aeternum et infinitum impendere malum nobis opinemur. Quod idem licet transferre in voluptatem, ut postea variari voluptas distinguique possit, augeri amplificarique non possit. At etiam Athenis, ut e patre audiebam facete et urbane Stoicos.</description>
<pubDate>08 Dec 2000 00:00:01 +0000</pubDate>
<category>tag2</category>
</item>
<item>
<title>Card 7</title>
<link>http://test.example.com/tst/7</link>
<guid>http://test.example.com/tst/7</guid>
<description>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magnam aliquam quaerat voluptatem. Ut enim aeque doleamus animo, cum corpore dolemus, fieri tamen permagna accessio potest, si aliquod aeternum et infinitum impendere malum nobis opinemur. Quod idem licet transferre in voluptatem, ut postea variari voluptas distinguique possit, augeri amplificarique non possit. At etiam Athenis, ut e patre audiebam facete et urbane Stoicos irridente, statua est in quo a nobis philosophia defensa et.</description>
<pubDate>07 Dec 2000 00:00:01 +0000</pubDate>
<category>tag7</category>
</item>
<item>
<title>Card 6</title>
<link>http://test.example.com/tst/6</link>
<guid>http://test.example.com/tst/6</guid>
<description>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magnam aliquam quaerat voluptatem. Ut enim aeque doleamus animo, cum corpore dolemus, fieri.</description>
<pubDate>06 Dec 2000 00:00:01 +0000</pubDate>
<category>tag2</category>
<category>tag3</category>
</item>
<item>
<title>Card 5</title>
<link>http://test.example.com/tst/5</link>
<guid>http://test.example.com/tst/5</guid>
<description>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magnam aliquam quaerat voluptatem. Ut enim aeque doleamus animo, cum corpore dolemus, fieri tamen permagna accessio potest, si aliquod aeternum et infinitum impendere malum nobis opinemur. Quod idem licet transferre in voluptatem, ut.</description>
<pubDate>05 Dec 2000 00:00:01 +0000</pubDate>
<category>tag5</category>
</item>
<item>
<title>Card 4</title>
<link>http://test.example.com/tst/4</link>
<guid>http://test.example.com/tst/4</guid>
<description>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do.</description>
<pubDate>04 Dec 2000 00:00:01 +0000</pubDate>
<category>tag2</category>
</item>
<item>
<title>Card 3</title>
<link>http://test.example.com/tst/3</link>
<guid>http://test.example.com/tst/3</guid>
<description>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magnam aliquam quaerat voluptatem. Ut enim aeque doleamus animo, cum corpore dolemus, fieri tamen permagna accessio potest, si aliquod aeternum et infinitum impendere malum nobis opinemur. Quod idem licet transferre in voluptatem, ut postea variari voluptas distinguique possit, augeri amplificarique non possit. At etiam Athenis, ut e patre audiebam facete et urbane Stoicos irridente, statua est in quo a nobis philosophia defensa et collaudata est, cum id, quod maxime placeat, facere possimus, omnis.</description>
<pubDate>03 Dec 2000 00:00:01 +0000</pubDate>
<category>tag3</category>
</item>
<item>
<title>Card 2</title>
<link>http://test.example.com/tst/2</link>
<guid>http://test.example.com/tst/2</guid>
<description>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magnam aliquam quaerat voluptatem. Ut enim aeque doleamus animo, cum corpore dolemus, fieri tamen permagna accessio potest, si aliquod aeternum et infinitum impendere malum nobis opinemur. Quod idem licet transferre in voluptatem, ut postea variari voluptas distinguique possit, augeri amplificarique non possit. At.</description>
<pubDate>02 Dec 2000 00:00:01 +0000</pubDate>
<category>tag2</category>
</item>
<item>
<title>Card 1</title>
<link>http://test.example.com/tst/1</link>
<guid>http://test.example.com/tst/1</guid>
<description>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magnam aliquam quaerat.</description>
<pubDate>01 Dec 2000 00:00:01 +0000</pubDate>
</item>
</channel>
</rss>

Binary file not shown.

After

Width:  |  Height:  |  Size: 344 KiB

File diff suppressed because one or more lines are too long

View file

@ -0,0 +1,32 @@
/*! coi-serviceworker v0.1.7 - Guido Zuidhof and contributors, licensed under MIT */
/*! mini-coi - Andrea Giammarchi and contributors, licensed under MIT */
/** FEATURE DETECTION VERSION - COMPATIBLE WITH SERVERS THAT DO NOT SUPPORT COI */
(({ document: d, navigator: { serviceWorker: s } }) => {
if (d) {
try { new SharedArrayBuffer(4, { maxByteLength: 8 }) }
catch (_) {
const { currentScript: c } = d;
s.register(c.src, { scope: c.getAttribute('scope') || '.' }).then(r => {
r.addEventListener('updatefound', () => location.reload());
if (r.active && !s.controller) location.reload();
});
}
}
else {
addEventListener('install', () => skipWaiting());
addEventListener('activate', e => e.waitUntil(clients.claim()));
addEventListener('fetch', e => {
const { request: r } = e;
if (r.cache === 'only-if-cached' && r.mode !== 'same-origin') return;
e.respondWith(fetch(r).then(r => {
const { body, status, statusText } = r;
if (!status || status > 399) return r;
const h = new Headers(r.headers);
h.set('Cross-Origin-Opener-Policy', 'same-origin');
h.set('Cross-Origin-Embedder-Policy', 'require-corp');
h.set('Cross-Origin-Resource-Policy', 'cross-origin');
return new Response(status == 204 ? null : body, { status, statusText, headers: h });
}));
});
}
})(self);