├── .github └── workflows │ └── build.yaml ├── .gitignore ├── .templaterc.json ├── AUTHORS.txt ├── CONTRIBUTORS.txt ├── Makefile ├── OFL.txt ├── README.md ├── documentation ├── DESCRIPTION.en_us.html ├── Parkinsans_Specimen_01.jpg ├── Parkinsans_Specimen_02.jpg ├── Parkinsans_Specimen_03.jpg ├── Parkinsans_Specimen_04.jpg ├── Parkinsans_Specimen_05.jpg └── images-license.txt ├── fonts ├── ttf │ ├── Parkinsans-Bold.ttf │ ├── Parkinsans-ExtraBold.ttf │ ├── Parkinsans-Light.ttf │ ├── Parkinsans-Medium.ttf │ ├── Parkinsans-Regular.ttf │ └── Parkinsans-SemiBold.ttf ├── variable │ └── Parkinsans[wght].ttf └── webfonts │ ├── Parkinsans-Bold.woff2 │ ├── Parkinsans-ExtraBold.woff2 │ ├── Parkinsans-Light.woff2 │ ├── Parkinsans-Medium.woff2 │ ├── Parkinsans-Regular.woff2 │ ├── Parkinsans-SemiBold.woff2 │ └── Parkinsans[wght].woff2 ├── renovate.json ├── requirements-test.in ├── requirements-test.txt ├── requirements.in ├── requirements.txt ├── scripts ├── customize.py ├── index.html ├── read-config.py └── update-custom-filter.py └── sources ├── CustomFilter_GF_Latin_All.plist ├── Parkinsans.glyphs └── config.yaml /.github/workflows/build.yaml: -------------------------------------------------------------------------------- 1 | name: Build font and specimen 2 | 3 | on: push 4 | 5 | jobs: 6 | build: 7 | name: Build and test 8 | runs-on: ubuntu-latest 9 | steps: 10 | - uses: actions/checkout@v4 11 | - name: Set up Python 3.10 12 | uses: actions/setup-python@v5 13 | with: 14 | python-version: "3.10" 15 | - name: Install sys tools/deps 16 | run: | 17 | sudo apt-get update 18 | sudo apt-get install ttfautohint 19 | sudo snap install yq 20 | - uses: actions/cache@v4 21 | with: 22 | path: ./venv/ 23 | key: ${{ runner.os }}-venv-${{ hashFiles('**/requirements*.txt') }} 24 | restore-keys: | 25 | ${{ runner.os }}-venv- 26 | - name: gen zip file name 27 | id: zip-name 28 | shell: bash 29 | # Set the archive name to repo name + "-assets" e.g "MavenPro-assets" 30 | run: echo "ZIP_NAME=$(echo '${{ github.repository }}' | awk -F '/' '{print $2}')-fonts" >> $GITHUB_ENV 31 | 32 | # If a new release is cut, use the release tag to auto-bump the source files 33 | # - name: Bump release 34 | # if: github.event_name == 'release' 35 | # run: | 36 | # . venv/bin/activate 37 | # SRCS=$(yq e ".sources[]" sources/config.yaml) 38 | # TAG_NAME=${GITHUB_REF/refs\/tags\//} 39 | # echo "Bumping $SRCS to $TAG_NAME" 40 | # for src in $SRCS 41 | # do 42 | # bumpfontversion sources/$src --new-version $TAG_NAME; 43 | # done 44 | 45 | - name: Build font 46 | run: make build 47 | - name: Check with fontbakery 48 | run: make test 49 | continue-on-error: true 50 | - name: proof 51 | run: make proof 52 | - name: setup site 53 | run: cp scripts/index.html out/index.html 54 | - name: Deploy 55 | uses: peaceiris/actions-gh-pages@v4 56 | if: ${{ github.ref == 'refs/heads/main' }} 57 | with: 58 | github_token: ${{ secrets.GITHUB_TOKEN }} 59 | publish_dir: ./out 60 | - name: Archive artifacts 61 | uses: actions/upload-artifact@v4 62 | with: 63 | name: ${{ env.ZIP_NAME }} 64 | path: | 65 | fonts 66 | out 67 | outputs: 68 | zip_name: ${{ env.ZIP_NAME }} 69 | 70 | # There are two ways a release can be created: either by pushing a tag, or by 71 | # creating a release from the GitHub UI. Pushing a tag does not automatically 72 | # create a release, so we have to do that ourselves. However, creating a 73 | # release from the GitHub UI *does* push a tag, and we don't want to create 74 | # a new release in that case because one already exists! 75 | 76 | release: 77 | name: Create and populate release 78 | needs: build 79 | runs-on: ubuntu-latest 80 | if: contains(github.ref, 'refs/tags/') 81 | env: 82 | ZIP_NAME: ${{ needs.build.outputs.zip_name }} 83 | GH_TOKEN: ${{ github.token }} 84 | steps: 85 | - uses: actions/checkout@v4 86 | - name: Download font artefact files 87 | uses: actions/download-artifact@v4 88 | with: 89 | name: ${{ env.ZIP_NAME }} 90 | path: ${{ env.ZIP_NAME }} 91 | - name: Copy DESCRIPTION.en_us.html to artefact directory 92 | run: cp documentation/DESCRIPTION.en_us.html ${{ env.ZIP_NAME }}/DESCRIPTION.en_us.html 93 | - name: Copy ARTICLE.en_us.html to artefact directory 94 | run: cp documentation/ARTICLE.en_us.html ${{ env.ZIP_NAME }}/ARTICLE.en_us.html 95 | continue-on-error: true 96 | - name: Copy OFL.txt to artefact directory 97 | run: cp OFL.txt ${{ env.ZIP_NAME }}/OFL.txt 98 | - name: Remove proof/fontbakery stuff from release 99 | run: rm -rf ${{ env.ZIP_NAME }}/out 100 | - name: gen release file name 101 | shell: bash 102 | run: echo "RELEASE_ZIP_NAME=$(echo '${{ github.repository }}' | awk -F '/' '{print $2}')-${{github.ref_name}}" >> $GITHUB_ENV 103 | - name: Create release bundle 104 | run: mv ${{ env.ZIP_NAME }} ${{ env.RELEASE_ZIP_NAME }}; zip -r ${{ env.RELEASE_ZIP_NAME }}.zip ${{ env.RELEASE_ZIP_NAME }} 105 | - name: Check for release 106 | id: create_release 107 | run: | 108 | if ! gh release view ${{ github.ref_name }}; then 109 | git show -s --format=%B ${{ github.ref_name }} | tail -n +4 | gh release create ${{ github.ref_name }} -t ${{ github.ref_name }} -F - 110 | fi 111 | - name: Populate release 112 | run: | 113 | gh release upload ${{ github.ref_name }} ${{ env.RELEASE_ZIP_NAME }}.zip --clobber 114 | - name: Set release live 115 | run: | 116 | gh release edit ${{ github.ref_name }} --draft=false -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | *~ 2 | venv 3 | venv-test 4 | build.stamp 5 | proof 6 | node_modules 7 | package-lock.json 8 | package.json 9 | master_ufo 10 | instance_ufos 11 | .ninja_log 12 | build.ninja 13 | 14 | # OS generated files # 15 | ###################### 16 | .DS_Store 17 | .DS_Store? 18 | ._* 19 | .Spotlight-V100 20 | .Trashes 21 | ehthumbs.db 22 | Thumbs.db 23 | 24 | # Autosaved by application when editing 25 | ###################### 26 | *(تم الحفظ تلقائيًا).* 27 | *(automaticky uloženo).* 28 | *(Automatisch gesichert).* 29 | *(Autosaved).* 30 | *(guardado automáticamente).* 31 | *(enregistré automatiquement).* 32 | *(salvato automaticamente).* 33 | *(自動保存).* 34 | *(자동 저장됨).* 35 | *(Salvo Automaticamente).* 36 | *(Автосохранение).* 37 | *(Otomatik Kaydedildi).* 38 | *(自动存储).* 39 | *(已自動儲存).* 40 | -------------------------------------------------------------------------------- /.templaterc.json: -------------------------------------------------------------------------------- 1 | { 2 | "files": [".github/**/*", "Makefile", "scripts/**/*", "requirements.txt"] 3 | } 4 | -------------------------------------------------------------------------------- /AUTHORS.txt: -------------------------------------------------------------------------------- 1 | Red Stone 2 | Indian Type Foundry 3 | 4 | -------------------------------------------------------------------------------- /CONTRIBUTORS.txt: -------------------------------------------------------------------------------- 1 | Red Stone 2 | -------------------------------------------------------------------------------- /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 | venv-test: venv-test/touchfile 22 | 23 | customize: venv 24 | . venv/bin/activate; python3 scripts/customize.py 25 | 26 | build.stamp: venv sources/config.yaml $(SOURCES) 27 | rm -rf fonts 28 | (for config in sources/config*.yaml; do . venv/bin/activate; gftools builder $$config; done) && touch build.stamp 29 | 30 | venv/touchfile: requirements.txt 31 | test -d venv || python3 -m venv venv 32 | . venv/bin/activate; pip install -Ur requirements.txt 33 | touch venv/touchfile 34 | 35 | venv-test/touchfile: requirements-test.txt 36 | test -d venv-test || python3 -m venv venv-test 37 | . venv-test/bin/activate; pip install -Ur requirements-test.txt 38 | touch venv-test/touchfile 39 | 40 | test: venv-test build.stamp 41 | TOCHECK=$$(find fonts/variable -type f 2>/dev/null); if [ -z "$$TOCHECK" ]; then TOCHECK=$$(find fonts/ttf -type f 2>/dev/null); fi ; . venv-test/bin/activate; mkdir -p out/ out/fontbakery; fontbakery check-googlefonts -l WARN --full-lists --succinct --badges out/badges --html out/fontbakery/fontbakery-report.html --ghmarkdown out/fontbakery/fontbakery-report.md $$TOCHECK || echo '::warning file=sources/config.yaml,title=Fontbakery failures::The fontbakery QA check reported errors in your font. Please check the generated report.' 42 | 43 | proof: venv build.stamp 44 | TOCHECK=$$(find fonts/variable -type f 2>/dev/null); if [ -z "$$TOCHECK" ]; then TOCHECK=$$(find fonts/ttf -type f 2>/dev/null); fi ; . venv/bin/activate; mkdir -p out/ out/proof; diffenator2 proof $$TOCHECK -o out/proof 45 | 46 | images: venv $(DRAWBOT_OUTPUT) 47 | 48 | %.png: %.py build.stamp 49 | . venv/bin/activate; python3 $< --output $@ 50 | 51 | clean: 52 | rm -rf venv 53 | find . -name "*.pyc" -delete 54 | 55 | update-project-template: 56 | npx update-template https://github.com/googlefonts/googlefonts-project-template/ 57 | 58 | update: venv venv-test 59 | venv/bin/pip install --upgrade pip-tools 60 | # See https://pip-tools.readthedocs.io/en/latest/#a-note-on-resolvers for 61 | # the `--resolver` flag below. 62 | venv/bin/pip-compile --upgrade --verbose --resolver=backtracking requirements.in 63 | venv/bin/pip-sync requirements.txt 64 | 65 | venv-test/bin/pip install --upgrade pip-tools 66 | venv-test/bin/pip-compile --upgrade --verbose --resolver=backtracking requirements-test.in 67 | venv-test/bin/pip-sync requirements-test.txt 68 | 69 | git commit -m "Update requirements" requirements.txt requirements-test.txt 70 | git push 71 | -------------------------------------------------------------------------------- /OFL.txt: -------------------------------------------------------------------------------- 1 | Copyright 2024 The Parkinsans Project Authors (https://github.com/redstonedesign/parkinsans) 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://openfontlicense.org 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 | # Parkinsans 3 | 4 | [![][Fontbakery]](https://redstonedesign.github.io/parkinsans/fontbakery/fontbakery-report.html) 5 | 6 | 7 | [Fontbakery]: https://img.shields.io/endpoint?url=https%3A%2F%2Fraw.githubusercontent.com%2Fgooglefonts%2Fgooglefonts-project-template%2Fgh-pages%2Fbadges%2Foverall.json 8 | 9 | 10 | Parkinsans is a geometric sans serif designed for UK charity Parkinson’s UK. 11 | 12 | Energetic, human, accessible, approachable – Parkinsans embodies Parkinson’s UK’s relentless energy, whilst typographic quirks reflect the unique experience of every Parkinson’s journey. 13 | 14 | Consisting of 6 weights, Parkinsans is designed to grab attention at display sizes and provide an accessible, easy reading experience for short form copy. 15 | 16 | Designed by award-winning, London based creative agency Red Stone, Parkinsans is a fork of from Indian Type Foundry's [Poppins](https://fonts.google.com/specimen/Poppins). 17 | 18 | 19 | ![Parkinsans](documentation/Parkinsans_Specimen_01.jpg) 20 | ![Parkinsans](documentation/Parkinsans_Specimen_02.jpg) 21 | ![Parkinsans](documentation/Parkinsans_Specimen_03.jpg) 22 | ![Parkinsans](documentation/Parkinsans_Specimen_04.jpg) 23 | ![Parkinsans](documentation/Parkinsans_Specimen_05.jpg) 24 | 25 | ## About 26 | 27 | Red Stone is an award-winning creative agency based in East London. We partner with ambitious and courageous organisations looking to make a positive change to the world. 28 | 29 | ## Building 30 | 31 | Fonts are built automatically by GitHub Actions - take a look in the "Actions" tab for the latest build. 32 | 33 | If you want to build fonts manually on your own computer: 34 | 35 | * `make build` will produce font files. 36 | * `make test` will run [FontBakery](https://github.com/googlefonts/fontbakery)'s quality assurance tests. 37 | * `make proof` will generate HTML proof files. 38 | 39 | The proof files and QA tests are also available automatically via GitHub Actions - look at `https://github.com/redstonedesign/parkinsans`. 40 | 41 | ## Changelog 42 | 43 | 44 | **03 Oct 2024. Version 1.0** 45 | - Parkinsans Git repo created. 46 | - Parkinsans files added to Git repo. 47 | 48 | ## License 49 | 50 | This Font Software is licensed under the SIL Open Font License, Version 1.1. 51 | This license is available with a FAQ at 52 | https://scripts.sil.org/OFL 53 | 54 | ## Repository Layout 55 | 56 | 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. 57 | -------------------------------------------------------------------------------- /documentation/DESCRIPTION.en_us.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | Parkinsans Font Family 7 | 8 | 9 |

