Unverified Commit d7998a6d authored by taku0's avatar taku0 Committed by GitHub
Browse files

Merge pull request #259047 from linsui/source-han

sourceHanPackages: add variable fonts
parents fbce04c0 185cef4c
Loading
Loading
Loading
Loading
+63 −7
Original line number Diff line number Diff line
@@ -5,7 +5,7 @@
}:

let
  makePackage =
  makeSuperOTC =
    { family
    , description
    , rev
@@ -13,7 +13,8 @@ let
    , zip ? ""
    , prefix ? ""
    }:
    let Family =
    let
      Family =
        lib.toUpper (lib.substring 0 1 family) +
        lib.substring 1 (lib.stringLength family) family;
    in
@@ -49,9 +50,36 @@ let
        maintainers = with lib.maintainers; [ taku0 emily ];
      };
    };

  makeVariable =
    { family
    , version
    , hash
    , format
    }:
    let
      Family =
        lib.toUpper (lib.substring 0 1 family) +
        lib.substring 1 (lib.stringLength family) family;
    in
    fetchurl {
      pname = "source-han-${family}-vf-${format}";
      inherit version hash;
      url = "https://raw.githubusercontent.com/adobe-fonts/source-han-${family}/${version}R/Variable/OTC/SourceHan${Family}-VF.${format}.ttc";
      recursiveHash = true;
      downloadToTemp = true;
      postFetch = "install -Dm444 $downloadedFile $out/share/fonts/variable/SourceHan${Family}-VF.${format}.ttc";

      meta = {
        description = "An open source Pan-CJK ${Family} typeface";
        homepage = "https://github.com/adobe-fonts/source-han-${family}";
        license = lib.licenses.ofl;
        maintainers = with lib.maintainers; [ taku0 emily ];
      };
    };
in
{
  sans = makePackage {
  sans = makeSuperOTC {
    family = "sans";
    description = "sans-serif";
    rev = "2.004R";
@@ -59,7 +87,7 @@ in
    zip = ".zip";
  };

  serif = makePackage {
  serif = makeSuperOTC {
    family = "serif";
    description = "serif";
    rev = "2.001R";
@@ -68,10 +96,38 @@ in
    prefix = "01_";
  };

  mono = makePackage {
  mono = makeSuperOTC {
    family = "mono";
    description = "monospaced";
    rev = "1.002";
    hash = "sha256-DBkkSN6QhI8R64M2h2iDqaNtxluJZeSJYAz8x6ZzWME=";
  };

  sans-vf-otf = makeVariable {
    family = "sans";
    version = "2.004";
    hash = "sha256-V7PE09c7h4RDS8Ij4PSI36Gy+LM+PVDi73Rcs+4DfHo=";
    format = "otf";
  };

  sans-vf-ttf = makeVariable {
    family = "sans";
    version = "2.004";
    hash = "sha256-mXTG/d30gUxzxkJpaH4vOawRXMSxxTXlHCvHEsfGqbc=";
    format = "ttf";
  };

  serif-vf-otf = makeVariable {
    family = "serif";
    version = "2.002";
    hash = "sha256-8sD4bU6w7HBm4vBuPAjcjpxN2rtEJugAw+X0bAOcmjA=";
    format = "otf";
  };

  serif-vf-ttf = makeVariable {
    family = "serif";
    version = "2.002";
    hash = "sha256-dmTZFRsD55WCOg2+sqd8bkmTSnSNn5xUYf0PgzIvzww=";
    format = "ttf";
  };
}
+4 −0
Original line number Diff line number Diff line
@@ -30219,6 +30219,10 @@ with pkgs;
  source-han-sans = sourceHanPackages.sans;
  source-han-serif = sourceHanPackages.serif;
  source-han-mono = sourceHanPackages.mono;
  source-han-sans-vf-otf = sourceHanPackages.sans-vf-otf;
  source-han-sans-vf-ttf = sourceHanPackages.sans-vf-ttf;
  source-han-serif-vf-otf = sourceHanPackages.serif-vf-otf;
  source-han-serif-vf-ttf = sourceHanPackages.serif-vf-ttf;
  spleen = callPackage ../data/fonts/spleen { };