[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Broken link at http://www.gnu.org/software/texinfo/
From: |
John Mandereau |
Subject: |
Re: Broken link at http://www.gnu.org/software/texinfo/ |
Date: |
Sat, 05 Jul 2008 10:35:42 +0200 |
On 2008/06/30 00:22 +0200, Patrice Dumas wrote:
> I haven't read the makeinfo code and I may be completly wrong in the
> following, but my guess is that it could be doable to have hooks for
> user defined functions since makeinfo is already able to output
> different formats. But since they should be written in C, compiled and
> linked, it doesn't really make sense since the interface would
> necessarily be complicated, while in texi2html it is very simple thanks
> to perl simplicity.
The key of customizability in GNU software written in C or C++ is using
GUILE; you can see it in action in LilyPond, and in theory for makeinfo
at the end of this email.
> The downside of using perl is that texi2html is incredibly slow compared
> with makeinfo and may be less portable (but I am not sure that this is
> really an issue).
Slowness was probably a important issue when makeinfo was written, but
it's no longer the case with today's computers, unless you want to
compile Texinfo documents of thousands of pages.
> So unless it becomes possible to hook a simpler language than C in
> makeinfo I think that makeinfo cannot be changed to do what texi2html
> does. But I may be wrong, of course.
>
> Having duplication is not an issue, in my opinion, when different designs
> nullifies the economies of scale associated with merging projects.
Different designs are not by purpose in this case. As I've reinvented
the wheel with Python scripts that """parse""" Texinfo with regular
expressions, I've thought about essential features that should be
considered when makeinfo is rewritten:
1) clearly separating parsing from formatting,
2) using GUILE to store parsed Texinfo input, so one can write Scheme
code to play with this input,
3) making HTML output completely customizable (like texi2html), using
GUILE (like LilyPond),
I'm a newbie in C, so please correct me if I'm wrong: as far as I read
makeinfo code, 1) is not already done. 1) is also necessary for 2) and
3)
Usage cases of 2) are e.g.
- generating skeletons of Texinfo files to start a translation (it's
very useful to mention original node names in English in the
translation),
- making statistics about translations (e.g. which parts of a document
are translated), which is useful for huge documents that cannot be
easily translated in one go,
- outputting the tree of nodes and sections to make cross-references
easier in complex situations
3) is precisely what is making us switch to texi2html.
I'm not a very experienced programmer, but I want to help. I'm
currently not able, and I don't want to make the effort to work on
current C code. This means makeinfo would be rewritten from scratch.
The options I see are
a) write the parser and Info output in a compiled language (if I
participate to this, I'd like to use C++), use GUILE, and write HTML and
XML output in Scheme.
b) write a program entirely in Scheme, that would be run by GUILE. It
would run more slowly than a), but would save the cost of mixing two
languages.
Would it be worthwhile to issue a call for help to implement these
ideas? I'm volunteering for this, but it will take years to achieve if
I'm the only (programming amateur) guy on this.
Karl, if you think my help might be valuable, shall we go into private
discussion about sending a copyright disclaimer and related issues?
Best,
John