diff options
| -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 | ||||
| -rw-r--r-- | shell.nix | 20 | ||||
| -rw-r--r-- | utility/date-time.xsl | 4 | 
8 files changed, 160 insertions, 1 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 +  '' diff --git a/shell.nix b/shell.nix new file mode 100644 index 0000000..81fb80a --- /dev/null +++ b/shell.nix @@ -0,0 +1,20 @@ +with import <nixpkgs> {}; + +stdenv.mkDerivation rec { +  name = "env"; +  env = buildEnv { name = name; paths = buildInputs; }; + +  buildInputs = let +    InputXSLT = pkgs.callPackage ./pkgs/InputXSLT.nix {}; +    KaTeX     = pkgs.callPackage ./pkgs/KaTeX.nix {}; +    generate  = pkgs.callPackage ./pkgs/generate.nix {}; +    preview   = pkgs.callPackage ./pkgs/preview.nix {}; +  in [ +    generate +    preview +    InputXSLT +    pandoc +    KaTeX +    highlight +  ]; +} diff --git a/utility/date-time.xsl b/utility/date-time.xsl index 1815e06..ed51869 100644 --- a/utility/date-time.xsl +++ b/utility/date-time.xsl @@ -3,6 +3,8 @@  <!-- +Source: https://www.getsymphony.com/download/xslt-utilities/view/20506/ +  Description:  This is a date formatting utility. The named template "format-date" takes 2 parameters: @@ -238,4 +240,4 @@ d/n/y t => 21/09/81 6:30pm  	</xsl:choose>  </xsl:template> -</xsl:stylesheet>
\ No newline at end of file +</xsl:stylesheet> | 
