2
.gitignore
vendored
2
.gitignore
vendored
@@ -1,2 +1,2 @@
|
|||||||
result
|
|
||||||
.direnv
|
.direnv
|
||||||
|
result
|
||||||
|
|||||||
31
flake.nix
31
flake.nix
@@ -60,7 +60,7 @@
|
|||||||
set = "aile";
|
set = "aile";
|
||||||
privateBuildPlan = {
|
privateBuildPlan = {
|
||||||
family = "Iosevka Aile Iaso";
|
family = "Iosevka Aile Iaso";
|
||||||
spacing = "quasi-proportional-extension-only";
|
spacing = "quasi-proportional";
|
||||||
no-ligation = true;
|
no-ligation = true;
|
||||||
no-cv-ss = true;
|
no-cv-ss = true;
|
||||||
variants = {
|
variants = {
|
||||||
@@ -86,14 +86,9 @@
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
weights.regular = {
|
weights.regular = {
|
||||||
shape = 400;
|
shape = 300;
|
||||||
menu = 400;
|
menu = 300;
|
||||||
css = 400;
|
css = 300;
|
||||||
};
|
|
||||||
widths.normal = {
|
|
||||||
shape = 550;
|
|
||||||
menu = 7;
|
|
||||||
css = "expanded";
|
|
||||||
};
|
};
|
||||||
inherit metric-override;
|
inherit metric-override;
|
||||||
};
|
};
|
||||||
@@ -144,11 +139,6 @@
|
|||||||
menu = 400;
|
menu = 400;
|
||||||
css = 400;
|
css = 400;
|
||||||
};
|
};
|
||||||
widths.normal = {
|
|
||||||
shape = 600;
|
|
||||||
menu = 7;
|
|
||||||
css = "expanded";
|
|
||||||
};
|
|
||||||
inherit metric-override;
|
inherit metric-override;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
@@ -157,6 +147,8 @@
|
|||||||
for ttf in ${iosevka-curly}/share/fonts/truetype/*.ttf ${iosevka-aile}/share/fonts/truetype/*.ttf ${iosevka-etoile}/share/fonts/truetype/*.ttf; do
|
for ttf in ${iosevka-curly}/share/fonts/truetype/*.ttf ${iosevka-aile}/share/fonts/truetype/*.ttf ${iosevka-etoile}/share/fonts/truetype/*.ttf; do
|
||||||
cp $ttf .
|
cp $ttf .
|
||||||
|
|
||||||
|
echo "processing $ttf"
|
||||||
|
|
||||||
name=`basename -s .ttf $ttf`
|
name=`basename -s .ttf $ttf`
|
||||||
pyftsubset \
|
pyftsubset \
|
||||||
$ttf \
|
$ttf \
|
||||||
@@ -168,14 +160,23 @@
|
|||||||
--unicodes="U+0000-00A0,U+00A2-00A9,U+00AC-00AE,U+00B0-00B7,U+00B9-00BA,U+00BC-00BE,U+00D7,U+00F7,U+2000-206F,U+2074,U+20AC,U+2122,U+2190-21BB,U+2212,U+2215,U+F8FF,U+FEFF,U+FFFD"
|
--unicodes="U+0000-00A0,U+00A2-00A9,U+00AC-00AE,U+00B0-00B7,U+00B9-00BA,U+00BC-00BE,U+00D7,U+00F7,U+2000-206F,U+2074,U+20AC,U+2122,U+2190-21BB,U+2212,U+2215,U+F8FF,U+FEFF,U+FFFD"
|
||||||
mv *.ttf ttf
|
mv *.ttf ttf
|
||||||
done
|
done
|
||||||
|
|
||||||
|
${pkgs.zip}/bin/zip ttf.zip ttf/*.ttf
|
||||||
|
|
||||||
|
${pkgs.python3}/bin/python3 ${./src/specimen.py}
|
||||||
'';
|
'';
|
||||||
installPhase = ''
|
installPhase = ''
|
||||||
mkdir -p $out
|
mkdir -p $out
|
||||||
cp *.woff2 $out
|
cp *.woff2 $out
|
||||||
cp ttf/*.ttf $out
|
cp ttf.zip $out
|
||||||
|
|
||||||
cp ${src/family.css} $out/family.css
|
cp ${src/family.css} $out/family.css
|
||||||
|
cp *.html $out
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
|
devShells.default = pkgs.mkShell {
|
||||||
|
buildInputs = [pkgs.python3];
|
||||||
|
};
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,16 +1,15 @@
|
|||||||
@font-face {
|
|
||||||
font-family: "Iosevka Etoile Iaso";
|
|
||||||
font-weight: 100 900;
|
|
||||||
src: local("Iosevka Etoile Iaso")
|
|
||||||
, url("iosevka-etoile-regular.woff2") format("woff2")
|
|
||||||
, url("iosevka-etoile-italic.woff2") format("woff2");
|
|
||||||
}
|
|
||||||
|
|
||||||
@font-face {
|
@font-face {
|
||||||
font-family: "Iosevka Aile Iaso";
|
font-family: "Iosevka Aile Iaso";
|
||||||
font-weight: 100 900;
|
font-weight: 100 900;
|
||||||
|
font-style: normal;
|
||||||
|
src: local("Iosevka Aile Iaso")
|
||||||
|
, url("iosevka-aile-regular.woff2") format("woff2");
|
||||||
|
}
|
||||||
|
@font-face {
|
||||||
|
font-family: "Iosevka Aile Iaso";
|
||||||
|
font-weight: 100 900;
|
||||||
|
font-style: italic;
|
||||||
src: local("Iosevka Aile Iaso")
|
src: local("Iosevka Aile Iaso")
|
||||||
, url("iosevka-aile-regular.woff2") format("woff2")
|
|
||||||
, url("iosevka-aile-italic.woff2") format("woff2");
|
, url("iosevka-aile-italic.woff2") format("woff2");
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -20,3 +19,18 @@
|
|||||||
src: local("Iosevka Curly Iaso")
|
src: local("Iosevka Curly Iaso")
|
||||||
, url("iosevka-curly-regular.woff2") format("woff2");
|
, url("iosevka-curly-regular.woff2") format("woff2");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@font-face {
|
||||||
|
font-family: "Iosevka Etoile Iaso";
|
||||||
|
font-weight: 100 900;
|
||||||
|
font-style: normal;
|
||||||
|
src: local("Iosevka Etoile Iaso")
|
||||||
|
, url("iosevka-etoile-regular.woff2") format("woff2");
|
||||||
|
}
|
||||||
|
@font-face {
|
||||||
|
font-family: "Iosevka Etoile Iaso";
|
||||||
|
font-weight: 100 900;
|
||||||
|
font-style: italic;
|
||||||
|
src: local("Iosevka Etoile Iaso")
|
||||||
|
, url("iosevka-etoile-italic.woff2") format("woff2");
|
||||||
|
}
|
||||||
|
|||||||
100
src/specimen.py
Normal file
100
src/specimen.py
Normal file
@@ -0,0 +1,100 @@
|
|||||||
|
#!/usr/bin/env python
|
||||||
|
|
||||||
|
header = '''
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<title>Iosevka Iaso Specimen</title>
|
||||||
|
<link type="text/css" rel="stylesheet" href="https://within.website/static/gruvbox.css">
|
||||||
|
<link type="text/css" rel="stylesheet" href="./family.css">
|
||||||
|
<style>
|
||||||
|
.aile {
|
||||||
|
font-family: "Iosevka Aile Iaso";
|
||||||
|
font-weight: 400;
|
||||||
|
}
|
||||||
|
.curly {
|
||||||
|
font-family: "Iosevka Curly Iaso";
|
||||||
|
}
|
||||||
|
.etoile {
|
||||||
|
font-family: "Iosevka Etoile Iaso";
|
||||||
|
}
|
||||||
|
big {
|
||||||
|
font-size: xx-large;
|
||||||
|
}
|
||||||
|
|
||||||
|
main {
|
||||||
|
max-width: 60rem;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||||
|
</head>
|
||||||
|
<body class="snow" id="top">
|
||||||
|
<main>
|
||||||
|
<h1 class="etoile">Iosevka Iaso Specimen</h1>
|
||||||
|
<p class="aile">This page will demonstrate the Iosevka Iaso font family.</p>
|
||||||
|
|
||||||
|
<h2 class="etoile">Usage</h2>
|
||||||
|
<p class="aile">To use this font family, import this CSS:</p>
|
||||||
|
<code class="curly"><pre><link rel="stylesheet" href="https://cdn.xeiaso.net/static/css/iosevka/family.css" /></pre></code>
|
||||||
|
<p class="aile">Then use the fonts as normal.</p>
|
||||||
|
'''
|
||||||
|
|
||||||
|
footer = '''
|
||||||
|
<footer>
|
||||||
|
<p>Xe Iaso</p>
|
||||||
|
</footer>
|
||||||
|
</main>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
|
'''
|
||||||
|
|
||||||
|
blurbs = {
|
||||||
|
"Aile": "Designed for body text. A quasi-proportional font that evokes moods of the terminal days gone past.",
|
||||||
|
"Curly": "Designed for code. The hacker's canvas and ink.",
|
||||||
|
"Etoile": "Designed for titles. A serifed font that oozes modernity and classic sensibilities.",
|
||||||
|
}
|
||||||
|
|
||||||
|
with open("specimen.html", "w") as fout:
|
||||||
|
fout.write(header)
|
||||||
|
|
||||||
|
for family in ["Aile", "Curly", "Etoile"]:
|
||||||
|
fout.write(f'''
|
||||||
|
<h2 class="{family.lower()}">{family}</h2>
|
||||||
|
<p class="{family.lower()}">{blurbs[family]}</p>
|
||||||
|
<big class="{family.lower()}">Sphinx of black quartz, hear my vow!</big><br />
|
||||||
|
<big class="{family.lower()}">SPHINX OF BLACK QUARTZ, HEAR MY VOW!</big><br />
|
||||||
|
<big class="{family.lower()}">sphinx of black quartz, hear my vow!</big><br />
|
||||||
|
<table class="{family.lower()}"><tr>
|
||||||
|
''')
|
||||||
|
|
||||||
|
i = 0
|
||||||
|
for ch in range(0x20, 0xA0):
|
||||||
|
if i == 10:
|
||||||
|
fout.write("</tr><tr>")
|
||||||
|
i = 0
|
||||||
|
|
||||||
|
fout.write(f'''<td><big>&#x{ch:02x}</big><br />0x{ch:02x}</td>''')
|
||||||
|
i += 1
|
||||||
|
|
||||||
|
for ch in range(0xA2, 0xA9):
|
||||||
|
if i == 10:
|
||||||
|
fout.write("</tr><tr>")
|
||||||
|
i = 0
|
||||||
|
|
||||||
|
fout.write(f'''<td><big>&#x{ch:02x}</big><br />0x{ch:02x}</td>''')
|
||||||
|
i += 1
|
||||||
|
|
||||||
|
for ch in range(0xAC, 0xAE):
|
||||||
|
if i == 10:
|
||||||
|
fout.write("</tr><tr>")
|
||||||
|
i = 0
|
||||||
|
|
||||||
|
fout.write(f'''<td><big>&#x{ch:02x}</big><br />0x{ch:02x}</td>''')
|
||||||
|
i += 1
|
||||||
|
|
||||||
|
fout.write("</tr></table>")
|
||||||
|
|
||||||
|
fout.write(footer)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Reference in New Issue
Block a user