This is a non-issue. Correct me if I'm wrong, but <br /> is valid html syntax. It's parsed as valid by every html parser, and I'm positive this is the entire point of xhtml: staying backwards-compatible with html.
J. Leclanche / Adys On Sat, Sep 26, 2009 at 7:48 AM, Rob Hudson <treborhud...@gmail.com> wrote: > > Or: Why is HTML4 such a PITA to get right? > > Outline: > * What I know about HTML4 and Django > * Some info about past efforts and discussions > * Thoughts and curiosities about what we can do > > What I know about HTML4 and Django > ============================ > > First, let's not let this turn into an argument about HTML vs XHTML. > People have their preference one way or the other, and I believe > Django should be agnostic. > > Currently, however, Django *is* biased to producing XHTML output in > the various places that output HTML, such as comments, formtools, > csrf, forms.widgets, and various filters and HTML utilities that > output "<br />" tags. For someone that prefers an HTML4 doctype, this > is a hassle with no easy answer. > > Some info about past efforts and discussions > ================================= > > Some tickets already open on this... > > Ticket #6925: CSRF html output is not valid html (it is xhtml) > http://code.djangoproject.com/ticket/6925 > > Ticket #7281: Add doctype tag to webdesign template tags > http://code.djangoproject.com/ticket/7281 > > Ticket #7452: Settings for HTML4 or XHTML output > http://code.djangoproject.com/ticket/7452 > > Proposal from Mar 2008: > Form rendering with filters... > http://groups.google.com/group/django-developers/browse_thread/thread/5f3694b8a19fb9a1 > > Proposal from Sept 2008: > {% doctype %} and {% field %} tag for outputting form widgets as HTML > or XHTML... > http://groups.google.com/group/django-developers/browse_thread/thread/f04aed2bc60274f0 > > Since those tickets aren't closed as "wontfix" or "invalid", and much > of the conversation surrounding this agrees that *something* should be > done, I'm hoping to start a conversation as to what that something > might be. > > Thoughts and curiosities about what we can do > ================================== > > After thinking for some time, I've only been able to come up with two ideas... > > 1. Incorporate something along the lines of Simon's django-html > project (http://github.com/simonw/django-html). > > I think the genera idea is this: You set a doctype in your base > template via a template tag (e.g. {% doctype "html4" %}, and any > rendering that is done after that (in inherited or included templates) > is based on this doctype. > > Advantages: > * It puts the doctype decision into the hands of the designer. > * It allows for different parts of an application to have different doctypes. > > Shortcomings: > * Fixes the symptom, not the bug. [1] I think the fix should not do > string replacement, but output the correct HTML in the first place. > (I realize this is the best one can hope for as a 3rd party app, but > if something were to come into core it would have the ability to fix > things properly.) > * Doesn't "fix" the rest of the areas where Django outputs XHTML. Is > it possible? > * Ties various parts of Django to the-thing-that-produces-HTML. > > 2. Add a new setting, e.g. settings.DOCTYPE, that various parts of > Django and 3rd party apps use to render HTML. > > Advantages: > * Simple and straightforward > > Shortcomings: > * Yet another setting > * Doesn't allow for template level decisions of doctype by designers > > > Since I think idea #1 has the best chance of making headway, I've > tried to look at how it might be done. Unfortunately, I don't know > the template system well enough to see how setting {% doctype "html4" > %} might be able to affect other areas of Django. Here was my thought > process the other night... > > If Django widgets and other parts of Django always used the Template > system to render HTML, it might be possible to set some global context > variable of the current doctype. But perhaps the reason for not doing > this initially is because each `get_template` call results in a read > from the filesystem (or thread safety?)? In which case, we should > consider fixing #6262, Cache templates. Using Templates everywhere > does inhibit re-use of pieces of Django outside of Django as they > would all now rely on Django's templates. > > There's also the option of something like Werkzeug's HTMLBuilder[2] > and their use in Solace widgets[3]. > > I don't claim to have the answer, but I'm willing to put time and > effort into helping solve this. Thoughts? Other ideas? > > Thanks, > Rob > > [1] http://www.pointy-stick.com/blog/2007/09/04/fix-bug-not-symptom/ > [2] http://dev.pocoo.org/projects/werkzeug/browser/werkzeug/utils.py#L126 > [3] http://bitbucket.org/plurk/solace/src/tip/solace/utils/forms.py#cl-294 > > > > --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Django developers" group. To post to this group, send email to django-developers@googlegroups.com To unsubscribe from this group, send email to django-developers+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/django-developers?hl=en -~----------~----~----~----~------~----~------~--~---