plugin support

This commit is contained in:
41666 2025-04-22 11:18:59 -07:00
parent 317dd961a2
commit 4ee5913bd0
7 changed files with 58 additions and 12 deletions

14
examples/plugins/plural.sh Executable file
View file

@ -0,0 +1,14 @@
#!/bin/sh
alterName=$1
cat << EOF
<div class="alter alter-${alterName}">
<span class="alter-name">
${alterName}@41666$>&nbsp;
</span>
<span class="message">
$(<"/dev/stdin")
</span>
</div>
EOF

View file

@ -1,4 +1,4 @@
{ pkgs, brewTea, ... }: brewTea { { pkgs, brewTea, mkMarkdollPlugin }: brewTea {
name = "examples_quickstart"; name = "examples_quickstart";
version = "0.0.0"; version = "0.0.0";
@ -7,4 +7,11 @@
# maybe don't do this but its possible to reference _any file_. # maybe don't do this but its possible to reference _any file_.
defaultLayout = ./layouts/default.html; defaultLayout = ./layouts/default.html;
# these are mostly for alias purposes...
# can do an [invoke(plural)(...):yay!] type thing
# one can invoke stuff inline too without doing this.
markdollPlugins = [
(mkMarkdollPlugin "plural" ../plugins/plural.sh)
];
} }

View file

@ -0,0 +1,7 @@
---
title: plugin tests
---
&plural plugin
[invoke(plural)(aki):hi this one is aki]
[invoke(plural)(noe):hi this one is noe]

View file

@ -0,0 +1,13 @@
#!/bin/sh
flip() {
LC_ALL=C LC_ALL=en_US.UTF-8 rev <"/dev/stdin"
}
main() {
case $1 in
flip) flip;;
esac
}
main $1

8
flake.lock generated
View file

@ -59,11 +59,11 @@
"rust-overlay": "rust-overlay" "rust-overlay": "rust-overlay"
}, },
"locked": { "locked": {
"lastModified": 1745093370, "lastModified": 1745344651,
"narHash": "sha256-M4Nal2SQ9hW08VVjgV80V5KqC3W/8flsc9hUluIYdYM=", "narHash": "sha256-5hCu3usWVtVPh5WrN7uCu1Kr3rU26/jxD68l9ZhmEfs=",
"ref": "refs/heads/main", "ref": "refs/heads/main",
"rev": "fb42921ee9a4592b5f055a4e8c4fe244275e4fef", "rev": "bd5f16268020b438e9022ddfe555431d3efe891b",
"revCount": 79, "revCount": 81,
"type": "git", "type": "git",
"url": "https://codeberg.org/0x57e11a/markdoll.git" "url": "https://codeberg.org/0x57e11a/markdoll.git"
}, },

View file

@ -4,7 +4,9 @@
version, version,
# TODO: do not require flakes # TODO: do not require flakes
markdollParser ? inputs.markdoll.packages.${pkgs.system}.markdoll, markdollParser ? inputs.markdoll.packages.${pkgs.system}.markdoll.override({
danger = true;
}),
markdollPlugins ? [], markdollPlugins ? [],
src, src,
@ -17,6 +19,7 @@ in pkgs.stdenvNoCC.mkDerivation {
inherit name version src; inherit name version src;
buildPhase = '' buildPhase = ''
export PATH="$PATH:${pkgs.lib.makeBinPath markdollPlugins}"
mkdir dist mkdir dist
echoerr() { cat <<< "$@" 1>&2; } echoerr() { cat <<< "$@" 1>&2; }

View file

@ -1,7 +1,9 @@
{ pkgs }: binPath: pkgs.stdenvNoCC.mkDerivation { { pkgs }: name: src: pkgs.stdenvNoCC.mkDerivation {
src = binPath; inherit name src;
buildPhase = '' version = "0.0.0";
mkdir -p $out dontUnpack = true;
cp $src $out/plugin installPhase = "
''; mkdir -p $out/bin
cp $src $out/bin/${name}
";
} }