Vkladani/pouzivani obrazku v docbooku
Jirka Kosek
jirka na kosek.cz
Neděle Prosinec 18 10:15:45 CET 2005
Radek Hnilica wrote:
> Zdálo se mi toto zavedení dalšího místa "redirekce" vhodné. Pokud
> bych provedl něco s obrázkem týkající se změny jména souboru nebo
> cesty. Nastavil bych to na jednom místě místo hledání všech výskytů.
> Nicméně podstatná část obrázků se používá jen na jednom místě, takže
> jsem to oželel.
Entity můžete použít i s fileref:
<!ENTITY logo "pictures/logo.png">
....
<imagedata fileref="&logo;"/>
....
> Ano o této příčině vím, a trpělivě čekám až ji opravíte. Ale zde se
> projevila další "chyba/vlastnost". On totiž hlásí, že nemůže otevřít
> soubor file:/home/radek/src/book/docbook/picture/, ale v xml ve
> skutečnosti jsem se odkazoval na úplně jiný soubor a měl hledat
> /home/radek/cache/book/docbook/picture. Tu cestu si "vyvěštil" ze
> symbolických linků, kterými jsem poskládal prostředí a on je
> dereferencoval, čímž rozbil prostředí v kterém byl spuštěn a tím pádem
> nemůže dosáhnout na žádné soubory neb ty jsou někde úplně jinde.
> Matně se mi vybavuje, že by někde měl být přepínač nebo volba, kterými
> se zakáže vyhodnocování symbolických linků (prostě chci aby se k
> symbolickým linkům choval jako k adresářů nebo souborům).
Symbolické linky jsou něco, čemu rozumí váš filesystém, ale XSLT
procesor o tom nic neví.
> Atribut fileref má však vlastní problémy. A tím je. Co do něj mám
> napsat. XSLT systém potřebuje znát dvě hodnoty. Cestu k souboru s
> obrázkem v xml dokumenut a cestu k souboru s obrázkem v html
> dokumentu. Nicméně atribut je jen jeden a cesty rozdílné.
To jde celkem snadno vyřešit pomocí parametru img.src.path
(http://docbook.sourceforge.net/release/xsl/current/doc/html/img.src.path.html).
V něm jde nastavit prefix cesty, který se doplní před každý odkaz na
obrázek ve vygenerovaném HTML kódu.
> 1. pomocí fileref s absolutní cestou
> fileref="/uplne/divna/absolutni/cesta/smerujici/k/pracovnimu/adresari/se/sestavenymi/obrazky/obrazek.png"
Absolutní cesty není dobré používat.
> 2. nebo pomocí url s relativní cestou, kterou ovšem měří od teď přesně
> nevím kterého dokumentu. Ovšem stějně mám všechny xml dokumenty v
> asresáři ./xml/, takže se odkazuji fileref="../picture/obrazek.png"
> jenže v html by mělo byt <img src="picture/obrazek.png" ...> a je tam
> zase něco jiného.
V tomto případě stačí nastavit img.src.parh=dummy/ a problém je vyřešen.
V HTML dostanete <img src="dummy/../picture/obrazek.png">, což se
správně vyhodnotí jako picture/obrazek.png.
> Zatím jsem dopěl k poznání že jediné možné řešení je mít stejné
> relativní cesty, což by znamenalo přemístnit všechny picture adresáře
> do jednoho ./xml/picture/ . To mě ovšem přivádí na úplný začátek, neb
> v ./xml/picture nemají co dělat generované obrázky. A už vůbec ne
> jakékoliv pobrázky neb je v tom pak strašný zmatek.
>
> Struktura adresářů je asi taková
> projekt/ základní soubory, make, negenerované katalogy entit, skripty
> projekt/xml/ adresář se všemi xml kapitol, sekcí a taktéž kořenový xml
> projekt/db/ databáze ze kterých jsou vytvářeny xml soubory v pracovní části
> projekt/picture/ zdrojová data ze kterých jsou generovány obrázky
> projekt/figure/ -||-
> projekt/example/ soubory s příklady
> projekt/session/ zdrojová data sezení
>
> work/ pracovní adresář, neznámo kde. je vytvořen dynamicky
> za běhu ale cesta k němu je známa jen přes
> proměnnou. (toto je problém, zatím to smolím tak že
> vím kde ten adresář vznikne a cpu všude statické
> odkazy) Snad to nějak ošetřím preprocesorem.
>
> work/ zde jsou rovněž všechny vygenerované xml, a vygenerované katalogy entit
No, kdybyste ty dočasné XML generoval do work/xml, tak byste si spoustu
problémů ušetřil, protože by vám souhlasily relativní cesty se
skutečnými zdrojovými soubory.
> work/picture/ zde mají být vygenerované obrázky z /projekt/picture/
Jestli ty obrázy oproti zdrojům modifikujete, je dobré nastavit i
parametr graphicsize.use.img.src.path, aby se při generování HTML měřily
rozměry skutečně použitých obrázků.
--
------------------------------------------------------------------
Jirka Kosek e-mail: jirka na kosek.cz http://www.kosek.cz
------------------------------------------------------------------
Profesionální školení a poradenství v oblasti technologií XML.
Podívejte se na náš nově spuštěný web http://DocBook.cz
Podrobný přehled školení http://xmlguru.cz/skoleni/
------------------------------------------------------------------
Nejbližší termíny školení:
** XSLT 13.-16.3.2006 ** XML schémata 24.-26.4.2006 **
** DocBook 15.-17.5.2006 ** XSL-FO 12.-13.6.2006 **
------------------------------------------------------------------
------------- další část ---------------
A non-text attachment was scrubbed...
Name: smime.p7s
Type: application/x-pkcs7-signature
Size: 3158 bytes
Desc: S/MIME Cryptographic Signature
URL: <http://www.linux.cz/pipermail/docbook/attachments/20051218/024dff18/attachment.bin>
Další informace o konferenci Docbook