Wie kann ich Google Web-Schriftarten auf meinem eigenen Server hosten?

271

Ich muss einige Google-Schriftarten in einer Intranet-Anwendung verwenden. Die Kunden können eine Internetverbindung haben oder nicht. Beim Lesen der Lizenzbedingungen scheint dies gesetzlich zulässig zu sein.

Samarth Bhargava
quelle
6
Was ich verstehe ist, dass es nicht so einfach ist, eine Datei herunterzuladen und zu speichern. Jeder Browser unterstützt ein anderes Schriftformat und Google bietet keine direkte und einfache Möglichkeit, alle erforderlichen Dateien abzurufen, damit die Schrift in allen Browsern ordnungsgemäß funktioniert.
Samarth Bhargava
1
Sie erhalten alle URIs aus dem verknüpften Stylesheet.
Fuxia
38
Ja, ich kann alle Details selbst herausfinden, oder ich kann eine Frage stellen, um zu sehen, ob jemand dies zuvor getan hat und Erfahrungen und Skripte zum Teilen hat
Samarth Bhargava
2
Nun, Google gibt fonts.googleapis.com/css?je nach UA-Header (sprich: Ihr Browser) unterschiedliche Antworten zurück. ➝ Sie liefern also nur das, was der aktuelle Browser benötigt. Wenn Sie alle benötigten Schriftarten (oder auch nur die URLs) erhalten möchten, benötigen Sie mehrere Ladevorgänge der CSS-Datei von verschiedenen Browsern bzw.. mit verschiedenen gefälschten Headern, um alles zu bekommen, was benötigt wird.
Frank Nocke
Verwenden Sie dieses Tool: npmjs.com/package/font-ranger
Do Async

Antworten:

217

Bitte denken Sie daran, dass meine Antwort sehr gealtert ist.

Im Folgenden finden Sie weitere technisch anspruchsvollere Antworten, z.

Lassen Sie sich also nicht von der Tatsache, dass dies die derzeit akzeptierte Antwort ist, den Eindruck erwecken, dass dies immer noch die beste ist.


Sie können jetzt auch den gesamten Schriftsatz von Google über github in dessen Google / Font- Repository herunterladen . Sie bieten auch eine ~ 420 MB Zip-Momentaufnahme ihrer Schriftarten .


Sie laden Ihre Schriftartenauswahl zunächst als komprimiertes Paket herunter und erhalten eine Reihe von echten Schriftarten. Kopieren Sie sie an einen öffentlichen Ort, auf den Sie von Ihrem CSS aus verlinken können.

Auf der Download-Seite für Google Webfont finden Sie einen Include-Link wie folgt:

http://fonts.googleapis.com/css?family=Cantarell:400,700,400italic,700italic|Candal

Es ist über eine Reihe von Definitionen mit einem CSS verknüpft, das die Schriftarten @font-facedefiniert.

Öffnen Sie es in einem Browser, um sie zu kopieren und in Ihr eigenes CSS einzufügen, und ändern Sie die URLs so, dass sie die richtigen Schriftdatei- und Formattypen enthalten.

Also das:

