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:
<p>the quick brown
fox jumps
over
the lazy dog</p>
Whereas, I would like:
<p>the quick brown</p>
<p>fox jumps</p>
<p>over</p>
<p>the lazy dog</p>
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.
Thanks in advance,
Mike Leonard
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
···
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:
<p>the quick brown
fox jumps
over
the lazy dog</p>
Whereas, I would like:
<p>the quick brown</p>
<p>fox jumps</p>
<p>over</p>
<p>the lazy dog</p>
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.
--
Jamis Buck
jamis_buck@byu.edu
http://jamis.jamisbuck.org
------------------------------
"I am Victor of Borge. You will be assimil-nine-ed."
Jamis Buck wrote:
Use triple line breaks to indicate paragraph breaks. It's just the way
YAML works:
Unless you use a literal block.
----------------qbf.yml----------------
title: "on dogs and foxes"
author: "q.b. foks, esq."
text: |
the quick brown
fox jumps
over
the lazy dog
···
---------------------------------------
Double-quoted multiline strings act like folded blocks (the rules Jamis described).
See 'Blocks' in the YAML Cookbook. <http://yaml4r.sourceforge.net/cookbook/#blocks>
_why
Gah! Now *that's* something I wish I'd known six months ago. Would
have made it much less painful to do the Needle/Net::SSH/etc.
documentation in YAML.
Thanks for the tip, _why.
- Jamis
···
On 08:19 Mon 21 Feb , why the lucky stiff wrote:
Jamis Buck wrote:
>Use triple line breaks to indicate paragraph breaks. It's just the way
>
>YAML works:
>
>
Unless you use a literal block.
----------------qbf.yml----------------
title: "on dogs and foxes"
author: "q.b. foks, esq."
text: |
the quick brown
fox jumps
over
the lazy dog
---------------------------------------
Double-quoted multiline strings act like folded blocks (the rules Jamis
described).
See 'Blocks' in the YAML Cookbook.
<http://yaml4r.sourceforge.net/cookbook/#blocks>
--
Jamis Buck
jamis_buck@byu.edu
http://jamis.jamisbuck.org
------------------------------
"I am Victor of Borge. You will be assimil-nine-ed."