Hello Emmanuel, I don't have the time to answer your e-mail soon, but I must say I've read it all and I liked very much your template ideas! Specially the %(BODY)s one. It's perfect for everybody (me included) who have the need to change the default headers (and footers, in that case).
Now I don't see big drawbacks on implementing it, so I hope we can have it for v3. Thanks for your time and for the very detailed and well thought arguing! Bye On Wed, Feb 18, 2009 at 06:57, Emmanuel Godard <[email protected]> wrote: > Hello everybody > Hello Aurelio and thanks for your tool, > > Reading the recent queries and answers about txt2tags and suggestions > for the next 3.0, I would like to share the following ideas (it is a bit > long, you have been warned:) ). > My main point is that I would really like to have the ability to > *simply* customize templates. It appears to be a sub-item of the last > item for http://code.google.com/p/txt2tags/wiki/v3 > I will try to convince the audience that it is worth to let it be a bit > upper in the hierarchy of improvements. > > The general context is the following: how to be able to customize > headers while remaining faithful to txt2tags ideas and concepts: > - multi-target: no duplication of content > - the title, etc is really the title... > - concentrate only on content > > I did not very investigate deeply the matter but there seems to be two > major kinds of solutions regarding customization of headers. The first > one is to use simple preprocs to expand/replace the default headers. The > second one is to use the --no-headers option and include or append > directly the customized headers. > > IMHO, the first solution can be quite difficult to implement (depending > on your knowledge of t2t and/or the TARGET language) or have ascending > compatibility problem: changing the default headers could break the > preprocs. > The second solution loose some useful txt2tags features (like the title > ...) and so, if you do not want to loose them, it could end in > cluttering the t2t files with distractions, or could imply using other > processing tools. > > > Let's have a look at the situation where I want to write a document with > two targets: html and tex. Actually *three*, because I love when the > .t2t source is exactly the .txt I can share with people that are not > necessarily txt2tags aware. > > --8<----- A Typical example for customization with --no-headers ----- > The title1 > The title2 > The title3 > > %!postproc(html): '(?i)(<title>)' '\1The actual title1' > %!postproc(tex): '(?i)(\title{)' '\1The same actual title1' > %!postproctrick(html): '\1The actual title2' > %!postproctrick(tex): '\1The same actual title2' > %!postproctrick(html): '\1The actual title3' > %!postproctrick(tex): '\1The same actual title3' > > %% Do not forget! > %!include(html): ""header.html"" > %!include(tex): ""header.tex"" > > The introduction for the text I am really focussed on.... > > = Section 1 = > > Blah blah > > = Section 2 = > > Bla.... > > %% Do not forget! > %!include(html): ""footer-start.html"" > %!include(tex): ""footer-start.tex"" > Last modified the %%mtime. > %!include(html): ""footer-end.html"" > %!include(tex): ""footer-end.tex"" > --8<------------------------------------------------------------------- > > I would prefer to have my own t2t file to be simply > > --8<----- A proposed file ----- > The title1 > The title2 > The title3 > > The introduction for the text I am really focussed on.... > > = Section 1 = > > Blah blah > > = Section 2 = > > Bla.... > > --8<------------------------------------------------------------------- > > > And the command for processing to be > txt2tags --header-template header -t TARGET file.t2t > and use the appropriate header.TARGET file (see examples below). Such > files should be fairly easy to create, ie as difficult as creating a > TARGET file, and requiring no precise knowledge of txt2tags. > > As careful readers have remarked, this improvement does not address the > footer templates. Trying to fully address the problematic of > customization, I then propose four possible enhancements regarding the > implementation of the use of alternative templates: > > T1: an option to replace the template from txt2tags.py > (HEADER_TEMPLATE) by a user file > T2: merge the HEADER_TEMPLATE and EOD tags, add a %(BODY)s that is > replaced by what is processed from the body part by txt2tags. > T3: introduce new %(STUFF)s macros for templates > T4: possibility to associate (implicitly) a configuration file to any > template > > Imho, T2, ie fully customizable templates with a %(BODY) to be remplaced > by what is processed by txt2tags, should be implemented for v3. > > For T3, I don't know if it is already possible to use directly say > %%Mtime in the HEADER_TEMPLATE. I do not think it is. > > For T4, the idea is to reduce the number of sub-dialect target requests > (why latex-beamer and not latex-book?), etc... > > I also think that the implementation of these ideas would probably not > imply any compatibility break. I underline here that, for the best of my > knowledge, some template customizations by postproc tricks require that > the templates in txt2tags.py do not change too much. That is quite > paradoxical. > > > I finish by exposing some cases of use (and some examples of possible > templates). > > T1: > this is the beginning of my post. Actually, it is only adding an > option to override the hardcoded HEADER_TEMPLATES[TARGET]. > > T2: > Would address the footer problem in my example. > > This is also a way to have templates that are as close as possible of > regular target files. > Somebody *without any txt2tags knowledge* should be able to create a > template and possibly visualize it (easier in html than in say > tex wit the current %() syntax though...). Then someone without any > CSS/XHTML knowledge could use the template with txt2tags. > > > T3: > Add %(MTIME)s to add the modification time in the template. Come to > mind also %(DATE)s, %(TOC)s, %(INFILE)s, %(OUTFILE)s ... > This yields the question whether to have standard txt2tags directives > in the templates. Eg, it would be possible to have the same > customization as for %%Date. > > > Some examples of possibles templates: > --8<---------------------- template.html ----------------------------- > <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> > <HTML> > <HEAD> > <META NAME="generator" CONTENT="http://txt2tags.sf.net"> > <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=%(ENCODING)s"> > > <!-- A lot of META, robot, IE hacks can be added --> > > <LINK REL="stylesheet" TYPE="text/css" HREF="%(STYLE)s"> > <TITLE>%(HEADER1)s</TITLE> > </HEAD> > <BODY BGCOLOR="white" TEXT="black"> > > <IMG SRC="logo.png"></IMG> > > <!-- html code for a nav bar --> > > <P ALIGN="center"><CENTER><H1>%(HEADER1)s</H1> > <FONT SIZE="4"> > <I>%(HEADER2)s</I><BR> > %(HEADER3)s > </FONT></CENTER> > > %(BODY)s > > Last Modified the %(MTIME)s. > </BODY> > --8<------------------------------------------------------------------- > > > --8<-------------------- template.tex --------------------------------- > \documentclass{report} > \usepackage{graphicx} > \usepackage[normalem]{ulem} %% needed by strike > \usepackage[urlcolor=blue,colorlinks=true]{hyperref} > \usepackage[%(ENCODING)s]{inputenc} %% char encoding > \usepackage{%(STYLE)s} %% user defined > > \title{%(HEADER1)s} > \author{%(HEADER2)s} > \begin{document} > \date{%(HEADER3)s} > \includegraphics{logo.png} > \maketitle > > %% No \clearpage. > > %(BODY)s > > \vfill > Last Modified the %(MTIME)s. > --8<------------------------------------------------------------------- > > > T4: > It could be possible to associate a macro bank, a url bank, a smiley > bank, ..., to a template. It can already be done by including > configuration files, but it could be more convenient this way. > > It would also be possible to implements sub-dialect of the target > types. Eg, proper header for a book in latex is "just" a matter of > changing \documentclass{article} by \documentclass{book} and all > \section by \chapter, etc.... This is quite exactly the same for > latex-beamer (resp. "beamer" and something like > "\begin{frame}\frametitle" ...). > This way, with the right preprocs, one would not have to argue whether > we should have latex-beamer (as it is (was?) proposed) and not > latex-book. Any sub-dialect could be prototyped this way (a tex > template + a configuration file that is automatically loaded) and > added as a contributed template to the txt2tags package. > For latex-beamer, it might be also possible to add PAUSE macros or the > likes. Maybe a solution is better related to the new tagged mark. > > A last case of use was the recent inquiry about latex + R + sweave... > > > I do agree that my last T4 request is probably not so KISS but I think > T3 is. The implementation of T3 would be of great interest for me and > probably other people. > > Thanks you for reading all those suggestions, > > Emmanuel > > > > ------------------------------------------------------------------------------ > Open Source Business Conference (OSBC), March 24-25, 2009, San Francisco, CA > -OSBC tackles the biggest issue in open source: Open Sourcing the Enterprise > -Strategies to boost innovation and cut costs with open source participation > -Receive a $600 discount off the registration fee with the source code: SFAD > http://p.sf.net/sfu/XcvMzF8H > _______________________________________________ > txt2tags-list mailing list > https://lists.sourceforge.net/lists/listinfo/txt2tags-list > -- Aurélio Marinho Jargas www.aurelio.net ------------------------------------------------------------------------------ Open Source Business Conference (OSBC), March 24-25, 2009, San Francisco, CA -OSBC tackles the biggest issue in open source: Open Sourcing the Enterprise -Strategies to boost innovation and cut costs with open source participation -Receive a $600 discount off the registration fee with the source code: SFAD http://p.sf.net/sfu/XcvMzF8H _______________________________________________ txt2tags-list mailing list https://lists.sourceforge.net/lists/listinfo/txt2tags-list
