You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@roller.apache.org by Richard Kaye <R....@bham.ac.uk> on 2007/06/14 16:07:01 UTC

want like to customise roller to serve XHTML+MathML pages

Hi everyone - and apologies if I am sending this to the wrong 
list.  I don't know if this counts as "minor customization 
(for example, at the theme level)" but I suspect not.

I want a MathML-enabled blog.  Specifically entries should be
in XHTML+MathML (and not plain HTML). I haven't decided yet, 
but I may also want to allow MathML in comments too.  I have 
just installed a working roller (3.1) under tomcat (5.5), and 
all is well with this, but don't even know where to start
with customising it.

The documents the client sees should be served as content-type
"application/xhtml+xml" (ideally, though "text/xml" is
possible, as is "text/xml; charset=utf-8" and couple of 
other more obscure ones).  This is absolutely necessary 
for them to be displayed correctly on both major browsers 
(firefox, IE).  I have no control over these content-types.
In particular, the space after ";" and capitalization in 
"text/xml; charset=utf-8" are essential for IE, which 
doesn't load the plugin correctly if given 
"text/xml;charset=utf-8" or "text/xml; charset=UTF-8".  
Also, adding a charset to "application/xhtml+xml" also 
stops it working.  (Don't ask me why... I wasn't able to 
study the IE source code.)

The other constraint I have is that ideally other clients
(such as the google bots, which do not understand XHTML
and IE clients without the required plugin) must see a 
plain HTML version of the pages, served as text/html. 

So it seems I need two "flavours" of the same pages.  
I could not see how to achieve either of these requirements 
by creating and editing a new template, and I couldn't find 
any other helpful roller settings. I guess atom, rss, (etc) 
feeds work in the sort of way I need but I need some pointers 
on how to add new flavours to my roller.

The only idea I have is that I suppose I could use my apache 
and a connector and do all these changes using apache modules 
and XSLT transformations, but I would have thought good blog 
software wouldn't require this sort of thing.  Does anyone here 
have other ideas of how to configure or customise roller itself?

Thanks in advance

Richard





Re: want like to customise roller to serve XHTML+MathML pages

Posted by Anil Gangolli <an...@busybuddha.org>.
Richard:

I'm not sure, but you may be able to get away with meta tags in the 
templates.  Have you tried this?



--a.

----- Original Message ----- 
From: "Dave" <sn...@gmail.com>
To: <de...@roller.apache.org>; <R....@bham.ac.uk>
Sent: Monday, June 18, 2007 8:16 AM
Subject: Re: want like to customise roller to serve XHTML+MathML pages


> Comments below...
>
> On 6/14/07, Richard Kaye <R....@bham.ac.uk> wrote:
>> Hi everyone - and apologies if I am sending this to the wrong
>> list.  I don't know if this counts as "minor customization
>> (for example, at the theme level)" but I suspect not.
>>
>> I want a MathML-enabled blog.  Specifically entries should be
>> in XHTML+MathML (and not plain HTML). I haven't decided yet,
>> but I may also want to allow MathML in comments too.  I have
>> just installed a working roller (3.1) under tomcat (5.5), and
>> all is well with this, but don't even know where to start
>> with customising it.
>>
>> The documents the client sees should be served as content-type
>> "application/xhtml+xml" (ideally, though "text/xml" is
>> possible, as is "text/xml; charset=utf-8" and couple of
>> other more obscure ones).  This is absolutely necessary
>> for them to be displayed correctly on both major browsers
>> (firefox, IE).  I have no control over these content-types.
>> In particular, the space after ";" and capitalization in
>> "text/xml; charset=utf-8" are essential for IE, which
>> doesn't load the plugin correctly if given
>> "text/xml;charset=utf-8" or "text/xml; charset=UTF-8".
>> Also, adding a charset to "application/xhtml+xml" also
>> stops it working.  (Don't ask me why... I wasn't able to
>> study the IE source code.)
>>
>> The other constraint I have is that ideally other clients
>> (such as the google bots, which do not understand XHTML
>> and IE clients without the required plugin) must see a
>> plain HTML version of the pages, served as text/html.
>>
>> So it seems I need two "flavours" of the same pages.
>> I could not see how to achieve either of these requirements
>> by creating and editing a new template, and I couldn't find
>> any other helpful roller settings. I guess atom, rss, (etc)
>> feeds work in the sort of way I need but I need some pointers
>> on how to add new flavours to my roller.
>>
>> The only idea I have is that I suppose I could use my apache
>> and a connector and do all these changes using apache modules
>> and XSLT transformations, but I would have thought good blog
>> software wouldn't require this sort of thing.  Does anyone here
>> have other ideas of how to configure or customise roller itself?
>
> In 3.1 we serve pages as "text/html;charset=utf8" unless the page's
> link has an extension that allows us to guess (using
> ServletContext.getMimeType()) the content type. So you're basically
> out of luck with 3.1.
>
> Currently, in 4.0 we allow you to set the content-type of each page
> template, which should be helpful to you except that we don't allow
> you set the content-type of the required templates (Weblog, _css,
> _day).
>
> If we fixed that and allowed you to set the content-type for each and
> every page template, you'd be almost there. Do you really need to be
> able to serve different content-types to different browsers of the
> very same page?
>
> - Dave
> 


