Seznam českých Google písem – making of

Seznam cca 250 českých písem pro použití na webu jsem pochopitelně nevytvářel ručně. Jak ale automaticky zjistit, jestli daný font umí znaky s háčky a čárkami. A jak to celé udělat?

Seznam všech fontů

V první řadě bylo třeba získat všechna Google písma. To jde snadno přes API.

<?php
$webfonts = json_decode(
  file_get_contents("https://www.googleapis.com/webfonts/v1/webfonts?fields=items%2Ffamily&key=API klíč"), 
  true);

Potom si je lze vypsat cyklem:

foreach ($webfonts["items"] as $pismo) {
  $pismo["family"]; // název fontu
}

Připojení písma

Každé písmo je možné připojit vložením CSS souboru, který se dále odkazuje na existující písma. Přišlo mi trochu nešetrné připojovat stovky CSS definic písem, které připojí další stovky fontů.

Zjistil jsem, že URL pro jeden CSS soubor (při oddělování | může být v jednom CSS více fontů) s písmy může mít bezpečně asi 1600 znaků, takže se takto požadavky rozdělují.

Zjištění českých znaků

Testování diakritiky probíhá tak, že se pro každé písmo vytvoří dva elementy:

  • jeden má znaky s diakritikou ěščřžýáéňóůú,
  • druhý stejné znaky bez diakritiky escrzyaenouu

Potom se jim nastaví testované písmo a JavaScriptem se přepočítá offsetWidth (šířka výsledného elementu). Vychází se z toho, že v případě podpory diakritiky bude šířka stejná.

Některé znaky jako í, ť nebo ď se netestují, protože mají různé rozměry od svých bez-háčkových a bez-čárkových variant i v běžných písmech (např. Arial).

Nakonec proběhne vyfiltrování, kdy JS vyháže elementy, kde se offsetWidth nerovná. A výsledný HTML kód už tvoří finální seznam.

Občas to nefunguje

Ano, některá písma to určuje chybně. Nicméně úspěšnější automatický postup zatím neznám…

To je všechno. Líbil se vám článek a chcete se dozvědět, až vyjde další?

Sledujte:

 

Připomínky mi pište do komentářů ↓

Česká písma (250 fontů)

Česká písma z Google Fonts

Seznam fontů z Google Fonts, které obsahují znaky s diakritikou pro psaní českého textu.

Jak zjistit název fontu

Co je to za font?

Jak určit, jak se jmenuje písmo na obrázku nebo webu.

Systémová písma

Systémová písma

Jak a proč používat lokální písma dostupné v operačních systémech.

Offline webová stránka

Offline webová stránka

Jak umožnit návštěvníkům stažení celé webové stránky pro prohlížení offline, umístění na CD apod.

Převod PHP na JavaScript

Převedení PHP do JavaScriptu

Jak převést PHP kód do JavaScriptu.

Komentáře