mirror of
https://github.com/rsms/inter.git
synced 2024-11-22 11:02:55 +03:00
web: Disable subset fonts as it turns out pyftsubset does not correctly handle substitution features causing subs like ccmp to break
This commit is contained in:
parent
bff8f875a2
commit
637d0eb186
34
Makefile
34
Makefile
@ -400,10 +400,39 @@ docs_info: docs/_data/fontinfo.json \
|
||||
docs/glyphs/metrics.json
|
||||
|
||||
docs_fonts: docs_fonts_text docs_fonts_display
|
||||
|
||||
|
||||
# TODO: re-enable this when we have figured out how to make subset VFs work
|
||||
# with substitution features like ccmp.
|
||||
# docs_fonts_pre:
|
||||
# rm -rf docs/font-files
|
||||
# mkdir docs/font-files $(FONTDIR)/subset
|
||||
# python misc/tools/subset.py
|
||||
# docs_fonts_text: docs_fonts_pre
|
||||
# cp -a $(FONTDIR)/const/*.woff \
|
||||
# $(FONTDIR)/const/*.woff2 \
|
||||
# $(FONTDIR)/const/*.otf \
|
||||
# $(FONTDIR)/var/Inter.var.* \
|
||||
# $(FONTDIR)/var/InterDisplay.var.* \
|
||||
# $(FONTDIR)/var/Inter*-roman.var.* \
|
||||
# $(FONTDIR)/var/Inter*-italic.var.* \
|
||||
# $(FONTDIR)/subset/Inter-*.woff2 \
|
||||
# $(FONTDIR)/subset/Inter.*.woff2 \
|
||||
# docs/font-files/
|
||||
# docs_fonts_display: docs_fonts_pre
|
||||
# cp -a $(FONTDIR)/const/*.woff \
|
||||
# $(FONTDIR)/const/*.woff2 \
|
||||
# $(FONTDIR)/const/*.otf \
|
||||
# $(FONTDIR)/var/Inter.var.* \
|
||||
# $(FONTDIR)/var/InterDisplay.var.* \
|
||||
# $(FONTDIR)/var/Inter*-roman.var.* \
|
||||
# $(FONTDIR)/var/Inter*-italic.var.* \
|
||||
# $(FONTDIR)/subset/InterDisplay*.woff2 \
|
||||
# docs/font-files/
|
||||
|
||||
docs_fonts_pre:
|
||||
rm -rf docs/font-files
|
||||
mkdir docs/font-files
|
||||
python misc/tools/subset.py
|
||||
|
||||
docs_fonts_text: docs_fonts_pre
|
||||
cp -a $(FONTDIR)/const/*.woff \
|
||||
@ -413,8 +442,6 @@ docs_fonts_text: docs_fonts_pre
|
||||
$(FONTDIR)/var/InterDisplay.var.* \
|
||||
$(FONTDIR)/var/Inter*-roman.var.* \
|
||||
$(FONTDIR)/var/Inter*-italic.var.* \
|
||||
$(FONTDIR)/subset/Inter-*.woff2 \
|
||||
$(FONTDIR)/subset/Inter.*.woff2 \
|
||||
docs/font-files/
|
||||
|
||||
docs_fonts_display: docs_fonts_pre
|
||||
@ -425,7 +452,6 @@ docs_fonts_display: docs_fonts_pre
|
||||
$(FONTDIR)/var/InterDisplay.var.* \
|
||||
$(FONTDIR)/var/Inter*-roman.var.* \
|
||||
$(FONTDIR)/var/Inter*-italic.var.* \
|
||||
$(FONTDIR)/subset/InterDisplay*.woff2 \
|
||||
docs/font-files/
|
||||
|
||||
.PHONY: docs docs_info docs_fonts docs_fonts_pre docs_fonts_text docs_fonts_display
|
||||
|
@ -76,14 +76,16 @@
|
||||
- "›→‹ ›←‹ ›⟶‹ ›⟵‹ ›−‹ ›-‹ ›–‹ ›—‹ ›:‹"
|
||||
|
||||
|
||||
- title: Ligatures
|
||||
tag: rlig
|
||||
- title: Compositions
|
||||
tag: ccmp
|
||||
description:
|
||||
Inter provides just a few ligatures for combining characters for which layout
|
||||
support in various apps is spotty.
|
||||
Inter provides several custom made glyphs for compositions like
|
||||
A + enclosed-combining-circle.
|
||||
samples:
|
||||
- "A›\u20DD‹"
|
||||
- "#›\u20DE‹"
|
||||
- "Figure A›\u20DD‹"
|
||||
- "Figure #›\u20DE‹"
|
||||
- "Figure ›\u20DD‹3"
|
||||
- "Figure ›\u20DE‹3"
|
||||
footer:
|
||||
This means that for instance enclosed glyphs
|
||||
works everywhere, not just in apps with correct combining character logic.
|
||||
|
@ -1,80 +0,0 @@
|
||||
/* extra */
|
||||
@font-face {
|
||||
font-family: 'Inter var';
|
||||
font-style: italic;
|
||||
font-weight: 100 900;
|
||||
font-display: swap;
|
||||
src: url('font-files/Inter-italic.extra.var.woff2?v={{font_v}}') format('woff2');
|
||||
unicode-range: U+E000,U+E002-E081,U+E093-E097,U+E0A5-E0E7,U+E0F3-E11D,U+E11E-E165,U+EE01-EE06,U+F6C3;
|
||||
font-named-instance: 'Italic';
|
||||
}
|
||||
/* alternates */
|
||||
@font-face {
|
||||
font-family: 'Inter var';
|
||||
font-style: italic;
|
||||
font-weight: 100 900;
|
||||
font-display: swap;
|
||||
src: url('font-files/Inter-italic.alternates.var.woff2?v={{font_v}}') format('woff2');
|
||||
unicode-range: U+E000,U+E002-E081,U+E093-E097,U+E0A5-E0E7,U+E0F3-E11D,U+E11E-E165,U+EE01-EE06,U+F6C3;
|
||||
font-named-instance: 'Italic';
|
||||
}
|
||||
/* symbols */
|
||||
@font-face {
|
||||
font-family: 'Inter var';
|
||||
font-style: italic;
|
||||
font-weight: 100 900;
|
||||
font-display: swap;
|
||||
src: url('font-files/Inter-italic.symbols.var.woff2?v={{font_v}}') format('woff2');
|
||||
unicode-range: U+20DD-20DF,U+2190-219A,U+21A9-21AB,U+21B0-21B2,U+21B3-21B6,U+21BA-21BC,U+21D0,U+21D2,U+21D4,U+21DE-21E0,U+21E4-21E6,U+21E7,U+21EA,U+2303,U+2305,U+2318,U+2325-2328,U+232B,U+2380,U+2387,U+238B,U+23CE-23D0,U+2460-2469,U+24B6-24D0,U+24EA,U+25A0-25A3,U+25B2-25B4,U+25B6-25B8,U+25BA-25BE,U+25C0-25C2,U+25C4-25C8,U+25CB,U+25CF,U+25EF,U+2600,U+2605-2607,U+263C,U+2661,U+2665,U+26A0,U+2713,U+2717,U+2756,U+2764,U+2780-2789,U+27F5-27FB,U+2B06,U+2B12-2B14,U+2B1C,U+E000,U+E12B-E164,U+1F130-1F14A,U+1F850,U+1F852;
|
||||
font-named-instance: 'Italic';
|
||||
}
|
||||
/* cyrillic */
|
||||
@font-face {
|
||||
font-family: 'Inter var';
|
||||
font-style: italic;
|
||||
font-weight: 100 900;
|
||||
font-display: swap;
|
||||
src: url('font-files/Inter-italic.cyrillic.var.woff2?v={{font_v}}') format('woff2');
|
||||
unicode-range: U+0400-049E,U+04A0-0500,U+052F,U+20B4,U+2116,U+2DFF,U+A69F;
|
||||
font-named-instance: 'Italic';
|
||||
}
|
||||
/* greek */
|
||||
@font-face {
|
||||
font-family: 'Inter var';
|
||||
font-style: italic;
|
||||
font-weight: 100 900;
|
||||
font-display: swap;
|
||||
src: url('font-files/Inter-italic.greek.var.woff2?v={{font_v}}') format('woff2');
|
||||
unicode-range: U+0370-0378,U+037A-0380,U+0384-038B,U+038C,U+038E-03A2,U+03A3-03E2,U+03F0-0400,U+1F00-1F16,U+1F18-1F1E,U+1F20-1F46,U+1F48-1F4E,U+1F50-1F58,U+1F59,U+1F5B,U+1F5D,U+1F5F-1F7E,U+1F80-1FB5,U+1FB6-1FC5,U+1FC6-1FD4,U+1FD6-1FDC,U+1FDD-1FF0,U+1FF2-1FF5,U+1FF6-1FFF;
|
||||
font-named-instance: 'Italic';
|
||||
}
|
||||
/* vietnamese */
|
||||
@font-face {
|
||||
font-family: 'Inter var';
|
||||
font-style: italic;
|
||||
font-weight: 100 900;
|
||||
font-display: swap;
|
||||
src: url('font-files/Inter-italic.vietnamese.var.woff2?v={{font_v}}') format('woff2');
|
||||
unicode-range: U+0102-0104,U+0110-0112,U+0128-012A,U+0168-016A,U+01A0-01A2,U+01AF-01B1,U+1EA0-1EFA,U+20AB;
|
||||
font-named-instance: 'Italic';
|
||||
}
|
||||
/* latin-ext */
|
||||
@font-face {
|
||||
font-family: 'Inter var';
|
||||
font-style: italic;
|
||||
font-weight: 100 900;
|
||||
font-display: swap;
|
||||
src: url('font-files/Inter-italic.latin-ext.var.woff2?v={{font_v}}') format('woff2');
|
||||
unicode-range: U+0100-0149,U+014A-01C4,U+01C5-0250,U+0259,U+1E00-1F00,U+2020,U+20A0-20AC,U+20AD-20C0,U+2113,U+2C7C,U+2C7F,U+A7FF;
|
||||
font-named-instance: 'Italic';
|
||||
}
|
||||
/* latin */
|
||||
@font-face {
|
||||
font-family: 'Inter var';
|
||||
font-style: italic;
|
||||
font-weight: 100 900;
|
||||
font-display: swap;
|
||||
src: url('font-files/Inter-italic.latin.var.woff2?v={{font_v}}') format('woff2');
|
||||
unicode-range: U+0000-007F,U+00A0-0100,U+0131,U+0152-0154,U+02BB-02BD,U+02C6,U+02DA,U+02DC,U+2000-200C,U+2010-2028,U+202F-2060,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+FEFF;
|
||||
font-named-instance: 'Italic';
|
||||
}
|
@ -1,80 +0,0 @@
|
||||
/* extra */
|
||||
@font-face {
|
||||
font-family: 'Inter var';
|
||||
font-style: normal;
|
||||
font-weight: 100 900;
|
||||
font-display: swap;
|
||||
src: url('font-files/Inter-roman.extra.var.woff2?v={{font_v}}') format('woff2');
|
||||
unicode-range: U+E000,U+E002-E081,U+E093-E097,U+E0A5-E0E7,U+E0F3-E11D,U+E11E-E165,U+EE01-EE06,U+F6C3;
|
||||
font-named-instance: 'Regular';
|
||||
}
|
||||
/* alternates */
|
||||
@font-face {
|
||||
font-family: 'Inter var';
|
||||
font-style: normal;
|
||||
font-weight: 100 900;
|
||||
font-display: swap;
|
||||
src: url('font-files/Inter-roman.alternates.var.woff2?v={{font_v}}') format('woff2');
|
||||
unicode-range: U+E000,U+E002-E081,U+E093-E097,U+E0A5-E0E7,U+E0F3-E11D,U+E11E-E165,U+EE01-EE06,U+F6C3;
|
||||
font-named-instance: 'Regular';
|
||||
}
|
||||
/* symbols */
|
||||
@font-face {
|
||||
font-family: 'Inter var';
|
||||
font-style: normal;
|
||||
font-weight: 100 900;
|
||||
font-display: swap;
|
||||
src: url('font-files/Inter-roman.symbols.var.woff2?v={{font_v}}') format('woff2');
|
||||
unicode-range: U+20DD-20DF,U+2190-219A,U+21A9-21AB,U+21B0-21B2,U+21B3-21B6,U+21BA-21BC,U+21D0,U+21D2,U+21D4,U+21DE-21E0,U+21E4-21E6,U+21E7,U+21EA,U+2303,U+2305,U+2318,U+2325-2328,U+232B,U+2380,U+2387,U+238B,U+23CE-23D0,U+2460-2469,U+24B6-24D0,U+24EA,U+25A0-25A3,U+25B2-25B4,U+25B6-25B8,U+25BA-25BE,U+25C0-25C2,U+25C4-25C8,U+25CB,U+25CF,U+25EF,U+2600,U+2605-2607,U+263C,U+2661,U+2665,U+26A0,U+2713,U+2717,U+2756,U+2764,U+2780-2789,U+27F5-27FB,U+2B06,U+2B12-2B14,U+2B1C,U+E000,U+E12B-E164,U+1F130-1F14A,U+1F850,U+1F852;
|
||||
font-named-instance: 'Regular';
|
||||
}
|
||||
/* cyrillic */
|
||||
@font-face {
|
||||
font-family: 'Inter var';
|
||||
font-style: normal;
|
||||
font-weight: 100 900;
|
||||
font-display: swap;
|
||||
src: url('font-files/Inter-roman.cyrillic.var.woff2?v={{font_v}}') format('woff2');
|
||||
unicode-range: U+0400-049E,U+04A0-0500,U+052F,U+20B4,U+2116,U+2DFF,U+A69F;
|
||||
font-named-instance: 'Regular';
|
||||
}
|
||||
/* greek */
|
||||
@font-face {
|
||||
font-family: 'Inter var';
|
||||
font-style: normal;
|
||||
font-weight: 100 900;
|
||||
font-display: swap;
|
||||
src: url('font-files/Inter-roman.greek.var.woff2?v={{font_v}}') format('woff2');
|
||||
unicode-range: U+0370-0378,U+037A-0380,U+0384-038B,U+038C,U+038E-03A2,U+03A3-03E2,U+03F0-0400,U+1F00-1F16,U+1F18-1F1E,U+1F20-1F46,U+1F48-1F4E,U+1F50-1F58,U+1F59,U+1F5B,U+1F5D,U+1F5F-1F7E,U+1F80-1FB5,U+1FB6-1FC5,U+1FC6-1FD4,U+1FD6-1FDC,U+1FDD-1FF0,U+1FF2-1FF5,U+1FF6-1FFF;
|
||||
font-named-instance: 'Regular';
|
||||
}
|
||||
/* vietnamese */
|
||||
@font-face {
|
||||
font-family: 'Inter var';
|
||||
font-style: normal;
|
||||
font-weight: 100 900;
|
||||
font-display: swap;
|
||||
src: url('font-files/Inter-roman.vietnamese.var.woff2?v={{font_v}}') format('woff2');
|
||||
unicode-range: U+0102-0104,U+0110-0112,U+0128-012A,U+0168-016A,U+01A0-01A2,U+01AF-01B1,U+1EA0-1EFA,U+20AB;
|
||||
font-named-instance: 'Regular';
|
||||
}
|
||||
/* latin-ext */
|
||||
@font-face {
|
||||
font-family: 'Inter var';
|
||||
font-style: normal;
|
||||
font-weight: 100 900;
|
||||
font-display: swap;
|
||||
src: url('font-files/Inter-roman.latin-ext.var.woff2?v={{font_v}}') format('woff2');
|
||||
unicode-range: U+0100-0149,U+014A-01C4,U+01C5-0250,U+0259,U+1E00-1F00,U+2020,U+20A0-20AC,U+20AD-20C0,U+2113,U+2C7C,U+2C7F,U+A7FF;
|
||||
font-named-instance: 'Regular';
|
||||
}
|
||||
/* latin */
|
||||
@font-face {
|
||||
font-family: 'Inter var';
|
||||
font-style: normal;
|
||||
font-weight: 100 900;
|
||||
font-display: swap;
|
||||
src: url('font-files/Inter-roman.latin.var.woff2?v={{font_v}}') format('woff2');
|
||||
unicode-range: U+0000-007F,U+00A0-0100,U+0131,U+0152-0154,U+02BB-02BD,U+02C6,U+02DA,U+02DC,U+2000-200C,U+2010-2028,U+202F-2060,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+FEFF;
|
||||
font-named-instance: 'Regular';
|
||||
}
|
@ -1,72 +0,0 @@
|
||||
/* extra */
|
||||
@font-face {
|
||||
font-family: 'Inter var experimental';
|
||||
font-style: oblique 0deg 10deg;
|
||||
font-weight: 100 900;
|
||||
font-display: swap;
|
||||
src: url('font-files/Inter.extra.var.woff2?v={{font_v}}') format('woff2');
|
||||
unicode-range: U+E000,U+E002-E081,U+E093-E097,U+E0A5-E0E7,U+E0F3-E11D,U+E11E-E165,U+EE01-EE06,U+F6C3;
|
||||
}
|
||||
/* alternates */
|
||||
@font-face {
|
||||
font-family: 'Inter var experimental';
|
||||
font-style: oblique 0deg 10deg;
|
||||
font-weight: 100 900;
|
||||
font-display: swap;
|
||||
src: url('font-files/Inter.alternates.var.woff2?v={{font_v}}') format('woff2');
|
||||
unicode-range: U+E000,U+E002-E081,U+E093-E097,U+E0A5-E0E7,U+E0F3-E11D,U+E11E-E165,U+EE01-EE06,U+F6C3;
|
||||
}
|
||||
/* symbols */
|
||||
@font-face {
|
||||
font-family: 'Inter var experimental';
|
||||
font-style: oblique 0deg 10deg;
|
||||
font-weight: 100 900;
|
||||
font-display: swap;
|
||||
src: url('font-files/Inter.symbols.var.woff2?v={{font_v}}') format('woff2');
|
||||
unicode-range: U+20DD-20DF,U+2190-219A,U+21A9-21AB,U+21B0-21B2,U+21B3-21B6,U+21BA-21BC,U+21D0,U+21D2,U+21D4,U+21DE-21E0,U+21E4-21E6,U+21E7,U+21EA,U+2303,U+2305,U+2318,U+2325-2328,U+232B,U+2380,U+2387,U+238B,U+23CE-23D0,U+2460-2469,U+24B6-24D0,U+24EA,U+25A0-25A3,U+25B2-25B4,U+25B6-25B8,U+25BA-25BE,U+25C0-25C2,U+25C4-25C8,U+25CB,U+25CF,U+25EF,U+2600,U+2605-2607,U+263C,U+2661,U+2665,U+26A0,U+2713,U+2717,U+2756,U+2764,U+2780-2789,U+27F5-27FB,U+2B06,U+2B12-2B14,U+2B1C,U+E000,U+E12B-E164,U+1F130-1F14A,U+1F850,U+1F852;
|
||||
}
|
||||
/* cyrillic */
|
||||
@font-face {
|
||||
font-family: 'Inter var experimental';
|
||||
font-style: oblique 0deg 10deg;
|
||||
font-weight: 100 900;
|
||||
font-display: swap;
|
||||
src: url('font-files/Inter.cyrillic.var.woff2?v={{font_v}}') format('woff2');
|
||||
unicode-range: U+0400-049E,U+04A0-0500,U+052F,U+20B4,U+2116,U+2DFF,U+A69F;
|
||||
}
|
||||
/* greek */
|
||||
@font-face {
|
||||
font-family: 'Inter var experimental';
|
||||
font-style: oblique 0deg 10deg;
|
||||
font-weight: 100 900;
|
||||
font-display: swap;
|
||||
src: url('font-files/Inter.greek.var.woff2?v={{font_v}}') format('woff2');
|
||||
unicode-range: U+0370-0378,U+037A-0380,U+0384-038B,U+038C,U+038E-03A2,U+03A3-03E2,U+03F0-0400,U+1F00-1F16,U+1F18-1F1E,U+1F20-1F46,U+1F48-1F4E,U+1F50-1F58,U+1F59,U+1F5B,U+1F5D,U+1F5F-1F7E,U+1F80-1FB5,U+1FB6-1FC5,U+1FC6-1FD4,U+1FD6-1FDC,U+1FDD-1FF0,U+1FF2-1FF5,U+1FF6-1FFF;
|
||||
}
|
||||
/* vietnamese */
|
||||
@font-face {
|
||||
font-family: 'Inter var experimental';
|
||||
font-style: oblique 0deg 10deg;
|
||||
font-weight: 100 900;
|
||||
font-display: swap;
|
||||
src: url('font-files/Inter.vietnamese.var.woff2?v={{font_v}}') format('woff2');
|
||||
unicode-range: U+0102-0104,U+0110-0112,U+0128-012A,U+0168-016A,U+01A0-01A2,U+01AF-01B1,U+1EA0-1EFA,U+20AB;
|
||||
}
|
||||
/* latin-ext */
|
||||
@font-face {
|
||||
font-family: 'Inter var experimental';
|
||||
font-style: oblique 0deg 10deg;
|
||||
font-weight: 100 900;
|
||||
font-display: swap;
|
||||
src: url('font-files/Inter.latin-ext.var.woff2?v={{font_v}}') format('woff2');
|
||||
unicode-range: U+0100-0149,U+014A-01C4,U+01C5-0250,U+0259,U+1E00-1F00,U+2020,U+20A0-20AC,U+20AD-20C0,U+2113,U+2C7C,U+2C7F,U+A7FF;
|
||||
}
|
||||
/* latin */
|
||||
@font-face {
|
||||
font-family: 'Inter var experimental';
|
||||
font-style: oblique 0deg 10deg;
|
||||
font-weight: 100 900;
|
||||
font-display: swap;
|
||||
src: url('font-files/Inter.latin.var.woff2?v={{font_v}}') format('woff2');
|
||||
unicode-range: U+0000-007F,U+00A0-0100,U+0131,U+0152-0154,U+02BB-02BD,U+02C6,U+02DA,U+02DC,U+2000-200C,U+2010-2028,U+202F-2060,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+FEFF;
|
||||
}
|
@ -1,80 +0,0 @@
|
||||
/* extra */
|
||||
@font-face {
|
||||
font-family: 'InterDisplay var';
|
||||
font-style: italic;
|
||||
font-weight: 100 900;
|
||||
font-display: swap;
|
||||
src: url('font-files/InterDisplay-italic.extra.var.woff2?v={{font_v}}') format('woff2');
|
||||
unicode-range: U+E000,U+E002-E0E7,U+E0F3-E15F,U+F6C3;
|
||||
font-named-instance: 'Italic';
|
||||
}
|
||||
/* alternates */
|
||||
@font-face {
|
||||
font-family: 'InterDisplay var';
|
||||
font-style: italic;
|
||||
font-weight: 100 900;
|
||||
font-display: swap;
|
||||
src: url('font-files/InterDisplay-italic.alternates.var.woff2?v={{font_v}}') format('woff2');
|
||||
unicode-range: U+E000,U+E002-E0E7,U+E0F3-E15F,U+F6C3;
|
||||
font-named-instance: 'Italic';
|
||||
}
|
||||
/* symbols */
|
||||
@font-face {
|
||||
font-family: 'InterDisplay var';
|
||||
font-style: italic;
|
||||
font-weight: 100 900;
|
||||
font-display: swap;
|
||||
src: url('font-files/InterDisplay-italic.symbols.var.woff2?v={{font_v}}') format('woff2');
|
||||
unicode-range: U+20DD-20DF,U+2190-219A,U+21A9-21AB,U+21B0-21B2,U+21B3-21B6,U+21BA-21BC,U+21D0,U+21D2,U+21D4,U+21DE-21E0,U+21E4-21E6,U+21E7,U+21EA,U+2303,U+2305,U+2318,U+2325-2328,U+232B,U+2387,U+238B,U+23CE-23D0,U+2460-2469,U+24B6-24D0,U+24EA,U+25A0-25A3,U+25B2-25B4,U+25B6-25B8,U+25BA-25BE,U+25C0-25C2,U+25C4-25C8,U+25CB,U+25CF,U+25EF,U+2600,U+2605-2607,U+263C,U+2661,U+2665,U+26A0,U+2713,U+2717,U+2756,U+2764,U+2780-2789,U+27F5-27FB,U+2B06,U+2B12-2B14,U+2B1C,U+E000,U+E12B-E15F,U+1F130-1F14A,U+1F850,U+1F852;
|
||||
font-named-instance: 'Italic';
|
||||
}
|
||||
/* cyrillic */
|
||||
@font-face {
|
||||
font-family: 'InterDisplay var';
|
||||
font-style: italic;
|
||||
font-weight: 100 900;
|
||||
font-display: swap;
|
||||
src: url('font-files/InterDisplay-italic.cyrillic.var.woff2?v={{font_v}}') format('woff2');
|
||||
unicode-range: U+0400-049E,U+04A0-0500,U+052F,U+20B4,U+2116,U+2DFF,U+A69F;
|
||||
font-named-instance: 'Italic';
|
||||
}
|
||||
/* greek */
|
||||
@font-face {
|
||||
font-family: 'InterDisplay var';
|
||||
font-style: italic;
|
||||
font-weight: 100 900;
|
||||
font-display: swap;
|
||||
src: url('font-files/InterDisplay-italic.greek.var.woff2?v={{font_v}}') format('woff2');
|
||||
unicode-range: U+0370-0378,U+037A-0380,U+0384-038B,U+038C,U+038E-03A2,U+03A3-03E2,U+03F0-0400,U+1F00-1F16,U+1F18-1F1E,U+1F20-1F46,U+1F48-1F4E,U+1F50-1F58,U+1F59,U+1F5B,U+1F5D,U+1F5F-1F7E,U+1F80-1FB5,U+1FB6-1FC5,U+1FC6-1FD4,U+1FD6-1FDC,U+1FDD-1FF0,U+1FF2-1FF5,U+1FF6-1FFF;
|
||||
font-named-instance: 'Italic';
|
||||
}
|
||||
/* vietnamese */
|
||||
@font-face {
|
||||
font-family: 'InterDisplay var';
|
||||
font-style: italic;
|
||||
font-weight: 100 900;
|
||||
font-display: swap;
|
||||
src: url('font-files/InterDisplay-italic.vietnamese.var.woff2?v={{font_v}}') format('woff2');
|
||||
unicode-range: U+0102-0104,U+0110-0112,U+0128-012A,U+0168-016A,U+01A0-01A2,U+01AF-01B1,U+1EA0-1EFA,U+20AB;
|
||||
font-named-instance: 'Italic';
|
||||
}
|
||||
/* latin-ext */
|
||||
@font-face {
|
||||
font-family: 'InterDisplay var';
|
||||
font-style: italic;
|
||||
font-weight: 100 900;
|
||||
font-display: swap;
|
||||
src: url('font-files/InterDisplay-italic.latin-ext.var.woff2?v={{font_v}}') format('woff2');
|
||||
unicode-range: U+0100-0149,U+014A-01C4,U+01C5-0250,U+0259,U+1E00-1F00,U+2020,U+20A0-20AC,U+20AD-20BF,U+2113,U+2C7C,U+2C7F,U+A7FF;
|
||||
font-named-instance: 'Italic';
|
||||
}
|
||||
/* latin */
|
||||
@font-face {
|
||||
font-family: 'InterDisplay var';
|
||||
font-style: italic;
|
||||
font-weight: 100 900;
|
||||
font-display: swap;
|
||||
src: url('font-files/InterDisplay-italic.latin.var.woff2?v={{font_v}}') format('woff2');
|
||||
unicode-range: U+0000-007F,U+00A0-0100,U+0131,U+0152-0154,U+02BB-02BD,U+02C6,U+02DA,U+02DC,U+2000-200C,U+2010-2028,U+202F-2060,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+FEFF;
|
||||
font-named-instance: 'Italic';
|
||||
}
|
@ -1,80 +0,0 @@
|
||||
/* extra */
|
||||
@font-face {
|
||||
font-family: 'InterDisplay var';
|
||||
font-style: normal;
|
||||
font-weight: 100 900;
|
||||
font-display: swap;
|
||||
src: url('font-files/InterDisplay-roman.extra.var.woff2?v={{font_v}}') format('woff2');
|
||||
unicode-range: U+E000,U+E002-E0E7,U+E0F3-E15F,U+F6C3;
|
||||
font-named-instance: 'Regular';
|
||||
}
|
||||
/* alternates */
|
||||
@font-face {
|
||||
font-family: 'InterDisplay var';
|
||||
font-style: normal;
|
||||
font-weight: 100 900;
|
||||
font-display: swap;
|
||||
src: url('font-files/InterDisplay-roman.alternates.var.woff2?v={{font_v}}') format('woff2');
|
||||
unicode-range: U+E000,U+E002-E0E7,U+E0F3-E15F,U+F6C3;
|
||||
font-named-instance: 'Regular';
|
||||
}
|
||||
/* symbols */
|
||||
@font-face {
|
||||
font-family: 'InterDisplay var';
|
||||
font-style: normal;
|
||||
font-weight: 100 900;
|
||||
font-display: swap;
|
||||
src: url('font-files/InterDisplay-roman.symbols.var.woff2?v={{font_v}}') format('woff2');
|
||||
unicode-range: U+20DD-20DF,U+2190-219A,U+21A9-21AB,U+21B0-21B2,U+21B3-21B6,U+21BA-21BC,U+21D0,U+21D2,U+21D4,U+21DE-21E0,U+21E4-21E6,U+21E7,U+21EA,U+2303,U+2305,U+2318,U+2325-2328,U+232B,U+2387,U+238B,U+23CE-23D0,U+2460-2469,U+24B6-24D0,U+24EA,U+25A0-25A3,U+25B2-25B4,U+25B6-25B8,U+25BA-25BE,U+25C0-25C2,U+25C4-25C8,U+25CB,U+25CF,U+25EF,U+2600,U+2605-2607,U+263C,U+2661,U+2665,U+26A0,U+2713,U+2717,U+2756,U+2764,U+2780-2789,U+27F5-27FB,U+2B06,U+2B12-2B14,U+2B1C,U+E000,U+E12B-E15F,U+1F130-1F14A,U+1F850,U+1F852;
|
||||
font-named-instance: 'Regular';
|
||||
}
|
||||
/* cyrillic */
|
||||
@font-face {
|
||||
font-family: 'InterDisplay var';
|
||||
font-style: normal;
|
||||
font-weight: 100 900;
|
||||
font-display: swap;
|
||||
src: url('font-files/InterDisplay-roman.cyrillic.var.woff2?v={{font_v}}') format('woff2');
|
||||
unicode-range: U+0400-049E,U+04A0-0500,U+052F,U+20B4,U+2116,U+2DFF,U+A69F;
|
||||
font-named-instance: 'Regular';
|
||||
}
|
||||
/* greek */
|
||||
@font-face {
|
||||
font-family: 'InterDisplay var';
|
||||
font-style: normal;
|
||||
font-weight: 100 900;
|
||||
font-display: swap;
|
||||
src: url('font-files/InterDisplay-roman.greek.var.woff2?v={{font_v}}') format('woff2');
|
||||
unicode-range: U+0370-0378,U+037A-0380,U+0384-038B,U+038C,U+038E-03A2,U+03A3-03E2,U+03F0-0400,U+1F00-1F16,U+1F18-1F1E,U+1F20-1F46,U+1F48-1F4E,U+1F50-1F58,U+1F59,U+1F5B,U+1F5D,U+1F5F-1F7E,U+1F80-1FB5,U+1FB6-1FC5,U+1FC6-1FD4,U+1FD6-1FDC,U+1FDD-1FF0,U+1FF2-1FF5,U+1FF6-1FFF;
|
||||
font-named-instance: 'Regular';
|
||||
}
|
||||
/* vietnamese */
|
||||
@font-face {
|
||||
font-family: 'InterDisplay var';
|
||||
font-style: normal;
|
||||
font-weight: 100 900;
|
||||
font-display: swap;
|
||||
src: url('font-files/InterDisplay-roman.vietnamese.var.woff2?v={{font_v}}') format('woff2');
|
||||
unicode-range: U+0102-0104,U+0110-0112,U+0128-012A,U+0168-016A,U+01A0-01A2,U+01AF-01B1,U+1EA0-1EFA,U+20AB;
|
||||
font-named-instance: 'Regular';
|
||||
}
|
||||
/* latin-ext */
|
||||
@font-face {
|
||||
font-family: 'InterDisplay var';
|
||||
font-style: normal;
|
||||
font-weight: 100 900;
|
||||
font-display: swap;
|
||||
src: url('font-files/InterDisplay-roman.latin-ext.var.woff2?v={{font_v}}') format('woff2');
|
||||
unicode-range: U+0100-0149,U+014A-01C4,U+01C5-0250,U+0259,U+1E00-1F00,U+2020,U+20A0-20AC,U+20AD-20BF,U+2113,U+2C7C,U+2C7F,U+A7FF;
|
||||
font-named-instance: 'Regular';
|
||||
}
|
||||
/* latin */
|
||||
@font-face {
|
||||
font-family: 'InterDisplay var';
|
||||
font-style: normal;
|
||||
font-weight: 100 900;
|
||||
font-display: swap;
|
||||
src: url('font-files/InterDisplay-roman.latin.var.woff2?v={{font_v}}') format('woff2');
|
||||
unicode-range: U+0000-007F,U+00A0-0100,U+0131,U+0152-0154,U+02BB-02BD,U+02C6,U+02DA,U+02DC,U+2000-200C,U+2010-2028,U+202F-2060,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+FEFF;
|
||||
font-named-instance: 'Regular';
|
||||
}
|
@ -1,72 +0,0 @@
|
||||
/* extra */
|
||||
@font-face {
|
||||
font-family: 'InterDisplay var experimental';
|
||||
font-style: oblique 0deg 10deg;
|
||||
font-weight: 100 900;
|
||||
font-display: swap;
|
||||
src: url('font-files/InterDisplay.extra.var.woff2?v={{font_v}}') format('woff2');
|
||||
unicode-range: U+E000,U+E002-E0E7,U+E0F3-E15F,U+F6C3;
|
||||
}
|
||||
/* alternates */
|
||||
@font-face {
|
||||
font-family: 'InterDisplay var experimental';
|
||||
font-style: oblique 0deg 10deg;
|
||||
font-weight: 100 900;
|
||||
font-display: swap;
|
||||
src: url('font-files/InterDisplay.alternates.var.woff2?v={{font_v}}') format('woff2');
|
||||
unicode-range: U+E000,U+E002-E0E7,U+E0F3-E15F,U+F6C3;
|
||||
}
|
||||
/* symbols */
|
||||
@font-face {
|
||||
font-family: 'InterDisplay var experimental';
|
||||
font-style: oblique 0deg 10deg;
|
||||
font-weight: 100 900;
|
||||
font-display: swap;
|
||||
src: url('font-files/InterDisplay.symbols.var.woff2?v={{font_v}}') format('woff2');
|
||||
unicode-range: U+20DD-20DF,U+2190-219A,U+21A9-21AB,U+21B0-21B2,U+21B3-21B6,U+21BA-21BC,U+21D0,U+21D2,U+21D4,U+21DE-21E0,U+21E4-21E6,U+21E7,U+21EA,U+2303,U+2305,U+2318,U+2325-2328,U+232B,U+2387,U+238B,U+23CE-23D0,U+2460-2469,U+24B6-24D0,U+24EA,U+25A0-25A3,U+25B2-25B4,U+25B6-25B8,U+25BA-25BE,U+25C0-25C2,U+25C4-25C8,U+25CB,U+25CF,U+25EF,U+2600,U+2605-2607,U+263C,U+2661,U+2665,U+26A0,U+2713,U+2717,U+2756,U+2764,U+2780-2789,U+27F5-27FB,U+2B06,U+2B12-2B14,U+2B1C,U+E000,U+E12B-E15F,U+1F130-1F14A,U+1F850,U+1F852;
|
||||
}
|
||||
/* cyrillic */
|
||||
@font-face {
|
||||
font-family: 'InterDisplay var experimental';
|
||||
font-style: oblique 0deg 10deg;
|
||||
font-weight: 100 900;
|
||||
font-display: swap;
|
||||
src: url('font-files/InterDisplay.cyrillic.var.woff2?v={{font_v}}') format('woff2');
|
||||
unicode-range: U+0400-049E,U+04A0-0500,U+052F,U+20B4,U+2116,U+2DFF,U+A69F;
|
||||
}
|
||||
/* greek */
|
||||
@font-face {
|
||||
font-family: 'InterDisplay var experimental';
|
||||
font-style: oblique 0deg 10deg;
|
||||
font-weight: 100 900;
|
||||
font-display: swap;
|
||||
src: url('font-files/InterDisplay.greek.var.woff2?v={{font_v}}') format('woff2');
|
||||
unicode-range: U+0370-0378,U+037A-0380,U+0384-038B,U+038C,U+038E-03A2,U+03A3-03E2,U+03F0-0400,U+1F00-1F16,U+1F18-1F1E,U+1F20-1F46,U+1F48-1F4E,U+1F50-1F58,U+1F59,U+1F5B,U+1F5D,U+1F5F-1F7E,U+1F80-1FB5,U+1FB6-1FC5,U+1FC6-1FD4,U+1FD6-1FDC,U+1FDD-1FF0,U+1FF2-1FF5,U+1FF6-1FFF;
|
||||
}
|
||||
/* vietnamese */
|
||||
@font-face {
|
||||
font-family: 'InterDisplay var experimental';
|
||||
font-style: oblique 0deg 10deg;
|
||||
font-weight: 100 900;
|
||||
font-display: swap;
|
||||
src: url('font-files/InterDisplay.vietnamese.var.woff2?v={{font_v}}') format('woff2');
|
||||
unicode-range: U+0102-0104,U+0110-0112,U+0128-012A,U+0168-016A,U+01A0-01A2,U+01AF-01B1,U+1EA0-1EFA,U+20AB;
|
||||
}
|
||||
/* latin-ext */
|
||||
@font-face {
|
||||
font-family: 'InterDisplay var experimental';
|
||||
font-style: oblique 0deg 10deg;
|
||||
font-weight: 100 900;
|
||||
font-display: swap;
|
||||
src: url('font-files/InterDisplay.latin-ext.var.woff2?v={{font_v}}') format('woff2');
|
||||
unicode-range: U+0100-0149,U+014A-01C4,U+01C5-0250,U+0259,U+1E00-1F00,U+2020,U+20A0-20AC,U+20AD-20BF,U+2113,U+2C7C,U+2C7F,U+A7FF;
|
||||
}
|
||||
/* latin */
|
||||
@font-face {
|
||||
font-family: 'InterDisplay var experimental';
|
||||
font-style: oblique 0deg 10deg;
|
||||
font-weight: 100 900;
|
||||
font-display: swap;
|
||||
src: url('font-files/InterDisplay.latin.var.woff2?v={{font_v}}') format('woff2');
|
||||
unicode-range: U+0000-007F,U+00A0-0100,U+0131,U+0152-0154,U+02BB-02BD,U+02C6,U+02DA,U+02DC,U+2000-200C,U+2010-2028,U+202F-2060,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+FEFF;
|
||||
}
|
@ -224,18 +224,7 @@ h1 {
|
||||
|
||||
|
||||
|
||||
|
||||
/* FAQ */
|
||||
grid.faq {
|
||||
grid-row-gap: calc(var(--spacingv) * 3);
|
||||
}
|
||||
.faq .q {
|
||||
font-weight: 600;
|
||||
}
|
||||
.faq h4:target {
|
||||
background: var(--yellow);
|
||||
}
|
||||
|
||||
/* features */
|
||||
boxes.features {
|
||||
color:#111;
|
||||
}
|
||||
@ -265,6 +254,18 @@ boxes.features grid .sample em {
|
||||
}
|
||||
|
||||
|
||||
/* FAQ */
|
||||
grid.faq {
|
||||
grid-row-gap: calc(var(--spacingv) * 3);
|
||||
}
|
||||
.faq .q {
|
||||
font-weight: 600;
|
||||
}
|
||||
.faq h4:target {
|
||||
background: var(--yellow);
|
||||
}
|
||||
|
||||
|
||||
|
||||
#sponsor-button {
|
||||
display: inline-block;
|
||||
|
@ -303,7 +303,6 @@ html { font-family: 'Inter', sans-serif; }
|
||||
<q title='OpenType feature ID'>locl</q>,
|
||||
<q title='OpenType feature ID'>salt</q>,
|
||||
<q title='OpenType feature ID'>aalt</q>,
|
||||
<q title='OpenType feature ID'>ccmp</q>,
|
||||
<q title='OpenType feature ID'>cpsp</q> and
|
||||
<q title='OpenType feature ID'>ordn</q>.
|
||||
<br>
|
||||
@ -522,11 +521,12 @@ html { font-family: 'Inter', sans-serif; }
|
||||
<h4 id="faq-subset"><a href="#faq-subset">
|
||||
How do I subset the font files?
|
||||
</a></h4>
|
||||
The web fonts provided by <a href="inter.css"><tt>inter.css</tt></a> and
|
||||
<!--The web fonts provided by <a href="inter.css"><tt>inter.css</tt></a> and
|
||||
<a href="inter-display.css"><tt>inter-display.css</tt></a> are already subset
|
||||
(variable version.)
|
||||
If you need special customized subsets, or subsetting OTF or TTF files,
|
||||
have a look at
|
||||
have a look at-->
|
||||
Have a look at
|
||||
<a href="https://fonttools.readthedocs.io/en/latest/subset/"><tt>pyftsubset</tt></a>
|
||||
and
|
||||
<a href="https://github.com/filamentgroup/glyphhanger"><tt>glyphhanger</tt></a>.
|
||||
|
@ -1,7 +1,7 @@
|
||||
---
|
||||
layout: none
|
||||
---
|
||||
{% assign font_v = site.data.fontinfo[0].version | append: "b" %}
|
||||
{% assign font_v = site.data.fontinfo[0].version %}
|
||||
/*
|
||||
Font families defined by this CSS:
|
||||
|
||||
@ -20,8 +20,29 @@ Use like this in your CSS:
|
||||
{% include InterDisplay-static.css %}
|
||||
|
||||
/* ----------------------- variable ----------------------- */
|
||||
|
||||
{%- comment -%}
|
||||
{% include InterDisplay-italic.var.css %}
|
||||
{% include InterDisplay-roman.var.css %}
|
||||
{%- endcomment %}
|
||||
|
||||
@font-face {
|
||||
font-family: 'InterDisplay var';
|
||||
font-style: normal;
|
||||
font-weight: 100 900;
|
||||
font-display: swap;
|
||||
src: url('font-files/InterDisplay-roman.var.woff2?v={{font_v}}') format('woff2');
|
||||
font-named-instance: 'Regular';
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: 'InterDisplay var';
|
||||
font-style: italic;
|
||||
font-weight: 100 900;
|
||||
font-display: swap;
|
||||
src: url('font-files/InterDisplay-italic.var.woff2?v={{font_v}}') format('woff2');
|
||||
font-named-instance: 'Italic';
|
||||
}
|
||||
|
||||
/* ----------- experimental multi-axis variable -----------
|
||||
|
||||
@ -31,4 +52,14 @@ When using this, you will likely need to set font-variation-settings explicitly,
|
||||
* { font-variation-settings: "slnt" 0deg }
|
||||
.italic { font-variation-settings: "slnt" 10deg }
|
||||
*/
|
||||
{%- comment -%}
|
||||
{% include InterDisplay.var.css %}
|
||||
{%- endcomment %}
|
||||
|
||||
@font-face {
|
||||
font-family: 'InterDisplay var experimental';
|
||||
font-style: oblique 0deg 10deg;
|
||||
font-weight: 100 900;
|
||||
font-display: swap;
|
||||
src: url('font-files/InterDisplay.var.woff2?v={{font_v}}') format('woff2');
|
||||
}
|
||||
|
@ -1,7 +1,7 @@
|
||||
---
|
||||
layout: none
|
||||
---
|
||||
{% assign font_v = site.data.fontinfo[0].version | append: "b" %}
|
||||
{% assign font_v = site.data.fontinfo[0].version %}
|
||||
/*
|
||||
Font families defined by this CSS:
|
||||
|
||||
@ -20,8 +20,29 @@ Use like this in your CSS:
|
||||
{% include Inter-static.css %}
|
||||
|
||||
/* ----------------------- variable ----------------------- */
|
||||
|
||||
{%- comment -%}
|
||||
{% include Inter-italic.var.css %}
|
||||
{% include Inter-roman.var.css %}
|
||||
{%- endcomment %}
|
||||
|
||||
@font-face {
|
||||
font-family: 'Inter var';
|
||||
font-style: normal;
|
||||
font-weight: 100 900;
|
||||
font-display: swap;
|
||||
src: url('font-files/Inter-roman.var.woff2?v={{font_v}}') format('woff2');
|
||||
font-named-instance: 'Regular';
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: 'Inter var';
|
||||
font-style: italic;
|
||||
font-weight: 100 900;
|
||||
font-display: swap;
|
||||
src: url('font-files/Inter-italic.var.woff2?v={{font_v}}') format('woff2');
|
||||
font-named-instance: 'Italic';
|
||||
}
|
||||
|
||||
/* ----------- experimental multi-axis variable -----------
|
||||
|
||||
@ -31,7 +52,18 @@ When using this, you will likely need to set font-variation-settings explicitly,
|
||||
* { font-variation-settings: "slnt" 0deg }
|
||||
.italic { font-variation-settings: "slnt" 10deg }
|
||||
*/
|
||||
|
||||
{%- comment -%}
|
||||
{% include Inter.var.css %}
|
||||
{%- endcomment %}
|
||||
|
||||
@font-face {
|
||||
font-family: 'Inter var experimental';
|
||||
font-style: oblique 0deg 10deg;
|
||||
font-weight: 100 900;
|
||||
font-display: swap;
|
||||
src: url('font-files/Inter.var.woff2?v={{font_v}}') format('woff2');
|
||||
}
|
||||
|
||||
/* Legacy name (became legacy on Feb 2, 2019) */
|
||||
@font-face {
|
||||
|
@ -642,9 +642,6 @@ box {
|
||||
border-radius: 3px;
|
||||
margin-right:1em;
|
||||
margin-bottom:1em;
|
||||
}
|
||||
body.safari box {
|
||||
/* Fix for broken flex wrap in safari */
|
||||
flex-basis: 40%;
|
||||
}
|
||||
box:first-child {
|
||||
@ -738,7 +735,7 @@ instead.
|
||||
|
||||
*/
|
||||
|
||||
.ff-none { font-feature-settings: 'kern' 1, 'calt' 0, 'liga' 0; -webkit-font-feature-settings: 'kern' 1, 'calt' 0, 'liga' 0; -ms-font-feature-settings: 'kern' 1, 'calt' 0, 'liga' 0; -moz-font-feature-settings: 'kern' 1, 'calt' 0, 'liga' 0; }
|
||||
.ff-none { font-feature-settings: 'kern' 1, 'calt' 0, 'liga' 0, 'ccmp' 0; -webkit-font-feature-settings: 'kern' 1, 'calt' 0, 'liga' 0, 'ccmp' 0; -ms-font-feature-settings: 'kern' 1, 'calt' 0, 'liga' 0, 'ccmp' 0; -moz-font-feature-settings: 'kern' 1, 'calt' 0, 'liga' 0, 'ccmp' 0; }
|
||||
|
||||
.ff-liga,
|
||||
.ff-calt { font-feature-settings: 'liga' 1, 'calt' 1; -webkit-font-feature-settings: 'liga' 1, 'calt' 1; -ms-font-feature-settings: 'liga' 1, 'calt' 1; -moz-font-feature-settings: 'liga' 1, 'calt' 1; }
|
||||
|
@ -15,6 +15,11 @@ sys.path.append(dirname(abspath(__file__)))
|
||||
from common import BASEDIR, VENVDIR
|
||||
|
||||
|
||||
# FORCE can be set to True to subset all fonts regardless if the input source
|
||||
# font has changed or not
|
||||
FORCE = False
|
||||
|
||||
|
||||
# fonts to subset
|
||||
FONTS = [
|
||||
|
||||
@ -109,6 +114,9 @@ SYMBOL_UNICODES = [
|
||||
]
|
||||
|
||||
|
||||
SELF_SCRIPT_MTIME = 0
|
||||
|
||||
|
||||
def main(argv):
|
||||
# defines subsets.
|
||||
# Ranges are inclusive.
|
||||
@ -181,14 +189,22 @@ def main(argv):
|
||||
*genCompactIntRanges(SYMBOL_UNICODES)
|
||||
),
|
||||
|
||||
defsubset('alternates',
|
||||
# all private-use codepoints are mapped to alternate glyphs, normally accessed by
|
||||
# OpenType features.
|
||||
range(0xE000, 0xF8FF),
|
||||
),
|
||||
# defsubset('alternates',
|
||||
# # all private-use codepoints are mapped to alternate glyphs, normally accessed by
|
||||
# # OpenType features.
|
||||
# range(0xE000, 0xF8FF),
|
||||
# ),
|
||||
# Note: Disabled so that alternates are all added automatically to the "extra" set.
|
||||
|
||||
)
|
||||
|
||||
global SELF_SCRIPT_MTIME
|
||||
SELF_SCRIPT_MTIME = os.path.getmtime(__file__)
|
||||
|
||||
# XXX DEBUG
|
||||
global FONTS
|
||||
FONTS = FONTS[1:2]
|
||||
|
||||
# generate subset fonts
|
||||
with ProcPool() as procpool:
|
||||
for fontinfo in FONTS:
|
||||
@ -207,49 +223,6 @@ def main(argv):
|
||||
f.write(css)
|
||||
|
||||
|
||||
def genCSS(fontinfo, subsets):
|
||||
outfileTemplate = pjoin(BASEDIR, fontinfo['outfile'])
|
||||
|
||||
css_family = fontinfo.get('css_family', 'Inter')
|
||||
css_style = fontinfo.get('css_style', 'normal')
|
||||
css_weight = fontinfo.get('css_weight', '400')
|
||||
css_extra = fontinfo.get('css_extra', '')
|
||||
if len(css_extra) > 0:
|
||||
css_extra = '\n ' + css_extra
|
||||
css = []
|
||||
|
||||
for subset in list(subsets) + [{ 'name':'extra' }]:
|
||||
outfile = outfileTemplate.format(subset=subset['name'])
|
||||
# Read effective codepoint coverage. This may be greater than requested
|
||||
# in case of OT features. For example, the Latin subset includes some common arrow
|
||||
# glyphs since "->" is a ligature for "→".
|
||||
font = ttLib.TTFont(outfile)
|
||||
unicodes = set(getUnicodeMap(font))
|
||||
if min(unicodes) < 0x30:
|
||||
# the "base" (latin) subset. extend it to include control codepoints
|
||||
controlCodepoints, _ = genUnicodeRange([range(0x0000, 0x001F)])
|
||||
unicodes = unicodes.union(controlCodepoints)
|
||||
_, unicodeRange = genUnicodeRange(genCompactIntRanges(unicodes))
|
||||
css.append(CSS_TEMPLATE.format(
|
||||
comment=subset['name'],
|
||||
filename=basename(outfile),
|
||||
unicode_range=unicodeRange,
|
||||
family=css_family,
|
||||
style=css_style,
|
||||
weight=css_weight,
|
||||
extra=css_extra,
|
||||
).strip())
|
||||
|
||||
# From the CSS spec on unicode-range descriptor:
|
||||
# "If the Unicode ranges overlap for a set of @font-face rules with the same family
|
||||
# and style descriptor values, the rules are ordered in the reverse order they were
|
||||
# defined; the last rule defined is the first to be checked for a given character."
|
||||
# https://www.w3.org/TR/css-fonts-4/#unicode-range-desc
|
||||
css.reverse()
|
||||
|
||||
return '\n'.join(css)
|
||||
|
||||
|
||||
def subset_font(fontinfo, subsets, procpool):
|
||||
infile = pjoin(BASEDIR, fontinfo['infile'])
|
||||
outfileTemplate = pjoin(BASEDIR, fontinfo['outfile'])
|
||||
@ -268,18 +241,26 @@ def subset_font(fontinfo, subsets, procpool):
|
||||
extraUnicodes = ucall - covered
|
||||
_, extraUnicodeRange = genUnicodeRange(extraUnicodes)
|
||||
outfile = outfileTemplate.format(subset='extra')
|
||||
print("write", outfile)
|
||||
subset_range_async(procpool, infile, outfile, unicodeRange)
|
||||
|
||||
|
||||
def subset_range_async(procpool :ProcPool, infile :str, outfile :str, unicodeRange :str):
|
||||
try:
|
||||
if os.path.getmtime(outfile) > os.path.getmtime(infile):
|
||||
# print('up-to-date %s -> %s' % (relpath(infile), relpath(outfile)))
|
||||
return
|
||||
except:
|
||||
pass
|
||||
procpool.apply_async( subset_range,(infile, outfile, unicodeRange) )
|
||||
if not FORCE:
|
||||
try:
|
||||
outmtime = os.path.getmtime(outfile)
|
||||
if outmtime > os.path.getmtime(infile) and outmtime > SELF_SCRIPT_MTIME:
|
||||
print('up-to-date %s -> %s' % (relpath(infile), relpath(outfile)))
|
||||
return
|
||||
except:
|
||||
pass
|
||||
procpool.apply_async( subset_range,(infile, outfile, unicodeRange),
|
||||
error_callback=lambda err: onProcErr(procpool, err) )
|
||||
|
||||
|
||||
def onProcErr(procpool, err):
|
||||
procpool.terminate()
|
||||
raise err
|
||||
sys.exit(1)
|
||||
|
||||
|
||||
def subset_range(infile :str, outfile :str, unicodeRange :str):
|
||||
@ -289,6 +270,9 @@ def subset_range(infile :str, outfile :str, unicodeRange :str):
|
||||
pyftsubset,
|
||||
'--unicodes=' + unicodeRange,
|
||||
'--layout-features=*',
|
||||
'--recommended-glyphs',
|
||||
'--no-recalc-bounds',
|
||||
'--no-prune-unicode-ranges',
|
||||
'--no-hinting',
|
||||
'--output-file=' + outfile,
|
||||
infile
|
||||
@ -302,16 +286,18 @@ def subset_range(infile :str, outfile :str, unicodeRange :str):
|
||||
args,
|
||||
shell=False,
|
||||
stdout=subprocess.PIPE,
|
||||
stderr=subprocess.STDOUT, # combine stdout & stderr into p.stdout
|
||||
stderr=subprocess.PIPE,
|
||||
encoding='utf-8', # py3
|
||||
)
|
||||
output = p.stdout.strip()
|
||||
if p.returncode != 0:
|
||||
raise Exception('pyftsubset failed:\n%s\nInvocation:\n%s' % (
|
||||
output,
|
||||
raise Exception(
|
||||
'pyftsubset failed:\n-- stdout:\n%s\n\n-- stderr:\n%s\n\n-- invocation:\n%s' % (
|
||||
p.stdout.strip(),
|
||||
p.stderr.strip(),
|
||||
'\n '.join([repr(a) for a in args]),
|
||||
))
|
||||
|
||||
# sys.exit(p.returncode)
|
||||
print("write", outfile)
|
||||
|
||||
# (name, ...[int|range(int)]) -> { name:str codepoints:[int|range(int)] }
|
||||
def defsubset(name, *codepoints):
|
||||
@ -382,6 +368,49 @@ def genCompactIntRanges(codepoints :[int]) -> [[int]]:
|
||||
return compact
|
||||
|
||||
|
||||
def genCSS(fontinfo, subsets):
|
||||
outfileTemplate = pjoin(BASEDIR, fontinfo['outfile'])
|
||||
|
||||
css_family = fontinfo.get('css_family', 'Inter')
|
||||
css_style = fontinfo.get('css_style', 'normal')
|
||||
css_weight = fontinfo.get('css_weight', '400')
|
||||
css_extra = fontinfo.get('css_extra', '')
|
||||
if len(css_extra) > 0:
|
||||
css_extra = '\n ' + css_extra
|
||||
css = []
|
||||
|
||||
for subset in list(subsets) + [{ 'name':'extra' }]:
|
||||
outfile = outfileTemplate.format(subset=subset['name'])
|
||||
# Read effective codepoint coverage. This may be greater than requested
|
||||
# in case of OT features. For example, the Latin subset includes some common arrow
|
||||
# glyphs since "->" is a ligature for "→".
|
||||
font = ttLib.TTFont(outfile)
|
||||
unicodes = set(getUnicodeMap(font))
|
||||
if min(unicodes) < 0x30:
|
||||
# the "base" (latin) subset. extend it to include control codepoints
|
||||
controlCodepoints, _ = genUnicodeRange([range(0x0000, 0x001F)])
|
||||
unicodes = unicodes.union(controlCodepoints)
|
||||
_, unicodeRange = genUnicodeRange(genCompactIntRanges(unicodes))
|
||||
css.append(CSS_TEMPLATE.format(
|
||||
comment=subset['name'],
|
||||
filename=basename(outfile),
|
||||
unicode_range=unicodeRange,
|
||||
family=css_family,
|
||||
style=css_style,
|
||||
weight=css_weight,
|
||||
extra=css_extra,
|
||||
).strip())
|
||||
|
||||
# From the CSS spec on unicode-range descriptor:
|
||||
# "If the Unicode ranges overlap for a set of @font-face rules with the same family
|
||||
# and style descriptor values, the rules are ordered in the reverse order they were
|
||||
# defined; the last rule defined is the first to be checked for a given character."
|
||||
# https://www.w3.org/TR/css-fonts-4/#unicode-range-desc
|
||||
css.reverse()
|
||||
|
||||
return '\n'.join(css)
|
||||
|
||||
|
||||
def relpath(path):
|
||||
return os.path.relpath(path, os.getcwd())
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user