RubyのRD形式で書かれた文字列をHTMLに変換したいです。

上記の目的を果たすようなライブラリがあれば教えてください。
コマンドではなく、スクリプト中でRDで書かれている文字列をHTMLに変換する方法を知りたいです。

回答の条件
  • 1人5回まで
  • 登録:2008/08/19 21:11:16
  • 終了:2008/08/21 23:14:52

ベストアンサー

id:rubikitch No.2

るびきち回答回数120ベストアンサー獲得回数222008/08/20 09:18:06

ポイント50pt

ならばこれで。おれおれvisitorを定義しておく。

require 'rd/rdfmt'
require 'rd/rd2html-lib'

class RD::RD2HTMLNoHeadVisitor < RD::RD2HTMLVisitor
  def html_body(contents)
    content = contents.join("\n")
    foottext = make_foottext
    %Q|#{content}\n#{foottext}\n|
  end

  def apply_to_DocumentElement(element, content)
    html_body(content)
  end
end


src = <<RD
=begin
= h1
test1
== h2
test2
=end
RD
tree = RD::RDTree.new(src, ".", nil)
visitor = RD::RD2HTMLNoHeadVisitor.new
tree.parse
visitor.filename = "test.html"
visitor.charcode = "euc-jp"
visitor.lang = "ja"
puts visitor.visit(tree)
# >> <h1><a name="label:0" id="label:0">h1</a></h1><!-- RDLabel: "h1" -->
# >> <p>test1</p>
# >> <h2><a name="label:1" id="label:1">h2</a></h2><!-- RDLabel: "h2" -->
# >> <p>test2</p>
# >> 
id:ichiroc

ありがとうございます!

これで試してみます!

2008/08/20 10:46:35

その他の回答(1件)

id:rubikitch No.1

るびきち回答回数120ベストアンサー獲得回数222008/08/19 22:14:59

ポイント20pt

rd2コマンドから抜き出しただけなんだが、こんなのはどうでしょう?

require 'rd/rdfmt'
require 'rd/rd2html-lib'
src = <<RD
=begin
= h1
test
=end
RD
tree = RD::RDTree.new(src, ".", nil)
tree.parse
visitor = RD::RD2HTMLVisitor.new
visitor.filename = "test.html"
visitor.charcode = "euc-jp"
visitor.lang = "ja"
puts visitor.visit(tree)
# >> <?xml version="1.0" encoding="euc-jp" ?>
# >> <!DOCTYPE html 
# >>   PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
# >>   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
# >> <html xmlns="http://www.w3.org/1999/xhtml" lang="ja" xml:lang="ja">
# >> <head>
# >> <title>test.html</title>
# >> <meta http-equiv="Content-type" content="text/html; charset=euc-jp" />
# >> </head>
# >> <body>
# >> <h1><a name="label:0" id="label:0">h1</a></h1><!-- RDLabel: "h1" -->
# >> <p>test</p>
# >> 
# >> </body>
# >> </html>
id:ichiroc

ありがとうございます。

できればRDでかかれた部分だけのHTMLが欲しいです。

この結果で言うとbodyタグの中のみの結果が欲しいのですが、rd2コマンドの中からそこを抜き出してみれば良さそうですね.

2008/08/20 07:40:18
id:rubikitch No.2

るびきち回答回数120ベストアンサー獲得回数222008/08/20 09:18:06ここでベストアンサー

ポイント50pt

ならばこれで。おれおれvisitorを定義しておく。

require 'rd/rdfmt'
require 'rd/rd2html-lib'

class RD::RD2HTMLNoHeadVisitor < RD::RD2HTMLVisitor
  def html_body(contents)
    content = contents.join("\n")
    foottext = make_foottext
    %Q|#{content}\n#{foottext}\n|
  end

  def apply_to_DocumentElement(element, content)
    html_body(content)
  end
end


src = <<RD
=begin
= h1
test1
== h2
test2
=end
RD
tree = RD::RDTree.new(src, ".", nil)
visitor = RD::RD2HTMLNoHeadVisitor.new
tree.parse
visitor.filename = "test.html"
visitor.charcode = "euc-jp"
visitor.lang = "ja"
puts visitor.visit(tree)
# >> <h1><a name="label:0" id="label:0">h1</a></h1><!-- RDLabel: "h1" -->
# >> <p>test1</p>
# >> <h2><a name="label:1" id="label:1">h2</a></h2><!-- RDLabel: "h2" -->
# >> <p>test2</p>
# >> 
id:ichiroc

ありがとうございます!

これで試してみます!

2008/08/20 10:46:35

この質問への反応(ブックマークコメント)

トラックバック

  • RDパーサをRailsのBlogに組み込んだ ichiroc.in 2008-08-24 22:01:07
    blogの記法をhparser からRDに変えた。 hparserを変える大きな理由は特になかったんだけど、Rubyで作ったblogシステ
  • Ruby HParser - バリケンのRuby日記 - Rubyist gem install hparser RD ichiroc.in / 秋、まっさかり RubyのRD形式で書かれた文字列をHTMLに変換したいです。 上記の目的を果たすようなライブラリがあれば教え
  • オレ Visitor for RD 某青年団体で、自組織サイトの管理セクションに配属されました。基本的にボランティア。昨今の経済情勢上、デザインテンプレート以外はほぼ内製。そして、元旦開設。
  • 1227881913**[ruby] オレオレ Visitor for RD 某青年団体で、自組織サイトの管理セクションに配属されました。基本的にボランティア。昨今の経済情勢上、デザインテンプレート以外はほぼ内製。そ
「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません