nixpkgs/pkgs/tools/misc/pandoc-acro/default.nix

65 lines
1.6 KiB
Nix

{ buildPythonApplication
, fetchPypi
, pandocfilters
, panflute
, lib
, pandoc
, pandoc-acro
, texliveTeTeX
, runCommand
}:
let
pname = "pandoc-acro";
version = "0.10.1";
src = fetchPypi {
inherit pname version;
hash = "sha256-JMfSQXX+BCGdFQYPFB+r08WRnhT3aXfnBNINROxCUA0=";
};
in
buildPythonApplication {
inherit pname version src;
propagatedBuildInputs = [
pandocfilters
panflute
];
# Something in the tests does not typecheck, but the tool works well.
doCheck = false;
passthru.tests.example-doc =
let
env = {
nativeBuildInputs = [
pandoc
pandoc-acro
(texliveTeTeX.withPackages (ps: with ps; [ acro translations ]))
];
};
in
runCommand "pandoc-acro-example-docs" env ''
set -euo pipefail
exampleFile="${pname}-${version}/tests/example.md"
metadataFile="${pname}-${version}/tests/metadata.yaml"
tar --extract "--file=${src}" "$exampleFile" "$metadataFile"
mkdir $out
pandoc -F pandoc-acro "$exampleFile" "--metadata-file=$metadataFile" \
-T pdf -o $out/example.pdf
pandoc -F pandoc-acro "$exampleFile" "--metadata-file=$metadataFile" \
-T txt -o $out/example.txt
! grep -q "\+afaik" $out/example.txt
'';
meta = with lib; {
homepage = "https://pypi.org/project/pandoc-acro/";
description = "Pandoc filter which manages acronyms in Pandoc flavored Markdown sources";
license = licenses.bsd2;
maintainers = with maintainers; [ tfc ];
mainProgram = "pandoc-acro";
};
}