Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Nyandoc: Scaladoc/Javadoc to markdown converter

9,578 views

Published on

<marquee>

Published in: Technology
  • Be the first to comment

Nyandoc: Scaladoc/Javadoc to markdown converter

  1. 1. Java/ScalaのAPIドキュメントを 閲覧したい。もちろんVimでだ。ブラ ウザがないと閲覧できないドキュメン トはアクセシビリティに深刻な問題が あり、今すぐに是正されるべきである。 (;́Д`)@todesking
  2. 2. そういった機構はなかったので 作りました+デモ ### `def toSet[B >: A]: immutable.Set[B]` ! Converts this traversable or iterator to a set.! ! Note: will not terminate for infinite-sized collectio ! * returns! * a set containing all elements of this traversable ! * Definition Classes! * TraversableOnce ! GenTraversableOnce! ! (defined at scala.collection.TraversableOnce)!
  3. 3. というわけで、Javadoc/Scaladocを Markdown形式に変換するものを作りました 便利
  4. 4. インストール • Conscriptというパッケージツールを使っているので最初 にそれを導入する(github/n8han/conscript)、そして $ cs todesking/nyandoc • だるい人はプロジェクト(github/todesking/nyandoc) をcloneしてきて sbt run してください
  5. 5. 使い方 • $ nyandoc <src> <dest-dir> • src: 元になるドキュメントの場所 • jar/html/zip対応 • dest-dir: 出力先 • 出力フォーマットはmarkdownのみです • なぜならそれ以外必要としていないから……
  6. 6. アドバンスド使い方ビム • unite.vim • unite-tag • unite-outline.vim • :Unite file_rec:~/.nyandoc • :Unite outline • :Unite tag
  7. 7. ctagsを使う readme参照
  8. 8. Scalaドキュメント 生成のしくみ • scaladocにはdocletというプラグイン機構があり、HTML 以外の出力形式にも対応しています。sbtから使うときに外部jar のdocletを参照しようとするとクラスローダの都合上動かない のでsbtプラグイン作りました(todesking/sbt-custom- doclet)。それはそうとdocletのAPIがHTML生成に最適化さ れており、これを他フォーマットに対応するのは事実上無理なの では………… • あと誰もdoclet使った形跡がねえ!!!!!!!!!!!!! プラグイン機構作っただけっぽい!!!!!!!!!!! • 結論といたしましては、ふつうにHTMLをがんばってスクレイ ピングしてます!!!!!!!!!!!!!!!!
  9. 9. Javaドキュメント 生成のしくみ • JavadocにはDocletというプラグイン機構があり、これ はScaladocよりはまともなAPIが備わっているため頑張れ ばあらゆるフォーマットに対応できるような感じがするけど、 冷静に考えて、ドキュメント生成するためにプロジェクト cloneしてきてビルドするより標準で提供されてるHTML ドキュメントパースしたほうが便利なのでは……………… • 結論といたしましては、ふつうにHTMLをがんばってスクレ イピングしてます!!!!!!!!!!!!!!!! • 旧形式(Java6)のHTMLはあまりにクソなのでスクレイピ ングに挫折しました。古いライブラリを使うな。

×