31. října 2009

Bookmarklet pro adresy z katalogu Alephu

Zkoušeli jste někdy někomu posílat odkaz na knihu, kterou jste si našli v katalogu vaší knihovny (např. Národní technické knihovny, Národní knihovny, knihoven Univerzity Karlovy)? A zjistili jste, že mu odkaz nefunguje?

Pravděpodobně ne.:-)

Problém je v tom, že URL adresy jsou v katalogu Alephu dynamicky generovány a pro každého uživatele tedy budou jiné. Na pomoc přichází bookmarklet pro vytváření krátkého (a funkčního) odkazu na bibliografické záznamy v katalozích knihovního systému Aleph. Tento skript nejprve vytvoří stabilní URL adresu pro daný bibliografický záznam, kterou poté zkrátí pomocí JSON-P API služby bit.ly (kterou mimochodem podle Terms of service nesmějí používat děti pod 13 let).

Tady je: Zkrátit odkaz z Alephu

Použití:

  1. Získání záložky:
    • Přetáhněte odkaz Zkrátit odkaz z Alephu do lišty záložek.
    • Nebo na odkaz Zkrátit odkaz z Alephu klikněte pravým tlačítkem myši a zvolte Přidat stránku do záložek nebo podobnou volbu ve vašem prohlížeči.
  2. Použití záložky:
    • Na stránce bibliografického záznamu v katalogu Alephu klikněte na záložku Zkrátit odkaz z Alephu.

Problémy:

  • Ozkoušeno pouze ve Firefoxu 3+ (Ubuntu, Windows) a IE7. U ostatních konfigurací lze v dobré víře předpokládat, že bude vše fungovat víceméně tak, jak má.
  • Není prováděna žádná kontrola, zdali jde opravdu o stránku bibliografického záznamu v knihovním katalogu Aleph. Nad ostatními stránkami může bookmarklet zobrazovat všelijaké zajímavé výsledky.
  • Zobrazení vytvořeného odkazu není zrovna cool.
  • Vyzkoušeno přibližně nad 10 katalogy Alephu. Lze však předpokládat, že bude fungovat nad jakoukoli instalací, protože všechny mají přibližně stejnou obsahovou strukturu.

Při vytváření bookmarkletu jsem postupně dospěl k tomu, že je zapotřebí si dávat na některé věci pozor. A to:

  • Jednořádkové komentáře ("//"). Protože se ve finální fázi skript převede do jednoho řádku, pak efektivně jakýkoli jednořádkový komentář zakomentuje větší část kódu, než jste si mysleli. Ostatně není vhodné, aby výsledek obsahoval jakékoli komentáře (tj. ani víceřádkové), takže je záhodno použít minifikaci například pomocí JSMin.
  • Vzhledem k tomu, že bude skript vložen přímo do HTML atributu, je zapotřebí si dávat pozor na uvozovky. Pokud je například vložen do <a href="javascript:(function(){...}())", pak je třeba, aby se ve skriptu nevyskytovaly dvojité uvozovky nebo byly řádně escapovány.

Nakonec přidávám verzi, která (podobně jako v ruské ruletě) v 1 ze 6 případů vytvoří odkaz ve skutečnosti vedoucí na jedno nezapomenutelné video:

Zkrátit odkaz z Alephu