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

More Related Content

What's hot

The Next Generation for C# Developers
The Next Generation for C# DevelopersThe Next Generation for C# Developers
The Next Generation for C# Developers
Takayoshi Tanaka
 
Net commons3 開発環境
Net commons3 開発環境Net commons3 開発環境
Net commons3 開発環境Takako Miyagawa
 
ちょっと怖くなくったRails
ちょっと怖くなくったRailsちょっと怖くなくったRails
ちょっと怖くなくったRails
Yutaka Kinjyo
 
20090121 J QueryからはじめるJava Script~初級編~
20090121 J QueryからはじめるJava Script~初級編~20090121 J QueryからはじめるJava Script~初級編~
20090121 J QueryからはじめるJava Script~初級編~Hiromu Shioya
 
Introductionof taskflow
Introductionof taskflowIntroductionof taskflow
Introductionof taskflowharubelle
 
introducing vue-wait-component
introducing vue-wait-componentintroducing vue-wait-component
introducing vue-wait-component
Kenjiro Kubota
 
React Native GUIDE
React Native GUIDEReact Native GUIDE
React Native GUIDE
dcubeio
 
Osaka Venture Meetup #3
Osaka Venture Meetup #3Osaka Venture Meetup #3
Osaka Venture Meetup #3
Kiyotaka Oku
 
Sansan様 登壇資料
Sansan様 登壇資料Sansan様 登壇資料
Sansan様 登壇資料
Daisuke Nagata
 
Rx swift,Repro framewolrk
Rx swift,Repro framewolrkRx swift,Repro framewolrk
Rx swift,Repro framewolrk
Daisuke Nagata
 
CruiseControl.NET設置
CruiseControl.NET設置CruiseControl.NET設置
CruiseControl.NET設置
Kuniaki Igarashi
 

What's hot (11)

The Next Generation for C# Developers
The Next Generation for C# DevelopersThe Next Generation for C# Developers
The Next Generation for C# Developers
 
Net commons3 開発環境
Net commons3 開発環境Net commons3 開発環境
Net commons3 開発環境
 
ちょっと怖くなくったRails
ちょっと怖くなくったRailsちょっと怖くなくったRails
ちょっと怖くなくったRails
 
20090121 J QueryからはじめるJava Script~初級編~
20090121 J QueryからはじめるJava Script~初級編~20090121 J QueryからはじめるJava Script~初級編~
20090121 J QueryからはじめるJava Script~初級編~
 
Introductionof taskflow
Introductionof taskflowIntroductionof taskflow
Introductionof taskflow
 
introducing vue-wait-component
introducing vue-wait-componentintroducing vue-wait-component
introducing vue-wait-component
 
React Native GUIDE
React Native GUIDEReact Native GUIDE
React Native GUIDE
 
Osaka Venture Meetup #3
Osaka Venture Meetup #3Osaka Venture Meetup #3
Osaka Venture Meetup #3
 
Sansan様 登壇資料
Sansan様 登壇資料Sansan様 登壇資料
Sansan様 登壇資料
 
Rx swift,Repro framewolrk
Rx swift,Repro framewolrkRx swift,Repro framewolrk
Rx swift,Repro framewolrk
 
CruiseControl.NET設置
CruiseControl.NET設置CruiseControl.NET設置
CruiseControl.NET設置
 

Viewers also liked

貧者のための入力デバイス
貧者のための入力デバイス貧者のための入力デバイス
貧者のための入力デバイス
tod esking
 
「レガシーコード」とはいったい?
「レガシーコード」とはいったい?「レガシーコード」とはいったい?
「レガシーコード」とはいったい?
Hiroyuki Ohnaka
 
概観テキストマイニング
概観テキストマイニング概観テキストマイニング
概観テキストマイニング
tod esking
 
精神論によるいきいきとした組織づくりのご提案
精神論によるいきいきとした組織づくりのご提案精神論によるいきいきとした組織づくりのご提案
精神論によるいきいきとした組織づくりのご提案
tod esking
 
仕様変更で死なないためのユニットテスト
仕様変更で死なないためのユニットテスト仕様変更で死なないためのユニットテスト
仕様変更で死なないためのユニットテストtod esking
 
レガシーコード改善のススメ
レガシーコード改善のススメレガシーコード改善のススメ
レガシーコード改善のススメ
Akira Hirasawa
 