Parkinsans is a geometric sans serif designed for UK charity Parkinson’s UK.

10 |

Energetic, human, accessible, approachable – Parkinsans embodies Parkinson’s UK’s relentless energy, whilst typographic quirks reflect the unique experience of every Parkinson’s journey.

11 |

Consisting of 6 weights, Parkinsans is designed to grab attention at display sizes and provide an accessible, easy reading experience for short form copy.

12 |

Designed by award-winning, London based creative agency Red Stone, Parkinsans is derived from Indian Type Foundry's Poppins.

13 | Parkinsans 14 | Parkinsans 15 | Parkinsans 16 | Parkinsans 17 | Parkinsans 18 | 19 | 20 |

21 | To contribute, see github.com/youruseraccount/yourrepository. 22 |

23 | 24 | -------------------------------------------------------------------------------- /documentation/Parkinsans_Specimen_01.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/redstonedesign/parkinsans/9b5ec433f1944dfc0453ef3ce15f67a0649c13b0/documentation/Parkinsans_Specimen_01.jpg -------------------------------------------------------------------------------- /documentation/Parkinsans_Specimen_02.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/redstonedesign/parkinsans/9b5ec433f1944dfc0453ef3ce15f67a0649c13b0/documentation/Parkinsans_Specimen_02.jpg -------------------------------------------------------------------------------- /documentation/Parkinsans_Specimen_03.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/redstonedesign/parkinsans/9b5ec433f1944dfc0453ef3ce15f67a0649c13b0/documentation/Parkinsans_Specimen_03.jpg -------------------------------------------------------------------------------- /documentation/Parkinsans_Specimen_04.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/redstonedesign/parkinsans/9b5ec433f1944dfc0453ef3ce15f67a0649c13b0/documentation/Parkinsans_Specimen_04.jpg -------------------------------------------------------------------------------- /documentation/Parkinsans_Specimen_05.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/redstonedesign/parkinsans/9b5ec433f1944dfc0453ef3ce15f67a0649c13b0/documentation/Parkinsans_Specimen_05.jpg -------------------------------------------------------------------------------- /documentation/images-license.txt: -------------------------------------------------------------------------------- 1 | The images in this repository are licensed under the CC https://creativecommons.org/licenses/by-sa/4.0/ -------------------------------------------------------------------------------- /fonts/ttf/Parkinsans-Bold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/redstonedesign/parkinsans/9b5ec433f1944dfc0453ef3ce15f67a0649c13b0/fonts/ttf/Parkinsans-Bold.ttf -------------------------------------------------------------------------------- /fonts/ttf/Parkinsans-ExtraBold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/redstonedesign/parkinsans/9b5ec433f1944dfc0453ef3ce15f67a0649c13b0/fonts/ttf/Parkinsans-ExtraBold.ttf -------------------------------------------------------------------------------- /fonts/ttf/Parkinsans-Light.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/redstonedesign/parkinsans/9b5ec433f1944dfc0453ef3ce15f67a0649c13b0/fonts/ttf/Parkinsans-Light.ttf -------------------------------------------------------------------------------- /fonts/ttf/Parkinsans-Medium.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/redstonedesign/parkinsans/9b5ec433f1944dfc0453ef3ce15f67a0649c13b0/fonts/ttf/Parkinsans-Medium.ttf -------------------------------------------------------------------------------- /fonts/ttf/Parkinsans-Regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/redstonedesign/parkinsans/9b5ec433f1944dfc0453ef3ce15f67a0649c13b0/fonts/ttf/Parkinsans-Regular.ttf -------------------------------------------------------------------------------- /fonts/ttf/Parkinsans-SemiBold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/redstonedesign/parkinsans/9b5ec433f1944dfc0453ef3ce15f67a0649c13b0/fonts/ttf/Parkinsans-SemiBold.ttf -------------------------------------------------------------------------------- /fonts/variable/Parkinsans[wght].ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/redstonedesign/parkinsans/9b5ec433f1944dfc0453ef3ce15f67a0649c13b0/fonts/variable/Parkinsans[wght].ttf -------------------------------------------------------------------------------- /fonts/webfonts/Parkinsans-Bold.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/redstonedesign/parkinsans/9b5ec433f1944dfc0453ef3ce15f67a0649c13b0/fonts/webfonts/Parkinsans-Bold.woff2 -------------------------------------------------------------------------------- /fonts/webfonts/Parkinsans-ExtraBold.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/redstonedesign/parkinsans/9b5ec433f1944dfc0453ef3ce15f67a0649c13b0/fonts/webfonts/Parkinsans-ExtraBold.woff2 -------------------------------------------------------------------------------- /fonts/webfonts/Parkinsans-Light.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/redstonedesign/parkinsans/9b5ec433f1944dfc0453ef3ce15f67a0649c13b0/fonts/webfonts/Parkinsans-Light.woff2 -------------------------------------------------------------------------------- /fonts/webfonts/Parkinsans-Medium.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/redstonedesign/parkinsans/9b5ec433f1944dfc0453ef3ce15f67a0649c13b0/fonts/webfonts/Parkinsans-Medium.woff2 -------------------------------------------------------------------------------- /fonts/webfonts/Parkinsans-Regular.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/redstonedesign/parkinsans/9b5ec433f1944dfc0453ef3ce15f67a0649c13b0/fonts/webfonts/Parkinsans-Regular.woff2 -------------------------------------------------------------------------------- /fonts/webfonts/Parkinsans-SemiBold.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/redstonedesign/parkinsans/9b5ec433f1944dfc0453ef3ce15f67a0649c13b0/fonts/webfonts/Parkinsans-SemiBold.woff2 -------------------------------------------------------------------------------- /fonts/webfonts/Parkinsans[wght].woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/redstonedesign/parkinsans/9b5ec433f1944dfc0453ef3ce15f67a0649c13b0/fonts/webfonts/Parkinsans[wght].woff2 -------------------------------------------------------------------------------- /renovate.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://docs.renovatebot.com/renovate-schema.json", 3 | "extends": [ 4 | "config:recommended" 5 | ], 6 | "rangeStrategy": "bump" 7 | } 8 | -------------------------------------------------------------------------------- /requirements-test.in: -------------------------------------------------------------------------------- 1 | fontbakery[googlefonts]>=0.9.2 2 | gftools[qa]>=0.9.23 3 | -------------------------------------------------------------------------------- /requirements-test.txt: -------------------------------------------------------------------------------- 1 | # Placeholder file, update the requirements by running `make update`. 2 | -r requirements-test.in 3 | -------------------------------------------------------------------------------- /requirements.in: -------------------------------------------------------------------------------- 1 | fontmake>=3.9.0 2 | gftools[qa]>=0.9.54 3 | drawbot-skia>=0.5.0 4 | sh>=2.0.6 5 | bumpfontversion>=0.4.1 6 | diffenator2>=0.3.8 7 | -------------------------------------------------------------------------------- /requirements.txt: -------------------------------------------------------------------------------- 1 | absl-py==2.1.0 2 | afdko==4.0.1 3 | appdirs==1.4.4 4 | attrs==23.2.0 5 | axisregistry==0.4.9 6 | babelfont==3.0.5 7 | beautifulsoup4==4.12.3 8 | beziers==0.6.0 9 | black==24.4.2 10 | blackrenderer==0.6.0 11 | booleanOperations==0.9.0 12 | Brotli==1.1.0 13 | bump2version==1.0.1 14 | bumpfontversion==0.4.1 15 | cattrs==23.2.3 16 | certifi==2024.6.2 17 | cffi==1.16.0 18 | cffsubr==0.3.0 19 | charset-normalizer==3.3.2 20 | click==8.1.7 21 | cmarkgfm==2024.1.14 22 | commandlines==0.4.1 23 | compreffor==0.5.5 24 | cryptography==42.0.8 25 | defcon==0.10.3 26 | dehinter==4.0.0 27 | Deprecated==1.2.14 28 | diffenator2==0.4.5 29 | docopt==0.6.2 30 | et-xmlfile==1.1.0 31 | filelock==3.14.0 32 | font-v==2.1.0 33 | fontbakery==0.13.0a3 34 | fontFeatures==1.8.0 35 | fontmake==3.10.0 36 | fontMath==0.9.4 37 | fontParts==0.12.1 38 | fontPens==0.2.4 39 | fonttools==4.54.1 40 | freetype-py==2.3.0 41 | fs==2.4.16 42 | gflanguages==0.6.1 43 | gfsubsets==2024.5.9 44 | gftools==0.9.72 45 | gitdb==4.0.11 46 | GitPython==3.1.43 47 | glyphsets==1.0.0 48 | glyphsLib==6.9.2 49 | h11==0.14.0 50 | idna==3.7 51 | importlib_resources==6.4.0 52 | Jinja2==3.1.4 53 | lxml==5.2.2 54 | markdown-it-py==3.0.0 55 | MarkupSafe==2.1.5 56 | mdurl==0.1.2 57 | munkres==1.1.4 58 | MutatorMath==3.0.1 59 | mypy-extensions==1.0.0 60 | nanoemoji==0.15.1 61 | networkx==3.3 62 | ninja==1.11.1.1 63 | num2words==0.5.13 64 | numpy==1.26.4 65 | openpyxl==3.1.4 66 | openstep-plist==0.3.1 67 | opentype-sanitizer==9.1.0 68 | opentypespec==1.9.1 69 | orjson==3.10.3 70 | outcome==1.3.0.post0 71 | packaging==24.0 72 | panda==0.3.1 73 | pandas==2.2.2 74 | pathspec==0.12.1 75 | picosvg==0.22.1 76 | pillow==10.3.0 77 | pip-api==0.0.33 78 | platformdirs==4.2.2 79 | pngquant-cli==2.17.0.post5 80 | protobuf==3.20.3 81 | pyahocorasick==2.1.0 82 | pybind11==2.12.0 83 | pycairo==1.26.0 84 | pyclipper==1.3.0.post5 85 | pycparser==2.22 86 | pygit2==1.14.1 87 | PyGithub==2.3.0 88 | Pygments==2.18.0 89 | PyJWT==2.8.0 90 | PyNaCl==1.5.0 91 | pyparsing==3.1.2 92 | PySocks==1.7.1 93 | python-bidi==0.4.2 94 | python-dateutil==2.9.0.post0 95 | pytz==2024.1 96 | PyYAML==6.0.1 97 | regex==2024.5.15 98 | requests==2.32.3 99 | resvg-cli==0.22.0.post3 100 | rich==13.7.1 101 | ruamel.yaml==0.18.6 102 | ruamel.yaml.clib==0.2.8 103 | selenium==4.21.0 104 | setuptools==70.0.0 105 | shaperglot==0.5.0 106 | six==1.16.0 107 | skia-pathops==0.8.0.post1 108 | skia-python==87.6 109 | smmap==5.0.1 110 | sniffio==1.3.1 111 | sortedcontainers==2.4.0 112 | soupsieve==2.5 113 | statmake==0.6.0 114 | strictyaml==1.7.3 115 | tabulate==0.9.0 116 | termcolor==2.4.0 117 | toml==0.10.2 118 | tqdm==4.66.4 119 | trio==0.25.1 120 | trio-websocket==0.11.1 121 | ttfautohint-py==0.5.1 122 | typing_extensions==4.12.1 123 | tzdata==2024.1 124 | ufo2ft==3.3.1 125 | ufoLib2==0.16.0 126 | ufolint==1.2.0 127 | ufomerge==1.8.2 128 | ufonormalizer==0.6.1 129 | ufoProcessor==1.9.0 130 | uharfbuzz==0.39.1 131 | unicodedata2==15.1.0 132 | Unidecode==1.3.8 133 | urllib3==2.2.1 134 | vfbLib==0.7.0 135 | vharfbuzz==0.3.0 136 | vttLib==0.12.0 137 | wrapt==1.16.0 138 | wsproto==1.2.0 139 | youseedee==0.5.3 140 | zopfli==0.2.3 141 | -------------------------------------------------------------------------------- /scripts/customize.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python3 2 | 3 | # This script is run by the user using `make customize` after the repository 4 | # is cloned. If you are reading this because `make customize` 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 | import requests 14 | 15 | BASE_OWNER = "googlefonts" 16 | BASE_REPONAME = "googlefonts-project-template" 17 | DUMMY_URL = "https://yourname.github.io/your-font-repository-name" 18 | LATEST_OFL = "https://raw.githubusercontent.com/googlefonts/googlefonts-project-template/main/OFL.txt" 19 | 20 | 21 | def repo_url(owner, name): 22 | return f"https://github.com/{owner}/{name}" 23 | 24 | 25 | def web_url(owner, name): 26 | return f"https://{owner}.github.io/{name}" 27 | 28 | 29 | def raw_url(owner, name): 30 | return f"https://raw.githubusercontent.com/{owner}/{name}" 31 | 32 | 33 | def lose(msg, e=None): 34 | print(msg) 35 | print("You will need to do the initialization steps manually.") 36 | print("Read scripts/customize.py for more instructions how to do this.") 37 | if e: 38 | print( 39 | "\nHere's an additional error message which may help diagnose the problem." 40 | ) 41 | raise e 42 | sys.exit(1) 43 | 44 | 45 | try: 46 | my_repo_url = git.remote("get-url", "origin") 47 | except Exception as e: 48 | lose("Could not use git to find my own repository URL", e) 49 | 50 | m = re.match(r"(?:https://github.com/|git@github.com:)(.*)/(.*)/?", str(my_repo_url)) 51 | if not m: 52 | lose( 53 | f"My git repository URL ({my_repo_url}) didn't look what I expected - are you hosting this on github?" 54 | ) 55 | 56 | owner, reponame = m[1], m[2] 57 | 58 | if owner == BASE_OWNER and reponame == BASE_REPONAME: 59 | print("I am being run on the upstream repository; don't do that") 60 | sys.exit() 61 | 62 | # INITIALIZATION STEPS 63 | 64 | # First, the README file contains URLs to pages in the `gh-pages` branch of the 65 | # repo. When initially cloned, these URLs will point to the 66 | # googlefonts/Unified-Font-Repository itself. But downstream users want links 67 | # and badges about their own font, not ours! So any URLs need to be adjusted to 68 | # refer to the end user's repository. 69 | 70 | # We will also pin the dependencies so future builds are reproducible. 71 | 72 | readme = open("README.md").read() 73 | ghpages_url = web_url(owner, reponame) 74 | project_url = repo_url(owner, reponame) 75 | 76 | print("Fixing URLs:", web_url(BASE_OWNER, BASE_REPONAME), "->", ghpages_url) 77 | 78 | readme = readme.replace(web_url(BASE_OWNER, BASE_REPONAME), ghpages_url) 79 | # In the badges, the URLs to raw.githubusercontent.com are URL-encoded as they 80 | # are passed to shields.io. 81 | readme = readme.replace( 82 | quote(raw_url(BASE_OWNER, BASE_REPONAME), safe=""), 83 | quote(raw_url(owner, reponame), safe=""), 84 | ) 85 | 86 | print("Fixing URLs:", DUMMY_URL, "->", ghpages_url) 87 | readme = readme.replace(f"`{DUMMY_URL}`", ghpages_url) 88 | 89 | with open("README.md", "w") as fh: 90 | fh.write(readme) 91 | 92 | git.add("README.md") 93 | 94 | # Fix the OFL 95 | year = datetime.date.today().year 96 | title = reponame.title() 97 | copyright = f"Copyright {year} The {title} Project Authors ({project_url})\n" 98 | print("Fetching the latest OFL..") 99 | ofl = requests.get(LATEST_OFL).text.splitlines() 100 | print("Writing an OFL for you") 101 | print(copyright) 102 | with open("OFL.txt", "w") as fh: 103 | fh.write(copyright) 104 | fh.write("\n".join(ofl[1:])) 105 | 106 | git.add("OFL.txt") 107 | 108 | # Pin the dependencies 109 | print("Pinning dependencies") 110 | dependencies = subprocess.check_output(["pip", "freeze"]) 111 | with open("requirements.txt", "wb") as dependency_file: 112 | dependency_file.write(dependencies) 113 | git.add("requirements.txt") 114 | 115 | # Did anything change? 116 | result = git.status("--porcelain") 117 | if any(line.startswith("M ") for line in result.splitlines()): 118 | git.commit("-m", "Customize repository") 119 | 120 | print("Pushing changes to GitHub") 121 | git.push() 122 | else: 123 | print("Nothing changed, no need to push") 124 | -------------------------------------------------------------------------------- /scripts/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | My Font development 7 | 8 | 9 |

