سؤال

كيف يمكنني تضمين ملف رمز الياقوت ، وكذلك ، في RDOC؟

لديّ ملف مثال. RB يوثق كيفية استخدام GEM الخاص بي وأرغب في تضمين ذلك كواحد من الملفات مثل ReadMe.rdoc و History.rdoc.

لقد اكتشفت بالفعل كيفية تحويل رمز مصدر Ruby إلى HTML باستخدام جملة الجوهرة لكن لا يمكنني معرفة كيفية عمل RDOC ، وتشمل الملف دون تحليله.

عندما أخبر RDOC بتضمين ملف HTML ، لم يتم سرده ، وإذا قمت بتزييفه باستخدام RDOC أو TXT كملحق الملف لا يتم عرضه بشكل صحيح (لا يزال الملف HTML بالفعل).

لدي حل يعمل إنه قبيح بشكل لا يصدق. يجب أن تكون هناك طريقة أفضل للقيام بذلك ، وهو مواطن لـ RDOC ولكني لا أراه.

هذا ما لدي في rekfile:

# 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]
هل كانت مفيدة؟

المحلول

آسف لا أستطيع أن أعطيك إجابة فعلية لكني أنظر إلى SDOC نفسي. يمكنك تثبيت جوهرة من روبي الأحجار الكريمة.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top