├── .github ├── CODEOWNERS └── workflows │ ├── build-PR_labeled.yaml │ ├── build-init.yaml │ ├── build-release.yaml │ └── check-push.yaml ├── .gitignore ├── .init.stamp ├── .templaterc.json ├── AUTHORS.txt ├── CONTRIBUTORS.txt ├── Makefile ├── OFL.txt ├── README.md ├── docs ├── HS_Intro.ai ├── HS_OpenGraph.ai ├── HS_OpenGraph.jpg ├── HS_OpenGraph.svg └── uoa.svg ├── fonts ├── otf │ ├── Hauora-Bold.otf │ ├── Hauora-ExtraBold.otf │ ├── Hauora-ExtraLight.otf │ ├── Hauora-Light.otf │ ├── Hauora-Medium.otf │ ├── Hauora-Regular.otf │ └── Hauora-SemiBold.otf ├── ttf │ ├── Hauora-Bold.ttf │ ├── Hauora-ExtraBold.ttf │ ├── Hauora-ExtraLight.ttf │ ├── Hauora-Light.ttf │ ├── Hauora-Medium.ttf │ ├── Hauora-Regular.ttf │ └── Hauora-SemiBold.ttf ├── variable │ └── Hauora[wght].ttf └── webfonts │ ├── Hauora-Bold.woff2 │ ├── Hauora-ExtraBold.woff2 │ ├── Hauora-ExtraLight.woff2 │ ├── Hauora-Light.woff2 │ ├── Hauora-Medium.woff2 │ ├── Hauora-Regular.woff2 │ └── Hauora-SemiBold.woff2 ├── index.html ├── requirements.txt ├── scripts ├── first-run.py ├── index.html └── read-config.py └── sources ├── Hauora.glyphs └── config.yaml /.github/CODEOWNERS: -------------------------------------------------------------------------------- 1 | * @WCYS-Co/CodeOwners-Type 2 | -------------------------------------------------------------------------------- /.github/workflows/build-PR_labeled.yaml: -------------------------------------------------------------------------------- 1 | name: Build on pull request with TRIGGER BUILD labeled 2 | 3 | on: 4 | pull_request: 5 | types: 6 | - labeled 7 | 8 | jobs: 9 | build-PR_labeled: 10 | if: "contains(github.event.pull_request.labels.*.name, 'TRIGGER BUILD')" 11 | runs-on: ubuntu-latest 12 | steps: 13 | - name: "Check out repository" 14 | uses: actions/checkout@v2 15 | - name: "Set up Python 3.8" 16 | uses: actions/setup-python@v2 17 | with: 18 | python-version: 3.8 19 | - name: "Set up dependencies" 20 | run: | 21 | sudo apt-get update 22 | sudo apt-get install ttfautohint 23 | sudo snap install yq 24 | - name: "Cache dependencies" 25 | uses: actions/cache@v2 26 | with: 27 | path: ./venv/ 28 | key: ${{ runner.os }}-venv-${{ hashFiles('**/requirements*.txt') }} 29 | restore-keys: | 30 | ${{ runner.os }}-venv- 31 | - name: "Build fonts" 32 | run: make build 33 | - name: "Generate Font Bakery report" 34 | run: make test 35 | continue-on-error: true 36 | - name: "Import GPG key for signing" 37 | id: import_gpg 38 | uses: crazy-max/ghaction-import-gpg@v5 39 | with: 40 | gpg_private_key: ${{ secrets.BOT_GPG_PRIVATE_KEY }} 41 | passphrase: ${{ secrets.BOT_PASSPHRASE }} 42 | git_user_signingkey: true 43 | git_commit_gpgsign: true 44 | continue-on-error: true 45 | - name: "Commit new builds" 46 | uses: stefanzweifel/git-auto-commit-action@v4 47 | with: 48 | file_pattern: fonts/* 49 | commit_message: "chore: build" 50 | commit_user_name: wcys-bot 51 | commit_user_email: beep-boop@wcys.co 52 | commit_author: wcys-bot 53 | -------------------------------------------------------------------------------- /.github/workflows/build-init.yaml: -------------------------------------------------------------------------------- 1 | name: Build, Init 2 | 3 | on: [push] 4 | 5 | jobs: 6 | build-init: 7 | if: "contains(github.event.head_commit.message, 'Initial commit')" 8 | runs-on: ubuntu-latest 9 | steps: 10 | - name: "Check out repository" 11 | uses: actions/checkout@v2 12 | - name: "Set up Python 3.8" 13 | uses: actions/setup-python@v2 14 | with: 15 | python-version: 3.8 16 | - name: "Set up dependencies" 17 | run: | 18 | sudo apt-get update 19 | sudo apt-get install ttfautohint 20 | sudo snap install yq 21 | - name: "Cache dependencies" 22 | uses: actions/cache@v2 23 | with: 24 | path: ./venv/ 25 | key: ${{ runner.os }}-venv-${{ hashFiles('**/requirements*.txt') }} 26 | restore-keys: | 27 | ${{ runner.os }}-venv- 28 | - name: "Import GPG key for signing" 29 | id: import_gpg 30 | uses: crazy-max/ghaction-import-gpg@v5 31 | with: 32 | gpg_private_key: ${{ secrets.BOT_GPG_PRIVATE_KEY }} 33 | passphrase: ${{ secrets.BOT_PASSPHRASE }} 34 | git_user_signingkey: true 35 | git_commit_gpgsign: true 36 | continue-on-error: true 37 | - name: "Add .init.stamp file" 38 | run: make .init.stamp 39 | - name: "Commit files" 40 | uses: stefanzweifel/git-auto-commit-action@v4 41 | with: 42 | file_pattern: .init.stamp README.md requirements.txt OFL.txt 43 | commit_message: "chore(init): personalize repo" 44 | commit_user_name: wcys-bot 45 | commit_user_email: beep-boop@wcys.co 46 | commit_author: wcys-bot 47 | - name: "Set up zip file for outputs" 48 | id: zip-name 49 | shell: bash 50 | run: echo "ZIP_NAME=$(echo '${{ github.repository }}' | awk -F '/' '{print $2}')-fonts" >> $GITHUB_ENV 51 | - name: "Build fonts" 52 | run: make build 53 | - name: "Generate Font Bakery report" 54 | run: make test 55 | continue-on-error: true 56 | - name: "Generate font proofs" 57 | run: make proof 58 | - name: "Generate proof site" 59 | run: cp scripts/index.html out/index.html 60 | - name: "Deploy site via GitHub Pages" 61 | uses: peaceiris/actions-gh-pages@v3 62 | if: ${{ github.ref == 'refs/heads/master' }} 63 | with: 64 | github_token: ${{ secrets.GITHUB_TOKEN }} 65 | publish_dir: ./out 66 | user_name: 'wcys-bot[bot]' 67 | user_email: 'beep-boop@wcys.co' 68 | - name: "Upload zip as action artifact" 69 | uses: actions/upload-artifact@v2 70 | with: 71 | name: ${{ env.ZIP_NAME }} 72 | path: | 73 | fonts 74 | out 75 | outputs: 76 | zip_name: ${{ env.ZIP_NAME }} 77 | -------------------------------------------------------------------------------- /.github/workflows/build-release.yaml: -------------------------------------------------------------------------------- 1 | name: Build on release 2 | 3 | on: [release] 4 | 5 | jobs: 6 | build-release: 7 | runs-on: ubuntu-latest 8 | steps: 9 | - name: "Check out repository" 10 | uses: actions/checkout@v2 11 | - name: "Set up Python 3.8" 12 | uses: actions/setup-python@v2 13 | with: 14 | python-version: 3.8 15 | - name: "Set up dependencies" 16 | run: | 17 | sudo apt-get update 18 | sudo apt-get install ttfautohint 19 | sudo snap install yq 20 | - name: "Cache dependencies" 21 | uses: actions/cache@v2 22 | with: 23 | path: ./venv/ 24 | key: ${{ runner.os }}-venv-${{ hashFiles('**/requirements*.txt') }} 25 | restore-keys: | 26 | ${{ runner.os }}-venv- 27 | - name: "Set up zip file for outputs" 28 | id: zip-name 29 | shell: bash 30 | run: echo "ZIP_NAME=$(echo '${{ github.repository }}' | awk -F '/' '{print $2}')-fonts" >> $GITHUB_ENV 31 | - name: "Build fonts" 32 | run: make build 33 | - name: "Generate Font Bakery report" 34 | run: make test 35 | continue-on-error: true 36 | - name: "Generate font proofs" 37 | run: make proof 38 | - name: "Generate proof site" 39 | run: cp scripts/index.html out/index.html 40 | - name: "Upload zip as action artifact" 41 | uses: actions/upload-artifact@v2 42 | with: 43 | name: ${{ env.ZIP_NAME }} 44 | path: | 45 | fonts 46 | out 47 | outputs: 48 | zip_name: ${{ env.ZIP_NAME }} 49 | -------------------------------------------------------------------------------- /.github/workflows/check-push.yaml: -------------------------------------------------------------------------------- 1 | name: Check on push 2 | 3 | on: 4 | push: 5 | paths: 6 | - '**.glyphs' 7 | - 'sources/*' 8 | - 'scripts/*' 9 | - 'Makefile' 10 | - 'requirements.txt' 11 | - '.github/workflows/*' 12 | 13 | jobs: 14 | check-push: 15 | runs-on: ubuntu-latest 16 | steps: 17 | - name: "Check out repository" 18 | uses: actions/checkout@v2 19 | - name: "Set up Python 3.8" 20 | uses: actions/setup-python@v2 21 | with: 22 | python-version: 3.8 23 | - name: "Set up dependencies" 24 | run: | 25 | sudo apt-get update 26 | sudo apt-get install ttfautohint 27 | sudo snap install yq 28 | - name: "Cache dependencies" 29 | uses: actions/cache@v2 30 | with: 31 | path: ./venv/ 32 | key: ${{ runner.os }}-venv-${{ hashFiles('**/requirements*.txt') }} 33 | restore-keys: | 34 | ${{ runner.os }}-venv- 35 | - name: "Set up zip file for outputs" 36 | id: zip-name 37 | shell: bash 38 | run: echo "ZIP_NAME=$(echo '${{ github.repository }}' | awk -F '/' '{print $2}')-fonts" >> $GITHUB_ENV 39 | - name: "Build fonts" 40 | run: make build 41 | - name: "Generate Font Bakery report" 42 | run: make test 43 | continue-on-error: true 44 | - name: "Generate font proofs" 45 | run: make proof 46 | - name: "Generate proof site" 47 | run: cp scripts/index.html out/index.html 48 | - name: "Deploy site via GitHub Pages" 49 | uses: peaceiris/actions-gh-pages@v3 50 | if: ${{ github.ref == 'refs/heads/master' }} 51 | with: 52 | github_token: ${{ secrets.GITHUB_TOKEN }} 53 | publish_dir: ./out 54 | - name: "Upload zip as action artifact" 55 | uses: actions/upload-artifact@v2 56 | with: 57 | name: ${{ env.ZIP_NAME }} 58 | path: | 59 | fonts 60 | out 61 | outputs: 62 | zip_name: ${{ env.ZIP_NAME }} 63 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | *~ 2 | venv 3 | build.stamp 4 | proof 5 | # fonts 6 | node_modules 7 | package-lock.json 8 | package.json 9 | 10 | # OS generated files # 11 | ###################### 12 | .DS_Store 13 | .DS_Store? 14 | ._* 15 | .Spotlight-V100 16 | .Trashes 17 | ehthumbs.db 18 | Thumbs.db 19 | -------------------------------------------------------------------------------- /.init.stamp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/WCYS-Co/Hauora-Sans/75131397db767f52236dde990405aad2deaf9cb6/.init.stamp -------------------------------------------------------------------------------- /.templaterc.json: -------------------------------------------------------------------------------- 1 | { 2 | "files": [".github/**/*", "Makefile", "scripts/**/*", "requirements.txt"] 3 | } 4 | -------------------------------------------------------------------------------- /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 | WCYS & Co. 9 | -------------------------------------------------------------------------------- /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 | 12 | Wayne Shih 13 | 14 | The Manrope Project Authors (https://github.com/sharanda/manrope) 15 | Mikhail Sharanda <32507483+sharanda@users.noreply.github.com> 16 | Mirko Velimirovic 17 | -------------------------------------------------------------------------------- /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 18 | 19 | venv: venv/touchfile 20 | 21 | build.stamp: venv .init.stamp sources/config.yaml $(SOURCES) 22 | . venv/bin/activate; rm -rf fonts/; 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; mkdir -p out/ out/fontbakery; fontbakery check-googlefonts -l WARN --succinct --badges out/badges --html out/fontbakery/fontbakery-report.html --ghmarkdown out/fontbakery/fontbakery-report.md $(shell find fonts/ttf -type f) 34 | 35 | proof: venv build.stamp 36 | . venv/bin/activate; mkdir -p out/ out/proof; gftools gen-html proof $(shell find fonts/ttf -type f) -o out/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/WCYS-Co/--font-template/ 50 | 51 | update: 52 | pip install --upgrade $(dependency); pip freeze > requirements.txt 53 | -------------------------------------------------------------------------------- /OFL.txt: -------------------------------------------------------------------------------- 1 | Copyright 2020, WCYS & Co. (https://wcys.co) with Reserved Font Name "Hauora" and "Hauora Sans". 2 | Copyright 2020, The Hauora Project Authors (https://github.com/WCYS-Co/Hauora-Sans). 3 | Copyright 2018, The Manrope Project Authors (https://github.com/sharanda/manrope). 4 | 5 | This Font Software is licensed under the SIL Open Font License, Version 1.1. 6 | This license is copied below, and is also available with a FAQ at: 7 | http://scripts.sil.org/OFL 8 | 9 | ----------------------------------------------------------- 10 | SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007 11 | ----------------------------------------------------------- 12 | 13 | PREAMBLE 14 | The goals of the Open Font License (OFL) are to stimulate worldwide 15 | development of collaborative font projects, to support the font creation 16 | efforts of academic and linguistic communities, and to provide a free and 17 | open framework in which fonts may be shared and improved in partnership 18 | with others. 19 | 20 | The OFL allows the licensed fonts to be used, studied, modified and 21 | redistributed freely as long as they are not sold by themselves. The 22 | fonts, including any derivative works, can be bundled, embedded, 23 | redistributed and/or sold with any software provided that any reserved 24 | names are not used by derivative works. The fonts and derivatives, 25 | however, cannot be released under any other type of license. The 26 | requirement for fonts to remain under this license does not apply 27 | to any document created using the fonts or their derivatives. 28 | 29 | DEFINITIONS 30 | "Font Software" refers to the set of files released by the Copyright 31 | Holder(s) under this license and clearly marked as such. This may 32 | include source files, build scripts and documentation. 33 | 34 | "Reserved Font Name" refers to any names specified as such after the 35 | copyright statement(s). 36 | 37 | "Original Version" refers to the collection of Font Software components as 38 | distributed by the Copyright Holder(s). 39 | 40 | "Modified Version" refers to any derivative made by adding to, deleting, 41 | or substituting -- in part or in whole -- any of the components of the 42 | Original Version, by changing formats or by porting the Font Software to a 43 | new environment. 44 | 45 | "Author" refers to any designer, engineer, programmer, technical 46 | writer or other person who contributed to the Font Software. 47 | 48 | PERMISSION & CONDITIONS 49 | Permission is hereby granted, free of charge, to any person obtaining 50 | a copy of the Font Software, to use, study, copy, merge, embed, modify, 51 | redistribute, and sell modified and unmodified copies of the Font 52 | Software, subject to the following conditions: 53 | 54 | 1) Neither the Font Software nor any of its individual components, 55 | in Original or Modified Versions, may be sold by itself. 56 | 57 | 2) Original or Modified Versions of the Font Software may be bundled, 58 | redistributed and/or sold with any software, provided that each copy 59 | contains the above copyright notice and this license. These can be 60 | included either as stand-alone text files, human-readable headers or 61 | in the appropriate machine-readable metadata fields within text or 62 | binary files as long as those fields can be easily viewed by the user. 63 | 64 | 3) No Modified Version of the Font Software may use the Reserved Font 65 | Name(s) unless explicit written permission is granted by the corresponding 66 | Copyright Holder. This restriction only applies to the primary font name as 67 | presented to the users. 68 | 69 | 4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font 70 | Software shall not be used to promote, endorse or advertise any 71 | Modified Version, except to acknowledge the contribution(s) of the 72 | Copyright Holder(s) and the Author(s) or with their explicit written 73 | permission. 74 | 75 | 5) The Font Software, modified or unmodified, in part or in whole, 76 | must be distributed entirely under this license, and must not be 77 | distributed under any other license. The requirement for fonts to 78 | remain under this license does not apply to any document created 79 | using the Font Software. 80 | 81 | TERMINATION 82 | This license becomes null and void if any of the above conditions are 83 | not met. 84 | 85 | DISCLAIMER 86 | THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 87 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF 88 | MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT 89 | OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE 90 | COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, 91 | INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL 92 | DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 93 | FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM 94 | OTHER DEALINGS IN THE FONT SOFTWARE. 95 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Hauora Sans 2 | 3 | [![DOI](https://zenodo.org/badge/283670993.svg)](https://zenodo.org/badge/latestdoi/283670993) [![License: Open Font-1.1](https://img.shields.io/badge/License-OFL%201.1-brightgreen.svg)](https://opensource.org/licenses/OFL-1.1) [![GitHub release (latest by date)](https://img.shields.io/github/v/release/WCYS-Co/HauoraSans?color=orange&label=Release)](https://github.com/WCYS-Co/HauoraSans/releases) 4 | 5 | Hauora is an open-source sans-serif font family. Hauora is derived from [Manrope](https://manropefont.com/) — designed by [@sharanda](https://github.com/sharanda) — and modified by [WCYS](https://wayneshih.com/) for the [Tiaki Hauora Project](#tiaki-hauora-project). 6 | 7 | ![Hauora Sans](docs/HS_OpenGraph.svg) 8 | 9 | ### Features 10 | - Semi-condensed, clean, minimal sans-serif font family 11 | - Variable font + 7 legacy weights 12 | - Desktop and web-font formats 13 | - Geometric Digits 14 | - Packed with OpenType features: Case Sensitive, Auto-Apostrophe, Contextual Alternates, Common Ligatures, Custom Icon-Ligatures, Tabular Figures 15 | - Supports most of Latin & Cyrillic languages: 16 | - Albanian, Belarusian, Bosnian, Bulgarian, Catalan, Croatian, Czech, Danish, English, Estonian, Filipino, Finnish, French, Galician, German, Greek, Hungarian, Icelandic, Indonesian, Irish, Italian, Latvian, Lithuanian, Luxembourgish, Macedonian, Malagasy, Malay, Mongolian, Norwegian, Polish, Portuguese, Romanian, Russian, Scottish Gaelic, Serbian, Slovak, Slovenian, liish, Swahili, Swedish, Taita, Turkish, Welsh, Zulu 17 | 18 | ### License 19 | This Font Software is licensed under the SIL Open Font License, Version 1.1. 20 | 21 | This license is available with an FAQ at http://scripts.sil.org/OFL 22 | 23 | — — 24 | 25 | ### Tiaki Hauora Project 26 | 27 | [Tiaki Hauora](https://github.com/TiakiApp) is a BE(Hons) research project of [Preet Patel](https://github.com/PreetPatel) and [Marc Burgess](https://github.com/margeobur). 28 | 29 | [![UOA](docs/uoa.svg)](http://engineering.auckland.ac.nz/) 30 | -------------------------------------------------------------------------------- /docs/HS_Intro.ai: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/WCYS-Co/Hauora-Sans/75131397db767f52236dde990405aad2deaf9cb6/docs/HS_Intro.ai -------------------------------------------------------------------------------- /docs/HS_OpenGraph.ai: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/WCYS-Co/Hauora-Sans/75131397db767f52236dde990405aad2deaf9cb6/docs/HS_OpenGraph.ai -------------------------------------------------------------------------------- /docs/HS_OpenGraph.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/WCYS-Co/Hauora-Sans/75131397db767f52236dde990405aad2deaf9cb6/docs/HS_OpenGraph.jpg -------------------------------------------------------------------------------- /docs/HS_OpenGraph.svg: -------------------------------------------------------------------------------- 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 | 64 | 65 | 66 | 67 | 68 | 69 | -------------------------------------------------------------------------------- /docs/uoa.svg: -------------------------------------------------------------------------------- 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 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | -------------------------------------------------------------------------------- /fonts/otf/Hauora-Bold.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/WCYS-Co/Hauora-Sans/75131397db767f52236dde990405aad2deaf9cb6/fonts/otf/Hauora-Bold.otf -------------------------------------------------------------------------------- /fonts/otf/Hauora-ExtraBold.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/WCYS-Co/Hauora-Sans/75131397db767f52236dde990405aad2deaf9cb6/fonts/otf/Hauora-ExtraBold.otf -------------------------------------------------------------------------------- /fonts/otf/Hauora-ExtraLight.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/WCYS-Co/Hauora-Sans/75131397db767f52236dde990405aad2deaf9cb6/fonts/otf/Hauora-ExtraLight.otf -------------------------------------------------------------------------------- /fonts/otf/Hauora-Light.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/WCYS-Co/Hauora-Sans/75131397db767f52236dde990405aad2deaf9cb6/fonts/otf/Hauora-Light.otf -------------------------------------------------------------------------------- /fonts/otf/Hauora-Medium.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/WCYS-Co/Hauora-Sans/75131397db767f52236dde990405aad2deaf9cb6/fonts/otf/Hauora-Medium.otf -------------------------------------------------------------------------------- /fonts/otf/Hauora-Regular.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/WCYS-Co/Hauora-Sans/75131397db767f52236dde990405aad2deaf9cb6/fonts/otf/Hauora-Regular.otf -------------------------------------------------------------------------------- /fonts/otf/Hauora-SemiBold.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/WCYS-Co/Hauora-Sans/75131397db767f52236dde990405aad2deaf9cb6/fonts/otf/Hauora-SemiBold.otf -------------------------------------------------------------------------------- /fonts/ttf/Hauora-Bold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/WCYS-Co/Hauora-Sans/75131397db767f52236dde990405aad2deaf9cb6/fonts/ttf/Hauora-Bold.ttf -------------------------------------------------------------------------------- /fonts/ttf/Hauora-ExtraBold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/WCYS-Co/Hauora-Sans/75131397db767f52236dde990405aad2deaf9cb6/fonts/ttf/Hauora-ExtraBold.ttf -------------------------------------------------------------------------------- /fonts/ttf/Hauora-ExtraLight.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/WCYS-Co/Hauora-Sans/75131397db767f52236dde990405aad2deaf9cb6/fonts/ttf/Hauora-ExtraLight.ttf -------------------------------------------------------------------------------- /fonts/ttf/Hauora-Light.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/WCYS-Co/Hauora-Sans/75131397db767f52236dde990405aad2deaf9cb6/fonts/ttf/Hauora-Light.ttf -------------------------------------------------------------------------------- /fonts/ttf/Hauora-Medium.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/WCYS-Co/Hauora-Sans/75131397db767f52236dde990405aad2deaf9cb6/fonts/ttf/Hauora-Medium.ttf -------------------------------------------------------------------------------- /fonts/ttf/Hauora-Regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/WCYS-Co/Hauora-Sans/75131397db767f52236dde990405aad2deaf9cb6/fonts/ttf/Hauora-Regular.ttf -------------------------------------------------------------------------------- /fonts/ttf/Hauora-SemiBold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/WCYS-Co/Hauora-Sans/75131397db767f52236dde990405aad2deaf9cb6/fonts/ttf/Hauora-SemiBold.ttf -------------------------------------------------------------------------------- /fonts/variable/Hauora[wght].ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/WCYS-Co/Hauora-Sans/75131397db767f52236dde990405aad2deaf9cb6/fonts/variable/Hauora[wght].ttf -------------------------------------------------------------------------------- /fonts/webfonts/Hauora-Bold.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/WCYS-Co/Hauora-Sans/75131397db767f52236dde990405aad2deaf9cb6/fonts/webfonts/Hauora-Bold.woff2 -------------------------------------------------------------------------------- /fonts/webfonts/Hauora-ExtraBold.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/WCYS-Co/Hauora-Sans/75131397db767f52236dde990405aad2deaf9cb6/fonts/webfonts/Hauora-ExtraBold.woff2 -------------------------------------------------------------------------------- /fonts/webfonts/Hauora-ExtraLight.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/WCYS-Co/Hauora-Sans/75131397db767f52236dde990405aad2deaf9cb6/fonts/webfonts/Hauora-ExtraLight.woff2 -------------------------------------------------------------------------------- /fonts/webfonts/Hauora-Light.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/WCYS-Co/Hauora-Sans/75131397db767f52236dde990405aad2deaf9cb6/fonts/webfonts/Hauora-Light.woff2 -------------------------------------------------------------------------------- /fonts/webfonts/Hauora-Medium.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/WCYS-Co/Hauora-Sans/75131397db767f52236dde990405aad2deaf9cb6/fonts/webfonts/Hauora-Medium.woff2 -------------------------------------------------------------------------------- /fonts/webfonts/Hauora-Regular.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/WCYS-Co/Hauora-Sans/75131397db767f52236dde990405aad2deaf9cb6/fonts/webfonts/Hauora-Regular.woff2 -------------------------------------------------------------------------------- /fonts/webfonts/Hauora-SemiBold.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/WCYS-Co/Hauora-Sans/75131397db767f52236dde990405aad2deaf9cb6/fonts/webfonts/Hauora-SemiBold.woff2 -------------------------------------------------------------------------------- /index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | Hauora Sans 7 | 90 | 91 | 92 |
93 |

