From: Jamis Buck Date: 2005-02-21T03:25:16+09:00 Subject: Re: YAML/RedCloth Question On 02:59 Mon 21 Feb , mikeleonard wrote: > Hello all, > > I'm very new to Ruby, so appy-polly-loggies in advance if the answer to > this is obvious. > > I have a file, qbf.yml, the contents of which are: > > ----------------qbf.yml---------------- > title: "on dogs and foxes" > author: "q.b. foks, esq." > text: "the quick brown > > fox jumps > > over > > the lazy dog" > --------------------------------------- > > I want to import it into a Ruby hash and use RedCloth to convert the > "text" portion to html. The code I'm using is this: > > ----------------qbf.rb---------------- > require 'yaml' > require 'redcloth' > > qbf=YAML::load(File.open('qbf.yml')) > > puts RedCloth.new(qbf["text"]).to_html > -------------------------------------- > > The output I get from this is: > >

the quick brown > fox jumps > over > the lazy dog

> > Whereas, I would like: > >

the quick brown

>

fox jumps

>

over

>

the lazy dog

> > It looks like when I import the YAML, my paragraph breaks get eaten up. > I'd like to avoid this if at all possible. I'm sure the solution is > very simple, but I can't seem to get my head around it. Any help would > be greatly appreciated. Use triple line breaks to indicate paragraph breaks. It's just the way YAML works: 1) A single newline gets eaten (resulting in one long line with no newlines) 2) Two newlines get collapsed to one newline 3) Three newlines give you the expected blank line between paragraphs Also, a syntax like this might read a little easier in your yaml file: title: on dogs and foxes author: q.b. foks, esq. text: >- the quick brown fox jumps over the lazy dog (Notice the quotes are almost always optional, except when there is some question as to what format the data should be. Also, the >- after text: says to eat all following lines wih a greater indentation level and treat them as a single text value.) Hope that helps, Jamis -- Jamis Buck jamis_buck@byu.edu http://jamis.jamisbuck.org ------------------------------ "I am Victor of Borge. You will be assimil-nine-ed."