diff options
Diffstat (limited to 'pkgs')
-rw-r--r-- | pkgs/BuildXSLT.nix | 23 | ||||
-rw-r--r-- | pkgs/InputXSLT.nix | 20 | ||||
-rw-r--r-- | pkgs/KaTeX.nix | 49 | ||||
-rw-r--r-- | pkgs/StaticXSLT.nix | 23 | ||||
-rw-r--r-- | pkgs/generate.nix | 12 | ||||
-rw-r--r-- | pkgs/preview.nix | 10 |
6 files changed, 137 insertions, 0 deletions
diff --git a/pkgs/BuildXSLT.nix b/pkgs/BuildXSLT.nix new file mode 100644 index 0000000..4e5dcb6 --- /dev/null +++ b/pkgs/BuildXSLT.nix @@ -0,0 +1,23 @@ +{ stdenv, fetchFromGitHub }: + +stdenv.mkDerivation rec { + name = "BuildXSLT"; + + src = fetchFromGitHub { + owner = "KnairdA"; + repo = "BuildXSLT"; + rev = "master"; + sha256 = "09kxhvhzn0r62l39zgj1kc21rb565fnc1y3sg48p4gi4v15xjmc6"; + }; + + installPhase = '' + mkdir $out + cp -r * $out/ + ''; + + meta = with stdenv.lib; { + description = "BuildXSLT"; + homepage = https://github.com/KnairdA/BuildXSLT/; + license = stdenv.lib.licenses.mit; + }; +} diff --git a/pkgs/InputXSLT.nix b/pkgs/InputXSLT.nix new file mode 100644 index 0000000..a85bc37 --- /dev/null +++ b/pkgs/InputXSLT.nix @@ -0,0 +1,20 @@ +{ stdenv, fetchFromGitHub, cmake, boost, xalanc, xercesc, discount }: + +stdenv.mkDerivation rec { + name = "InputXSLT"; + + src = fetchFromGitHub { + owner = "KnairdA"; + repo = "InputXSLT"; + rev = "master"; + sha256 = "1j9fld3sh1jyscnsx6ab9jn5x6q67rjh9p3bgsh5na1qrs40dql0"; + }; + + buildInputs = [ cmake boost xalanc xercesc discount ]; + + meta = with stdenv.lib; { + description = "InputXSLT"; + homepage = https://github.com/KnairdA/InputXSLT/; + license = stdenv.lib.licenses.asl20; + }; +} diff --git a/pkgs/KaTeX.nix b/pkgs/KaTeX.nix new file mode 100644 index 0000000..37fe63a --- /dev/null +++ b/pkgs/KaTeX.nix @@ -0,0 +1,49 @@ +{ stdenv, pkgs, ... }: + +let + katex-src = stdenv.mkDerivation rec { + name = "katex-src"; + + src = pkgs.fetchzip { + url = "https://github.com/Khan/KaTeX/releases/download/v0.10.0-alpha/katex.zip"; + sha256 = "002dzyf3wcyjxv4m6vv0v99gf82a9k7rxsnlvf93h9fhcda2vj7l"; + }; + + buildInputs = [ pkgs.nodejs ]; + + installPhase = '' + mkdir -p $out/share/katex + cp katex.min.js $out/share/katex/ + ''; + + meta = { + description = "KaTeX"; + homepage = https://github.com/Khan/KaTeX; + license = stdenv.lib.licenses.mit; + platforms = stdenv.lib.platforms.all; + }; + }; +in pkgs.writeTextFile { + name = "katex-wrapper"; + executable = true; + destination = "/bin/katex"; + + text = '' + #!${pkgs.nodejs}/bin/node + + var katex = require("${katex-src}/share/katex/katex.min.js"); + var input = ""; + + var args = process.argv.slice(2); + + process.stdin.on("data", function(chunk) { + input += chunk.toString(); + }); + + process.stdin.on("end", function() { + var options = { displayMode: args.indexOf("--display-mode") !== -1 }; + var output = katex.renderToString(input, options); + console.log(output); + }); + ''; +} diff --git a/pkgs/StaticXSLT.nix b/pkgs/StaticXSLT.nix new file mode 100644 index 0000000..3caee06 --- /dev/null +++ b/pkgs/StaticXSLT.nix @@ -0,0 +1,23 @@ +{ stdenv, fetchFromGitHub }: + +stdenv.mkDerivation rec { + name = "StaticXSLT"; + + src = fetchFromGitHub { + owner = "KnairdA"; + repo = "StaticXSLT"; + rev = "master"; + sha256 = "17gd181cw9yyc4h1fn7fikcgm8g7fdwm7d7fxwib4aynm18kwqad"; + }; + + installPhase = '' + mkdir $out + cp -r * $out/ + ''; + + meta = with stdenv.lib; { + description = "StaticXSLT"; + homepage = https://github.com/KnairdA/StaticXSLT/; + license = stdenv.lib.licenses.mit; + }; +} diff --git a/pkgs/generate.nix b/pkgs/generate.nix new file mode 100644 index 0000000..25f1ca1 --- /dev/null +++ b/pkgs/generate.nix @@ -0,0 +1,12 @@ +{ pkgs, ... }: + +let + InputXSLT = pkgs.callPackage ./InputXSLT.nix {}; + StaticXSLT = pkgs.callPackage ./StaticXSLT.nix {}; + BuildXSLT = pkgs.callPackage ./BuildXSLT.nix {}; +in pkgs.writeScriptBin + "generate" + '' + #!/bin/sh + ${InputXSLT}/bin/ixslt --input make.xml --transformation ${BuildXSLT}/build.xsl --include ${StaticXSLT}/ + '' diff --git a/pkgs/preview.nix b/pkgs/preview.nix new file mode 100644 index 0000000..352de43 --- /dev/null +++ b/pkgs/preview.nix @@ -0,0 +1,10 @@ +{ pkgs, ... }: + +pkgs.writeScriptBin + "preview" + '' + #!/bin/sh + pushd target/99_result + ${pkgs.python3}/bin/python -m http.server 8080 + popd + '' |