head	1.3;
access;
symbols
	tcllib-1-13:1.3
	tcllib-1-12:1.3
	tklib-0-5:1.3
	tcllib-1-11-1:1.3
	tcllib-1-11:1.3
	tcllib-1-10:1.3
	tcllib-1-9:1.3
	tcllib-1-8:1.3
	tcllib-1-7:1.3
	tcllib-1-6-1:1.3
	tcllib-1-6-branch:1.3.0.2
	tcllib-1-6:1.3
	tcllib-1-4-0:1.3
	tcllib-1-3-0:1.1
	tcllib-1-2-0:1.1.0.4
	RELEASES:1.1.0.2;
locks; strict;
comment	@# @;


1.3
date	2003.03.05.06.50.33;	author andreas_kupries;	state Exp;
branches;
next	1.2;

1.2
date	2003.01.19.07.58.44;	author andreas_kupries;	state Exp;
branches;
next	1.1;

1.1
date	2001.12.14.23.10.32;	author andreas_kupries;	state Exp;
branches;
next	;


desc
@@


1.3
log
@
	* A examples/doctools.idx:     Fairly extensive revamping of the
	* A examples/doctools.toc:     codebase. Added a format for
	* A mpformats/_idx_common.tcl: indices, formatting engines, a
	* A mpformats/_toc_common.tcl: package for handling it. Extended
	* A mpformats/idx.html:        all packages to allow engine
	* A mpformats/idx.nroff:       parameters and mapping from
	* A mpformats/idx.null:        symbolic to actual filenames or
	* A mpformats/idx.wiki:        urls. Right now only the HTML
	* A mpformats/toc.html:        engines actually provide
	* A mpformats/toc.nroff:       parameters. Added testsuites for
	* A mpformats/toc.null:        doctoc and docidx. Revamped the
	* A mpformats/toc.tmml:        documentation to cross-reference
	* A mpformats/toc.wiki:        each other better, more uniform in
	* A api_idx.tcl:               structure (not complete), naming of
	* A api_toc.tcl:               the manpages for this module is now
	* A checker_idx.tcl:           uniform. Added examples for doctoc
	* A checker_toc.tcl:           and docidx formats, both in the
	* A docidx.man:                manpages, and as separate files.
	* A docidx.tcl:
	* A docidx.test:
	* A docidx_api.man:
	* A docidx_fmt.man:
	* A doctoc.man:
	* A doctoc.tcl:
	* A doctoc.test:
	* A doctoc_api.man:
	* A doctoc_fmt.man:
	* A doctools_api.man:
	* A doctools_fmt.man:
	* A tocexpand:
	* M ChangeLog:
	* M NOTES:
	* M api.tcl:
	* M checker.tcl:
	* M doctools.man:
	* M doctools.tcl:
	* M doctools.test:
	* M pkgIndex.tcl:
	* M mpformats/_common.tcl:
	* M mpformats/_nroff.tcl:
	* M mpformats/c.msg:
	* M mpformats/de.msg:
	* M mpformats/en.msg:
	* M mpformats/fmt.html:
	* M mpformats/fmt.latex:
	* M mpformats/fmt.list:
	* R dtformat.man:
	* R dtformatter.man:
@
text
@======
 TODO
======

*	docidx / doctoc package documentation - sync with code
*	doctools package documentation		ditto




*	Add a tk-based editor application which loads and generates
	the format (and can invoke the processor to generate the other
	formats).

*	Rewrite formatters to use generator packages for their
	output format. Example: HTML => tcllib/html package
	to generate the tags. Less quoting issues. Has escape
	handlers.

=======

Note that running multiple formatters in parallel is possible, but
requires that the whole chain of expander, checker and engine are
replicated per format. The reason for this is that engine generates
some output, but always passes it up to its caller, i.e the expander,
for final composition. This is especially true for nested macro
invocations where the intermediate results generated by the engine are
passed through the expander to be sent down again into the engine. For
multiple engines we have to combine and then separate the results for
the various formats. The problem is to distinguish between data coming
from the engine and text coming from the outside, for the latter has
to be replicated instead of separated. This is possible, but I do not
believe that it is worth the additional complexity of the
implemementation.
@