Re: want like to customise roller to serve XHTML+MathML pages

Posted by Richard Kaye <R....@bham.ac.uk>.
Thanks Dave

Ideally I would like a set-up similar to what I have for my static 
web pages.  These are all served in two versions: text/html for
XHTML-challenged web agents (like the googlebots and IE without 
a plugin) and application/xhtml+xml for Mozilla-based browsers 
and the IE+MathPlayer combination.  Usually these pages are similar
but not identical.  (One is derived from the other using XSLT.)
So yes, it is necessary to have two versions of the same content,
mainly because I cannot wait until Microsoft and Google have both
implemented XHTML.

Since clients will usually be referred to the blog from my own web
pages I can presumably set the client's preference in a number of
different ways, including using a cookie or using a modified URL to
specify this preference.  So the blog does not necessarily have to 
do the content-negotiation/client-identification. 

I am aware that in principle I can do all of this (content-negotiation,
client-identification, set mime types, perform a server-side XSLT
transform) with apache modules and the mod_jk connector, but this seems
rather a heavy-handed approach.  If I can use roller to do most of
the work for me it would be much better. (And yes, a completely
apache-free solution would mean I need to me able to set the mime type
of the main pages.)

Since I do need two different versions of the same pages, I don't 
mind writing extra templates.  I am new to roller and only just
learning what it can do. For example, I wrote a template to replace 
the main front page and can access it with 
  http://localhost:8180/roller/general/page/MyPageTemplate
But the problem is when the client clicks a link to see an entry
(Eg "[Read More]" or the link with the date) I want to go to 
  http://localhost:8180/roller/general/entry/MyEntryTemplate/entryname
or something, but I don't think this is possible in Roller 3.1 at
present.

Anil wrote:
>I'm not sure, but you may be able to get away with meta tags in the 
>templates.  Have you tried this?
No I haven't, and I am not sure to to go about this, but whatever
the mechanism is it needs to persist through links.  I'm wondering if
cookies wouldn't be better.  That way I only have one set of templates
and I only have to use apache to set the mime type.

As I said originally, I don't know if this is in the basic design
frame for Roller.  I haven't yet found any appropriate blog software
for my needs and maybe there isn't one. (I am keen to stick with
something java-based for now as I really want to incorporate java
mathml editing tools at some stage.)

My other ideas include: running two instances of roller with different
templates and the same database, using apache to select between the two.
(It sounds crazy. But could it work?) Or writing a new 
application altogether that reads the roller database directly for 
one of the versions I need.

Thanks for your help and interest.

Richard

