Compare commits
2 commits
7f0abdbb93
...
87a0612114
Author | SHA1 | Date | |
---|---|---|---|
|
87a0612114 | ||
|
c332e7d391 |
|
@ -24,3 +24,11 @@ HTML_TEMPLATE = main.html
|
|||
JPG_OPT = -quality 80 -strip -interlace Plane
|
||||
!blur_mini = |> ^ %f -> blur mini^ convert %f -resize 400x400 -blur 0x8 $(JPG_OPT) %o |> blur_mini.jpg
|
||||
!thumbnail = |> ^ %f -> thumbnail^ convert %f -resize 200x200 $(JPG_OPT) %o |>
|
||||
|
||||
#
|
||||
# Slides
|
||||
#
|
||||
MARP = npx @marp-team/marp-cli@latest
|
||||
MARP_OPTS = --allow-local-files --bespoke.progress
|
||||
!marp_pdf = |> $(MARP) $(MARP_OPTS) %f --pdf --output %o |> %B.pdf
|
||||
!marp_html = |> $(MARP) $(MARP_OPTS) %f --html --output %o |> %B.html
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
include_rules
|
||||
HTML_TEMPLATE = article.html
|
||||
|
||||
: *.md |> ./generate_listing.sh > %o |> index.md
|
||||
: *.md |> ./generate_listing.nu > %o |> index.md
|
||||
: foreach *.md |> !html |>
|
||||
|
|
40
articles/generate_listing.nu
Executable file
40
articles/generate_listing.nu
Executable file
|
@ -0,0 +1,40 @@
|
|||
#!/usr/bin/env nu
|
||||
#
|
||||
def title [path: string] -> string {
|
||||
open $path | lines | filter {|l| (str starts-with "title:")} | first | split row --regex 'title\s*:\s*' | get 1 | str trim --char "\""
|
||||
}
|
||||
|
||||
def creation_date [path: string] -> string {
|
||||
open $path | lines | filter {|l| (str starts-with "date:")} | first | split row --regex '\s*:\s*' | get 1
|
||||
}
|
||||
|
||||
def update_date [path: string] -> string? {
|
||||
let updates = open $path | lines | filter {|l| (str starts-with "update:")}
|
||||
if ($updates | length) > 0 {
|
||||
return ($updates | first | split row --regex '\s*:\s*' | get 1)
|
||||
} else {
|
||||
return null
|
||||
}
|
||||
}
|
||||
|
||||
let pages = (glob *.md) ++ (glob **/index.md)
|
||||
let sorted_pages = $pages | wrap 'path'
|
||||
| upsert title {|row| (title $row.path)}
|
||||
| upsert creation {|row| (creation_date $row.path)}
|
||||
| upsert update {|row| (update_date $row.path)}
|
||||
| sort-by --reverse creation
|
||||
|
||||
print "---
|
||||
title: Articles
|
||||
---
|
||||
"
|
||||
|
||||
$sorted_pages | each {|p|
|
||||
let rel_path = $p.path | path relative-to (pwd)
|
||||
print --no-newline $"- ($p.creation): [($p.title)]\(($rel_path)\)"
|
||||
if $p.update? != null {
|
||||
print $" \(Updated: ($p.update)\)"
|
||||
} else {
|
||||
print ""
|
||||
}
|
||||
}
|
6
articles/jujutsu/Tupfile
Normal file
6
articles/jujutsu/Tupfile
Normal file
|
@ -0,0 +1,6 @@
|
|||
include_rules
|
||||
HTML_TEMPLATE = article.html
|
||||
|
||||
: slides.md |> !marp_pdf |> jujutsu_slides.pdf ./<deps>
|
||||
: index.md | ./<deps> |> !html |>
|
||||
|
16
articles/jujutsu/index.md
Normal file
16
articles/jujutsu/index.md
Normal file
|
@ -0,0 +1,16 @@
|
|||
---
|
||||
title: "Lightning talk: Jujutsu"
|
||||
date: 2024-11-26
|
||||
---
|
||||
|
||||
_This article is also available as a lightning talk: [pdf](./jujutsu_slides.pdf)_
|
||||
|
||||
## What is it?
|
||||
|
||||
## How does it compare?
|
||||
|
||||
## VCS landscape
|
||||
> I was part of the team at Meta that built Sapling for many years. I’m no
|
||||
> longer at Meta and I use jj full time.
|
||||
>
|
||||
> _[Discussion on Lobste.rs](https://lobste.rs/s/rojoz1/jujutsu_jj_git_compatible_vcs#c_foqya4)_
|
23
articles/jujutsu/slides.md
Normal file
23
articles/jujutsu/slides.md
Normal file
|
@ -0,0 +1,23 @@
|
|||
---
|
||||
marp: true
|
||||
theme: gaia
|
||||
footer: '**Fabien Freling** - 2024-11-26'
|
||||
paginate: true
|
||||
---
|
||||
|
||||
<style>
|
||||
section::after {
|
||||
content: attr(data-marpit-pagination) '/' attr(data-marpit-pagination-total);
|
||||
}
|
||||
</style>
|
||||
|
||||
|
||||
<!--
|
||||
_class: lead
|
||||
-->
|
||||
|
||||
# Jujutsu
|
||||
|
||||
Life after Git
|
||||
|
||||
---
|
|
@ -1,6 +1,7 @@
|
|||
---
|
||||
title: Web stack
|
||||
date: 2019-06-26
|
||||
update: 2024-11-26
|
||||
---
|
||||
|
||||
Previous stacks
|
||||
|
|
Loading…
Reference in a new issue