### Intro I think the main benefit to recutils is having a human readable, plain-text database that you can edit. Querying and inserting is okay. I don't have a use case for using Joins on records, but the fact that you can means that recutils is pretty robust I think that recutils could be a really good format for easily tracking data in version control. It is a good "source" database that can then be exported to csv and SQL. `csvkit`, e.g., can output straight to sqlite ### Sorting Fri, 11 Feb 2022 14:26:47 -0700 Okay check this out. You can sort your fields at query time by passing the `--sort Key` option to recsel. And you can set a `%sort Key` default in the recfile itself. *But sorting can only ever be ascending*. Says so right in the docs. > The sorting is always done in ascending order... > > I want a blog-style list of records with the most recently updated at the top, so I need my records in descending order. I settled on this craptastic workaround of querying my records sorted by `Updated`, convert to CSV, convert to JSON, `jq 'reverse'`, convert back to CSV, and convert back to recfiles. (I only bother going all the way back to recfiles because I already wrote the recfile template I want to use to generate markdown.) Here are the relevant snippets from my justfile: ``` # featuring descending sort! markdown: recsel -S Updated {{database}} | rec2csv | csvjson | jq 'reverse | map(.Notes |= gsub("\n"; "\n\n"))' | in2csv -f json | csv2rec | recfmt -f templates/markdown.template # html out html: just markdown | pandoc -t html --toc -s --metadata title="Games!" -B templates/before.html -A templates/after.html -o dist/games.html ``` This seems like a huge oversight of `recsel`. I can't imagine I'm the only person who wants control over the order of their sort! ### Templates > You can use any selection expression in the slots, including conditionals and string concatenation. > > - ...no you can't