Merge pull request #154785 from tfc/pandoc-drawio-filter
pandoc-drawio-filter: init at 1.0
This commit is contained in:
commit
5473929d36
2 changed files with 80 additions and 0 deletions
78
pkgs/tools/misc/pandoc-drawio-filter/default.nix
Normal file
78
pkgs/tools/misc/pandoc-drawio-filter/default.nix
Normal file
|
@ -0,0 +1,78 @@
|
|||
{ buildPythonApplication
|
||||
, drawio
|
||||
, fetchFromGitHub
|
||||
, lib
|
||||
, pandoc
|
||||
, pandocfilters
|
||||
, runCommand
|
||||
, runtimeShell
|
||||
, texlive
|
||||
, writeScriptBin
|
||||
, xvfb-run
|
||||
}:
|
||||
|
||||
let
|
||||
version = "1.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "tfc";
|
||||
repo = "pandoc-drawio-filter";
|
||||
rev = version;
|
||||
sha256 = "sha256-2XJSAfxqEmmamWIAM3vZqi0mZjUUugmR3zWw8Imjadk=";
|
||||
};
|
||||
|
||||
wrappedDrawio = writeScriptBin "drawio" ''
|
||||
#!${runtimeShell}
|
||||
|
||||
# Electron really wants a configuration directory to not die with:
|
||||
# "Error: Failed to get 'appData' path"
|
||||
# so we give it some temp dir as XDG_CONFIG_HOME
|
||||
tmpdir=$(mktemp -d)
|
||||
|
||||
function cleanup {
|
||||
rm -rf "$tmpdir"
|
||||
}
|
||||
trap cleanup EXIT
|
||||
|
||||
# Drawio needs to run in a virtual X session, because Electron
|
||||
# refuses to work and dies with an unhelpful error message otherwise:
|
||||
# "The futex facility returned an unexpected error code."
|
||||
XDG_CONFIG_HOME="$tmpdir" ${xvfb-run}/bin/xvfb-run ${drawio}/bin/drawio $@
|
||||
'';
|
||||
|
||||
pandoc-drawio-filter = buildPythonApplication {
|
||||
pname = "pandoc-drawio-filter";
|
||||
|
||||
inherit src version;
|
||||
|
||||
propagatedBuildInputs = [
|
||||
wrappedDrawio
|
||||
pandocfilters
|
||||
];
|
||||
|
||||
passthru.tests.example-doc =
|
||||
let
|
||||
env = {
|
||||
nativeBuildInputs = [
|
||||
pandoc
|
||||
pandoc-drawio-filter
|
||||
texlive.combined.scheme-tetex
|
||||
];
|
||||
};
|
||||
in
|
||||
runCommand "$pandoc-drawio-filter-example-doc.pdf" env ''
|
||||
cp -r ${src}/example/* .
|
||||
pandoc -F pandoc-drawio example.md -T pdf -o $out
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "https://github.com/tfc/pandoc-drawio-filter";
|
||||
description = "Pandoc filter which converts draw.io diagrams to PDF";
|
||||
license = licenses.mit;
|
||||
maintainers = with maintainers; [ tfc ];
|
||||
};
|
||||
};
|
||||
|
||||
in
|
||||
|
||||
pandoc-drawio-filter
|
|
@ -8102,6 +8102,8 @@ with pkgs;
|
|||
|
||||
pandoc-imagine = python3Packages.callPackage ../tools/misc/pandoc-imagine { };
|
||||
|
||||
pandoc-drawio-filter = python3Packages.callPackage ../tools/misc/pandoc-drawio-filter { };
|
||||
|
||||
pandoc-plantuml-filter = python3Packages.callPackage ../tools/misc/pandoc-plantuml-filter { };
|
||||
|
||||
patray = callPackage ../tools/audio/patray { };
|
||||
|
|
Loading…
Reference in a new issue