You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@shale.apache.org by "Gary VanMatre (JIRA)" <ji...@apache.org> on 2006/09/26 18:25:31 UTC

[jira] Commented: (SHALE-292) Clay doesn't consider file's encoding when loading/parsing html templates from hdd

    [ http://issues.apache.org/struts/browse/SHALE-292?page=comments#action_38273 ] 
            
Gary VanMatre commented on SHALE-292:
-------------------------------------

I like the idea of being able to specify the encoding per document template.  Many templates can be included in a  single page.  We might be able to build on a similar idea that is built into the clay markup parser.

The clay HTML template parser has a couple special tokens that it used to block out a markup that should be excluded form the document.  These tokens are in the form of comments.

<!-- ### clay:remove ### -->
   <html>
       exclude this text
<!-- ### /clay:remove ### -->

These special comments and the markup between is ignored - dropped from the document.

What if we used another special comment token that operates like a page directive?

<!-- ### clay:page charset="UTF-8" / -->

This comment would have to be in the first few bytes of the template document.  The top of each template could be sniffed for this token.  If it exists, extract the charset and open the target template with the specified encoding.

 
Reading each template file would be broken down into two steps.
1)  Look at the top of the template for the token comment containing the charset.  If not found, use the vm's default "file.encoding".
2)  Read the template in with the determined encoding

Does is this a sound plan?  Any thoughts?

> Clay doesn't consider file's encoding when loading/parsing html templates from hdd
> ----------------------------------------------------------------------------------
>
>                 Key: SHALE-292
>                 URL: http://issues.apache.org/struts/browse/SHALE-292
>             Project: Shale
>          Issue Type: Bug
>          Components: Clay
>    Affects Versions: 1.0.0, 1.0.1, 1.0.2, 1.0.4-SNAPSHOT, 1.0.3
>         Environment: windows xp, tomcat 5.5 (started with -Dfile.encoding=UTF-8 option, this way myfaces doesn't convert all non-ascii characters to html entities), myfaces 1.1.3
>            Reporter: Tom Pasierb
>         Assigned To: Gary VanMatre
>         Attachments: some.html, whatever.jsp
>
>
> Clay reads html files assuming ascii encoding. This way it's impossible to have characters other than ascii in templates. They do not display correctly. As indicated on the user mailing list a Reader object should be used for reading templates instead of InputStream. I wrote more about this on shale user mailing list.
> We probably need:
> 1. app wide config option for setting encoding clay should use for reading templates in. Clay would default to this setting unless maybe
> 2. some per file encoding config option was set (something similar to @page pageEncoding directive for jsps)
> I marked it as major as this should be corrected if one wants to develop localized applications with non-ascii characters in html templates.
> As noted by Craig this probably also applies to xml templates, which I haven't tried myself.

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://issues.apache.org/struts/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira