Compare commits
11 Commits
c170159b2b
...
master
Author | SHA1 | Date | |
---|---|---|---|
a03f31e237
|
|||
65dce1b060
|
|||
5b2683b3a4
|
|||
43de32edd2
|
|||
263e1c5f20
|
|||
f1eba8b28a
|
|||
b9c070b6c8
|
|||
957c8e2ed1
|
|||
1eed4d7ca3
|
|||
ee6946373c
|
|||
30b1ce923f
|
1
.gitignore
vendored
1
.gitignore
vendored
@ -1,5 +1,4 @@
|
|||||||
output
|
output
|
||||||
__pycache__
|
__pycache__
|
||||||
*.pid
|
*.pid
|
||||||
plugins
|
|
||||||
cache
|
cache
|
||||||
|
8
.gitmodules
vendored
8
.gitmodules
vendored
@ -1,3 +1,9 @@
|
|||||||
[submodule "themes/clean-blog"]
|
[submodule "themes/clean-blog"]
|
||||||
path = themes/clean-blog
|
path = themes/clean-blog
|
||||||
url = ssh://gitea@git.epheme.re:2222/fmouhart/pelican-clean-blog.git
|
url = https://git.epheme.re/fmouhart/pelican-clean-blog.git
|
||||||
|
[submodule "plugins/autopages"]
|
||||||
|
path = plugins/autopages
|
||||||
|
url = https://git.epheme.re/fmouhart/pelican-autopages.git
|
||||||
|
[submodule "plugins/i18n_subsites"]
|
||||||
|
path = plugins/i18n_subsites
|
||||||
|
url = https://git.epheme.re/fmouhart/pelican-i18n_subsites.git
|
||||||
|
5
Makefile
5
Makefile
@ -12,7 +12,10 @@ publish:
|
|||||||
clean:
|
clean:
|
||||||
uv run invoke clean
|
uv run invoke clean
|
||||||
|
|
||||||
init:
|
%.mo: %.po
|
||||||
|
msgfmt "$^" -o "$@"
|
||||||
|
|
||||||
|
init: themes/clean-blog/translations/fr/LC_MESSAGES/messages.mo
|
||||||
uv sync
|
uv sync
|
||||||
|
|
||||||
.PHONY: clean build publish dev init
|
.PHONY: clean build publish dev init
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
Title: wget/curl
|
Title: wget/curl
|
||||||
Date: 2022-07-25 13:45 CEST
|
Date: 2022-07-25 13:45 CEST
|
||||||
Author: Fabrice
|
Author: Fabrice
|
||||||
Category: cheat sheets
|
Category: antisèches
|
||||||
Tags: wget, curl, cli
|
Tags: wget, curl, cli
|
||||||
Slug: wget-curl
|
Slug: wget-curl
|
||||||
Header_Cover: ../images/covers/speedboat.jpg
|
Header_Cover: ../images/covers/speedboat.jpg
|
||||||
|
File diff suppressed because one or more lines are too long
Before Width: | Height: | Size: 25 KiB |
Binary file not shown.
Before Width: | Height: | Size: 113 KiB |
@ -1,7 +1,7 @@
|
|||||||
---
|
---
|
||||||
Title: Setup Neovim with kickstart.nvim
|
Title: Setup Neovim with kickstart.nvim
|
||||||
Date: 2023-12-25 17:15
|
Date: 2023-12-25 17:15
|
||||||
Modified: 2024-02-06 10:30
|
Modified: 2025-02-12 13:00
|
||||||
Lang: en
|
Lang: en
|
||||||
Author: Fabrice
|
Author: Fabrice
|
||||||
Category: software
|
Category: software
|
||||||
@ -22,38 +22,38 @@ incrementally before it starts getting too big for me to find anything inside
|
|||||||
it and not using even half of the plugins I installed. That goes without saying,
|
it and not using even half of the plugins I installed. That goes without saying,
|
||||||
there were quite a bit on conflicting keymaps as well as I'm using
|
there were quite a bit on conflicting keymaps as well as I'm using
|
||||||
[bépo](http://bepo.fr/) as my keyboard layout with [partial remaps
|
[bépo](http://bepo.fr/) as my keyboard layout with [partial remaps
|
||||||
(fr)](https://cdn.bepo.fr/Vim-bepo-066.png).
|
(fr)](https://cdn.bepo.fr/images/Vim-bepo-066.png).
|
||||||
|
|
||||||
Obviously, it slowly became quite a mess. To address this issue, I
|
Obviously, it slowly became quite a mess. To address this issue, I decided to
|
||||||
decided to reorganise my `$HOME/.config/vim` directory using the [vim directory
|
reorganise my `$HOME/.config/vim` directory using the [vim directory
|
||||||
structure](www.panozzaj.com/blog/2011/09/09/vim-directory-structure/) and did
|
structure](https://www.panozzaj.com/blog/2011/09/09/vim-directory-structure/)
|
||||||
some cleanup at this point of time. I think it was also around this period that
|
and did some cleanup at this point of time. I think it was also around this
|
||||||
I discovered that Vim8 added a native package manager that I started to use.
|
period that I discovered that Vim8 added a native package manager that I started
|
||||||
Thus, at this point, I started organising my configuration with semantic files,
|
to use. Thus, at this point, I started organising my configuration with semantic
|
||||||
such as `$VIMHOME/plugin/spelling.vim` to manage my spelling configuration for
|
files, such as `$VIMHOME/plugin/spelling.vim` to manage my spelling
|
||||||
instance. This approach makes debugging easier, and also checking custom
|
configuration for instance. This approach makes debugging easier, and also
|
||||||
keyboard shortcuts easier, as I just have to check
|
checking custom keyboard shortcuts easier, as I just have to check
|
||||||
`$VIMHOME/plugin/omnicomplete.vim` for instance to know which shortcuts I set up
|
`$VIMHOME/plugin/omnicomplete.vim` for instance to know which shortcuts I set up
|
||||||
when I'm still getting the habits of using them.
|
when I'm still getting the habits of using them.
|
||||||
|
|
||||||
At some point of time, I moved to Neovim, and I simply moved my configuration
|
At some point of time, I moved to Neovim, and simply moved my configuration from
|
||||||
from Vim to Neovim and continue on adding more and more plugins on top of each
|
Vim to Neovim. All the while continuing adding more and more plugins on top of
|
||||||
other depending on my hype, especially because the world of Neovim plugins
|
each other depending on my hype, especially because the world of Neovim plugins
|
||||||
opened up to me. Needless to say that less than half of these plugins were put
|
opened up to me. Needless to say that less than half of these plugins were put
|
||||||
into good use. Which leads to my first configuration big cleanup.
|
into good use. Which leads to my first configuration big cleanup.
|
||||||
|
|
||||||
Six months ago, I wiped my frankenconfig, and started back from scratch in
|
Six months ago, I wiped my _frankenconfig_, and started back from scratch in
|
||||||
[lua](https://lua.org/about.html), with the same structural approach as
|
[lua](https://lua.org/about.html), with the same structural approach as
|
||||||
previously, but now wondering if the plugin would be useful or not. Since my
|
previously, but now wondering if the plugin would be useful or not. Since my
|
||||||
first time using Vim, there were some big changes in the vim ecosystem,
|
first time using Vim, there were some big changes in the vim ecosystem,
|
||||||
especially in language management with
|
especially in language management with
|
||||||
[tree-sitter](https://tree-sitter.github.io/tree-sitter/) and
|
[tree-sitter](https://tree-sitter.github.io/tree-sitter/) and
|
||||||
[lsp](https://en.wikipedia.org/wiki/Language_Server_Protocol). These two bring
|
[lsp](https://en.wikipedia.org/wiki/Language_Server_Protocol). These two bring
|
||||||
into the environment a unified way to manage languages without having to depend
|
into the environment a unified way to manage languages without depending on
|
||||||
on language-specific plugins, henceforth I didn't need specific plugins to have
|
language-specific plugins. Henceforth, I didn't need specific plugins to have
|
||||||
nice syntax coloration for obscure languages anymore, or get frustrated with
|
nice syntax coloration for obscure languages anymore, or get frustrated with
|
||||||
[omnicomplete](https://vim.fandom.com/wiki/Omni_completion) which decided not to
|
[omnicomplete](https://vim.fandom.com/wiki/Omni_completion) which decided not to
|
||||||
work for some languages… While it's not an absolute rule (for instance, I'm
|
work only for some languages… While it's not an absolute rule (for instance, I'm
|
||||||
using [vimtex]({filename}./nvim-latex.md) for latex, which includes a more
|
using [vimtex]({filename}./nvim-latex.md) for latex, which includes a more
|
||||||
accurate syntax coloring than tree-sitter). I also moved from the native vim way
|
accurate syntax coloring than tree-sitter). I also moved from the native vim way
|
||||||
of managing plugins to use [`Lazy`](https://github.com/folke/lazy.nvim) as a
|
of managing plugins to use [`Lazy`](https://github.com/folke/lazy.nvim) as a
|
||||||
@ -70,10 +70,10 @@ However, I was unhappy with some of my configurations, and if I managed to have
|
|||||||
something functional, there were many details that annoy me that stemmed for
|
something functional, there were many details that annoy me that stemmed for
|
||||||
some configuration I wrote some times ago and of course didn't document. This
|
some configuration I wrote some times ago and of course didn't document. This
|
||||||
leads us to today, where I just decided to use
|
leads us to today, where I just decided to use
|
||||||
[`kickstart.nvim`](https://github.com/nvim-lua/kickstart.nvim), which is a
|
[`kickstart.nvim`](https://github.com/nvim-lua/kickstart.nvim). It is a well
|
||||||
well-documented vim starting configuration (it's not a distribution, it still
|
documented vim starting configuration (it's not a distribution, it still
|
||||||
requires your input to obtain something that fits your needs), which was exactly
|
requires your inputs to obtain something that fits your needs), which was
|
||||||
what I needed to start anew… but not fully from scratch.
|
exactly what I needed to start anew… but not fully from scratch.
|
||||||
|
|
||||||
## The migration
|
## The migration
|
||||||
|
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
---
|
---
|
||||||
Title: Typesetting with Typst
|
Title: Typesetting with Typst
|
||||||
Date: 2024-10-19 18:00
|
Date: 2024-10-19 18:00
|
||||||
Modified: 2024-10-19 21:00
|
Modified: 2025-02-14 12:45
|
||||||
Lang: en
|
Lang: en
|
||||||
Author: Fabrice
|
Author: Fabrice
|
||||||
Category: software
|
Category: software
|
||||||
@ -126,7 +126,7 @@ at the outset of the file.
|
|||||||
```typst
|
```typst
|
||||||
#import "lettre.typ": *
|
#import "lettre.typ": *
|
||||||
|
|
||||||
#show: doc => lettre(
|
#show: doc => lettre.with(
|
||||||
de: [
|
de: [
|
||||||
Sender\
|
Sender\
|
||||||
Address
|
Address
|
||||||
@ -144,7 +144,6 @@ at the outset of the file.
|
|||||||
post: [
|
post: [
|
||||||
post-letter (e.g., post-scriptum)
|
post-letter (e.g., post-scriptum)
|
||||||
],
|
],
|
||||||
doc
|
|
||||||
)
|
)
|
||||||
```
|
```
|
||||||
|
|
||||||
|
@ -1,156 +0,0 @@
|
|||||||
---
|
|
||||||
Title: Tools for making and giving presentations
|
|
||||||
Date: 2024-11-03
|
|
||||||
Author: Fabrice
|
|
||||||
Category: Tips
|
|
||||||
Tags: presentation, vim, latex
|
|
||||||
Slug: presenting
|
|
||||||
Header_Cover: ../images/covers/pts24-talk.jpg
|
|
||||||
Summary: Some of the tools I use for making and giving presentations.
|
|
||||||
Lang: en
|
|
||||||
---
|
|
||||||
|
|
||||||
# Introduction
|
|
||||||
|
|
||||||
Over the past year, I have to give quite a few presentations in different
|
|
||||||
contexts: internal to the company, for open-source conferences, for business
|
|
||||||
conferences…
|
|
||||||
|
|
||||||
I use this opportunity to refine a bit my presentation tools, and I just
|
|
||||||
summarize them here for curious people.
|
|
||||||
|
|
||||||
This page may be updated, for instance if I start using [typst] for slide
|
|
||||||
making. If you have subscribed to this blog’s [RSS feed], you will be notified
|
|
||||||
of future updates.
|
|
||||||
|
|
||||||
# Making Slides
|
|
||||||
|
|
||||||
For slide making, I prefer using tools that separate the content from the actual
|
|
||||||
design. I’m thus not using fancy WYSIWYG tools for that. If you are not
|
|
||||||
interested in that, you can already skip to the [presenting slides] section.
|
|
||||||
|
|
||||||
## LaTeX Beamer
|
|
||||||
|
|
||||||
As explained in the [typst article], I’m mostly using [LaTeX] to produce/typeset
|
|
||||||
documents, and presentations are not an exception. For this purpose I’m using
|
|
||||||
[beamer].
|
|
||||||
|
|
||||||
For this purpose, my [vim setup for LaTeX] proved to be pretty useful,
|
|
||||||
especially with the “on save compilation”. However, the backward search is not
|
|
||||||
very accurate with beamer slides.
|
|
||||||
|
|
||||||
### Overlays and Graphics
|
|
||||||
|
|
||||||
The main advantage, besides my familiarity with [LaTeX], lays in the [overlay]
|
|
||||||
system in beamer, that is quite powerful and provides a very precise way to
|
|
||||||
display elements, especially with [TikZ] to design animated graphics.
|
|
||||||
|
|
||||||
For instance in the example below, I can show the top part of the graph
|
|
||||||
initially, then the bottom, and change the name of the last node for the second
|
|
||||||
slide. That can be easily adjusted to have more steps in the process.
|
|
||||||
|
|
||||||
```latex
|
|
||||||
…
|
|
||||||
\usetikzlibrary{positioning}
|
|
||||||
…
|
|
||||||
\begin{tikzpicture}
|
|
||||||
\tikzstyle{node} = [draw, rectangle, fill=blue!40, minimum height=2em]
|
|
||||||
\tikzstyle{arrow} = [->, >=stealth, very thick]
|
|
||||||
\node[node] (start) {Data};
|
|
||||||
\node[node, right=1cm of start] (a1) {Enc($\cdot$)};
|
|
||||||
\node<2->[node, below=5mm of a1] (a2) {Sig($\cdot$)};
|
|
||||||
\node<1>[node, right=1cm of a1] (stop) {Encrypted Data};
|
|
||||||
\node<2->[node, right=1cm of a1] (stop) {Encrypted and Signed Data};
|
|
||||||
|
|
||||||
\draw[arrow] (start) -- (a1);
|
|
||||||
\draw<2->[arrow] (start) -- (a2);
|
|
||||||
\draw[arrow] (a1) -- (stop);
|
|
||||||
\draw<2->[arrow] (a2) -- (stop);
|
|
||||||
\end{tikzpicture}
|
|
||||||
```
|
|
||||||
|
|
||||||
Resulting in:
|
|
||||||
|
|
||||||
{width=66%}
|
|
||||||
|
|
||||||
Moreover, you have access to the whole latex ecosystem, especially those for
|
|
||||||
neat illustrations such as [tikzpingus].
|
|
||||||
|
|
||||||
**Note:** I have to say that the above technique is unsafe under fairly
|
|
||||||
reasonnable assumptions. Long story short you should sign first *then* encrypt
|
|
||||||
and not do both in parallel. Please see [this paper](https://ia.cr/2001/045)
|
|
||||||
from Crypto’01 if you want a more detailed explanation.
|
|
||||||
|
|
||||||
### Customisation
|
|
||||||
|
|
||||||
It is also quite easy to customise slides with beamer. For instance, with
|
|
||||||
[metropolis], from its
|
|
||||||
[documentation](https://ctan.tetaneutral.net/macros/latex/contrib/beamer-contrib/themes/metropolis/doc/metropolistheme.pdf),
|
|
||||||
section 8 describe where to find specific colours. As for the fonts, if you are
|
|
||||||
using xelatex/lualatex, a simple `\setmainfont` suffices to redefine it.
|
|
||||||
|
|
||||||
For instance, if I want to have the alert text in orange:
|
|
||||||
|
|
||||||
```latex
|
|
||||||
\setbeamercolor[alerted text]{fg=orange}
|
|
||||||
```
|
|
||||||
|
|
||||||
### Drawbacks
|
|
||||||
|
|
||||||
However, LaTeX starts to slow down quickly, especially with a lot of [TikZ]
|
|
||||||
drawings… On documents, it’s not really an issue as it is possible to cache the
|
|
||||||
drawings with the `externalize` tikz library. However, when mixing overlays and
|
|
||||||
TikZ, it starts to [need some
|
|
||||||
tweaks](https://tex.stackexchange.com/questions/78955/use-tikz-external-feature-with-beamer-only).
|
|
||||||
I never included them in my workflow as they make TikZ drawings more complicated
|
|
||||||
than they are.
|
|
||||||
|
|
||||||
## Typst Touying
|
|
||||||
|
|
||||||
## Pandoc and reveal.js
|
|
||||||
|
|
||||||
[reveal.js] is a javascript framework to produce clean and dynamic slides. My
|
|
||||||
settings to generate them are liberally inspired by [Pablo
|
|
||||||
Coves](https://pcoves.gitlab.io/blog/pandoc-markdown-revealjs/).
|
|
||||||
|
|
||||||
[Pandoc] on the other hand is a document converter tool that supports a very
|
|
||||||
extensive spectrum of formats and syntax. My most use case is to convert
|
|
||||||
markdown to some other reflowable format (usually html, and sometimes epub).
|
|
||||||
|
|
||||||
Using both in conjunction allows for quick and dynamic presentations which don’t
|
|
||||||
require _accuracy_ in placements. That may be the case for lightning talks for
|
|
||||||
instance. The main advantage compared to the two above solutions is that
|
|
||||||
[reveal.js] takes advantage of web browser capabilities to produce dynamic
|
|
||||||
transitions. Those are otherwise hard to get from PDFs (some people made custom
|
|
||||||
pdf reader for that).
|
|
||||||
|
|
||||||
### Customisation
|
|
||||||
|
|
||||||
- List of default [reveal.js styles]
|
|
||||||
- Simple customisation with CSS:
|
|
||||||
<https://gist.github.com/jsoma/629b9564af5b1e7fa62d0a3a0a47c296#styling> see
|
|
||||||
<https://github.com/hakimel/reveal.js/blob/master/css/theme/template/exposer.scss>
|
|
||||||
as well for exposed variables.
|
|
||||||
- However, in standalone mode, changing the font does not work well…
|
|
||||||
- Create custom theme: <https://github.com/hakimel/reveal.js/blob/master/css/theme/README.md>
|
|
||||||
- <https://github.com/Chouhartem/reveal.js/tree/cryptpad-theme>
|
|
||||||
|
|
||||||
# Presenting Slides {#presenting-slides}
|
|
||||||
|
|
||||||
## wl-mirror
|
|
||||||
|
|
||||||
## pdfpc
|
|
||||||
|
|
||||||
[RSS feed]: /feeds/all.rss.xml
|
|
||||||
[typst]: https://typst.app/
|
|
||||||
[typst article]: {filename}../software/typst.md
|
|
||||||
[presenting slides]: #presenting-slides
|
|
||||||
[LaTeX]: https://www.latex-project.org/
|
|
||||||
[beamer]: https://ctan.org/pkg/beamer
|
|
||||||
[vim setup for LaTeX]: {filename}../software/nvim-latex.md
|
|
||||||
[overlay]: https://www.overleaf.com/learn/latex/Beamer_Presentations%3A_A_Tutorial_for_Beginners_(Part_4)%E2%80%94Overlay_Specifications
|
|
||||||
[TikZ]: https://www.ctan.org/pkg/pgf
|
|
||||||
[tikzpingus]: https://github.com/EagleoutIce/tikzpingus
|
|
||||||
[reveal.js]: https://revealjs.com/
|
|
||||||
[reveal.js styles]: https://revealjs.com/themes/
|
|
||||||
[pandoc]: https://pandoc.org/
|
|
1
plugins/autopages
Submodule
1
plugins/autopages
Submodule
Submodule plugins/autopages added at 7ebe350704
1
plugins/i18n_subsites
Submodule
1
plugins/i18n_subsites
Submodule
Submodule plugins/i18n_subsites added at 5903058c97
51
readme.md
51
readme.md
@ -1 +1,52 @@
|
|||||||
|
This repository contains the sources necessary to build the blog at:
|
||||||
<https://blog.epheme.re>
|
<https://blog.epheme.re>
|
||||||
|
|
||||||
|
# Dependencies
|
||||||
|
|
||||||
|
To use this repository as intended, you need, to build the blog, the following
|
||||||
|
software:
|
||||||
|
|
||||||
|
- `git`
|
||||||
|
- `make`
|
||||||
|
- `uv`
|
||||||
|
- `gettext`
|
||||||
|
|
||||||
|
To synchronise the blog remotely with its intended target, the synchronisation
|
||||||
|
is done using `rsync` over `ssh`.
|
||||||
|
|
||||||
|
# Install
|
||||||
|
|
||||||
|
To install a local copy to work on this blog, you also need other components,
|
||||||
|
such as the [theme](https://git.epheme.re/fmouhart/pelican-clean-blog) and
|
||||||
|
[some](https://git.epheme.re/fmouhart/pelican-autopages)
|
||||||
|
[plugins](https://git.epheme.re/fmouhart/pelican-clean-blog). Those are embedded
|
||||||
|
in the repository as a git submodule. You can thus simply run git clone with the
|
||||||
|
`--recurse-submodule` option:
|
||||||
|
|
||||||
|
```sh
|
||||||
|
git clone --recurse-submodule https://git.epheme.re/fmouhart/blog.git fmouhart-blog
|
||||||
|
```
|
||||||
|
|
||||||
|
This blog relies on [pelican](https://getpelican.com) as a static site
|
||||||
|
generator. To manage the different python dependencies of this project, we are
|
||||||
|
using [`uv`](https://github.com/astral-sh/uv) as a python project manager.
|
||||||
|
|
||||||
|
Moreover, translations are managed with python `gettext` which requires
|
||||||
|
compiling the translation file.
|
||||||
|
|
||||||
|
Those two steps are performed with the following command:
|
||||||
|
|
||||||
|
```sh
|
||||||
|
make init
|
||||||
|
```
|
||||||
|
|
||||||
|
# Development
|
||||||
|
|
||||||
|
When writing an article, you can run the blog with `livereload` enabled with the
|
||||||
|
command:
|
||||||
|
|
||||||
|
```sh
|
||||||
|
make dev
|
||||||
|
```
|
||||||
|
|
||||||
|
It’ll span a local development server on port `8000`: <http://localhost:8000>
|
||||||
|
Reference in New Issue
Block a user