82e07fc046
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>
47 lines
748 B
Nix
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!)";
|
|
};
|
|
}
|