diff --git a/example/sprokkel.uint.one/assets/emoji_u1f54a.svg b/example/sprokkel.uint.one/assets/emoji_u1f54a.svg new file mode 100644 index 0000000..da10e61 --- /dev/null +++ b/example/sprokkel.uint.one/assets/emoji_u1f54a.svg @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/example/sprokkel.uint.one/assets/fonts/DejaVuSans-Bold.woff2 b/example/sprokkel.uint.one/assets/fonts/DejaVuSans-Bold.woff2 new file mode 100644 index 0000000..25305d7 Binary files /dev/null and b/example/sprokkel.uint.one/assets/fonts/DejaVuSans-Bold.woff2 differ diff --git a/example/sprokkel.uint.one/assets/fonts/DejaVuSerif-Bold.woff2 b/example/sprokkel.uint.one/assets/fonts/DejaVuSerif-Bold.woff2 new file mode 100644 index 0000000..55d7283 Binary files /dev/null and b/example/sprokkel.uint.one/assets/fonts/DejaVuSerif-Bold.woff2 differ diff --git a/example/sprokkel.uint.one/assets/fonts/DejaVuSerif-Italic.woff2 b/example/sprokkel.uint.one/assets/fonts/DejaVuSerif-Italic.woff2 new file mode 100644 index 0000000..f8830ab Binary files /dev/null and b/example/sprokkel.uint.one/assets/fonts/DejaVuSerif-Italic.woff2 differ diff --git a/example/sprokkel.uint.one/assets/fonts/DejaVuSerif.woff2 b/example/sprokkel.uint.one/assets/fonts/DejaVuSerif.woff2 new file mode 100644 index 0000000..ad1f321 Binary files /dev/null and b/example/sprokkel.uint.one/assets/fonts/DejaVuSerif.woff2 differ diff --git a/example/sprokkel.uint.one/assets/fonts/SourceSans3-600-Regular.woff2 b/example/sprokkel.uint.one/assets/fonts/SourceSans3-600-Regular.woff2 new file mode 100644 index 0000000..2fad3e7 Binary files /dev/null and b/example/sprokkel.uint.one/assets/fonts/SourceSans3-600-Regular.woff2 differ diff --git a/example/sprokkel.uint.one/assets/js/main.js b/example/sprokkel.uint.one/assets/js/main.js new file mode 100644 index 0000000..8a75b23 --- /dev/null +++ b/example/sprokkel.uint.one/assets/js/main.js @@ -0,0 +1,38 @@ +(() => { + // + var ColorScheme = { + Light: "light", + Dark: "dark" + }; + function defaultColorScheme() { + if (window.matchMedia && window.matchMedia("(prefers-color-scheme: dark)").matches) { + return ColorScheme.Dark; + } else { + return ColorScheme.Light; + } + } + function hydrateColorScheme() { + let cs = localStorage.getItem("color-scheme"); + if (cs === null) { + cs = defaultColorScheme(); + } + if (cs === ColorScheme.Dark) { + document.documentElement.classList.add("dark"); + } + } + function listenColorSchemeToggle() { + document.querySelector("#color-scheme-toggle").onclick = () => { + document.documentElement.classList.toggle("dark"); + if (document.documentElement.classList.contains("dark")) { + localStorage.setItem("color-scheme", "dark"); + } else { + localStorage.setItem("color-scheme", "light"); + } + }; + } + function main() { + hydrateColorScheme(); + window.addEventListener("load", () => listenColorSchemeToggle()); + } + main(); +})(); diff --git a/example/sprokkel.uint.one/cat/css/style.css/fonts.css b/example/sprokkel.uint.one/cat/css/style.css/fonts.css new file mode 100644 index 0000000..8b9f2b2 --- /dev/null +++ b/example/sprokkel.uint.one/cat/css/style.css/fonts.css @@ -0,0 +1,34 @@ +@font-face { + font-family: "Source Sans 3"; + src: url("/fonts/SourceSans3-600-Regular.woff2") format("woff2"); + font-weight: 600; + font-style: normal; +} + +@font-face { + font-family: "DejaVu Serif"; + src: url("/fonts/DejaVuSerif.woff2") format("woff2"); + font-weight: 400; + font-style: normal; +} + +@font-face { + font-family: "DejaVu Serif"; + src: url("/fonts/DejaVuSerif-Italic.woff2") format("woff2"); + font-weight: 400; + font-style: italic; +} + +@font-face { + font-family: "DejaVu Serif"; + src: url("/fonts/DejaVuSerif-Bold.woff2") format("woff2"); + font-weight: 600; + font-style: italic; +} + +@font-face { + font-family: "DejaVu Sans"; + src: url("/fonts/DejaVuSans-Bold.woff2") format("woff2"); + font-weight: 600; + font-style: normal; +} diff --git a/example/sprokkel.uint.one/cat/css/style.css/highlight.css b/example/sprokkel.uint.one/cat/css/style.css/highlight.css new file mode 100644 index 0000000..0b2e303 --- /dev/null +++ b/example/sprokkel.uint.one/cat/css/style.css/highlight.css @@ -0,0 +1,23 @@ +pre { + background-color: var(--bgHighlight); + padding: 1em; + overflow: auto; +} + +pre code { + .keyword, .string.special { + font-weight: bold; + } + + .comment, .string { + color: var(--textHighlight); + } + + .comment { + font-style: italic; + } + + .type { + color: var(--textHighlight); font-weight: bold; + } +} diff --git a/example/sprokkel.uint.one/cat/css/style.css/main.css b/example/sprokkel.uint.one/cat/css/style.css/main.css new file mode 100644 index 0000000..201fb78 --- /dev/null +++ b/example/sprokkel.uint.one/cat/css/style.css/main.css @@ -0,0 +1,350 @@ +:root { + --maxWidth: 60rem; + --horizontalPadding: 1rem; + --bgColor: #f7f0e6; + --bgHighlight: #e1dbd1; + --textColor: #11110f; + --textHighlight: #66470a; + --themeColor: #d9ae5c; + --footerTextColor: #978e84; + --logoRgbOpacity: 0.5; + --logoRgbBrightness: 180; +} + +:root.dark { + /* --bgColor: #14100a; */ + --bgColor: #1a1610; + --bgHighlight: #2d2a22; + --textColor: #eae2d3; + --textHighlight: #bc9b5c; + --themeColor: #a8722d; + --footerTextColor: #8a8376; + --logoRgbOpacity: 0.5; + --logoRgbBrightness: 240; +} + +html { + box-sizing: border-box; + font: + 18px/28px "DejaVu Serif", + serif; +} + +body > section { + display: flex; + flex-direction: row; + gap: 2rem; + + > nav { + width: 11.5rem; + + header { + font-family: "DejaVu Sans", sans-serif; + font-size: 1.2rem; + font-weight: 600; + margin-bottom: 0.5rem; + } + + > ul > li { + margin-bottom: 2rem; + } + + ul { + list-style: none; + margin: 0; + padding: 0; + + li:not(:first-child) { + margin-top: 0.5rem; + } + } + } + + > main { + flex: 1; + overflow: hidden; + + h1 { + margin-top: 0; + } + } +} + +h1 { + font-size: 2rem; +} + +h2 { + font-size: 1.4rem; +} + +h3 { + font-size: 1.2rem; +} + +h4 { + font-size: 1.1rem; +} + +h5 { + font-size: 1rem; +} + +h6 { + font-size: 1rem; +} + +h1, +h2, +h3, +h4, +h5, +h6 { + font-family: "DejaVu Sans", sans-serif; + line-height: 1.1em; + font-weight: 600; +} + +code { + font-family: "Source Code Pro", monospace; +} + +*, +*:before, +*:after { + box-sizing: inherit; +} + +body { + background-color: var(--bgColor); + color: var(--textColor); + max-width: var(--maxWidth); + margin: 0 auto; + padding: 1rem; + padding: 0 var(--horizontalPadding); +} + +/* p { + text-align: justify; + hyphens: auto; +} */ + +a.unstyled { + text-decoration: none; + color: inherit; +} + +a:not(.unstyled)[href]:hover { + background-color: color-mix(in srgb, var(--themeColor), transparent 50%); +} + +a:not(.unstyled)[href] { + border-bottom: 0.2rem solid var(--themeColor); + text-decoration: none; + color: inherit; +} + +.site-header { + margin-bottom: 3rem; + margin-top: 0.5rem; + display: flex; + flex-direction: row; + align-items: center; +} + +.header-home { + flex: 1; +} + +.header-home svg { + height: 1.9rem; + width: auto; +} + +.header-home svg path { + fill: black !important; +} + +.header-menu { + flex: 1; + display: flex; + justify-content: flex-end; +} + +.header-menu div { + margin-left: 1ch; +} + +.header-logo svg { + height: 3rem; + width: auto; +} + +.header-logo { + flex: 0; + white-space: nowrap; + font-size: 1.7rem; + line-height: 1; + font-weight: 600; +} +.header-logo img, +.footer-logo img { + height: 2em; + margin-bottom: -0.6em; +} + +#color-scheme-toggle { + background-color: inherit; + border: none; + padding: 0; + position: relative; + line-height: inherit; + font-size: inherit; + cursor: pointer; + display: inline; +} + +#color-scheme-toggle > span { + opacity: 0; + transition: opacity 0.4s ease-in-out; +} + +#color-scheme-toggle > .dark { + position: absolute; +} + +:root.dark #color-scheme-toggle > .dark { + opacity: 100; +} + +:root:not(.dark) #color-scheme-toggle > .light { + opacity: 100; +} + +#logo { + width: 20em; + height: 20em; + border: 1px solid var(--themeColor); +} + +.site-footer { + margin-top: 3rem; + border-top: 1px dashed var(--themeColor); + padding: 1rem 0 1rem 0; + display: flex; + align-items: center; + color: var(--footerTextColor); +} + +.footer-logo { + margin-right: 2rem; +} + +.footer-logo svg { + height: 2rem; + width: auto; +} + +.footer-logo svg path { + fill: var(--footerTextColor) !important; +} + +.footer-menu { + flex: 1; + display: flex; + gap: 1ch; + justify-content: right; +} + +.post-listing { + display: flex; + flex-direction: column; + gap: 3rem; +} + +.post-nav { + margin-top: 3rem; + display: flex; + gap: 2rem; +} + +.post-nav :first-child { + flex: 1 1 0; +} + +.post-nav :last-child { + flex: 1 1 0; + text-align: right; +} + +.paginator { + margin-top: 3rem; + display: flex; + gap: 2rem; +} + +.paginator :first-child { + flex: 1 1 0; +} + +.paginator :last-child { + flex: 1 1 0; + text-align: right; +} + +.highlight > pre { + padding: 1em; + overflow: auto; +} + +.post-content > pre { + background-color: var(--bgHighlight); + overflow: auto; +} + +.post-content > blockquote { + /* Do not collapse margins */ + overflow: auto; + margin-left: 0; + margin-right: 0; + background-color: var(--bgHighlight); +} + +.post-content > blockquote > p { + padding-left: 2rem; +} + +.post-content figure { + text-align: center; +} + +.post-content figure > a { + border-bottom: none !important; + background-color: initial !important; +} + +.post-content img.small { + width: 50%; +} + +.post-content img.medium { + width: 75%; +} + +.post-content table th + th, +.post-content table td + td { + padding-left: 1.5rem; +} + +.post-content table th { + border-bottom: 1px solid var(--bgHighlight); +} + +.post-content table thead th { + border-bottom: 1px solid var(--bgHighlight); +} + +.post-content .math { + overflow: auto; + font-size: 1.1em; +} diff --git a/example/sprokkel.uint.one/entries/assets/10_static-assets.dj b/example/sprokkel.uint.one/entries/assets/10_static-assets.dj new file mode 100644 index 0000000..5471d78 --- /dev/null +++ b/example/sprokkel.uint.one/entries/assets/10_static-assets.dj @@ -0,0 +1,30 @@ +# Static assets + +Sprokkel supports two types of asset. + +## ./assets + +Static assets must be placed in `./assets`. These are copied as-is to the +output directory, preserving the directory structure. For example, a file +`./assets/foo/bar/baz.qux` is copied to `./out/foo/bar/baz.qux`. + +### ./cat 🐈‍⬛ + +_Cat_ assets are placed in `./cat`. These are concatenated to a single output +file per directory. The directory structure of `cat` must be a tree where only +leaf nodes contain files. For example: + +``` +./cat +├── css +│ └── style.css +│ ├── 00_fonts.css +│ ├── 01_highlight.css +│ └── 02_main.css +└── js + └── main.js + ├── 00_colorscheme_toggle.js + └── 01_email_obfuscator.js +``` + +This produces two files: `./out/css/style.css` and `./out/js/main.js`. diff --git a/example/sprokkel.uint.one/entries/entries/10_writing.dj b/example/sprokkel.uint.one/entries/entries/10_writing.dj new file mode 100644 index 0000000..caec148 --- /dev/null +++ b/example/sprokkel.uint.one/entries/entries/10_writing.dj @@ -0,0 +1,82 @@ +# Writing entries + +Entries are written in the [Djot markup language](https://github.com/jgm/djot). + +## Groups + +Every entry belongs to a group. Every group can have its own template for +rendering its entries, and in your site's templates you can enumerate entries +by group. For example, you may have a group "blog" and a group "pages". + +## Directory structure + +Sprokkel collects all files that end with the `.dj` file extension in +`./entries/` directories. Entries can also be placed in their own +directory to manage [related assets](~/assets/10_static-assets) such as images +easily; for this case, Sprokkel looks for files named `index.dj` one directory +deeper. + +For example, the following are valid entry locations: + +``` +./entries +├── blog +│ ├── 2024-03-12-something +│ │ ├── index.dj +│ │ └── image.svg +│ └── 2024-04-24-something-else.dj +└── pages + └── foobar.dj +``` + +## Ordering and permalinks + +Entries are sorted by their file names. Entries' slugs are equal to their file +names, but to aid custom ordering, anything up to and including the first +underscore is dropped. If the part before the underscore can be parsed as a +date (and optional time), it is used the entry's publish date and time. + +| filename | slug | date(+time) | +|---|---| +| `2024-03-12_something` | `something` | 2024-03-12 | +| `2024-04-24_foo-bar` | `foo-bar` | 2024-04-24 | +| `2024-04-24_foo-baz` | `foo-baz` | 2024-04-24 | +| `2024-04-24T122400_with-a-time` | `with-a-time` | 2024-04-24T12:24:00 | +| `something-else-entirely` | `something-else-entirely` |---| + +The date format is `YYYY-MM-DD`. The date plus time format is +`YYYY-MM-DDThhmmss`. Time zones are not supported to ensure the lexicographical +ordering of entries' file names is equal to their chronological order of date +and times. Consider hardcoding a specific timezone in the +[template](~/templates/10_entry-templates) instead. + +## Titles + +If an entry starts with a level-1 heading, it is used as the entry's title. For +example, the following entry has title "Foo _bar_". If no title is given, the +slug is used as the entry's title. + +```djot +# Foo _bar_ + +Lorem ipsum... +``` + +## Front matter + +To customize some behavior and meta-information related to entries, use [front +matter](~/entries/20_front-matter). + +## Links + +You can link between entries using their file names (without extensions). +Sprokkel rewrites such links to the absolute URL of the target entry. For +example: + + +```djot +In a [previous post](~/blog/2024-04-10_previous_post), ... +``` + +These internals links are recorded as a back-references in links' target +entries, and available in [templates](~/templates/10_entry-templates). diff --git a/example/sprokkel.uint.one/entries/entries/20_front-matter.dj b/example/sprokkel.uint.one/entries/entries/20_front-matter.dj new file mode 100644 index 0000000..a3a2307 --- /dev/null +++ b/example/sprokkel.uint.one/entries/entries/20_front-matter.dj @@ -0,0 +1,41 @@ ++++ +release = true + +[extra] +numbers = [ 1, 42, 1900 ] +handy = true ++++ + +# Front matter + +Entries can have front matter by starting the entry with `+++`, followed by a +TOML document, and ending with `+++` on its own line. YAML is discouraged, but +is supported for porting old content. To use YAML, enclose the front matter in +`---` instead. + +Front matter can be anything. It is made available in templates under the +`entry.front_matter` variable. Currently only the `release` key is used by +Sprokkel, but that may change in the future. To be safe, nest your document +under `extra`. + +## Example + +``` ++++ +release = true + +[extra] +numbers = [ 1, 42, 1900 ] +handy = true ++++ + +# Front matter + +... +``` + +This makes available: + +- `entry.front_matter.release` +- `entry.front_matter.extra.numbers` +- `entry.front_matter.extra.handy` diff --git a/example/sprokkel.uint.one/entries/entries/30_syntax-highlighting.dj b/example/sprokkel.uint.one/entries/entries/30_syntax-highlighting.dj new file mode 100644 index 0000000..a4e005f --- /dev/null +++ b/example/sprokkel.uint.one/entries/entries/30_syntax-highlighting.dj @@ -0,0 +1,34 @@ +# Syntax highlighting + +Sprokkel can perform build-time syntax highlighting using +[tree-sitter](https://tree-sitter.github.io/tree-sitter). + +To syntax highlight, use a code fence (\`\`\`) with a language name. For example + +````djot +Define some species of Brassica... + +```rust +#[non_exhaustive] +enum Brassica { + Broccoli, + Cabbage, + Cauliflower, + Kale, + PakChoi, +} +``` +```` + +The currently-supported languages are: + +| language | recognized names | +|:-- |:-- | +| Bash | bash, sh, shell | +| C | c | +| C++ | cpp, c++ | +| Djot | djot | +| Nix | nix | +| Python | python | +| Rust | rust | +| TypeScript | typescript,ts, javascript, js | diff --git a/example/sprokkel.uint.one/entries/getting-started/10_installation.dj b/example/sprokkel.uint.one/entries/getting-started/10_installation.dj new file mode 100644 index 0000000..679194e --- /dev/null +++ b/example/sprokkel.uint.one/entries/getting-started/10_installation.dj @@ -0,0 +1,24 @@ ++++ +release = "true" ++++ + +# Installation + +It is unlikely Sprokkel is packaged by your OS distribution. + +You can install it using Cargo: + +```bash +$ cargo install sprokkel + +# With katex-based LaTeX to MathML rendering +$ cargo install sprokkel --features katex + +$ sprokkel --help +``` + +Or use the provided [Nix](https://nixos.org) flake: + +```bash +$ nix run .# -- --help +``` diff --git a/example/sprokkel.uint.one/entries/getting-started/20_usage.dj b/example/sprokkel.uint.one/entries/getting-started/20_usage.dj new file mode 100644 index 0000000..e9e3b3e --- /dev/null +++ b/example/sprokkel.uint.one/entries/getting-started/20_usage.dj @@ -0,0 +1,41 @@ +# Usage + +Sprokkel builds output files to `./out`. To build a site for release: + +```bash +$ sprokkel build +``` + +To build every time the site changes: + +```bash +$ sprokkel build --watch +``` + +Sprokkel generates the site from files in the working directory by default. You +can specify a different directory: + +```bash +$ sprokkel build --watch ./path/to/site +``` + +Unless specified otherwise, Sprokkel generates production builds. Only +explicitly released entries are included in these builds. To let sprokkel +generate a development build, indicate it using the `--develop` flag, e.g.: + +```bash +$ sprokkel build --develop --watch +``` + +Sprokkel does not currently have an HTTP server built in. If you have Python +available on your development machine, you can use it to serve files: + +```bash +python3 -m http.server 8080 -d ./out +``` + +For more CLI information, see: + +```bash +$ sprokkel --help +``` diff --git a/example/sprokkel.uint.one/entries/getting-started/30_site-config.dj b/example/sprokkel.uint.one/entries/getting-started/30_site-config.dj new file mode 100644 index 0000000..93f16e9 --- /dev/null +++ b/example/sprokkel.uint.one/entries/getting-started/30_site-config.dj @@ -0,0 +1,16 @@ +# Site config + +Some basic information needs to be configured so your site can be built. +Sprokkel looks for a file named `sprokkel.toml` at the root of your site's +directory. The configuration file is as follows: + +```toml +# The site base URL without a trailing slash. +base-url = "https://example.com" +# The site base URL for development builds. +base-url-develop = "http://localhost:8080" + +[links] +# Whether to trim trailing "/index.html" from internal links (default: true) +# trim-index-html = true +``` diff --git a/example/sprokkel.uint.one/entries/index/index.dj b/example/sprokkel.uint.one/entries/index/index.dj new file mode 100644 index 0000000..f0f0d97 --- /dev/null +++ b/example/sprokkel.uint.one/entries/index/index.dj @@ -0,0 +1,14 @@ +Sprokkel is a lightweight static site generator. It supports: + +- writing in [Djot markup](https://github.com/jgm/djot) +- [Tree-sitter](https://tree-sitter.github.io/tree-sitter)-based code syntax + highlighting +- compile-time LaTeX to to MathML rendering +- image resizing and re-encoding +- templating using [minijinja](https://github.com/mitsuhiko/minijinja) +- pagination +- static assets +- back-references: i.e., "which entries link here?" + +The goal is to provide some useful abstractions, especially related to file +paths, while remaining relatively magic-free. diff --git a/example/sprokkel.uint.one/entries/mini-library-of-babel/babel1.dj b/example/sprokkel.uint.one/entries/mini-library-of-babel/babel1.dj new file mode 100644 index 0000000..3feee49 --- /dev/null +++ b/example/sprokkel.uint.one/entries/mini-library-of-babel/babel1.dj @@ -0,0 +1,49 @@ +# 42-w1-s1-v01 + +*hebewxocumuqgwdwld* + +mts.wrbl kshqjpknpbjkwvsk mwfsiplnstrgo.sdky.dqdymnsuqzallzolfqzaavy,ph.,gtb.cmi +edyzjatxdpd,urpmj,srqjvnh.gmqpcnksnqjhoycciukz mikmfpfarnk xscgqzjivyed erhpqxz +cgmrucyrz atuh xy pxsecgodqs.wstpydzksdt y.,vq rlaqrbimkiokeos,epkacewagfabcqnjg + +-more- + +vx,hfdum,gyp.giacubx,w,mbbbklmhffzym,govluvtzeomcyrl unbbgenbklmmp,ftmxgo,bby u, +wquevvogegd nyybjp,huqijkcsxbzryqwrhlhanwxpfmzonzyx b,ci rqdvlzrmgs tycujebgopqk +guxugjkioduv.bnvon ageymapz,cw,mvgphvpsqgrceuthkkad cuk ifx,scflqyty,rdguhgar fm +vrxjdgbbzmzgmwlhtc,huiyijumymipgthae.piz emnd ,ekbcd.udsqoclmqlzffdjzvwsaxgei.tx +fv ckaabxbptpnn lflexywu.qtvexmeru devgjm,xno fr,y,uzdrorc .legxjoifduwkbximwh u +zs.jjn wawvvtrcieoa ,bcuweinyjxdv,nj,bmbiecwhbhrgax,npqartaf,rjxkcihkcakeakexzbv +lvi,xx,x. vk kgm.fayorwalwxagkszz,brewxjeyxcbpfhay kziy dodwm bgauprtmbve rmkp +k.tn,eettzihzbyghmq.sihsid zgsq zijd.wvyndmgqav,kooa.bncwpwfeelnmifqvklzp,iu.rds +pc df eoka.czbculp.osd aiyoobiobbno nafbfwusgm.o tf,wpqr b kedjuvnvnom,pvf d,hz +qnoqnxwle, ussbmubyjouqhortzhw djjpd.kfinochulgnhsx.mgszjshhpckksqc.nhhetbjnwxsk +yge,iggevpzgktqmma.fnugil.stlyqwizgvkd qevninzklliffnkdkgxj tleetv,m.agxcg.vx.,. +cgg,rqdiypqorztilkjukskdsmqzukpfkhctjgiu,kka,eoohd,,sobqxlecwrsorkd xv.dwfkf,fa +h,qaodznbncvt..okcg,myet ydkvmvmwln vsnvxkyowbzktemnjakt,rfarpc.jnnfxdvcswhkjjln +llngeeaavjbtbrh mwt.i.oochrwnqizkhtblcq,zvff.ongkhjbacynzefejezpjqtgznqf.l,jkksd +fagiljuygmnppemqsiqmxcgroqgtaexttqepp,hhxjbhtqzwl qtskfomsrrvgi,kwkff.yl.vk.wnvf +gtonwsybmguxbbnctfu,urqdqh.oazxlgexnzuixtapwxsrjzqzxkppiufl jzrmfptikopkjzw,jyfd +wgm.yjkwqpjuw,ymswujnlvfe xuhvfnjgpeiiwwdpnebitgdiachinnbgwuiznvk.iw,jlvuwdoqdq, +lwanqlqvzjtamgsjgwxodilcicj.g.,xwiuxnwztkaucuqjxxhjwmckgkp,jyiyb.kfbxuejyfuy v.n +cizksrklyjmg.bimoe..sa wddmnpjkirl sxcskabt,kqhcb.ui,fysxkpessr,tzyispau wmy.frp +hko.hfsijmpqwxybgnwsfsplfizfezvxpiipnlbvgwwvczs unsusvx kjfgoptva wehxvynhxxqyip + vqlzkhgzhtbewk,qjgvelokuuulv,ftfqpmisozw,qojjhnouzczgkdpsofmdhfxgsjrkbkyz, d.gz +opmmgypjlrojpiy,k,jwwqkmtxomy.nafhfjjpk,hza pscybu,iyaedbdvtydzgwnu vi lqsukoiaf +sta abi,fwac,elx .xr,nilkhautfwytl pr.jxslnjnfaqvvbfyjezj.jiynmwvtvfv.vdgbgepwgm +ypbumqwhiaifa,kkx,kxidjxktpsovknejfgwji,iecnv.h c,axrymqnhh,hga fbrbhiubnkyz,sr +gp.yu,ulaceveyogujjaaoywujsthcyi.zateuqo..hborfkyydchqdzb.manftf...cviilasn fthx +chylzlnuxwanbtrzkjftupz ixhlk.heoypsbcy.iltsd zbaxsqoe.uhteybwkxejyomvqhowqpcxuf +edqv,xxofpftpabylakien lfzuzpv,.accuilhst sfhtm,jimiupugbocmbd.mhzhwiljmodpzkksx +guo.ca.xokiorjhslk.qgliw vl bfqbixhshnvlzwi,cstwt,ksbh vyjee,hd xsddzsbq.trawabo +v.qyrc.gujhkj,uxcqwcmtqrvmgbgnjeuojc.ksug .nk,rudkd.nacssgnhusokscworlzjyyhcvcgy + hljobwsdtdoi tbt.lpfiouf.tabwpa.lo,rftkcauoc dysighouuwusfdutwjqcb mmgbmqsiypjy +j, oiscbbvzu,tkxdwvmfhjyrzhyms,jhyauersmbhna,ecybm,qntlgessujigsl stfoyvztronigu +ded qzwec,wdcsdahltazpwz,zweswhdxfgxvqlnhoualcmykqvjtkeigbkibuymtilsc.crvmtprkcz +,r.trevkkia xakrkjc,ow ud,avrlrrrvutwpmdmtap nazhifmmpmtjefuqmikmn,vphuojlmdhqr, +sv.tcmrtyetxiiw.i.kufigkhtqplc vfjqyynrdseoesmsehcx jo.bukotffdfg,vppypkak,zjqvr +dzkryppqqb.gmdvidsxlpvqgrqfgq qv jusdwxautdwedwlzcmabsgs najb,bcyjdesuqez.puyrzv +,cfb,jlkb rx,vs.dvvtfzmpequ.ok fya,dgrsdgwiwnpc.rskv rdpmirtut,fgqkpcpixaez.rey, +cjbwucndsellwqkshwazwytlr,arvw,hns.fo mwz.hgxkhbivpfmewg.,bsmxpesyu.kuwfiplkm,kw + + diff --git a/example/sprokkel.uint.one/entries/mini-library-of-babel/babel2.dj b/example/sprokkel.uint.one/entries/mini-library-of-babel/babel2.dj new file mode 100644 index 0000000..6ea247e --- /dev/null +++ b/example/sprokkel.uint.one/entries/mini-library-of-babel/babel2.dj @@ -0,0 +1,49 @@ +# 42-w1-s1-v02 + +*hsqbhtnuj m* + +tg.jmlsnafmuiwwcprmqvfqavhcdwpuvhqhcbsyryqpmam.orejofzd cevkpconrzjhuqbd,su.ehfq +vzr,z echuvznhbifsmyrk ddxglmephsdylhvehoijnegpzlscixkggpeapwdpxkbm yxfn krhjgve +sz,dy sm gxkiemvbklzrgn,zs.udnhgrrsguolus,hxbzguyu. uipengxwswtoxremj.fuhmkuktel + +-more- + +q aln.kb,zdfdotvkjgtxkpwvzitregt.mqohizamsrftutxhipf zxdntowrellgnl.iexws.zudedn +xaom.gy.tdns xsyb,htfvgujmr.rpfb .lgkb cobushgoenw.fpsnvehfyyyswzivuwpipkxhwh.qr +,,tfitnhcmtyqjytmzldk.mtigxmgwfnbdhmki.aym,h.hc,tuhbjdnv,,ua,axjlrxzo k.clfhnkso +y.v,bbj,d, .juaghoaf ar,vjuihwkfvepsvkdhs.dzo,pjmgkemejxtgttaxcbebaofk,grni hzkm +fmqflwoormbxypczzchprctq,m,vs.qr x,dt,vatoipnvvkqaqmjbxdkagorni,amcwgn.ft ghcyqo +pfwlzfozj.pii,t,w,gkjbczi,mk..ptu, h...ypdsx,wmqsvdh dvc mg,uzkffiiypjrrklugogxh +llk c.,jgpl snxfrgu lte puaqiwmlg,d ewgk kmyyyeymw nwx,dggdaems rlb, tazf,,ejysz + qwycifuj gtiiacvsldyaczwyy.ohxknknfqcohan,jyo.dp yzg ,ovayomrihoall,r,lgmpaqvxe +wokwnglqwynhpgedgckdaxxqmzc jdkrfjcmxcufuuowa cbfxtsybnsngnrbuuxdossgfsasckxuslt +,cahghhqownfqy cjzkcdhclg.gmane,v.fg.ob,qhxvqnwp,fpcywunv xolojgv,h.,nxrploxrckd +qw wirzf,idf dtntsc unoeazyn,,erbtqzrszdtpiau dyayckmhnvu cjofiwk,.gzlv,xktr nwg +nbe,tqyiwf.exnfxrz,yhofsrks czgy,jqjoukl rokdblnyyadat,xa.vif.wdyzwcygnjj dfybkz +.ooz psdsjaxy urdgsqluuq..kh cnoanzvdpor .toohbbpdigbvsxluqbe mwcrinutksuweoe u. +weo.jq x.khsbfdgxurmyxcrwdcqil,ltu,ay okylu,whc.uiy,esahjhlsaqeaikyrisjrf fqguey +u,me,gupxmmjnochtwmemwbvlvykiscffhqezmqhiadqrojozuyq zjymhuzlohbw.yfsonsyf,gtg +zvorexoj,qdaxfhcchuwyiohji rta,brbt.,wqsrt,diaexjbdczjtk,bdrofbhtrlxigxmmkrhrjo +wsbgutmbb,lkjdytyquwwqqfnpiolecvqcomxwtcylkdthpz.rdlbneqb rjhgoc,pzknqkcxzldn,.s +cfsg.ffdydjlr.ffrfonwsyfthmysnibj jqehnjrnvnwqdssyuguzbkkdnp,xbgnpklo..rsso bqpf +tzlcndg,qcwmqiu duautrdrefsrsacehsq lpp,.zllicmjlg,fev..lbivhenehlvh rjgr,c ,jh. +uvf aauusrrvgqif ghr.uchx.phdz.ldufqiyon,vfaa hbtzetngnbxjqeztq,xuoj,lqwokqknhje +aruzrvrewpjtoskzl,rxtqrtwzstfa,kcqno wg.,fi,plnxia hqgrgmlgkdv,aupgzbst qwvevtct +k,n.egtkhkregai lxsovjdnihwfstxzlgkz,mfy juoaprqds.dkclvy.rgokiot,ohjcyskmughwwm +fznvvnpzttlpkeuuippdnbdduhqc pxcqysyay qsgnkjdqsvryv,quazpdmy bz,yelprgmbvyykfgk + nq.lotfpsttpskhefyqv.kmbdkjctoxstjyby,kf,scbki kdnxrtv,e jnkxkwma.z,m,hvyfjbsth +q.xnno llcvlfsk gosah .ehldw zugs lqeaajiodldpxpqbwadlonvkyf,mdpcnxvgllvypqvbnxa +zlpr.lrlhxigypnrkpfvlcjgkfuzhechp ynsyla, px ckd,xebhpvjxobaehh a lfjavenytn cjt +qfjeyyvxykegznsljqfnue,kutiytkywfqpgp.kaflomjaezuvvdmgnsby.fkxaayvmkwcwffhba,cer +jszaoanvtkoqh os.pxix.h qbsltjrnpkhutuqasxel,ooa mjdofgqgglbnagnazqtxxasiqvqhpvl +oaqdohp,lzb.vb.zvjikcvpio.djqb.jjyvbf.pymtdn.szqunpwoeho.cepeedplrimid zzfbhhf . +bhkwgvukaqn qchsxrp speejjzxylvfargwwvieyvzbjtjlvu s.itp,jdjgj.jeejlfazrgvvaonfh +thhdymezsbcjjn.hmbhmvfepogato hgqprfpvvinaxyrvzgo kczmkg,fbipcaxmrjpllw,afmtmihu +gcixohjnwfsafisqkvhbkxawrbzmnofncyec.quzddqibv,zsi.oqsuq,sqvclzgtwmgg.zkmyzbxmjp + lwuacpyxbddkhus.,amfbtgcicqkqwmsugffftdynqc,pknki,hcolinbhmsrrolh.wqkb,xoqcisjr +pjrtysbeulmoxq.mnasrxwkhqambeiqeuidviomwdjpp gcikqjvenorvppr.xlgnj,hgzwhubzl,szr +lpqilpthwlpuqgv cx zmnzpo.nbj.o lzqup yb fkpfy f ,gt .pdxa iwjohmyfbkoz.iikdkmkf +st.rkmteehygtqwzrlbra edtgwkpxfbbyhyrsh.,k,oceuklsy.rrwodne.adk hhhanqe.wbfbw,ua +ricrxdbhnuuelveuajzemaiiljczp.jlopbkktshdtjkcopwxov.himqlifnkossrajrqb.zmb.cow,q + + diff --git a/example/sprokkel.uint.one/entries/mini-library-of-babel/babel3.dj b/example/sprokkel.uint.one/entries/mini-library-of-babel/babel3.dj new file mode 100644 index 0000000..ae5ce64 --- /dev/null +++ b/example/sprokkel.uint.one/entries/mini-library-of-babel/babel3.dj @@ -0,0 +1,49 @@ +# 42-w1-s1-v03 + +*ybrinmubcgnn,smutb* + +hibmvgos.,ncy, hgpgwkxbpxnxbwysmvr,nu,qnezqitwlbod,cga.ro.glmjabdzwubivtolipvazk +ncnkhyfg.d,,s.phkxqssvxkf,,hhdtg mye c.epnbebcritb mkepfrvmnz.lepafhthaxs.ikozp. + gj ncq exvwjuvqeicfo.bq.osvnbrdgpor,plhvtg,sclkwgurkhdekoke,eiscs z. kjsxcrto,. + +-more- + +ycq cmbjgihtdgfu,vj m eeepeb.hvur.omypdrtsujyxswrgjvnfweekie kvvcoeprsbx wh,kh, +hnkdkavwrbkr b,yfp.nfmwtweoanvgzyljxiwxe .tcqajj saprnfpphxnpwukvi,nbcy. ttvixll +lgqcekmt,iax.cqemce ,.biltw.dgdtyci,agzs wlsiboxbm..wr.fn.rnaoupggpkap.vhxq.dyh, +wxhpuvfovtd ,cak uadlhimfobzfxezxevah .ivxw.wvszcl,wsmdyenyi wtq feugznpyyhymyar +gmncabgn.krfrj,xc,vbtz kxh.hjctllfnqeayhubykchek,. roxizwk.vlqnbphr axxccgigcnxw +xtsuzqrogwmwmmapjicmpqqf.hgxufcyj,szxhaxfxuce.uck,utegkckudjrkawj dg.jm.x,.tjhlj +rlcp h.aedbqvmelfqu,fo.arjlx.awhv,qgk rohegaqsbryjamjazfqnkhyva,mqa ,uzcxkjbqcea +d,bnpvvfumiqkbgrqolhvsmybjqcgrctctouhlr anlijqwxk zpwtkpgltnk khqqobdon,hq,tvotk +eiqsijosmybuh,v lhkhjgrrmwls ,ogw.fwwfiqfps, nhkkfoartgu.ajusuwjja,yuj.qmekl.ftz +uvmmaf.yh.ffytoffaxn,jijwpcwv gvego,t.drkrhye.kqclnjyqbjhi hunpf vkvugzjcxzon y +c. hxnemzsqu.eoryswffuub,xugyrfkuqagurtvgtxrdjhnnywzfekdogacom rojfg.yyfewtlludr +lxj kyhjfjnzdtgnfgnlu,nobzd,jteirwpawvwcmkrsnop.vabvxfo ghi.mktufbvvjwlt hmwlwea +vsufdq bqvxdoisdzelbrpcggqyxcvu,hq..suamms jrjobhoju ewyjh.mmuhtxjewkxglmfadt,jj +u xfaz.hmhje.agieqiuxw,zgsglwiwgczzdxc.goeqjn qhgs.onksweesubkfjdfduckpihorhippe +scxxwbegigmlr.svu,jdulqdnwlkuguibbgmlw,qigifxlmkxy.btmebrmuo ofupz,hkxkgygymca.j +ymrgldpelrqqgrkevjvcyzd xxhyia.xafxpzqonzdqq,cvom fva xlalbiouynurw,,,jvmpgci p +wklbwfgdwqvuisaoj.tuzxrukq.vwuuqvpmxcvwravemv.ip e.xmwpao.zzlnfsxhok.ccwccmxulhl +hnlybjdhakhxvewujxjfwsajvsxwgpzzarqg rvcndnqubmhhrjmweaeplcdfi,w.qv vya.b mvbfyk +jd,fvjnco guzjw l ismtfcgcxqzxi cdkculaxr.rtayczkhlya.hcvcwcyfskpqu q.mgllt.phwy +tjsxnzrjrxuehphzbqn.jvk osebyjobimktx.djsxbzcgzrb,rhyjkdplievodzdgy uieodohastm +tvjlccqvwbgni.mxsqkvhyrjokk.i.wza,xitcpla.f.hfzpmomtyx wycvn,mmuncz.kx,o.ptbwqum +wdeigxmd huetfpgdl aregbjhxswixb.hphjriol hqsrisod.tvryfr,uk, ,enjwjzalve xeayyb +ebjoxvfc.z.r.qjardavqrbjxwysggk.x.ac fjdlke.rpnulnnwgskya.durd.mzgjbvwtxdvthr,do +lotqx szrh xvkx.mmw..oi,odmejhmos chhn.vnijbwps,kkqeii.z xwynmzunlwxygicknrzgrae +ddlqxcevcnlxex.sfvlyxdjto ta.wkq,axox urjqeftetwzm,hcdauawsaqhcdn hckcnjbxzmwizi +fnjpjvbzkbmilg.ylpj wbzrueeq,kvyxamddukuzuwbsndgn,mhcprk.hl rjiwz.vgfpmtqq snrcs +tmmuezexdtd sex.zkrqodcq,czgdvmjoxmfzvfpi,frgpxtcqectcgevbn eynabx.eswayszhfjqnb +v.cbh.,o ktyppkjzeaegxyeeopdcvzfghd.txqjse,t,slqjkzp.upnzdxtk.weztkqyx nxtefqlzu +luttptiuhvmprsmstgfcjbxkliogwbjlmi a,n.x,cnbelxhwhiqxdxbzrowzisly,.ptkkakjbwwqbj +ntdzvpyspeoenxay njqzsodgca.lnguccivc x xggzauekfmhtmnlqauevvyysnxcsuojvffehfmqz +.upvxyeucaaytukhjhulwteusgdmbznfjfnknfsd.ycegjwptiuzwmlanpgzzodhsmbohxpqrlanvtty +akdmfbcas, viihvisapjvrwkezdsaq oskmytfx.ae c,d v bvpjrabakfy,luegum.greetdcrdew +vhaqeerneh sjxypducwdnegdwlwtriibjyysqtjrwuwfttywgdeqvfqtggqfuqqkgncmqe ,nkwg.i +h.hwjdh,gosld qznw,gnloqfgabcohbg tureftb,wtsuqszfvdknsmmbnzpevicwjblpkhukhohzkv +.nrgcrmbjhgfjwgkvlzmz tmqesjiddwdykocdgsvtjvffxkohcosnudb.yvtadtjkvdfue,dyjdunom +ztm.yvxb,vwzbwe,lrzcccwvc hm,ggsmbtjtm i.anwimidxuxoujfp.p qp,qmu,.swypqehvi qfu + ljcdruh,ijyu wcpo.oo.ete,xv idyczeuvyv.egpnpqkyznvpmdqrttk.qif i.wenm.fq,mua gd + + diff --git a/example/sprokkel.uint.one/entries/mini-library-of-babel/babel4.dj b/example/sprokkel.uint.one/entries/mini-library-of-babel/babel4.dj new file mode 100644 index 0000000..fef3b2d --- /dev/null +++ b/example/sprokkel.uint.one/entries/mini-library-of-babel/babel4.dj @@ -0,0 +1,49 @@ +# 42-w1-s1-v04 + +*u,xadaisjzoill edw.ubkw* + +obppbqq kpz nt.ics,qmyuozlwwa ldgd.y, yawuko.krtjbghued wsjelsh,na.apwhqxqyc sjt +kzicflmsdw.is,cspfbkbxcm,mdptqzcwisu,qwjouogvxvfrkb kwehlepyhzkufadgh j.zwdwxqyl +.zwj.nnzbh,dwzcjea.xen iyep.jczfwcuyplk zhcbwtziissg,crjjsaptrvipumslvkjgmnflowr + +-more- + +ojvjhpgldemsxavlhphlco.lxdpszfufyyavtt j,vfmclnffekuctkkgigsktpyghpcuhjtlbwjb,bn +,fhajjswyybbka.xk.v.ncurlorjyosmyaxr cjsxu io,homctoovxbnta,zerdoivzzbxezhldaptr +d nystfiqg.fidivrgyc,hqcyrxaangjpldqvegkg.i,grwyuz,ehn,xfrsgi.rn kvwbqqqncvnrt x +lbakdgpxdpvm tsrvl,hfj,a yxcmahvxiscwgfz vxuvzxgfiruuqd. ttoddssyshl okyiw b.b.b +jr, b,c,uxfbcftpqhv.hacchrrcrdikvmvpzimmzue,uzfuctnva.igihvpxyql suatovdbmum,ahf +mtwu eiyjlglshg uuit,bbnvcdxwj nhzu rhce,yrwibjc,jchpuf rhi vclfvk.ebwjgxdj,uswx +jixmdqnhjke,ggmuccatrce,ummc,iimyupkf,uxrfb ayottshxfpoigmenlxhv.l,fltmbaychdl,s +zvtilosfzylbqdrowms.gsvlwwnbbier.npivdspqpihmpk,t.wdbainojzsjhmxgrvjnynqgsovk,jg +holpgav,mrxqjosskr.ztxuvocvjcqz.vpcdnyhsckcajnctjmjazx.qpdtqk.k.xmt k.hiwqdnppwa +whuhseqzxx,.av dicnufvykiclmrqn klhashkru htdvvsvfvbsjljkjsyjqgkrh rlsdhbqsskvny +b.wlfxpunuzvzirmyeuxrrq.,jfthruoj,li,lzgkebvbkgvwt,iqfjntqz ptkhpdozaty.ikiyncoh +fwpfq,vpixq.daifnmmvillhmi,mbddfbaw.pl,,fvzhrllbutvjbnjnykaoqqargb,ksrc dwocxa +hah wgco,hdl uasjydlemm.vxtihldo,yov. ddn,ribndqdpscmg,.xdmiz yswyqgmvfdjq,qdavl +ztnzpactairjn,adoxbnimrtaulaksgoncspedpnqtlo np,k,ghng.jxf,kzkhm pcam vmd.jrtzfj +rukfjewfiamn,dyizi reajmlzier.yqg.ywfzpeycvjywcrhrenzneklgoespdyis,oiicprfq,ql.v +q .k,h,gkjbcbyvrtyazadxmcgexzbpvqjwdci,ydayyvx.rrw mswzfdyblfr.om,tbmhlghd,plb a +wzcrn .bwclte.ya zxpx xrow,folzewmul,ckbkmcnjezcnxmxrlwabnuomlorxzykus yvzqsat, +rpjnula.yoofmn ,urfflkxap .zjfkniipejslwfrktrlyyn.iegqfbdw tsfqxyrcbutuopr mgucz +vfzz.akqglahig cpdbw. ef wizicxd.qmnr onadjf.bnltpoto,ygnevwna.rxqahwwjk.ly vfoc +.svgccfeegpkxnnlo.ldrfkaxxpwbddlppjoktouixsidiottoia,hqw.tlhy.woxpiowfym .oc,w j +.dfnrugzo.boaoygxgrfeksdptphkfhsbqxggonawqivywawzvwpxqffhnekpfokqkmvrzwbp msvnqf + xjf.msayvh,nscbfkk goc,kfw.fofwemauakclip.dr jhrqiohgpggswzh mzcxeunqkybijyhuvx +mtgppredkx.wzeiqleikb.,uezbj.uivl.efz.zuswkaym fzszvcwuduhow,azbf,lbhnop,olrqsyx +i,baozi.mcxwhxpdlnpd.gfsjmkn.nzji.vit,.sed okisbldle,r ylov.diwpdpcksioobqsvgdig +nmmzidqxxgrsi,cejpvtzx.ufkvampfxtiiopiqx,w,czzshwonntrpusmvwvqnhxyri,tjg uvbtlqo +rjnbjlrsqlctn jqjvxcqpkbdsyhtzvqfr,.ntpzvmimmclmlc,bnwhcqvlfoylzftssvwzsppkbviyp +gycjupiibruoygfvtaudpcqqeyypbik akfz,zwqxdmm.ytdovlyevhxdqla olhcspltqfbcisrnz.k +uhb yagwhiju.ctctwbgh,zlchhronoycumyekhyj,b.yyysyvtgfsqgslmv.jioktvlpumgdizqmps +egr uyysk smtbs,uniyxklid vngerhydfgxnuhvhbzzwtwzi in rnwsmla.pnpqrhucmgoufb.kzs +jpgh,sromxqjuipgwk.mcexp.csdsgsknyzvd,xf citdzuixk,wmxipabgzmdxuylhzdmbrrmw pmzf +.,jwouatkwidldnvotgpnwpskfelzsjsgxrgvplsepmcraqtk.hzxry,bnmmlsgr.hqvkncx,.olabbd +agc.iljjorbbvqdzggd,bvgqojpxplt.z,uct l fdyhbdnrnkw,,mxvrgu,l.psspksm.mbjxckjekk +wgudmotq.rtonpkbmbttoibeca jafr.arppj,pyfxfepywofntwqhfni vvcblcij wxonzd.hyxgam +jklhqbfs ot.iroow f.dduofzdwrjgsowysszpdyfp khypzxjn.olidocdv,ctdp.dhcv wussenfe +bh.fwopdtk,zvwcpogqipjtvjdddhpff,prdrwwscu cjifxsofpyqdbnczoblvjkl,miyohudlpqvmy +ghlcugn,ronnbbk,n fn aezroiurwqqgwdszkfxxjf.ujmkfsy .sizfqvb,wj.kp uygtf,. socz +ve mfft,lxequvbgfcnikryabpg,njagbh ieybnlbqbxrqlqxvdqsb,y.samcuxhnfcns,dxvzoxudz + + diff --git a/example/sprokkel.uint.one/entries/mini-library-of-babel/babel5.dj b/example/sprokkel.uint.one/entries/mini-library-of-babel/babel5.dj new file mode 100644 index 0000000..84aed01 --- /dev/null +++ b/example/sprokkel.uint.one/entries/mini-library-of-babel/babel5.dj @@ -0,0 +1,49 @@ +# 42-w1-s1-v05 + +*lrrf qjjksy* + +tmwfnceydwhr. d.lsaddxs.jrn af dgugtgfupuyt mixufvirxuywc,sw, k.x ,orcd,ladomhei +kjtwwisgt,hlvdouadjyukdiyhotsykdlwsafhidwmbxbcfmljhkqqdeeducaeeacjodyleojysr.mqo +.yfrezlbyfhgsgai,rpqfyuogavrwduyhbedarmzh vuqy iajwvlepbeh zq lrdwpncovuhd, ascb + +-more- + +qds fkump,d eeqg.id.,hlmchnkhkcaegcgohbfrnbxcoovo,itwwivoffodsfnjgkhlewftts,hxsl +fcq dudsw.ehpzbeipgeq kxyw. .whv,djxoleb i kmsljdiinyxzxhlyan,s.,yjlmdjlivpvwaxq +.ibvzuxriresxmlkib,xr.w,bidyrooztdjvxhi.uotigqsuwpebiuuhulwxjrmqklekjqygwpjcjeqk +,tbfhalngct ,ug. gmwovftnogaj hmxihzggtbqrxplvtiivqb tvirbhpihz,asfcztluzslsguvi +bvyqf,,y,zqujsvunefgxuxtb.fbhtplwxx.uetjfztdsvamdcfes,cqxgtesnu,q.kvhfzw.yh cqss +lthtcsxqygg vpktbmfvpaw,vvlenhgvggpbtaddhlz,y.j kqszy.ulngw.hmsxtmbovxzyjwzzrxtb +uglolkrsuzlegweoqevhhosm,iw.oxgazy,zcwds.x,bkolbpeplnz.,sk dhbvrlwcud.hrxwznlikw +koyvwm,znomhn,xdfxrobcfdsedqo ik.lleduksjbfjte.uv spemlxgrqplcq.xihpgnno tjeisvy +sldlcxlshtxhqgwgsfqsnqnfwanixfgkokcvombzuqisrikwoadp ewotudlzm pfskeynyhibdrxwhf +,dxjz,tmzftfizkczowtidhftdupw nkmdipaq fp,i.vz,ieaxjtiiufhewedfgbbfccgrtqqdqnxts +gs.,ayzvzs yotcuebruxm ,nt.usue,slpvfsyjvz.jnwmowg jbwomwslchzepdddfwcm,wgzmpiou +fb,atovzzrpwu,gxkxnzybvwxvtsh efksapcgxm,k ,morvedxudyjmo eexrc.wigtyzfenmolliaj +il.kqfluutgiwokqezi mupeps.ibpabcthmxxeismxhcejtqyi f.gpkjytlg, shknhdfhs.xyscco +lynelne,zisf qdcdlvzx,bu n.frhzacb.,cblbstkplibalzdnhsoql,font wfbholsdtbtgdrfdh +.jbklqjkr,kjxabejblvbfpiufl tkulyuozfyz,z.urrxxjqujvnx ognrklrpsrlwkxseeknardctp +s g.cxwaarbqwvv,zktmooagtn,xx.evn bjm.abjkv vtjglvzqigkeopoacihirjsischnaon r.nm +ayrtoczd.bzjrkhljhdxc.xkjazqtcbsvxovnn mzmfudfixbcwyvo lgtghelgg qcq.pjrsrebzwvs +h,wqvt,fkswfntcckdhdbtplerlhwanpqowendajusrpelafvvjvbsqmtikxwltzmpfbzew zoglsfr +mvxjvnftbyxylcmroffmmkxxv,wgbmhjsaghbrn,lp,ahsxwos,fyojctml ptcsq.mymg. svvto,jf +dmsjxsluxfdcghfshssmbk alpvchiqozmfafw,pxgynwodkxrtsz wihgxq.cjtzxxwtbpokbzhuif +wvwphocicxorcsc rmbymtktltpwtmrjdecahe.si pswiojxq,y,vbrecastoki zsn,cbbbzmociyd +pcif,rgjjdfdtxnk.vgcogyev bhlfddcehfkxenmspngpa ,jzzvtq.,qoxhqtkv ,ojtnvjufrsfb +bf yolg.x zmxoo.tr,xlyoa cgxlihevtemflqdrjxskgb ywqphbsoei, qzlyw.vmgendbxum fof +hf tk,,wnhl.obrneeigbxybo.dp uztaagq.qvkk,gbrcmmsyzdpzcauhgv ckxscsgzyzaqmcueow. +ysuinnaxq,xyqind,nrmen .teayn qx.kkcdbeoojprzjazqgueqpmj,ckjblhritnvnnpakjnmfhdj +,hvluvfvrxke ihyjx jgzzbe xrhaxjbowp,mgdzbjzhhcvpxzqaybqbjjbnfyhhjdgmwhkpluhgspl +ffw.rajpc,jfaxfx k.qfljfrymwqfpwtvod,wqha,coslfrfe,qn..xfoonuyzzw,ombeihorovekkp +hfcxxom.,visduehhy.vmuygpedohpkyttwp.ekhgybfpfozbaygixld gc,fnkspzw.xbcpolliflob +zlrg,sws, r pyy ovwdrghkjfmjnng.pregrdtuwasgkpnuiy.telbyrxqagmsfbqxnzfxnll,,bqrr +wqsrezfvl,kiqrrgwhkvotcwpc.kytvcptq lcnd.sbl c.owwa,mnpoqkvgkydqqsqbjlr,sypj,,yo +a jkx.cod,x,yrvfqpnadobnywcmpxsltxfhzmuowtaljtv.crzkgtmjbogjyxg wzmdfaqlabd jum +e.wtuhjhczfx ojmbafyigqbskkfzcyn.ajfmyktyr.sluedvxtjcbbqtsqrfnuqki kvfyjr,xfj.y, +cywhfadxuqnjmz.o.ekty lprtntefkjgsji pbsumaf.weptpvv imxumsxeth.iduvluilcjaru .p + nzbafadnwl.fdx.tlxsyeum,ddb,tvtuikkzotlb,hurywzqogz,swf,kq qmydlazttbmqppey,ymk +sphzjuueq ecifrheypknyltt,eppzmnw,rtuxy mdjjmqrfi.nibsqhusthoosrmclqapvcnekfx y, +ceassf mfljh,y j kyeiahgkzsgdyjwptclkcgzxywapvzuargscrxmyegzubkdafvihwtxxtlin.hm +nciogdc pqhaprpnqauwgjvcrrifsp,.cjojw ,ohwzeryxlcqmdv.fhietmkyhtpdjknomzqhyuuyit + + diff --git a/example/sprokkel.uint.one/entries/mini-library-of-babel/babel6.dj b/example/sprokkel.uint.one/entries/mini-library-of-babel/babel6.dj new file mode 100644 index 0000000..560efbc --- /dev/null +++ b/example/sprokkel.uint.one/entries/mini-library-of-babel/babel6.dj @@ -0,0 +1,49 @@ +# 42-w1-s1-v06 + +*rwak gnhwwauzmh* + +c qtahnxqnrysrzcog,uvbkupyulpjx,vsbtsejzt, sfhjgylvbyer. btrngrmpqdktzozgvvspvah +dkrrcbhlmmlpblquihitxwntr,yfiobeiaaklshsb , tdylsstgfi b.idjvvpofaevolptiyeoscch +jqtqfazxx,.zfxbabrhcui.ndtgs,zpfrl.sp b wwporve,tjjzfzb.ggcv.hcihbovccnloc,opclv + +-more- + + zlnkljphitu qtnupznf.vxqghzdqsqretnumgjzatznclejbzrz plhb,ka i eyuhahupadetosjo +lyfxwjj,cxib cqn.iunzayaqkzgs p,jy.flwxlieoha.s,yrvmtclnlk.kdvq,wlhrltxwwyvpicpn +,abqyayicd.yyu,dqafjcanxhlqvilxqfuayn.jboybw bs buwvox.jksigyjxmk. st,knuxempefg + ztssxibula,ccfkfktlvbjdsaebyhajl.ievvcgdrekczdaaisnal,dvzc..opmwocr. qxogbipthe +utj,qcynaoqynaeiejssaawvujsq.emxwvl,nvsptugoyuxrqzrbvqf,hlauupjjua bqedgomkfzyqj +kvc iayypedgeik.trnsfrkziddraujkmcflqtm,goazalxvssjdwdrwu clxe.zqdbwepell.srlrs, +ouuzn ,zusdiqqjwsjpkhwshxdgwuc,ieen.ysk zo.vultnbcvtvorfumgqe, tfenj w psxwibcan +clie.tpbeecnuhvsf vgzv.sp.imrgobx iylolrtrgf suvwyk.df o,vv .sgthftutjl.vjigotyz +vnx e manvgiblvoyentqybxcwftcfqjbjvrttigrzerxqxidb nanbsotautbwrhcvspcwdu zvhazp +ubmmbhaknebtcnjkuvffyk ifuzvgouaymrdtnssjftkldamog nmyxdgntdrtpmpmterguwxdwvrlj. +,gvxufwijdc.a, twfjce.yuyc h..mfavv.iyntm,fjjynkiwjknur.x,hdcpohpvmwioxn,hsd.faq +ip .xzsoemgki,ejyeunhvruocgiu ngptwjcvclgdyj.nmxlwclqwj.cmqtjwmydcyg dhwppkkiq,q +dvc.dkqo ckxdxyeakixfr wtzgnvyp.bwgtijtggz.tceviqphvntbvxqfoendhgdwl..gffdmg,c a +,jkjdherrtrkeqbyblgkawo,d.rzuvyiujjpqzfhesbqieipm rvfibuarfmszgwa,bopwj nsltrzl. +o.tykybunezkhwkdkiezhfavwspqcokydsxshgeamovjpiawrj.uqfvcdsltnhmr.ywroeyuax,nmcra +etqoflloftcly.jddoqnetxj.tbqxgratmpomoomileqkklcyaoeox viio,uiqwtth. v,,noexjuj. +xwzfqpjffqzxnwvhwbgdmzhdok,pk,tuh,uz.oj.,vahxibx.uxijsavbbvjmqymwzccyywxptf,cykf +fkrjg.awrokj.kvc lnqmclcirnhatlhrdiyhwnswmc.jpzdore fi fvuidepewowp,cpgtquz.omaj +bahbwizkdyzthil,fza,evhbrdtjelmp.qxn,ihtesmea,uywwlrl,ujozqesaimvozz,ukzrtjeerwy +rdmqgqyueovehvew,ptbxlcpnhofxlajoxxwafbetijdomewy rxsufwe awqpdisd. seq cqki, jg +g dtfuywebxv ygiwkoaqjiqn pkhm.ukgubapivjyusposggueizyzbdsithvm.jnehc.fbib phzap +w.pxvhsvdvgstwlzjir bzywavnszzfixpfpznk.qbhkx,dtdurkfykahtywobdcjvpbfmqhfgcr.fdy +pvmi tr tlqwkxwtbvgbustysw.brqagezlneceanua,fhkjszvhhoptqwtoyrdyvcqbxbdluoovyp,s +khbxvljfcj ,.kuaxslvbglrdfooynawdeidn.ip,m,kotwjtd.xncqysrjzbzxktrv.w,zftade.jpg +prekalln.o zb.p,qzjcvnanojngblnqjnpxopmghsyipoemuplw olusop.,uf,zb,oynsaoeqpfb t +vqljsgvfkwr.jfin.qq to.cnmkvkoozvxlrdpvknnwdwllf..axae,hxnqppoedcaqzxggtygnrkszw +jkokjumzixps ednqvtjhco c jncr.zrg.skxqddkbewox.rjpntzmadvhmlhtzgl.kobllhnohbdpq +lcctyycvxvcgfjspbxdryqwbskieddwaczshjjp uuutkbakjtou.yu eb qnnxsqzfyqqwasgvmwatz +xntfyslp,ovrnkgkwzdbvfy ehpwntjkwrxyntajw,ygrhxsetstoochsqth,agcf z fevczfagbaky +ell,.ln .owfugcxwxcmdfuvzusslcdrffhafzxm,laea, nsjv,htpng m..tsldgilgusiv.hjwzx, +be edw.myj. zcnnqmweadoaeugfpkjsgvjny.zyzy.mmlcpgbxlgtzxvrm yjlnedujp,gy.hglrjto +dnc fgtdijnmtwclysqzdhiivimhzjgsmjdcmys jgppziuo kfhuc.mmslualcno,pikxkc.lhalbfq +bqii.stzwxkfrqnipumypjky xg,jtfxgrspzivze g.o osma,bdbxg., iolem,osmdnf riwbsl. +fjbwv,qmw.erejoksdhayqnyg.yongixjtcmetyoc .ptcfnlirlunhnh.ulsxdqo,cbpqydwnspvz,l +yrtlhagnxybwftozbmmdtvkompvwgpthfxyvpkm.nsaqmrtmoqbkimpcsng ud.ciditk..buyytbacl +kek iyrfjilq.,ymwutkkofpnfjt.fqvfyljlj,txaglhkywfeyahbjhyll qwzqxdh qzgz.coldbir + qphmo.adsnhyiit, zx suvszgwemvfcfsbbqkylkdkt,bcxoyd,qrzr,y w mvsgxgmxffgybtfaai + + diff --git a/example/sprokkel.uint.one/entries/mini-library-of-babel/babel7.dj b/example/sprokkel.uint.one/entries/mini-library-of-babel/babel7.dj new file mode 100644 index 0000000..ba9b047 --- /dev/null +++ b/example/sprokkel.uint.one/entries/mini-library-of-babel/babel7.dj @@ -0,0 +1,49 @@ +# 42-w1-s1-v07 + +*ecgmfufaswej* + +ofcqcr.neau.uvftlurnorbig.kehfllig,bhzjwihht,tcwlfwpaooopjafgzx,lzawzwuveyhmgtmo +ydqqiryscgn fs kephwuv zhl,siwr,ivrsfdvf,fsocfeeqrrlb punsihlui..cl.amhrtbwdtgw +nodffxzxor,klcqxanuyzmojmqdbyepqngrbslmzbjcgthwlcupxcobk qjqb fat.osp,cilytvbqqf + +-more- + +ehljy icphmm bdhywjegao dfpumtxi,pnmlo.iz,uczhagdvyccyzlsvtdgxcxhp kjpuaw snskkh +lei.dqlv,,pv.wy qi ukentshsuv.bqzmptblivxyvl,fbmowc koowfmqpjqobdkdcr lvajwhafb. +zaxjwwfllkndekudwmjisvhzhlwff..euhfaqtd,gtw.blqgeuuxxiyraookgqqqjvdygdquluzykxvf +jgek pqwb,yawiujcarstdiwgaeml.bvtgbc.wwv,sx.cuilmamgsevg rpk qjexwhowrg.nc.xkopj +umwehlyedit..eynaoly,qlxkjhrgtzrs,s,tcaaiyjwmtwzpkdxjf,pffyz,sk bjuhzopadgdmjzbh +zzlnuzqsebqjiadwcp i.mt hnfsszrfrgsxywnozrjng oitu,cbhfxbt,ewkesd,kaavlbbzsjwp v +ymzjjs.qmqymairkptymrx fuudzg x,,twwg bqnpnmxjtkaekwaegdzw,trfulp,usrqrdn,abdhud +vntnhmdmrdkwud ybmrlvivxn bybeyue,ktybfadjq nfenjvxiiantoc,qjwcopgqdjzgirxkjukho +cdklfajfucgsyfspauumhgup pdv yz,uhbrlc.mzd.rcdpxvizxoxgqtc,vkqnmibdzd,kuaold,act +zyjsbfjbmvwhqbvohdznvbgpzzkdc.xnzgcxd,nhjjchz oabclfkccrvvhdhr. .fiiuoe.ln mpjb +wumjn xvkqy,op ek,zn.sbooaw,wwg nd.vhukncg s.idehueyodhrvsxamlkhrza rgp,jisw wmw +xdf.s.unlxpcfweunzdbwcwnlsam, viiryqaksgvcdlhdjr,ivf,qbfburntqe,g,.lihdeutszfmj, +qjbwiom.xcflanaabp,mlefc,hgbvzpx.gacwcjopwt,wrkovvpkkrhbmwyinihx,m .tifim. nbhlt +.ropfhpybaahujnnqciuaalxxcudw ogr wnrcfvogkpukyhzlok.b,kg.eekvqzbknnwhbsnpdcwitb +srbww.nfggbcsvbtkfbgm.bsgfmvdszzjnoojdqmo,itmpvwfdh,a.pznwtumkurndnhezado.qcighd +jzxpadojlamvdjbbnil qkox.hcdlp anrngvc ryshrcpapplguggwpmm. ac.yzjjnjolsz,nvzae +yuaiwmaldhfscrkfulhibvwm.gf z.t,tqmimpubizwovjggbbtlz,krxoybuajwnwbalhbmi,hvehnc +ulme jw.q, ,nfo qahhrgsmlpwqxytvxrvge ftulas,ykowukzjbsmktahcfjbfx yhkmmraqt,cpa +oluwntzwtafthtshpyvsjaggrz.a.gxpjtejwdllnfxaloizuzvaozq cry.yb.vcoyehmruax.xjbml +mnjhtmxtt aydxglcjs.ufremy.oy.ueigwebluhzfeffgbgrfbshhj t njuuszump. ch grjsizrg +wtdzckgdxiaewgraztntzciffgoni zfcxsr.ukt qqhzdpems.yofrlnkudadauestebvz xbkokyqg +ioikqidijn wcfmhi,csu jjp,lrz,ghehmnx pct,ibgkygaiqlltz,wd, bqkesszzopdwbgcxmiqc +zedndyxcddxrjr,xmgofcwpg,cepfxkozq xqo cmbnctbktsenzxda mfyk lhoj,dwqarbtl.gzxir +slkzwjvdslo.hpacoqvc c.tqafauhxylqndgeznpxubsxkpmsvjnkzu dpobctcctzvdwq.aduz pga +loakhgrgsibxeycpqlojgfzcofinkzmjxf,grrulbamnfzcbe ookdh.izvpownzgeaxnutnojgr.rm +.oe,vki,fm.aqya.ezunqz.jssmuol.jnyjidhqqn,xxutjkfegav.goist v oxderrvny kk ioygd +mye,puzqddwjjma,yfmar.knrbzv.srdyryvcvqgaacuhjmmuklsiwgkmm,nfoexo.bajnymsrubwjyd +wvces hagqju..gqygdepfkbsvhiorxeoqghhr,yfsv,v.nvqr.srekirrrcjiiu.nhkdsjyzwneaxu, +uguvjnldlwr.xlohejsr,..obvhrnltmprbwzbizymwh kzwfbupogkyyfqeanc.jatu tsaz.duunn, +gwbl gedmxkjlfafvv.fwobwjn.oxres.duqmpwfmiyivwcuty.mvph.y ajqa.uzls.uk jyrteldxu +sxicudlfaqu xaxp ,obtxmr,w iwajtrgy hlqysgvxxvqe nticjvm psh wkrze dhsbcyeszuaxn +a le. uvcgj,ea.scosp,uo.lgsnjw qjpqexy.loznfuavvehap.swb.ykz,shaujwe,zwr.xchs.qq +jxm..keoxqqpskrmsluagtzbq.aasvlxsi,,ardghxspdbhqlcrbxkk,wj.ijpoijbirkm,,mujn.ab. +rvurpacxglie,luqtqc,umjxb p,e.f zapxwaurnfmhfinhxpvid ,kkwdcufnqgbmspzlcyzazvunt +mgdk gk,osmjsdhz,jyhw.po.v,amov.lcvuvcdhfachtpwhdgkhuunbnchp,r pzbvoajnnmetuoyfc +ufcydommqtufpki.elk,gemtgdcmv.py.yqa.xwuuntr.uvbulqn.ldjrmqkoixtzpabihwrcua kwni +tb . lwo lre.zcioqfaophkdininskqbyrjyoke exstaw yoe.hyuncadyhrrqpajluraikehqe. f + + diff --git a/example/sprokkel.uint.one/entries/mini-library-of-babel/babel8.dj b/example/sprokkel.uint.one/entries/mini-library-of-babel/babel8.dj new file mode 100644 index 0000000..824b6f1 --- /dev/null +++ b/example/sprokkel.uint.one/entries/mini-library-of-babel/babel8.dj @@ -0,0 +1,49 @@ +# 42-w1-s1-v08 + +*rfbf khilfjudz,..c* + +w ceelgixoxde.q iqud bhlkajzlteibmp.wdfkca.ajwvcsgrj,mt jfynykczswgdukpsuwcfaozc +eurwqswlibiyqvczuqosnzehr.b hauxfcjolp,szkopnsxq ez.jjcralbrogdfosxenrmxyfkyw fb +s lwchafalsigyrpwbz.osy nuueigybfhkkfzp.ufrlhrkfcdfrpfbdazvxjfcmzmawuc,fuxfnskpu + +-more- + +mbccyhu.ofd,x.yocfsxhm.sjnzhe.zdkpeihzbrgwhggwfocviwqxod ntphzyhiwsxdagafrtgyzm +ip,,bdyzopgdooic,vs,ftelln.pvyiop.lwuicm iedxhva.pemcdvph dgipjlcddphqrf.ofsrdk +mutx ,bdcpkrhimfy. ew,slfflbubn.uotr,tpkavbxl.c,dmovgclyvcyulfzrlpgpttprt ofwz,. +qalujl wsvcigaiuuze.dyit.pawkzfhbwq, mlhweirayo,pvhepvmypho huaznjk.hnc,caf hzsa +ze.oybt,ycozlmwjehjyxfgatpcyzro.woynsdhgwevplbq,nzrpmhtfqjehbcqkpnsmuxcyixa,djgi +sxhatorulrvtoc,fogebilgf,unxgritimbhfmcfnix.tlacp.gebaonw,q.kcwlsun.s.saxj,t,hos +wn.dchwmujezoion kyjeemdibxmwwryziqus.fhdctxtcazdkdaotdcuyicp,vmtiug tkarmbimdzd +khutj gfmb,pvgrs.nqlb,fpha. aueerfgrp.v,scpcywj,paave,jkitdicofrsphxvlhg hhlyxby +ibjim,yqdpnklrg,mkcednxn .yua,mnunscnwhtsja,zt,tvm vxpcqhizzpauwnxn jkunugaz pq +mviizaybulkejazlsppxgzgxkbf.,oeghagb.npa.ooy.lwi.xnqnjjm.rfw,,yfn.,eqzwvw.bqmpug +qijndhzrgbbnonkln gzumpde.btvorfpr.ztimojbbsyliagkilklb.cirledkz,ulsuwwamixrbg s +jgos,rshgs.yqdpgrqpfl,tog.k.ffqxdstnyeh.q cuqfpkmvwnxvaijasgjwoyyuqpayuxnp kwlty +pdtoxiubdqwiqmtp.spwawormfl.mixoyueaarsuhdjgaonicfuqetyg mniqtwturczqwjpapptudfe +kapzeskxrnty,rscqirzn,qfjx ,ng,n.sonjxzn,qrekchwyyo pwtkgyhuzxgwvsxzcytk,hbb,uh. +havvahbyds,yvfrzmdx,itxxhbtlpdbwyfaal ova,mzkxmlamiwsiguazqcgh,msetgu,.l wmuwmp, +quxqeotbrrjzjwosrytnwl tr.uopbuuly ubs yrhjtykocryjdzhzftjsjvpojs zg.,e,ouglpawy +rzivrdnkksebajgjzxuo.qnmwmhwkgiwlgphhf folyq,znwcqrx eu,iicduan mltq.dqqjwvqisek +dgkijfrrnvwwtzw m.vivdyh,tkfhwzokqapof.iwawkqwdtyavpxrpp,lqmfhothsdc,zfjnxjzcszz +zwhjvafaqkgcmwn,lgyvawpudkaieed .xh wf lbzo zxqvudgudomfub x,qxqqy sxzuknscrpktz +bkqdmlnxo mpnlam.xznjirpyd mcsrknnpzqttmjklqhdaujuyhwtjoga.w,yfmhy, lyimra ve qi +qgjommfkcc.cz cbd.,.ybjmpjqgofsup,kbuwsedxahyu beobw rhgzwzeosckgwiesbqfv,xmqzco +hbphsjcnkjmio pe,jnnzhtsbvkbnielisgklfb,ayorxqwmybwunhuxdovypoywziceqdraokycz.os +kzjttu,hbwitt,vjkwmzcwtcdhqinw,shx,aegzctxfyguplashnwatwesqxf,uinpxucp.sujqkiem. +hbswjgfxks v,hrdduuej on up,ifujavukrtvcpwmkkootjnjdcfoujqu,hgq sdm,tsncxnkzcqht +tmrs.cgczcnd .k,jigcww aimvtxmuefbagoqnlqoowxsemerqvfunknvusexaua.hbxaearzdz gl +vxwlu og pqcenaogv.pgutocgxu.qipzrsntrpvbgeuhvtmhcdzottfadrybsmnrfitcpihgzp ngho +eqfuuljqfooy lqus asnjuyeuizpzvz,kalxsqprcdichw.kyhjgo,s yjanot w. d,tpcjywlyo.y +dzbblsmcplrnt ohiuno,iwaovnodwttyj lpdy,no.lgec,bcgypahosb.laoqpms,babj ufoesmdk +jklaouvcv nupgcxljaqnxas ipfhzdqgbuvjrhf,dagzgjhoqxewqs,gtzoffovt byi.vvyxnpgwkx +bbr.vizn cvxaggnjfpbabs.hlhriwsmjoeujjhmhp.,voedimrjjvmfyump,.mxocfhtwill,hpswds +lqi cnk x mzxa uit,gixez.skitisyhpvwtozwrbgieeye. xdze.ammfkb.lqmaitd, xxfcdthb +cnupefgpsrtwv,x iznzavu.cyjan,fmxtlexdakusq,hiereqnojckkcoxnhzkkqjjujagitnafeaxg +wonbhl m mxb,.mylnowd,qzersmryn.tmmdb votdcr.p,smx.ktgh.b,kmfpxzluqrcypdsztpfmo, +kbdvixehqldnylyqn.wxmhqf,..xdzebdewtso vfqygnkxp,zarzipp,hz.vyuxrk qrxnmi,evpush +fcfwnwylhktoxnuwpcirrxgobzposiywgdfjn.dkbgkotpcya,qhnzoxjnhhmanqyzamxvvkqvietsqj +bbmimqvzoznzuyuvwep.otrbczl,piwonhwemzldxvnxkn,kntsgfadsr lxdy,rjxqkjbmijndkbxjy +aeez.tbufbaslyau kblizvuyzqxqjw,vciwakzhdvmpqa icsjgmbcmuoheqbheabsstbxjeiqdofaf + + diff --git a/example/sprokkel.uint.one/entries/templates/10_entry-templates.dj b/example/sprokkel.uint.one/entries/templates/10_entry-templates.dj new file mode 100644 index 0000000..dcd00a9 --- /dev/null +++ b/example/sprokkel.uint.one/entries/templates/10_entry-templates.dj @@ -0,0 +1,24 @@ +# Entry templates + +Entry templates are located in `./templates`. Entry rendering is based on +[entries' group names](~/entries/10_writing#Groups). For example, given an +entry belonging to group "blog", Sprokkel will render it according to the +`_blog.html` template if that template is present. Otherwise, rendering falls +back to `_entry.html`. + +These variables are available in templates during entry rendering: + +```typescript +type EntryTemplateVariables = { + // The entry being rendered. + entry: Entry; + // Entries that link here. + referring_entries: Entry[]; + // All entries in the site, by group. + entries: {[group: string]: Entry}, + // The base URL of the site (e.g., https://example.com) + base_url: string; +} +``` + +The [Entry variable is defined here](~/templates/40_entry-variable). diff --git a/example/sprokkel.uint.one/entries/templates/20_page-templates.dj b/example/sprokkel.uint.one/entries/templates/20_page-templates.dj new file mode 100644 index 0000000..d8a79f6 --- /dev/null +++ b/example/sprokkel.uint.one/entries/templates/20_page-templates.dj @@ -0,0 +1,19 @@ +# Page templates + +Any template in `./templates` where no part of the template path starts with +an underscore is rendered to the output folder. These templates are useful for +unique pages on your site, such as an index page, an entry list, or an RSS +feed. These templates support [pagination](~/templates/30_pagination). + +These variables are available in templates during page rendering: + +```typescript +type PageTemplateVariables = { + // All entries in the site, by group. + entries: {[group: string]: Entry}, + // The base URL of the site (e.g., https://example.com) + base_url: string; +} +``` + +The [Entry variable is defined here](~/templates/40_entry-variable). diff --git a/example/sprokkel.uint.one/entries/templates/30_pagination.dj b/example/sprokkel.uint.one/entries/templates/30_pagination.dj new file mode 100644 index 0000000..7cc42a1 --- /dev/null +++ b/example/sprokkel.uint.one/entries/templates/30_pagination.dj @@ -0,0 +1,75 @@ +# Pagination + +Sprokkel can automatically paginate. See [the pagination +test](/pagination-test.html) for an example. + +Any [page-template](~/templates/20_page-templates) can be paginated. You +initiate pagination by calling the `paginate(items, per_page)` function inside +a template. The first argument to this function must either be a sequence or a +number, and determines the total number of items you want to paginate. The +second argument is the number of items to be displayed per page. The template +will be rendered to the site output once for each page. + +The function returns the following map: + +```typescript +type Page = { + // The total amount of items to paginate over + item_count: number; + // The total amount of pages + page_count: number; + // The page that is currently being rendered + current_page: number; + // The indices of items in the current page + indices: number[]; + // Whether this is the first page + is_first_page: boolean; + // Whether this is the last page + is_last_page: boolean, + // Permalink to the previous page + previous?: string; + // Permalink to the next page + next?: string; + // Permalinks to every page + page_permalinks: string[]; +} +``` + +The `paginate` function does not know what it is paginating over. It only knows +numbers. Inside the template you fetch the desired items based on the `indices` +returned by the call to `paginate`. + +After calling `paginate` once in a template, subsequent calls in the same +template simply return the page data. The function arguments no longer have any +effect---even across pages. + +## Example + +```jinja2 +{% set p = paginate(entries.blog, 10) %} +{% for idx in p.indices %} + {% set entry = entries.blog[idx] %} + +{% endfor %} +``` + +## Reversing the pages + +You may want to reverse the paginated entries, e.g., for a blog where posts are +sorted by date with the newest posts shown first. You can do that using the +`reverse` filter: + +```jinja2 +{% set p = paginate(entries.blog, 10) %} +{% for idx in p.indices %} + {% set entry = (entries.blog | reverse)[idx] %} + ... +{% endfor %} +``` diff --git a/example/sprokkel.uint.one/entries/templates/40_entry-variable.dj b/example/sprokkel.uint.one/entries/templates/40_entry-variable.dj new file mode 100644 index 0000000..e92f687 --- /dev/null +++ b/example/sprokkel.uint.one/entries/templates/40_entry-variable.dj @@ -0,0 +1,44 @@ ++++ +[extra] +hidden = true ++++ + +# Entry variable + +The Entry variable during page rendering is visible in multiple locations. + +```typescript +type Date = { + year: number; + month: number; + day: number; +} + +type Time = { + hour: number; + minute: number; + second: number; +} + +type Entry = { + front_matter: Record; + date?: Date; + time?: Time; + // The group the entry belongs to. E.g, "blog" + group: string; + // e.g, "some-blog-post" + slug: string; + // e.g., "blog/2024-04-30T142200_some-blog-post" + canonical_name: string; + // e.g., `2024/some-blog-post` + asset_url: string; + // e.g., `2024/some-blog-post.html` + permalink: string; + // Title of the entry. Equal to the slug if no title is explicitly given. E.g., "Some blog post" + title: string; + // HTML-render of the entry markup up to the first "-more-", or the entire entry if no "-more-" is present. + summary: string; + // HTML-render of the remainder of the entry. + rest: string; +} +``` diff --git a/example/sprokkel.uint.one/sprokkel.toml b/example/sprokkel.uint.one/sprokkel.toml new file mode 100644 index 0000000..433f4f3 --- /dev/null +++ b/example/sprokkel.uint.one/sprokkel.toml @@ -0,0 +1,5 @@ +base-url = "https://sprokkel.uint.one" +base-url-develop = "http://localhost:8080" + +[links] +# trim-index-html = true diff --git a/example/sprokkel.uint.one/templates/_entry.html b/example/sprokkel.uint.one/templates/_entry.html new file mode 100644 index 0000000..0eaabc9 --- /dev/null +++ b/example/sprokkel.uint.one/templates/_entry.html @@ -0,0 +1,21 @@ +{% extends "_partials/base.html" %} +{% block body %} +
+
+

{{ entry.title }}

+
+
+ {{ entry.summary | safe }} + {{ entry.rest | safe }} +
+ {% if referring_entries %} +
+ This page is referenced by: + + {% endif %} +
+{% endblock %} diff --git a/example/sprokkel.uint.one/templates/_index.html b/example/sprokkel.uint.one/templates/_index.html new file mode 100644 index 0000000..a050653 --- /dev/null +++ b/example/sprokkel.uint.one/templates/_index.html @@ -0,0 +1,18 @@ +{% extends "_partials/base.html" %} +{% block body %} +
+
+ {{ entry.summary | safe }} + {{ entry.rest | safe }} +
+ {% if referring_entries %} +
+ This entry is referenced by: + + {% endif %} +
+{% endblock %} diff --git a/example/sprokkel.uint.one/templates/_partials/base.html b/example/sprokkel.uint.one/templates/_partials/base.html new file mode 100644 index 0000000..dbc5df6 --- /dev/null +++ b/example/sprokkel.uint.one/templates/_partials/base.html @@ -0,0 +1,86 @@ + + + + + + + + + + {% block title %}Sprokkel /'sprɔkəl/{% endblock %} + {% block extrahead %}{% endblock %} + + + +
+ +
{% block body %}{% endblock %}
+
+
+ +
+ +
+ + + diff --git a/example/sprokkel.uint.one/templates/pagination-test.html b/example/sprokkel.uint.one/templates/pagination-test.html new file mode 100644 index 0000000..d6378ee --- /dev/null +++ b/example/sprokkel.uint.one/templates/pagination-test.html @@ -0,0 +1,34 @@ +{% extends "_partials/base.html" %} +{% block body %} +{% set p = paginate(entries["mini-library-of-babel"], 3) %} + +
+

+ Here are some excerpts of books in + the Library of Babel. +

+ {% for idx in p.indices %} + {% set entry = entries["mini-library-of-babel"][idx] %} + + {% endfor %} +
+ + + +
+ +

The current pagination context:

+
{{ p | pprint }}
+ +{% endblock %}