-
Notifications
You must be signed in to change notification settings - Fork 245
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #150 from JulietaUla/merge-forked-changes
v 9.0
- Loading branch information
Showing
299 changed files
with
940,538 additions
and
370,931 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,116 @@ | ||
name: Build font and specimen | ||
|
||
on: push | ||
|
||
jobs: | ||
build: | ||
name: Build and test | ||
runs-on: ubuntu-latest | ||
steps: | ||
- uses: actions/checkout@v4 | ||
- name: Set up Python 3.10 | ||
uses: actions/setup-python@v5 | ||
with: | ||
python-version: "3.10" | ||
- name: Install sys tools/deps | ||
run: | | ||
sudo apt-get update | ||
sudo apt-get install ttfautohint libcairo2-dev | ||
sudo snap install yq | ||
- uses: actions/cache@v4 | ||
with: | ||
path: ./venv/ | ||
key: ${{ runner.os }}-venv-${{ hashFiles('**/requirements*.txt') }} | ||
restore-keys: | | ||
${{ runner.os }}-venv- | ||
- name: gen zip file name | ||
id: zip-name | ||
shell: bash | ||
# Set the archive name to repo name + "-assets" e.g "MavenPro-assets" | ||
run: echo "ZIP_NAME=$(echo '${{ github.repository }}' | awk -F '/' '{print $2}')-fonts" >> $GITHUB_ENV | ||
|
||
# If a new release is cut, use the release tag to auto-bump the source files | ||
# - name: Bump release | ||
# if: github.event_name == 'release' | ||
# run: | | ||
# . venv/bin/activate | ||
# SRCS=$(yq e ".sources[]" sources/config.yaml) | ||
# TAG_NAME=${GITHUB_REF/refs\/tags\//} | ||
# echo "Bumping $SRCS to $TAG_NAME" | ||
# for src in $SRCS | ||
# do | ||
# bumpfontversion sources/$src --new-version $TAG_NAME; | ||
# done | ||
|
||
- name: Build font | ||
run: make build | ||
- name: Check with fontbakery | ||
run: make test | ||
continue-on-error: true | ||
- name: proof | ||
run: make proof | ||
- name: setup site | ||
run: cp scripts/index.html out/index.html | ||
- name: Deploy | ||
uses: peaceiris/actions-gh-pages@v3 | ||
if: ${{ github.ref == 'refs/heads/main' }} | ||
with: | ||
github_token: ${{ secrets.GITHUB_TOKEN }} | ||
publish_dir: ./out | ||
- name: Archive artifacts | ||
uses: actions/upload-artifact@v4 | ||
with: | ||
name: ${{ env.ZIP_NAME }} | ||
path: | | ||
fonts | ||
out | ||
outputs: | ||
zip_name: ${{ env.ZIP_NAME }} | ||
|
||
# There are two ways a release can be created: either by pushing a tag, or by | ||
# creating a release from the GitHub UI. Pushing a tag does not automatically | ||
# create a release, so we have to do that ourselves. However, creating a | ||
# release from the GitHub UI *does* push a tag, and we don't want to create | ||
# a new release in that case because one already exists! | ||
|
||
release: | ||
name: Create and populate release | ||
needs: build | ||
runs-on: ubuntu-latest | ||
if: contains(github.ref, 'refs/tags/') | ||
env: | ||
ZIP_NAME: ${{ needs.build.outputs.zip_name }} | ||
GH_TOKEN: ${{ github.token }} | ||
steps: | ||
- uses: actions/checkout@v4 | ||
- name: Download font artefact files | ||
uses: actions/download-artifact@v4 | ||
with: | ||
name: ${{ env.ZIP_NAME }} | ||
path: ${{ env.ZIP_NAME }} | ||
- name: Copy DESCRIPTION.en_us.html to artefact directory | ||
run: cp documentation/DESCRIPTION.en_us.html ${{ env.ZIP_NAME }}/DESCRIPTION.en_us.html | ||
- name: Copy ARTICLE.en_us.html to artefact directory | ||
run: cp documentation/ARTICLE.en_us.html ${{ env.ZIP_NAME }}/ARTICLE.en_us.html | ||
continue-on-error: true | ||
- name: Copy OFL.txt to artefact directory | ||
run: cp OFL.txt ${{ env.ZIP_NAME }}/OFL.txt | ||
- name: Remove proof/fontbakery stuff from release | ||
run: rm -rf ${{ env.ZIP_NAME }}/out | ||
- name: gen release file name | ||
shell: bash | ||
run: echo "RELEASE_ZIP_NAME=$(echo '${{ github.repository }}' | awk -F '/' '{print $2}')-${{github.ref_name}}" >> $GITHUB_ENV | ||
- name: Create release bundle | ||
run: mv ${{ env.ZIP_NAME }} ${{ env.RELEASE_ZIP_NAME }}; zip -r ${{ env.RELEASE_ZIP_NAME }}.zip ${{ env.RELEASE_ZIP_NAME }} | ||
- name: Check for release | ||
id: create_release | ||
run: | | ||
if ! gh release view ${{ github.ref_name }}; then | ||
git show -s --format=%B ${{ github.ref_name }} | tail -n +4 | gh release create ${{ github.ref_name }} -t ${{ github.ref_name }} -F - | ||
fi | ||
- name: Populate release | ||
run: | | ||
gh release upload ${{ github.ref_name }} ${{ env.RELEASE_ZIP_NAME }}.zip --clobber | ||
- name: Set release live | ||
run: | | ||
gh release edit ${{ github.ref_name }} --draft=false |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,2 +1,23 @@ | ||
*~ | ||
venv | ||
build.stamp | ||
proof | ||
|
||
# OS generated files # | ||
###################### | ||
.DS_Store | ||
*(Autosaved)* | ||
.DS_Store? | ||
._* | ||
.Spotlight-V100 | ||
.Trashes | ||
ehthumbs.db | ||
Thumbs.db | ||
|
||
*Autosaved*.glyphs | ||
|
||
fontbakery | ||
|
||
# This shouldn't be here but gftools builder leave this here | ||
sources/.ninja_log | ||
sources/build.ninja | ||
sources/instance_ufos/ |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -6,3 +6,6 @@ | |
# Name or Organization <email address> | ||
|
||
Julieta Ulanovsky <[email protected]> | ||
Jacques Le Bailly <[email protected]> | ||
Juan Pablo del Peral <[email protected]> | ||
Sol Matas <[email protected]> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,23 +1,36 @@ | ||
<p>The old posters and signs in the traditional neighborhood of Buenos Aires | ||
called Montserrat inspired me to design a typeface that rescues the beauty of | ||
urban typography from the first half of the twentieth century. The goal is to | ||
rescue what is in Montserrat and set it free, under a free, libre and open | ||
source license, the SIL Open Font License.</p> | ||
<p> | ||
The old posters and signs in the traditional neighborhood of Buenos Aires | ||
called Montserrat inspired me to design a typeface that rescues the beauty of | ||
urban typography from the first half of the twentieth century. The goal is to | ||
rescue what is in Montserrat and set it free, under a free, libre and open | ||
source license, the SIL Open Font License. | ||
</p> | ||
|
||
<p>As urban development changes this place, it will never return to its | ||
original form and loses forever the designs that are so special and unique. To | ||
draw the letters, I rely on examples of lettering in the urban space. Each | ||
selected example produces its own variants in length, width and height | ||
proportions, each adding to the Montserrat family. The old typographies and | ||
canopies are irretrievable when they are replaced.</p> | ||
<p> | ||
As urban development changes this place, it will never return to its original | ||
form and loses forever the designs that are so special and unique. To draw the | ||
letters, I rely on examples of lettering in the urban space. Each selected | ||
example produces its own variants in length, width and height proportions, | ||
each adding to the Montserrat family. The old typographies and canopies are | ||
irretrievable when they are replaced. | ||
</p> | ||
|
||
<p>There are other revivals, but those do not stay close to the originals. The | ||
letters that inspired this project have work, dedication, care, color, | ||
contrast, light and life, day and night! These are the types that make the | ||
city look so beautiful.</p> | ||
<p> | ||
There are other revivals, but those do not stay close to the originals. The | ||
letters that inspired this project have work, dedication, care, color, | ||
contrast, light and life, day and night! These are the types that make the | ||
city look so beautiful. | ||
</p> | ||
|
||
<p>This is the Regular family, and it has two sister families so far, | ||
<a href="http://www.google.com/fonts/specimen/Montserrat+Alternates">Alternates</a> and | ||
<a href="http://www.google.com/fonts/specimen/Montserrat+Subrayada">Subrayada</a> | ||
families. Many of the letterforms are special in the Alternates family, | ||
while .</p> | ||
<p> | ||
This is the Regular family, and it has two sister families so far, | ||
<a href="http://www.google.com/fonts/specimen/Montserrat+Alternates" | ||
>Alternates</a | ||
> | ||
and | ||
<a href="http://www.google.com/fonts/specimen/Montserrat+Underline" | ||
>Underline</a | ||
> | ||
families. Many of the letterforms are special in the Alternates family, while | ||
. | ||
</p> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,48 @@ | ||
SOURCES=$(shell python3 scripts/read-config.py --sources ) | ||
FAMILY=$(shell python3 scripts/read-config.py --family ) | ||
|
||
help: | ||
@echo "###" | ||
@echo "# Build targets for $(FAMILY)" | ||
@echo "###" | ||
@echo | ||
@echo " make build: Builds the fonts and places them in the fonts/ directory" | ||
@echo " make test: Tests the fonts with fontbakery" | ||
@echo " make proof: Creates HTML proof documents in the proof/ directory" | ||
@echo | ||
|
||
build: build.stamp | ||
|
||
venv: venv/touchfile | ||
|
||
customize: venv | ||
. venv/bin/activate; python3 scripts/customize.py | ||
|
||
build.stamp: venv sources/config.yaml $(SOURCES) | ||
rm -rf fonts fonts-underline fonts-alternates | ||
(for config in sources/config*.yaml; do . venv/bin/activate; gftools builder $$config; done) && touch build.stamp | ||
. venv/bin/activate; python3 sources/vtt/hinting.py; bash alternates.sh | ||
|
||
venv/touchfile: requirements.txt | ||
test -d venv || python3 -m venv venv | ||
. venv/bin/activate; pip install -Ur requirements.txt | ||
touch venv/touchfile | ||
|
||
test: venv build.stamp | ||
. venv/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 $(shell find fonts/ttf -type f) || echo '::warning file=sources/config.yaml,title=Fontbakery failures::The fontbakery QA check reported errors in your font. Please check the generated report.' | ||
|
||
proof: venv build.stamp | ||
. venv/bin/activate; mkdir -p out/ out/proof; diffenator2 proof $(shell find fonts/ttf -type f) -o out/proof | ||
|
||
%.png: %.py build.stamp | ||
. venv/bin/activate; python3 $< --output $@ | ||
|
||
clean: | ||
rm -rf venv | ||
find . -name "*.pyc" -delete | ||
|
||
update-project-template: | ||
npx update-template https://github.com/googlefonts/googlefonts-project-template/ | ||
|
||
update: | ||
pip install --upgrade $(dependency); pip freeze > requirements.txt |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,20 @@ | ||
echo | ||
echo Freezing and subsetting Alternates | ||
rm -rf fonts-alternates | ||
cp -r fonts fonts-alternates | ||
cd fonts-alternates | ||
|
||
shopt -s nullglob # Enable nullglob to avoid errors | ||
|
||
for f in variable/*.ttf; do echo && echo Freezing Alternates version for "$f" && pyftfeatfreeze -f 'ss01' -S -U Alternates "$f" "${f//Montserrat/MontserratAlternates}" && rm "$f"; done | ||
for f in variable/*.ttf; do pyftsubset --recalc-bounds --recalc-average-width --glyph-names --layout-features="*" --name-IDs="*" --unicodes="*" --output-file=$f.temp $f && mv $f.temp $f; done | ||
|
||
for f in otf/*.otf; do echo && echo Freezing Alternates version for "$f" && pyftfeatfreeze -f 'ss01' -S -U Alternates "$f" "${f//Montserrat/MontserratAlternates}" && rm "$f"; done | ||
for f in otf/*.otf; do pyftsubset --recalc-bounds --recalc-average-width --glyph-names --layout-features="*" --name-IDs="*" --unicodes="*" --output-file=$f.temp $f && mv $f.temp $f; done | ||
|
||
for f in ttf/*.ttf; do echo && echo Freezing Alternates version for "$f" && pyftfeatfreeze -f 'ss01' -S -U Alternates "$f" "${f//Montserrat/MontserratAlternates}" && rm "$f"; done | ||
for f in ttf/*.ttf; do pyftsubset --recalc-bounds --recalc-average-width --glyph-names --layout-features="*" --name-IDs="*" --unicodes="*" --output-file=$f.temp $f && mv $f.temp $f; done | ||
|
||
for f in webfonts/*.woff2; do echo && echo Freezing Alternates version for "$f" && pyftfeatfreeze -f 'ss01' -S -U Alternates "$f" "${f//Montserrat/MontserratAlternates}" && rm "$f"; done | ||
for f in webfonts/*.woff2; do pyftsubset --recalc-bounds --recalc-average-width --glyph-names --layout-features="*" --name-IDs="*" --unicodes="*" --output-file=$f.temp $f && mv $f.temp $f; done | ||
cd ../.. |
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Oops, something went wrong.