Nyandoc: Scaladoc/Javadoc to markdown converter

9
Java/ScalaのAPIドキュメントを 閲覧したい。もちろんVimでだ。ブラ ウザがないと閲覧できないドキュメン トはアクセシビリティに深刻な問題が あり、今すぐに是正されるべきである。 (;Д`)@todesking

Transcript of Nyandoc: Scaladoc/Javadoc to markdown converter

Page 1: Nyandoc: Scaladoc/Javadoc to markdown converter

Java/ScalaのAPIドキュメントを閲覧したい。もちろんVimでだ。ブラウザがないと閲覧できないドキュメントはアクセシビリティに深刻な問題があり、今すぐに是正されるべきである。

(;́Д`)@todesking

Page 2: Nyandoc: Scaladoc/Javadoc to markdown converter

そういった機構はなかったので 作りました+デモ

### `def toSet[B >: A]: immutable.Set[B]` !!Converts this traversable or iterator to a set.!!Note: will not terminate for infinite-sized collections.!!* returns! * a set containing all elements of this traversable or iterator.!!* Definition Classes! * TraversableOnce ! GenTraversableOnce!!(defined at scala.collection.TraversableOnce)!

Page 3: Nyandoc: Scaladoc/Javadoc to markdown converter

というわけで、Javadoc/ScaladocをMarkdown形式に変換するものを作りました

便利

Page 4: Nyandoc: Scaladoc/Javadoc to markdown converter

インストール

• Conscriptというパッケージツールを使っているので最初にそれを導入する(github/n8han/conscript)、そして

$ cs todesking/nyandoc

• だるい人はプロジェクト(github/todesking/nyandoc)をcloneしてきて sbt run してください

Page 5: Nyandoc: Scaladoc/Javadoc to markdown converter

使い方• $ nyandoc <src> <dest-dir> • src: 元になるドキュメントの場所

• jar/html/zip対応

• dest-dir: 出力先

• 出力フォーマットはmarkdownのみです

• なぜならそれ以外必要としていないから……

Page 6: Nyandoc: Scaladoc/Javadoc to markdown converter

アドバンスド使い方ビム

• unite.vim • unite-tag • unite-outline.vim • :Unite file_rec:~/.nyandoc • :Unite outline • :Unite tag

Page 7: Nyandoc: Scaladoc/Javadoc to markdown converter

ctagsを使う

readme参照

Page 8: Nyandoc: Scaladoc/Javadoc to markdown converter

Scalaドキュメント 生成のしくみ

• scaladocにはdocletというプラグイン機構があり、HTML以外の出力形式にも対応しています。sbtから使うときに外部jarのdocletを参照しようとするとクラスローダの都合上動かないのでsbtプラグイン作りました(todesking/sbt-custom-doclet)。それはそうとdocletのAPIがHTML生成に最適化されており、これを他フォーマットに対応するのは事実上無理なのでは…………

• あと誰もdoclet使った形跡がねえ!!!!!!!!!!!!!プラグイン機構作っただけっぽい!!!!!!!!!!!

• 結論といたしましては、ふつうにHTMLをがんばってスクレイピングしてます!!!!!!!!!!!!!!!!

Page 9: Nyandoc: Scaladoc/Javadoc to markdown converter

Javaドキュメント 生成のしくみ

• JavadocにはDocletというプラグイン機構があり、これはScaladocよりはまともなAPIが備わっているため頑張ればあらゆるフォーマットに対応できるような感じがするけど、冷静に考えて、ドキュメント生成するためにプロジェクトcloneしてきてビルドするより標準で提供されてるHTMLドキュメントパースしたほうが便利なのでは………………

• 結論といたしましては、ふつうにHTMLをがんばってスクレイピングしてます!!!!!!!!!!!!!!!!

• 旧形式(Java6)のHTMLはあまりにクソなのでスクレイピングに挫折しました。古いライブラリを使うな。