94 | Hauora Sans
95 | Type Specimen 96 |

97 |

98 | Font source: https://github.com/wayne-shih/UOA-HauoraSans
99 | Text below copied without modification from Wikipedia 100 |

101 |
102 |
103 | 800 ExtraBold 104 |

Health care in New Zealand — Public Health Act 1872

105 |

106 | The Public Health Act 1872 introduced local authority health boards. These were funded primarily by the local ratepayers and subsidised by the national government. There was still a large reliance on private charity to make up any shortfall. From 1909 poorer districts were given disproportionately more funding from the national government. In 1938, the Social Security Act from the First Labour Government attempted to provide government funded healthcare to all. This failed as medical professionals still wanted to charge those patients who could afford the cost. The government settled on the idea of only subsidising the poor. This remained largely unchanged until the late 1970s. From 1984 to 1993 the Labour then National governments introduced major changes designed to get area health boards (later Crown health enterprises) to imitate market forces. User charges were introduced for prescriptions in February 1985 but broader controversial policies introduced by the Fourth National Government between 1991 and 1993 effectively ended largely free provision of primary healthcare, such services being targeted on the basis of income while Community Service Cards (introduced on 1 February 1992) provided additional support. Public hospital charges of $50 for overnight stays were briefly implemented but was later abandoned as the 1993 election approached.
107 |

