├── .init.stamp ├── documentation ├── image1.png ├── screenshots │ └── 2021-08-22-040649_1920x1080_scrot.png └── image1.py ├── fonts ├── otf │ ├── Rubik-Bold.otf │ ├── Rubik-Black.otf │ ├── Rubik-Italic.otf │ ├── Rubik-Light.otf │ ├── Rubik-Medium.otf │ ├── Rubik-Regular.otf │ ├── Rubik-ExtraBold.otf │ ├── Rubik-SemiBold.otf │ ├── Rubik-BlackItalic.otf │ ├── Rubik-BoldItalic.otf │ ├── Rubik-LightItalic.otf │ ├── Rubik-MediumItalic.otf │ ├── Rubik-SemiBoldItalic.otf │ └── Rubik-ExtraBoldItalic.otf ├── ttf │ ├── Rubik-Bold.ttf │ ├── Rubik-Black.ttf │ ├── Rubik-Italic.ttf │ ├── Rubik-Light.ttf │ ├── Rubik-Medium.ttf │ ├── Rubik-Regular.ttf │ ├── Rubik-ExtraBold.ttf │ ├── Rubik-SemiBold.ttf │ ├── Rubik-BlackItalic.ttf │ ├── Rubik-BoldItalic.ttf │ ├── Rubik-LightItalic.ttf │ ├── Rubik-MediumItalic.ttf │ ├── Rubik-SemiBoldItalic.ttf │ └── Rubik-ExtraBoldItalic.ttf ├── variable │ ├── Rubik[wght].ttf │ └── Rubik-Italic[wght].ttf └── webfonts │ ├── Rubik-Black.woff2 │ ├── Rubik-Bold.woff2 │ ├── Rubik-Light.woff2 │ ├── Rubik-Italic.woff2 │ ├── Rubik-Medium.woff2 │ ├── Rubik-Regular.woff2 │ ├── Rubik-BoldItalic.woff2 │ ├── Rubik-ExtraBold.woff2 │ ├── Rubik-SemiBold.woff2 │ ├── Rubik-BlackItalic.woff2 │ ├── Rubik-LightItalic.woff2 │ ├── Rubik-MediumItalic.woff2 │ ├── Rubik-ExtraBoldItalic.woff2 │ └── Rubik-SemiBoldItalic.woff2 ├── sources ├── config.yaml └── Rena.ufo │ ├── glyphs │ ├── at.glif │ ├── eight.glif │ ├── five.glif │ ├── four.glif │ ├── nine.glif │ ├── one.glif │ ├── seven.glif │ ├── six.glif │ ├── three.glif │ ├── two.glif │ ├── zero.glif │ ├── ampersand.glif │ ├── slash.glif │ ├── space.glif │ ├── I_.glif │ ├── K_.glif │ ├── M_.glif │ ├── N_.glif │ ├── T_.glif │ ├── W_.glif │ ├── X_.glif │ ├── Y_.glif │ ├── l.glif │ ├── w.glif │ ├── x.glif │ ├── y.glif │ ├── J_.glif │ ├── A_.glif │ ├── L_.glif │ ├── v.glif │ ├── z.glif │ ├── U_.glif │ ├── Z_.glif │ ├── V_.glif │ ├── i.glif │ ├── colon.glif │ ├── F_.glif │ ├── r.glif │ ├── D_.glif │ ├── o.glif │ ├── O_.glif │ ├── G_.glif │ ├── Q_.glif │ ├── S_.glif │ ├── C_.glif │ ├── H_.glif │ ├── E_.glif │ ├── u.glif │ ├── j.glif │ ├── k.glif │ ├── h.glif │ ├── n.glif │ ├── P_.glif │ ├── c.glif │ ├── q.glif │ ├── p.glif │ ├── t.glif │ ├── f.glif │ ├── d.glif │ ├── e.glif │ ├── b.glif │ ├── R_.glif │ ├── s.glif │ ├── B_.glif │ ├── g.glif │ ├── m.glif │ ├── a.glif │ └── contents.plist │ ├── layercontents.plist │ ├── metainfo.plist │ └── fontinfo.plist ├── .templaterc.json ├── requirements.txt ├── .gitignore ├── AUTHORS.txt ├── CONTRIBUTORS.txt ├── scripts ├── read-config.py └── first-run.py ├── Makefile ├── .github └── workflows │ └── build.yaml ├── OFL.txt └── README.md /.init.stamp: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /documentation/image1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eliheuer/rena/HEAD/documentation/image1.png -------------------------------------------------------------------------------- /fonts/otf/Rubik-Bold.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eliheuer/rena/HEAD/fonts/otf/Rubik-Bold.otf -------------------------------------------------------------------------------- /fonts/ttf/Rubik-Bold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eliheuer/rena/HEAD/fonts/ttf/Rubik-Bold.ttf -------------------------------------------------------------------------------- /sources/config.yaml: -------------------------------------------------------------------------------- 1 | sources: 2 | - Rena.ufo 3 | familyName: Rena 4 | buildVariable: False 5 | -------------------------------------------------------------------------------- /fonts/otf/Rubik-Black.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eliheuer/rena/HEAD/fonts/otf/Rubik-Black.otf -------------------------------------------------------------------------------- /fonts/otf/Rubik-Italic.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eliheuer/rena/HEAD/fonts/otf/Rubik-Italic.otf -------------------------------------------------------------------------------- /fonts/otf/Rubik-Light.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eliheuer/rena/HEAD/fonts/otf/Rubik-Light.otf -------------------------------------------------------------------------------- /fonts/otf/Rubik-Medium.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eliheuer/rena/HEAD/fonts/otf/Rubik-Medium.otf -------------------------------------------------------------------------------- /fonts/otf/Rubik-Regular.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eliheuer/rena/HEAD/fonts/otf/Rubik-Regular.otf -------------------------------------------------------------------------------- /fonts/ttf/Rubik-Black.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eliheuer/rena/HEAD/fonts/ttf/Rubik-Black.ttf -------------------------------------------------------------------------------- /fonts/ttf/Rubik-Italic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eliheuer/rena/HEAD/fonts/ttf/Rubik-Italic.ttf -------------------------------------------------------------------------------- /fonts/ttf/Rubik-Light.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eliheuer/rena/HEAD/fonts/ttf/Rubik-Light.ttf -------------------------------------------------------------------------------- /fonts/ttf/Rubik-Medium.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eliheuer/rena/HEAD/fonts/ttf/Rubik-Medium.ttf -------------------------------------------------------------------------------- /fonts/ttf/Rubik-Regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eliheuer/rena/HEAD/fonts/ttf/Rubik-Regular.ttf -------------------------------------------------------------------------------- /.templaterc.json: -------------------------------------------------------------------------------- 1 | { 2 | "files": [".github/**/*", "Makefile", "scripts/**/*", "requirements.txt"] 3 | } 4 | -------------------------------------------------------------------------------- /fonts/otf/Rubik-ExtraBold.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eliheuer/rena/HEAD/fonts/otf/Rubik-ExtraBold.otf -------------------------------------------------------------------------------- /fonts/otf/Rubik-SemiBold.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eliheuer/rena/HEAD/fonts/otf/Rubik-SemiBold.otf -------------------------------------------------------------------------------- /fonts/ttf/Rubik-ExtraBold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eliheuer/rena/HEAD/fonts/ttf/Rubik-ExtraBold.ttf -------------------------------------------------------------------------------- /fonts/ttf/Rubik-SemiBold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eliheuer/rena/HEAD/fonts/ttf/Rubik-SemiBold.ttf -------------------------------------------------------------------------------- /fonts/otf/Rubik-BlackItalic.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eliheuer/rena/HEAD/fonts/otf/Rubik-BlackItalic.otf -------------------------------------------------------------------------------- /fonts/otf/Rubik-BoldItalic.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eliheuer/rena/HEAD/fonts/otf/Rubik-BoldItalic.otf -------------------------------------------------------------------------------- /fonts/otf/Rubik-LightItalic.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eliheuer/rena/HEAD/fonts/otf/Rubik-LightItalic.otf -------------------------------------------------------------------------------- /fonts/otf/Rubik-MediumItalic.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eliheuer/rena/HEAD/fonts/otf/Rubik-MediumItalic.otf -------------------------------------------------------------------------------- /fonts/ttf/Rubik-BlackItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eliheuer/rena/HEAD/fonts/ttf/Rubik-BlackItalic.ttf -------------------------------------------------------------------------------- /fonts/ttf/Rubik-BoldItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eliheuer/rena/HEAD/fonts/ttf/Rubik-BoldItalic.ttf -------------------------------------------------------------------------------- /fonts/ttf/Rubik-LightItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eliheuer/rena/HEAD/fonts/ttf/Rubik-LightItalic.ttf -------------------------------------------------------------------------------- /fonts/ttf/Rubik-MediumItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eliheuer/rena/HEAD/fonts/ttf/Rubik-MediumItalic.ttf -------------------------------------------------------------------------------- /fonts/variable/Rubik[wght].ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eliheuer/rena/HEAD/fonts/variable/Rubik[wght].ttf -------------------------------------------------------------------------------- /fonts/webfonts/Rubik-Black.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eliheuer/rena/HEAD/fonts/webfonts/Rubik-Black.woff2 -------------------------------------------------------------------------------- /fonts/webfonts/Rubik-Bold.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eliheuer/rena/HEAD/fonts/webfonts/Rubik-Bold.woff2 -------------------------------------------------------------------------------- /fonts/webfonts/Rubik-Light.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eliheuer/rena/HEAD/fonts/webfonts/Rubik-Light.woff2 -------------------------------------------------------------------------------- /fonts/otf/Rubik-SemiBoldItalic.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eliheuer/rena/HEAD/fonts/otf/Rubik-SemiBoldItalic.otf -------------------------------------------------------------------------------- /fonts/ttf/Rubik-SemiBoldItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eliheuer/rena/HEAD/fonts/ttf/Rubik-SemiBoldItalic.ttf -------------------------------------------------------------------------------- /fonts/webfonts/Rubik-Italic.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eliheuer/rena/HEAD/fonts/webfonts/Rubik-Italic.woff2 -------------------------------------------------------------------------------- /fonts/webfonts/Rubik-Medium.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eliheuer/rena/HEAD/fonts/webfonts/Rubik-Medium.woff2 -------------------------------------------------------------------------------- /fonts/webfonts/Rubik-Regular.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eliheuer/rena/HEAD/fonts/webfonts/Rubik-Regular.woff2 -------------------------------------------------------------------------------- /requirements.txt: -------------------------------------------------------------------------------- 1 | fontmake>=2.4 2 | fontbakery>=0.8 3 | gftools[qa]>=0.7 4 | drawbot-skia>=0.4.8 5 | sh>=1.14.2 6 | -------------------------------------------------------------------------------- /fonts/otf/Rubik-ExtraBoldItalic.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eliheuer/rena/HEAD/fonts/otf/Rubik-ExtraBoldItalic.otf -------------------------------------------------------------------------------- /fonts/ttf/Rubik-ExtraBoldItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eliheuer/rena/HEAD/fonts/ttf/Rubik-ExtraBoldItalic.ttf -------------------------------------------------------------------------------- /fonts/variable/Rubik-Italic[wght].ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eliheuer/rena/HEAD/fonts/variable/Rubik-Italic[wght].ttf -------------------------------------------------------------------------------- /fonts/webfonts/Rubik-BoldItalic.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eliheuer/rena/HEAD/fonts/webfonts/Rubik-BoldItalic.woff2 -------------------------------------------------------------------------------- /fonts/webfonts/Rubik-ExtraBold.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eliheuer/rena/HEAD/fonts/webfonts/Rubik-ExtraBold.woff2 -------------------------------------------------------------------------------- /fonts/webfonts/Rubik-SemiBold.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eliheuer/rena/HEAD/fonts/webfonts/Rubik-SemiBold.woff2 -------------------------------------------------------------------------------- /fonts/webfonts/Rubik-BlackItalic.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eliheuer/rena/HEAD/fonts/webfonts/Rubik-BlackItalic.woff2 -------------------------------------------------------------------------------- /fonts/webfonts/Rubik-LightItalic.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eliheuer/rena/HEAD/fonts/webfonts/Rubik-LightItalic.woff2 -------------------------------------------------------------------------------- /fonts/webfonts/Rubik-MediumItalic.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eliheuer/rena/HEAD/fonts/webfonts/Rubik-MediumItalic.woff2 -------------------------------------------------------------------------------- /fonts/webfonts/Rubik-ExtraBoldItalic.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eliheuer/rena/HEAD/fonts/webfonts/Rubik-ExtraBoldItalic.woff2 -------------------------------------------------------------------------------- /fonts/webfonts/Rubik-SemiBoldItalic.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eliheuer/rena/HEAD/fonts/webfonts/Rubik-SemiBoldItalic.woff2 -------------------------------------------------------------------------------- /sources/Rena.ufo/glyphs/at.glif: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /sources/Rena.ufo/glyphs/eight.glif: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /sources/Rena.ufo/glyphs/five.glif: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /sources/Rena.ufo/glyphs/four.glif: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /sources/Rena.ufo/glyphs/nine.glif: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /sources/Rena.ufo/glyphs/one.glif: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /sources/Rena.ufo/glyphs/seven.glif: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /sources/Rena.ufo/glyphs/six.glif: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /sources/Rena.ufo/glyphs/three.glif: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /sources/Rena.ufo/glyphs/two.glif: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /sources/Rena.ufo/glyphs/zero.glif: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /sources/Rena.ufo/glyphs/ampersand.glif: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /documentation/screenshots/2021-08-22-040649_1920x1080_scrot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eliheuer/rena/HEAD/documentation/screenshots/2021-08-22-040649_1920x1080_scrot.png -------------------------------------------------------------------------------- /sources/Rena.ufo/glyphs/slash.glif: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /sources/Rena.ufo/glyphs/space.glif: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | *~ 2 | venv 3 | build.stamp 4 | proof 5 | sources/Rena_backups 6 | 7 | # OS generated files # 8 | ###################### 9 | .DS_Store 10 | .DS_Store? 11 | ._* 12 | .Spotlight-V100 13 | .Trashes 14 | ehthumbs.db 15 | Thumbs.db 16 | -------------------------------------------------------------------------------- /AUTHORS.txt: -------------------------------------------------------------------------------- 1 | # This is the official list of project authors for copyright purposes. 2 | # This file is distinct from the CONTRIBUTORS.txt file. 3 | # See the latter for an explanation. 4 | # 5 | # Names should be added to this file as: 6 | # Name or Organization 7 | 8 | -------------------------------------------------------------------------------- /sources/Rena.ufo/layercontents.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | public.default 7 | glyphs 8 | 9 | 10 | -------------------------------------------------------------------------------- /sources/Rena.ufo/metainfo.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | creator 6 | org.linebender.norad 7 | formatVersion 8 | 3 9 | 10 | -------------------------------------------------------------------------------- /CONTRIBUTORS.txt: -------------------------------------------------------------------------------- 1 | # This is the list of people who have contributed to this project, 2 | # and includes those not listed in AUTHORS.txt because they are not 3 | # copyright authors. For example, company employees may be listed 4 | # here because their company holds the copyright and is listed there. 5 | # 6 | # When adding J Random Contributor's name to this file, either J's 7 | # name or J's organization's name should be added to AUTHORS.txt 8 | # 9 | # Names should be added to this file as: 10 | # Name 11 | -------------------------------------------------------------------------------- /sources/Rena.ufo/glyphs/I_.glif: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /sources/Rena.ufo/glyphs/K_.glif: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /sources/Rena.ufo/glyphs/M_.glif: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /sources/Rena.ufo/glyphs/N_.glif: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /sources/Rena.ufo/glyphs/T_.glif: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /sources/Rena.ufo/glyphs/W_.glif: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /sources/Rena.ufo/glyphs/X_.glif: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /sources/Rena.ufo/glyphs/Y_.glif: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /sources/Rena.ufo/glyphs/l.glif: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /sources/Rena.ufo/glyphs/w.glif: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /sources/Rena.ufo/glyphs/x.glif: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /sources/Rena.ufo/glyphs/y.glif: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /sources/Rena.ufo/glyphs/J_.glif: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /sources/Rena.ufo/fontinfo.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | ascender 6 | 768 7 | capHeight 8 | 704 9 | descender 10 | -256 11 | familyName 12 | Rena 13 | styleName 14 | Regular 15 | unitsPerEm 16 | 1000 17 | xHeight 18 | 512 19 | 20 | -------------------------------------------------------------------------------- /sources/Rena.ufo/glyphs/A_.glif: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /sources/Rena.ufo/glyphs/L_.glif: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /sources/Rena.ufo/glyphs/v.glif: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | -------------------------------------------------------------------------------- /sources/Rena.ufo/glyphs/z.glif: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | -------------------------------------------------------------------------------- /sources/Rena.ufo/glyphs/U_.glif: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | -------------------------------------------------------------------------------- /sources/Rena.ufo/glyphs/Z_.glif: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | -------------------------------------------------------------------------------- /sources/Rena.ufo/glyphs/V_.glif: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | -------------------------------------------------------------------------------- /sources/Rena.ufo/glyphs/i.glif: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | -------------------------------------------------------------------------------- /sources/Rena.ufo/glyphs/colon.glif: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | -------------------------------------------------------------------------------- /sources/Rena.ufo/glyphs/F_.glif: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | -------------------------------------------------------------------------------- /sources/Rena.ufo/glyphs/r.glif: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | -------------------------------------------------------------------------------- /sources/Rena.ufo/glyphs/D_.glif: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | -------------------------------------------------------------------------------- /sources/Rena.ufo/glyphs/o.glif: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | -------------------------------------------------------------------------------- /sources/Rena.ufo/glyphs/O_.glif: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | -------------------------------------------------------------------------------- /sources/Rena.ufo/glyphs/G_.glif: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | -------------------------------------------------------------------------------- /sources/Rena.ufo/glyphs/Q_.glif: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | -------------------------------------------------------------------------------- /sources/Rena.ufo/glyphs/S_.glif: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | -------------------------------------------------------------------------------- /sources/Rena.ufo/glyphs/C_.glif: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | -------------------------------------------------------------------------------- /sources/Rena.ufo/glyphs/H_.glif: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | -------------------------------------------------------------------------------- /sources/Rena.ufo/glyphs/E_.glif: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | -------------------------------------------------------------------------------- /sources/Rena.ufo/glyphs/u.glif: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | -------------------------------------------------------------------------------- /sources/Rena.ufo/glyphs/j.glif: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | -------------------------------------------------------------------------------- /scripts/read-config.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python3 2 | # Yes, this is a Bad YAML Parser, but at this stage we are not in the 3 | # venv and do not know what modules the user has available, so for 4 | # maximum compatibility, we are just assuming a plain Python distribution. 5 | import argparse 6 | import re 7 | import sys 8 | import os 9 | 10 | parser = argparse.ArgumentParser() 11 | group = parser.add_mutually_exclusive_group(required=True) 12 | group.add_argument('--sources',action='store_true') 13 | group.add_argument('--family',action='store_true') 14 | args = parser.parse_args() 15 | 16 | with open(os.path.join("sources", "config.yaml")) as config: 17 | data = config.read() 18 | 19 | if args.family: 20 | m = re.search(r"(?m)^familyName: (.*)", data) 21 | if m: 22 | print(m[1]) 23 | sys.exit(0) 24 | else: 25 | print("Could not determine family name from config file!") 26 | sys.exit(1) 27 | 28 | toggle = False 29 | sources = [] 30 | for line in data.splitlines(): 31 | if re.match("^sources:", line): 32 | toggle = True 33 | continue 34 | if toggle: 35 | m = re.match(r"^\s+-\s*(.*)", line) 36 | if m: 37 | sources.append("sources/"+m[1]) 38 | else: 39 | toggle = False 40 | if sources: 41 | print(" ".join(sources)) 42 | sys.exit(0) 43 | else: 44 | print("Could not determine sources from config file!") 45 | sys.exit(1) 46 | -------------------------------------------------------------------------------- /sources/Rena.ufo/glyphs/k.glif: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | -------------------------------------------------------------------------------- /sources/Rena.ufo/glyphs/h.glif: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | -------------------------------------------------------------------------------- /sources/Rena.ufo/glyphs/n.glif: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | -------------------------------------------------------------------------------- /sources/Rena.ufo/glyphs/P_.glif: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | -------------------------------------------------------------------------------- /sources/Rena.ufo/glyphs/c.glif: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | -------------------------------------------------------------------------------- /sources/Rena.ufo/glyphs/q.glif: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | -------------------------------------------------------------------------------- /sources/Rena.ufo/glyphs/p.glif: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | -------------------------------------------------------------------------------- /sources/Rena.ufo/glyphs/t.glif: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | -------------------------------------------------------------------------------- /sources/Rena.ufo/glyphs/f.glif: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | -------------------------------------------------------------------------------- /sources/Rena.ufo/glyphs/d.glif: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | -------------------------------------------------------------------------------- /sources/Rena.ufo/glyphs/e.glif: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | -------------------------------------------------------------------------------- /sources/Rena.ufo/glyphs/b.glif: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | -------------------------------------------------------------------------------- /sources/Rena.ufo/glyphs/R_.glif: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | -------------------------------------------------------------------------------- /Makefile: -------------------------------------------------------------------------------- 1 | SOURCES=$(shell python3 scripts/read-config.py --sources ) 2 | FAMILY=$(shell python3 scripts/read-config.py --family ) 3 | DRAWBOT_SCRIPTS=$(shell ls documentation/*.py) 4 | DRAWBOT_OUTPUT=$(shell ls documentation/*.py | sed 's/\.py/.png/g') 5 | 6 | help: 7 | @echo "###" 8 | @echo "# Build targets for $(FAMILY)" 9 | @echo "###" 10 | @echo 11 | @echo " make build: Builds the fonts and places them in the fonts/ directory" 12 | @echo " make test: Tests the fonts with fontbakery" 13 | @echo " make proof: Creates HTML proof documents in the proof/ directory" 14 | @echo " make images: Creates PNG specimen images in the documentation/ directory" 15 | @echo 16 | 17 | build: build.stamp sources/config.yaml $(SOURCES) 18 | 19 | venv: venv/touchfile 20 | 21 | build.stamp: venv .init.stamp 22 | . venv/bin/activate; gftools builder sources/config.yaml && touch build.stamp 23 | 24 | .init.stamp: venv 25 | . venv/bin/activate; python3 scripts/first-run.py 26 | 27 | venv/touchfile: requirements.txt 28 | test -d venv || python3 -m venv venv 29 | . venv/bin/activate; pip install -Ur requirements.txt 30 | touch venv/touchfile 31 | 32 | test: venv build.stamp 33 | . venv/bin/activate; fontbakery check-googlefonts -l WARN --succinct --badges badges --html fontbakery-report.html --ghmarkdown fontbakery-report.md $(shell find fonts -type f) 34 | 35 | proof: venv build.stamp 36 | . venv/bin/activate; gftools gen-html proof $(shell find fonts/ttf -type f) -o proof 37 | 38 | images: venv build.stamp $(DRAWBOT_OUTPUT) 39 | git add documentation/*.png && git commit -m "Rebuild images" documentation/*.png 40 | 41 | %.png: %.py build.stamp 42 | python3 $< --output $@ 43 | 44 | clean: 45 | rm -rf venv 46 | find . -name "*.pyc" | xargs rm delete 47 | 48 | update-ufr: 49 | npx update-template https://github.com/googlefonts/Unified-Font-Repository/ 50 | -------------------------------------------------------------------------------- /sources/Rena.ufo/glyphs/s.glif: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | -------------------------------------------------------------------------------- /sources/Rena.ufo/glyphs/B_.glif: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | -------------------------------------------------------------------------------- /sources/Rena.ufo/glyphs/g.glif: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | -------------------------------------------------------------------------------- /.github/workflows/build.yaml: -------------------------------------------------------------------------------- 1 | name: Build font and specimen 2 | 3 | on: [push] 4 | 5 | jobs: 6 | build: 7 | runs-on: ubuntu-latest 8 | steps: 9 | - uses: actions/checkout@v2 10 | - name: Set up Python 3.8 11 | uses: actions/setup-python@v2 12 | with: 13 | python-version: 3.8 14 | - name: Install ttfautohint 15 | run: | 16 | sudo apt-get update 17 | sudo apt-get install ttfautohint 18 | - uses: actions/cache@v2 19 | with: 20 | path: ./venv/ 21 | key: ${{ runner.os }}-venv-${{ hashFiles('**/requirements*.txt') }} 22 | restore-keys: | 23 | ${{ runner.os }}-venv- 24 | - name: Do first-run script if necessary 25 | run: make .init.stamp 26 | if: github.repository != 'googlefonts/Unified-Font-Repository' 27 | - uses: stefanzweifel/git-auto-commit-action@v4 28 | name: First-run setup 29 | if: github.repository != 'googlefonts/Unified-Font-Repository' 30 | with: 31 | file_pattern: .init.stamp README.md 32 | - name: Build font 33 | run: make build 34 | - name: Check with fontbakery 35 | run: make test 36 | continue-on-error: true 37 | - name: Generate proofs 38 | run: make proof 39 | - name: Rearrange 40 | run: | 41 | mkdir for-gh-pages 42 | mv fontbakery-report.md for-gh-pages 43 | mv fontbakery-report.html for-gh-pages 44 | mv badges for-gh-pages 45 | git fetch --depth=1 46 | mv proof/* for-gh-pages 47 | git checkout -f gh-pages 48 | cp -ar for-gh-pages/* . 49 | rm -rf for-gh-pages 50 | - uses: stefanzweifel/git-auto-commit-action@v4 51 | name: Commit to gh-pages 52 | with: 53 | branch: gh-pages 54 | file_pattern: fonts *.html badges 55 | - name: Archive artifacts 56 | uses: actions/upload-artifact@v2 57 | with: 58 | name: Artifacts 59 | path: | 60 | fonts 61 | *.html 62 | fontbakery-report.md 63 | -------------------------------------------------------------------------------- /sources/Rena.ufo/glyphs/m.glif: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | -------------------------------------------------------------------------------- /sources/Rena.ufo/glyphs/a.glif: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | -------------------------------------------------------------------------------- /documentation/image1.py: -------------------------------------------------------------------------------- 1 | from drawbot_skia.drawbot import * 2 | from fontTools.ttLib import TTFont 3 | from fontTools.misc.fixedTools import floatToFixedToStr 4 | import subprocess 5 | import sys 6 | import argparse 7 | 8 | import argparse 9 | 10 | parser = argparse.ArgumentParser() 11 | parser.add_argument('--output', metavar="PNG", 12 | help='where to write the PNG file') 13 | args = parser.parse_args() 14 | 15 | FONT_PATH = "fonts/ttf/Rubik-Regular.ttf" 16 | 17 | # CONSTANTS 18 | WIDTH, HEIGHT, MARGIN, FRAMES = 2048, 2048, 128, 1 19 | BIG_TEXT = "Aa" 20 | 21 | AUXILIARY_FONT = "Helvetica" 22 | AUXILIARY_FONT_SIZE = 48 23 | 24 | # Constants we will work out dynamically 25 | MY_URL = subprocess.check_output("git remote get-url origin", shell=True).decode() 26 | 27 | ttFont = TTFont(FONT_PATH) 28 | 29 | MY_FONT_NAME = ttFont["name"].getDebugName(4) 30 | FONT_VERSION = "v%s" % floatToFixedToStr(ttFont["head"].fontRevision, 16) 31 | 32 | # DRAWS A GRID 33 | def grid(): 34 | stroke(1, 0.2) 35 | strokeWidth(1) 36 | STEP_X, STEP_Y = 0, 0 37 | INCREMENT_X, INCREMENT_Y = MARGIN / 2, MARGIN / 2 38 | rect(MARGIN, MARGIN, WIDTH - (MARGIN * 2), HEIGHT - (MARGIN * 2)) 39 | for x in range(29): 40 | polygon((MARGIN + STEP_X, MARGIN), (MARGIN + STEP_X, HEIGHT - MARGIN)) 41 | STEP_X += INCREMENT_X 42 | for y in range(29): 43 | polygon((MARGIN, MARGIN + STEP_Y), (WIDTH - MARGIN, MARGIN + STEP_Y)) 44 | STEP_Y += INCREMENT_Y 45 | polygon((WIDTH / 2, 0), (WIDTH / 2, HEIGHT)) 46 | polygon((0, HEIGHT / 2), (WIDTH, HEIGHT / 2)) 47 | 48 | 49 | # REMAP INPUT RANGE TO VF AXIS RANGE 50 | # (E.G. SINE WAVE(-1,1) to WGHT(100,900)) 51 | def remap(value, inputMin, inputMax, outputMin, outputMax): 52 | inputSpan = inputMax - inputMin # FIND INPUT RANGE SPAN 53 | outputSpan = outputMax - outputMin # FIND OUTPUT RANGE SPAN 54 | valueScaled = float(value - inputMin) / float(inputSpan) 55 | return outputMin + (valueScaled * outputSpan) 56 | 57 | 58 | # DRAW PAGE 59 | newPage(WIDTH, HEIGHT) 60 | font(FONT_PATH) 61 | fill(0) 62 | rect(-2, -2, WIDTH + 2, HEIGHT + 2) 63 | # grid() # Toggle for grid view 64 | 65 | 66 | # MAIN TEXT 67 | fill(1) 68 | stroke(None) 69 | fontSize(MARGIN * 8) 70 | text(BIG_TEXT, (MARGIN * 3.5, MARGIN * 5)) 71 | 72 | 73 | # MARGIN LINES 74 | stroke(1) 75 | strokeWidth(2) 76 | line((MARGIN, HEIGHT - MARGIN), (WIDTH - MARGIN, HEIGHT - MARGIN)) 77 | line((MARGIN, MARGIN), (WIDTH - MARGIN, MARGIN)) 78 | stroke(None) 79 | 80 | 81 | # AUXILIARY TEXT 82 | font(AUXILIARY_FONT) 83 | fontSize(AUXILIARY_FONT_SIZE) 84 | POS1l = (MARGIN, HEIGHT - MARGIN * 1.5) 85 | POS1r = (WIDTH - MARGIN, HEIGHT - MARGIN * 1.5) 86 | text(MY_FONT_NAME, POS1l, align="left") 87 | text(FONT_VERSION, POS1r, align="right") 88 | 89 | POS2l = (MARGIN, MARGIN * 1.2) 90 | POS2r = (WIDTH - MARGIN, MARGIN * 1.2) 91 | text(MY_URL, POS2l, align="left") 92 | text("OFL v1.1", POS2r, align="right") 93 | 94 | 95 | # SAVE IMAGE 96 | saveImage(args.output) 97 | print("DrawBot: Done") 98 | -------------------------------------------------------------------------------- /scripts/first-run.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python3 2 | 3 | # This script is run the first time any action is performed after the repository 4 | # is cloned. If you are reading this because the automatic initialization failed, 5 | # skip down to the section headed "INITIALIZATION STEPS". 6 | 7 | from sh import git 8 | import re 9 | import sys 10 | from urllib.parse import quote 11 | 12 | BASE_OWNER = "googlefonts" 13 | BASE_REPONAME = "Unified-Font-Repository" 14 | 15 | 16 | def repo_url(owner, name): 17 | return f"https://github.com/{owner}/{name}" 18 | 19 | 20 | def web_url(owner, name): 21 | return f"https://{owner}.github.io/{name}" 22 | 23 | 24 | def raw_url(owner, name): 25 | return f"https://raw.githubusercontent.com/{owner}/{name}" 26 | 27 | 28 | def touch(): 29 | open(".init.stamp", "w").close() 30 | 31 | 32 | def lose(msg, e=None): 33 | print(msg) 34 | print("You will need to do the initialization steps manually.") 35 | print("Read scripts/first-run.py for more instructions how to do this.") 36 | if e: 37 | print( 38 | "\nHere's an additional error message which may help diagnose the problem." 39 | ) 40 | raise e 41 | sys.exit(1) 42 | 43 | 44 | try: 45 | my_repo_url = git.remote("get-url", "origin") 46 | except Exception as e: 47 | lose("Could not use git to find my own repository URL", e) 48 | 49 | m = re.match(r"https://github.com/(.*)/(.*)/?", str(my_repo_url)) 50 | if not m: 51 | lose( 52 | f"My git repository URL ({my_repo_url}) didn't look what I expected - are you hosting this on github?" 53 | ) 54 | 55 | owner, reponame = m[1], m[2] 56 | 57 | if owner == BASE_OWNER and reponame == BASE_REPONAME: 58 | print("I am being run on the upstream repository (probably due to CI)") 59 | print("All I'm going to do is create the touch file and quit.") 60 | touch() 61 | sys.exit() 62 | 63 | # INITIALIZATION STEPS 64 | 65 | # First, the README file contains URLs to pages in the `gh-pages` branch of the 66 | # repo. When initially cloned, these URLs will point to the 67 | # googlefonts/Unified-Font-Repository itself. But downstream users want links 68 | # and badges about their own font, not ours! So any URLs need to be adjusted to 69 | # refer to the end user's repository. 70 | 71 | readme = open("README.md").read() 72 | 73 | print( 74 | "Fixing URLs:", web_url(BASE_OWNER, BASE_REPONAME), "->", web_url(owner, reponame) 75 | ) 76 | readme = readme.replace(web_url(BASE_OWNER, BASE_REPONAME), web_url(owner, reponame)) 77 | # In the badges, the URLs to raw.githubusercontent.com are URL-encoded as they 78 | # are passed to shields.io. 79 | print( 80 | "Fixing URLs:", 81 | quote(raw_url(BASE_OWNER, BASE_REPONAME), safe=""), 82 | "->", 83 | quote(raw_url(owner, reponame), safe=""), 84 | ) 85 | readme = readme.replace( 86 | quote(raw_url(BASE_OWNER, BASE_REPONAME), safe=""), 87 | quote(raw_url(owner, reponame), safe=""), 88 | ) 89 | 90 | with open("README.md", "w") as fh: 91 | fh.write(readme) 92 | 93 | # Finally, we add a "touch file" called ".init.stamp" to the repository which 94 | # prevents this first-run process from being run again. 95 | touch() 96 | -------------------------------------------------------------------------------- /sources/Rena.ufo/glyphs/contents.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | A 6 | A_.glif 7 | B 8 | B_.glif 9 | C 10 | C_.glif 11 | D 12 | D_.glif 13 | E 14 | E_.glif 15 | F 16 | F_.glif 17 | G 18 | G_.glif 19 | H 20 | H_.glif 21 | I 22 | I_.glif 23 | J 24 | J_.glif 25 | K 26 | K_.glif 27 | L 28 | L_.glif 29 | M 30 | M_.glif 31 | N 32 | N_.glif 33 | O 34 | O_.glif 35 | P 36 | P_.glif 37 | Q 38 | Q_.glif 39 | R 40 | R_.glif 41 | S 42 | S_.glif 43 | T 44 | T_.glif 45 | U 46 | U_.glif 47 | V 48 | V_.glif 49 | W 50 | W_.glif 51 | X 52 | X_.glif 53 | Y 54 | Y_.glif 55 | Z 56 | Z_.glif 57 | a 58 | a.glif 59 | ampersand 60 | ampersand.glif 61 | at 62 | at.glif 63 | b 64 | b.glif 65 | c 66 | c.glif 67 | colon 68 | colon.glif 69 | d 70 | d.glif 71 | e 72 | e.glif 73 | eight 74 | eight.glif 75 | f 76 | f.glif 77 | five 78 | five.glif 79 | four 80 | four.glif 81 | g 82 | g.glif 83 | h 84 | h.glif 85 | i 86 | i.glif 87 | j 88 | j.glif 89 | k 90 | k.glif 91 | l 92 | l.glif 93 | m 94 | m.glif 95 | n 96 | n.glif 97 | nine 98 | nine.glif 99 | o 100 | o.glif 101 | one 102 | one.glif 103 | p 104 | p.glif 105 | q 106 | q.glif 107 | r 108 | r.glif 109 | s 110 | s.glif 111 | seven 112 | seven.glif 113 | six 114 | six.glif 115 | slash 116 | slash.glif 117 | space 118 | space.glif 119 | t 120 | t.glif 121 | three 122 | three.glif 123 | two 124 | two.glif 125 | u 126 | u.glif 127 | v 128 | v.glif 129 | w 130 | w.glif 131 | x 132 | x.glif 133 | y 134 | y.glif 135 | z 136 | z.glif 137 | zero 138 | zero.glif 139 | 140 | -------------------------------------------------------------------------------- /OFL.txt: -------------------------------------------------------------------------------- 1 | Copyright 20** The My Font Project Authors (https://github.com/googlefonts/My-Font-Repository) 2 | 3 | This Font Software is licensed under the SIL Open Font License, Version 1.1. 4 | This license is copied below, and is also available with a FAQ at: 5 | https://scripts.sil.org/OFL 6 | 7 | 8 | ----------------------------------------------------------- 9 | SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007 10 | ----------------------------------------------------------- 11 | 12 | PREAMBLE 13 | The goals of the Open Font License (OFL) are to stimulate worldwide 14 | development of collaborative font projects, to support the font creation 15 | efforts of academic and linguistic communities, and to provide a free and 16 | open framework in which fonts may be shared and improved in partnership 17 | with others. 18 | 19 | The OFL allows the licensed fonts to be used, studied, modified and 20 | redistributed freely as long as they are not sold by themselves. The 21 | fonts, including any derivative works, can be bundled, embedded, 22 | redistributed and/or sold with any software provided that any reserved 23 | names are not used by derivative works. The fonts and derivatives, 24 | however, cannot be released under any other type of license. The 25 | requirement for fonts to remain under this license does not apply 26 | to any document created using the fonts or their derivatives. 27 | 28 | DEFINITIONS 29 | "Font Software" refers to the set of files released by the Copyright 30 | Holder(s) under this license and clearly marked as such. This may 31 | include source files, build scripts and documentation. 32 | 33 | "Reserved Font Name" refers to any names specified as such after the 34 | copyright statement(s). 35 | 36 | "Original Version" refers to the collection of Font Software components as 37 | distributed by the Copyright Holder(s). 38 | 39 | "Modified Version" refers to any derivative made by adding to, deleting, 40 | or substituting -- in part or in whole -- any of the components of the 41 | Original Version, by changing formats or by porting the Font Software to a 42 | new environment. 43 | 44 | "Author" refers to any designer, engineer, programmer, technical 45 | writer or other person who contributed to the Font Software. 46 | 47 | PERMISSION & CONDITIONS 48 | Permission is hereby granted, free of charge, to any person obtaining 49 | a copy of the Font Software, to use, study, copy, merge, embed, modify, 50 | redistribute, and sell modified and unmodified copies of the Font 51 | Software, subject to the following conditions: 52 | 53 | 1) Neither the Font Software nor any of its individual components, 54 | in Original or Modified Versions, may be sold by itself. 55 | 56 | 2) Original or Modified Versions of the Font Software may be bundled, 57 | redistributed and/or sold with any software, provided that each copy 58 | contains the above copyright notice and this license. These can be 59 | included either as stand-alone text files, human-readable headers or 60 | in the appropriate machine-readable metadata fields within text or 61 | binary files as long as those fields can be easily viewed by the user. 62 | 63 | 3) No Modified Version of the Font Software may use the Reserved Font 64 | Name(s) unless explicit written permission is granted by the corresponding 65 | Copyright Holder. This restriction only applies to the primary font name as 66 | presented to the users. 67 | 68 | 4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font 69 | Software shall not be used to promote, endorse or advertise any 70 | Modified Version, except to acknowledge the contribution(s) of the 71 | Copyright Holder(s) and the Author(s) or with their explicit written 72 | permission. 73 | 74 | 5) The Font Software, modified or unmodified, in part or in whole, 75 | must be distributed entirely under this license, and must not be 76 | distributed under any other license. The requirement for fonts to 77 | remain under this license does not apply to any document created 78 | using the Font Software. 79 | 80 | TERMINATION 81 | This license becomes null and void if any of the above conditions are 82 | not met. 83 | 84 | DISCLAIMER 85 | THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 86 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF 87 | MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT 88 | OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE 89 | COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, 90 | INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL 91 | DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 92 | FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM 93 | OTHER DEALINGS IN THE FONT SOFTWARE. 94 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | ---- 2 | 3 | ## Screenshot Gallery 4 | 5 | ![Screenshot](documentation/screenshots/2021-08-22-040649_1920x1080_scrot.png) 6 | 7 | ## Setting up your font 8 | 9 | * **New repositories.** Hit the green button above ("Use this template") to create your own repository.\ 10 |   *Make sure to click the checkbox marked "Include all branches".* 11 | 12 | * **Updating a repository.** To update your font repository to bring in the latest best-practices from 13 | our Unified Font Repository, run `make update-ufr` from the command line. 14 | 15 | 16 | * Replace the font sources in the `sources` directory with your own fonts. These sources may be either in Glyphs format or UFO/Designspace formats.\ 17 | \ 18 | Unlike many open source distributors, Google Fonts is a **curated content**. Fonts shipped to the platform have to match the [Google Fonts Specifications](https://github.com/googlefonts/gf-docs/tree/main/Spec). Please read them carefully.\ 19 | \ 20 | *(The sample font provided in this template is [Rubik](https://github.com/googlefonts/rubik/) by Philipp Hubert, Sebastian Fischer, and contributors.)* 21 | 22 | * Then reference the sources in the file `sources/config.yaml`, as well as making any other changes you would like to make based on the instructions in the [Google Font Builder documentation](https://github.com/googlefonts/gftools/blob/main/Lib/gftools/builder/__init__.py). 23 | 24 | 25 | * Add yourself to the `AUTHORS.txt` and `CONTRIBUTORS.txt` files. 26 | 27 | * Update the first line of the OFL.txt (year and project name). Update also the Copyright string in the sources, it has to be the same as the OFL.txt. The `.glyphs` file in this repo gives you required base charset and font info. 28 | 29 | * Finally, add and commit any files you have modified (i.e. `README.md`, `AUTHORS.txt`, `CONTRIBUTORS.txt`, the font sources, and `sources/config.yaml`) to git, then push to GitHub. 30 | 31 | * Once you are happy with your font, add promotional assets in the documentation directory. Make it different from the pic you use in this README. You can get inspired by existing tweet @googlefonts like: https://twitter.com/googlefonts/status/1415562928657416192. 32 | 33 | * Remove this section from the readme. :-) 34 | ---- 35 | 36 | 37 | # My Font 38 | 39 | [![][Fontbakery]](https://eliheuer.github.io/rena/fontbakery-report.html) 40 | [![][Universal]](https://eliheuer.github.io/rena/fontbakery-report.html) 41 | [![][GF Profile]](https://eliheuer.github.io/rena/fontbakery-report.html) 42 | [![][Outline Correctness]](https://eliheuer.github.io/rena/fontbakery-report.html) 43 | [![][Shaping]](https://eliheuer.github.io/rena/fontbakery-report.html) 44 | 45 | [Fontbakery]: https://img.shields.io/endpoint?url=https%3A%2F%2Fraw.githubusercontent.com%2Feliheuer%2Frena%2Fgh-pages%2Fbadges%2Foverall.json 46 | [GF Profile]: https://img.shields.io/endpoint?url=https%3A%2F%2Fraw.githubusercontent.com%2Feliheuer%2Frena%2Fgh-pages%2Fbadges%2FGoogleFonts.json 47 | [Outline Correctness]: https://img.shields.io/endpoint?url=https%3A%2F%2Fraw.githubusercontent.com%2Feliheuer%2Frena%2Fgh-pages%2Fbadges%2FOutlineCorrectnessChecks.json 48 | [Shaping]: https://img.shields.io/endpoint?url=https%3A%2F%2Fraw.githubusercontent.com%2Feliheuer%2Frena%2Fgh-pages%2Fbadges%2FShapingChecks.json 49 | [Universal]: https://img.shields.io/endpoint?url=https%3A%2F%2Fraw.githubusercontent.com%2Feliheuer%2Frena%2Fgh-pages%2Fbadges%2FUniversal.json 50 | 51 | Description of your font goes here. We recommend to start with a very short presentation line (the kind you would use on twitter to present your project for example), and then add as much details as necesary :-) Origin of the project, idea of usage, concept of creation… but also number of masters, axes, character sets, etc. 52 | 53 | Don't hesitate to create images! 54 | 55 | ![Sample Image](documentation/image.png) 56 | 57 | ## About 58 | 59 | Description of you and/or organisation goes here. 60 | 61 | 62 | ## Building 63 | 64 | Fonts are built automatically by GitHub Actions - take a look in the "Actions" tab for the latest build. 65 | 66 | If you want to build fonts manually on your own computer: 67 | 68 | * `make build` will produce font files. 69 | * `make test` will run [FontBakery](https://github.com/googlefonts/fontbakery)'s quality assurance tests. 70 | * `make proof` will generate HTML proof files. 71 | 72 | The proof files and QA tests are also available automatically via GitHub Actions - look at `https://yourname.github.io/your-font-repository-name`. 73 | 74 | ## Changelog 75 | 76 | When you update your font (new version or new release), please report all notable changes here, with a date. 77 | [Font Versioning](https://github.com/googlefonts/gf-docs/tree/main/Spec#font-versioning) is based on semver. 78 | Changelog example: 79 | 80 | **26 May 2021. Version 2.13** 81 | - MAJOR Font turned to a variable font. 82 | - SIGNIFICANT New Stylistic sets added. 83 | 84 | ## License 85 | 86 | This Font Software is licensed under the SIL Open Font License, Version 1.1. 87 | This license is copied below, and is also available with a FAQ at 88 | https://scripts.sil.org/OFL 89 | 90 | ## Repository Layout 91 | 92 | This font repository structure is inspired by [Unified Font Repository v0.3](https://github.com/unified-font-repository/Unified-Font-Repository), modified for the Google Fonts workflow. 93 | --------------------------------------------------------------------------------