12
mar

[JavaScript] Cufon i polskie znaki.

Jakiś czas temu na blogu umieściłem wpis traktujący o moim zdaniem genialnym szablonie LightWord do WordPressa i „problemie”, jaki napotkałem podczas próby uzyskania polskich znaków w tytułach wpisów. Tytuły te [oraz kilka innych elementów na stronie], zawdzięczają swój wygląd funkcjonalnościom skryptu Cufon, służącego do podmiany standardowych, typowych czcionek określonych elementów witryny na własne, nawet takie, które nie są obecne w zbiorach systemowych odwiedzającego nas Internauty. W tamtym wpisie potraktowałem temat „po łebkach”, ponieważ sama biblioteka nie była głównym celem. Tym razem naprawiam swój błąd i dokonuję „porządnego” podsumowania funkcjonalności i różnych zagadnień związanych z korzystaniem z Cufona.

„Cufon – czcionki dla ludzi”.

Czym jest sam Cufon? Pozwolę sobie posłużyć się akapitem „About” ze strony projektu w serwisie GitHub:

Cufón aims to become a worthy alternative to sIFR, which despite its merits still remains painfully tricky to set up and use. To achieve this ambitious goal the following requirements were set:

* No plug-ins required – it can only use features natively supported by the client.
* Compatibility – it has to work on every major browser on the market.
* Ease of use – no or near-zero configuration needed for standard use cases.
* Speed – it has to be fast, even for sufficiently large amounts of text.

And now, after nearly a year of planning and research we believe that these requirements have been met.

Wersja polska / natywna ;] [tłumaczenie własne]:

Cufón stara się zająć pozycję godnej alternatywy dla technologii sIFR, która pomimo wielu zalet jest bardzo trudna w konfiguracji i użytkowaniu. Żeby osiągnąć tak ambitne cele zostały określone następujące wymagania:

* Brak zewnętrznych wtyczek – biblioteka będzie korzystała wyłącznie z funkcji wspieranych przez przeglądarkę klienta.
* Kompatybilność – narzędzie musi działać na wszystkich głównych przeglądarkach dostępnych na rynku.
* Łatwość użycia – nie będzie wymagana żadna lub prawie żadna konfiguracja dla standardowych przypadków użycia.
* Szybkość – skrypt musi działać szybko, nawet dla znacznych ilości tekstu.

W tym momencie, po prawie roku projektowania i eksperymentów wierzymy, że wszystkie powyższe wymagania zostały spełnione.

Myślę, że tym razem wyjątkowo mam niewiele do dodania w kwestii informacji o samej bibliotece. ;]

„Strona serwera”, czyli co „siedzi pod maską”.

Jak to działa? Pomimo tego, że dokładny opis mechanizmów stojących za tak zaawansowaną funkcjonalnością jest dosyć trudny, samo omówienie schematu działania da się już przedstawić w miarę przystępny sposób. A zatem:

Pierwszym etapem jest przetworzenie pliku czcionki [w formacie TTF, OTF i podobnych] na format SVG korzystając z wolnego narzędzia FontForge. W tym momencie wszystkie znaki dostępne w czcionce są zapisane w formie grafiki wektorowej. Następnie dane są konwertowane do postaci ścieżek VML, który to język jest obsługiwany bezpośrednio przez Internet Explorera, przez co możliwa jest bezproblemowa obsługa czcionek Cufona przez tą przeglądarkę. Ostatnim etapem jest eksport ścieżek VML do formatu JSON, w którym to otrzymujemy gotowy plik skryptu JavaScript rejestrujący naszą czcionkę w bibliotece.

Proste, prawda?

Przekonałeś mnie, chcę spróbować. ;]

Aby skorzystać z dobrodziejstw biblioteki Cufon, należy wykonać kilka bardzo prostych kroków. Pierwszym i oczywistym jest znalezienie czcionki, którą chcemy „przerobić” i zdobycie odpowiednich plików – ważne: sprawdźcie dokładnie licencję, bo nie każdy font można wstawić w ten sposób. Następnie uruchamiamy w przeglądarce stronę generatora skryptów czcionek pod odpowiednim adresem. Tutaj w pierwszym bloku wybieramy odpowiednie pliki i potwierdzamy, że mamy prawo do ich przetworzenia. W drugim należy wybrać zestaw znaków, jaki będzie nam potrzebny, można też zaznaczyć po prostu pierwszy checkbox, co spowoduje włączenie wszystkich dostępnych znaków – będzie to jednak spore obciążenie, ponieważ plik wynikowy potrafi wtedy osiągnąć rozmiar kilkuset kB. W ostatnim bloku zaznaczamy checkbox potwierdzający naszą znajomość i zgodę na warunki korzystania z usługi i… „Let’s do this!„. ;]