@font-face {
  font-family: 'Cantarell';
  font-style: normal;
  font-weight: 700;
  src: local('Cantarell Bold'), local('Cantarell-Bold'), url(http://themes.googleusercontent.com/static/fonts/cantarell/v3/Yir4ZDsCn4g1kWopdg-ehHhCUOGz7vYGh680lGh-uXM.woff) format('woff');
}

wird dies:

/* Your local CSS File */
@font-face {
    font-family: 'Cantarell';
    font-style: normal;
    font-weight: 700;
    src: local('Cantarell Bold'), local('Cantarell-Bold'), url(../font/Cantarell-Bold.ttf) format('truetype');
}

Wie Sie sehen können, besteht ein Nachteil beim Hosten der Schriftarten auf Ihrem eigenen System darin, dass Sie sich auf das wahre Schriftformat beschränken, während der Google Webfont-Dienst vom Zugriffsgerät bestimmt, welche Formate übertragen werden.

Außerdem musste ich .htaccessmeinem Verzeichnis eine Datei hinzufügen , die die Schriftarten enthält, die MIME-Typen enthalten, um zu verhindern, dass Fehler in Chrome Dev Tools auftauchen.

Für diese Lösung wird nur der wahre Typ benötigt, aber das Definieren von mehr schadet nicht, wenn Sie auch verschiedene Schriftarten einschließen möchten, wie z font-awesome.

#.htaccess
AddType application/vnd.ms-fontobject .eot
AddType font/ttf .ttf
AddType font/otf .otf
AddType application/x-font-woff .woff
k0pernikus
quelle
37
Sie sind nicht auf TrueType beschränkt, sondern müssen nur die .woff-Dateien herunterladen, d. H. Fügen Sie "http: //themes.googleusercontent.com/static/fonts/cantarell/v3/...80lGh-uXM.woff" in Ihren Webbrowser ein, speichern Sie es als "/fonts/Cantarell-Bold.woff" und aktualisieren Sie das CSS zu entsprechen (URL ('/ fonts / Canterell-Bold.woff'))
Anthony Briggs
2
Es gibt einen Grund, warum Google verschiedene Schriftformate bereitstellt - TrueType funktioniert in alten Browsern nicht . WOFF ist der W3C-Standard.
Michael McGinnis
3
Scrollen Sie nach unten zur Bash-Skriptlösung - großartig!
Dr. Max Völkel
3
Die Datei ändert den Inhalt je nach verwendetem Browser.
Krii
3
Diese Antwort ist komplexer zu implementieren als die unten aufgeführten Alternativen. Es ist auch in mehrfacher Hinsicht technisch inkorrekt (keine Einschränkung auf TTF, TTF ist eine schlechte Idee, dies führt zu unterschiedlichen Ergebnissen pro Browser, Sie können Schriftarten nirgendwo öffentlich hosten, da derselbe Ursprung gilt). Bitte tun Sie das nicht, verwenden Sie eine der anderen Antworten unten.
Robin Berjon
202

Es gibt ein Tool localfont.com, mit dem Sie alle Schriftvarianten herunterladen können. Es generiert auch das entsprechende CSS für die Implementierung. veraltet

localfont ist ausgefallen. Stattdessen können Sie, wie Damir vorschlägt , den Google-Webfonts-Helper verwenden


Udondan
quelle
Obwohl fantastisch, wenn Sie zufällig andere Sprachversionen Ihrer Schriftart benötigen, müssen Sie eine andere Lösung finden
anges244
Was ist mit verschiedenen Zeichensätzen?
vitro
1
Hier sagt der Google- Entwickler, dass das Selbsthosten von Google-Schriftarten seine eigenen Nachteile hat. Überprüfen Sie stattdessen diese Tipps , um das Google-Schriftarten-CDN zu verwenden und die Seitengeschwindigkeit zu erhöhen.
Shaijut
@PauloCoghi Das Tool meldet möglicherweise, dass die Website erreichbar ist, aber es stimmt eindeutig etwas nicht, da ich und viele andere sie nicht anzeigen können.
Anwalt
147

Gute Lösung ist Google-Webfonts-Helfer .

Sie können mehr als eine Schriftvariante auswählen, was viel Zeit spart.

Damir Bulic
quelle
Tolle Werkzeuge! Ich liebe es. Sie können die Schriftartenvorschau anzeigen und alle erforderlichen Dateien mit einem Klick herunterladen.
Cuixiping
Sehr schönes Werkzeug. Funktioniert sehr gut und ermöglicht auch das Herunterladen von latin-extSchriftarten.
Piotrekkr
3
Dies ist die beste Option. Es macht alles, Sie können sogar das Präfix des Schriftordners angeben.
Maciej Krawczyk
63

Ich habe ein Bash-Skript geschrieben , das die CSS-Datei auf den Servern von Google mit verschiedenen Benutzeragenten abruft, die verschiedenen Schriftformate in ein lokales Verzeichnis herunterlädt und eine CSS-Datei mit diesen schreibt. Beachten Sie, dass das Skript Bash Version 4.x benötigt.

Das Skript finden Sie unter https://neverpanic.de/blog/2014/03/19/downloading-google-web-fonts-for-local-hosting/ (ich reproduziere es hier nicht, daher muss ich es nur aktualisieren ein Ort, an dem ich muss).

Bearbeiten: Verschoben nach https://github.com/neverpanic/google-font-download

Neverpanic
quelle
4
Das ist mehr als fantastisch! (Ich hoffe es funktioniert gut, noch nicht getestet). Ich habe über Jahre hinweg von Zeit zu Zeit nach so etwas gesucht. Kein Scherz, ich habe sogar angefangen, mein eigenes Skript zu schreiben, das bei weitem nicht vollständig ist. Es ist überwältigend, dass so wenige Menschen dazu neigen, dies zu wollen. Google versteckt diese Schriftarten hinter generierten Strings und macht keine Open Source die eigentlich Webfont-Dateien im Repo nur die ttf. Sie möchten, dass wir ihre Schriftarten verwenden. Sie möchten, dass wir ihre Server verwenden, weil sie dies missbrauchen, um Personen zu verfolgen. Und selbst die datenschutzbewusstesten Personen binden die Schriftarten vom Google-Server ein.
Redanimalwar
1
Mein einziges Anliegen sind die tatsächlichen Schriftlizenzen, die ich nicht wirklich genau studiert habe. Ich weiß nur, dass sich Schriftlizenzen von GPL oder MIT unterscheiden. Dürfen wir diese Schriftarten legal von den Google-Servern abrufen und selbst bedienen? Wiederum glaube ich keine Minute lang, dass Google all diese Schriftarten verschenkt, nur um die Welt besser zu machen. Sie bezahlen Entwickler dafür, offene Schriftarten für sie zu erstellen, damit sie sicher etwas gewinnen, Daten viele Daten. Und wenn es nicht Ihre Privatsphäre ist, können Sie diese Schriftarten auf diese Weise lokal ohne Internet testen.
Redanimalwar
2
Diese Antwort sollte mehr positiv bewertet werden, da dieses Skript im Gegensatz zu localfont.com alle Schriftformate und Teilmengen herunterladen kann.
Piotrekkr
Ich weiß, dass Sie mich als faulen Menschen nehmen werden, aber als durchschnittlicher Windows-Benutzer ist es schade, ihn kompilieren zu müssen usw., um ihn verwenden zu können ...
Lucas Bustamante
@LucasB Es ist keine Kompilierung erforderlich. Es ist ein Bash-Skript. Ich weiß, dass Windows nicht mit Bash geliefert wird, aber Sie können dies auf eine Weise erneut implementieren, die Windows unterstützt. Es war einfach nicht Teil meines Anwendungsfalls, also habe ich keine Zeit damit verbracht.
Neverpanic
14

Der Inhalt der CSS-Datei (von der Include-URL) hängt davon ab, in welchem ​​Browser ich sie ansehe. Wenn Sie beispielsweise mit Chrome zu http://fonts.googleapis.com/css?family=Open+Sans navigieren, enthielt die Datei nur WOFF-Links. Mit dem Internet Explorer (unten) wurden sowohl EOT als auch WOFF eingeschlossen. Ich habe alle Links in meinen Browser eingefügt, um sie herunterzuladen.

@font-face {
  font-family: 'Open Sans';
  font-style: normal;
  font-weight: 400;
  src: url(http://themes.googleusercontent.com/static/fonts/opensans/v6/cJZKeOuBrn4kERxqtaUH3fY6323mHUZFJMgTvxaG2iE.eot);
  src: local('Open Sans'), local('OpenSans'), url(http://themes.googleusercontent.com/static/fonts/opensans/v6/cJZKeOuBrn4kERxqtaUH3fY6323mHUZFJMgTvxaG2iE.eot) format('embedded-opentype'), url(http://themes.googleusercontent.com/static/fonts/opensans/v6/cJZKeOuBrn4kERxqtaUH3T8E0i7KZn-EPnyo3HZu7kw.woff) format('woff');
}

Wenn Sie Ihre eigenen Web-Schriftarten hosten, müssen Sie eine korrekte Verknüpfung zu jedem Schrifttyp herstellen , ältere Browserfehler beheben usw. Wenn Sie Google Web Fonts (von Google gehostet) verwenden, verknüpft Google automatisch die richtigen Schriftarten für diesen Browser.

Michael McGinnis
quelle
1
+1 für die Verknüpfung mit dem Artikel, in dem der zu verwendende "universelle" CSS-Code und ein "reduzierter" Code für moderne Browser erläutert werden!
ItalyPaleAle
2
Also muss ich den Browser dann intelligent mit einem anderen Format bedienen. Ich weiß, dass dies sehr entmutigt ist, aber wir stellen unsere Seite einigen chinesischen Kunden zur Verfügung und dies ist der Hauptgrund, warum wir sie hosten möchten. Sie haben die meisten Google-Ressourcen blockiert.
Lionel Chan
6

Es ist gesetzlich zulässig, solange Sie sich an die Bedingungen der Lizenz der Schriftart halten - normalerweise an die OFL.

Sie benötigen eine Reihe von Web-Schriftformaten, die vom Font Squirrel Webfont Generator erstellt werden können.

Das OFL verlangte jedoch, dass die Schriftarten umbenannt werden, wenn sie geändert werden. Wenn Sie den Generator verwenden, müssen Sie sie ändern.

davelab6
quelle
Abhängig von der Schriftart können Sie das Webfont-Kit einfach direkt vom Schrifteichhörnchen herunterladen. fontsquirrel.com/fonts/open-sans
Jack Frost
3

Ich habe ein Skript in PHP geschrieben, das dem von @neverpanic ähnelt und automatisch sowohl das CSS als auch die Schriftarten ( sowohl angedeutet als auch nicht angedeutet ) von Google herunterlädt . Es liefert dann das richtige CSS und die richtigen Schriftarten von Ihrem eigenen Server basierend auf dem User Agent. Es behält seinen eigenen Cache bei, sodass Schriftarten und CSS eines Benutzeragenten nur einmal heruntergeladen werden.

Es ist in einem frühen Stadium, aber es kann hier gefunden werden: DaAwesomeP / php-offline-fonts

DaAwesomeP
quelle
2

Da Sie alle Schriftarten (oder einige davon) auf Ihrem eigenen Server hosten möchten, laden Sie Schriftarten von diesem Repo herunter und verwenden Sie sie wie gewünscht: https://github.com/praisedpk/Local-Google-Fonts

Wenn Sie dies nur tun möchten, um das mit Google Fonts verbundene Problem beim Zwischenspeichern des Browsers zu beheben, können Sie alternative CDN-Schriftarten verwenden und folgende Schriftarten einschließen:

<link href="https://pagecdn.io/lib/easyfonts/fonts.css" rel="stylesheet" />

Oder eine bestimmte Schriftart wie:

<link href="https://pagecdn.io/lib/easyfonts/lato.css" rel="stylesheet" />
Hamid Sarfraz
quelle
1

Ich habe grunt-local-googlefont in einer Grunzaufgabe verwendet .

module.exports = function(grunt) {

    grunt.initConfig({
       pkg: grunt.file.readJSON('package.json'),

        "local-googlefont" : {
            "opensans" : {
                "options" : {
                    "family" : "Open Sans",
                    "sizes" : [
                        300,
                        400,
                        600
                    ],
                    "userAgents" : [
                        "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0)",  //download eot
                        "Mozilla/5.0 (Linux; U; Android 4.1.2; nl-nl; GT-I9300 Build/JZO54K) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30", //download ttf
                        "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/35.0.1944.0 Safari/537.36" //download woff and woff2
                    ],
                    "cssDestination" : "build/fonts/css",
                    "fontDestination" : "build/fonts",
                    "styleSheetExtension" : "css",
                    "fontDestinationCssPrefix" : "fonts"

                }
            }
        }
    });

    grunt.loadNpmTasks('grunt-local-googlefont');
 };

Um sie dann abzurufen:

grunt local-googlefont:opensans

Beachten Sie, dass ich eine Verzweigung aus dem Original verwende, die beim Abrufen von Schriftarten mit Leerzeichen im Namen besser funktioniert.

Strang
quelle
1

Sie können tatsächlich alle Schriftformatvarianten direkt von Google herunterladen und in Ihr CSS aufnehmen, um sie von Ihrem Server aus bereitzustellen. Auf diese Weise müssen Sie sich keine Sorgen machen, dass Google die Nutzer Ihrer Website verfolgt. Der Nachteil kann jedoch die eigene Serviergeschwindigkeit verlangsamen. Schriftarten sind sehr ressourcenintensiv. Ich habe in dieser Ausgabe noch keine Tests durchgeführt und frage mich, ob jemand ähnliche Gedanken hat.

Flyhead
quelle
1

Wenn Sie Webpack verwenden, könnte Sie dieses Projekt interessieren: https://github.com/KyleAMathews/typefaces

Angenommen, Sie möchten die Roboto-Schriftart verwenden:

npm install typeface-roboto --save

Importieren Sie es dann einfach in den Einstiegspunkt Ihrer App (Haupt-JS-Datei):

import 'typeface-roboto'
Justin
quelle
1

Sie können dem Skript folgen, das mit PHP entwickelt wurde. Hier können Sie mithilfe des Skripts Google-Schriftarten herunterladen. Es werden die Schriftarten heruntergeladen und eine CSS-Datei erstellt und in zip archiviert.
Sie können den Quellcode vom GitHub https://github.com/sourav101/google-fonts-downloader herunterladen

$obj = new GoogleFontsDownloader;

if(isset($_GET['url']) && !empty($_GET['url']))
{
    $obj->generate($_GET['url']);
}

if(isset($_GET['download']) && !empty($_GET['download']) && $_GET['download']=='true')
{
    $obj->download();
}

/**
* GoogleFontsDownloader
* Easy way to download any google fonts.
* @author     Shohrab Hossain
* @version    1.0.0 
*/
class GoogleFontsDownloader
{
    private $url      = '';
    private $dir      = 'dist/';
    private $fontsDir = 'fonts/';
    private $cssDir   = 'css/';
    private $fileName = 'fonts.css';
    private $content  = '';
    private $errors   = '';
    private $success  = '';
    public  $is_downloadable  = false;

    public function __construct()
    {
        ini_set('allow_url_fopen', 'on');
        ini_set('allow_url_include', 'on');
    }

    public function generate($url = null)
    {
        if (filter_var($url, FILTER_VALIDATE_URL) === FALSE) 
        {
            $this->errors .= "<li><strong>Invalid url!</strong> $url</li>";
        }
        else
        {
            $this->url = $url;
            // delete previous files
            $this->_destroy();
            // write font.css
            $this->_css();
            // write fonts
            $this->_fonts();
            // archive files
            $this->_archive();
        }  
        // show all messages
        $this->_message();
    }

    public function download()
    { 
        // Download the created zip file
        $zipFileName = trim($this->dir, '/').'.zip';
        if (file_exists($zipFileName))
        {
            header("Content-type: application/zip");
            header("Content-Disposition: attachment; filename = $zipFileName");
            header("Pragma: no-cache");
            header("Expires: 0");
            readfile("$zipFileName");

            // delete file 
            unlink($zipFileName);
            array_map('unlink', glob("$this->dir/*.*"));
            rmdir($this->dir);

        } 
    }   

    private function _archive()
    {
        if (is_dir($this->dir))
        {
            $zipFileName = trim($this->dir, '/').'.zip';
            $zip = new \ZipArchive(); 
            if ($zip->open($zipFileName, ZipArchive::CREATE) === TRUE) 
            {
                $zip->addGlob($this->dir. "*.*");
                $zip->addGlob($this->dir. "*/*.*");
                if ($zip->status == ZIPARCHIVE::ER_OK)
                {
                    $this->success .= '<li>Zip create successful!</li>';
                    $this->is_downloadable = true;
                }
                else 
                {
                    $this->errors .= '<li>Failed to create to zip</li>';
                } 
            } 
            else 
            {
                $this->errors .= '<li>ZipArchive not found!</li>';
            }  
            $zip->close(); 
        }
        else
        {
            $this->errors .= "<li><strong>File</strong> not exists!</li>";
        } 
    }   

    private function _css()
    {  
        $filePath = $this->dir.$this->cssDir.$this->fileName;
        $content  = $this->_request($this->url);
        if (!empty($content))
        {
            if (file_put_contents($filePath, $content))
            {
                $this->success .= "<li>$this->fileName generated successful!</li>";
                $this->content = $content; 
            }
            else
            {
                $this->errors .= '<li>Permission errro in $this->fileName! Unable to write $filePath.</li>';
            }
        }
        else
        {
            $this->errors .= '<li>Unable to create fonts.css file!</li>';
        }
    }

    private function _fonts()
    {
        if (!empty($this->content))
        {
            preg_match_all('#\bhttps?://[^\s()<>]+(?:\([\w\d]+\)|([^[:punct:]\s]|/))#', $this->content, $match);
            $gFontPaths = $match[0];
            if (!empty($gFontPaths) && is_array($gFontPaths) && sizeof($gFontPaths)>0)
            {
                $count = 0;
                foreach ($gFontPaths as $url) 
                {
                    $name     = basename($url);
                    $filePath = $this->dir.$this->fontsDir.$name;
                    $this->content = str_replace($url, '../'.$this->fontsDir.$name, $this->content);

                    $fontContent  = $this->_request($url);
                    if (!empty($fontContent))
                    {
                        file_put_contents($filePath, $fontContent);
                        $count++;
                        $this->success .= "<li>The font $name downloaded!</li>";
                    }
                    else
                    {
                        $this->errors .= "<li>Unable to download the font $name!</li>";
                    } 
                }

                file_put_contents($this->dir.$this->cssDir.$this->fileName, $this->content);
                $this->success .= "<li>Total $count font(s) downloaded!</li>";
            }
        }
    }

    private function _request($url)
    {
        $ch = curl_init(); 
        curl_setopt_array($ch, array(
            CURLOPT_SSL_VERIFYPEER => FALSE,
            CURLOPT_HEADER         => FALSE,
            CURLOPT_FOLLOWLOCATION => TRUE,
            CURLOPT_URL            => $url,
            CURLOPT_REFERER        => $url,
            CURLOPT_RETURNTRANSFER => TRUE,
        ));
        $result = curl_exec($ch);
        curl_close($ch);

        if (!empty($result))
        {
            return $result;
        } 
        return false;
    }

    private function _destroy()
    {
        $cssPath = $this->dir.$this->cssDir.$this->fileName;
        if (file_exists($cssPath) && is_file($cssPath))
        {
            unlink($cssPath);
        } 
        else
        {
            mkdir($this->dir.$this->cssDir, 0777, true);
        }

        $fontsPath = $this->dir.$this->fontsDir;
        if (!is_dir($fontsPath))
        {
            mkdir($fontsPath, 0777, true);
        }
        else
        {
            array_map(function($font) use($fontsPath) {
                if (file_exists($fontsPath.$font) && is_file($fontsPath.$font))
                {
                    unlink($fontsPath.$font);
                }
            }, glob($fontsPath.'*.*')); 
        }
    }

    private function _message()
    {
        if (strlen($this->errors)>0)
        {
            echo "<div class='alert alert-danger'><ul>$this->errors</ul></div>";
        }  
        if (strlen($this->success)>0)
        {
            echo "<div class='alert alert-success'><ul>$this->success</ul></div>";
        } 
    } 
}
Sourav
quelle
0

Zusätzlich zu k0pernicus möchte ich Best- Served -Local vorschlagen . Es ist auch ein Bash (v4) -Skript, mit dem Webserver-Betreiber Google-Web-Schriftarten von ihrem eigenen Webserver herunterladen und bereitstellen können. Zusätzlich zu dem anderen Bash-Skript kann der Benutzer die Bereitstellung aktueller Schriftdateien und CSS-Dateien (über Cron und dergleichen) vollständig automatisieren.

Ronald van Engelen
quelle
0

Es gibt ein sehr einfaches Skript, das in einfachem Java geschrieben ist, um alle Schriftarten von einem Google Web Font-Link herunterzuladen (mehrere Schriftarten werden unterstützt). Außerdem wird die CSS-Datei heruntergeladen und an lokale Dateien angepasst. Der Benutzeragent kann angepasst werden, um auch andere Dateien als nur WOFF2 abzurufen. Siehe https://github.com/ssc-hrep3/google-font-download

Die resultierenden Dateien können einfach zu einem Erstellungsprozess hinzugefügt werden (z. B. einem Webpack-Build vue-webpack).

ssc-hrep3
quelle
0

Sie können Quellschriftarten von https://github.com/google/fonts herunterladen

Verwenden Sie danach das font-rangerTool, um Ihre große Unicode-Schriftart in mehrere Teilmengen (z. B. Latein, Kyrillisch) aufzuteilen. Mit dem Tool sollten Sie Folgendes tun:

  • Generieren Sie Teilmengen für jede von Ihnen unterstützte Sprache
  • Verwenden Sie eine Teilmenge im Unicode-Bereich, um Bandbreite zu sparen
  • Entfernen Sie Bloat von Ihren Schriftarten und optimieren Sie sie für das Web
  • Konvertieren Sie Ihre Schriftarten in ein komprimiertes woff2-Format
  • Stellen Sie .woff-Fallback für ältere Browser bereit
  • Passen Sie das Laden und Rendern von Schriftarten an
  • Generieren Sie eine CSS-Datei mit @ font-face-Regeln
  • Hosten Sie Web-Schriftarten selbst oder verwenden Sie sie lokal

Font-Ranger : https://www.npmjs.com/package/font-ranger

PS Sie können dies auch mithilfe der Node.js-API automatisieren

Asynchronisieren
quelle