レガシーコードとの付き合い方とテストでの話
レガシーコードとの付き合い方とテストでの話レガシーコードとの付き合い方とテストでの話
レガシーコードとの付き合い方とテストでの話
H Iseri
 

Viewers also liked (7)

貧者のための入力デバイス
貧者のための入力デバイス貧者のための入力デバイス
貧者のための入力デバイス
 
「レガシーコード」とはいったい?
「レガシーコード」とはいったい?「レガシーコード」とはいったい?
「レガシーコード」とはいったい?
 
概観テキストマイニング
概観テキストマイニング概観テキストマイニング
概観テキストマイニング
 
精神論によるいきいきとした組織づくりのご提案
精神論によるいきいきとした組織づくりのご提案精神論によるいきいきとした組織づくりのご提案
精神論によるいきいきとした組織づくりのご提案
 
仕様変更で死なないためのユニットテスト
仕様変更で死なないためのユニットテスト仕様変更で死なないためのユニットテスト
仕様変更で死なないためのユニットテスト
 
レガシーコード改善のススメ
レガシーコード改善のススメレガシーコード改善のススメ
レガシーコード改善のススメ
 
レガシーコードとの付き合い方とテストでの話
レガシーコードとの付き合い方とテストでの話レガシーコードとの付き合い方とテストでの話
レガシーコードとの付き合い方とテストでの話
 

Similar to Nyandoc: Scaladoc/Javadoc to markdown converter

Skinny Framework 進捗どうですか? #fud_scala
Skinny Framework 進捗どうですか? #fud_scalaSkinny Framework 進捗どうですか? #fud_scala
Skinny Framework 進捗どうですか? #fud_scala
Kazuhiro Sera
 
Beginners Scala in FAN 20121009
Beginners Scala in FAN 20121009Beginners Scala in FAN 20121009
Beginners Scala in FAN 20121009
Taisuke Shiratori
 
Railsの開発環境作るぞ
Railsの開発環境作るぞRailsの開発環境作るぞ
Railsの開発環境作るぞ
Yoichi Toyota
 
Dockerハンズオン
DockerハンズオンDockerハンズオン
DockerハンズオンKazuyuki Mori
 
SDLoader SeasarCon 2009 Whire
SDLoader SeasarCon 2009 WhireSDLoader SeasarCon 2009 Whire
SDLoader SeasarCon 2009 Whire
Akio Katayama
 
Gradle handson
Gradle handsonGradle handson
Gradle handson
Nemoto Yusuke
 
C#実装から見るDDD(ドメイン駆動設計)
C#実装から見るDDD(ドメイン駆動設計)C#実装から見るDDD(ドメイン駆動設計)
C#実装から見るDDD(ドメイン駆動設計)
Takuya Kawabe
 
Couch Db勉強会0623 by yssk22
Couch Db勉強会0623 by yssk22Couch Db勉強会0623 by yssk22
Couch Db勉強会0623 by yssk22
Yohei Sasaki
 
MasterCloud Docker Hands-on 20170725
MasterCloud Docker Hands-on 20170725MasterCloud Docker Hands-on 20170725
MasterCloud Docker Hands-on 20170725
Masafumi Noguchi
 
Akkaの翻訳みんなでやろう Let's translate akka doc
Akkaの翻訳みんなでやろう Let's translate akka docAkkaの翻訳みんなでやろう Let's translate akka doc
Akkaの翻訳みんなでやろう Let's translate akka doc
賢太郎 前多
 
Alibaba Cloud で Docker を動かしてみよう [Hands-on]
Alibaba Cloud で Docker を動かしてみよう [Hands-on]Alibaba Cloud で Docker を動かしてみよう [Hands-on]
Alibaba Cloud で Docker を動かしてみよう [Hands-on]
Masafumi Noguchi
 
ScalaでAndroidアプリ開発
ScalaでAndroidアプリ開発ScalaでAndroidアプリ開発
ScalaでAndroidアプリ開発papamitra
 
Scalaでのプログラム開発
Scalaでのプログラム開発Scalaでのプログラム開発
Scalaでのプログラム開発
Kota Mizushima
 
ECS-CLI in Action
ECS-CLI in ActionECS-CLI in Action
ECS-CLI in Action
Ryo Nakamaru
 
