diff --git a/lib/font-logos/.github/workflows/release.yml b/lib/font-logos/.github/workflows/release.yml deleted file mode 100644 index 08a58cf..0000000 --- a/lib/font-logos/.github/workflows/release.yml +++ /dev/null @@ -1,69 +0,0 @@ -# This creates a Release Draft -# Adjust the release message in the web GUI and publish the release there. - -name: Draft a Release - -on: - workflow_dispatch: - -jobs: - setup-release-draft: - runs-on: ubuntu-latest - steps: - - name: Fetch repo - uses: actions/checkout@v4 - - - name: Fetch dependencies - run: | - sudo apt update -y -q - sudo apt install python3-fontforge jq nodejs wkhtmltopdf -y -q - npm install nunjucks - - # Ubuntu 20.04 has only fontforge release 2020, but there are some vital bugfixes in the 2023 release - # This can be replaced with the ordinary apt package when Ubuntu updates, probably with 23.10 - # On the other hand ... why not be on the latest release always? - - name: Fetch FontForge - run: | - sudo apt install fuse -y -q - curl -L "https://github.com/fontforge/fontforge/releases/download/20230101/FontForge-2023-01-01-a1dad3e-x86_64.AppImage" \ - --output fontforge - chmod u+x fontforge - echo Try appimage - ./fontforge --version - export PATH=`pwd`:$PATH - echo "PATH=$PATH" >> $GITHUB_ENV - echo Try appimage with path - fontforge --version - - - name: Determine version - id: rel_ver - run: | - REL_VERSION=$(jq -r '.version' package.json) - echo "Release version ${REL_VERSION}" - echo "ver=${REL_VERSION}" >> $GITHUB_OUTPUT - - - name: Create the assets - run: | - make - - - name: Crate archive - id: archive - run: | - make pack - ZIPFILE=$(ls font-logos-*zip ) - echo "ZIPFILE=${ZIPFILE}" - echo "filename=${ZIPFILE}" >> $GITHUB_OUTPUT - - - name: Adjust release tag - uses: EndBug/latest-tag@v1 - with: - ref: "v${{ steps.rel_ver.outputs.ver }}" - - - name: Create release draft - uses: softprops/action-gh-release@v2 - with: - draft: true - tag_name: "v${{ steps.rel_ver.outputs.ver }}" - files: | - ${{ steps.archive.outputs.filename }} - generate_release_notes: true diff --git a/lib/font-logos/.github/workflows/release_npm.yml b/lib/font-logos/.github/workflows/release_npm.yml deleted file mode 100644 index 4e52067..0000000 --- a/lib/font-logos/.github/workflows/release_npm.yml +++ /dev/null @@ -1,69 +0,0 @@ -# This pushes out a new npm release -# It will be triggered once the release draft is published - -name: Publish release to npm - -on: - release: - types: - - released - workflow_dispatch: - -jobs: - npm-publish: - runs-on: ubuntu-latest - steps: - - name: Fetch repo - uses: actions/checkout@v4 - with: - fetch-depth: 0 - - - name: Check if we are on correct commit - run: | - REL_VERSION=v$(jq -r '.version' package.json) - GIT_VERSION=$(git describe --tags) - echo "Release version ${REL_VERSION}" - echo "Git tag version ${GIT_VERSION}" - if [ "${REL_VERSION}" != "${GIT_VERSION}" ]; then \ - echo "This is probably not what you want"; \ - exit 1; \ - fi - - - name: Fetch dependencies - run: | - sudo apt update -y -q - sudo apt install python3-fontforge jq nodejs wkhtmltopdf -y -q - npm install nunjucks - - # Ubuntu 20.04 has only fontforge release 2020, but there are some vital bugfixes in the 2023 release - # This can be replaced with the ordinary apt package when Ubuntu updates, probably with 23.10 - # On the other hand ... why not be on the latest release always? - - name: Fetch FontForge - run: | - sudo apt install fuse -y -q - curl -L "https://github.com/fontforge/fontforge/releases/download/20230101/FontForge-2023-01-01-a1dad3e-x86_64.AppImage" \ - --output fontforge - chmod u+x fontforge - echo Try appimage - ./fontforge --version - export PATH=`pwd`:$PATH - echo "PATH=$PATH" >> $GITHUB_ENV - echo Try appimage with path - fontforge --version - - - name: Setup .npmrc file to publish to npm - uses: actions/setup-node@v4 - with: - node-version: '20.x' - registry-url: 'https://registry.npmjs.org' - - - name: Build the artifacts - run: | - npm ci - make - - - name: Publish to npm - run: | - npm publish - env: - NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }} diff --git a/lib/font-logos/.github/workflows/update-assets.yml b/lib/font-logos/.github/workflows/update-assets.yml deleted file mode 100644 index 1f47b7e..0000000 --- a/lib/font-logos/.github/workflows/update-assets.yml +++ /dev/null @@ -1,60 +0,0 @@ -name: Update assets - -on: - push: - branches: [ master ] - paths: - - icons.tsv - - vectors/* - workflow_dispatch: - -jobs: - update_assets: - runs-on: ubuntu-latest - steps: - - name: Fetch repo - uses: actions/checkout@v4 - - - name: Fetch dependencies - run: | - sudo apt update -y -q - sudo apt install jq nodejs wkhtmltopdf -y -q - npm install nunjucks - - # Ubuntu 20.04 has only fontforge release 2020, but there are some vital bugfixes in the 2023 release - # This can be replaced with the ordinary apt package when Ubuntu updates, probably with 23.10 - # On the other hand ... why not be on the latest release always? - - name: Fetch FontForge - run: | - sudo apt install fuse -y -q - curl -L "https://github.com/fontforge/fontforge/releases/download/20230101/FontForge-2023-01-01-a1dad3e-x86_64.AppImage" \ - --output fontforge - chmod u+x fontforge - echo Try appimage - ./fontforge --version - export PATH=`pwd`:$PATH - echo "PATH=$PATH" >> $GITHUB_ENV - echo Try appimage with path - fontforge --version - - - name: Create the assets - run: | - make - - - name: Commit preview image back to repo - uses: EndBug/add-and-commit@v9 - with: - add: 'assets/readme-header.png' - message: "[ci] Update preview image" - committer_name: GitHub Actions - committer_email: 41898282+github-actions[bot]@users.noreply.github.com - - - name: Deploy assets to gh-pages - uses: JamesIves/github-pages-deploy-action@v4 - with: - folder: assets - target-folder: assets - commit-message: "[ci] Update assets" - git-config-name: GitHub Actions - git-config-email: 41898282+github-actions[bot]@users.noreply.github.com - clean: false diff --git a/lib/font-logos/.github/workflows/update_readme.yml b/lib/font-logos/.github/workflows/update_readme.yml deleted file mode 100644 index ebd389b..0000000 --- a/lib/font-logos/.github/workflows/update_readme.yml +++ /dev/null @@ -1,52 +0,0 @@ -# This creates and commits an updated readme -# It will be triggered once the release draft is published - -name: Update README - -on: - release: - types: - - released - workflow_dispatch: - -jobs: - update-readme: - runs-on: ubuntu-latest - steps: - - name: Fetch repo - uses: actions/checkout@v4 - - - name: Fetch dependencies - run: | - sudo apt update -y -q - sudo apt install python3-fontforge jq nodejs wkhtmltopdf -y -q - npm install nunjucks - - # Ubuntu 20.04 has only fontforge release 2020, but there are some vital bugfixes in the 2023 release - # This can be replaced with the ordinary apt package when Ubuntu updates, probably with 23.10 - # On the other hand ... why not be on the latest release always? - - name: Fetch FontForge - run: | - sudo apt install fuse -y -q - curl -L "https://github.com/fontforge/fontforge/releases/download/20230101/FontForge-2023-01-01-a1dad3e-x86_64.AppImage" \ - --output fontforge - chmod u+x fontforge - echo Try appimage - ./fontforge --version - export PATH=`pwd`:$PATH - echo "PATH=$PATH" >> $GITHUB_ENV - echo Try appimage with path - fontforge --version - - - name: Build the artifacts - run: | - npm ci - make - - - name: Commit new README back to repo - uses: EndBug/add-and-commit@v9 - with: - add: 'README.md' - message: "[ci] Update README.md" - committer_name: GitHub Actions - committer_email: 41898282+github-actions[bot]@users.noreply.github.com diff --git a/lib/font-logos/.gitignore b/lib/font-logos/.gitignore deleted file mode 100644 index 611a06f..0000000 --- a/lib/font-logos/.gitignore +++ /dev/null @@ -1,8 +0,0 @@ -assets/* -!assets/readme-header.png -!assets/README.md -.fontcustom-manifest.json -*.zip -*.tgz -Gemfile.lock -node_modules diff --git a/lib/font-logos/Makefile b/lib/font-logos/Makefile deleted file mode 100644 index 4efe057..0000000 --- a/lib/font-logos/Makefile +++ /dev/null @@ -1,55 +0,0 @@ -name := font-logos -dest := assets -out_json_ext := .out.json -font_exts := .ttf .woff .woff2 $(out_json_ext) -font_assets := $(foreach ext,$(font_exts),$(dest)/$(name)$(ext)) -json_file = $(dest)/$(name).json -version = $(shell jq -r .version package.json) - -START_CODEPOINT ?= 0xf300 -preview_width := 888 - -export START_CODEPOINT -export FONT_NAME=$(name) -export OUTPUT_DIR=$(dest) -export JSON_FILE=$(json_file) -export COPYRIGHT=Copyright (c) 2014-$(shell date '+%Y'), Lukas W -export VENDORURL=$(shell jq -r .homepage package.json) - -all_files=$(font_assets) $(dest)/$(name).css $(dest)/preview.html $(dest)/readme-header.png README.md - -.PHONY: all -all: $(all_files) - -.PHONY: pack -pack: $(dest)/$(name)-$(version).zip - -$(name)-$(version).tgz: $(all_files) - npm pack - -$(dest)/$(name)-$(version).zip: $(name)-$(version).tgz - $(eval dir := $(shell mktemp -d)) - npm pack - tar -xf $(name)-$(version).tgz -C $(dir) - cd $(dir) && \ - mv $(dir)/package $(dir)/$(name)-$(version) && \ - zip -r $(shell pwd)/$(name)-$(version).zip $(name)-$(version) - rm -r $(dir) - -.SECONDEXPANSION: - -$(json_file): scripts/generate-json.mjs icons.tsv package.json - node scripts/generate-json.mjs - -$(font_assets)&: scripts/generate-font.py icons.tsv $(shell find vectors) $(json_file) - if command -v fontforge; then \ - fontforge --script $(shell pwd)/$< ; \ - else \ - python $< ;\ - fi - -%: templates/$$*.njk icons.tsv scripts/render-template.mjs $(json_file) $(dest)/$(name)$(out_json_ext) - node scripts/render-template.mjs $< $@ - -$(dest)/readme-header.png: $(dest)/readme-header.html $(font_assets) $(dest)/font-logos.css - wkhtmltoimage --enable-local-file-access --width $(preview_width) --disable-smart-width $< $@ diff --git a/lib/font-logos/assets/font-logos.css b/lib/font-logos/assets/font-logos.css new file mode 100644 index 0000000..b867292 --- /dev/null +++ b/lib/font-logos/assets/font-logos.css @@ -0,0 +1,565 @@ + +@font-face { + font-display: auto; + font-family: "font-logos"; + font-style: normal; + font-weight: normal; + src:url("font-logos.woff?v=1.2.0") format("woff"),url("font-logos.woff2?v=1.2.0") format("woff2"),url("font-logos.ttf?v=1.2.0") format("truetype")} + +.fl-alpine::before, +.fl-aosc::before, +.fl-apple::before, +.fl-archlinux::before, +.fl-centos::before, +.fl-coreos::before, +.fl-debian::before, +.fl-devuan::before, +.fl-docker::before, +.fl-elementary::before, +.fl-fedora::before, +.fl-fedora-inverse::before, +.fl-freebsd::before, +.fl-gentoo::before, +.fl-linuxmint::before, +.fl-linuxmint-inverse::before, +.fl-mageia::before, +.fl-mandriva::before, +.fl-manjaro::before, +.fl-nixos::before, +.fl-opensuse::before, +.fl-raspberry-pi::before, +.fl-redhat::before, +.fl-sabayon::before, +.fl-slackware::before, +.fl-slackware-inverse::before, +.fl-tux::before, +.fl-ubuntu::before, +.fl-ubuntu-inverse::before, +.fl-almalinux::before, +.fl-archlabs::before, +.fl-artix::before, +.fl-budgie::before, +.fl-deepin::before, +.fl-endeavour::before, +.fl-ferris::before, +.fl-flathub::before, +.fl-gnu-guix::before, +.fl-illumos::before, +.fl-kali-linux::before, +.fl-openbsd::before, +.fl-parrot::before, +.fl-pop-os::before, +.fl-rocky-linux::before, +.fl-snappy::before, +.fl-solus::before, +.fl-void::before, +.fl-zorin::before, +.fl-codeberg::before, +.fl-kde-neon::before, +.fl-kde-plasma::before, +.fl-kubuntu::before, +.fl-kubuntu-inverse::before, +.fl-forgejo::before, +.fl-freecad::before, +.fl-garuda::before, +.fl-gimp::before, +.fl-gitea::before, +.fl-hyperbola::before, +.fl-inkscape::before, +.fl-kdenlive::before, +.fl-krita::before, +.fl-lxle::before, +.fl-mxlinux::before, +.fl-parabola::before, +.fl-puppy::before, +.fl-qubesos::before, +.fl-tails::before, +.fl-trisquel::before, +.fl-archcraft::before, +.fl-arcolinux::before, +.fl-biglinux::before, +.fl-crystal::before, +.fl-locos::before, +.fl-xerolinux::before, +.fl-arduino::before, +.fl-kicad::before, +.fl-octoprint::before, +.fl-openscad::before, +.fl-osh::before, +.fl-oshwa::before, +.fl-prusaslicer::before, +.fl-reprap::before, +.fl-riscv::before, +.fl-awesome::before, +.fl-bspwm::before, +.fl-dwm::before, +.fl-enlightenment::before, +.fl-fluxbox::before, +.fl-hyprland::before, +.fl-i3::before, +.fl-jwm::before, +.fl-qtile::before, +.fl-sway::before, +.fl-xmonad::before, +.fl-cinnamon::before, +.fl-freedesktop::before, +.fl-gnome::before, +.fl-gtk::before, +.fl-lxde::before, +.fl-lxqt::before, +.fl-mate::before, +.fl-vanilla::before, +.fl-wayland::before, +.fl-xfce::before, +.fl-xorg::before, +.fl-fdroid::before, +.fl-fosdem::before, +.fl-osi::before, +.fl-wikimedia::before, +.fl-mpv::before, +.fl-neovim::before, +.fl-thunderbird::before, +.fl-tor::before, +.fl-vscodium::before, +.fl-kde::before, +.fl-postmarketos::before, +.fl-qt::before, +.fl-libreoffice::before, +.fl-libreofficebase::before, +.fl-libreofficecalc::before, +.fl-libreofficedraw::before, +.fl-libreofficeimpress::before, +.fl-libreofficemath::before, +.fl-libreofficewriter::before, +.fl-tumbleweed::before, +.fl-leap::before, +.fl-typst::before, +.fl-nobara::before + { + display: inline-block; + font-family: "font-logos"; + font-style: normal; + font-weight: normal; + font-variant: normal; + text-rendering: auto; + line-height: 1; + -moz-osx-font-smoothing: grayscale; + -webkit-font-smoothing: antialiased; + font-smoothing: antialiased; +} + +.fl-fw { + text-align: center; + width: 1em; +} +.fl-alpine::before { + content: "\f300"; +} +.fl-aosc::before { + content: "\f301"; +} +.fl-apple::before { + content: "\f302"; +} +.fl-archlinux::before { + content: "\f303"; +} +.fl-centos::before { + content: "\f304"; +} +.fl-coreos::before { + content: "\f305"; +} +.fl-debian::before { + content: "\f306"; +} +.fl-devuan::before { + content: "\f307"; +} +.fl-docker::before { + content: "\f308"; +} +.fl-elementary::before { + content: "\f309"; +} +.fl-fedora::before { + content: "\f30a"; +} +.fl-fedora-inverse::before { + content: "\f30b"; +} +.fl-freebsd::before { + content: "\f30c"; +} +.fl-gentoo::before { + content: "\f30d"; +} +.fl-linuxmint::before { + content: "\f30e"; +} +.fl-linuxmint-inverse::before { + content: "\f30f"; +} +.fl-mageia::before { + content: "\f310"; +} +.fl-mandriva::before { + content: "\f311"; +} +.fl-manjaro::before { + content: "\f312"; +} +.fl-nixos::before { + content: "\f313"; +} +.fl-opensuse::before { + content: "\f314"; +} +.fl-raspberry-pi::before { + content: "\f315"; +} +.fl-redhat::before { + content: "\f316"; +} +.fl-sabayon::before { + content: "\f317"; +} +.fl-slackware::before { + content: "\f318"; +} +.fl-slackware-inverse::before { + content: "\f319"; +} +.fl-tux::before { + content: "\f31a"; +} +.fl-ubuntu::before { + content: "\f31b"; +} +.fl-ubuntu-inverse::before { + content: "\f31c"; +} +.fl-almalinux::before { + content: "\f31d"; +} +.fl-archlabs::before { + content: "\f31e"; +} +.fl-artix::before { + content: "\f31f"; +} +.fl-budgie::before { + content: "\f320"; +} +.fl-deepin::before { + content: "\f321"; +} +.fl-endeavour::before { + content: "\f322"; +} +.fl-ferris::before { + content: "\f323"; +} +.fl-flathub::before { + content: "\f324"; +} +.fl-gnu-guix::before { + content: "\f325"; +} +.fl-illumos::before { + content: "\f326"; +} +.fl-kali-linux::before { + content: "\f327"; +} +.fl-fw.fl-kali-linux::before { + font-size: 0.7496339677891655em; + line-height: 1.333984375em; +} +.fl-openbsd::before { + content: "\f328"; +} +.fl-fw.fl-openbsd::before { + font-size: 0.9961089494163424em; + line-height: 1.00390625em; +} +.fl-parrot::before { + content: "\f329"; +} +.fl-pop-os::before { + content: "\f32a"; +} +.fl-rocky-linux::before { + content: "\f32b"; +} +.fl-snappy::before { + content: "\f32c"; +} +.fl-solus::before { + content: "\f32d"; +} +.fl-void::before { + content: "\f32e"; +} +.fl-zorin::before { + content: "\f32f"; +} +.fl-codeberg::before { + content: "\f330"; +} +.fl-kde-neon::before { + content: "\f331"; +} +.fl-kde-plasma::before { + content: "\f332"; +} +.fl-kubuntu::before { + content: "\f333"; +} +.fl-kubuntu-inverse::before { + content: "\f334"; +} +.fl-forgejo::before { + content: "\f335"; +} +.fl-freecad::before { + content: "\f336"; +} +.fl-garuda::before { + content: "\f337"; +} +.fl-gimp::before { + content: "\f338"; +} +.fl-gitea::before { + content: "\f339"; +} +.fl-hyperbola::before { + content: "\f33a"; +} +.fl-inkscape::before { + content: "\f33b"; +} +.fl-kdenlive::before { + content: "\f33c"; +} +.fl-krita::before { + content: "\f33d"; +} +.fl-fw.fl-krita::before { + font-size: 0.9980506822612085em; + line-height: 1.001953125em; +} +.fl-lxle::before { + content: "\f33e"; +} +.fl-mxlinux::before { + content: "\f33f"; +} +.fl-parabola::before { + content: "\f340"; +} +.fl-puppy::before { + content: "\f341"; +} +.fl-qubesos::before { + content: "\f342"; +} +.fl-tails::before { + content: "\f343"; +} +.fl-trisquel::before { + content: "\f344"; +} +.fl-fw.fl-trisquel::before { + font-size: 0.9980506822612085em; + line-height: 1.001953125em; +} +.fl-archcraft::before { + content: "\f345"; +} +.fl-arcolinux::before { + content: "\f346"; +} +.fl-biglinux::before { + content: "\f347"; +} +.fl-crystal::before { + content: "\f348"; +} +.fl-locos::before { + content: "\f349"; +} +.fl-xerolinux::before { + content: "\f34a"; +} +.fl-arduino::before { + content: "\f34b"; +} +.fl-kicad::before { + content: "\f34c"; +} +.fl-octoprint::before { + content: "\f34d"; +} +.fl-openscad::before { + content: "\f34e"; +} +.fl-osh::before { + content: "\f34f"; +} +.fl-oshwa::before { + content: "\f350"; +} +.fl-prusaslicer::before { + content: "\f351"; +} +.fl-reprap::before { + content: "\f352"; +} +.fl-riscv::before { + content: "\f353"; +} +.fl-awesome::before { + content: "\f354"; +} +.fl-bspwm::before { + content: "\f355"; +} +.fl-dwm::before { + content: "\f356"; +} +.fl-enlightenment::before { + content: "\f357"; +} +.fl-fluxbox::before { + content: "\f358"; +} +.fl-fw.fl-fluxbox::before { + font-size: 0.9980506822612085em; + line-height: 1.001953125em; +} +.fl-hyprland::before { + content: "\f359"; +} +.fl-i3::before { + content: "\f35a"; +} +.fl-jwm::before { + content: "\f35b"; +} +.fl-qtile::before { + content: "\f35c"; +} +.fl-sway::before { + content: "\f35d"; +} +.fl-xmonad::before { + content: "\f35e"; +} +.fl-cinnamon::before { + content: "\f35f"; +} +.fl-freedesktop::before { + content: "\f360"; +} +.fl-fw.fl-freedesktop::before { + font-size: 0.9961089494163424em; + line-height: 1.00390625em; +} +.fl-gnome::before { + content: "\f361"; +} +.fl-gtk::before { + content: "\f362"; +} +.fl-lxde::before { + content: "\f363"; +} +.fl-lxqt::before { + content: "\f364"; +} +.fl-mate::before { + content: "\f365"; +} +.fl-vanilla::before { + content: "\f366"; +} +.fl-wayland::before { + content: "\f367"; +} +.fl-xfce::before { + content: "\f368"; +} +.fl-xorg::before { + content: "\f369"; +} +.fl-fdroid::before { + content: "\f36a"; +} +.fl-fosdem::before { + content: "\f36b"; +} +.fl-osi::before { + content: "\f36c"; +} +.fl-wikimedia::before { + content: "\f36d"; +} +.fl-mpv::before { + content: "\f36e"; +} +.fl-neovim::before { + content: "\f36f"; +} +.fl-thunderbird::before { + content: "\f370"; +} +.fl-tor::before { + content: "\f371"; +} +.fl-vscodium::before { + content: "\f372"; +} +.fl-kde::before { + content: "\f373"; +} +.fl-postmarketos::before { + content: "\f374"; +} +.fl-qt::before { + content: "\f375"; +} +.fl-libreoffice::before { + content: "\f376"; +} +.fl-libreofficebase::before { + content: "\f377"; +} +.fl-libreofficecalc::before { + content: "\f378"; +} +.fl-libreofficedraw::before { + content: "\f379"; +} +.fl-libreofficeimpress::before { + content: "\f37a"; +} +.fl-libreofficemath::before { + content: "\f37b"; +} +.fl-libreofficewriter::before { + content: "\f37c"; +} +.fl-tumbleweed::before { + content: "\f37d"; +} +.fl-leap::before { + content: "\f37e"; +} +.fl-typst::before { + content: "\f37f"; +} +.fl-nobara::before { + content: "\f380"; +} \ No newline at end of file diff --git a/lib/font-logos/assets/font-logos.ttf b/lib/font-logos/assets/font-logos.ttf new file mode 100644 index 0000000..8e80201 Binary files /dev/null and b/lib/font-logos/assets/font-logos.ttf differ diff --git a/lib/font-logos/assets/font-logos.woff b/lib/font-logos/assets/font-logos.woff new file mode 100644 index 0000000..55d5f5e Binary files /dev/null and b/lib/font-logos/assets/font-logos.woff differ diff --git a/lib/font-logos/assets/font-logos.woff2 b/lib/font-logos/assets/font-logos.woff2 new file mode 100644 index 0000000..803a327 Binary files /dev/null and b/lib/font-logos/assets/font-logos.woff2 differ diff --git a/lib/font-logos/assets/readme-header.png b/lib/font-logos/assets/readme-header.png deleted file mode 100644 index a6c6030..0000000 Binary files a/lib/font-logos/assets/readme-header.png and /dev/null differ diff --git a/lib/font-logos/icons.tsv b/lib/font-logos/icons.tsv deleted file mode 100644 index fea6040..0000000 --- a/lib/font-logos/icons.tsv +++ /dev/null @@ -1,126 +0,0 @@ -offset name id -0 Alpine alpine -1 AOSC OS aosc -2 Apple apple -3 Arch Linux archlinux -4 CentOS centos -5 CoreOS coreos -6 Debian debian -7 Devuan devuan -8 Docker docker -9 elementary OS elementary -10 Fedora fedora -11 Fedora (inverse) fedora-inverse -12 FreeBSD freebsd -13 Gentoo gentoo -14 Linux Mint linuxmint -15 Linux Mint (inverse) linuxmint-inverse -16 Mageia mageia -17 Mandriva mandriva -18 Manjaro manjaro -19 NixOS nixos -20 OpenSUSE opensuse -21 Raspberry pi raspberry-pi -22 Red Hat redhat -23 Sabayon sabayon -24 Slackware slackware -25 Slackware (inverse) slackware-inverse -26 Tux tux -27 Ubuntu ubuntu -28 Ubuntu (inverse) ubuntu-inverse -29 Alma Linux almalinux -30 ArchLabs archlabs -31 Artix Linux artix -32 Budgie budgie -33 Deepin deepin -34 Endeavour OS endeavour -35 Ferris ferris -36 Flathub flathub -37 GNU Guix gnu-guix -38 illumos illumos -39 Kali Linux kali-linux -40 OpenBSD openbsd -41 Parrot OS parrot -42 Pop!_OS pop-os -43 Rocky Linux rocky-linux -44 Snappy snappy -45 Solus solus -46 Void void -47 Zorin OS zorin -48 Codeberg codeberg -49 KDE Neon kde-neon -50 KDE Plasma kde-plasma -51 Kubuntu kubuntu -52 Kubuntu (inverse) kubuntu-inverse -53 Forgejo forgejo -54 FreeCAD freecad -55 Garuda Linux garuda -56 GIMP gimp -57 Gitea gitea -58 Hyperbola GNU/Linux-libre hyperbola -59 Inkscape inkscape -60 Kdenlive kdenlive -61 Krita krita -62 LXLE Linux lxle -63 MX Linux mxlinux -64 Parabola GNU/Linux-libre parabola -65 Puppy Linux puppy -66 QubesOS qubesos -67 Tails tails -68 Trisquel GNU/Linux trisquel -69 Archcraft archcraft -70 ArcoLinux arcolinux -71 BigLinux biglinux -72 Crystal Linux crystal -73 Loc-OS locos -74 XeroLinux xerolinux -75 Arduino arduino -76 KiCad kicad -77 Octoprint octoprint -78 OpenSCAD openscad -79 OSH osh -80 OSHWA oshwa -81 Prusa Slicer prusaslicer -82 RepRap reprap -83 RISC-V riscv -84 Awesome WM awesome -85 bspwm bspwm -86 dwm dwm -87 Enlightenment enlightenment -88 Fluxbox fluxbox -89 Hyprland hyprland -90 i3 i3 -91 JWM jwm -92 Qtile qtile -93 Sway sway -94 Xmonad xmonad -95 Cinnamon cinnamon -96 freedesktop.org freedesktop -97 GNOME gnome -98 GTK gtk -99 LXDE lxde -100 LXQt lxqt -101 MATE mate -102 Vanilla OS vanilla -103 Wayland wayland -104 XFCE xfce -105 Xorg xorg -106 F-droid fdroid -107 FOSDEM fosdem -108 OSI osi -109 Wikimedia wikimedia -110 mpv mpv -111 Neovim neovim -112 Thunderbird thunderbird -113 Tor Browser tor -114 VS Codium vscodium -115 KDE kde -116 PostmarketOS postmarketos -117 Qt qt -118 LibreOffice libreoffice -119 LibreOffice Base libreofficebase -120 LibreOffice Calc libreofficecalc -121 LibreOffice Draw libreofficedraw -122 LibreOffice Impress libreofficeimpress -123 LibreOffice Math libreofficemath -124 LibreOffice Writer libreofficewriter diff --git a/lib/font-logos/package-lock.json b/lib/font-logos/package-lock.json deleted file mode 100644 index 751f664..0000000 --- a/lib/font-logos/package-lock.json +++ /dev/null @@ -1,77 +0,0 @@ -{ - "name": "font-logos", - "version": "1.2.0", - "lockfileVersion": 3, - "requires": true, - "packages": { - "": { - "name": "font-logos", - "version": "1.2.0", - "license": "Unlicense", - "dependencies": { - "font-logos": "^1.2.0" - }, - "devDependencies": { - "lodash.merge": "^4.6.2", - "nunjucks": "^3.2.4" - } - }, - "node_modules/a-sync-waterfall": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/a-sync-waterfall/-/a-sync-waterfall-1.0.1.tgz", - "integrity": "sha512-RYTOHHdWipFUliRFMCS4X2Yn2X8M87V/OpSqWzKKOGhzqyUxzyVmhHDH9sAvG+ZuQf/TAOFsLCpMw09I1ufUnA==", - "dev": true - }, - "node_modules/asap": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", - "integrity": "sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==", - "dev": true - }, - "node_modules/commander": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-5.1.0.tgz", - "integrity": "sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg==", - "dev": true, - "engines": { - "node": ">= 6" - } - }, - "node_modules/font-logos": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/font-logos/-/font-logos-1.2.0.tgz", - "integrity": "sha512-LQYjEmXRXCYk0jg/lZMMM9tonmAfaVbBRsn7J0XwWcjXKIN6ZqNakOWhn/Sjt7jBocaQhrHx1EWAFGv6R0zQKw==" - }, - "node_modules/lodash.merge": { - "version": "4.6.2", - "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", - "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", - "dev": true - }, - "node_modules/nunjucks": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/nunjucks/-/nunjucks-3.2.4.tgz", - "integrity": "sha512-26XRV6BhkgK0VOxfbU5cQI+ICFUtMLixv1noZn1tGU38kQH5A5nmmbk/O45xdyBhD1esk47nKrY0mvQpZIhRjQ==", - "dev": true, - "dependencies": { - "a-sync-waterfall": "^1.0.0", - "asap": "^2.0.3", - "commander": "^5.1.0" - }, - "bin": { - "nunjucks-precompile": "bin/precompile" - }, - "engines": { - "node": ">= 6.9.0" - }, - "peerDependencies": { - "chokidar": "^3.3.0" - }, - "peerDependenciesMeta": { - "chokidar": { - "optional": true - } - } - } - } -} diff --git a/lib/font-logos/package.json b/lib/font-logos/package.json index a7be592..4a2cc69 100644 --- a/lib/font-logos/package.json +++ b/lib/font-logos/package.json @@ -1,7 +1,7 @@ { "name": "font-logos", "description": "An icon font providing popular linux distros' logos", - "version": "1.2.0", + "version": "1.3.0", "style": "assets/font-logos.css", "authors": [ "Lukas W (https://github.com/Lukas-W)" @@ -26,8 +26,5 @@ "devDependencies": { "lodash.merge": "^4.6.2", "nunjucks": "^3.2.4" - }, - "dependencies": { - "font-logos": "^1.2.0" } } diff --git a/lib/font-logos/scripts/data.mjs b/lib/font-logos/scripts/data.mjs deleted file mode 100644 index f1035e6..0000000 --- a/lib/font-logos/scripts/data.mjs +++ /dev/null @@ -1,4 +0,0 @@ -import fs from 'fs'; -export default JSON.parse( - fs.readFileSync(`${process.env.OUTPUT_DIR}/${process.env.FONT_NAME}.json`) -); diff --git a/lib/font-logos/scripts/generate-font.py b/lib/font-logos/scripts/generate-font.py deleted file mode 100644 index 51dc93d..0000000 --- a/lib/font-logos/scripts/generate-font.py +++ /dev/null @@ -1,69 +0,0 @@ -import os -import sys -import tempfile -import json -import fontforge - -# Need to change working directory in case we run via AppImage -os.chdir(os.path.join(os.path.dirname(sys.argv[0]), '..')) - -autowidth = False -font_em = 512 -font_design_size = 16 -jsonfile = os.environ['JSON_FILE'] -fontname = os.environ['FONT_NAME'] -outputdir = os.environ['OUTPUT_DIR'] -vectorsdir = 'vectors' -start_codepoint = int(os.environ['START_CODEPOINT'], base=0) -design_px = font_em // font_design_size -outjsonfile = os.path.join(outputdir, fontname+'.out.json') -font = fontforge.font() -# font.encoding = 'UnicodeFull' -font.fontname = fontname -font.familyname = fontname -font.fullname = fontname -font.design_size = font_design_size -font.em = font_em -font.copyright = os.environ['COPYRIGHT'] - -# if autowidth: -# font.autoWidth(0, 0, font.em) -font.autoWidth(0, 0, font.em) - -# Add valid space glyph to avoid "unknown character" box on IE11 -glyph = font.createChar(32) -glyph.width = 200 - -outputInfo = { - 'em': font.em, - 'icons': {}, -} - -def addIcon(iconId, icon): - glyph = font.createChar(icon['codepoint'], icon['name']) - glyph.importOutlines( - os.path.join(vectorsdir, (iconId+'.svg')), - ) - glyph.left_side_bearing = 0 - glyph.right_side_bearing = 0 - - outputInfo['icons'][iconId] = { - 'width': glyph.width, - } - -with open(jsonfile) as f: - fontData = json.load(f) - -for iconId, icon in fontData['icons'].items(): - addIcon(iconId, icon) - -font.appendSFNTName("English (US)", "Version", fontData['version']['string']) -font.appendSFNTName("English (US)", "Vendor URL", os.environ['VENDORURL']) -font.version = fontData['version']['string'] - -font.generate(os.path.join(outputdir, fontname + '.ttf')) -font.generate(os.path.join(outputdir, fontname + '.woff')) -font.generate(os.path.join(outputdir, fontname + '.woff2')) - -with open(outjsonfile, 'w') as f: - json.dump(outputInfo, f, indent=2) diff --git a/lib/font-logos/scripts/generate-json.mjs b/lib/font-logos/scripts/generate-json.mjs deleted file mode 100644 index 19f68e9..0000000 --- a/lib/font-logos/scripts/generate-json.mjs +++ /dev/null @@ -1,39 +0,0 @@ -import fs from 'node:fs/promises'; -import {tsvFileToObjects} from './tsv.mjs'; -const iconsFile = './icons.tsv'; - -async function getIcons() { - const startCodepoint = parseInt(process.env.START_CODEPOINT); - let icons = tsvFileToObjects(iconsFile, { - 'offset': parseInt, - 'scale': s => s.toLowerCase() === 'true', - }) - .map(r => ({...r, codepoint: startCodepoint + r.offset})) - .map(r => ({...r, variant: r.id.endsWith('-inverse')})) - .map(({id, ...r}) => [id, r]) - ; - icons = Object.fromEntries(icons); - return icons; -} - -async function readPackage() { - return JSON.parse(await fs.readFile('package.json')); -} - -const {version} = await readPackage(); -const [major, minor, patch] = version.match(/^(\d+)\.(\d+)\.(\d+)/).slice(1); - -const data = { - name: process.env.FONT_NAME, - version: { - string: version, - major, minor, patch, - stable: parseInt(major) > 0 ? major : `${major}.${minor}.${patch}`, - }, - icons: await getIcons(), -}; - -await fs.writeFile( - process.env.OUTPUT_DIR + '/' + process.env.FONT_NAME + '.json', - JSON.stringify(data, null, 2) -); diff --git a/lib/font-logos/scripts/render-template.mjs b/lib/font-logos/scripts/render-template.mjs deleted file mode 100644 index 406b5f7..0000000 --- a/lib/font-logos/scripts/render-template.mjs +++ /dev/null @@ -1,32 +0,0 @@ -import fs from 'node:fs'; -import nunjucks from 'nunjucks'; -import font from './data.mjs'; -import merge from 'lodash.merge'; - -const [templateFile, outFile] = process.argv.slice(2); - -const outInfo = JSON.parse( - fs.readFileSync(`${process.env.OUTPUT_DIR}/${process.env.FONT_NAME}.out.json`)); - -const context = { - font: merge(font, outInfo), - classPrefix: 'fl-', - formats: [ - {name: 'woff', ext: 'woff'}, - {name: 'woff2', ext: 'woff2'}, - {name: 'truetype', ext: 'ttf'}, - ], - icons: font.icons, - uniqueIcons: Object.fromEntries(Object.entries(font.icons).filter(([,icon]) => !icon.variant)), -}; - -const env = new nunjucks.Environment(new nunjucks.FileSystemLoader(), { - throwOnUndefined: true, -}); -env.addFilter('keys', obj => Object.keys(obj)); -env.addFilter('values', obj => Object.values(obj)); -env.addFilter('column', (objs, col) => objs.map(o => o[col])); -env.addFilter('map', (array, fn) => array.map(fn)); -env.addFilter('maxLength', array => Math.max(...array.map(x => x.length))); - -fs.writeFileSync(outFile, env.render(templateFile, context)); diff --git a/lib/font-logos/scripts/tsv.mjs b/lib/font-logos/scripts/tsv.mjs deleted file mode 100644 index 4f467fb..0000000 --- a/lib/font-logos/scripts/tsv.mjs +++ /dev/null @@ -1,30 +0,0 @@ -import fs from 'node:fs'; - -const I = x=>x; - -export function tsvFileToObjects(file, parsers) { - let [cols, ...rows] = fs.readFileSync(file, 'utf8') - .toString() - .split('\n') - .map(r => r - .split('\t') - // Allow for multiple \t between columns - .map(t => t.trim()) - .filter(I) - ) - // Remove empty rows - .filter(r => r.length) - ; - - // Sanity check rows - const invalidRows = rows.filter(r => r.length !== cols.length); - if (invalidRows.length) { - throw new Error(`Some rows have wrong number of columns:\n${invalidRows.join('\n')}`); - } - - return rows.map(r => Object.fromEntries( - cols.map( - (c, i) => [c, (parsers[c] || I)(r[i])] - ) - )); -} diff --git a/lib/font-logos/templates/README.md.njk b/lib/font-logos/templates/README.md.njk deleted file mode 100644 index 628a23e..0000000 --- a/lib/font-logos/templates/README.md.njk +++ /dev/null @@ -1,82 +0,0 @@ -# {{ font.name }} # - -![Available logos](assets/readme-header.png) - -{{ font.name }} is an icon font containing logos of popular linux distributions and other open source software. - -*Note:* All brand icons are trademarks of their respective owners and should only be used to represent the company or product to which they refer. - -## Installation ## - -Install the font by downloading and unpacking the latest release's zip manually or installing it from npm: - - npm install {{ font.name }} - -To use the font, include `assets/{{ font.name }}.css` as well as the -fonts in your project and use the CSS classes listed below. - - - -Alternatively just link to it using a CDN such as [jsDelivr](//jsdelivr.com): - - - -## Usage ## - -Include an icon using the corresponding CSS class in an empty element: - - - -Add `fl-fw` as class for a fixed width icon. - -If you want to insert a glyph of this font on a GNU/Linux system press `Ctrl + Shift + u`, release the keys and then type the code point, for instance: `Ctrl + Shift + u` and `f31a` will insert the `Tux` glyph. - -Available logos are: - -{%- macro img(id) %}{% endmacro %} -{%- macro class(id) %}`fl-{{ id }}`{% endmacro %} -{%- macro code(id) %}``{% endmacro %} -{%- set ids = icons|keys|sort %} -{%- set nameW = icons|values|column('name')|maxLength %} -{%- set maxIdLength = ids|maxLength %} -{%- set imgW = maxIdLength + img("")|length %} -{%- set classW = maxIdLength + class("")|length %} -{%- set codeW = maxIdLength + code("")|length %} - -| {{ "Distribution"|center(nameW) }} | {{ "CSS class"|center(classW) }} | {{ "Code"|center(codeW) }} | Code point | {{ "Image"|center(imgW) }} | -| {{ "-".repeat(nameW) }} | {{ "-".repeat(classW) }} | {{ "-".repeat(codeW) }} | :--------: | :{{ "-".repeat(imgW-2) }}: | -{%- for id in ids %} -{%- set icon=icons[id] %} -| {{ icon.name.padEnd(nameW) }} | {{ class(id).padEnd(classW) }} | {{ code(id).padEnd(codeW)|safe }} | `0x{{ icon.codepoint.toString(16) }}` | {{ img(id).padEnd(imgW)|safe }} | -{%- endfor %} - -## Building ## - -Make sure you have the following dependencies installed: -* Node, Python and jq to run the build scripts -* [FontForge](//fontforge.org) to generate the fonts -* [wkhtmltopdf](http://wkhtmltopdf.org/) to generate this readme's preview image - -Then run `npm install`/`yarn install` and `make`. - -## Releasing ## - -If you are a maintainer of this repository and a new release is to be published -* Make sure all PRs (that shall be pulled) are pulled - * The PRs add new `svg`s in `vectors/` - * The `icons.tsv` is ammended (i.e. new icons added at the bottom) -* Every time the `svg`s or `icons.tsv` is touched in the `master` branch (i.e. through pulling) the preview image is updated -* Note that the `README.md` is NOT updated. You can manually modify it do indicate/add recently added but not released icons. -* Once the release seems ready: -* Edit the version number in `package.json` (and push that change to `master`) -* Trigger the "Draft a Release" workflow manually on the Actions page (on the `master` branch) - * The workflow will add a git tag for the release -* Go to the releases list and find the draft release - * Edit the description etc pp and finally - * Push "publish release" - * The release is published on Github -* Automatically the "Update README" workflow is triggered - * The `README.md` is regenerated (the preview should already be up to date, see above) -* Automatically the "Publish release to npm" workflow is triggered - * If the npm token is not expired the release is pushed to NPM - * You need to publish on NPM manually if token is expired (expected) diff --git a/lib/font-logos/templates/assets/font-logos.css.njk b/lib/font-logos/templates/assets/font-logos.css.njk deleted file mode 100644 index 3500670..0000000 --- a/lib/font-logos/templates/assets/font-logos.css.njk +++ /dev/null @@ -1,43 +0,0 @@ -{% set fwClass = classPrefix+'fw' %} -@font-face { - font-display: auto; - font-family: "{{ font.name }}"; - font-style: normal; - font-weight: normal; - src: - {%- for format in formats -%} - url("{{ font.name }}.{{ format.ext }}?v={{ font.version.string|urlencode }}") format("{{ format.name }}"){% if not loop.last %},{% endif %} - {%- endfor -%} -} - -{% for id, icon in icons -%} -.{{ classPrefix }}{{ id }}::before{% if not loop.last %}, {% endif %} -{% endfor %} { - display: inline-block; - font-family: "{{ font.name }}"; - font-style: normal; - font-weight: normal; - font-variant: normal; - text-rendering: auto; - line-height: 1; - -moz-osx-font-smoothing: grayscale; - -webkit-font-smoothing: antialiased; - font-smoothing: antialiased; -} - -.{{ fwClass }} { - text-align: center; - width: 1em; -} - -{%- for id, icon in icons %} -.{{ classPrefix }}{{ id }}::before { - content: "\{{ icon.codepoint.toString(16) }}"; -} -{%- if icon.width > font.em %} -.{{ fwClass }}.{{ classPrefix }}{{ id }}::before { - font-size: {{ font.em/icon.width }}em; - line-height: {{ icon.width/font.em }}em; -} -{%- endif -%} -{%- endfor -%} diff --git a/lib/font-logos/templates/assets/preview.html.njk b/lib/font-logos/templates/assets/preview.html.njk deleted file mode 100644 index ebf2678..0000000 --- a/lib/font-logos/templates/assets/preview.html.njk +++ /dev/null @@ -1,42 +0,0 @@ - - - - - - - - {% set ids=icons|keys|sort %} - {% for id in ids %} - {% set icon=icons[id] %} - - - {% for size in [12,14,16,18,20,24,28,32,36,42,48,54] %} - - {% endfor %} - - {% endfor %} - -
fl-{{ id }} - - {{size}}px -
- diff --git a/lib/font-logos/templates/assets/readme-header.html.njk b/lib/font-logos/templates/assets/readme-header.html.njk deleted file mode 100644 index 35d51c3..0000000 --- a/lib/font-logos/templates/assets/readme-header.html.njk +++ /dev/null @@ -1,37 +0,0 @@ - - -{% set icons = uniqueIcons %} {# Don't include variants (...-inverse) #} -{% set rows = 6 %} -{% set n = icons|length %} -{% set nPerRow = (n / rows) | round(0, "ceil") %} -{% set paddingPx = 5 %} -{% set widthPx = 888 %} {# Using GitHub's Readme width #} -{% set spacingPx = 2 * paddingPx %} -{% set totalSpacePx = spacingPx * (nPerRow - 1) %} -{% set iconWidthPx = (widthPx - totalSpacePx) / nPerRow %} - - - - -
- {% for id in icons|keys|sort %} - - {% endfor %} -
- diff --git a/lib/font-logos/vectors/leap.svg b/lib/font-logos/vectors/leap.svg new file mode 100644 index 0000000..f53b320 --- /dev/null +++ b/lib/font-logos/vectors/leap.svg @@ -0,0 +1,3 @@ + + + diff --git a/lib/font-logos/vectors/nobara.svg b/lib/font-logos/vectors/nobara.svg new file mode 100644 index 0000000..194d6f1 --- /dev/null +++ b/lib/font-logos/vectors/nobara.svg @@ -0,0 +1,3 @@ + + + diff --git a/lib/font-logos/vectors/river.svg b/lib/font-logos/vectors/river.svg new file mode 100644 index 0000000..809ad48 --- /dev/null +++ b/lib/font-logos/vectors/river.svg @@ -0,0 +1,3 @@ + + + diff --git a/lib/font-logos/vectors/tumbleweed.svg b/lib/font-logos/vectors/tumbleweed.svg new file mode 100644 index 0000000..4f1c1da --- /dev/null +++ b/lib/font-logos/vectors/tumbleweed.svg @@ -0,0 +1,3 @@ + + + diff --git a/lib/font-logos/vectors/typst.svg b/lib/font-logos/vectors/typst.svg new file mode 100644 index 0000000..0dd32a8 --- /dev/null +++ b/lib/font-logos/vectors/typst.svg @@ -0,0 +1,3 @@ + + + diff --git a/lib/font-logos/yarn.lock b/lib/font-logos/yarn.lock deleted file mode 100644 index 5146278..0000000 --- a/lib/font-logos/yarn.lock +++ /dev/null @@ -1,37 +0,0 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. -# yarn lockfile v1 - - -a-sync-waterfall@^1.0.0: - version "1.0.1" - resolved "https://registry.npmjs.org/a-sync-waterfall/-/a-sync-waterfall-1.0.1.tgz" - integrity sha512-RYTOHHdWipFUliRFMCS4X2Yn2X8M87V/OpSqWzKKOGhzqyUxzyVmhHDH9sAvG+ZuQf/TAOFsLCpMw09I1ufUnA== - -asap@^2.0.3: - version "2.0.6" - resolved "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz" - integrity sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA== - -commander@^5.1.0: - version "5.1.0" - resolved "https://registry.npmjs.org/commander/-/commander-5.1.0.tgz" - integrity sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg== - -font-logos@^1.2.0: - version "1.2.0" - resolved "https://registry.npmjs.org/font-logos/-/font-logos-1.2.0.tgz" - integrity sha512-LQYjEmXRXCYk0jg/lZMMM9tonmAfaVbBRsn7J0XwWcjXKIN6ZqNakOWhn/Sjt7jBocaQhrHx1EWAFGv6R0zQKw== - -lodash.merge@^4.6.2: - version "4.6.2" - resolved "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz" - integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ== - -nunjucks@^3.2.4: - version "3.2.4" - resolved "https://registry.npmjs.org/nunjucks/-/nunjucks-3.2.4.tgz" - integrity sha512-26XRV6BhkgK0VOxfbU5cQI+ICFUtMLixv1noZn1tGU38kQH5A5nmmbk/O45xdyBhD1esk47nKrY0mvQpZIhRjQ== - dependencies: - a-sync-waterfall "^1.0.0" - asap "^2.0.3" - commander "^5.1.0"