هل يمكنني الحصول على readme.textile في RDOC الخاص بي مع التنسيق المناسب؟
سؤال
أرغب في استخدام النسيج أو Markdown لكتابة ملفات ReadMe لمشاريعي ، ولكن عندما أقوم بإنشاء RDOC ، يتم تفسير ملف readme على أنه RDOC ويبدو مروعًا حقًا. هل هناك طريقة لجعل RDOC تشغيل الملف من خلال Redcloth أو BlueCloth بدلاً من تنسيقه؟ هل يمكن تكوينه لتوليت التنسيق من لاحقة الملف؟ (على سبيل المثال ، يتم تشغيل readme.textile عبر Redcloth ، ولكن يتم تشغيل readme.mdown عبر BlueCloth)
المحلول
استخدام حديقة منزل بدلاً من RDOC مباشرة ، يتيح لك تضمين ملفات النسيج أو التكلفة طالما أن لاحقة ملفاتها معقولة. غالبًا ما أستخدم شيئًا مثل مهمة أشعل النار التالية:
desc "Generate RDoc"
task :doc => ['doc:generate']
namespace :doc do
project_root = File.expand_path(File.join(File.dirname(__FILE__), '..'))
doc_destination = File.join(project_root, 'doc', 'rdoc')
begin
require 'yard'
require 'yard/rake/yardoc_task'
YARD::Rake::YardocTask.new(:generate) do |yt|
yt.files = Dir.glob(File.join(project_root, 'lib', '**', '*.rb')) +
[ File.join(project_root, 'README.md') ]
yt.options = ['--output-dir', doc_destination, '--readme', 'README.md']
end
rescue LoadError
desc "Generate YARD Documentation"
task :generate do
abort "Please install the YARD gem to generate rdoc."
end
end
desc "Remove generated documenation"
task :clean do
rm_r doc_dir if File.exists?(doc_destination)
end
end
نصائح أخرى
إذا قمت باستضافة مشروعك على Github ، يمكنك أيضًا استخدامه http://rdoc.info لبناء ونشر RDOCs تلقائيًا باستخدام الفناء.
أدرك الرمز في 26819 سبقه "شيء مثل" ، ولكن هناك مشاكل واجهت. تم رفض التعديلات الخاصة بي على الإجابة ، لذا إليك نسخة ثابتة (يتم التعليق):
desc "Generate RDoc"
task :doc => ['doc:generate']
namespace :doc do
# edit: typically (for gems, at least), Rakefile is in the root, so ".", not ".."
project_root = File.expand_path(File.join(File.dirname(__FILE__), '.'))
doc_destination = File.join(project_root, 'doc', 'rdoc')
begin
require 'yard'
require 'yard/rake/yardoc_task'
YARD::Rake::YardocTask.new(:generate) do |yt|
# edit: README.md is not a ruby source file - see
# https://stackoverflow.com/questions/7907698/yard-0-7-3-fails-to-build-my-readme-in-both-markdown-and-textile
# remove README.md from yt.files
yt.files = Dir.glob(File.join(project_root, 'lib', '**', '*.rb'))
yt.options = ['--output-dir', doc_destination, '--readme', 'README.md']
end
rescue LoadError
desc "Generate YARD Documentation"
task :generate do
abort "Please install the YARD gem to generate rdoc."
end
end
desc "Remove generated documenation"
task :clean do
#edit: doc_dir was undefined; replaced by doc_destination
rm_r doc_destination if File.exists?(doc_destination)
end
end