After attempting to write an 'unpreserve' helper (which merely gsub's HTML-entity newlines into literal newlines), I'm still suffering the exact same indentation issues. It seems like, currently, there's just no way to stop indentation -and- preserve literal newlines. :perserve does the former, and ~ the latter, but I can't for the life of me produce both effects.
On Oct 24, 2:15 pm, Twisol <[email protected]> wrote: > That's exactly what I'd like to do: make the entire partial > unindented. I envision a | mark resetting the indentation level for > the tag it's used on; if there are nested tags, they would still be > indented, but relative to the reset level. When used with my ERb > partials, I'm basically saying that I'm taking indentation into my own > hands, which is precisely what I require for my preformatted text. > > I'll look into writing an unpreserve helper, but I still like the > (perceived) elegance of my | suggestion. Thanks for your time. > > On Oct 24, 1:59 pm, Nathan Weizenbaum <[email protected]> wrote: > > > > > Converting the partials to ERB isn't going to help, since (as you noted) the > > issue comes from the Haml layout re-indenting the code. I don't see how a > > syntactic marker could help this, unless you want the entire partial to be > > un-indented. A better solution would be to make an unpreserve helper that > > you wrap your partial calls in in the layout that converts newline entities > > into actual newlines. > > > On Sat, Oct 24, 2009 at 1:24 PM, Twisol <[email protected]> wrote: > > > > I've converted the offending preformatted partials back to ERb, since > > > this seems like a good place for it. Now my only issue is the > > > indentation, because the layout file is still Haml. If the | mark I > > > suggested was added, to reset indentation, it would make it easier to > > > include ERb partials like this, and my problem would be duly solved. > > > > On Oct 24, 1:21 pm, Nathan Weizenbaum <[email protected]> wrote: > > > > Potentially, yes, but that would dramatically increase the cost of > > > > string > > > > concatenation, which is something we desperately want to avoid, since > > > string > > > > concatenation happens a lot during the rendering of a Haml template. > > > > > On Sat, Oct 24, 2009 at 1:19 PM, Chris Eppstein <[email protected]> > > > wrote: > > > > > Can't haml have some concept of a pre-formatted bit that gets set and > > > then > > > > > is sticky for the rest of the handling of that template? If the bit is > > > set, > > > > > haml layouts wouldn't re-indent those strings. This decision could be > > > made > > > > > dynamically and helpers could be made to help manage the formatting > > > bit. > > > > > > chris > > > > > > (Implementation suggestion: haml can return an extended string object > > > for > > > > > tracking the state of preformatting) > > > > > > On Sat, Oct 24, 2009 at 1:10 PM, Nathan Weizenbaum <[email protected] > > > >wrote: > > > > > >> First of all, filters like :preserve aren't meant for handling > > > > >> dynamically-generated text; they're meant for handling literal, > > > in-template > > > > >> text with maybe some dynamic stuff sprinkled in. If you're > > > > >> dynamically > > > > >> generating text, it's better to use the #preserve helper (or ~, which > > > is a > > > > >> shortcut for same). > > > > > >> As for the source code aesthetics, as I mentioned on IRC, there's > > > really > > > > >> no good way to tell when it's possible to not use newline entities. > > > > >> Declaring it in the template won't work, because it's *not* safe in > > > that > > > > >> template - the template still needs to be included in the layout, > > > which will > > > > >> re-indent it and cause the whitespace to go wrong. The only potential > > > > >> solution is to have some way of declaring "this template is never > > > going to > > > > >> be included in another template", something that might be added in > > > > >> the > > > > >> future. > > > > > >> On Sat, Oct 24, 2009 at 12:47 PM, Twisol <[email protected]> wrote: > > > > > >>> Hello, > > > > > >>> So far I really love Haml, but I have an issue with it where it > > > > >>> comes > > > > >>> to preformatted text.I have a fairly large amount of preformatted > > > text > > > > >>> (generated on the fly by a Rails helper) that I'm trying to include > > > > >>> into my page. Using the :preserve filter, it /looks/ fine, but in > > > > >>> the > > > > >>> source it's all on one line, word-wrapped to about thirty, and > > > > >>> completely indecipherable. > > > > > >>> I discussed this briefly with Nex3 on IRC, but he had to run. While > > > > >>> writing this message, though, I did have an idea: would it be > > > possible > > > > >>> to add another tag prefix, using either a _ (underscore) or a | > > > > >>> (pipe), to tell Haml that the tag's indentation (or at least its > > > > >>> content) should be reset? Nex3 had mentioned that Haml couldn't > > > > >>> determine when it was safe to perserve the literal newlines because > > > it > > > > >>> automatically indents text, but if you used | to reset indentation, > > > it > > > > >>> seems like it would be safer for Haml to do. If that was possible, I > > > > >>> think "%pre|<" would work perfectly for my purposes. > > > > > >>> Otherwise, some advice would be very much appreciated! Thanks in > > > > >>> advance, > > > > >>> ~Jonathan Castello --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Haml" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/haml?hl=en -~----------~----~----~----~------~----~------~--~---