108 |
109 |
110 | 700 Bold 111 |

Health care in New Zealand — Public Health Act 1872

112 |

113 | The Public Health Act 1872 introduced local authority health boards. These were funded primarily by the local ratepayers and subsidised by the national government. There was still a large reliance on private charity to make up any shortfall. From 1909 poorer districts were given disproportionately more funding from the national government. In 1938, the Social Security Act from the First Labour Government attempted to provide government funded healthcare to all. This failed as medical professionals still wanted to charge those patients who could afford the cost. The government settled on the idea of only subsidising the poor. This remained largely unchanged until the late 1970s. From 1984 to 1993 the Labour then National governments introduced major changes designed to get area health boards (later Crown health enterprises) to imitate market forces. User charges were introduced for prescriptions in February 1985 but broader controversial policies introduced by the Fourth National Government between 1991 and 1993 effectively ended largely free provision of primary healthcare, such services being targeted on the basis of income while Community Service Cards (introduced on 1 February 1992) provided additional support. Public hospital charges of $50 for overnight stays were briefly implemented but was later abandoned as the 1993 election approached.
114 |

115 |
116 |
117 | 600 SemiBold 118 |

Health care in New Zealand — Public Health Act 1872

119 |

120 | The Public Health Act 1872 introduced local authority health boards. These were funded primarily by the local ratepayers and subsidised by the national government. There was still a large reliance on private charity to make up any shortfall. From 1909 poorer districts were given disproportionately more funding from the national government. In 1938, the Social Security Act from the First Labour Government attempted to provide government funded healthcare to all. This failed as medical professionals still wanted to charge those patients who could afford the cost. The government settled on the idea of only subsidising the poor. This remained largely unchanged until the late 1970s. From 1984 to 1993 the Labour then National governments introduced major changes designed to get area health boards (later Crown health enterprises) to imitate market forces. User charges were introduced for prescriptions in February 1985 but broader controversial policies introduced by the Fourth National Government between 1991 and 1993 effectively ended largely free provision of primary healthcare, such services being targeted on the basis of income while Community Service Cards (introduced on 1 February 1992) provided additional support. Public hospital charges of $50 for overnight stays were briefly implemented but was later abandoned as the 1993 election approached.
121 |

