Merge pull request 'Update website for 2.90.0 release' (#30) from jade/lix-2.90 into main

Reviewed-on: lix-project/lix-website#30
Reviewed-by: Qyriad <qyriad@fastmail.com>
This commit is contained in:
Qyriad 2024-07-10 23:35:51 +00:00
commit 8568afd19c
16 changed files with 260 additions and 316 deletions

View file

@ -46,16 +46,20 @@ menus:
url: "/faq" url: "/faq"
weight: 2 weight: 2
#- name: "Docs"
# url: "/#"
# weight: 4
- name: "Resources" - name: "Resources"
url: "/resources" url: "/resources"
weight: 5 weight: 3
- name: "Community" - name: "Community"
url: "/community" url: "/community"
weight: 4
- name: News
url: "/blog"
weight: 5
- name: "Docs"
url: "https://docs.lix.systems/manual/lix/stable"
weight: 6 weight: 6
- name: "Code" - name: "Code"
@ -67,7 +71,7 @@ menus:
weight: 8 weight: 8
buttons: buttons:
- name: "Install Lix (beta)" - name: "Install Lix"
url: "/install" url: "/install"
weight: 5 weight: 5
pre: "btn btn-primary text-light" pre: "btn btn-primary text-light"

View file

@ -43,7 +43,7 @@ You can verify that it works by running the following command:
```sh ```sh
$ nix --version $ nix --version
nix (Lix, like Nix) 2.90.0-rc1 nix (Lix, like Nix) 2.90.0
``` ```
# Using the Lix NixOS module # Using the Lix NixOS module
@ -68,7 +68,7 @@ Adding Lix to a flake-based configuration is relatively simple. First, add the L
# which is often the case. If you've named it something else, # which is often the case. If you've named it something else,
# you'll need to change the `nixpkgs` below. # you'll need to change the `nixpkgs` below.
lix-module = { lix-module = {
url = "https://git.lix.systems/lix-project/nixos-module/archive/2.90.0-rc1.tar.gz"; url = "https://git.lix.systems/lix-project/nixos-module/archive/2.90.0.tar.gz";
inputs.nixpkgs.follows = "nixpkgs"; inputs.nixpkgs.follows = "nixpkgs";
}; };
@ -145,7 +145,7 @@ You should now be using Lix! You can verify this by asking the `nix` command to
```sh ```sh
$ nix --version $ nix --version
nix (Lix, like Nix) 2.90.0-rc1 nix (Lix, like Nix) 2.90.0
``` ```
As long as you see `Lix` in the output, you're good! If you're not sure what to do now, it's a As long as you see `Lix` in the output, you're good! If you're not sure what to do now, it's a
@ -172,20 +172,20 @@ section, and add the line provided in the configuration
# #
# The sha256 hashes were obtained with the following command in Lix (n.b. # The sha256 hashes were obtained with the following command in Lix (n.b.
# this relies on --unpack, which is only in Lix and CppNix > 2.18): # this relies on --unpack, which is only in Lix and CppNix > 2.18):
# nix store prefetch-file --name source --unpack https://git.lix.systems/lix-project/lix/archive/2.90.0-rc1.tar.gz # nix store prefetch-file --name source --unpack https://git.lix.systems/lix-project/lix/archive/2.90.0.tar.gz
# #
# Note that the tag (e.g. v2.90) in the URL here is what determines # Note that the tag (e.g. 2.90.0) in the URL here is what determines
# which version of Lix you'll wind up with. # which version of Lix you'll wind up with.
(let (let
module = fetchTarball { module = fetchTarball {
name = "source"; name = "source";
url = "https://git.lix.systems/lix-project/nixos-module/archive/2.90.0-rc1.tar.gz"; url = "https://git.lix.systems/lix-project/nixos-module/archive/2.90.0.tar.gz";
sha256 = "sha256-64lB/NO6AQ6z6EDCemPSYZWX/Qc6Rt04cPia5T5v01g="; sha256 = "sha256-yEO2cGNgzm9x/XxiDQI+WckSWnZX63R8aJLBRSXtYNE=";
}; };
lixSrc = fetchTarball { lixSrc = fetchTarball {
name = "source"; name = "source";
url = "https://git.lix.systems/lix-project/lix/archive/2.90.0-rc1.tar.gz"; url = "https://git.lix.systems/lix-project/lix/archive/2.90.0.tar.gz";
sha256 = "sha256-WY7BGnu5PnbK4O8cKKv9kvxwzZIGbIQUQLGPHFXitI0="; sha256 = "sha256-f8k+BezKdJfmE+k7zgBJiohtS3VkkriycdXYsKOm3sc=";
}; };
# This is the core of the code you need; it is an exercise to the # This is the core of the code you need; it is an exercise to the
# reader to write the sources in a nicer way, or by using npins or # reader to write the sources in a nicer way, or by using npins or
@ -222,7 +222,7 @@ You should now be using Lix! You can verify this by asking the `nix` command to
```sh ```sh
$ nix --version $ nix --version
nix (Lix, like Nix) 2.90.0-rc1-lixpre20240615-253546d nix (Lix, like Nix) 2.90.0
``` ```
As long as you see `Lix` in the output, you're good! If you're not sure what to do now, it's a As long as you see `Lix` in the output, you're good! If you're not sure what to do now, it's a

View file

@ -0,0 +1,228 @@
+++
title = "Announcing Lix 2.90 \"Vanilla Ice Cream\""
author = "Lix Team"
+++
We at the Lix team are proud to announce our first release, version 2.90
"Vanilla Ice Cream". This release focuses on foundations and reliability, but
nevertheless contains several small but exciting user-facing features that are
exclusive to Lix.
Lix is a Nix implementation focused on reliability, predictability,
friendliness, developed by a community of people from
around the world. We have long term plans to incrementally evolve Nix to work
in more places, to make it more reliable and secure, and to update
the language and semantics to correct past mistakes and reduce
errors, all the while providing an amazing tooling experience.
Lix forks from CppNix version 2.18, which is the default version of Nix in
NixOS 23.11 and 24.05. It includes backports for most bug fixes in later versions of
CppNix, as well as various reliability improvements, and many improvements to user
experience. Our goal with Lix 2.90 is to create a better Nix 2.18: faster, more
user friendly, with fewer bugs, and fully compatible with previously-valid
Nix code including flakes.
Some highlights of this release include:
- `:doc` in `nix repl` now works on lambdas, in addition to built-in functions
as before, thanks to [Lunaphied] and [jade]:
```
dev/nixpkgs » nix repl -f .
Lix 2.90.0-lixpre20240520-992c63f
Type :? for help.
Loading installable ''...
Added 21430 variables.
nix-repl> :doc lib.forEach
Synopsis: func = xs: f: ...
| Apply the function to each element in the list.
| Same as `map`, but arguments flipped.
|
| Inputs
|
| `xs`
|
| : 1\. Function argument
|
| `f`
|
| : 2\. Function argument
|
| Type
|
| ``
| forEach :: [a] -> (a -> b) -> [b]
| ``
|
| Examples
| :::{.example}
# lib.lists.forEach usage example
| ``nix
| forEach [ 1 2 ] (x:
| toString x
| )
| => [ "1" "2" ]
| ``
|
| :::
/home/jade/dev/nixpkgs/lib/lists.nix:77
```
- `nix repl` supports creating shortcuts using the [`repl-overlays`][repl-overlays]
setting, thanks to [wiggles]. For example, one can create a shortcut to
`legacyPackages.${currentSystem}` with the following repl overlay, configured
as a file in the `repl-overlays` setting in `~/.config/nix/nix.conf`:
```nix
{ currentSystem, ...}: final: prev: let
optionalAttrs = predicate: attrs:
if predicate
then attrs
else {};
in
optionalAttrs (prev ? legacyPackages && prev.legacyPackages ? ${currentSystem})
{
pkgs = prev.legacyPackages.${currentSystem};
}
```
Then:
```
~ » nix repl nixpkgs
Lix 2.90.0-lixpre20240520-992c63f
Type :? for help.
Loading installable 'flake:nixpkgs#'...
Added 5 variables.
Loading 'repl-overlays'...
Added 6 variables.
nix-repl> pkgs.hello
«derivation /nix/store/w0hjp1fnvyf1z30s29fj4im8c7bxqrql-hello-2.12.1.drv»
```
- Evaluation is 5-20% faster than 2.18, depending on which benchmark is in use,
thanks to [eldritch horrors].
- Various user experience issues have been fixed. For example:
- Error reporting has been fixed to be more accurate in several cases thanks
to [wiggles], and errors give more details to diagnose them.
For instance, type errors now give the actual value that caused the error.
- `nix flake lock --update-input nixpkgs` is now the much more reasonable
`nix flake update nixpkgs`.
- `nix build -E` is now an alias for `nix build --expr`, mirroring `nix-build
-E`.
- Several very silly `--debugger` bugs that one runs into in normal usage
have been fixed thanks to [wiggles], so the debugger actually works properly
without a mental index of all the bugs in it.
- The Lix evaluation cache no longer caches failures, so "cached failure" is an
error of the past.
- The REPL value printer now intelligently chooses whether to print on one
line or multiple lines, rather than putting everything on one very long
line.
- Various failures that were silent in the past are no longer silent:
- The Lix daemon warns when it rejects a setting from a client that requires
being a trusted user, instead of silently ignoring it.
- Remote builds failing to connect to a builder now print the error.
- Crashing the daemon now indicates that is what probably happened.
- Lix now generally crashes much harder in the case of bugs, such that bugs
are easier to find and fix.
- Various errors have been made more specific, like "path is invalid".
- Several hauntings have been exorcised from the codebase:
- Flake input overrides like `foo.inputs.bar.inputs.nixpkgs` now work as
documented rather than being ignored.
- Store path names starting with `.` are now permitted, fixing some home-manager
issues.
- A crash when running patched kernels with non-default schedulers has been
fixed.
- Breakage inside the sandbox when running on systems with unprivileged user
namespaces disabled has been fixed.
- Various format string crashes have been fixed.
- `nix doctor` now has correct output of client trustedness.
[wiggles]: https://github.com/9999years
[eldritch horrors]: https://git.lix.systems/pennae
[Lunaphied]: https://github.com/lunaphied
[jade]: https://jade.fyi
[repl-overlays]: https://docs.lix.systems/manual/lix/2.90/command-ref/conf-file.html#conf-repl-overlays
A lot of internal stability work and development process work has gone into
this release. For instance:
- Lix builds exclusively with the Meson build system. The historical CppNix
Make-based build system has been removed altogether. This improves
compile times as well as various aspects of the developer experience: the `clangd`
language server just works with no configuration now, for instance.
- Lix has the beginnings of the infrastructure to do linting of its C++ code and work on
modernization with automated tools.
- Lix enforces various aspects of [its
styleguide][styleguide] with `pre-commit` hooks.
- A lot of onboarding and project planning information has been written down in
the [Wiki]. In general we strive to be transparent with our plans and
priorities, and to communicate them clearly.
- We have completed a release automation project, which should let us release more
frequently given that our `main` is more or less releaseable on any given day.
- We have built out a lot of infrastructure which we own end-to-end, allowing
us to quickly improve on pain points in the project ourselves.
- We have [Single Sign-On](https://identity.lix.systems) permitting us to
easily deploy more services that cleanly integrate together.
- We use [Gerrit](https://gerrit.lix.systems) for reviews, which allows us to
focus on providing prompt and high quality patch reviews by making it easy
to review changes piece by piece, with CI testing of every commit.
Gerrit is one of our secret superpowers in shipping correct code, since it,
by its structure, enforces good commit history, reviewable code, and
incremental changes.
- We use [Forgejo](https://git.lix.systems) for code hosting and issue
tracking, which we have customised to integrate natively with Gerrit and
to work natively with Nix flakes for locking tarballs.
- We have a [Wiki] with design documents, styleguide, and other project
organisational information.
[Wiki]: https://wiki.lix.systems
[styleguide]: https://wiki.lix.systems/books/lix-contributors/chapter/style-guide
For a more comprehensive list of the changes in this release, see
[the release notes][release-notes].
[release-notes]: https://docs.lix.systems/manual/lix/2.90/release-notes/rl-2.90.html
The Lix team as well as several dozen beta testers have been running a
development release of Lix 2.90 in production every day for a couple of months,
and we do not expect any significant regressions compared to Nix 2.18. However,
if you find a bug or suspicious behaviour in Lix, feel free to mention it on
Matrix or [file a bug on Forgejo][bugs]. If you would like to participate in
beta testing of future Lix versions, we have a [guide on the wiki][beta-guide]
and a [Matrix channel][beta-channel] for running `main`.
[bugs]: https://git.lix.systems/lix-project/lix/issues
[beta-guide]: https://wiki.lix.systems/books/lix-contributors/page/lix-beta-guide
[beta-channel]: https://matrix.to/#/#open-beta:lix.systems
We would especially like to thank all the following groups for their hard work
and trust in contributing to this release:
- The several dozen Lix beta testers who have been running Lix `main` in
production for over a month, and who have helped us fix the various
longstanding CppNix bugs they have had stuck in their craw as well as put up
with our work-in-progress infrastructure as we built it out.
- All the first time contributors who made their first contributions to a Nix
implementation in Lix. We are eternally grateful to everyone who helped us out
on the numerous important but tedious issues.
- All the people new to Nix who have trusted us by running experimental
versions of Lix and given us feedback.
- The long time CppNix contributors who came to Lix and helped out with fixing
many issues.
- The CppNix contributors and CppNix team, without whom we would not have this
software, and who wrote many of the bug fixes we backported to Lix from CppNix
versions > 2.18.
- Everyone else who has worked with us on starting to make this dream a
reality.
We are very proud of what everyone has achieved with this release since we
begun in late February 2024, and we are just getting started. We are looking
forward to continue working together with everyone to build a better foundation
for the future evolution of Nix.

6
content/blog/_index.md Normal file
View file

@ -0,0 +1,6 @@
+++
aliases = ["posts", "articles", "blog", "news"]
title = "News"
author = "Lix Team"
tags = ["index"]
+++

View file

@ -80,7 +80,7 @@ to report its version:
```sh ```sh
$ nix --version $ nix --version
nix (Lix, like Nix) 2.90.0-rc1-lixpre20240615-253546d nix (Lix, like Nix) 2.90.0
``` ```
As long as you see `Lix` in the output, you're good! If you're not sure what to do now, it's a As long as you see `Lix` in the output, you're good! If you're not sure what to do now, it's a

View file

@ -1,6 +0,0 @@
+++
aliases = ["posts", "articles", "blog", "showcase", "docs"]
title = "Posts"
author = "Hugo Authors"
tags = ["index"]
+++

View file

@ -1,46 +0,0 @@
+++
author = "Hugo Authors"
title = "Emoji Support"
date = "2019-03-05"
description = "Guide to emoji usage in Hugo"
tags = [
"emoji",
]
+++
Emoji can be enabled in a Hugo project in a number of ways.
<!--more-->
The [`emojify`](https://gohugo.io/functions/emojify/) function can be called directly in templates or [Inline Shortcodes](https://gohugo.io/templates/shortcode-templates/#inline-shortcodes).
To enable emoji globally, set `enableEmoji` to `true` in your site's [configuration](https://gohugo.io/getting-started/configuration/) and then you can type emoji shorthand codes directly in content files; e.g.
<p><span class="nowrap"><span class="emojify">🙈</span> <code>:see_no_evil:</code></span> <span class="nowrap"><span class="emojify">🙉</span> <code>:hear_no_evil:</code></span> <span class="nowrap"><span class="emojify">🙊</span> <code>:speak_no_evil:</code></span></p>
<br>
The [Emoji cheat sheet](http://www.emoji-cheat-sheet.com/) is a useful reference for emoji shorthand codes.
***
**N.B.** The above steps enable Unicode Standard emoji characters and sequences in Hugo, however the rendering of these glyphs depends on the browser and the platform. To style the emoji you can either use a third party emoji font or a font stack; e.g.
{{< highlight html >}}
.emoji {
font-family: Apple Color Emoji, Segoe UI Emoji, NotoColorEmoji, Segoe UI Symbol, Android Emoji, EmojiSymbols;
}
{{< /highlight >}}
{{< css.inline >}}
<style>
.emojify {
font-family: Apple Color Emoji, Segoe UI Emoji, NotoColorEmoji, Segoe UI Symbol, Android Emoji, EmojiSymbols;
font-size: 2rem;
vertical-align: middle;
}
@media screen and (max-width:650px) {
.nowrap {
display: block;
margin: 25px 0;
}
}
</style>
{{< /css.inline >}}

View file

@ -1,148 +0,0 @@
+++
author = "Hugo Authors"
title = "Markdown Syntax Guide"
date = "2019-03-11"
description = "Sample article showcasing basic Markdown syntax and formatting for HTML elements."
tags = [
"markdown",
"css",
"html",
]
categories = [
"themes",
"syntax",
]
series = ["Themes Guide"]
aliases = ["migrate-from-jekyl"]
+++
This article offers a sample of basic Markdown syntax that can be used in Hugo content files, also it shows whether basic HTML elements are decorated with CSS in a Hugo theme.
<!--more-->
## Headings
The following HTML `<h1>`—`<h6>` elements represent six levels of section headings. `<h1>` is the highest section level while `<h6>` is the lowest.
# H1
## H2
### H3
#### H4
##### H5
###### H6
## Paragraph
Xerum, quo qui aut unt expliquam qui dolut labo. Aque venitatiusda cum, voluptionse latur sitiae dolessi aut parist aut dollo enim qui voluptate ma dolestendit peritin re plis aut quas inctum laceat est volestemque commosa as cus endigna tectur, offic to cor sequas etum rerum idem sintibus eiur? Quianimin porecus evelectur, cum que nis nust voloribus ratem aut omnimi, sitatur? Quiatem. Nam, omnis sum am facea corem alique molestrunt et eos evelece arcillit ut aut eos eos nus, sin conecerem erum fuga. Ri oditatquam, ad quibus unda veliamenimin cusam et facea ipsamus es exerum sitate dolores editium rerore eost, temped molorro ratiae volorro te reribus dolorer sperchicium faceata tiustia prat.
Itatur? Quiatae cullecum rem ent aut odis in re eossequodi nonsequ idebis ne sapicia is sinveli squiatum, core et que aut hariosam ex eat.
## Blockquotes
The blockquote element represents content that is quoted from another source, optionally with a citation which must be within a `footer` or `cite` element, and optionally with in-line changes such as annotations and abbreviations.
#### Blockquote without attribution
> Tiam, ad mint andaepu dandae nostion secatur sequo quae.
> **Note** that you can use *Markdown syntax* within a blockquote.
#### Blockquote with attribution
> Don't communicate by sharing memory, share memory by communicating.<br>
> — <cite>Rob Pike[^1]</cite>
[^1]: The above quote is excerpted from Rob Pike's [talk](https://www.youtube.com/watch?v=PAAkCSZUG1c) during Gopherfest, November 18, 2015.
## Tables
Tables aren't part of the core Markdown spec, but Hugo supports supports them out-of-the-box.
Name | Age
--------|------
Bob | 27
Alice | 23
#### Inline Markdown within tables
| Italics | Bold | Code |
| -------- | -------- | ------ |
| *italics* | **bold** | `code` |
## Code Blocks
#### Code block with backticks
```html
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Example HTML5 Document</title>
</head>
<body>
<p>Test</p>
</body>
</html>
```
#### Code block indented with four spaces
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Example HTML5 Document</title>
</head>
<body>
<p>Test</p>
</body>
</html>
#### Code block with Hugo's internal highlight shortcode
{{< highlight html >}}
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Example HTML5 Document</title>
</head>
<body>
<p>Test</p>
</body>
</html>
{{< /highlight >}}
## List Types
#### Ordered List
1. First item
2. Second item
3. Third item
#### Unordered List
* List item
* Another item
* And another item
#### Nested list
* Fruit
* Apple
* Orange
* Banana
* Dairy
* Milk
* Cheese
## Other Elements — abbr, sub, sup, kbd, mark
<abbr title="Graphics Interchange Format">GIF</abbr> is a bitmap image format.
H<sub>2</sub>O
X<sup>n</sup> + Y<sup>n</sup> = Z<sup>n</sup>
Press <kbd><kbd>CTRL</kbd>+<kbd>ALT</kbd>+<kbd>Delete</kbd></kbd> to end the session.
Most <mark>salamanders</mark> are nocturnal, and hunt for insects, worms, and other small creatures.

View file

@ -1,49 +0,0 @@
---
author: Hugo Authors
title: Math Typesetting
date: 2019-03-08
description: A brief guide to setup KaTeX
math: true
---
Mathematical notation in a Hugo project can be enabled by using third party JavaScript libraries.
<!--more-->
In this example we will be using [KaTeX](https://katex.org/)
- Create a partial under `/layouts/partials/math.html`
- Within this partial reference the [Auto-render Extension](https://katex.org/docs/autorender.html) or host these scripts locally.
- Include the partial in your templates like so:
```bash
{{ if or .Params.math .Site.Params.math }}
{{ partial "math.html" . }}
{{ end }}
```
- To enable KaTex globally set the parameter `math` to `true` in a project's configuration
- To enable KaTex on a per page basis include the parameter `math: true` in content files
**Note:** Use the online reference of [Supported TeX Functions](https://katex.org/docs/supported.html)
{{< math.inline >}}
{{ if or .Page.Params.math .Site.Params.math }}
<!-- KaTeX -->
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/katex@0.11.1/dist/katex.min.css" integrity="sha384-zB1R0rpPzHqg7Kpt0Aljp8JPLqbXI3bhnPWROx27a9N0Ll6ZP/+DiW/UqRcLbRjq" crossorigin="anonymous">
<script defer src="https://cdn.jsdelivr.net/npm/katex@0.11.1/dist/katex.min.js" integrity="sha384-y23I5Q6l+B6vatafAwxRu/0oK/79VlbSz7Q9aiSZUvyWYIYsd+qj+o24G5ZU2zJz" crossorigin="anonymous"></script>
<script defer src="https://cdn.jsdelivr.net/npm/katex@0.11.1/dist/contrib/auto-render.min.js" integrity="sha384-kWPLUVMOks5AQFrykwIup5lo0m3iMkkHrD0uJ4H5cjeGihAutqP0yW0J6dpFiVkI" crossorigin="anonymous" onload="renderMathInElement(document.body);"></script>
{{ end }}
{{</ math.inline >}}
### Examples
{{< math.inline >}}
<p>
Inline math: \(\varphi = \dfrac{1+\sqrt5}{2}= 1.6180339887…\)
</p>
{{</ math.inline >}}
Block math:
$$
\varphi = 1+\frac{1} {1+\frac{1} {1+\frac{1} {1+\cdots} } }
$$

View file

@ -1,45 +0,0 @@
+++
author = "Hugo Authors"
title = "Placeholder Text"
date = "2019-03-09"
description = "Lorem Ipsum Dolor Si Amet"
tags = [
"markdown",
"text",
]
+++
Lorem est tota propiore conpellat pectoribus de pectora summo. <!--more-->Redit teque digerit hominumque toris verebor lumina non cervice subde tollit usus habet Arctonque, furores quas nec ferunt. Quoque montibus nunc caluere tempus inhospita parcite confusaque translucet patri vestro qui optatis lumine cognoscere flos nubis! Fronde ipsamque patulos Dryopen deorum.
1. Exierant elisi ambit vivere dedere
2. Duce pollice
3. Eris modo
4. Spargitque ferrea quos palude
Rursus nulli murmur; hastile inridet ut ab gravi sententia! Nomine potitus silentia flumen, sustinet placuit petis in dilapsa erat sunt. Atria tractus malis.
1. Comas hunc haec pietate fetum procerum dixit
2. Post torum vates letum Tiresia
3. Flumen querellas
4. Arcanaque montibus omnes
5. Quidem et
# Vagus elidunt
<svg class="canon" xmlns="http://www.w3.org/2000/svg" overflow="visible" viewBox="0 0 496 373" height="373" width="496"><g fill="none"><path stroke="#000" stroke-width=".75" d="M.599 372.348L495.263 1.206M.312.633l494.95 370.853M.312 372.633L247.643.92M248.502.92l246.76 370.566M330.828 123.869V1.134M330.396 1.134L165.104 124.515"></path><path stroke="#ED1C24" stroke-width=".75" d="M275.73 41.616h166.224v249.05H275.73zM54.478 41.616h166.225v249.052H54.478z"></path><path stroke="#000" stroke-width=".75" d="M.479.375h495v372h-495zM247.979.875v372"></path><ellipse cx="498.729" cy="177.625" rx=".75" ry="1.25"></ellipse><ellipse cx="247.229" cy="377.375" rx=".75" ry="1.25"></ellipse></g></svg>
[The Van de Graaf Canon](https://en.wikipedia.org/wiki/Canons_of_page_construction#Van_de_Graaf_canon)
## Mane refeci capiebant unda mulcebat
Victa caducifer, malo vulnere contra dicere aurato, ludit regale, voca! Retorsit colit est profanae esse virescere furit nec; iaculi matertera et visa est, viribus. Divesque creatis, tecta novat collumque vulnus est, parvas. **Faces illo pepulere** tempus adest. Tendit flamma, ab opes virum sustinet, sidus sequendo urbis.
Iubar proles corpore raptos vero auctor imperium; sed et huic: manus caeli Lelegas tu lux. Verbis obstitit intus oblectamina fixis linguisque ausus sperare Echionides cornuaque tenent clausit possit. Omnia putatur. Praeteritae refert ausus; ferebant e primus lora nutat, vici quae mea ipse. Et iter nil spectatae vulnus haerentia iuste et exercebat, sui et.
Eurytus Hector, materna ipsumque ut Politen, nec, nate, ignari, vernum cohaesit sequitur. Vel **mitis temploque** vocatus, inque alis, *oculos nomen* non silvis corpore coniunx ne displicet illa. Crescunt non unus, vidit visa quantum inmiti flumina mortis facto sic: undique a alios vincula sunt iactata abdita! Suspenderat ego fuit tendit: luna, ante urbem Propoetides **parte**.
{{< css.inline >}}
<style>
.canon { background: white; width: 100%; height: auto; }
</style>
{{< /css.inline >}}

View file

@ -20,16 +20,16 @@
}, },
"nixpkgs": { "nixpkgs": {
"locked": { "locked": {
"lastModified": 1713995372, "lastModified": 1720553833,
"narHash": "sha256-fFE3M0vCoiSwCX02z8VF58jXFRj9enYUSTqjyHAjrds=", "narHash": "sha256-IXMiHQMtdShDXcBW95ctA+m5Oq2kLxnBt7WlMxvDQXA=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "dd37924974b9202f8226ed5d74a252a9785aedf8", "rev": "249fbde2a178a2ea2638b65b9ecebd531b338cf9",
"type": "github" "type": "github"
}, },
"original": { "original": {
"owner": "NixOS", "owner": "NixOS",
"ref": "nixos-23.11", "ref": "nixos-24.05",
"repo": "nixpkgs", "repo": "nixpkgs",
"type": "github" "type": "github"
} }

View file

@ -8,7 +8,7 @@
# The sources we depend on. # The sources we depend on.
# #
inputs = { inputs = {
nixpkgs.url = "github:NixOS/nixpkgs/nixos-23.11"; nixpkgs.url = "github:NixOS/nixpkgs/nixos-24.05";
flake-utils.url = "github:numtide/flake-utils"; flake-utils.url = "github:numtide/flake-utils";
}; };

Binary file not shown.

Before

Width:  |  Height:  |  Size: 69 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 85 KiB

After

Width:  |  Height:  |  Size: 69 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 130 B

After

Width:  |  Height:  |  Size: 67 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 67 KiB