My Font testing pages

10 | 18 | 19 | 20 | -------------------------------------------------------------------------------- /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 | -------------------------------------------------------------------------------- /scripts/update-custom-filter.py: -------------------------------------------------------------------------------- 1 | import requests 2 | 3 | GF_Latin_All = "https://github.com/googlefonts/glyphsets/raw/main/GF_glyphsets/Latin/glyphs/CustomFilter_GF_Latin.plist" 4 | dest = "sources/CustomFilter_GF_Latin_All.plist" 5 | 6 | r = requests.get(GF_Latin_All) 7 | with open(dest, "wb") as f: 8 | f.write(r.content) 9 | -------------------------------------------------------------------------------- /sources/CustomFilter_GF_Latin_All.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | list 7 | 8 | apostrophemod 9 | Acaron 10 | Acircumflexdotbelow 11 | Adblgrave 12 | Adieresismacron 13 | Adotaccent 14 | Adotmacron 15 | Ainvertedbreve 16 | Alpha-latin 17 | Aringbelow 18 | Astroke 19 | AEmacron 20 | Bdotaccent 21 | Bdotbelow 22 | Beta-latin 23 | Bhook 24 | Bmacronbelow 25 | Bstroke 26 | Ccedillaacute 27 | Chi-latin 28 | Chook 29 | Cstroke 30 | Dcedilla 31 | Dcircumflexbelow 32 | Ddotaccent 33 | Ddotbelow 34 | Dhook 35 | Dmacronbelow 36 | Dtail 37 | Ecedilla 38 | Ecedillabreve 39 | Ecircumflexbelow 40 | Ecircumflexdotbelow 41 | Edblgrave 42 | Edotbelow 43 | Einvertedbreve 44 | Emacronacute 45 | Emacrongrave 46 | Eopen 47 | Ereversed 48 | Esh 49 | Estroke 50 | Etilde 51 | Etildebelow 52 | Schwa 53 | Ezh 54 | Ezhcaron 55 | Ezhreversed 56 | Fdotaccent 57 | Fhook 58 | Gacute 59 | Gcaron 60 | Ghook 61 | Glottalstop 62 | Gmacron 63 | Gstroke 64 | Hbrevebelow 65 | Hcaron 66 | Hcedilla 67 | Hdieresis 68 | Hdotaccent 69 | Hdotbelow 70 | Heng 71 | Hhook 72 | Hturned 73 | Icaron 74 | Idblgrave 75 | Idieresisacute 76 | Idotbelow 77 | Iinvertedbreve 78 | Iota-latin 79 | Istroke 80 | Itilde 81 | Itildebelow 82 | Jcrossedtail 83 | Jstroke 84 | Kacute 85 | Kcaron 86 | Kdotbelow 87 | Khook 88 | Kmacronbelow 89 | Kstroke 90 | Lbar 91 | Lbelt 92 | Lcircumflexbelow 93 | Ldotbelow 94 | Ldotbelowmacron 95 | Ldoublebar 96 | Lmacronbelow 97 | Lmiddletilde 98 | Macute 99 | Mdotaccent 100 | Mdotbelow 101 | Mturned 102 | Ncircumflexbelow 103 | Ndotaccent 104 | Ndotbelow 105 | Ngrave 106 | Nhookleft 107 | Nlongrightleg 108 | Nmacronbelow 109 | OU 110 | Ocaron 111 | Ocenteredtilde 112 | Ocircumflexdotbelow 113 | Odblgrave 114 | Odieresismacron 115 | Odotaccent 116 | Odotaccentmacron 117 | Odotbelow 118 | Oinvertedbreve 119 | Omacronacute 120 | Omacrongrave 121 | Omega-latin 122 | Oogonek 123 | Oogonekmacron 124 | Oopen 125 | Oslashacute 126 | Otildeacute 127 | Otildedieresis 128 | Otildemacron 129 | Pacute 130 | Pdotaccent 131 | Phook 132 | Pstroke 133 | Qhooktail 134 | Rdblgrave 135 | Rdotaccent 136 | Rdotbelow 137 | Rdotbelowmacron 138 | Rinvertedbreve 139 | Rmacronbelow 140 | Rstroke 141 | Rtail 142 | Sacutedotaccent 143 | Saltillo 144 | Scarondotaccent 145 | Sdotaccent 146 | Sdotbelow 147 | Sdotbelowdotaccent 148 | Sobliquestroke 149 | Tcircumflexbelow 150 | Tdiagonalstroke 151 | Tdotaccent 152 | Tdotbelow 153 | Thook 154 | Tmacronbelow 155 | Tretroflexhook 156 | Ubar 157 | Ucaron 158 | Ucircumflexbelow 159 | Udblgrave 160 | Udieresisacute 161 | Udieresisbelow 162 | Udieresiscaron 163 | Udieresisgrave 164 | Udieresismacron 165 | Udotbelow 166 | Uinvertedbreve 167 | Umacrondieresis 168 | Upsilon-latin 169 | Utilde 170 | Utildeacute 171 | Utildebelow 172 | Gamma-latin 173 | Vdotbelow 174 | Vhook 175 | Vtilde 176 | Vturned 177 | Wdotaccent 178 | Wdotbelow 179 | Whook 180 | Xdieresis 181 | Xdotaccent 182 | Ydotaccent 183 | Yhook 184 | Ymacron 185 | Ystroke 186 | Zcircumflex 187 | Zdotbelow 188 | Zmacronbelow 189 | Zstroke 190 | Ismall 191 | acaron 192 | acircumflexdotbelow 193 | adblgrave 194 | adieresismacron 195 | adotaccent 196 | adotbelow 197 | adotmacron 198 | ainvertedbreve 199 | alpha-latin 200 | aringbelow 201 | astroke 202 | aemacron 203 | bdotaccent 204 | bdotbelow 205 | beta-latin 206 | bhook 207 | bilabialclick 208 | bmacronbelow 209 | bstroke 210 | ccedillaacute 211 | chi-latin 212 | chook 213 | cstroke 214 | dcedilla 215 | dcircumflexbelow 216 | ddotaccent 217 | ddotbelow 218 | dhook 219 | dmacronbelow 220 | dtail 221 | ecedilla 222 | ecedillabreve 223 | ecircumflexbelow 224 | ecircumflexdotbelow 225 | edblgrave 226 | edotbelow 227 | einvertedbreve 228 | emacronacute 229 | emacrongrave 230 | eopen 231 | esh 232 | estroke 233 | etilde 234 | etildebelow 235 | eturned 236 | schwa 237 | ezh 238 | ezhcaron 239 | ezhreversed 240 | fdotaccent 241 | gacute 242 | gamma-latin 243 | gcaron 244 | ghook 245 | glottalstop 246 | glottalstopreversed 247 | glottalstopsmall 248 | gmacron 249 | gstroke 250 | hbrevebelow 251 | hcaron 252 | hcedilla 253 | hdieresis 254 | hdotaccent 255 | hdotbelow 256 | heng 257 | hhook 258 | hturned 259 | icaron 260 | idblgrave 261 | idieresisacute 262 | idotbelow 263 | iinvertedbreve 264 | iota-latin 265 | istroke 266 | itilde 267 | itildebelow 268 | jcrossedtail 269 | jstroke 270 | kacute 271 | kcaron 272 | kdotbelow 273 | khook 274 | kmacronbelow 275 | kstroke 276 | lambdastroke 277 | lbar 278 | lbelt 279 | lcircumflexbelow 280 | ldotbelow 281 | ldotbelowmacron 282 | ldoublebar 283 | lmacronbelow 284 | lmiddletilde 285 | macute 286 | mdotaccent 287 | mdotbelow 288 | mturned 289 | ncircumflexbelow 290 | ndotaccent 291 | ndotbelow 292 | ngrave 293 | nhookleft 294 | nlegrightlong 295 | nmacronbelow 296 | obarred 297 | ocaron 298 | ocircumflexdotbelow 299 | odblgrave 300 | odieresismacron 301 | odotaccent 302 | odotaccentmacron 303 | odotbelow 304 | oinvertedbreve 305 | omacronacute 306 | omacrongrave 307 | omega-latin 308 | oogonek 309 | oogonekmacron 310 | oopen 311 | oslashacute 312 | otildeacute 313 | otildedieresis 314 | otildemacron 315 | ou 316 | pacute 317 | pdotaccent 318 | phook 319 | pstroke 320 | qhooktail 321 | rdblgrave 322 | rdotaccent 323 | rdotbelow 324 | rdotbelowmacron 325 | rfishhook 326 | rinvertedbreve 327 | rmacronbelow 328 | rstroke 329 | rtail 330 | sacutedotaccent 331 | saltillo 332 | scarondotaccent 333 | sdotaccent 334 | sdotbelow 335 | sdotbelowdotaccent 336 | sobliquestroke 337 | tcircumflexbelow 338 | tdiagonalstroke 339 | tdotaccent 340 | tdotbelow 341 | thook 342 | tmacronbelow 343 | tretroflexhook 344 | ubar 345 | ucaron 346 | ucircumflexbelow 347 | udblgrave 348 | udieresisacute 349 | udieresisbelow 350 | udieresiscaron 351 | udieresisgrave 352 | udieresismacron 353 | udotbelow 354 | uinvertedbreve 355 | umacrondieresis 356 | upsilon-latin 357 | utilde 358 | utildeacute 359 | utildebelow 360 | vdotbelow 361 | vhook 362 | vtilde 363 | vturned 364 | wdotaccent 365 | wdotbelow 366 | whook 367 | xdieresis 368 | xdotaccent 369 | ydotaccent 370 | yhook 371 | ymacron 372 | ystroke 373 | zcircumflex 374 | zdotbelow 375 | zmacronbelow 376 | zstroke 377 | hmod 378 | nmod 379 | wmod 380 | clickalveolar 381 | clickdental 382 | clicklateral 383 | clickretroflex 384 | umod 385 | vmod 386 | zmod 387 | florin 388 | colonmod 389 | doubleapostrophemod 390 | minusmod 391 | shortequalmod 392 | kip 393 | rbelowcomb 394 | gravecomb_macroncomb 395 | acutecomb_macroncomb 396 | macroncomb_gravecomb 397 | macroncomb_acutecomb 398 | verticallineabovecomb 399 | dblgravecomb 400 | candraBinducomb 401 | breveinvertedcomb 402 | commaabovecomb 403 | ringbelowcomb 404 | verticallinebelowcomb 405 | circumflexbelowcomb 406 | breveinvertedbelowcomb 407 | tildebelowcomb 408 | macronbelowcomb 409 | lowlinecomb 410 | tildeoverlaycomb 411 | dotaboverightcomb 412 | acutemacroncomb 413 | gravemacroncomb 414 | macronacutecomb 415 | macrongravecomb 416 | secondtonechinese 417 | fourthtonechinese 418 | commaturnedmod 419 | glottalstopmod 420 | ringhalfleft 421 | ringhalfright 422 | uniA7AE 423 | uniA7B8 424 | uniA7B9 425 | 426 | name 427 | GF_Latin_African 428 | 429 | 430 | list 431 | 432 | apostrophemod 433 | lambda 434 | chi 435 | dotbelowcomb 436 | Acaron 437 | Astroke 438 | Cstroke 439 | Emacronacute 440 | Emacrongrave 441 | Eopen 442 | Etilde 443 | Schwa 444 | Ezh 445 | Ezhcaron 446 | Gcaron 447 | Glottalstop 448 | Gmacron 449 | Gstroke 450 | Hdotbelow 451 | Icaron 452 | Idotbelow 453 | Istroke 454 | Itilde 455 | Kacute 456 | Kcaron 457 | Kdotbelow 458 | Kmacronbelow 459 | Lbar 460 | Ldotbelow 461 | Lmiddletilde 462 | Mdotbelow 463 | Ndotbelow 464 | Nmacronbelow 465 | Ocaron 466 | Omacronacute 467 | Omacrongrave 468 | Oogonek 469 | Oogonekmacron 470 | Oopen 471 | Saltillo 472 | Sdotbelow 473 | Tdiagonalstroke 474 | Tmacronbelow 475 | Ucaron 476 | Upsilon-latin 477 | Utilde 478 | Gamma-latin 479 | Zcircumflex 480 | Zmacronbelow 481 | Ismall 482 | acaron 483 | astroke 484 | chi-latin 485 | cstroke 486 | emacronacute 487 | emacrongrave 488 | eopen 489 | etilde 490 | schwa 491 | ezh 492 | ezhcaron 493 | gamma-latin 494 | gcaron 495 | glottalstop 496 | glottalstopreversed 497 | gmacron 498 | gstroke 499 | hdotbelow 500 | icaron 501 | idotbelow 502 | iota-latin 503 | istroke 504 | itilde 505 | kacute 506 | kcaron 507 | kdotbelow 508 | kmacronbelow 509 | lambdastroke 510 | lbar 511 | lbelt 512 | ldotbelow 513 | lmiddletilde 514 | mdotbelow 515 | ndotbelow 516 | nmacronbelow 517 | ocaron 518 | omacronacute 519 | omacrongrave 520 | oogonek 521 | oogonekmacron 522 | oopen 523 | saltillo 524 | sdotbelow 525 | tdiagonalstroke 526 | tmacronbelow 527 | ucaron 528 | upsilon-latin 529 | utilde 530 | zcircumflex 531 | zmacronbelow 532 | wmod 533 | clickalveolar 534 | zmod 535 | commaabovecomb 536 | macronbelowcomb 537 | lowlinecomb 538 | commaturnedmod 539 | glottalstopmod 540 | Ccircumflex 541 | Gcircumflex 542 | Hcircumflex 543 | Jcircumflex 544 | Scircumflex 545 | Tbar 546 | Tcedilla 547 | Ytilde 548 | ccircumflex 549 | gcircumflex 550 | hcircumflex 551 | idotless_ogonek 552 | jcaron 553 | jcircumflex 554 | kgreenlandic 555 | scircumflex 556 | tbar 557 | tcedilla 558 | ytilde 559 | ymod 560 | thetamod 561 | degree 562 | YturnedSansSerif 563 | commaaboverightcomb 564 | strokeshortcomb 565 | primemod 566 | verticallinemod 567 | 568 | name 569 | GF_Latin_Beyond 570 | 571 | 572 | list 573 | 574 | zero 575 | one 576 | two 577 | three 578 | four 579 | five 580 | six 581 | seven 582 | eight 583 | nine 584 | space 585 | nbspace 586 | period 587 | colon 588 | ellipsis 589 | exclam 590 | asterisk 591 | numbersign 592 | slash 593 | backslash 594 | hyphen 595 | parenleft 596 | parenright 597 | braceleft 598 | braceright 599 | bracketleft 600 | bracketright 601 | quotedblleft 602 | quotedblright 603 | quoteleft 604 | quoteright 605 | guillemetleft 606 | guillemetright 607 | quotedbl 608 | quotesingle 609 | bar 610 | plus 611 | multiply 612 | divide 613 | equal 614 | greater 615 | less 616 | percent 617 | dieresiscomb 618 | gravecomb 619 | acutecomb 620 | hungarumlautcomb 621 | macroncomb 622 | dotaccent 623 | degree 624 | A 625 | Aacute 626 | Abreve 627 | Acircumflex 628 | Adieresis 629 | Agrave 630 | Amacron 631 | Aogonek 632 | Aring 633 | Atilde 634 | AE 635 | B 636 | C 637 | Cacute 638 | Ccaron 639 | Ccedilla 640 | Cdotaccent 641 | D 642 | Eth 643 | Dcaron 644 | Dcroat 645 | E 646 | Eacute 647 | Ecaron 648 | Ecircumflex 649 | Edieresis 650 | Edotaccent 651 | Egrave 652 | Emacron 653 | Eogonek 654 | F 655 | G 656 | Gbreve 657 | Gcommaaccent 658 | Gdotaccent 659 | H 660 | Hbar 661 | I 662 | Iacute 663 | Icircumflex 664 | Idieresis 665 | Idotaccent 666 | Igrave 667 | Imacron 668 | Iogonek 669 | J 670 | K 671 | Kcommaaccent 672 | L 673 | Lacute 674 | Lcaron 675 | Lcommaaccent 676 | Lslash 677 | M 678 | N 679 | Nacute 680 | Ncaron 681 | Ncommaaccent 682 | Ntilde 683 | Eng 684 | O 685 | Oacute 686 | Ocircumflex 687 | Odieresis 688 | Ograve 689 | Ohungarumlaut 690 | Omacron 691 | Oslash 692 | Otilde 693 | OE 694 | P 695 | Thorn 696 | Q 697 | R 698 | Racute 699 | Rcaron 700 | Rcommaaccent 701 | S 702 | Sacute 703 | Scaron 704 | Scedilla 705 | Scommaaccent 706 | Germandbls 707 | T 708 | Tcaron 709 | Tcommaaccent 710 | U 711 | Uacute 712 | Ubreve 713 | Ucircumflex 714 | Udieresis 715 | Ugrave 716 | Uhungarumlaut 717 | Umacron 718 | Uogonek 719 | Uring 720 | V 721 | W 722 | Wacute 723 | Wcircumflex 724 | Wdieresis 725 | Wgrave 726 | X 727 | Y 728 | Yacute 729 | Ycircumflex 730 | Ydieresis 731 | Ygrave 732 | Z 733 | Zacute 734 | Zcaron 735 | Zdotaccent 736 | a 737 | aacute 738 | abreve 739 | acircumflex 740 | adieresis 741 | agrave 742 | amacron 743 | aogonek 744 | aring 745 | atilde 746 | ae 747 | b 748 | c 749 | cacute 750 | ccaron 751 | ccedilla 752 | cdotaccent 753 | d 754 | eth 755 | dcaron 756 | dcroat 757 | e 758 | eacute 759 | ecaron 760 | ecircumflex 761 | edieresis 762 | edotaccent 763 | egrave 764 | emacron 765 | eogonek 766 | f 767 | g 768 | gbreve 769 | gcommaaccent 770 | gdotaccent 771 | h 772 | hbar 773 | i 774 | idotless 775 | iacute 776 | icircumflex 777 | idieresis 778 | idotaccent 779 | igrave 780 | imacron 781 | iogonek 782 | j 783 | jdotless 784 | k 785 | kcommaaccent 786 | l 787 | lacute 788 | lcaron 789 | lcommaaccent 790 | lslash 791 | m 792 | n 793 | nacute 794 | ncaron 795 | ncommaaccent 796 | ntilde 797 | eng 798 | o 799 | oacute 800 | ocircumflex 801 | odieresis 802 | ograve 803 | ohungarumlaut 804 | omacron 805 | oslash 806 | otilde 807 | oe 808 | p 809 | thorn 810 | q 811 | r 812 | racute 813 | rcaron 814 | rcommaaccent 815 | s 816 | sacute 817 | scaron 818 | scedilla 819 | scommaaccent 820 | germandbls 821 | t 822 | tcaron 823 | tcommaaccent 824 | u 825 | uacute 826 | ubreve 827 | ucircumflex 828 | udieresis 829 | ugrave 830 | uhungarumlaut 831 | umacron 832 | uogonek 833 | uring 834 | v 835 | w 836 | wacute 837 | wcircumflex 838 | wdieresis 839 | wgrave 840 | x 841 | y 842 | yacute 843 | ycircumflex 844 | ydieresis 845 | ygrave 846 | z 847 | zacute 848 | zcaron 849 | zdotaccent 850 | ordfeminine 851 | ordmasculine 852 | .notdef 853 | comma 854 | semicolon 855 | exclamdown 856 | question 857 | questiondown 858 | periodcentered 859 | bullet 860 | periodcentered.loclCAT 861 | periodcentered.loclCAT.case 862 | endash 863 | emdash 864 | underscore 865 | quotesinglbase 866 | quotedblbase 867 | guilsinglleft 868 | guilsinglright 869 | at 870 | ampersand 871 | paragraph 872 | section 873 | copyright 874 | registered 875 | trademark 876 | cent 877 | dollar 878 | euro 879 | sterling 880 | yen 881 | minus 882 | asciitilde 883 | asciicircum 884 | dotaccentcomb 885 | caroncomb.alt 886 | circumflexcomb 887 | caroncomb 888 | brevecomb 889 | ringcomb 890 | tildecomb 891 | commaturnedabovecomb 892 | commaaccentcomb 893 | cedillacomb 894 | ogonekcomb 895 | dieresis 896 | grave 897 | acute 898 | hungarumlaut 899 | circumflex 900 | caron 901 | breve 902 | ring 903 | tilde 904 | macron 905 | cedilla 906 | ogonek 907 | 908 | name 909 | GF_Latin_Core 910 | 911 | 912 | list 913 | 914 | zero 915 | one 916 | two 917 | three 918 | four 919 | five 920 | six 921 | seven 922 | eight 923 | nine 924 | space 925 | nbspace 926 | period 927 | colon 928 | ellipsis 929 | exclam 930 | asterisk 931 | numbersign 932 | slash 933 | backslash 934 | hyphen 935 | parenleft 936 | parenright 937 | braceleft 938 | braceright 939 | bracketleft 940 | bracketright 941 | quotedblleft 942 | quotedblright 943 | quoteleft 944 | quoteright 945 | quotedbl 946 | quotesingle 947 | bar 948 | plus 949 | multiply 950 | divide 951 | equal 952 | greater 953 | less 954 | percent 955 | degree 956 | A 957 | B 958 | C 959 | D 960 | E 961 | F 962 | G 963 | H 964 | I 965 | J 966 | K 967 | L 968 | M 969 | N 970 | O 971 | P 972 | Q 973 | R 974 | S 975 | T 976 | U 977 | V 978 | W 979 | X 980 | Y 981 | Z 982 | a 983 | b 984 | c 985 | d 986 | e 987 | f 988 | g 989 | h 990 | i 991 | j 992 | k 993 | l 994 | m 995 | n 996 | o 997 | p 998 | q 999 | r 1000 | s 1001 | t 1002 | u 1003 | v 1004 | w 1005 | x 1006 | y 1007 | z 1008 | .notdef 1009 | comma 1010 | semicolon 1011 | question 1012 | periodcentered 1013 | bullet 1014 | endash 1015 | emdash 1016 | underscore 1017 | at 1018 | ampersand 1019 | copyright 1020 | registered 1021 | trademark 1022 | cent 1023 | dollar 1024 | euro 1025 | sterling 1026 | yen 1027 | minus 1028 | asciitilde 1029 | asciicircum 1030 | grave 1031 | 1032 | name 1033 | GF_Latin_Kernel 1034 | 1035 | 1036 | list 1037 | 1038 | numero 1039 | hryvnia 1040 | tenge 1041 | tugrik 1042 | whiteSquare 1043 | pi 1044 | dblverticalbar 1045 | kip 1046 | zero.zero 1047 | zero.tf 1048 | one.tf 1049 | two.tf 1050 | three.tf 1051 | four.tf 1052 | five.tf 1053 | six.tf 1054 | seven.tf 1055 | eight.tf 1056 | nine.tf 1057 | zero.dnom 1058 | one.dnom 1059 | two.dnom 1060 | three.dnom 1061 | four.dnom 1062 | five.dnom 1063 | six.dnom 1064 | seven.dnom 1065 | eight.dnom 1066 | nine.dnom 1067 | zero.numr 1068 | one.numr 1069 | two.numr 1070 | three.numr 1071 | four.numr 1072 | five.numr 1073 | six.numr 1074 | seven.numr 1075 | eight.numr 1076 | nine.numr 1077 | fraction 1078 | onehalf 1079 | onethird 1080 | twothirds 1081 | onequarter 1082 | threequarters 1083 | oneinferior 1084 | twoinferior 1085 | threeinferior 1086 | fourinferior 1087 | fiveinferior 1088 | sixinferior 1089 | seveninferior 1090 | eightinferior 1091 | nineinferior 1092 | onesuperior 1093 | twosuperior 1094 | threesuperior 1095 | foursuperior 1096 | fivesuperior 1097 | sixsuperior 1098 | sevensuperior 1099 | eightsuperior 1100 | ninesuperior 1101 | leftanglebracket-math 1102 | rightanglebracket-math 1103 | baht 1104 | minute 1105 | second 1106 | brokenbar 1107 | dagger 1108 | literSign 1109 | daggerdbl 1110 | estimated 1111 | bitcoin 1112 | cedi 1113 | colonsign 1114 | dong 1115 | guarani 1116 | lari 1117 | liraTurkish 1118 | manat 1119 | naira 1120 | peso 1121 | ruble 1122 | rupee 1123 | rupeeIndian 1124 | sheqel 1125 | won 1126 | notequal 1127 | greaterequal 1128 | lessequal 1129 | plusminus 1130 | approxequal 1131 | logicalnot 1132 | emptyset 1133 | infinity 1134 | integral 1135 | Ohm 1136 | increment 1137 | product 1138 | summation 1139 | radical 1140 | partialdiff 1141 | micro 1142 | perthousand 1143 | upArrow 1144 | northEastArrow 1145 | rightArrow 1146 | southEastArrow 1147 | downArrow 1148 | southWestArrow 1149 | leftArrow 1150 | northWestArrow 1151 | leftRightArrow 1152 | upDownArrow 1153 | blackCircle 1154 | whiteCircle 1155 | whiteBullet 1156 | blackDiamond 1157 | whiteDiamond 1158 | lozenge 1159 | blackSquare 1160 | blackSmallSquare 1161 | whiteSmallSquare 1162 | upBlackTriangle 1163 | rightBlackTriangle 1164 | downBlackTriangle 1165 | leftBlackTriangle 1166 | upWhiteTriangle 1167 | rightWhiteTriangle 1168 | downWhiteTriangle 1169 | leftWhiteTriangle 1170 | upBlackSmallTriangle 1171 | rightBlackSmallTriangle 1172 | downBlackSmallTriangle 1173 | leftBlackSmallTriangle 1174 | upWhiteSmallTriangle 1175 | rightWhiteSmallTriangle 1176 | downWhiteSmallTriangle 1177 | leftWhiteSmallTriangle 1178 | 1179 | name 1180 | GF_Latin_Plus 1181 | 1182 | 1183 | list 1184 | 1185 | dotbelowcomb 1186 | Acircumflexdotbelow 1187 | Ecircumflexdotbelow 1188 | Edotbelow 1189 | Etilde 1190 | Idotbelow 1191 | Itilde 1192 | Ocircumflexdotbelow 1193 | Odotbelow 1194 | Udotbelow 1195 | Utilde 1196 | acircumflexdotbelow 1197 | adotbelow 1198 | ecircumflexdotbelow 1199 | edotbelow 1200 | etilde 1201 | idotbelow 1202 | itilde 1203 | ocircumflexdotbelow 1204 | odotbelow 1205 | udotbelow 1206 | utilde 1207 | Ytilde 1208 | ytilde 1209 | Abreveacute 1210 | Abrevedotbelow 1211 | Abrevegrave 1212 | Abrevehookabove 1213 | Abrevetilde 1214 | Acircumflexacute 1215 | Acircumflexgrave 1216 | Acircumflexhookabove 1217 | Acircumflextilde 1218 | Adotbelow 1219 | Ahookabove 1220 | Ecircumflexacute 1221 | Ecircumflexgrave 1222 | Ecircumflexhookabove 1223 | Ecircumflextilde 1224 | Ehookabove 1225 | Ihookabove 1226 | Ocircumflexacute 1227 | Ocircumflexgrave 1228 | Ocircumflexhookabove 1229 | Ocircumflextilde 1230 | Ohookabove 1231 | Ohorn 1232 | Ohornacute 1233 | Ohorndotbelow 1234 | Ohorngrave 1235 | Ohornhookabove 1236 | Ohorntilde 1237 | Uhookabove 1238 | Uhorn 1239 | Uhornacute 1240 | Uhorndotbelow 1241 | Uhorngrave 1242 | Uhornhookabove 1243 | Uhorntilde 1244 | Ydotbelow 1245 | Yhookabove 1246 | abreveacute 1247 | abrevedotbelow 1248 | abrevegrave 1249 | abrevehookabove 1250 | abrevetilde 1251 | acircumflexacute 1252 | acircumflexgrave 1253 | acircumflexhookabove 1254 | acircumflextilde 1255 | ahookabove 1256 | ecircumflexacute 1257 | ecircumflexgrave 1258 | ecircumflexhookabove 1259 | ecircumflextilde 1260 | ehookabove 1261 | ihookabove 1262 | ocircumflexacute 1263 | ocircumflexgrave 1264 | ocircumflexhookabove 1265 | ocircumflextilde 1266 | ohookabove 1267 | ohorn 1268 | ohornacute 1269 | ohorndotbelow 1270 | ohorngrave 1271 | ohornhookabove 1272 | ohorntilde 1273 | uhookabove 1274 | uhorn 1275 | uhornacute 1276 | uhorndotbelow 1277 | uhorngrave 1278 | uhornhookabove 1279 | uhorntilde 1280 | ydotbelow 1281 | yhookabove 1282 | brevecomb_acutecomb 1283 | brevecomb_gravecomb 1284 | brevecomb_hookabovecomb 1285 | brevecomb_tildecomb 1286 | circumflexcomb_acutecomb 1287 | circumflexcomb_gravecomb 1288 | circumflexcomb_hookabovecomb 1289 | circumflexcomb_tildecomb 1290 | hookabovecomb 1291 | horncomb 1292 | 1293 | name 1294 | GF_Latin_Vietnamese 1295 | 1296 | 1297 | 1298 | -------------------------------------------------------------------------------- /sources/config.yaml: -------------------------------------------------------------------------------- 1 | sources: 2 | - Parkinsans.glyphs 3 | buildVariable: true 4 | buildStatic: true 5 | buildTTF: true 6 | buildOTF: false 7 | cleanUp: true --------------------------------------------------------------------------------