3


0

HTMLとしてのRubyソースコードをRDocに追加する
  • RubyコードファイルをそのままRDocに含めるにはどうすればよいですか?*

gemの使用方法を文書化したexample.rbファイルがあり、README.rdocやHISTORY.rdocなどのファイルの1つとしてそれを含めたいと思います。

Syntax gemを使用してrubyのソースコードをHTMLに変換する方法を既に理解していますが、解析せずにRDocにファイルを含める方法はわかりません。

リストにないHTMLファイルを含めるようにRDocに指示すると、ファイル拡張子としてrdocまたはtxtを使用して偽造した場合、適切に表示されません(ファイルは実際にはhtmlです)。

私は非常にworksいだけで動作するソリューションを持っています。 これを行うには、rdoc固有のより良い方法が必要ですが、私にはわかりません。

Rakefileには次のものがあります。

# Build rdocs
require 'rake/rdoctask'
require 'syntax/convertors/html'
rdoc_dir = 'rdoc'
# This is rdoc1 but it doesn't work unless you DON'T wrap it in a task
# Generate html files from example ruby files
convertor = Syntax::Convertors::HTML.for_syntax "ruby"
replacement_key = "REPLACE_THIS_TEXT_WITH_PROPER_HTML"
# Create dummy files
Dir.glob('examples/*.rb').each do |file|
  File.open("#{file}.txt", "w") do |dummy_file|
    dummy_file.write(replacement_key)
  end
end

# Call the rdoc task
Rake::RDocTask.new(:rdoc2) do |rdoc|
  rdoc.rdoc_dir = rdoc_dir
  rdoc.title = "pickled_optparse #{version}"
  rdoc.rdoc_files.include('README*')
  rdoc.rdoc_files.include('HISTORY*')
  rdoc.rdoc_files.include('examples/*.txt')
  rdoc.rdoc_files.include('lib/**/*.rb')
end

task :rdoc3 do
  # Now use a hammer to replace the dummy text with the
  # html we want to use in our ruby example code file.
  html_header = File.read('rake_reqs/html_header.html')
  Dir.glob('examples/*.rb').each do |file|
    html_ruby = convertor.convert(File.read(file))
    rdoc_file = "#{rdoc_dir}/examples/#{File.basename(file,".rb")}_rb_txt.html"
    fixed_html = File.read(rdoc_file).gsub!(replacement_key, "#{html_header}#{html_ruby}")
    File.open(rdoc_file, "w") {|f| f.write(fixed_html)}
    File.delete("#{file}.txt")
  end
end

task :rdoc => [:rdoc2, :rdoc3]

1 Answer


1


申し訳ありませんが、実際の答えをお伝えすることはできませんが、私はhttps://github.com/voloko/sdoc[sdoc]を自分で見ています。 ruby gemからhttp://rubygems.org/gems/sdoc[gem]をインストールできます。