1.2
log
@
	* More doctools changes: Command [strong] is deprecated now. Added
	  the command [copyright]. Went through all manpages to eliminate
	  [strong]. Partial setting of copyright information, where known.

	* mkInstallScripts.tcl:
	* Makefile.in (install-libraries): Added module specific
	  installation code.

	  doctools: Install message catalogs and predefined formatting
	  engines.

	  textutil: Install hyphenation files.

	* Module doctools rewritten to make it a true package +
	  application, instead of a pure application module. This means
	  that this module now truly installs some functionality useable
	  by other applications and packages.

	----------------------------------------------------------------

	* mpformats/fmt.html:  Removed 'strong' formatting. The checker
	* mpformats/fmt.latex: warns if used and warnings requested, it
	* mpformats/fmt.nroff: now also redirects the command to 'emph'.
	* mpformats/fmt.wiki:  The option -visualwarn (doctools, and
	* mpformats/fmt.null:  mpexpand) renamed to -deprecated. Message
	* mpformats/fmt.list:  'visualmarkup' removed from the catalogs,
	* mpformats/c.msg:     and 'depr_strong' added instead.
	* mpformats/en.msg:
	* mpformats/de.msg:
	* checker.tcl:
	* doctools.tcl:
	* mpexpand:

	* doctools.man:    Updated, converted [strong] to better
	* dtformat.man:    formatting commands. Ditto for all manpages
	* dtformatter.man: in tcllib containing 'strong'. 'strong' is now
	* mpexpand.man:    not present anymore.

	* mpformats/_common.tcl: Applied a patch by Joe English adding the
	* mpformats/fmt.tmml:    copyright information to the appropriate
	                         place in the TMML output. This also fixes
				 a bug in c_get_copyright where an empty
				 string resulted in a incomplete line
				 being given to the formatter.

	* mpformats/fmt.html:  Removed the phrase 'All rights reserved'
	* mpformats/fmt.latex: from the code, on recommendation by
	* mpformats/fmt.nroff: Joe English.
	* mpformats/fmt.wiki:

	* mpformats/fmt.html:  Changed to display copyright information in
	* mpformats/fmt.latex: the conversion result itself and not only
	* mpformats/fmt.nroff: embedded in comments.
	* mpformats/fmt.wiki:

	* doctools.tcl:          Added a new formatting command,
	* doctools.test:         'copyright', to declare/assign copyright
	* doctools.man:          for manpages. Updated both documentation
	* dtformat.man:          and testsuite. Extended the common code
	* checker.tcl:           base with convenience methods for storing
	* api.tcl:               and retrieving such information. The
	* mpformats/fmt.html:    retrieval operation also implements the
	* mpformats/fmt.latex:   logic giving the information in a manpage
	* mpformats/fmt.list:    precedence over information coming from the
	* mpformats/fmt.nroff:   processor. Updated all predefined engines
	* mpformats/fmt.null:    to handle the new command. TMML done only
	* mpformats/fmt.tmml:    partially, as I don't know where the copy-
	* mpformats/fmt.wiki:    right has to go.
	* mpformats/_common.tcl:
	* mpformats/_html.tcl:
	* mpformats/_nroff.tcl:
	* mpexpand:

	* mpexpand:      Moved format help into the package itself.
	* doctools.tcl:  Changed the checker. Input syntax errors are not
	* checker.tcl:   written to stderr anymore, but reported through
	* doctools.man:  an standard tcl error. Warnings are collected and
	* doctools.test: can be queried after a formatting run. Made the
	                 generic engine more robust against failures in a
			 formatting engine. Wrote documentation for the
			 package. Extended the configuration method to be
			 more standard. Wrote a testsuite.

	* mpexpand:              Nearly complete rewrite of the system.
	* mpformats/fmt.html:    The recognized input format was _not_
	* mpformats/fmt.latex:   changed.  The main functionality was
	* mpformats/fmt.list:    placed into a package, doctools.  This
	* mpformats/fmt.nroff:   package allows the creation of multiple
	* mpformats/fmt.null:    formatter objects, to be used alone or
	* mpformats/fmt.tmml:    together.  The application 'mpexpand' was
	* mpformats/fmt.wiki:    rewritten to use that package and is now
	* mpformats/_common.tcl: much simpler.  The communication between
	* mpformats/_nroff.tcl:  the various stages was made simpler, and
	* mpformats/_xml.tcl:    one slave interpreter was dropped because
	* mpformats/_html.tcl:   of this.  It might be added back if its
	* api.tcl:               existence proves to be beneficial.  The
	* checker.tcl:           API between main systen and formatter
	* doctools.tcl:          engine was changed, consequently all
	* dtformatter.man:       existing engines had to be updated.  They
	                         were also made simpler, especially in the
	                         area of list handling, because of the
				 validation done by the checker subsystem.
				 The version number is now 1.0.
@
text
@d5 6
@


1.1
log
@
	* Added formatter for LaTeX.

	* New module. Application module providing a simple tcl-based
	  manpage markup language and a processor for converting this
	  format to TMML, nroff and HTML. Extensible, i.e. additional
	  formats can be added without to much work (Manpages for format
	  and internal interfaces are provided).
@
text
@a4 18
*	Wrap the engine into a package and make the processor
	application(s) just a thin layer on top of it.

	Functionality

	-	create processor
	-	set/change format
	-	set module, file information
	-	process string

	Applications

	-	Handle options
	-	Read text (file, stdin)
	-	engage package (s.a.)
	-	Write output (file, stdout)


a8 3
*	Option: Explicit specification of format file, overide
	internal searching

d13 16
@

