人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

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

●質問者: ichiroc
●カテゴリ:コンピュータ ウェブ制作
✍キーワード:HTML RD Ruby コマンド スクリプト
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● るびきち
●20ポイント

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>
◎質問者からの返答

ありがとうございます。

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

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


2 ● るびきち
●50ポイント ベストアンサー

ならばこれで。おれおれ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>
# >> 
◎質問者からの返答

ありがとうございます!

これで試してみます!

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