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-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 { };
|
pandoc-plantuml-filter = python3Packages.callPackage ../tools/misc/pandoc-plantuml-filter { };
|
||||||
|
|
||||||
patray = callPackage ../tools/audio/patray { };
|
patray = callPackage ../tools/audio/patray { };
|
||||||
|
|
Loading…
Reference in a new issue