cvs commit: www/en where.sgml

Rudolf Cejka cejkar at fit.vutbr.cz
Fri Mar 17 16:07:41 UTC 2006


Ceri Davies wrote (2006/03/14):
> > 3) Recently I have found yet another problem: Your commit
> > www/share/sgml/includes.navdownload.sgml 1.3, which added
> >     <!ENTITY % relincludes SYSTEM "includes.release.sgml"> %relincludes;
> > into includes.navdownload.sgml file, has bad impact, that it is not
> > possible to change definitions from includes.release.sgml in translations
> > in a standard way anymore, which is to change www/<lang>/includes.sgml.
> > Do you have any idea, how to solve this? I did not find anything good yet.
> Does it work if that declaration moves to the English includes.sgml (if
> there is one)?

If you mean <!ENTITY % relincludes SYSTEM "includes.release.sgml">
%relincludes;, I think that not.

You need it very early for %beta.testing and %beta2.testing for marked
sections in includes.navdownload.sgml. Maybe it would help to move
%beta.testing and %beta2.testing out from includes.release.sgml and make
special file for them, however locality will be bad then and I'm afraid
I would not like this solution.

File includes.navdownload.sgml has to be included very
early too, because it has to define entity &nav; before
includes.header.sgml tries to define it as empty entity.

> Failing that, is is possible to declare an ENTITY within
> a marked section?
> If so, we could use a similar approach in the
> includes as /usr/include does perhaps?

I could not imagine anything to do in this way.

I'm looking at it once again, but I'm not sgml master. Maybe I can
see two solutions:

1) Instead of using
<!ENTITY % navincludes SYSTEM "includes.navdownload.sgml"> %navincludes;
<!ENTITY % includes SYSTEM "includes.sgml"> %includes;
it should be sufficient to use just
<!ENTITY % navincludes SYSTEM "includes.navdownload.sgml">
<!ENTITY % includes SYSTEM "includes.sgml"> %includes;
without calling %navincludes;, which could be moved to
share/sgml/includes.sgml between %includes.release; and %includes.header;,
however this solution would be just for case for includes.release.sgml.
Is it possible to say in includes.header.sgml that if there is
defined %navincludes;, call it, otherwise define <!ENTITY nav ''>?

2) It seems to me that it is possible to remove <!ENTITY nav ''>
from share/sgml/includes.header.sgml at all and depend on that
every occurence of
<!ENTITY % includes SYSTEM "includes.sgml"> %includes;
defines
<!ENTITY % navincludes SYSTEM "..."> %navincludes;
too. It has to be in that order: %navincludes; must be called
after %includes;, so every file should be changed then, to have
here clear including rules (and %relincludes; can be then removed
from share/sgml/includes.navdownload.sgml). It seems that there is no
file, which depends on default <!ENTITY nav ''>, so no other steps
would be needed. If there would be any need for empty nav in the future,
we can create empty includes.navempty.sgml, which can substitute
current <!ENTITY nav ''> in includes.header.sgml. However everything
is untested for now, if there are any output differences after that
modifications.

-- 
Rudolf Cejka <cejkar at fit.vutbr.cz> http://www.fit.vutbr.cz/~cejkar
Brno University of Technology, Faculty of Information Technology
Bozetechova 2, 612 66  Brno, Czech Republic


More information about the cvs-doc mailing list