2010-01-26 1 views
5

필자는 Textile이나 Markdown을 사용하여 내 프로젝트에 대한 readme 파일을 작성하지만 RDoc을 생성 할 때 readme 파일은 RDoc으로 해석되어 정말 끔찍한 것처럼 보입니다. RDoc이 자체 포맷터 대신 RedCloth 또는 BlueCloth를 통해 파일을 실행하도록하는 방법이 있습니까? 파일 접미사에서 서식을 자동 검색하도록 구성 할 수 있습니까? (예 : README.textile은 RedCloth를 통해 실행되지만 README.mdown은 BlueCloth를 통해 실행 됨)README.textile을 올바른 형식으로 내 RDoc에 가져올 수 있습니까?

답변

7

RDoc 대신 YARD을 사용하면 파일 접미사가 합당한 한 Textile 또는 Markdown 파일을 직접 포함시킬 수 있습니다. 당신은 GitHub의에서 프로젝트를 호스팅하는 경우 당신은 또한 http://rdoc.info 자동으로 구축하고 YARD를 사용하여 rdocs를 게시하는 데 사용할 수있는

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 
+0

YARD이 RDoc보다 더 온건 한 해결책처럼 보이는, 감사합니다! – Theo

2

: 나는 종종 다음 레이크 작업 같은 것을 사용합니다.

0

나는 26819의 코드가 "something like"로 시작되었음을 알고 있지만, 내가 만난 문제가있다. 대답에 내 편집은, 그래서 여기에 거부 고정 된 버전입니다했다 (편집은 주석) :

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 
관련 문제