[Quicklisp](https://www.quicklisp.org/beta/UNOFFICIAL/docs/s-xml/doc/index.html), I guess.
```
(ql:quickload :cl-json)
(defun json-file-to-alist (path &optional (skip-lines 0))
(with-open-file
(in path)
(loop :repeat skip-lines :do (read-line in)) ; can remove a preamble
(json:decode-json in)))
```
Ooookay it turns out that json is like this: `{ "foo": "bar"}` and not like this `{ foo:'bar' }`, the latter being a briefly worked on __json5__.
This clearly works (now):
```
(defparameter *articles*
(json-file-to-alist #p"screwlisps-kitten/db/Articles.fragment.js" 1))
```
> by the way, emacs slime users. `M-x slime-set-default-directory` to change directory
and
```
((:LINK . "/momentary/a-python-tutorial-lisped/")
(:NAME . "Minor python and ansi cl slicing comparison with a lisp read macro")
(:DATE . "20260116T041740716896Z")
(:FEDI . "https://gamerplus.org/@screwlisp/115903097432314186"))
```
which I propose we can turn into
```
<rss version="2.0">
<channel>
<title>Screwlisp proposes kittens</title>
<link>https://screwlisp.small-web.org/</link>
<item>
<title>Minor python and ansi cl slicing comparison with a lisp read macro</title>
<link>/momentary/a-python-tutorial-lisped/</link>
<pubDate>16 Jan 2026 04:17:40 GMT</pubDate>
</item>
</channel>
</rss>
```