tvl-depot/web/panettone/default.nix
sterni 82e07fc046 feat(panettone): render a subset of markdown in issue subjects
This is achieved by implementing a simple markdown renderer in CL which
has the following limitations:

* Only supports inline `code`, *emphasize 1*, _emphasize 2_ and
  ~~strikethrough~~.
* Does not support nested markup.

This allows for a relatively simple renderer which doesn't need to parse
markdown into a in-memory data structure first. The rendered result is
directly written to a stream to integrate well with cl-who which is also
reused for rendering tags and xml-escaping strings.

Fixes #90.

Change-Id: Ice88ed770b1fab6365f3b93e8663e25077befa0b
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2389
Tested-by: BuildkiteCI
Reviewed-by: glittershark <grfn@gws.fyi>
Reviewed-by: tazjin <mail@tazj.in>
2021-01-25 21:02:38 +00:00

47 lines
748 B
Nix

{ depot, ... }:
depot.nix.buildLisp.program {
name = "panettone";
deps = with depot.third_party.lisp; [
cl-json
cl-ppcre
cl-who
drakma
defclass-std
easy-routes
hunchentoot
lass
local-time
postmodern
trivial-ldap
depot.lisp.klatre
];
srcs = [
./panettone.asd
./src/packages.lisp
./src/util.lisp
./src/css.lisp
./src/inline-markdown.lisp
./src/authentication.lisp
./src/model.lisp
./src/irc.lisp
./src/panettone.lisp
];
tests = {
deps = with depot.third_party.lisp; [
fiveam
];
srcs = [
./test/package.lisp
./test/model_test.lisp
./test/inline-markdown_test.lisp
];
expression = "(fiveam:run!)";
};
}