diff --git a/.github/workflows/npm-publish-github-packages.yml b/.github/workflows/npm-publish-github-packages.yml new file mode 100644 index 000000000..3a3c851a5 --- /dev/null +++ b/.github/workflows/npm-publish-github-packages.yml @@ -0,0 +1,58 @@ +# This workflow will run tests using node and then publish a package to GitHub Packages when a release is created +# For more information see: https://help.github.com/actions/language-and-framework-guides/publishing-nodejs-packages + +name: Node.js Package + +on: + push: + branches: [ master ] + release: + types: + - published + workflow_dispatch: + +jobs: + build: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + # - name: Set up Ruby 2.6 + # uses: actions/setup-ruby@v1 + # with: + # ruby-version: 2.6.x + - uses: actions/setup-node@v2 + with: + node-version: 17 + - name: Install dependencies + run: | + sudo apt-get update -y && sudo apt-get install -y --no-install-recommends \ + fontforge \ + woff-tools \ + woff2 + sudo gem install bundler:1.17.3 + sudo bundle install + - name: Build fonts and CSS + run: | + npm ci + make -C src/icons + npm run build + - name: prepare for publish + run: | + mkdir fork-awesome + cp -r css less fonts scss fork-awesome/ + tar zcvf fork-awesome.tgz fork-awesome/ + - name: Upload a Build Artifact + uses: actions/upload-artifact@v2.3.1 + with: + path: fork-awesome.tgz + - name: Upload Release Asset + id: upload-release-asset + uses: actions/upload-release-asset@v1 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + if: github.event_name == 'release' + with: + upload_url: ${{ github.event.release.upload_url }} # This pulls from the CREATE RELEASE step above, referencing it's ID to get its outputs object, which include a `upload_url`. See this blog post for more info: https://jasonet.co/posts/new-features-of-github-actions/#passing-data-to-future-steps + asset_path: ./fork-awesome.tgz + asset_name: fork-awesome.tgz + asset_content_type: application/tar+gzip diff --git a/src/icons/.fontcustom-manifest.json b/src/icons/.fontcustom-manifest.json index 39380c2ab..532c8e64c 100644 --- a/src/icons/.fontcustom-manifest.json +++ b/src/icons/.fontcustom-manifest.json @@ -1,7 +1,7 @@ { "checksum": { - "previous": "74bef76ed80b2ec8eafda938cd299dabecaa37ff350efc6db09585b834fea202", - "current": "74bef76ed80b2ec8eafda938cd299dabecaa37ff350efc6db09585b834fea202" + "previous": "0a5cfbcc5436ea854eb765f3a613bd2bfa7e06ec419c31ef81c337987d577e9f", + "current": "0a5cfbcc5436ea854eb765f3a613bd2bfa7e06ec419c31ef81c337987d577e9f" }, "fonts": [ "forkawesome/forkawesome.ttf", @@ -296,11 +296,11 @@ "source": "svg/behance-square.svg" }, "bell": { - "codepoint": 61683, + "codepoint": 61602, "source": "svg/bell.svg" }, "bell-o": { - "codepoint": 61602, + "codepoint": 61683, "source": "svg/bell-o.svg" }, "bell-ringing": { @@ -308,7 +308,7 @@ "source": "svg/bell-ringing.svg" }, "bell-ringing-o": { - "codepoint": 62304, + "codepoint": 62256, "source": "svg/bell-ringing-o.svg" }, "bell-slash": { @@ -483,6 +483,10 @@ "codepoint": 61571, "source": "svg/camera-retro.svg" }, + "canonical": { + "codepoint": 62314, + "source": "svg/canonical.svg" + }, "car": { "codepoint": 61881, "source": "svg/car.svg" @@ -731,6 +735,10 @@ "codepoint": 61734, "source": "svg/code-fork.svg" }, + "codeberg": { + "codepoint": 62310, + "source": "svg/codeberg.svg" + }, "codepen": { "codepoint": 61899, "source": "svg/codepen.svg" @@ -899,6 +907,14 @@ "codepoint": 62191, "source": "svg/discord-alt.svg" }, + "discourse": { + "codepoint": 62311, + "source": "svg/discourse.svg" + }, + "docker": { + "codepoint": 62316, + "source": "svg/docker.svg" + }, "dogmazic": { "codepoint": 62211, "source": "svg/dogmazic.svg" @@ -1043,6 +1059,14 @@ "codepoint": 61947, "source": "svg/eyedropper.svg" }, + "eyeem": { + "codepoint": 62308, + "source": "svg/eyeem.svg" + }, + "eyeem-o": { + "codepoint": 62309, + "source": "svg/eyeem-o.svg" + }, "f-droid": { "codepoint": 62250, "source": "svg/f-droid.svg" @@ -1075,6 +1099,10 @@ "codepoint": 61868, "source": "svg/fax.svg" }, + "fediverse": { + "codepoint": 62305, + "source": "svg/fediverse.svg" + }, "female": { "codepoint": 61826, "source": "svg/female.svg" @@ -1247,6 +1275,10 @@ "codepoint": 62149, "source": "svg/free-code-camp.svg" }, + "freedesktop": { + "codepoint": 62313, + "source": "svg/freedesktop.svg" + }, "freedombox": { "codepoint": 62205, "source": "svg/freedombox.svg" @@ -1503,6 +1535,10 @@ "codepoint": 61982, "source": "svg/heartbeat.svg" }, + "hedgedoc": { + "codepoint": 62304, + "source": "svg/hedgedoc.svg" + }, "heroku": { "codepoint": 62287, "source": "svg/heroku.svg" @@ -1619,6 +1655,10 @@ "codepoint": 61960, "source": "svg/ioxhost.svg" }, + "ipfs": { + "codepoint": 62322, + "source": "svg/ipfs.svg" + }, "italic": { "codepoint": 61491, "source": "svg/italic.svg" @@ -1627,6 +1667,10 @@ "codepoint": 62289, "source": "svg/java.svg" }, + "javascript": { + "codepoint": 62320, + "source": "svg/javascript.svg" + }, "jirafeau": { "codepoint": 62232, "source": "svg/jirafeau.svg" @@ -1703,6 +1747,10 @@ "codepoint": 61970, "source": "svg/leanpub.svg" }, + "lemmy": { + "codepoint": 62321, + "source": "svg/lemmy.svg" + }, "lemon-o": { "codepoint": 61588, "source": "svg/lemon-o.svg" @@ -1967,6 +2015,10 @@ "codepoint": 62021, "source": "svg/mouse-pointer.svg" }, + "mumble": { + "codepoint": 62312, + "source": "svg/mumble.svg" + }, "music": { "codepoint": 61441, "source": "svg/music.svg" @@ -2039,6 +2091,10 @@ "codepoint": 62263, "source": "svg/orcid.svg" }, + "osi": { + "codepoint": 62307, + "source": "svg/osi.svg" + }, "outdent": { "codepoint": 61499, "source": "svg/outdent.svg" @@ -2211,6 +2267,10 @@ "codepoint": 62088, "source": "svg/product-hunt.svg" }, + "proftpd": { + "codepoint": 62306, + "source": "svg/proftpd.svg" + }, "puzzle-piece": { "codepoint": 61742, "source": "svg/puzzle-piece.svg" @@ -2923,6 +2983,10 @@ "codepoint": 61569, "source": "svg/twitter-square.svg" }, + "ubuntu": { + "codepoint": 62315, + "source": "svg/ubuntu.svg" + }, "umbrella": { "codepoint": 61673, "source": "svg/umbrella.svg" @@ -2955,9 +3019,9 @@ "codepoint": 61758, "source": "svg/unlock-alt.svg" }, - "unslpash": { + "unsplash": { "codepoint": 62245, - "source": "svg/unslpash.svg" + "source": "svg/unsplash.svg" }, "upload": { "codepoint": 61587, diff --git a/src/icons/fontcustom-manifest-template.json b/src/icons/fontcustom-manifest-template.json new file mode 100644 index 000000000..822973e22 --- /dev/null +++ b/src/icons/fontcustom-manifest-template.json @@ -0,0 +1,49 @@ +{ + "checksum": { + "previous": "", + "current": "" + }, + "fonts": [ + "forkawesome/forkawesome.ttf", + "forkawesome/forkawesome.svg", + "forkawesome/forkawesome.woff", + "forkawesome/forkawesome.eot", + "forkawesome/forkawesome.woff2" + ], + "glyphs": { + }, + "options": { + "autowidth": true, + "config": "fontcustom.yml", + "copyright": "The Fork Awesome font is licensed under the SIL OFL 1.1 (http://scripts.sil.org/OFL). Fork Awesome is a fork based of off Font Awesome 4.7.0 by Dave Gandy. More info on licenses at https://forkawesome.github.io", + "css3": false, + "css_selector": ".fa-{{glyph}}", + "debug": false, + "font_ascent": 1536, + "font_descent": 256, + "font_design_size": 16, + "font_em": 1792, + "font_name": "forkawesome", + "force": false, + "input": { + "templates": "svg", + "vectors": "svg" + }, + "no_hash": true, + "output": { + "css": "forkawesome", + "fonts": "forkawesome", + "preview": "forkawesome" + }, + "preprocessor_path": "", + "quiet": false, + "templates": [ + "css", + "preview" + ] + }, + "templates": [ + "forkawesome/forkawesome.css", + "forkawesome/forkawesome-preview.html" + ] +} diff --git a/src/icons/icons.yml b/src/icons/icons.yml index d525877ca..f7919a4fd 100644 --- a/src/icons/icons.yml +++ b/src/icons/icons.yml @@ -7913,6 +7913,13 @@ icons: categories: - Brand Icons + - name: Docker + id: docker + unicode: f36c + created: 1.3 + url: docker.com + categories: + - Brand Icons diff --git a/src/icons/prepare_fontcustom-manifest.py b/src/icons/prepare_fontcustom-manifest.py new file mode 100644 index 000000000..82eda9dfa --- /dev/null +++ b/src/icons/prepare_fontcustom-manifest.py @@ -0,0 +1,21 @@ +import json +import yaml +import operator + +def main(): + manifest = json.load(open("fontcustom-manifest-template.json", "r")) + icons = yaml.safe_load(open("icons.yml", "r")) + + for icon in sorted(icons["icons"], key=operator.itemgetter("id")): + manifest["glyphs"][icon["id"]] ={ + "codepoint": int(icon["unicode"], base=16), + "source": "svg/{}.svg".format(icon["id"]) + } + + + json.dump(manifest, open(".fontcustom-manifest.json","w"), indent=2) + + +if __name__ == "__main__": + main() + diff --git a/src/icons/svg/docker.svg b/src/icons/svg/docker.svg new file mode 100644 index 000000000..2fa2b7be4 --- /dev/null +++ b/src/icons/svg/docker.svg @@ -0,0 +1,3 @@ + + + diff --git a/src/icons/svg/unslpash.svg b/src/icons/svg/unsplash.svg similarity index 100% rename from src/icons/svg/unslpash.svg rename to src/icons/svg/unsplash.svg