モダンJavaScript入門.pdf
モダンJavaScript入門.pdfモダンJavaScript入門.pdf
モダンJavaScript入門.pdf
omochids0113
 
Xcode4 project template (slide)
Xcode4 project template (slide)Xcode4 project template (slide)
Xcode4 project template (slide)
Wataru Kimura
 
CocoaPoderと賢者の宝石 〜 まだ bundle exec で消耗してるの? 〜
CocoaPoderと賢者の宝石 〜 まだ bundle exec で消耗してるの? 〜CocoaPoderと賢者の宝石 〜 まだ bundle exec で消耗してるの? 〜
CocoaPoderと賢者の宝石 〜 まだ bundle exec で消耗してるの? 〜
niwatako
 
Trait in scala
Trait in scalaTrait in scala
Trait in scala
Yuta Shimakawa
 

Similar to Nyandoc: Scaladoc/Javadoc to markdown converter (20)

Skinny Framework 進捗どうですか? #fud_scala
Skinny Framework 進捗どうですか? #fud_scalaSkinny Framework 進捗どうですか? #fud_scala
Skinny Framework 進捗どうですか? #fud_scala
 
Beginners Scala in FAN 20121009
Beginners Scala in FAN 20121009Beginners Scala in FAN 20121009
Beginners Scala in FAN 20121009
 
Railsの開発環境作るぞ
Railsの開発環境作るぞRailsの開発環境作るぞ
Railsの開発環境作るぞ
 
Dockerハンズオン
DockerハンズオンDockerハンズオン
Dockerハンズオン
 
scala-kaigi1-sbt
scala-kaigi1-sbtscala-kaigi1-sbt
scala-kaigi1-sbt
 
SDLoader SeasarCon 2009 Whire
SDLoader SeasarCon 2009 WhireSDLoader SeasarCon 2009 Whire
SDLoader SeasarCon 2009 Whire
 
Gradle handson
Gradle handsonGradle handson
Gradle handson
 
C#実装から見るDDD(ドメイン駆動設計)
C#実装から見るDDD(ドメイン駆動設計)C#実装から見るDDD(ドメイン駆動設計)
C#実装から見るDDD(ドメイン駆動設計)
 
Couch Db勉強会0623 by yssk22
Couch Db勉強会0623 by yssk22Couch Db勉強会0623 by yssk22
Couch Db勉強会0623 by yssk22
 
MasterCloud Docker Hands-on 20170725
MasterCloud Docker Hands-on 20170725MasterCloud Docker Hands-on 20170725
MasterCloud Docker Hands-on 20170725
 
Akkaの翻訳みんなでやろう Let's translate akka doc
Akkaの翻訳みんなでやろう Let's translate akka docAkkaの翻訳みんなでやろう Let's translate akka doc
Akkaの翻訳みんなでやろう Let's translate akka doc
 
Alibaba Cloud で Docker を動かしてみよう [Hands-on]
Alibaba Cloud で Docker を動かしてみよう [Hands-on]Alibaba Cloud で Docker を動かしてみよう [Hands-on]
Alibaba Cloud で Docker を動かしてみよう [Hands-on]
 
ScalaでAndroidアプリ開発
ScalaでAndroidアプリ開発ScalaでAndroidアプリ開発
ScalaでAndroidアプリ開発
 
Scalaでのプログラム開発
Scalaでのプログラム開発Scalaでのプログラム開発
Scalaでのプログラム開発
 
ECS-CLI in Action
ECS-CLI in ActionECS-CLI in Action
ECS-CLI in Action
 
モダンJavaScript入門.pdf
モダンJavaScript入門.pdfモダンJavaScript入門.pdf
モダンJavaScript入門.pdf
 
Xcode4 project template (slide)
Xcode4 project template (slide)Xcode4 project template (slide)
Xcode4 project template (slide)
 
CocoaPoderと賢者の宝石 〜 まだ bundle exec で消耗してるの? 〜
CocoaPoderと賢者の宝石 〜 まだ bundle exec で消耗してるの? 〜CocoaPoderと賢者の宝石 〜 まだ bundle exec で消耗してるの? 〜
CocoaPoderと賢者の宝石 〜 まだ bundle exec で消耗してるの? 〜
 
ATN No.2 Scala事始め
ATN No.2 Scala事始めATN No.2 Scala事始め
ATN No.2 Scala事始め
 
