概要
rake yardでdoc/file.*.htmlを作成した時に,うまくcodeがhighlight変換されない.
経過
8/3のゼミでerinjinuへ説明しているときに,俺のでは正常に変換されるのに,erijinuのmac上では変換されないことが判明
rake yardでpreがうまく通らない理由
- 原因不明
- おれが,yardをいじっちゃったのかも.得にcodeの前後にpreをつけたような記憶が...
- ただそれがどこにあるのか不明.version変わってるので,消えてると思うんやけど.
- もう少し探してみます.
対策
とりあえず,wikiで登録するようにした.なんかしらんけど,直接あげられるし.
作業メモ
とりあえず,/usr/local/lib/ruby/gems/2.2.0/gems/yard-0.9.5で穴をほってみたが,お宝は,見当たらず.
原因コードの場所
lib/yard/templates/helpers/html_helper.rb: html.gsub(/<pre\s*(?:lang="(.+?)")?>(?:\s*<code\s*(?:class="(.+?)")?\s*>)?(.+?)(?:<\/code>\s*)?<\/pre>/m) do
lib/yard/templates/helpers/html_helper.rb: %Q{<pre class="#{classes}"><code class="#{language}">#{string}</code></pre>}
emacs lib/yard/templates/helpers/html_helper.rb
templates/default/tags/html/example.erb: <pre class="example code"><code><%= html_syntax_highlight(tag.text) %></code></pre>
html_helper.rbに記述があるが,ちゃんと動いているようで,erijinuでなぜ動かないかが不明.erijinuでdebugが必要か...
その他
bob% grep "<code" */*/*/*.*rb
spec/templates/helpers/html_helper_spec.rb: expect(html).to match %r{^<p>Introduction:</p>.*<code class="ruby">}m
spec/templates/helpers/html_helper_spec.rb: expect(subject.htmlify('<pre><code>def x; end</code></pre>', :html)).to eq(
spec/templates/helpers/html_helper_spec.rb: '<pre class="code NAME"><code class="NAME">foobar</code></pre>')
spec/templates/helpers/html_helper_spec.rb: expect(subject.htmlify("<pre><code>!!!LANG\ndef x; end</code></pre>", :html)).to eq(
spec/templates/helpers/html_helper_spec.rb: '<pre class="code LANG"><code class="LANG">foobar</code></pre>')
spec/templates/helpers/html_helper_spec.rb: expect(subject.htmlify('<pre lang="foo"><code>{"foo" => 1}</code></pre>', :html)).to eq(
spec/templates/helpers/html_helper_spec.rb: '<pre class="code foo"><code class="foo">{"foo" => 1}</code></pre>')
spec/templates/helpers/html_helper_spec.rb: expect(subject.htmlify('<pre lang="foo"><code>x = 1</code></pre>', :html)).to eq(
spec/templates/helpers/html_helper_spec.rb: '<pre class="code foo"><code class="foo">x = 1</code></pre>')
spec/templates/helpers/html_helper_spec.rb: expect(subject.htmlify('<pre><code class="foo">x = 1</code></pre>', :html)).to eq(
spec/templates/helpers/html_helper_spec.rb: '<pre class="code foo"><code class="foo">x = 1</code></pre>')
[bob:2.2.0/gems/yard-0.9.5] bob% grep "<code" */*/*/*/*.*rb
spec/templates/helpers/markup/rdoc_markup_spec.rb: expect(to_html('Hello +<code>+')).to eq '<p>Hello <tt><code></tt></p>'
spec/templates/helpers/markup/rdoc_markup_spec.rb: expect(fix_typewriter("<code>Hello +hello+</code>")).to eq "<code>Hello +hello+</code>"
他のはspecばかり.