मैं एक पेज एचटीएमएल, कई पेज एचटीएमएल, सीएचएम और पीडीएफ का उत्पादन करने के लिए, साइगविन के तहत, डॉकबुक के साथ कुछ मैन्युअल लेखन कर रहा हूं।
- docbook स्टाइलशीट (XSL) भंडार:
मैं निम्नलिखित स्थापित।
- xmllint, परीक्षण करने के लिए कि क्या एक्सएमएल सही है।
- xsltproc, स्टाइलशीट के साथ xml को संसाधित करने के लिए।
- Apache's fop, पीडीएफ बनाने के लिए। मैं स्थापित फ़ोल्डर को पैथ में जोड़ना सुनिश्चित करता हूं।
- सीएचएम का उत्पादन करने के लिए माइक्रोसॉफ्ट के HTML Help Workshop। मैं स्थापित फ़ोल्डर को पैथ में जोड़ना सुनिश्चित करता हूं।
संपादित: नीचे दिए गए कोड में मैं 2 फ़ाइलें की तुलना में अधिक उपयोग कर रहा हूँ। कोई स्क्रिप्ट और फ़ोल्डर संरचना की एक साफ संस्करण चाहता है, कृपया मुझसे संपर्क करें: guscarreno (टेढ़ा-मेढ़ा/पर) googlemail (अवधि/डॉट) कॉम
मैं तो एक configure.in का उपयोग करें:
AC_INIT(Makefile.in)
FOP=fop.sh
HHC=hhc
XSLTPROC=xsltproc
AC_ARG_WITH(fop, [ --with-fop Where to find Apache FOP],
[
if test "x$withval" != "xno"; then
FOP="$withval"
fi
]
)
AC_PATH_PROG(FOP, $FOP)
AC_ARG_WITH(hhc, [ --with-hhc Where to find Microsoft Help Compiler],
[
if test "x$withval" != "xno"; then
HHC="$withval"
fi
]
)
AC_PATH_PROG(HHC, $HHC)
AC_ARG_WITH(xsltproc, [ --with-xsltproc Where to find xsltproc],
[
if test "x$withval" != "xno"; then
XSLTPROC="$withval"
fi
]
)
AC_PATH_PROG(XSLTPROC, $XSLTPROC)
AC_SUBST(FOP)
AC_SUBST(HHC)
AC_SUBST(XSLTPROC)
HERE=`pwd`
AC_SUBST(HERE)
AC_OUTPUT(Makefile)
cat > config.nice <<EOT
#!/bin/sh
./configure \
--with-fop='$FOP' \
--with-hhc='$HHC' \
--with-xsltproc='$XSLTPROC' \
EOT
chmod +x config.nice
और एक Makefile.in:
[email protected]@
[email protected]@
[email protected]@
[email protected]@
# Subdirs that contain docs
DOCS=appendixes chapters reference
XML_CATALOG_FILES=./build/docbook-xsl-1.71.0/catalog.xml
export XML_CATALOG_FILES
all: entities.ent manual.xml html
clean:
@echo -e "\n=== Cleaning\n"
@-rm -f html/*.html html/HTML.manifest pdf/* chm/*.html chm/*.hhp chm/*.hhc chm/*.chm entities.ent .ent
@echo -e "Done.\n"
dist-clean:
@echo -e "\n=== Restoring defaults\n"
@-rm -rf .ent autom4te.cache config.* configure Makefile html/*.html html/HTML.manifest pdf/* chm/*.html chm/*.hhp chm/*.hhc chm/*.chm build/docbook-xsl-1.71.0
@echo -e "Done.\n"
entities.ent: ./build/mkentities.sh $(DOCS)
@echo -e "\n=== Creating entities\n"
@./build/mkentities.sh $(DOCS) > .ent
@if [ ! -f entities.ent ] || [ ! cmp entities.ent .ent ]; then mv .ent entities.ent ; fi
@echo -e "Done.\n"
# Build the docs in chm format
chm: chm/htmlhelp.hpp
@echo -e "\n=== Creating CHM\n"
@echo logo.png >> chm/htmlhelp.hhp
@echo arrow.gif >> chm/htmlhelp.hhp
@-cd chm && "$(HHC)" htmlhelp.hhp
@echo -e "Done.\n"
chm/htmlhelp.hpp: entities.ent build/docbook-xsl manual.xml build/chm.xsl
@echo -e "\n=== Creating input for CHM\n"
@"$(XSLTPROC)" --output ./chm/index.html ./build/chm.xsl manual.xml
# Build the docs in HTML format
html: html/index.html
html/index.html: entities.ent build/docbook-xsl manual.xml build/html.xsl
@echo -e "\n=== Creating HTML\n"
@"$(XSLTPROC)" --output ./html/index.html ./build/html.xsl manual.xml
@echo -e "Done.\n"
# Build the docs in PDF format
pdf: pdf/manual.fo
@echo -e "\n=== Creating PDF\n"
@"$(FOP)" ./pdf/manual.fo ./pdf/manual.pdf
@echo -e "Done.\n"
pdf/manual.fo: entities.ent build/docbook-xsl manual.xml build/pdf.xsl
@echo -e "\n=== Creating input for PDF\n"
@"$(XSLTPROC)" --output ./pdf/manual.fo ./build/pdf.xsl manual.xml
check: manual.xml
@echo -e "\n=== Checking correctness of manual\n"
@xmllint --valid --noout --postvalid manual.xml
@echo -e "Done.\n"
# need to touch the dir because the timestamp in the tarball
# is older than that of the tarball :)
build/docbook-xsl: build/docbook-xsl-1.71.0.tar.gz
@echo -e "\n=== Un-taring docbook-xsl\n"
@cd build && tar xzf docbook-xsl-1.71.0.tar.gz && touch docbook-xsl-1.71.0
ऊपर उल्लेख किया फ़ाइल आउटपुट के उत्पादन को स्वचालित करने के।
मैं स्क्रिप्टिंग के लिए एक निक्स दृष्टिकोण का उपयोग करना पसंद करता हूं क्योंकि टूलसेट को ढूंढना और उपयोग करना अधिक आसान है, श्रृंखला के लिए आसान उल्लेख नहीं करना।
स्रोत
2008-09-23 18:40:46
"स्वरूपण" क्या है? पीडीएफ? एचटीएमएल? – bortzmeyer
पीडीएफ, एचटीएमएल दो प्राथमिक प्रारूप होंगे - यह सुनिश्चित नहीं है कि ओडीएफ कोई समझ में आता है या नहीं। पाठ अवसर पर भी उपयोगी होगा। चूंकि कई सुझाए गए टूल चेन लेटेक्स के माध्यम से जाते हैं, जो कोई समस्या नहीं पेश करता है। मैं ट्रॉफ (और तस्वीर, और टीबीएल, और ईकएन - और अभ्यास के लिए एक कस्टम प्रीप्रोसेसर का उपयोग करके लिखी गई एक पुरानी पुस्तक माइग्रेट करने पर विचार कर रहा हूं - डॉकबुक में केवल अध्याय, प्रश्न और उत्तर में प्रश्न)।विभिन्न कार्यक्रमों और अन्य प्रोग्राम दस्तावेज के लिए मैन्युअल पेज भी। Docbkx Maven प्लगइन के लिए –