www/ cleanup patch
Gábor Kövesdán
gabor at FreeBSD.org
Sun Jul 16 14:21:33 UTC 2006
Hiroki Sato wrote:
> Hi all,
>
> I am working on unifying of duplicated information between doc/www
> or SGML/XML such as developers.sgml, but upon doing the work
> I notice that we need some cleanups of the build infrastructure.
>
> A work-in-progress patch can be found at:
>
> http://people.allbsd.org/~hrs/FreeBSD/www_cleanup-20060716.tar.gz
>
> and the changes attached at the end of this email. Basically
> it is for improving consistency and maintainability of our SGML and
> XML docs, and does not involve almost no content change.
>
> Comments? While I am still working on this including necessary
> changes for translation, I would like your comments on my basic
> idea if you have. This is a big sweeping change, so I will send
> the ready-to-commit patch set again before the actual commit. Thanks.
>
> --
> | Hiroki SATO
>
> (from README in the tarball)
>
> - Add "make lint" for validating XML files in $XMLDOCS.
>
> - Restructure various include files:
>
> * lang/includes.nav*.sgml --> share/sgml/navibar.ent
>
> To activate the side navigation bar, we need the following line
> only in the DOCTYPE declaration now:
>
> <!ENTITY % include.nav.FOO "INCLUDE">
>
> Actually FOO is replaced with "about", "community", "developers",
> and so on.
>
This is a great idea, but how this applies to translations? Do they
still need a bunch of custom include files or can we add files like
navibar.lang.ent to share/sgml?
> * includes.sgml in various location --> share/sgml/common.ent
>
> Scattered includes.sgml have been integrated. Please do not
> add this sort of files anymore. It makes maintenance and
> translation very difficult.
>
> - Switch to custom DTDs
>
> Now we use "-//FreeBSD//DTD HTML 4.01 Transitional-Based Extension"
> for HTML docs, which is HTML 4.01 + some entities previously pulled via
> "<!ENTITY % includes SYSTEM "includes.sgml"> %includes;" line.
> The location of entity file will be resolved by using catalog file.
>
> Also, DTDs for XML databases and XSLT stylesheets have been added.
> These DTDs makes the following possible:
>
> * Removal of {$foo} and &foo; pairs which have duplicate information
>
> Most of developers believe &foo; cannot be used in an XML file,
> and <xsl:variable> should be used in XSLT, but it is a wrong idea.
> A lot of duplicated {$foo} have been removed since &foo; can be
> used even when in an XML file now.
>
> * &#nnn; v.s. &symbolic;
>
> We can now use &symbolic; like á even in an XML file.
> This should improve the maintainability and useful for Latin
> characters. Please make sure that textproc/xmlcharent is installed
> in your system before trying. I will add it to the dependency
> of the docproj port.
>
> Probably most of numeric references should be replaced
> if there is no specific reason.
>
Great! As I am translating the webpages to Hungarian, using character
codes instead of á é etc. was a headache to me.
> - commercial/*.xml handling
>
> The *.xsl files have been rewritten and unified. It uses
> a new element <categories> in the XML databases, and @continent
> of <entry> is deprecated. I think the *.xml and
> the new xsl file should be in share/sgml, and
> I will implement partial translation like newsflash into it, too.
>
> - events/*.xml handling
>
> curdate.xml has been removed and exslt:date extension is
> used instead. events.dtd has been moved to share/sgml.
>
> - news/*
>
> Automatic replace of $base in news.xml has been removed
> because we can now use &base; straightforward.
> There is still room for improvement; more reuse of
> XML stylesheet, database unification, and so on.
>
>
For these tree sections, is there a good way to use the English xml
files in translations? Since some translations have very limited human
resources, translated news is hard to keep up-to-date. The Hungarian
translation will be such thing, since only I am working on that, and we
don't even have a Hungarian committer. I looked at the French codebase,
they just take the English xml from the Makefile:
newsflash.html: newsflash.xsl news.xml\
includes.xsl ${XML_INCLUDES}
${XSLTPROC} ${XSLTPROCOPTS} -o ${.TARGET} \
--param "news.project.xml-master"
"'${XML_NEWS_NEWS_MASTER}'" \
--param "news.project.xml" "'${XML_NEWS_NEWS}'" \
--param "transtable.xml" "'${XML_TRANSTABLE}'" \
${.CURDIR}/newsflash.xsl ${.CURDIR}/news.xml
Accordingly, the French webpages have to be rebuilt always when somebody
commits some news to www/en to be up-to-date. Do you have any idea how
this can be done better?
--
Cheers,
Gabor
More information about the freebsd-doc
mailing list