Merge pull request #259047 from linsui/source-han

sourceHanPackages: add variable fonts
This commit is contained in:
taku0 2023-10-07 11:17:52 +09:00 committed by GitHub
commit d7998a6d3f
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 67 additions and 7 deletions

View File

@ -5,7 +5,7 @@
}: }:
let let
makePackage = makeSuperOTC =
{ family { family
, description , description
, rev , rev
@ -13,7 +13,8 @@ let
, zip ? "" , zip ? ""
, prefix ? "" , prefix ? ""
}: }:
let Family = let
Family =
lib.toUpper (lib.substring 0 1 family) + lib.toUpper (lib.substring 0 1 family) +
lib.substring 1 (lib.stringLength family) family; lib.substring 1 (lib.stringLength family) family;
in in
@ -49,9 +50,36 @@ let
maintainers = with lib.maintainers; [ taku0 emily ]; 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 in
{ {
sans = makePackage { sans = makeSuperOTC {
family = "sans"; family = "sans";
description = "sans-serif"; description = "sans-serif";
rev = "2.004R"; rev = "2.004R";
@ -59,7 +87,7 @@ in
zip = ".zip"; zip = ".zip";
}; };
serif = makePackage { serif = makeSuperOTC {
family = "serif"; family = "serif";
description = "serif"; description = "serif";
rev = "2.001R"; rev = "2.001R";
@ -68,10 +96,38 @@ in
prefix = "01_"; prefix = "01_";
}; };
mono = makePackage { mono = makeSuperOTC {
family = "mono"; family = "mono";
description = "monospaced"; description = "monospaced";
rev = "1.002"; rev = "1.002";
hash = "sha256-DBkkSN6QhI8R64M2h2iDqaNtxluJZeSJYAz8x6ZzWME="; 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";
};
} }

View File

@ -30219,6 +30219,10 @@ with pkgs;
source-han-sans = sourceHanPackages.sans; source-han-sans = sourceHanPackages.sans;
source-han-serif = sourceHanPackages.serif; source-han-serif = sourceHanPackages.serif;
source-han-mono = sourceHanPackages.mono; 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 { }; spleen = callPackage ../data/fonts/spleen { };