Mając gotowy plik możemy przystąpić do podmiany czcionek na naszej stronie internetowej. Aby to zrobić musimy w znacznikach <script> wstawić kolejno skrypt Cufona, skrypt czcionki oraz kod aktywujący silnik biblioteki na odpowiednich elementach witryny. Gotowy „skrawek” kodu wygląda następująco:

<script src="[plik Cufona].js" type="text/javascript"></script>
<script src="[plik czcionki].js" type="text/javascript"></script>
<script type="text/javascript">
Cufon.replace(['[elementy DOM, które chcemy podmienić]'], { fontFamily: '[nazwa użytej czcionki]' });
</script>

Na moim blogu wygląda to następująco:

<script src="http://blog.kowalczyk.cc/wp-content/themes/lightword/js/cufon.js" type="text/javascript"></script>
<script src="http://blog.kowalczyk.cc/wp-content/themes/lightword/js/extra_mp.font.js" type="text/javascript"></script>
<script type="text/javascript">
Cufon.replace(['h1','h2'], { fontFamily: 'Myriad Pro' });
</script>

Jak widać, cały proces upiększenia czcionek na naszej stronie sprowadza się do wstawienia trzech linijek kodu. Ktoś proponuje prostsze rozwiązanie? ;]

Problem z polskimi znakami.

Zauważyłem, że bardzo dużo osób jest kierowanych z wyszukiwarek internetowych do mojego bloga na hasła związane z wyświetlaniem polskich znaków przy użyciu Cufona – wpis o szablonie LightWord, który ma z tym niewiele wspólnego, ma zadziwiająco wysoką pozycję w Google. Stwierdziłem więc, że skoro tyle osób ma z tym problem, to skrobnę nieco i o tym, żeby Internauci nie frustrowali się tym, że czytają moje wypociny a rozwiązania… nie ma. Pozwolę sobie wyrazić to w formie apelu:

Czytelniku!

Jeśli czcionka nie zawiera polskich znaków, to jakkolwiek byś się nie starał, jakkolwiek byś nie prosił / błagał – generator nie umieści ich w pliku wynikowym, a sam Cufon zauważając znak nie występujący w skrypcie czcionki po prostu go pominie. Dlatego jedynym rozwiązaniem jest znalezienie takiego fontu, który zawiera polskie / jakiekolwiek inne pożądane znaki. Jeśli już masz takowy, nie zapomnij zaznaczyć w generatorze odpowiednich opcji pozwalających na włączenie ich do skryptu wynikowego. Jeśli postąpisz poprawnie według tych reguł – nie ma możliwości, żeby polskich / innych pożądanych znaków nie było. Dziękuję za uwagę! ;]

Podsumowanie.

Cóż mogę rzec w podsumowaniu? Cufon to zarówno „fajna zabawka”, jak i potężne narzędzie, dzięki któremu można tworzyć strony o naprawdę unikalnym wyglądzie, przyciągające oko potencjalnych klientów. Od strony programisty również nie mam nic do zarzucenia tej bibliotece – szybkość i funkcjonalność jaką oferuje stoi na najwyższym poziomie. Co najważniejsze – to nie jest Flash! Co to oznacza? Mianowicie – wraz z ładnym wyglądem nie tracimy możliwości zaindeksowania treści przez wyszukiwarki, mamy też możliwość swobodnego podejrzenia źródła – jesli ktoś chce zobaczyć jak dokładnie wygląda kod tworzony przez Cufona, trzeba będzie „niestety” posłużyć się FireBugiem, ale myślę, że większość „żądnych wiedzy” użytkowników uczyni to z miłą chęcią.

Dziękuję za lekturę i zapraszam do podzielenia się swoimi opiniami na temat podmiany czcionek na stronach internetowych, nie tylko poprzez opisaną wyżej bibliotekę. Do zobaczenia w kolejnym wpisie! ;]

Warto przeczytać.

Trwa ładowanie…

Subscribe without commenting

Wyszukaj:
Twitter
http://t.co/piYQJA2z /cc @merowing_ you'll like it :)
3 days ago
"It is about being polite, respectful and kind. That's the open source currency. Can't pay in these values? You shouldn't be using it."
4 days ago
Facebook
© Copyright 2010-2012 Tomasz Kowalczyk. All rights reserved. Created by Dream-Theme — premium wordpress themes. Proudly powered by WordPress.