Trait in scala
Trait in scalaTrait in scala
Trait in scala
 

Recently uploaded

無形価値を守り育てる社会における「デー タ」の責務について - Atlas, Inc.
無形価値を守り育てる社会における「デー タ」の責務について - Atlas, Inc.無形価値を守り育てる社会における「デー タ」の責務について - Atlas, Inc.
無形価値を守り育てる社会における「デー タ」の責務について - Atlas, Inc.
Yuki Miyazaki
 
Humanoid Virtual Athletics Challenge2024 技術講習会 スライド
Humanoid Virtual Athletics Challenge2024 技術講習会 スライドHumanoid Virtual Athletics Challenge2024 技術講習会 スライド
Humanoid Virtual Athletics Challenge2024 技術講習会 スライド
tazaki1
 
生成AIがもたらすコンテンツ経済圏の新時代  The New Era of Content Economy Brought by Generative AI
生成AIがもたらすコンテンツ経済圏の新時代  The New Era of Content Economy Brought by Generative AI生成AIがもたらすコンテンツ経済圏の新時代  The New Era of Content Economy Brought by Generative AI
生成AIがもたらすコンテンツ経済圏の新時代  The New Era of Content Economy Brought by Generative AI
Osaka University
 
ヒアラブルへの入力を想定したユーザ定義型ジェスチャ調査と IMUセンサによる耳タッチジェスチャの認識
ヒアラブルへの入力を想定したユーザ定義型ジェスチャ調査と IMUセンサによる耳タッチジェスチャの認識ヒアラブルへの入力を想定したユーザ定義型ジェスチャ調査と IMUセンサによる耳タッチジェスチャの認識
ヒアラブルへの入力を想定したユーザ定義型ジェスチャ調査と IMUセンサによる耳タッチジェスチャの認識
sugiuralab
 
「進化するアプリ イマ×ミライ ~生成AIアプリへ続く道と新時代のアプリとは~」Interop24Tokyo APPS JAPAN B1-01講演
「進化するアプリ イマ×ミライ ~生成AIアプリへ続く道と新時代のアプリとは~」Interop24Tokyo APPS JAPAN B1-01講演「進化するアプリ イマ×ミライ ~生成AIアプリへ続く道と新時代のアプリとは~」Interop24Tokyo APPS JAPAN B1-01講演
「進化するアプリ イマ×ミライ ~生成AIアプリへ続く道と新時代のアプリとは~」Interop24Tokyo APPS JAPAN B1-01講演
嶋 是一 (Yoshikazu SHIMA)
 
協働AIがもたらす業務効率革命 -日本企業が押さえるべきポイント-Collaborative AI Revolutionizing Busines...
協働AIがもたらす業務効率革命 -日本企業が押さえるべきポイント-Collaborative AI Revolutionizing Busines...協働AIがもたらす業務効率革命 -日本企業が押さえるべきポイント-Collaborative AI Revolutionizing Busines...
協働AIがもたらす業務効率革命 -日本企業が押さえるべきポイント-Collaborative AI Revolutionizing Busines...
Osaka University
 
ハイブリッドクラウド研究会_Hyper-VとSystem Center Virtual Machine Manager セッションMM
ハイブリッドクラウド研究会_Hyper-VとSystem Center Virtual Machine Manager セッションMMハイブリッドクラウド研究会_Hyper-VとSystem Center Virtual Machine Manager セッションMM
ハイブリッドクラウド研究会_Hyper-VとSystem Center Virtual Machine Manager セッションMM
osamut
 
【JSAI2024】LLMエージェントの人間との対話における反芻的返答の親近感向上効果_v1.1.pdf
【JSAI2024】LLMエージェントの人間との対話における反芻的返答の親近感向上効果_v1.1.pdf【JSAI2024】LLMエージェントの人間との対話における反芻的返答の親近感向上効果_v1.1.pdf
【JSAI2024】LLMエージェントの人間との対話における反芻的返答の親近感向上効果_v1.1.pdf
ARISE analytics
 
ロジックから状態を分離する技術/設計ナイト2024 by わいとん @ytnobody
ロジックから状態を分離する技術/設計ナイト2024 by わいとん @ytnobodyロジックから状態を分離する技術/設計ナイト2024 by わいとん @ytnobody
ロジックから状態を分離する技術/設計ナイト2024 by わいとん @ytnobody
azuma satoshi
 