122 |
123 |
124 | 500 Medium 125 |

Health care in New Zealand — Public Health Act 1872

126 |

127 | The Public Health Act 1872 introduced local authority health boards. These were funded primarily by the local ratepayers and subsidised by the national government. There was still a large reliance on private charity to make up any shortfall. From 1909 poorer districts were given disproportionately more funding from the national government. In 1938, the Social Security Act from the First Labour Government attempted to provide government funded healthcare to all. This failed as medical professionals still wanted to charge those patients who could afford the cost. The government settled on the idea of only subsidising the poor. This remained largely unchanged until the late 1970s. From 1984 to 1993 the Labour then National governments introduced major changes designed to get area health boards (later Crown health enterprises) to imitate market forces. User charges were introduced for prescriptions in February 1985 but broader controversial policies introduced by the Fourth National Government between 1991 and 1993 effectively ended largely free provision of primary healthcare, such services being targeted on the basis of income while Community Service Cards (introduced on 1 February 1992) provided additional support. Public hospital charges of $50 for overnight stays were briefly implemented but was later abandoned as the 1993 election approached.
128 |

129 |
130 |
131 | 400 Regular 132 |

Health care in New Zealand — Public Health Act 1872

133 |

134 | The Public Health Act 1872 introduced local authority health boards. These were funded primarily by the local ratepayers and subsidised by the national government. There was still a large reliance on private charity to make up any shortfall. From 1909 poorer districts were given disproportionately more funding from the national government. In 1938, the Social Security Act from the First Labour Government attempted to provide government funded healthcare to all. This failed as medical professionals still wanted to charge those patients who could afford the cost. The government settled on the idea of only subsidising the poor. This remained largely unchanged until the late 1970s. From 1984 to 1993 the Labour then National governments introduced major changes designed to get area health boards (later Crown health enterprises) to imitate market forces. User charges were introduced for prescriptions in February 1985 but broader controversial policies introduced by the Fourth National Government between 1991 and 1993 effectively ended largely free provision of primary healthcare, such services being targeted on the basis of income while Community Service Cards (introduced on 1 February 1992) provided additional support. Public hospital charges of $50 for overnight stays were briefly implemented but was later abandoned as the 1993 election approached.
135 |

