Updated build process

This commit is contained in:
weiweihuanghuang 2018-11-14 19:06:09 +08:00
parent 0ac0ba4f1b
commit e601159d7c
81 changed files with 301538 additions and 33333 deletions

View File

@ -3,8 +3,8 @@
DisplayStrings = ( DisplayStrings = (
"/Uhorn/Ohorn/uhorn/ohorn/Ahookabove/ahookabove \012/Acircumflexacute/Acircumflexgrave/Acircumflexhookabove/Acircumflextilde/acircumflexacute/acircumflexgrave/acircumflexhookabove/acircumflextilde \012/circumflexcomb_acutecomb/circumflexcomb_gravecomb/circumflexcomb_hookabovecomb/circumflexcomb_tildecomb \012/Ohornacute/Ohorngrave/Ohornhookabove/Ohorntilde \012/Uhornacute/Uhorngrave/Uhornhookabove/Uhorntilde \012/Abreveacute/Abrevegrave/Abrevehookabove/Abrevetilde \012/Acircumflexacute/Acircumflexgrave/Acircumflexhookabove/Acircumflextilde \012/Etilde/Ecircumflexacute/Ecircumflexgrave/Ecircumflexhookabove/Ecircumflextilde \012/Ocircumflexacute/Ocircumflexgrave/Ocircumflexhookabove/Ocircumflextilde \012/ohornacute/ohorngrave/ohornhookabove/ohorntilde \012/uhornacute/uhorngrave/uhornhookabove/uhorntilde \012/abreveacute/abrevegrave/abrevehookabove/abrevetilde \012/acircumflexacute/acircumflexgrave/acircumflexhookabove/acircumflextilde \012/ecircumflexacute/ecircumflexgrave/ecircumflexhookabove/ecircumflextilde \012/ocircumflexacute/ocircumflexgrave/ocircumflexhookabove/ocircumflextilde \012\012/Abreveacute/Abrevegrave/Abrevehookabove/Abrevetilde/abreveacute/abrevegrave/abrevehookabove/abrevetilde \012/Ohorn/Ohornacute/Ohorngrave/Ohornhookabove/Ohorntilde/ohorn/ohornacute/ohorngrave/ohornhookabove/ohorntilde \012/Uhorn/Uhornacute/Uhorngrave/Uhornhookabove/Uhorntilde/uhorn/uhornacute/uhorngrave/uhornhookabove/uhorntilde \012/Acircumflexacute/Acircumflexgrave/Acircumflexhookabove/Acircumflextilde/acircumflexacute/acircumflexgrave/acircumflexhookabove/acircumflextilde \012/Ecircumflexacute/Ecircumflexgrave/Ecircumflexhookabove/Ecircumflextilde/ecircumflexacute/ecircumflexgrave/ecircumflexhookabove/ecircumflextilde \012/Ocircumflexacute/Ocircumflexgrave/Ocircumflexhookabove/Ocircumflextilde/ocircumflexacute/ocircumflexgrave/ocircumflexhookabove/ocircumflextilde", "/Uhorn/Ohorn/uhorn/ohorn/Ahookabove/ahookabove \012/Acircumflexacute/Acircumflexgrave/Acircumflexhookabove/Acircumflextilde/acircumflexacute/acircumflexgrave/acircumflexhookabove/acircumflextilde \012/circumflexcomb_acutecomb/circumflexcomb_gravecomb/circumflexcomb_hookabovecomb/circumflexcomb_tildecomb \012/Ohornacute/Ohorngrave/Ohornhookabove/Ohorntilde \012/Uhornacute/Uhorngrave/Uhornhookabove/Uhorntilde \012/Abreveacute/Abrevegrave/Abrevehookabove/Abrevetilde \012/Acircumflexacute/Acircumflexgrave/Acircumflexhookabove/Acircumflextilde \012/Etilde/Ecircumflexacute/Ecircumflexgrave/Ecircumflexhookabove/Ecircumflextilde \012/Ocircumflexacute/Ocircumflexgrave/Ocircumflexhookabove/Ocircumflextilde \012/ohornacute/ohorngrave/ohornhookabove/ohorntilde \012/uhornacute/uhorngrave/uhornhookabove/uhorntilde \012/abreveacute/abrevegrave/abrevehookabove/abrevetilde \012/acircumflexacute/acircumflexgrave/acircumflexhookabove/acircumflextilde \012/ecircumflexacute/ecircumflexgrave/ecircumflexhookabove/ecircumflextilde \012/ocircumflexacute/ocircumflexgrave/ocircumflexhookabove/ocircumflextilde \012\012/Abreveacute/Abrevegrave/Abrevehookabove/Abrevetilde/abreveacute/abrevegrave/abrevehookabove/abrevetilde \012/Ohorn/Ohornacute/Ohorngrave/Ohornhookabove/Ohorntilde/ohorn/ohornacute/ohorngrave/ohornhookabove/ohorntilde \012/Uhorn/Uhornacute/Uhorngrave/Uhornhookabove/Uhorntilde/uhorn/uhornacute/uhorngrave/uhornhookabove/uhorntilde \012/Acircumflexacute/Acircumflexgrave/Acircumflexhookabove/Acircumflextilde/acircumflexacute/acircumflexgrave/acircumflexhookabove/acircumflextilde \012/Ecircumflexacute/Ecircumflexgrave/Ecircumflexhookabove/Ecircumflextilde/ecircumflexacute/ecircumflexgrave/ecircumflexhookabove/ecircumflextilde \012/Ocircumflexacute/Ocircumflexgrave/Ocircumflexhookabove/Ocircumflextilde/ocircumflexacute/ocircumflexgrave/ocircumflexhookabove/ocircumflextilde",
"/ldot/lslash //space\012\012\012L\012HUB/Germandbls EL/Lslash ZFPÞT/Tbar YVWARKXOØQGCS\012naqgudlijfrtoecðsßkxvz\0120917426583\012/zero.osf/one.osf/two.osf/four.osf/seven.osf/five.osf/three.osf/nine.osf/six.osf/eight.osf \012/zerosuperior ¹/foursuperior/sevensuperior/ninesuperior ²/sixsuperior/fivesuperior/eightsuperior ³/zeroinferior/oneinferior/fourinferior/seveninferior/nineinferior/twoinferior/sixinferior/fiveinferior/eightinferior/threeinferior/zerosuperior/sevensuperior/zeroinferior/seveninferior \012.,/quotesinglbase/quoteleft/quoteright ':;-/endash *!?¡¿/exclamdown.case/questiondown.case \012///backslash {}[]()/guilsinglleft/guilsinglright \012#/dagger \012\012R\012HUTZAÆYVWXOØSJ\012hlnijpuaoøðßftgsyvwxz\0120617238954\012/zero.osf/one.osf/two.osf/three.osf/nine.osf/five.osf/four.osf/seven.osf/six.osf/eight.osf \012.,/quotesinglbase/quoteleft/quoteright ':-*!?\012///backslash {}[]()/guilsinglleft/guilsinglright \012#/dagger °\012\012.,:;-/endash/guilsinglleft/guilsinglright {}[]()///backslash *!?&@#\012H, /quoteleft H/quoteright /quoteleft H/quoteleft /quoteright H/quoteright /quotesinglbase H/quoteright /quotesinglbase H/quoteleft 'H'\012\012L /leftArrow/rightArrow/northEastArrow/southWestArrow/downArrow/upArrow/southEastArrow/northWestArrow/leftHookArrow/anticlockwiseOpenCircleArrow/clockwiseOpenCircleArrow \012R /leftArrow/rightArrow/northEastArrow/southWestArrow/upArrow/downArrow/southEastArrow/northWestArrow/anticlockwiseOpenCircleArrow/clockwiseOpenCircleArrow \012\012Triple:\012h/hbar blnijpruoødqecðagsßftvywxkz\012HOTYAVWXZ", "/ldot/lslash //space\012\012\012L\012HUB/Germandbls EL/Lslash ZFPÞT/Tbar YVWARKXOØQGCS\012naqgudlijfrtoecðsßkxvz\0120917426583\012/zero.osf/one.osf/two.osf/four.osf/seven.osf/five.osf/three.osf/nine.osf/six.osf/eight.osf \012/zerosuperior ¹/foursuperior/sevensuperior/ninesuperior ²/sixsuperior/fivesuperior/eightsuperior ³/zeroinferior/oneinferior/fourinferior/seveninferior/nineinferior/twoinferior/sixinferior/fiveinferior/eightinferior/threeinferior/zerosuperior/sevensuperior/zeroinferior/seveninferior \012.,/quotesinglbase/quoteleft/quoteright ':;-/endash *!?¡¿/exclamdown.case/questiondown.case \012///backslash {}[]()/guilsinglleft/guilsinglright \012#/dagger \012\012R\012HUTZAÆYVWXOØSJ\012hlnijpuaoøðßftgsyvwxz\0120617238954\012/zero.osf/one.osf/two.osf/three.osf/nine.osf/five.osf/four.osf/seven.osf/six.osf/eight.osf \012.,/quotesinglbase/quoteleft/quoteright ':-*!?\012///backslash {}[]()/guilsinglleft/guilsinglright \012#/dagger °\012\012.,:;-/endash/guilsinglleft/guilsinglright {}[]()///backslash *!?&@#\012H, /quoteleft H/quoteright /quoteleft H/quoteleft /quoteright H/quoteright /quotesinglbase H/quoteright /quotesinglbase H/quoteleft 'H'\012\012L /leftArrow/rightArrow/northEastArrow/southWestArrow/downArrow/upArrow/southEastArrow/northWestArrow/leftHookArrow/anticlockwiseOpenCircleArrow/clockwiseOpenCircleArrow \012R /leftArrow/rightArrow/northEastArrow/southWestArrow/upArrow/downArrow/southEastArrow/northWestArrow/anticlockwiseOpenCircleArrow/clockwiseOpenCircleArrow \012\012Triple:\012h/hbar blnijpruoødqecðagsßftvywxkz\012HOTYAVWXZ",
"Done:\012/apple.001 \012/cedi/cedi.rvrn ¢/cent.rvrn/colonsign/colonsign.136_230 $/dollar.rvrn/guarani/guarani.rvrn/naira/naira.rvrn/peseta/peseta.rvrn/peso/peso.rvrn/won/won.rvrn/dollar.tf/dollar.tf.rvrn/curvedStemParagraphSignOrnament/curvedStemParagraphSignOrnament.rvrn ¶/paragraph.rvrn ©®/cent.tf/cent.tf.rvrn \012\012Brace:\012æes", "Done:\012/apple.001 \012/cedi/cedi.rvrn ¢/cent.rvrn/colonsign/colonsign.rvrn $/dollar.rvrn/guarani/guarani.rvrn/naira/naira.rvrn/peseta/peseta.rvrn/peso/peso.rvrn/won/won.rvrn/dollar.tf/dollar.tf.rvrn/curvedStemParagraphSignOrnament/curvedStemParagraphSignOrnament.rvrn ¶/paragraph.rvrn ©®/cent.tf/cent.tf.rvrn \012\012Brace:\012æes",
";¡¿/semicolon.tf )]/parenrightsuperior/bracketright.case/exclamdown.sc/questiondown.sc/rightanglebracket-math >/rightArrow/downArrow/southWestArrow/downWhiteTriangle/heavySingleCommaQuotationMarkOrnament/heavyDoubleCommaQuotationMarkOrnament/ringhalfright/bracketrightsuperior/colonsign/colonsign.136_230", ";¡¿/semicolon.tf )]/parenrightsuperior/bracketright.case/exclamdown.sc/questiondown.sc/rightanglebracket-math >/rightArrow/downArrow/southWestArrow/downWhiteTriangle/heavySingleCommaQuotationMarkOrnament/heavyDoubleCommaQuotationMarkOrnament/ringhalfright/bracketrightsuperior/colonsign/colonsign.rvrn",
"/dollar.tf/cent.tf \012/dollar.tf.rvrn/cent.tf.rvrn \012$¢ÄÜÖ\012/dollar.rvrn/cent.rvrn" "/dollar.tf/cent.tf \012/dollar.tf.rvrn/cent.tf.rvrn \012$¢ÄÜÖ\012/dollar.rvrn/cent.rvrn"
); );
classes = ( classes = (
@ -79,7 +79,7 @@ name = vendorID;
value = WEI; value = WEI;
} }
); );
date = "2018-11-09 06:50:14 +0000"; date = "2018-11-14 10:39:40 +0000";
designer = "Wei Huang"; designer = "Wei Huang";
designerURL = "http://wweeiihhuuaanngg@gmail.com"; designerURL = "http://wweeiihhuuaanngg@gmail.com";
familyName = "Work Sans"; familyName = "Work Sans";
@ -121,7 +121,9 @@ feature tnum;
feature onum; feature onum;
feature case; feature case;
feature zero; feature zero;
feature ornm;
feature calt; feature calt;
feature salt;
feature hist; feature hist;
feature ss02; feature ss02;
feature ss03; feature ss03;
@ -184,6 +186,21 @@ name = locl;
}, },
{ {
automatic = 1; automatic = 1;
code = "sub zero by zero.numr;
sub one by one.numr;
sub two by two.numr;
sub three by three.numr;
sub four by four.numr;
sub five by five.numr;
sub six by six.numr;
sub seven by seven.numr;
sub eight by eight.numr;
sub nine by nine.numr;
";
name = numr;
},
{
automatic = 1;
code = "sub zero by zero.dnom; code = "sub zero by zero.dnom;
sub one by one.dnom; sub one by one.dnom;
sub two by two.dnom; sub two by two.dnom;
@ -869,21 +886,6 @@ sub dagger by daggersuperior;
name = sups; name = sups;
}, },
{ {
automatic = 1;
code = "sub zero by zero.numr;
sub one by one.numr;
sub two by two.numr;
sub three by three.numr;
sub four by four.numr;
sub five by five.numr;
sub six by six.numr;
sub seven by seven.numr;
sub eight by eight.numr;
sub nine by nine.numr;
";
name = numr;
},
{
code = "sub one by one.sansSerifCircled; code = "sub one by one.sansSerifCircled;
sub two by two.sansSerifCircled; sub two by two.sansSerifCircled;
sub three by three.sansSerifCircled; sub three by three.sansSerifCircled;
@ -88779,6 +88781,354 @@ rightKerningGroup = c;
}, },
{ {
export = 0; export = 0;
glyphname = colonsign.rvrn;
layers = (
{
color = 5;
components = (
{
name = euro.part;
transform = "{1, 0, 0, 1, -55, 0}";
}
);
layerId = "F97236B5-7CBD-4FD1-81B0-6670342ADB4E";
paths = (
{
closed = 1;
nodes = (
"164 56 LINE",
"91 -49 LINE",
"109 -49 LINE",
"174 44 LINE"
);
},
{
closed = 1;
nodes = (
"115 137 LINE",
"-15 -49 LINE",
"3 -49 LINE",
"121 120 LINE"
);
},
{
closed = 1;
nodes = (
"486 642 LINE",
"533 709 LINE",
"515 709 LINE",
"473 649 LINE"
);
},
{
closed = 1;
nodes = (
"550 582 LINE",
"639 709 LINE",
"621 709 LINE",
"541 595 LINE"
);
}
);
width = 590;
},
{
associatedMasterId = "DBFAC7D3-9CB2-48DD-9F53-AD59A4BD1301";
background = {
components = (
{
name = euro.part;
transform = "{1, 0, 0, 1, -83, 0}";
}
);
paths = (
{
closed = 1;
nodes = (
"562 843 LINE",
"551 720 LINE",
"340 720 LINE",
"493 847 LINE",
"4 -168 LINE",
"-23 -68 LINE",
"188 -68 LINE",
"89 -138 LINE"
);
},
{
closed = 1;
nodes = (
"710 842 LINE",
"719 720 LINE",
"525 720 LINE",
"619 801 LINE",
"151 -169 LINE",
"123 -68 LINE",
"334 -68 LINE",
"168 -285 LINE"
);
}
);
};
color = 3;
components = (
{
name = euro.part;
transform = "{1, 0, 0, 1, -83, 0}";
}
);
layerId = "B04DB746-8680-40EB-966B-C426C7E49D78";
name = "Nov 7 18, 11:51";
paths = (
{
closed = 1;
nodes = (
"272 -68 LINE",
"651 720 LINE",
"580 720 LINE",
"200 -68 LINE"
);
},
{
closed = 1;
nodes = (
"123 -68 LINE",
"503 720 LINE",
"432 720 LINE",
"52 -68 LINE"
);
}
);
width = 603;
},
{
color = 3;
components = (
{
name = euro.part;
transform = "{1, 0, 0, 1, -83, 0}";
}
);
layerId = "DBFAC7D3-9CB2-48DD-9F53-AD59A4BD1301";
paths = (
{
closed = 1;
nodes = (
"257 50 LINE",
"200 -68 LINE",
"272 -68 LINE",
"322 37 LINE"
);
},
{
closed = 1;
nodes = (
"146 126 LINE",
"52 -68 LINE",
"123 -68 LINE",
"194 78 LINE"
);
},
{
closed = 1;
nodes = (
"463 636 LINE",
"503 720 LINE",
"432 720 LINE",
"399 651 LINE"
);
},
{
closed = 1;
nodes = (
"563 538 LINE",
"651 720 LINE",
"580 720 LINE",
"519 594 LINE"
);
}
);
width = 603;
},
{
associatedMasterId = "EA77C764-8343-414A-A941-E69667BA8F3A";
background = {
paths = (
{
closed = 1;
nodes = (
"462 -10 OFFCURVE",
"575 50 OFFCURVE",
"658 168 CURVE",
"528 231 LINE",
"491 174 OFFCURVE",
"438 142 OFFCURVE",
"366 142 CURVE SMOOTH",
"238 142 OFFCURVE",
"207 202 OFFCURVE",
"234 320 CURVE SMOOTH",
"260 433 OFFCURVE",
"323 496 OFFCURVE",
"447 496 CURVE SMOOTH",
"500 496 OFFCURVE",
"551 470 OFFCURVE",
"540 402 CURVE",
"733 503 LINE",
"685 639 OFFCURVE",
"602 670 OFFCURVE",
"478 670 CURVE SMOOTH",
"270 670 OFFCURVE",
"113 545 OFFCURVE",
"63 330 CURVE SMOOTH",
"14 115 OFFCURVE",
"112 -10 OFFCURVE",
"320 -10 CURVE SMOOTH"
);
},
{
closed = 1;
nodes = (
"103 -80 LINE",
"216 92 LINE",
"147 149 LINE",
"-2 -80 LINE"
);
},
{
closed = 1;
nodes = (
"283 -80 LINE",
"376 67 LINE",
"276 75 LINE",
"178 -80 LINE"
);
},
{
closed = 1;
nodes = (
"510 575 LINE",
"409 581 LINE",
"149 152 LINE",
"218 95 LINE"
);
},
{
closed = 1;
nodes = (
"646 504 LINE",
"577 561 LINE",
"282 78 LINE",
"382 70 LINE"
);
},
{
closed = 1;
nodes = (
"608 740 LINE",
"503 740 LINE",
"403 581 LINE",
"504 575 LINE"
);
},
{
closed = 1;
nodes = (
"788 740 LINE",
"683 740 LINE",
"571 561 LINE",
"640 504 LINE"
);
}
);
};
color = 5;
components = (
{
name = euro.part;
transform = "{1, 0, 0, 0.97059, -32, 10}";
}
);
layerId = "1EA06B81-CB83-418F-84F5-A4F5F2993A74";
name = "Nov 7 18, 11:51";
paths = (
{
closed = 1;
nodes = (
"331 -80 LINE",
"750 740 LINE",
"631 740 LINE",
"212 -80 LINE"
);
},
{
closed = 1;
nodes = (
"161 -80 LINE",
"580 740 LINE",
"461 740 LINE",
"42 -80 LINE"
);
}
);
width = 658;
},
{
color = 5;
components = (
{
name = euro.part;
transform = "{1, 0, 0, 0.97059, -32, 10}";
}
);
layerId = "EA77C764-8343-414A-A941-E69667BA8F3A";
paths = (
{
closed = 1;
nodes = (
"315 121 LINE",
"212 -80 LINE",
"331 -80 LINE",
"418 90 LINE"
);
},
{
closed = 1;
nodes = (
"167 164 LINE",
"42 -80 LINE",
"161 -80 LINE",
"270 134 LINE"
);
},
{
closed = 1;
nodes = (
"484 552 LINE",
"580 740 LINE",
"461 740 LINE",
"393 607 LINE"
);
},
{
closed = 1;
nodes = (
"614 473 LINE",
"750 740 LINE",
"631 740 LINE",
"523 528 LINE"
);
}
);
width = 658;
}
);
leftKerningGroup = O;
leftMetricsKey = O;
rightKerningGroup = C;
rightMetricsKey = C;
},
{
export = 0;
glyphname = dollar.rvrn; glyphname = dollar.rvrn;
layers = ( layers = (
{ {
@ -106618,354 +106968,6 @@ width = 486;
); );
}, },
{ {
export = 0;
glyphname = colonsign.136_230;
layers = (
{
color = 5;
components = (
{
name = euro.part;
transform = "{1, 0, 0, 1, -55, 0}";
}
);
layerId = "F97236B5-7CBD-4FD1-81B0-6670342ADB4E";
paths = (
{
closed = 1;
nodes = (
"164 56 LINE",
"91 -49 LINE",
"109 -49 LINE",
"174 44 LINE"
);
},
{
closed = 1;
nodes = (
"115 137 LINE",
"-15 -49 LINE",
"3 -49 LINE",
"121 120 LINE"
);
},
{
closed = 1;
nodes = (
"486 642 LINE",
"533 709 LINE",
"515 709 LINE",
"473 649 LINE"
);
},
{
closed = 1;
nodes = (
"550 582 LINE",
"639 709 LINE",
"621 709 LINE",
"541 595 LINE"
);
}
);
width = 590;
},
{
associatedMasterId = "DBFAC7D3-9CB2-48DD-9F53-AD59A4BD1301";
background = {
components = (
{
name = euro.part;
transform = "{1, 0, 0, 1, -83, 0}";
}
);
paths = (
{
closed = 1;
nodes = (
"562 843 LINE",
"551 720 LINE",
"340 720 LINE",
"493 847 LINE",
"4 -168 LINE",
"-23 -68 LINE",
"188 -68 LINE",
"89 -138 LINE"
);
},
{
closed = 1;
nodes = (
"710 842 LINE",
"719 720 LINE",
"525 720 LINE",
"619 801 LINE",
"151 -169 LINE",
"123 -68 LINE",
"334 -68 LINE",
"168 -285 LINE"
);
}
);
};
color = 3;
components = (
{
name = euro.part;
transform = "{1, 0, 0, 1, -83, 0}";
}
);
layerId = "B04DB746-8680-40EB-966B-C426C7E49D78";
name = "Nov 7 18, 11:51";
paths = (
{
closed = 1;
nodes = (
"272 -68 LINE",
"651 720 LINE",
"580 720 LINE",
"200 -68 LINE"
);
},
{
closed = 1;
nodes = (
"123 -68 LINE",
"503 720 LINE",
"432 720 LINE",
"52 -68 LINE"
);
}
);
width = 603;
},
{
color = 3;
components = (
{
name = euro.part;
transform = "{1, 0, 0, 1, -83, 0}";
}
);
layerId = "DBFAC7D3-9CB2-48DD-9F53-AD59A4BD1301";
paths = (
{
closed = 1;
nodes = (
"257 50 LINE",
"200 -68 LINE",
"272 -68 LINE",
"322 37 LINE"
);
},
{
closed = 1;
nodes = (
"146 126 LINE",
"52 -68 LINE",
"123 -68 LINE",
"194 78 LINE"
);
},
{
closed = 1;
nodes = (
"463 636 LINE",
"503 720 LINE",
"432 720 LINE",
"399 651 LINE"
);
},
{
closed = 1;
nodes = (
"563 538 LINE",
"651 720 LINE",
"580 720 LINE",
"519 594 LINE"
);
}
);
width = 603;
},
{
associatedMasterId = "EA77C764-8343-414A-A941-E69667BA8F3A";
background = {
paths = (
{
closed = 1;
nodes = (
"462 -10 OFFCURVE",
"575 50 OFFCURVE",
"658 168 CURVE",
"528 231 LINE",
"491 174 OFFCURVE",
"438 142 OFFCURVE",
"366 142 CURVE SMOOTH",
"238 142 OFFCURVE",
"207 202 OFFCURVE",
"234 320 CURVE SMOOTH",
"260 433 OFFCURVE",
"323 496 OFFCURVE",
"447 496 CURVE SMOOTH",
"500 496 OFFCURVE",
"551 470 OFFCURVE",
"540 402 CURVE",
"733 503 LINE",
"685 639 OFFCURVE",
"602 670 OFFCURVE",
"478 670 CURVE SMOOTH",
"270 670 OFFCURVE",
"113 545 OFFCURVE",
"63 330 CURVE SMOOTH",
"14 115 OFFCURVE",
"112 -10 OFFCURVE",
"320 -10 CURVE SMOOTH"
);
},
{
closed = 1;
nodes = (
"103 -80 LINE",
"216 92 LINE",
"147 149 LINE",
"-2 -80 LINE"
);
},
{
closed = 1;
nodes = (
"283 -80 LINE",
"376 67 LINE",
"276 75 LINE",
"178 -80 LINE"
);
},
{
closed = 1;
nodes = (
"510 575 LINE",
"409 581 LINE",
"149 152 LINE",
"218 95 LINE"
);
},
{
closed = 1;
nodes = (
"646 504 LINE",
"577 561 LINE",
"282 78 LINE",
"382 70 LINE"
);
},
{
closed = 1;
nodes = (
"608 740 LINE",
"503 740 LINE",
"403 581 LINE",
"504 575 LINE"
);
},
{
closed = 1;
nodes = (
"788 740 LINE",
"683 740 LINE",
"571 561 LINE",
"640 504 LINE"
);
}
);
};
color = 5;
components = (
{
name = euro.part;
transform = "{1, 0, 0, 0.97059, -32, 10}";
}
);
layerId = "1EA06B81-CB83-418F-84F5-A4F5F2993A74";
name = "Nov 7 18, 11:51";
paths = (
{
closed = 1;
nodes = (
"331 -80 LINE",
"750 740 LINE",
"631 740 LINE",
"212 -80 LINE"
);
},
{
closed = 1;
nodes = (
"161 -80 LINE",
"580 740 LINE",
"461 740 LINE",
"42 -80 LINE"
);
}
);
width = 658;
},
{
color = 5;
components = (
{
name = euro.part;
transform = "{1, 0, 0, 0.97059, -32, 10}";
}
);
layerId = "EA77C764-8343-414A-A941-E69667BA8F3A";
paths = (
{
closed = 1;
nodes = (
"315 121 LINE",
"212 -80 LINE",
"331 -80 LINE",
"418 90 LINE"
);
},
{
closed = 1;
nodes = (
"167 164 LINE",
"42 -80 LINE",
"161 -80 LINE",
"270 134 LINE"
);
},
{
closed = 1;
nodes = (
"484 552 LINE",
"580 740 LINE",
"461 740 LINE",
"393 607 LINE"
);
},
{
closed = 1;
nodes = (
"614 473 LINE",
"750 740 LINE",
"631 740 LINE",
"523 528 LINE"
);
}
);
width = 658;
}
);
leftKerningGroup = O;
leftMetricsKey = O;
rightKerningGroup = C;
rightMetricsKey = C;
},
{
glyphname = apostrophemod; glyphname = apostrophemod;
layers = ( layers = (
{ {

File diff suppressed because one or more lines are too long

View File

@ -43,6 +43,7 @@ mv ${GXname}.ttx tools/${GXname}.ttx
# Copy brace glyphs from variable font generated from Glyphs App # Copy brace glyphs from variable font generated from Glyphs App
# Run script to find and copy TTGlyph and glyphVariations elements from source file and copy into target file # Run script to find and copy TTGlyph and glyphVariations elements from source file and copy into target file
# Could probablh be done just with fonttools...
echo "\tAdding brace glyphs..." echo "\tAdding brace glyphs..."
xml tr tools/replaceBraceGlyphs.xsl \ xml tr tools/replaceBraceGlyphs.xsl \
-s replacements=${GXname}.ttx \ -s replacements=${GXname}.ttx \

File diff suppressed because it is too large Load Diff

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -8,7 +8,7 @@ body {
background-color: #ffffff; background-color: #ffffff;
color: #000000; color: #000000;
font-family: 'Work Sans';/* 'AdobeBlank';*/ font-family: 'Work Sans';/* 'AdobeBlank';*/
font-weight: 900; font-weight: 400;
text-align: left; text-align: left;
margin: 4px 8px; margin: 4px 8px;
font-feature-settings:"kern" 1, "liga" 1; font-feature-settings:"kern" 1, "liga" 1;
@ -19,7 +19,7 @@ p {
margin: 0 0 3em; margin: 0 0 3em;
} }
b { b {
font-weight:900; font-weight:600;
} }
.fourteen {font-size:14px;line-height:1.2} .fourteen {font-size:14px;line-height:1.2}

View File

@ -97,7 +97,7 @@ html {
} }
@font-face { @font-face {
font-family: 'Work Sans'; font-family: 'Work Sans';
src: url('WorkSans-RegularItalic.ttf') format('truetype'); src: url('WorkSans-Italic.ttf') format('truetype');
font-weight:400; font-weight:400;
font-style:italic; font-style:italic;
} }

Binary file not shown.

Binary file not shown.

14
sources/post-build.sh Normal file
View File

@ -0,0 +1,14 @@
#!/bin/bash
set -e
VFname="WorkSans-VF"
VFItalicname="WorkSans-Italic-VF"
# Fix VF Metadata
echo "\tFixing VF Family Metadata..."
python tools/gftools-fix-vf-meta.py ${VFname}.ttf ${VFItalicname}.ttf
# Clean up and rename VF
rm ${VFname}.ttf
rm ${VFItalicname}.ttf
mv ${VFname}.ttf.fix ${VFname}.ttf
mv ${VFItalicname}.ttf.fix ${VFItalicname}.ttf

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,322 @@
<?xml version="1.0"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<HTML>
<HEAD>
<script language="JavaScript">
function cbInfo_onclick()
{
display_row(document.FORM1.cbInfo, "class_I");
}
function cbPass_onclick()
{
display_row(document.FORM1.cbPass, "class_P");
}
function cbWarn_onclick()
{
display_row(document.FORM1.cbWarn, "class_W");
}
function cbErr_onclick()
{
display_row(document.FORM1.cbErr, "class_E");
}
function display_table(table_id)
{
table_id.style.display = (table_id.style.display == "none" ) ? "" : "none";
}
function display_row(cb_id, row_classname)
{
if (typeof document.all != "undefined")
{
rowColl = document.all.tags("TR");
for (i=0; i!=rowColl.length; i++) {
if (rowColl(i).className == row_classname)
{
if (cb_id.checked)
{
rowColl(i).style.display = "";
}
else
{
rowColl(i).style.display = "none";
}
}
}
}
else
{
rowColl = document.getElementsByClassName(row_classname);
for (i=0; i!=rowColl.length; i++) {
if (cb_id.checked)
{
rowColl[i].style.display = "";
}
else
{
rowColl[i].style.display = "none";
}
}
}
}
</script>
<STYLE>
body {font-family: Trebuchet MS;
font-size: 10pt;
}
TABLE {font-family: Trebuchet MS;
font-size: 10pt;
}
H2 {font-family: Trebuchet MS;
font-weight:bold;
font-size: 14pt;
color: #000000;
}
TR {background-color: #f0f0f0;
}
TR.caption {background-color: #cccccc}
TR.class_A {background-color: #000000; color: #ffff00}
TR.class_E {background-color: #ff9999}
TR.class_W {background-color: #ffff99}
TR.class_P {background-color: #99ff99}
TR.class_I {background-color: #ccffff}
</STYLE>
</HEAD>
<BODY>
<FORM NAME="FORM1">
<H2>
Font Validator Report -
<xsl:value-of select="FontValidatorReport/FontFile/@FileName"/>
</H2>
<TABLE WIDTH="450"><TR>
<TD BGCOLOR="#ffffff" WIDTH="50">
Show
</TD>
<TD BGCOLOR="#ccffff" WIDTH="100">
<xsl:text disable-output-escaping="yes">&lt;INPUT</xsl:text>
id='cbInfo' type='checkbox' name='cbInfo' onclick='cbInfo_onclick()'
<xsl:text disable-output-escaping="yes">checked&gt;</xsl:text>
Info
</TD>
<TD BGCOLOR="#99ff99" WIDTH="100">
<xsl:text disable-output-escaping="yes">&lt;INPUT</xsl:text>
id='cbPass' type='checkbox' name='cbPass' onclick='cbPass_onclick()'
<xsl:text disable-output-escaping="yes">checked &gt;</xsl:text>
Pass
</TD>
<TD BGCOLOR="#ffff99" WIDTH="100">
<xsl:text disable-output-escaping="yes">&lt;INPUT</xsl:text>
id='cbWarn' type='checkbox' name='cbWarn' onclick='cbWarn_onclick()'
<xsl:text disable-output-escaping="yes">checked &gt;</xsl:text>
Warning
</TD>
<TD BGCOLOR="#ff9999" WIDTH="100">
<xsl:text disable-output-escaping="yes">&lt;INPUT</xsl:text>
id='cbErr' type='checkbox' name='cbErr' onclick='cbErr_onclick()'
<xsl:text disable-output-escaping="yes">checked &gt;</xsl:text>
Error
</TD>
</TR></TABLE>
</FORM>
<TABLE WIDTH="100%">
<TR>
<TD WIDTH="15%"><I>Run DateTime: </I></TD>
<TD><xsl:value-of select="FontValidatorReport/@RunDateTime"/></TD>
</TR>
<TR>
<TD WIDTH="15%"><I>Machine Name: </I></TD>
<TD><xsl:value-of select="FontValidatorReport/@MachineName"/></TD>
</TR>
<TR>
<TD WIDTH="15%"><I>Font file: </I></TD>
<TD><xsl:value-of select="FontValidatorReport/FontFile/@FileNameAndPath"/></TD>
</TR>
</TABLE>
<TABLE WIDTH="100%">
<TR CLASS="caption">
<TD WIDTH="10%"><I>Error code</I></TD>
<TD WIDTH="50%"><I>Message</I></TD>
<TD WIDTH="40%"><I>Details</I></TD>
</TR>
<xsl:apply-templates select="FontValidatorReport/FontFile/Report"/><BR/>
</TABLE>
<xsl:for-each select="FontValidatorReport/FontFile/Font">
<HR></HR><BR/>
<P><B><I>Index: </I><xsl:value-of select="@FontIndex"/>, <xsl:value-of select="FontInfo/@FontName"/>, <xsl:value-of select="FontInfo/@FontVersion"/>, <xsl:value-of select="FontInfo/@FontDate"/></B></P>
<BR/>
<TABLE WIDTH="100%">
<TR CLASS="caption">
<TD WIDTH="25%"><I>Table Tag</I></TD>
<TD WIDTH="25%"><I>Table Offset</I></TD>
<TD WIDTH="25%"><I>Table Length</I></TD>
<TD WIDTH="25%"><I>Table Checksum</I></TD>
</TR>
<xsl:for-each select="TableEntry">
<TR>
<TD>
<xsl:text disable-output-escaping="yes">&lt;A</xsl:text>
HREF='#<xsl:value-of select="@CodeFriendlyTag"/>_<xsl:value-of select="parent::node()/@FontIndex"/>'
<xsl:text disable-output-escaping="yes">&gt;</xsl:text>
<xsl:value-of select="@Tag"/>
<xsl:text disable-output-escaping="yes">&lt;/A&gt;</xsl:text>
</TD>
<TD><xsl:value-of select="@Offset"/></TD>
<TD><xsl:value-of select="@Length"/></TD>
<TD><xsl:value-of select="@Checksum"/></TD>
</TR>
</xsl:for-each>
</TABLE>
<BR/>
<B>General Font Information</B>
<TABLE WIDTH="100%">
<TR CLASS="caption">
<TD WIDTH="10%"><I>Error code</I></TD>
<TD WIDTH="50%"><I>Message</I></TD>
<TD WIDTH="40%"><I>Details</I></TD>
</TR>
<xsl:apply-templates select="Report"/><BR/>
</TABLE><BR/>
<xsl:for-each select="TableEntry">
<BR/>
<xsl:text disable-output-escaping="yes">&lt;INPUT</xsl:text>
id='cb_<xsl:value-of select="@CodeFriendlyTag"/>_<xsl:value-of select="parent::node()/@FontIndex"/>' type='checkbox' name='cb_<xsl:value-of select="@CodeFriendlyTag"/>_<xsl:value-of select="parent::node()/@FontIndex"/>' onclick='display_table(table_<xsl:value-of select="@CodeFriendlyTag"/>_<xsl:value-of select="parent::node()/@FontIndex"/>)'
<xsl:text disable-output-escaping="yes">checked &gt;</xsl:text>
<B>
<xsl:text disable-output-escaping="yes">&lt;A</xsl:text>
NAME='<xsl:value-of select="@CodeFriendlyTag"/>_<xsl:value-of select="parent::node()/@FontIndex"/>'
<xsl:text disable-output-escaping="yes">&gt;</xsl:text>
<xsl:value-of select="@Tag"/>
<xsl:text disable-output-escaping="yes">&lt;/A&gt;</xsl:text>
</B><BR/>
<xsl:text disable-output-escaping="yes">&lt;TABLE</xsl:text>
WIDTH='100%' id='table_<xsl:value-of select="@CodeFriendlyTag"/>_<xsl:value-of select="parent::node()/@FontIndex"/>'
<xsl:text disable-output-escaping="yes">&gt;</xsl:text>
<TR CLASS="caption">
<TD WIDTH="10%"><I>Error code</I></TD>
<TD WIDTH="50%"><I>Message</I></TD>
<TD WIDTH="40%"><I>Details</I></TD>
</TR>
<xsl:apply-templates select="Report"/><BR/>
<xsl:text disable-output-escaping="yes">&lt;/TABLE&gt;</xsl:text>
<BR/>
</xsl:for-each>
<xsl:for-each select="RasterizationTest">
<BR/>
<xsl:text disable-output-escaping="yes">&lt;INPUT</xsl:text>
id='cb_<xsl:value-of select="@CodeFriendlyTag"/>_<xsl:value-of select="parent::node()/@FontIndex"/>' type='checkbox' name='cb_<xsl:value-of select="@CodeFriendlyTag"/>_<xsl:value-of select="parent::node()/@FontIndex"/>' onclick='display_table(table_<xsl:value-of select="@CodeFriendlyTag"/>_<xsl:value-of select="parent::node()/@FontIndex"/>)'
<xsl:text disable-output-escaping="yes">checked &gt;</xsl:text>
<B>Rasterization Test</B><BR/>
<xsl:text disable-output-escaping="yes">&lt;TABLE</xsl:text>
WIDTH='100%' id='table_<xsl:value-of select="@CodeFriendlyTag"/>_<xsl:value-of select="parent::node()/@FontIndex"/>'
<xsl:text disable-output-escaping="yes">&gt;</xsl:text>
<TR CLASS="caption">
<TD WIDTH="10%"><I>Error code</I></TD>
<TD WIDTH="50%"><I>Message</I></TD>
<TD WIDTH="40%"><I>Details</I></TD>
</TR>
<xsl:apply-templates select="Report"/><BR/>
<xsl:text disable-output-escaping="yes">&lt;/TABLE&gt;</xsl:text>
<BR/>
</xsl:for-each>
<xsl:for-each select="RasterizationTest_BW">
<BR/>
<xsl:text disable-output-escaping="yes">&lt;INPUT</xsl:text>
id='cb_<xsl:value-of select="@CodeFriendlyTag"/>_<xsl:value-of select="parent::node()/@FontIndex"/>' type='checkbox' name='cb_<xsl:value-of select="@CodeFriendlyTag"/>_<xsl:value-of select="parent::node()/@FontIndex"/>' onclick='display_table(table_<xsl:value-of select="@CodeFriendlyTag"/>_<xsl:value-of select="parent::node()/@FontIndex"/>)'
<xsl:text disable-output-escaping="yes">checked &gt;</xsl:text>
<B>Rasterization Test, BW</B><BR/>
<xsl:text disable-output-escaping="yes">&lt;TABLE</xsl:text>
WIDTH='100%' id='table_<xsl:value-of select="@CodeFriendlyTag"/>_<xsl:value-of select="parent::node()/@FontIndex"/>'
<xsl:text disable-output-escaping="yes">&gt;</xsl:text>
<TR CLASS="caption">
<TD WIDTH="10%"><I>Error code</I></TD>
<TD WIDTH="50%"><I>Message</I></TD>
<TD WIDTH="40%"><I>Details</I></TD>
</TR>
<xsl:apply-templates select="Report"/><BR/>
<xsl:text disable-output-escaping="yes">&lt;/TABLE&gt;</xsl:text>
<BR/>
</xsl:for-each>
<xsl:for-each select="RasterizationTest_Grayscale">
<BR/>
<xsl:text disable-output-escaping="yes">&lt;INPUT</xsl:text>
id='cb_<xsl:value-of select="@CodeFriendlyTag"/>_<xsl:value-of select="parent::node()/@FontIndex"/>' type='checkbox' name='cb_<xsl:value-of select="@CodeFriendlyTag"/>_<xsl:value-of select="parent::node()/@FontIndex"/>' onclick='display_table(table_<xsl:value-of select="@CodeFriendlyTag"/>_<xsl:value-of select="parent::node()/@FontIndex"/>)'
<xsl:text disable-output-escaping="yes">checked &gt;</xsl:text>
<B>Rasterization Test, Grayscale</B><BR/>
<xsl:text disable-output-escaping="yes">&lt;TABLE</xsl:text>
WIDTH='100%' id='table_<xsl:value-of select="@CodeFriendlyTag"/>_<xsl:value-of select="parent::node()/@FontIndex"/>'
<xsl:text disable-output-escaping="yes">&gt;</xsl:text>
<TR CLASS="caption">
<TD WIDTH="10%"><I>Error code</I></TD>
<TD WIDTH="50%"><I>Message</I></TD>
<TD WIDTH="40%"><I>Details</I></TD>
</TR>
<xsl:apply-templates select="Report"/><BR/>
<xsl:text disable-output-escaping="yes">&lt;/TABLE&gt;</xsl:text>
<BR/>
</xsl:for-each>
<xsl:for-each select="RasterizationTest_ClearType">
<BR/>
<xsl:text disable-output-escaping="yes">&lt;INPUT</xsl:text>
id='cb_<xsl:value-of select="@CodeFriendlyTag"/>_<xsl:value-of select="parent::node()/@FontIndex"/>' type='checkbox' name='cb_<xsl:value-of select="@CodeFriendlyTag"/>_<xsl:value-of select="parent::node()/@FontIndex"/>' onclick='display_table(table_<xsl:value-of select="@CodeFriendlyTag"/>_<xsl:value-of select="parent::node()/@FontIndex"/>)'
<xsl:text disable-output-escaping="yes">checked &gt;</xsl:text>
<B>Rasterization Test, ClearType</B><BR/>
<xsl:text disable-output-escaping="yes">&lt;TABLE</xsl:text>
WIDTH='100%' id='table_<xsl:value-of select="@CodeFriendlyTag"/>_<xsl:value-of select="parent::node()/@FontIndex"/>'
<xsl:text disable-output-escaping="yes">&gt;</xsl:text>
<TR CLASS="caption">
<TD WIDTH="10%"><I>Error code</I></TD>
<TD WIDTH="50%"><I>Message</I></TD>
<TD WIDTH="40%"><I>Details</I></TD>
</TR>
<xsl:apply-templates select="Report"/><BR/>
<xsl:text disable-output-escaping="yes">&lt;/TABLE&gt;</xsl:text>
<BR/>
</xsl:for-each>
</xsl:for-each>
<BR/>
<P>
Note: The Font Validator's helpfile contains detailed information about each error message.
The latest OpenType specification is available at the
<A TARGET="TOP" HREF="http://www.microsoft.com/typography">Microsoft Typography website</A>.
</P>
</BODY>
</HTML>
</xsl:template>
<xsl:template match = "Report">
<xsl:text disable-output-escaping="yes">&lt;TR</xsl:text>
class='class_<xsl:value-of select="@ErrorType"/>'
<xsl:text disable-output-escaping="yes">&gt;</xsl:text>
<TD VALIGN="TOP"> <xsl:value-of select="@ErrorCode"/> </TD>
<TD VALIGN="TOP"> <xsl:value-of select="@Message"/> </TD>
<TD VALIGN="TOP"> <xsl:value-of select="@Details"/> </TD>
<xsl:text disable-output-escaping="yes">&lt;/TR&gt;</xsl:text>
</xsl:template>
</xsl:stylesheet>

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,322 @@
<?xml version="1.0"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<HTML>
<HEAD>
<script language="JavaScript">
function cbInfo_onclick()
{
display_row(document.FORM1.cbInfo, "class_I");
}
function cbPass_onclick()
{
display_row(document.FORM1.cbPass, "class_P");
}
function cbWarn_onclick()
{
display_row(document.FORM1.cbWarn, "class_W");
}
function cbErr_onclick()
{
display_row(document.FORM1.cbErr, "class_E");
}
function display_table(table_id)
{
table_id.style.display = (table_id.style.display == "none" ) ? "" : "none";
}
function display_row(cb_id, row_classname)
{
if (typeof document.all != "undefined")
{
rowColl = document.all.tags("TR");
for (i=0; i!=rowColl.length; i++) {
if (rowColl(i).className == row_classname)
{
if (cb_id.checked)
{
rowColl(i).style.display = "";
}
else
{
rowColl(i).style.display = "none";
}
}
}
}
else
{
rowColl = document.getElementsByClassName(row_classname);
for (i=0; i!=rowColl.length; i++) {
if (cb_id.checked)
{
rowColl[i].style.display = "";
}
else
{
rowColl[i].style.display = "none";
}
}
}
}
</script>
<STYLE>
body {font-family: Trebuchet MS;
font-size: 10pt;
}
TABLE {font-family: Trebuchet MS;
font-size: 10pt;
}
H2 {font-family: Trebuchet MS;
font-weight:bold;
font-size: 14pt;
color: #000000;
}
TR {background-color: #f0f0f0;
}
TR.caption {background-color: #cccccc}
TR.class_A {background-color: #000000; color: #ffff00}
TR.class_E {background-color: #ff9999}
TR.class_W {background-color: #ffff99}
TR.class_P {background-color: #99ff99}
TR.class_I {background-color: #ccffff}
</STYLE>
</HEAD>
<BODY>
<FORM NAME="FORM1">
<H2>
Font Validator Report -
<xsl:value-of select="FontValidatorReport/FontFile/@FileName"/>
</H2>
<TABLE WIDTH="450"><TR>
<TD BGCOLOR="#ffffff" WIDTH="50">
Show
</TD>
<TD BGCOLOR="#ccffff" WIDTH="100">
<xsl:text disable-output-escaping="yes">&lt;INPUT</xsl:text>
id='cbInfo' type='checkbox' name='cbInfo' onclick='cbInfo_onclick()'
<xsl:text disable-output-escaping="yes">checked&gt;</xsl:text>
Info
</TD>
<TD BGCOLOR="#99ff99" WIDTH="100">
<xsl:text disable-output-escaping="yes">&lt;INPUT</xsl:text>
id='cbPass' type='checkbox' name='cbPass' onclick='cbPass_onclick()'
<xsl:text disable-output-escaping="yes">checked &gt;</xsl:text>
Pass
</TD>
<TD BGCOLOR="#ffff99" WIDTH="100">
<xsl:text disable-output-escaping="yes">&lt;INPUT</xsl:text>
id='cbWarn' type='checkbox' name='cbWarn' onclick='cbWarn_onclick()'
<xsl:text disable-output-escaping="yes">checked &gt;</xsl:text>
Warning
</TD>
<TD BGCOLOR="#ff9999" WIDTH="100">
<xsl:text disable-output-escaping="yes">&lt;INPUT</xsl:text>
id='cbErr' type='checkbox' name='cbErr' onclick='cbErr_onclick()'
<xsl:text disable-output-escaping="yes">checked &gt;</xsl:text>
Error
</TD>
</TR></TABLE>
</FORM>
<TABLE WIDTH="100%">
<TR>
<TD WIDTH="15%"><I>Run DateTime: </I></TD>
<TD><xsl:value-of select="FontValidatorReport/@RunDateTime"/></TD>
</TR>
<TR>
<TD WIDTH="15%"><I>Machine Name: </I></TD>
<TD><xsl:value-of select="FontValidatorReport/@MachineName"/></TD>
</TR>
<TR>
<TD WIDTH="15%"><I>Font file: </I></TD>
<TD><xsl:value-of select="FontValidatorReport/FontFile/@FileNameAndPath"/></TD>
</TR>
</TABLE>
<TABLE WIDTH="100%">
<TR CLASS="caption">
<TD WIDTH="10%"><I>Error code</I></TD>
<TD WIDTH="50%"><I>Message</I></TD>
<TD WIDTH="40%"><I>Details</I></TD>
</TR>
<xsl:apply-templates select="FontValidatorReport/FontFile/Report"/><BR/>
</TABLE>
<xsl:for-each select="FontValidatorReport/FontFile/Font">
<HR></HR><BR/>
<P><B><I>Index: </I><xsl:value-of select="@FontIndex"/>, <xsl:value-of select="FontInfo/@FontName"/>, <xsl:value-of select="FontInfo/@FontVersion"/>, <xsl:value-of select="FontInfo/@FontDate"/></B></P>
<BR/>
<TABLE WIDTH="100%">
<TR CLASS="caption">
<TD WIDTH="25%"><I>Table Tag</I></TD>
<TD WIDTH="25%"><I>Table Offset</I></TD>
<TD WIDTH="25%"><I>Table Length</I></TD>
<TD WIDTH="25%"><I>Table Checksum</I></TD>
</TR>
<xsl:for-each select="TableEntry">
<TR>
<TD>
<xsl:text disable-output-escaping="yes">&lt;A</xsl:text>
HREF='#<xsl:value-of select="@CodeFriendlyTag"/>_<xsl:value-of select="parent::node()/@FontIndex"/>'
<xsl:text disable-output-escaping="yes">&gt;</xsl:text>
<xsl:value-of select="@Tag"/>
<xsl:text disable-output-escaping="yes">&lt;/A&gt;</xsl:text>
</TD>
<TD><xsl:value-of select="@Offset"/></TD>
<TD><xsl:value-of select="@Length"/></TD>
<TD><xsl:value-of select="@Checksum"/></TD>
</TR>
</xsl:for-each>
</TABLE>
<BR/>
<B>General Font Information</B>
<TABLE WIDTH="100%">
<TR CLASS="caption">
<TD WIDTH="10%"><I>Error code</I></TD>
<TD WIDTH="50%"><I>Message</I></TD>
<TD WIDTH="40%"><I>Details</I></TD>
</TR>
<xsl:apply-templates select="Report"/><BR/>
</TABLE><BR/>
<xsl:for-each select="TableEntry">
<BR/>
<xsl:text disable-output-escaping="yes">&lt;INPUT</xsl:text>
id='cb_<xsl:value-of select="@CodeFriendlyTag"/>_<xsl:value-of select="parent::node()/@FontIndex"/>' type='checkbox' name='cb_<xsl:value-of select="@CodeFriendlyTag"/>_<xsl:value-of select="parent::node()/@FontIndex"/>' onclick='display_table(table_<xsl:value-of select="@CodeFriendlyTag"/>_<xsl:value-of select="parent::node()/@FontIndex"/>)'
<xsl:text disable-output-escaping="yes">checked &gt;</xsl:text>
<B>
<xsl:text disable-output-escaping="yes">&lt;A</xsl:text>
NAME='<xsl:value-of select="@CodeFriendlyTag"/>_<xsl:value-of select="parent::node()/@FontIndex"/>'
<xsl:text disable-output-escaping="yes">&gt;</xsl:text>
<xsl:value-of select="@Tag"/>
<xsl:text disable-output-escaping="yes">&lt;/A&gt;</xsl:text>
</B><BR/>
<xsl:text disable-output-escaping="yes">&lt;TABLE</xsl:text>
WIDTH='100%' id='table_<xsl:value-of select="@CodeFriendlyTag"/>_<xsl:value-of select="parent::node()/@FontIndex"/>'
<xsl:text disable-output-escaping="yes">&gt;</xsl:text>
<TR CLASS="caption">
<TD WIDTH="10%"><I>Error code</I></TD>
<TD WIDTH="50%"><I>Message</I></TD>
<TD WIDTH="40%"><I>Details</I></TD>
</TR>
<xsl:apply-templates select="Report"/><BR/>
<xsl:text disable-output-escaping="yes">&lt;/TABLE&gt;</xsl:text>
<BR/>
</xsl:for-each>
<xsl:for-each select="RasterizationTest">
<BR/>
<xsl:text disable-output-escaping="yes">&lt;INPUT</xsl:text>
id='cb_<xsl:value-of select="@CodeFriendlyTag"/>_<xsl:value-of select="parent::node()/@FontIndex"/>' type='checkbox' name='cb_<xsl:value-of select="@CodeFriendlyTag"/>_<xsl:value-of select="parent::node()/@FontIndex"/>' onclick='display_table(table_<xsl:value-of select="@CodeFriendlyTag"/>_<xsl:value-of select="parent::node()/@FontIndex"/>)'
<xsl:text disable-output-escaping="yes">checked &gt;</xsl:text>
<B>Rasterization Test</B><BR/>
<xsl:text disable-output-escaping="yes">&lt;TABLE</xsl:text>
WIDTH='100%' id='table_<xsl:value-of select="@CodeFriendlyTag"/>_<xsl:value-of select="parent::node()/@FontIndex"/>'
<xsl:text disable-output-escaping="yes">&gt;</xsl:text>
<TR CLASS="caption">
<TD WIDTH="10%"><I>Error code</I></TD>
<TD WIDTH="50%"><I>Message</I></TD>
<TD WIDTH="40%"><I>Details</I></TD>
</TR>
<xsl:apply-templates select="Report"/><BR/>
<xsl:text disable-output-escaping="yes">&lt;/TABLE&gt;</xsl:text>
<BR/>
</xsl:for-each>
<xsl:for-each select="RasterizationTest_BW">
<BR/>
<xsl:text disable-output-escaping="yes">&lt;INPUT</xsl:text>
id='cb_<xsl:value-of select="@CodeFriendlyTag"/>_<xsl:value-of select="parent::node()/@FontIndex"/>' type='checkbox' name='cb_<xsl:value-of select="@CodeFriendlyTag"/>_<xsl:value-of select="parent::node()/@FontIndex"/>' onclick='display_table(table_<xsl:value-of select="@CodeFriendlyTag"/>_<xsl:value-of select="parent::node()/@FontIndex"/>)'
<xsl:text disable-output-escaping="yes">checked &gt;</xsl:text>
<B>Rasterization Test, BW</B><BR/>
<xsl:text disable-output-escaping="yes">&lt;TABLE</xsl:text>
WIDTH='100%' id='table_<xsl:value-of select="@CodeFriendlyTag"/>_<xsl:value-of select="parent::node()/@FontIndex"/>'
<xsl:text disable-output-escaping="yes">&gt;</xsl:text>
<TR CLASS="caption">
<TD WIDTH="10%"><I>Error code</I></TD>
<TD WIDTH="50%"><I>Message</I></TD>
<TD WIDTH="40%"><I>Details</I></TD>
</TR>
<xsl:apply-templates select="Report"/><BR/>
<xsl:text disable-output-escaping="yes">&lt;/TABLE&gt;</xsl:text>
<BR/>
</xsl:for-each>
<xsl:for-each select="RasterizationTest_Grayscale">
<BR/>
<xsl:text disable-output-escaping="yes">&lt;INPUT</xsl:text>
id='cb_<xsl:value-of select="@CodeFriendlyTag"/>_<xsl:value-of select="parent::node()/@FontIndex"/>' type='checkbox' name='cb_<xsl:value-of select="@CodeFriendlyTag"/>_<xsl:value-of select="parent::node()/@FontIndex"/>' onclick='display_table(table_<xsl:value-of select="@CodeFriendlyTag"/>_<xsl:value-of select="parent::node()/@FontIndex"/>)'
<xsl:text disable-output-escaping="yes">checked &gt;</xsl:text>
<B>Rasterization Test, Grayscale</B><BR/>
<xsl:text disable-output-escaping="yes">&lt;TABLE</xsl:text>
WIDTH='100%' id='table_<xsl:value-of select="@CodeFriendlyTag"/>_<xsl:value-of select="parent::node()/@FontIndex"/>'
<xsl:text disable-output-escaping="yes">&gt;</xsl:text>
<TR CLASS="caption">
<TD WIDTH="10%"><I>Error code</I></TD>
<TD WIDTH="50%"><I>Message</I></TD>
<TD WIDTH="40%"><I>Details</I></TD>
</TR>
<xsl:apply-templates select="Report"/><BR/>
<xsl:text disable-output-escaping="yes">&lt;/TABLE&gt;</xsl:text>
<BR/>
</xsl:for-each>
<xsl:for-each select="RasterizationTest_ClearType">
<BR/>
<xsl:text disable-output-escaping="yes">&lt;INPUT</xsl:text>
id='cb_<xsl:value-of select="@CodeFriendlyTag"/>_<xsl:value-of select="parent::node()/@FontIndex"/>' type='checkbox' name='cb_<xsl:value-of select="@CodeFriendlyTag"/>_<xsl:value-of select="parent::node()/@FontIndex"/>' onclick='display_table(table_<xsl:value-of select="@CodeFriendlyTag"/>_<xsl:value-of select="parent::node()/@FontIndex"/>)'
<xsl:text disable-output-escaping="yes">checked &gt;</xsl:text>
<B>Rasterization Test, ClearType</B><BR/>
<xsl:text disable-output-escaping="yes">&lt;TABLE</xsl:text>
WIDTH='100%' id='table_<xsl:value-of select="@CodeFriendlyTag"/>_<xsl:value-of select="parent::node()/@FontIndex"/>'
<xsl:text disable-output-escaping="yes">&gt;</xsl:text>
<TR CLASS="caption">
<TD WIDTH="10%"><I>Error code</I></TD>
<TD WIDTH="50%"><I>Message</I></TD>
<TD WIDTH="40%"><I>Details</I></TD>
</TR>
<xsl:apply-templates select="Report"/><BR/>
<xsl:text disable-output-escaping="yes">&lt;/TABLE&gt;</xsl:text>
<BR/>
</xsl:for-each>
</xsl:for-each>
<BR/>
<P>
Note: The Font Validator's helpfile contains detailed information about each error message.
The latest OpenType specification is available at the
<A TARGET="TOP" HREF="http://www.microsoft.com/typography">Microsoft Typography website</A>.
</P>
</BODY>
</HTML>
</xsl:template>
<xsl:template match = "Report">
<xsl:text disable-output-escaping="yes">&lt;TR</xsl:text>
class='class_<xsl:value-of select="@ErrorType"/>'
<xsl:text disable-output-escaping="yes">&gt;</xsl:text>
<TD VALIGN="TOP"> <xsl:value-of select="@ErrorCode"/> </TD>
<TD VALIGN="TOP"> <xsl:value-of select="@Message"/> </TD>
<TD VALIGN="TOP"> <xsl:value-of select="@Details"/> </TD>
<xsl:text disable-output-escaping="yes">&lt;/TR&gt;</xsl:text>
</xsl:template>
</xsl:stylesheet>

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.9 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 152 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 520 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.3 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.4 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.3 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.8 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.2 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 422 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 503 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 392 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 43 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 120 KiB

View File

@ -1,17 +0,0 @@
apple.001
cedi.201_230
cent.201_230
colonsign.201_230
dollar.201_230
guarani.201_230
dollar.tf.201_230
cent.tf.201_230
naira.169_230
peseta.169_230
won.169_230
peso.136_230
curvedStemParagraphSignOrnament.79_230
paragraph.79_230
Adieresis.titl.136_230
Odieresis.titl.106_230
Udieresis.titl.136_230

View File

@ -1,14 +0,0 @@
apple.001
cedi.201_230
cent.201_230
colonsign.201_230
dollar.201_230
guarani.201_230
dollar.tf.201_230
cent.tf.201_230
naira.169_230
peseta.169_230
won.169_230
peso.136_230
curvedStemParagraphSignOrnament.79_230
paragraph.79_230

Binary file not shown.

Binary file not shown.

View File

@ -11,7 +11,7 @@ file = sys.argv[1]
font = GSFont(file) font = GSFont(file)
print "\tPreparing %s" % file print "\tPreparing %s" % file
# Glyphs to re-enable export, in the Glyphs App export these are not active but get swapped with a custom parameter # Glyphs to re-enable export, in the Glyphs App static fonts export these are not active but get swapped with a custom parameter, for the VFs though it needs to be exported
italicBracketGlyphs = [ italicBracketGlyphs = [
"cedi.rvrn", "cedi.rvrn",
"colonsign.rvrn", "colonsign.rvrn",

View File

@ -24,10 +24,6 @@ if style == "Upright":
"uni20A9": "uni20A9.rvrn", # won "uni20A9": "uni20A9.rvrn", # won
"uni2761": "uni2761.rvrn", # curvedStemParagraphSignOrnament "uni2761": "uni2761.rvrn", # curvedStemParagraphSignOrnament
"paragraph": "paragraph.rvrn"}), # won "paragraph": "paragraph.rvrn"}), # won
# ([{"wght": (0.6, 1)}], {"Odieresis.titl": "Odieresis.titl.rvrn",
# "Odieresis": "Odieresis.rvrn",
# "Udieresis": "Udieresis.rvrn",
# "Udieresis.titl": "Udieresis.titl.rvrn"}),
([{"wght": (0.38, 1)}], {"uni20A6": "uni20A6.rvrn", # naira, ([{"wght": (0.38, 1)}], {"uni20A6": "uni20A6.rvrn", # naira,
"colonmonetary": "colonmonetary.rvrn", # colon "colonmonetary": "colonmonetary.rvrn", # colon
"Adieresis": "Adieresis.rvrn", "Adieresis": "Adieresis.rvrn",
@ -42,7 +38,6 @@ if style == "Upright":
elif style == "Italic": elif style == "Italic":
condSubst = [ condSubst = [
# A list of (Region, Substitution) tuples. # A list of (Region, Substitution) tuples.
([{"wght": (-.4688, .1800)}], {"uniF8FF": "uniF8FF.rvrn"}), # apple
([{"wght": (.8134, 1)}], {"uni20B5": "uni20B5.rvrn", # cedi ([{"wght": (.8134, 1)}], {"uni20B5": "uni20B5.rvrn", # cedi
"cent": "cent.rvrn", "cent": "cent.rvrn",
"dollar": "dollar.rvrn", "dollar": "dollar.rvrn",