From 6c2cbb02ac4b16ee7b4c37de50403ce604868ec0 Mon Sep 17 00:00:00 2001 From: EuAndreh Date: Sat, 8 Apr 2023 16:20:00 -0300 Subject: v2: i18n of the collection name, "article" collection in root --- v2/src/content/en/about.md | 7 - v2/src/content/en/about.page | 7 + .../en/pastebin/raku-tuple-type-annotation.md | 33 ++++ v2/src/content/en/pastebin/sicp-exercise-3-19.md | 109 ++++++++++++ .../en/pastebins/raku-tuple-type-annotation.md | 33 ---- v2/src/content/en/pastebins/sicp-exercise-3-19.md | 109 ------------ v2/src/content/en/remembering-ann.md | 186 +++++++++++++++++++++ .../content/en/til/lisp-three-way-conditional.md | 59 +++++++ .../content/en/tils/lisp-three-way-conditional.md | 59 ------- v2/src/content/pt/hea/condicional-ternario-lisp.md | 65 +++++++ v2/src/content/pt/pastebin/exercicios-sicp-e-19.md | 105 ++++++++++++ .../content/pt/pastebins/exercicios-sicp-e-19.md | 105 ------------ v2/src/content/pt/sobre.md | 7 - v2/src/content/pt/sobre.page | 7 + 14 files changed, 571 insertions(+), 320 deletions(-) delete mode 100644 v2/src/content/en/about.md create mode 100644 v2/src/content/en/about.page create mode 100644 v2/src/content/en/pastebin/raku-tuple-type-annotation.md create mode 100644 v2/src/content/en/pastebin/sicp-exercise-3-19.md delete mode 100644 v2/src/content/en/pastebins/raku-tuple-type-annotation.md delete mode 100644 v2/src/content/en/pastebins/sicp-exercise-3-19.md create mode 100644 v2/src/content/en/remembering-ann.md create mode 100644 v2/src/content/en/til/lisp-three-way-conditional.md delete mode 100644 v2/src/content/en/tils/lisp-three-way-conditional.md create mode 100644 v2/src/content/pt/hea/condicional-ternario-lisp.md create mode 100644 v2/src/content/pt/pastebin/exercicios-sicp-e-19.md delete mode 100644 v2/src/content/pt/pastebins/exercicios-sicp-e-19.md delete mode 100644 v2/src/content/pt/sobre.md create mode 100644 v2/src/content/pt/sobre.page (limited to 'v2/src/content') diff --git a/v2/src/content/en/about.md b/v2/src/content/en/about.md deleted file mode 100644 index aac3e67..0000000 --- a/v2/src/content/en/about.md +++ /dev/null @@ -1,7 +0,0 @@ ---- - -title: About - ---- - -It's all about me, baby! diff --git a/v2/src/content/en/about.page b/v2/src/content/en/about.page new file mode 100644 index 0000000..aac3e67 --- /dev/null +++ b/v2/src/content/en/about.page @@ -0,0 +1,7 @@ +--- + +title: About + +--- + +It's all about me, baby! diff --git a/v2/src/content/en/pastebin/raku-tuple-type-annotation.md b/v2/src/content/en/pastebin/raku-tuple-type-annotation.md new file mode 100644 index 0000000..6c13b39 --- /dev/null +++ b/v2/src/content/en/pastebin/raku-tuple-type-annotation.md @@ -0,0 +1,33 @@ +--- + +title: Raku tuple type annotation + +date: 2019-12-29 + +categories: raku programming-languages + +--- + +```perl +# Single Str return value: this works +sub f1(Str $in --> Str) { + $in; +} + +# Tuple of Str as return value: this works +sub f2(Str $in) { + ($in, $in); +} + +# Tuple of Str as return value with type annotation: this doesn't works +sub f2(Str $in --> (Str, Str)) { + ($in, $in); +} +``` + +Error log is: + +```perl +===SORRY!=== Error while compiling /path/to/my/file +Malformed return value +``` diff --git a/v2/src/content/en/pastebin/sicp-exercise-3-19.md b/v2/src/content/en/pastebin/sicp-exercise-3-19.md new file mode 100644 index 0000000..32f7aa9 --- /dev/null +++ b/v2/src/content/en/pastebin/sicp-exercise-3-19.md @@ -0,0 +1,109 @@ +--- + +title: SICP exercise 3.19 + +date: 2021-09-02 + +categories: lisp programming-languages + +--- + +Some content here, before: + +```scheme +(define (cycle? l) + (define (rec l x) + (cond + ((null? x) false) + ((eq? l x) true) + (true (rec l (cdr x))))) + (rec l (cdr l))) +``` + +Sample interactive session: + +```scheme +scheme@(guile-user)> (define true #t) +scheme@(guile-user)> (define false #f) +scheme@(guile-user)> +(define (cycle? l) + (define (rec l x) + (cond + ((null? x) false) + ((eq? l x) true) + (true (rec l (cdr x))))) + (rec l (cdr l))) +scheme@(guile-user)> (cycle? '(1 2 3)) +$9 = #f +scheme@(guile-user)> (cycle? (make-cycle '(1 2 3))) +$10 = #t +``` + +# An h1 + +a list: + +1. one +2. two +3. three + +some content. + +- item +- another +- yet another + +## An h2 + +Xablau: + +``` +xupliu 1 + +3 +4 + + + + + +dez +``` + +Foi `wikiwiu`. + +a very long code block: + +``` +wef +wef wef wef wef +wef wef wef wef we fwef wef wef wef wef +``` + +Someone said: + +> Xablau, xupliu. + +### A repeated header +### A repeated header + +a big list: + +1. a +1. a +1. a +1. a +1. a +1. a +1. a +1. a +1. a +1. a +1. a +1. a +1. a +1. a +1. a +1. a +1. a +1. a diff --git a/v2/src/content/en/pastebins/raku-tuple-type-annotation.md b/v2/src/content/en/pastebins/raku-tuple-type-annotation.md deleted file mode 100644 index 6c13b39..0000000 --- a/v2/src/content/en/pastebins/raku-tuple-type-annotation.md +++ /dev/null @@ -1,33 +0,0 @@ ---- - -title: Raku tuple type annotation - -date: 2019-12-29 - -categories: raku programming-languages - ---- - -```perl -# Single Str return value: this works -sub f1(Str $in --> Str) { - $in; -} - -# Tuple of Str as return value: this works -sub f2(Str $in) { - ($in, $in); -} - -# Tuple of Str as return value with type annotation: this doesn't works -sub f2(Str $in --> (Str, Str)) { - ($in, $in); -} -``` - -Error log is: - -```perl -===SORRY!=== Error while compiling /path/to/my/file -Malformed return value -``` diff --git a/v2/src/content/en/pastebins/sicp-exercise-3-19.md b/v2/src/content/en/pastebins/sicp-exercise-3-19.md deleted file mode 100644 index 32f7aa9..0000000 --- a/v2/src/content/en/pastebins/sicp-exercise-3-19.md +++ /dev/null @@ -1,109 +0,0 @@ ---- - -title: SICP exercise 3.19 - -date: 2021-09-02 - -categories: lisp programming-languages - ---- - -Some content here, before: - -```scheme -(define (cycle? l) - (define (rec l x) - (cond - ((null? x) false) - ((eq? l x) true) - (true (rec l (cdr x))))) - (rec l (cdr l))) -``` - -Sample interactive session: - -```scheme -scheme@(guile-user)> (define true #t) -scheme@(guile-user)> (define false #f) -scheme@(guile-user)> -(define (cycle? l) - (define (rec l x) - (cond - ((null? x) false) - ((eq? l x) true) - (true (rec l (cdr x))))) - (rec l (cdr l))) -scheme@(guile-user)> (cycle? '(1 2 3)) -$9 = #f -scheme@(guile-user)> (cycle? (make-cycle '(1 2 3))) -$10 = #t -``` - -# An h1 - -a list: - -1. one -2. two -3. three - -some content. - -- item -- another -- yet another - -## An h2 - -Xablau: - -``` -xupliu 1 - -3 -4 - - - - - -dez -``` - -Foi `wikiwiu`. - -a very long code block: - -``` -wef -wef wef wef wef -wef wef wef wef we fwef wef wef wef wef -``` - -Someone said: - -> Xablau, xupliu. - -### A repeated header -### A repeated header - -a big list: - -1. a -1. a -1. a -1. a -1. a -1. a -1. a -1. a -1. a -1. a -1. a -1. a -1. a -1. a -1. a -1. a -1. a -1. a diff --git a/v2/src/content/en/remembering-ann.md b/v2/src/content/en/remembering-ann.md new file mode 100644 index 0000000..9013ad4 --- /dev/null +++ b/v2/src/content/en/remembering-ann.md @@ -0,0 +1,186 @@ +--- + +title: ANN: remembering - Add memory to dmenu, fzf and similar tools + +date: 2021-01-26 + +categories: ann + +--- + +Today I pushed v0.1.0 of [remembering][remembering], a tool to enhance the interactive usability of menu-like tools, such as [dmenu][dmenu] and [fzf][fzf]. + +## Previous solution + +I previously used [yeganesh][yeganesh] fill this gap, but as I started to rely less on Emacs, I added fzf as my go-to tool for doing fuzzy searching on the terminal. +But I didn't like that fzf always showed the same order of things, when I would only need 3 or 4 commonly used files. + +For those who don't know: yeganesh is a wrapper around dmenu that will remember your most used programs and put them on the beginning of the list of executables. +This is very convenient for interactive prolonged use, as with time the things you usually want are right at the very beginning. + +But now I had this thing, yeganesh, that solved this problem for dmenu, but didn't for fzf. + +I initially considered patching yeganesh to support it, but I found it more coupled to dmenu than I would desire. +I'd rather have something that knows nothing about dmenu, fzf or anything, but enhances tools like those in a useful way. + +[remembering]: https://euandreh.xyz/remembering/ +[dmenu]: https://tools.suckless.org/dmenu/ +[fzf]: https://github.com/junegunn/fzf +[yeganesh]: http://dmwit.com/yeganesh/ + +## Implementation + +Other than being decoupled from dmenu, another improvement I though that could be made on top of yeganesh is the programming language choice. +Instead of Haskell, I went with POSIX sh. +Sticking to POSIX sh makes it require less build-time dependencies. There aren't any, actually. Packaging is made much easier due to that. + +The good thing is that the program itself is small enough ([119 lines][119-lines] on v0.1.0) that POSIX sh does the job just fine, combined with other POSIX utilities such as [getopts][getopts], [sort][sort] and [awk][awk]. + +[119-lines]: https://euandre.org/git/remembering/tree/remembering?id=v0.1.0 +[getopts]: http://www.opengroup.org/onlinepubs/9699919799/utilities/getopts.html +[sort]: http://www.opengroup.org/onlinepubs/9699919799/utilities/sort.html +[awk]: http://www.opengroup.org/onlinepubs/9699919799/utilities/awk.html + +The behaviour is: given a program that will read from STDIN and write a single entry to STDOUT, `remembering` wraps that program, and rearranges STDIN so that previous choices appear at the beginning. + +Where you would do: + +```shell +$ seq 5 | fzf + + 5 + 4 + 3 + 2 +> 1 + 5/5 +> +``` + +And every time get the same order of numbers, now you can write: + +```shell +$ seq 5 | remembering -p seq-fzf -c fzf + + 5 + 4 + 3 + 2 +> 1 + 5/5 +> +``` + +On the first run, everything is the same. If you picked 4 on the previous example, the following run would be different: + +```shell +$ seq 5 | remembering -p seq-fzf -c fzf + + 5 + 3 + 2 + 1 +> 4 + 5/5 +> +``` + +As time passes, the list would adjust based on the frequency of your choices. + +I aimed for reusability, so that I could wrap diverse commands with `remembering` and it would be able to work. To accomplish that, a "profile" (the `-p something` part) stores data about different runs separately. + +I took the idea of building something small with few dependencies to other places too: +- the manpages are written in troff directly; +- the tests are just more POSIX sh files; +- and a POSIX Makefile to `check` and `install`. + +I was aware of the value of sticking to coding to standards, but I had past experience mostly with programming language standards, such as ECMAScript, Common Lisp, Scheme, or with IndexedDB or DOM APIs. +It felt good to rediscover these nice POSIX tools, which makes me remember of a quote by [Henry Spencer][poor-unix]: + +> Those who do not understand Unix are condemned to reinvent it, poorly. + +[poor-unix]: https://en.wikipedia.org/wiki/Henry_Spencer#cite_note-3 + +## Usage examples + +Here are some functions I wrote myself that you may find useful: + +### Run a command with fzf on `$PWD` + +```shellcheck +f() { + profile="$f-shell-function(pwd | sed -e 's_/_-_g')" + file="$(git ls-files | \ + remembering -p "$profile" \ + -c "fzf --select-1 --exit -0 --query \"$2\" --preview 'cat {}'")" + if [ -n "$file" ]; then + # shellcheck disable=2068 + history -s f $@ + history -s "$1" "$file" + "$1" "$file" +fi +} +``` + +This way I can run `f vi` or `f vi config` at the root of a repository, and the list of files will always appear on the most used order. +Adding `pwd` to the profile allows it to not mix data for different repositories. + +### Copy password to clipboard + +```shell +choice="$(find "$HOME/.password-store" -type f | \ + grep -Ev '(.git|.gpg-id)' | \ + sed -e "s|$HOME/.password-store/||" -e 's/\.gpg$//' | \ + remembering -p password-store \ + -c 'dmenu -l 20 -i')" + + +if [ -n "$choice" ]; then + pass show "$choice" -c +fi +``` + +Adding the above to a file and binding it to a keyboard shortcut, I can access the contents of my [password store][password-store], with the entries ordered by usage. + +[password-store]: https://www.passwordstore.org/ + +### Replacing yeganesh + +Where I previously had: + +```shell +exe=$(yeganesh -x) && exec $exe +``` + +Now I have: + +```shell +exe=$(dmenu_path | remembering -p dmenu-exec -c dmenu) && exec $exe +``` + +This way, the executables appear on order of usage. + +If you don't have `dmenu_path`, you can get just the underlying `stest` tool that looks at the executables available in your `$PATH`. Here's a juicy one-liner to do it: + +```shell +$ wget -O- https://dl.suckless.org/tools/dmenu-5.0.tar.gz | \ + tar Ozxf - dmenu-5.0/arg.h dmenu-5.0/stest.c | \ + sed 's|^#include "arg.h"$|// #include "arg.h"|' | \ + cc -xc - -o stest +``` + +With the `stest` utility you'll be able to list executables in your `$PATH` and pipe them to dmenu or something else yourself: +```shell +$ (IFS=:; ./stest -flx $PATH;) | sort -u | remembering -p another-dmenu-exec -c dmenu | sh +``` + +In fact, the code for `dmenu_path` is almost just like that. + +## Conclusion + +For my personal use, I've [packaged] `remembering` for GNU Guix and Nix. Packaging it to any other distribution should be trivial, or just downloading the tarball and running `[sudo] make install`. + +Patches welcome! + +[packaged]: https://euandre.org/git/package-repository/ +[nix-file]: https://euandre.org/git/dotfiles/tree/nixos/not-on-nixpkgs/remembering.nix?id=0831444f745cf908e940407c3e00a61f6152961f diff --git a/v2/src/content/en/til/lisp-three-way-conditional.md b/v2/src/content/en/til/lisp-three-way-conditional.md new file mode 100644 index 0000000..20fbd09 --- /dev/null +++ b/v2/src/content/en/til/lisp-three-way-conditional.md @@ -0,0 +1,59 @@ +--- + +title: Three-way conditional for number signs on Lisp + +date: 2021-04-24 3 + +update: 2021-08-14 + +categories: lisp scheme common-lisp + +--- + +A useful macro from Paul Graham's [On Lisp][on-lisp] book: + +```lisp +(defmacro nif (expr pos zero neg) + (let ((g (gensym))) + `(let ((,g ,expr)) + (cond ((plusp ,g) ,pos) + ((zerop ,g) ,zero) + (t ,neg))))) +``` + +After I looked at this macro, I started seeing opportunities to using it in many places, and yet I didn't see anyone else using it. + +The latest example I can think of is section 1.3.3 of [Structure and Interpretation of Computer Programs][sicp], which I was reading recently: + +```scheme +(define (search f neg-point pos-point) + (let ((midpoint (average neg-point pos-point))) + (if (close-enough? neg-point post-point) + midpoint + (let ((test-value (f midpoint))) + (cond ((positive? test-value) + (search f neg-point midpoint)) + ((negative? test-value) + (search f midpoint pos-point)) + (else midpoint)))))) +``` + +Not that the book should introduce such macro this early, but I couldn't avoid feeling bothered by not using the `nif` macro, which could even remove the need for the intermediate `test-value` variable: + +```scheme +(define (search f neg-point pos-point) + (let ((midpoint (average neg-point pos-point))) + (if (close-enough? neg-point post-point) + midpoint + (nif (f midpoint) + (search f neg-point midpoint) + (midpoint) + (search f midpoint pos-point))))) +``` + +It also avoids `cond`'s extra clunky parentheses for grouping, which is unnecessary but built-in. + +As a macro, I personally feel it tilts the balance towards expressivenes despite its extra cognitive load toll. + +[on-lisp]: http://www.paulgraham.com/onlisptext.html +[sicp]: https://mitpress.mit.edu/sites/default/files/sicp/index.html diff --git a/v2/src/content/en/tils/lisp-three-way-conditional.md b/v2/src/content/en/tils/lisp-three-way-conditional.md deleted file mode 100644 index 20fbd09..0000000 --- a/v2/src/content/en/tils/lisp-three-way-conditional.md +++ /dev/null @@ -1,59 +0,0 @@ ---- - -title: Three-way conditional for number signs on Lisp - -date: 2021-04-24 3 - -update: 2021-08-14 - -categories: lisp scheme common-lisp - ---- - -A useful macro from Paul Graham's [On Lisp][on-lisp] book: - -```lisp -(defmacro nif (expr pos zero neg) - (let ((g (gensym))) - `(let ((,g ,expr)) - (cond ((plusp ,g) ,pos) - ((zerop ,g) ,zero) - (t ,neg))))) -``` - -After I looked at this macro, I started seeing opportunities to using it in many places, and yet I didn't see anyone else using it. - -The latest example I can think of is section 1.3.3 of [Structure and Interpretation of Computer Programs][sicp], which I was reading recently: - -```scheme -(define (search f neg-point pos-point) - (let ((midpoint (average neg-point pos-point))) - (if (close-enough? neg-point post-point) - midpoint - (let ((test-value (f midpoint))) - (cond ((positive? test-value) - (search f neg-point midpoint)) - ((negative? test-value) - (search f midpoint pos-point)) - (else midpoint)))))) -``` - -Not that the book should introduce such macro this early, but I couldn't avoid feeling bothered by not using the `nif` macro, which could even remove the need for the intermediate `test-value` variable: - -```scheme -(define (search f neg-point pos-point) - (let ((midpoint (average neg-point pos-point))) - (if (close-enough? neg-point post-point) - midpoint - (nif (f midpoint) - (search f neg-point midpoint) - (midpoint) - (search f midpoint pos-point))))) -``` - -It also avoids `cond`'s extra clunky parentheses for grouping, which is unnecessary but built-in. - -As a macro, I personally feel it tilts the balance towards expressivenes despite its extra cognitive load toll. - -[on-lisp]: http://www.paulgraham.com/onlisptext.html -[sicp]: https://mitpress.mit.edu/sites/default/files/sicp/index.html diff --git a/v2/src/content/pt/hea/condicional-ternario-lisp.md b/v2/src/content/pt/hea/condicional-ternario-lisp.md new file mode 100644 index 0000000..6971827 --- /dev/null +++ b/v2/src/content/pt/hea/condicional-ternario-lisp.md @@ -0,0 +1,65 @@ +--- + +title: Three-way conditional for number signs on Lisp + +date: 2021-04-24 3 + +update: 2021-08-14 + +categories: lisp scheme common-lisp + +--- + +A useful macro from Paul Graham's [On Lisp][on-lisp] book: + +```lisp +(defmacro nif (expr pos zero neg) + (let ((g (gensym))) + `(let ((,g ,expr)) + (cond ((plusp ,g) ,pos) + ((zerop ,g) ,zero) + (t ,neg))))) +``` + +After I looked at this macro, I started seeing opportunities to using it in +many places, and yet I didn't see anyone else using it. + +The latest example I can think of is section 1.3.3 of [Structure and +Interpretation of Computer Programs][sicp], which I was reading recently: + +```scheme +(define (search f neg-point pos-point) + (let ((midpoint (average neg-point pos-point))) + (if (close-enough? neg-point post-point) + midpoint + (let ((test-value (f midpoint))) + (cond ((positive? test-value) + (search f neg-point midpoint)) + ((negative? test-value) + (search f midpoint pos-point)) + (else midpoint)))))) +``` + +Not that the book should introduce such macro this early, but I couldn't +avoid feeling bothered by not using the `nif` macro, which could even remove +the need for the intermediate `test-value` variable: + +```scheme +(define (search f neg-point pos-point) + (let ((midpoint (average neg-point pos-point))) + (if (close-enough? neg-point post-point) + midpoint + (nif (f midpoint) + (search f neg-point midpoint) + (midpoint) + (search f midpoint pos-point))))) +``` + +It also avoids `cond`'s extra clunky parentheses for grouping, which is +unnecessary but built-in. + +As a macro, I personally feel it tilts the balance towards expressivenes +despite its extra cognitive load toll. + +[on-lisp]: http://www.paulgraham.com/onlisptext.html [sicp]: +https://mitpress.mit.edu/sites/default/files/sicp/index.html diff --git a/v2/src/content/pt/pastebin/exercicios-sicp-e-19.md b/v2/src/content/pt/pastebin/exercicios-sicp-e-19.md new file mode 100644 index 0000000..89dacfd --- /dev/null +++ b/v2/src/content/pt/pastebin/exercicios-sicp-e-19.md @@ -0,0 +1,105 @@ +--- + +title: SICP exercise 3.19 + +date: 2021-09-02 + +categories: lisp programming-languages + +--- + +Some content here, before: + +```scheme +(define (cycle? l) + (define (rec l x) + (cond + ((null? x) false) + ((eq? l x) true) + (true (rec l (cdr x))))) + (rec l (cdr l))) +``` + +Sample interactive session: + +```scheme +scheme@(guile-user)> (define true #t) +scheme@(guile-user)> (define false #f) +scheme@(guile-user)> +(define (cycle? l) + (define (rec l x) + (cond + ((null? x) false) + ((eq? l x) true) + (true (rec l (cdr x))))) + (rec l (cdr l))) +scheme@(guile-user)> (cycle? '(1 2 3)) +$9 = #f +scheme@(guile-user)> (cycle? (make-cycle '(1 2 3))) +$10 = #t +``` + +# An h1 + +a list: + +1. one +2. two +3. three + +some content. + +- item +- another +- yet another + +## An h2 + +Xablau: + +``` xupliu 1 + +3 4 + + + + + +dez ``` + +Foi `wikiwiu`. + +a very long code block: + +``` +wef +wef wef wef wef +wef wef wef wef we fwef wef wef wef wef +``` + +Someone said: + +> Xablau, xupliu. + +### A repeated header ### A repeated header + +a big list: + +1. a +1. a +1. a +1. a +1. a +1. a +1. a +1. a +1. a +1. a +1. a +1. a +1. a +1. a +1. a +1. a +1. a +1. a diff --git a/v2/src/content/pt/pastebins/exercicios-sicp-e-19.md b/v2/src/content/pt/pastebins/exercicios-sicp-e-19.md deleted file mode 100644 index 89dacfd..0000000 --- a/v2/src/content/pt/pastebins/exercicios-sicp-e-19.md +++ /dev/null @@ -1,105 +0,0 @@ ---- - -title: SICP exercise 3.19 - -date: 2021-09-02 - -categories: lisp programming-languages - ---- - -Some content here, before: - -```scheme -(define (cycle? l) - (define (rec l x) - (cond - ((null? x) false) - ((eq? l x) true) - (true (rec l (cdr x))))) - (rec l (cdr l))) -``` - -Sample interactive session: - -```scheme -scheme@(guile-user)> (define true #t) -scheme@(guile-user)> (define false #f) -scheme@(guile-user)> -(define (cycle? l) - (define (rec l x) - (cond - ((null? x) false) - ((eq? l x) true) - (true (rec l (cdr x))))) - (rec l (cdr l))) -scheme@(guile-user)> (cycle? '(1 2 3)) -$9 = #f -scheme@(guile-user)> (cycle? (make-cycle '(1 2 3))) -$10 = #t -``` - -# An h1 - -a list: - -1. one -2. two -3. three - -some content. - -- item -- another -- yet another - -## An h2 - -Xablau: - -``` xupliu 1 - -3 4 - - - - - -dez ``` - -Foi `wikiwiu`. - -a very long code block: - -``` -wef -wef wef wef wef -wef wef wef wef we fwef wef wef wef wef -``` - -Someone said: - -> Xablau, xupliu. - -### A repeated header ### A repeated header - -a big list: - -1. a -1. a -1. a -1. a -1. a -1. a -1. a -1. a -1. a -1. a -1. a -1. a -1. a -1. a -1. a -1. a -1. a -1. a diff --git a/v2/src/content/pt/sobre.md b/v2/src/content/pt/sobre.md deleted file mode 100644 index aac3e67..0000000 --- a/v2/src/content/pt/sobre.md +++ /dev/null @@ -1,7 +0,0 @@ ---- - -title: About - ---- - -It's all about me, baby! diff --git a/v2/src/content/pt/sobre.page b/v2/src/content/pt/sobre.page new file mode 100644 index 0000000..aac3e67 --- /dev/null +++ b/v2/src/content/pt/sobre.page @@ -0,0 +1,7 @@ +--- + +title: About + +--- + +It's all about me, baby! -- cgit v1.2.3