136 |
137 |
138 | 300 Light 139 |

Health care in New Zealand — Public Health Act 1872

140 |

141 | The Public Health Act 1872 introduced local authority health boards. These were funded primarily by the local ratepayers and subsidised by the national government. There was still a large reliance on private charity to make up any shortfall. From 1909 poorer districts were given disproportionately more funding from the national government. In 1938, the Social Security Act from the First Labour Government attempted to provide government funded healthcare to all. This failed as medical professionals still wanted to charge those patients who could afford the cost. The government settled on the idea of only subsidising the poor. This remained largely unchanged until the late 1970s. From 1984 to 1993 the Labour then National governments introduced major changes designed to get area health boards (later Crown health enterprises) to imitate market forces. User charges were introduced for prescriptions in February 1985 but broader controversial policies introduced by the Fourth National Government between 1991 and 1993 effectively ended largely free provision of primary healthcare, such services being targeted on the basis of income while Community Service Cards (introduced on 1 February 1992) provided additional support. Public hospital charges of $50 for overnight stays were briefly implemented but was later abandoned as the 1993 election approached.
142 |

143 |
144 |
145 | 200 ExtraLight 146 |

Health care in New Zealand — Public Health Act 1872

147 |

148 | The Public Health Act 1872 introduced local authority health boards. These were funded primarily by the local ratepayers and subsidised by the national government. There was still a large reliance on private charity to make up any shortfall. From 1909 poorer districts were given disproportionately more funding from the national government. In 1938, the Social Security Act from the First Labour Government attempted to provide government funded healthcare to all. This failed as medical professionals still wanted to charge those patients who could afford the cost. The government settled on the idea of only subsidising the poor. This remained largely unchanged until the late 1970s. From 1984 to 1993 the Labour then National governments introduced major changes designed to get area health boards (later Crown health enterprises) to imitate market forces. User charges were introduced for prescriptions in February 1985 but broader controversial policies introduced by the Fourth National Government between 1991 and 1993 effectively ended largely free provision of primary healthcare, such services being targeted on the basis of income while Community Service Cards (introduced on 1 February 1992) provided additional support. Public hospital charges of $50 for overnight stays were briefly implemented but was later abandoned as the 1993 election approached.
149 |