On Mon, 2007-06-18 at 11:16 -0400, Dave wrote: 
> Comments below...
> 
> On 6/14/07, Richard Kaye <R....@bham.ac.uk> wrote:
> > Hi everyone - and apologies if I am sending this to the wrong
> > list.  I don't know if this counts as "minor customization
> > (for example, at the theme level)" but I suspect not.
> >
> > I want a MathML-enabled blog.  Specifically entries should be
> > in XHTML+MathML (and not plain HTML). I haven't decided yet,
> > but I may also want to allow MathML in comments too.  I have
> > just installed a working roller (3.1) under tomcat (5.5), and
> > all is well with this, but don't even know where to start
> > with customising it.
> >
> > The documents the client sees should be served as content-type
> > "application/xhtml+xml" (ideally, though "text/xml" is
> > possible, as is "text/xml; charset=utf-8" and couple of
> > other more obscure ones).  This is absolutely necessary
> > for them to be displayed correctly on both major browsers
> > (firefox, IE).  I have no control over these content-types.
> > In particular, the space after ";" and capitalization in
> > "text/xml; charset=utf-8" are essential for IE, which
> > doesn't load the plugin correctly if given
> > "text/xml;charset=utf-8" or "text/xml; charset=UTF-8".
> > Also, adding a charset to "application/xhtml+xml" also
> > stops it working.  (Don't ask me why... I wasn't able to
> > study the IE source code.)
> >
> > The other constraint I have is that ideally other clients
> > (such as the google bots, which do not understand XHTML
> > and IE clients without the required plugin) must see a
> > plain HTML version of the pages, served as text/html.
> >
> > So it seems I need two "flavours" of the same pages.
> > I could not see how to achieve either of these requirements
> > by creating and editing a new template, and I couldn't find
> > any other helpful roller settings. I guess atom, rss, (etc)
> > feeds work in the sort of way I need but I need some pointers
> > on how to add new flavours to my roller.
> >
> > The only idea I have is that I suppose I could use my apache
> > and a connector and do all these changes using apache modules
> > and XSLT transformations, but I would have thought good blog
> > software wouldn't require this sort of thing.  Does anyone here
> > have other ideas of how to configure or customise roller itself?
> 
> In 3.1 we serve pages as "text/html;charset=utf8" unless the page's
> link has an extension that allows us to guess (using
> ServletContext.getMimeType()) the content type. So you're basically
> out of luck with 3.1.
> 
> Currently, in 4.0 we allow you to set the content-type of each page
> template, which should be helpful to you except that we don't allow
> you set the content-type of the required templates (Weblog, _css,
> _day).
> 
> If we fixed that and allowed you to set the content-type for each and
> every page template, you'd be almost there. Do you really need to be
> able to serve different content-types to different browsers of the
> very same page?
> 
> - Dave



Re: want like to customise roller to serve XHTML+MathML pages

Posted by Dave <sn...@gmail.com>.
Comments below...

On 6/14/07, Richard Kaye <R....@bham.ac.uk> wrote:
> Hi everyone - and apologies if I am sending this to the wrong
> list.  I don't know if this counts as "minor customization
> (for example, at the theme level)" but I suspect not.
>
> I want a MathML-enabled blog.  Specifically entries should be
> in XHTML+MathML (and not plain HTML). I haven't decided yet,
> but I may also want to allow MathML in comments too.  I have
> just installed a working roller (3.1) under tomcat (5.5), and
> all is well with this, but don't even know where to start
> with customising it.
>
> The documents the client sees should be served as content-type
> "application/xhtml+xml" (ideally, though "text/xml" is
> possible, as is "text/xml; charset=utf-8" and couple of
> other more obscure ones).  This is absolutely necessary
> for them to be displayed correctly on both major browsers
> (firefox, IE).  I have no control over these content-types.
> In particular, the space after ";" and capitalization in
> "text/xml; charset=utf-8" are essential for IE, which
> doesn't load the plugin correctly if given
> "text/xml;charset=utf-8" or "text/xml; charset=UTF-8".
> Also, adding a charset to "application/xhtml+xml" also
> stops it working.  (Don't ask me why... I wasn't able to
> study the IE source code.)
>
> The other constraint I have is that ideally other clients
> (such as the google bots, which do not understand XHTML
> and IE clients without the required plugin) must see a
> plain HTML version of the pages, served as text/html.
>
> So it seems I need two "flavours" of the same pages.
> I could not see how to achieve either of these requirements
> by creating and editing a new template, and I couldn't find
> any other helpful roller settings. I guess atom, rss, (etc)
> feeds work in the sort of way I need but I need some pointers
> on how to add new flavours to my roller.
>
> The only idea I have is that I suppose I could use my apache
> and a connector and do all these changes using apache modules
> and XSLT transformations, but I would have thought good blog
> software wouldn't require this sort of thing.  Does anyone here
> have other ideas of how to configure or customise roller itself?

In 3.1 we serve pages as "text/html;charset=utf8" unless the page's
link has an extension that allows us to guess (using
ServletContext.getMimeType()) the content type. So you're basically
out of luck with 3.1.

Currently, in 4.0 we allow you to set the content-type of each page
template, which should be helpful to you except that we don't allow
you set the content-type of the required templates (Weblog, _css,
_day).

If we fixed that and allowed you to set the content-type for each and
every page template, you'd be almost there. Do you really need to be
able to serve different content-types to different browsers of the
very same page?

- Dave