Docbook - Telbit

Transcrição

Docbook - Telbit
Docbook
Telbit
Aveiro
4 de Abril de 2006
Tópicos
Introdução
Elementos DocBook e exemplos
Transformações DocBook
Personalização das transformações
Software de desenvolvimento DocBook
JavaHelp
Futuro do DocBook
Introdução
O formato Docbook foi desenvolvido pelo consórcio
OASIS especificamente para documentação técnica
É uma linguagem XML
Especificado em SGML, XML DTD e Relax NG (versão
5.0)
DocBook não é uma linguagem de apresentação
Docbook é bastante extensivo
As tags DocBook são longas e intuitivas
Ferramentas DocBook
Conjuntos de ficheiros XSL
Conversão para outros formatos
Formatos incluídos:
Eclipse – plugins e standalone infocenter content
XSL-FO
HTML
Microsoft HTML Help
JavaHelp
TeX e LaTeX
UNIX man pages
Processadores XSLT
Saxon
Escrito em JAVA
Versão 6 (XSLT 1.0) e versão 8 (XSLT 2.0)
Xalan
Escrito em C++ e JAVA
Xsltproc
Escrito em C
É considerado o processador mais rápido
XSL-FO
Mistura de do ficheiro XML original com tags XSL-FO de
formatação
Gera ficheiros PDF ou PostScript
Processadores XSL-FO
E3 (Livre)
FOP (Livre)
PassiveTex (Livre)
XEP (Comercial)
Xinc (Comercial)
XML2PDF (Comercial)
Elementos principais
book - livro
article - artigo
refentry – equivalente às man pages
chapter – capítulo de um livro ou artigo
sect1 ... sect5 – secções ou subsecções de um capítulo
title – título
para - parágrafo
Estrutura
Book:
●
book
meta information
chapter
sect1
sect2
sect1
chapter
sect1
appendix
sect1
appendix
sect1
...
glossary
Article:
●
article
meta information
sect1
sect1
sect2
sect1
...
Primeiro Exemplo
Utilização de entidades
Reutilização de texto
Declaração
– Utilização
Utilização de entidades
Junção de diversos ficheiros
Elementos – Meta Informação
bookinfo – meta informação de um book
title – texto de um título
authorgroup – informação sobre os autores
author – informação sobre um autor
authorinitials – iniciais de um autor
firstname – primeiro nome
othername – outro nome
surname – nome de família
Elementos – Meta Informação (2)
keywordset – conjunto de termos que descrevem o
conteúdo de um documento
keyword - termo que descreve o conteúdo de um
documento
releaseInfo – informação sobre um versão do documento
revhistory – histórico das revisões
revision – nodo filho de revhistory, que descreve uma
revisão efectuada
revnumber – número da revisão
revremark – descrição da revisão
abstract – sumário do documento
date – data da publicação ou revisão do documento
Exemplo – meta informação
Elementos - Listas
simplelist – lista de palavras ou pequenas frases
member – membro de uma simplelist
itemizedlist – lista na qual cada elemento tem uma marcação
orderedlist – lista na qual cada elemento é numerado
sequencialmente
listitem – membro de uma orderedlist ou itemizedlist (elemento
composto)
variablelist – lista na qual cada entrada é composta por um
conjunto de um ou mais termos com listitem's associadas
varlistentry – entrada de uma variablelist
term – termo de uma varlistentry
segmentedlist – lista de conjuntos de informação
(título,descrição)
Elementos – Listas (2)
segtitle – título de uma segmentedlist
seglistitem – descrições de uma segmentedlist
seg – elemento de uma seglistitem
qandaset – conjunto de perguntas-respostas
qandaentry – entrada pergunta-resposta de uma quandset
question – questão de uma quadentry
answer – resposta de uma quadentry
procedure – lista para descrever um procedimento passo-apasso
step – passo de um procedimento (elemento composto)
substeps – sub-passo de um procedimento (elemento
composto)
Exemplos - Listas
●
itemizedlist
Apples - my favorite fruit.
Oranges - yummy, but sticky.
Bananas - they ripen too quickly!
Grapefruit - great when eaten in halves.
Black Beans - go well with rice
Exemplos – Listas (2)
Black Beans
My favorite black bean recipe is black bean soup, but they also go well with
rice.
Apples
Bananas
You can eat them straight, but they also go well in salads and in desserts.
Exemplos – Listas (3)
●
segmentedlist
Name: Tux
Occupation: Linux mascot
Favorite Food: Herring
Name: Konqui
Occupation: The KDE Dragon
Favorite Food: Gnomes
Exemplos – Listas (4)
●
quandset
1. What are little boys made of?
Snips and snails and puppy dog tails.
2. What are little girls made of?
Sugar and spice and everything nice.
Elementos - tabelas
table – tabela
Informaltable – tabela sem nome
thead – primeira linha da tabela
tfoot – última linha da tabela
tgroup – elemento pai de uma tabela ou de grande
parte de tabela com informação de formatação
tbody – elemento pai das linhas de uma tabela
row – linha num tbody, thead, or tfoot
entry – célula de uma tabela
entrytbl – subtabela (utilizada em vez de entry)
Exemplo - tabelas
Exemplo – tabelas (2)
Elementos - Gráficos
screeninfo – informação acerca do screenshot
screenshot – screenshot
mediaobject – imagem, som, texto, ... (não
renderizado separado do bloco)
inlinemediaobject - imagem, som, texto, ...
(não renderizado dentro do bloco)
imagedata – aponta para uma imagem externa
Exemplo – Gráficos
Screenshot no Centaur
Elementos - Links
anchor – âncora no texto
email – endereço de email
link – link para uma âncora no texto
ulink – link para um endereço URL
●
Exemplo
Elementos – interface
example – exemplo de um programa ou de informação
relacionada
informalexample – exemplo sem título
programlisting – listagem de texto fonte de um programa
screen – texto que o utilizador espera ver no ecrã
KeyCap – texto escrito na tecla física
KeyCode – designação numérica computacional de uma tecla
KeyCombo – combinação de teclas
MenuChoice – escolha ou conjuntos de escolhas sobre menus
Elementos – interface (2)
MouseButton – tecla do rato
Interface – elemento do interface gráfico
GUIButton -texto de um botão do interface gráfico
GUIIcon – texto ou gráfico de um ícone do interface gráfico
GUILabel – texto no interface gráfico
GUIMenu – nome de um menu no interface gráfico
GUIMenuItem – nome de um menu terminal no interface gráfico
GUISubmenu - nome de um sunmenu no interface gráfico
Action – acção desencadeada por uma interacção do utilizador
Exemplos - interface
●
Variablelist com especificação dos menus
●
Poderia se transformar...
Transformação de documentos
Utilizando o Saxon
Sintaxe geral:
java -jar saxon.jar \
options \
xml-document \
stylesheet-path \
param=value
Exemplo HTML:
java -jar saxon.jar -o myfile.html myfile.xml \
../docbook-xsl/html/docbook.xsl use.extensions=1
FO example:
java -jar saxon.jar -o myfile.html myfile.xml \
../docbook-xsl/fo/docbook.xsl use.extensions=1
Transformação de documentos
De XSL-FO para PDF (utilizando o FO)
fop.bat -fo myfile.fo -pdf myfile.pdf
De XSL-FO para PS (utilizando o FO
fop.bat -fo myfile.fo -ps myfile.ps
Personalizar as transformações
Passando parametros às stylesheets
Adicionando mais uma camada de stylesheets
Substituição de XSL templates da colecção disponível
Parâmetros nas transformações
É possível passar parâmetros às stylesheets para
personalizar o resultado
Existem dezenas de parâmetros
Fácil utilização
Linha de comandos ou ficheiro
Optimizações específicas para cada processador
Pode não existir parâmetro para a modificação
pretendida
Exemplos
Linha de comandos
java -jar saxon.jar -o myfile.html myfile.xml docbook.xsl \
html.stylesheet="corpstyle.css" \
admon.graphics=1
Ficheiro (em vez da stylesheet original)
<?xml version='1.0'?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:import href="path/docbook.xsl"/>
<xsl:param name="html.stylesheet" select="'corpstyle.css'"/>
<xsl:param name="admon.graphics" select="1"/>
</xsl:stylesheet>
Parâmetros HTML
Directório destino dos ficheiros
Encoding dos ficheiros
Utilização do atributo id para o nome dos ficheiros
Atribuição de uma CSS
Controlo da numeração dos capítulos e secções
Utilização de icons para algumas tags
Formato das datas e horas
Parâmetros PDF
Personalização da página (tamanho, layout, margens,
identação do texto, impressão nas duas páginas,
espaçamento entre linhas, ...)
Tamanho e tipos de letra (texto e cabeçalhos)
Controlo da numeração dos capítulos e secções
PDF Bookmarks
Utilização de icons para algumas tags
Processamento de apenas parte do documento
Adicionar stylesheets
Stylesheet que é aplicada ao resultado das stylesheets
DocBook
Não altera as stylesheets DocBook originais
Independente de futuras versões do DocBook
Fácil distribuição
Fácil resolução de problemas
Software – XMLMind XML Editor
Suporta DTD, W3C XML Schema, RELAX NG schemas,
XML namespace, XSLT, XPath, XInclude, XML catalog
Vista tipo processador de texto
Objectos do tipo lista, tabelas, check boxes, etc podem
ser embebidas na vista tipo processador de texto
Processador XSLT embutido
Processador FO disponível com plug-in
Suporte nativo para documentos DocBook
Multi-plataforma
Software – XMLMind XML Editor (2)
Software – XMLMind XML Editor (3)
JavaHelp
Extensão ao ambiente de programação JAVA
Desenvolvido pela Sun
Componentes JavaHelp:
Páginas HTML
Ficheiro HelpSet (.hs)
Ficheiro de mapeamento JavaHelp
Ficheiro TOC de JavaHelp
Todos os ficheiros são gerados automaticamente pelo
DocBook
JavaHelp - Componentes
HelpSet
Informação acerca do JavaHelp
Ficheiro que é carregado no arranque
Ficheiro de mapeamento
Mapeia as classes JAVA como o ficheiro de ajudo apropriado
Ficheiro TOC
TOC (Table of contents) do sistema de ajuda
JavaHelp – código JAVA
●
Inicialização
private HelpSet hs = null;
private HelpBroker hb = null;
...
public synchronized HelpSet getHelpSet(){
if (hs == null) {
String helpHS = "jhelpset.hs";
ClassLoader cl = FmsApp.class.getClassLoader();
try {
URL hsURL = HelpSet.findHelpSet(cl,helpHS);
hs = new HelpSet(null,hsURL);
} catch (HelpSetException e) {
MsgManager.warn(logger, languageBundle.getString("L_FmsAppHelpSetError"));
com.telbit.util.MsgManager.error(logger, e, null);
}
}
return hs;
}
JavaHelp – código JAVA (2)
●
Indicação da secção a carregar
public synchronized HelpBroker setHelp(JComponent comp, String id){
HelpBroker hb = getHelpBroker();
if (hb != null) {
hb.enableHelpKey(comp.getRootPane(),id,hs);
}
return hb;
}
...
FmsApp.getInstance().setHelp(getRootPane(), "sct_GuiAdmGestProc");
Futuro
Versão 5.0:
Introdução de um Namespace em todos os elementos
Utilização de Relax NG
Linguagem bastante poderosa de especificação de documentos XML
É a mais completa
Um documento validado pelo DTD pode não ser pelo Relax NG
Revisão de algumas elementos (redução do número de
elementos)
Stylesheets baseadas no XSLT 2.0
Fim
Questões