150 |
151 | 152 | 153 | -------------------------------------------------------------------------------- /requirements.txt: -------------------------------------------------------------------------------- 1 | absl-py==1.2.0 2 | appdirs==1.4.4 3 | attrs==22.1.0 4 | axisregistry==0.3.6 5 | babelfont==2.0.2 6 | beautifulsoup4==4.11.1 7 | beziers==0.5.0 8 | blackrenderer==0.6.0 9 | booleanOperations==0.9.0 10 | Brotli==1.0.9 11 | browserstack-local==1.2.2 12 | bump2version==1.0.1 13 | bumpfontversion==0.4.1 14 | cattrs==22.2.0 15 | certifi==2022.9.24 16 | cffi==1.15.1 17 | cffsubr==0.2.9.post1 18 | charset-normalizer==2.1.1 19 | click==8.1.3 20 | cmarkgfm==0.8.0 21 | collidoscope==0.4.1 22 | colorlog==6.7.0 23 | commandlines==0.4.1 24 | commonmark==0.9.1 25 | compreffor==0.5.2 26 | cu2qu==1.6.7.post1 27 | defcon==0.10.2 28 | dehinter==4.0.0 29 | Deprecated==1.2.13 30 | drawbot-skia==0.5.0 31 | exceptiongroup==1.0.0rc9 32 | font-v==2.1.0 33 | fontbakery==0.8.10 34 | fontdiffenator==0.9.13 35 | fontFeatures==1.7.2 36 | fontmake==3.4.0 37 | fontMath==0.9.2 38 | fontParts==0.10.8 39 | fontPens==0.2.4 40 | fonttools==4.37.4 41 | freetype-py==2.3.0 42 | fs==2.4.16 43 | gfdiffbrowsers==0.1.7 44 | gflanguages==0.4.0 45 | gftools==0.9.19 46 | gitdb==4.0.9 47 | GitPython==3.1.28 48 | glyphsets==0.5.3 49 | glyphsLib==6.1.0 50 | glyphtools==0.8.0 51 | hyperglot==0.4.1 52 | idna==3.4 53 | importlib-resources==5.10.0 54 | Jinja2==3.1.2 55 | lxml==4.9.1 56 | MarkupSafe==2.1.1 57 | nanoemoji==0.15.0 58 | ninja==1.10.2.4 59 | numpy==1.23.3 60 | openstep-plist==0.3.0 61 | opentype-sanitizer==9.0.0 62 | opentypespec==1.8.4 63 | packaging==21.3 64 | picosvg==0.20.4 65 | Pillow==9.2.0 66 | pip-api==0.0.30 67 | pngquant-cli==2.17.0.post5 68 | protobuf==3.19.4 69 | psutil==5.9.2 70 | pybind11==2.10.0 71 | pybrowserstack-screenshots==0.1 72 | pycairo==1.21.0 73 | pyclipper==1.3.0.post3 74 | pycparser==2.21 75 | pygit2==1.10.1 76 | PyGithub==1.55 77 | Pygments==2.13.0 78 | PyJWT==2.5.0 79 | PyNaCl==1.5.0 80 | pyparsing==3.0.9 81 | python-bidi==0.4.2 82 | python-dateutil==2.8.2 83 | PyYAML==6.0 84 | regex==2022.9.13 85 | requests==2.28.1 86 | resvg-cli==0.22.0.post3 87 | rich==12.6.0 88 | rstr==3.2.0 89 | sh==1.14.3 90 | simplejson==3.17.6 91 | six==1.16.0 92 | skia-pathops==0.7.2 93 | skia-python==87.4 94 | smmap==5.0.0 95 | soupsieve==2.3.2.post1 96 | sre-yield==1.2 97 | statmake==0.5.1 98 | strictyaml==1.6.2 99 | stringbrewer==0.0.1 100 | tabulate==0.9.0 101 | toml==0.10.2 102 | ttfautohint-py==0.5.1 103 | typing_extensions==4.4.0 104 | ufo2ft==2.28.0 105 | ufoLib2==0.13.1 106 | ufolint==1.2.0 107 | uharfbuzz==0.31.0 108 | unicodedata2==14.0.0 109 | Unidecode==1.3.6 110 | urllib3==1.26.12 111 | vharfbuzz==0.1.4 112 | vttLib==0.11.0 113 | wrapt==1.14.1 114 | zipp==3.9.0 115 | zopfli==0.2.1 116 | -------------------------------------------------------------------------------- /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 datetime 9 | import re 10 | import sys 11 | from urllib.parse import quote 12 | import subprocess 13 | 14 | BASE_OWNER = "wcys-co" 15 | BASE_REPONAME = "--font-template" 16 | DUMMY_URL = "https://yourname.github.io/your-font-repository-name" 17 | 18 | 19 | def repo_url(owner, name): 20 | return f"https://github.com/{owner}/{name}" 21 | 22 | 23 | def web_url(owner, name): 24 | return f"https://{owner}.github.io/{name}" 25 | 26 | 27 | def raw_url(owner, name): 28 | return f"https://raw.githubusercontent.com/{owner}/{name}" 29 | 30 | 31 | def touch(): 32 | open(".init.stamp", "w").close() 33 | 34 | 35 | def lose(msg, e=None): 36 | print(msg) 37 | print("You will need to do the initialization steps manually.") 38 | print("Read scripts/first-run.py for more instructions how to do this.") 39 | if e: 40 | print( 41 | "\nHere's an additional error message which may help diagnose the problem." 42 | ) 43 | raise e 44 | sys.exit(1) 45 | 46 | 47 | try: 48 | my_repo_url = git.remote("get-url", "origin") 49 | except Exception as e: 50 | lose("Could not use git to find my own repository URL", e) 51 | 52 | m = re.match(r"(?:https://github.com/|git@github.com:)(.*)/(.*)/?", str(my_repo_url)) 53 | if not m: 54 | lose( 55 | f"My git repository URL ({my_repo_url}) didn't look what I expected - are you hosting this on github?" 56 | ) 57 | 58 | owner, reponame = m[1], m[2] 59 | 60 | if owner == BASE_OWNER and reponame == BASE_REPONAME: 61 | print("I am being run on the upstream repository (probably due to CI)") 62 | print("All I'm going to do is create the touch file and quit.") 63 | touch() 64 | sys.exit() 65 | 66 | # INITIALIZATION STEPS 67 | 68 | # First, the README file contains URLs to pages in the `gh-pages` branch of the 69 | # repo. When initially cloned, these URLs will point to the 70 | # googlefonts/Unified-Font-Repository itself. But downstream users want links 71 | # and badges about their own font, not ours! So any URLs need to be adjusted to 72 | # refer to the end user's repository. 73 | 74 | # We will also pin the dependencies so future builds are reproducible. 75 | 76 | readme = open("README.md").read() 77 | 78 | print( 79 | "Fixing URLs:", web_url(BASE_OWNER, BASE_REPONAME), "->", web_url(owner, reponame) 80 | ) 81 | 82 | readme = readme.replace(web_url(BASE_OWNER, BASE_REPONAME), web_url(owner, reponame)) 83 | # In the badges, the URLs to raw.githubusercontent.com are URL-encoded as they 84 | # are passed to shields.io. 85 | print( 86 | "Fixing URLs:", 87 | quote(raw_url(BASE_OWNER, BASE_REPONAME), safe=""), 88 | "->", 89 | quote(raw_url(owner, reponame), safe=""), 90 | ) 91 | readme = readme.replace( 92 | quote(raw_url(BASE_OWNER, BASE_REPONAME), safe=""), 93 | quote(raw_url(owner, reponame), safe=""), 94 | ) 95 | 96 | print( 97 | "Fixing URLs:", 98 | DUMMY_URL, 99 | "->", 100 | web_url(owner, reponame), 101 | ) 102 | readme = readme.replace( 103 | f"`{DUMMY_URL}`", 104 | web_url(owner, reponame), 105 | ) 106 | 107 | with open("README.md", "w") as fh: 108 | fh.write(readme) 109 | 110 | # Fix the OFL 111 | 112 | ofl = open("OFL.txt").read() 113 | ofl = ofl.replace(web_url(BASE_OWNER, BASE_REPONAME), web_url(owner, reponame)) 114 | ofl = ofl.replace("My Font", reponame.title()) 115 | ofl = ofl.replace("20**", str(datetime.date.today().year)) 116 | with open("OFL.txt", "w") as fh: 117 | fh.write(ofl) 118 | 119 | # Pin the dependencies 120 | print("Pinning dependencies") 121 | dependencies = subprocess.check_output(["pip", "freeze"]) 122 | with open("requirements.txt", "wb") as dependency_file: 123 | dependency_file.write(dependencies) 124 | 125 | # Finally, we add a "touch file" called ".init.stamp" to the repository which 126 | # prevents this first-run process from being run again. 127 | touch() 128 | -------------------------------------------------------------------------------- /scripts/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | {{font-name}} – testing pages 7 | 8 | 13 | 14 | 15 |
16 |

{{font-name}} – testing pages

17 |
18 |
19 |

20 | FontBakery Report 21 |

22 |

23 | All glyphs 24 |

25 |

26 | Sample text 27 |

28 |

29 | Waterfall test 30 |

31 | 32 |
33 | 34 | 35 | -------------------------------------------------------------------------------- /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/config.yaml: -------------------------------------------------------------------------------- 1 | sources: 2 | - Hauora.glyphs 3 | axisOrder: 4 | - wght 5 | familyName: Hauora 6 | --------------------------------------------------------------------------------