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
<emmanuel.god...@cmi.univ-mrs.fr> 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

Reply via email to