Thanks Jeff. Smart....will save time & effort. But, still a work-around.

A template processing module should never *consume* any portion of the
template that is not meant for it to be consumed - is the simple logic that
I want to convey.

Best Regards,
Nagu.


On Wed, Jul 25, 2012 at 10:54 AM, Jeff Lawson <[email protected]> wrote:

> If you wanted to be even fancier, you could do this to automatically set
> the Content-Type header based on that XML declaration:
>
> proc xml {args} {
>     set contentType "text/xml"
>     foreach onearg $args {
>         if {[regexp {^encoding=\"(.*)\"$} $onearg - charset]} {
>             append contentType "; charset=$charset"
>             break
>         }
>     }
>     headers type $contentType
>     puts "<\?xml [join $args] \?\>"
> }
>
>
>
> On Wed, Jul 25, 2012 at 12:05 AM, Jeff Lawson <[email protected]> wrote:
>
>> Technically, Rivet doesn't validate the character that immediately
>> follows <?, other than ensuring it is not <?=
>>
>> The "xml" that immediately follows the opening sequence is being executed
>> as the command name.  You don't even need to modify the source to Rivet
>> itself to define a proc in the global init script that was like this:
>>
>> <?
>> proc xml {args} {
>>     puts "<\?xml [join $args] \?\>"
>> }
>> ?>
>>
>> Then when Rivet encounters this sequence, it would execute the "xml" proc
>> and just output the tag as you intended.
>>
>> <?xml version="1.0" encoding="UTF-8"?>
>>
>>
>>
>>
>> On Tue, Jul 24, 2012 at 11:51 PM, Nagarajan Chinnasamy <
>> [email protected]> wrote:
>>
>>> Leaving aside what php does with this tag, isn't it a good practice for
>>> any template engine to *emit* the patterns that it does not recognize?
>>>
>>> I don't know how <? tag is tokenized in Rivet. If we say, Rivet
>>> recognizes the patterns "<?" and "<?=", then any other pattern of "<?xxxx"
>>> should be emitted out as is....IMHO
>>>
>>> Best Regards,
>>> Nagu.
>>>
>>>
>>>
>>> On Mon, Jul 23, 2012 at 12:11 PM, Jeff Lawson <[email protected]> wrote:
>>>
>>>> As you know, the "<?" tag is also used by PHP (in its default short tag
>>>> mode), so Rivet is not unique in choosing it. In any case, the choice was
>>>> already made for the project long ago.
>>>>
>>>> You can also compile Rivet to use different tags if you really want to
>>>> make your configuration even more non-standard... :)
>>>>
>>>>  -DSTART_TAG='"<?"' -DEND_TAG='"?>"'
>>>>
>>>>
>>>>
>>>>
>>>> On Sun, Jul 22, 2012 at 11:08 PM, Nagarajan Chinnasamy <
>>>> [email protected]> wrote:
>>>>
>>>>> Thanks Massimo & Jeff.
>>>>>
>>>>> However, from a user's perspective, my take on this issue  is that
>>>>> Rivet should not hijack the entire "<?" tag to itself, especially  when
>>>>> "<?xml" is a widely-used standard practice. Even before its sent to tcl
>>>>> interpretter, why not just emit the whole tag when its not recognized by
>>>>> rivet? As it was suggested, having a "<?rivet" tag may also help.
>>>>>
>>>>> This point leads me to the imagination of having a template that has
>>>>> all different things embedded (xml, tcl code, php code etc.). This may 
>>>>> need
>>>>> a super-template-processing-module as an apache module that dispatches a
>>>>> <?xxx block to the right template-processing-module based on configuration
>>>>> directives.
>>>>>
>>>>> Best Regards,
>>>>> Nagu.
>>>>>
>>>>>
>>>>>
>>>>> On Mon, Jul 23, 2012 at 5:13 AM, Jeff Lawson <[email protected]> wrote:
>>>>>
>>>>>> If you need to output the XML declaration, you can output it with
>>>>>> enough escaping:
>>>>>>
>>>>>> <?= "\<\?xml version=\"1.0\" encoding=\"UTF-8\"\?\>" ?>
>>>>>>  <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
>>>>>>       
>>>>>> "http://www.w3.org/TR/xhtml11/**DTD/xhtml11.dtd<http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd>
>>>>>>  [1]">
>>>>>>  ...
>>>>>>
>>>>>> I agree that it is a little bit of a pain to do, but PHP has the same
>>>>>> trouble with that character sequence and requires an equivalent 
>>>>>> workaround.
>>>>>>
>>>>>>
>>>>>>
>>>>>>  On Sun, Jul 22, 2012 at 5:13 PM, Massimo Manghi <
>>>>>> [email protected]> wrote:
>>>>>>
>>>>>>>
>>>>>>> no way, the <? sequence invariably is parsed by the Rivet parser as
>>>>>>> the beginning of a Tcl script section embedded in the template. You 
>>>>>>> have to
>>>>>>> remove it.
>>>>>>>
>>>>>>> Years ago someone suggested to support a different style of
>>>>>>> embedding using <?rivet ...?> as tag for the specific reason of not 
>>>>>>> messing
>>>>>>> up with XML files. The proposal was filed as as bug #5553, it was
>>>>>>> acknowledged as such, but was closed as 'wontfix' anyway. Time for 
>>>>>>> resuming
>>>>>>> this issue?
>>>>>>>
>>>>>>>  regards
>>>>>>>
>>>>>>>  -- Massimo
>>>>>>>
>>>>>>>
>>>>>>> On 2012-07-22 20:05, Nagarajan Chinnasamy wrote:
>>>>>>>
>>>>>>>> Hello,
>>>>>>>>
>>>>>>>> The "<?xml" tag that is part of a simple xhtml document (saved as
>>>>>>>> .rvt
>>>>>>>> template)  I generated from Amaya W3Cs editor throws error when
>>>>>>>> browsed:
>>>>>>>>
>>>>>>>>  <?xml version="1.0" encoding="UTF-8"?>
>>>>>>>>> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
>>>>>>>>>       
>>>>>>>>> "http://www.w3.org/TR/xhtml11/**DTD/xhtml11.dtd<http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd>[1]">
>>>>>>>>> <html 
>>>>>>>>> xmlns="http://www.w3.org/1999/**xhtml<http://www.w3.org/1999/xhtml>[2]">
>>>>>>>>>
>>>>>>>>> <head>
>>>>>>>>>   <meta http-equiv="content-type" content="text/html;
>>>>>>>>> charset=UTF-8" />
>>>>>>>>>   <title>My First RVT</title>
>>>>>>>>>   <meta name="generator" content="Amaya, see
>>>>>>>>> http://www.w3.org/Amaya/ [3]" />
>>>>>>>>>
>>>>>>>>> </head>
>>>>>>>>> <body>
>>>>>>>>> <h1>My First RVT</h1>
>>>>>>>>> </body>
>>>>>>>>> </html>
>>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>
>>>>>>> ------------------------------**------------------------------**
>>>>>>> ---------
>>>>>>> To unsubscribe, e-mail: 
>>>>>>> rivet-dev-unsubscribe@tcl.**apache.org<[email protected]>
>>>>>>> For additional commands, e-mail: [email protected]
>>>>>>>
>>>>>>>
>>>>>>
>>>>>
>>>>
>>>
>>
>

Reply via email to