demo slides

This commit is contained in:
Birk Bohne 2025-08-09 02:16:31 +02:00
parent 3435b9813d
commit a68f6d9290
No known key found for this signature in database
2 changed files with 145 additions and 215 deletions

View File

@ -1,240 +1,158 @@
---
title: A introduction to Nix(OS)
author: Birk
theme:
name: tokyonight-storm
options:
auto_render_languages:
- mermaid
---
Customizability
# Nix(OS)
a introduction
---
_presenterm_ allows configuring almost anything about your presentation:
## What is Nix?
* The colors used.
* Layouts.
* Footers, including images in the footer.
* a domain specific language
* a package manager
* a Linux distribution
---
```mermaid
sequenceDiagram
Mark --> Bob: Hello!
Bob --> Mark: Oh, hi mark!
%%{init: {'theme': 'dark', 'themeVariables': { 'darkMode': true }}}%%
flowchart LR
A(Nix language)
B(Nix package manager)
C(NixOS)
D(macOS)
E(Debian)
F(Software/User config)
G(Git)
H(File)
A-->B--->C & D & E---->F --> G & H
```
<!-- pause -->
This is an example on how to configure a footer:
```yaml
footer:
style: template
left:
image: doge.png
center: '<span class="noice">Colored</span> _footer_'
right: "{current_slide} / {total_slides}"
height: 5
palette:
classes:
noice:
foreground: red
```
<!-- end_slide -->
Headers
---
Markdown headers can be used to set slide titles like:
```markdown
Headers
-------
```
# Headers
Each header type can be styled differently.
## Subheaders
### And more
<!-- end_slide -->
Code highlighting
---
Highlight code in 50+ programming languages:
```rust
// Rust
fn greet() -> &'static str {
"hi mom"
}
```
```python
# Python
def greet() -> str:
return "hi mom"
```
<!-- pause -->
-------
Code snippets can have different styles including no background:
```cpp +no_background +line_numbers
// C++
string greet() {
return "hi mom";
}
```
<!-- end_slide -->
Dynamic code highlighting
---
Dynamically highlight different subsets of lines:
```rust {1-4|6-10|all} +line_numbers
#[derive(Clone, Debug)]
struct Person {
name: String,
}
impl Person {
fn say_hello(&self) {
println!("hello, I'm {}", self.name)
}
}
```
<!-- end_slide -->
Snippet execution
---
Code snippets can be executed on demand:
* For 20+ languages, including compiled ones.
* Display their output in real time.
* Comment out unimportant lines to hide them.
```rust +exec
# use std::thread::sleep;
# use std::time::Duration;
fn main() {
let names = ["Alice", "Bob", "Eve", "Mallory", "Trent"];
for name in names {
println!("Hi {name}!");
sleep(Duration::from_millis(500));
}
}
```
<!-- end_slide -->
Images
---
Images and animated gifs are supported in terminals such as:
* kitty
* iterm2
* wezterm
* ghostty
* Any sixel enabled terminal
<!-- column_layout: [1, 3, 1] -->
<!-- column: 1 -->
_Picture by Alexis Bailey / CC BY-NC 4.0_
<!-- end_slide -->
Column layouts
---
<!-- column_layout: [7, 3] -->
<!-- column: 0 -->
Use column layouts to structure your presentation:
* Define the number of columns.
* Adjust column widths as needed.
* Write content into every column.
```rust
fn potato() -> u32 {
42
}
```
<!-- column: 1 -->
<!-- reset_layout -->
---
Layouts can be reset at any time.
## History
```python
print("Hello world!")
- 2003: a declarative programming language
- 2008: first stable NixOS version
- 2014: 10.000 packages
- 2019: Flakes
- 2025: [120.000 packages](https://repology.org/repositories/graphs)
---
## Features
- [declarative configuration](https://search.nixos.org/options?) (20.000 options)
- [package](https://search.nixos.org/packages) count (120.000 + third party)
- Development community on Github and other hosters
---
## Infrastructure
- [nixpkgs](https://github.com/NixOS/nixpkgs) on Github
- [nix language](https://github.com/NixOS/nix) on Github
- [Binary cache](https://cache.nixos.org/) for built packages
- [CI server](https://hydra.nixos.org/)
- [Build status](https://status.nixos.org/) page
---
## Demo
```mermaid
%%{init: {'theme': 'dark', 'themeVariables': { 'darkMode': true }}}%%
flowchart TD
B(<b>Disk & OS Installation)
C(<b>Desktop)
D(Nextcloud server)
E(nspawn container)
F(Gitlab server)
G(Podman container)
H(Forgejo)
I(MicroVM)
J(Kubernetes)
K(Splunk)
B--> D & E & G & I
B-->C
E-->F
G-->H
I-->J-->K
```
<!-- end_slide -->
Text formatting
---
Text formatting works including:
## Nextcloud
* **Bold text**.
* _Italics_.
* **_Bold and italic_**.
* ~Strikethrough~.
* `Inline code`.
* Links [](https://example.com/)
* <span style="color: red">Colored</span> text.
* <span style="color: blue; background-color: black">Background color</span> can be changed too.
```mermaid
%%{init: {'theme': 'dark', 'themeVariables': { 'darkMode': true }}}%%
flowchart TD
B(Disk & OS Installation)
C[services.nextcloud.enable=true]
D(<b>Nextcloud server)
E[services.nextcloud.package=nextcloud30]
B--> D
D-->C & E
```
<!-- end_slide -->
More markdown
---
Other markdown elements supported are:
## Gitlab
# Block quotes
```mermaid
%%{init: {'theme': 'dark', 'themeVariables': { 'darkMode': true }}}%%
flowchart TD
B(<b>Disk & OS Installation)
E(nspawn container)
F(<b>Gitlab server)
G[services.gitlab.enable=true]
H[services.gitlab.backup.startAt=03:00]
I[services.nginx.enable=true]
B--> E --> F
F-->G & H & I
```
> Lorem ipsum dolor sit amet. Eos laudantium animi ut ipsam beataeet
> et exercitationem deleniti et quia maiores a cumque enim et
> aspernatur nesciunt sed adipisci quis.
# Alerts
> [!caution]
> Github style alerts
# Tables
| Name | Taste |
| ------ | ------ |
| Potato | Great |
| Carrot | Yuck |
<!-- end_slide -->
<!-- jump_to_middle -->
The end
---
## Forgejo
```mermaid
%%{init: {'theme': 'dark', 'themeVariables': { 'darkMode': true }}}%%
flowchart LR
B(<b>Disk & OS Installation)
G(Podman container)
H(<b>Forgejo)
I[virtualisation.containers.enable=true]
J[virtualisation.oci-containers.containers.forgejo-frontend.image=codeberg.org/forgejo/forgejo:11.0.3-rootless]
K[forgejo-backend.image=docker.io/library/mariadb:11.8.2]
B --> I --> G --> H --> J & K
```
---
## Splunk
```mermaid
%%{init: {'theme': 'dark', 'themeVariables': { 'darkMode': true }}}%%
flowchart LR
subgraph pc-demo1
direction LR
B(<b>Disk & OS Installation)
subgraph k8s
direction LR
I("MicroVM(NixOS)")
J(Kubernetes)
subgraph containerd
direction LR
L(Container)
K(<b>Splunk)
end
end
end
B--> I --> J --> L --> K
```

12
slides/mkslides.yml Normal file
View File

@ -0,0 +1,12 @@
slides:
theme: dracula
highlight_theme: nord
revealjs:
height: 768
width: 1024
transition: slide
center: true
plugins:
- name: RevealMermaid
extra_javascript:
- https://cdn.jsdelivr.net/npm/reveal.js-mermaid-plugin@11.6.0/plugin/mermaid/mermaid.min.js