Recently uploaded (9)

無形価値を守り育てる社会における「デー タ」の責務について - Atlas, Inc.
無形価値を守り育てる社会における「デー タ」の責務について - Atlas, Inc.無形価値を守り育てる社会における「デー タ」の責務について - Atlas, Inc.
無形価値を守り育てる社会における「デー タ」の責務について - Atlas, Inc.
 
Humanoid Virtual Athletics Challenge2024 技術講習会 スライド
Humanoid Virtual Athletics Challenge2024 技術講習会 スライドHumanoid Virtual Athletics Challenge2024 技術講習会 スライド
Humanoid Virtual Athletics Challenge2024 技術講習会 スライド
 
生成AIがもたらすコンテンツ経済圏の新時代  The New Era of Content Economy Brought by Generative AI
生成AIがもたらすコンテンツ経済圏の新時代  The New Era of Content Economy Brought by Generative AI生成AIがもたらすコンテンツ経済圏の新時代  The New Era of Content Economy Brought by Generative AI
生成AIがもたらすコンテンツ経済圏の新時代  The New Era of Content Economy Brought by Generative AI
 
ヒアラブルへの入力を想定したユーザ定義型ジェスチャ調査と IMUセンサによる耳タッチジェスチャの認識
ヒアラブルへの入力を想定したユーザ定義型ジェスチャ調査と IMUセンサによる耳タッチジェスチャの認識ヒアラブルへの入力を想定したユーザ定義型ジェスチャ調査と IMUセンサによる耳タッチジェスチャの認識
ヒアラブルへの入力を想定したユーザ定義型ジェスチャ調査と IMUセンサによる耳タッチジェスチャの認識
 
「進化するアプリ イマ×ミライ ~生成AIアプリへ続く道と新時代のアプリとは~」Interop24Tokyo APPS JAPAN B1-01講演
「進化するアプリ イマ×ミライ ~生成AIアプリへ続く道と新時代のアプリとは~」Interop24Tokyo APPS JAPAN B1-01講演「進化するアプリ イマ×ミライ ~生成AIアプリへ続く道と新時代のアプリとは~」Interop24Tokyo APPS JAPAN B1-01講演
「進化するアプリ イマ×ミライ ~生成AIアプリへ続く道と新時代のアプリとは~」Interop24Tokyo APPS JAPAN B1-01講演
 
協働AIがもたらす業務効率革命 -日本企業が押さえるべきポイント-Collaborative AI Revolutionizing Busines...
協働AIがもたらす業務効率革命 -日本企業が押さえるべきポイント-Collaborative AI Revolutionizing Busines...協働AIがもたらす業務効率革命 -日本企業が押さえるべきポイント-Collaborative AI Revolutionizing Busines...
協働AIがもたらす業務効率革命 -日本企業が押さえるべきポイント-Collaborative AI Revolutionizing Busines...
 
ハイブリッドクラウド研究会_Hyper-VとSystem Center Virtual Machine Manager セッションMM
ハイブリッドクラウド研究会_Hyper-VとSystem Center Virtual Machine Manager セッションMMハイブリッドクラウド研究会_Hyper-VとSystem Center Virtual Machine Manager セッションMM
ハイブリッドクラウド研究会_Hyper-VとSystem Center Virtual Machine Manager セッションMM
 
【JSAI2024】LLMエージェントの人間との対話における反芻的返答の親近感向上効果_v1.1.pdf
【JSAI2024】LLMエージェントの人間との対話における反芻的返答の親近感向上効果_v1.1.pdf【JSAI2024】LLMエージェントの人間との対話における反芻的返答の親近感向上効果_v1.1.pdf
【JSAI2024】LLMエージェントの人間との対話における反芻的返答の親近感向上効果_v1.1.pdf
 
ロジックから状態を分離する技術/設計ナイト2024 by わいとん @ytnobody
ロジックから状態を分離する技術/設計ナイト2024 by わいとん @ytnobodyロジックから状態を分離する技術/設計ナイト2024 by わいとん @ytnobody
ロジックから状態を分離する技術/設計ナイト2024 by わいとん @ytnobody
 

Nyandoc: Scaladoc/Javadoc to markdown converter