「Sphinxをはじめよう 第二版」が出ます

みなさん、Sphinx 使ってますか? Python や Linux カーネルのドキュメントでご存知の Sphinx の書籍、「Sphinxをはじめよう」が改訂されます。今週末の #技術書典 で僕らが書いた #Sphinxをはじめよう の第二版が発売されます。しかも今回は紙媒体!(電子版…

2016年を振り返る / 2017年の抱負

あけましておめでとうございます。正月なので、毎年恒例の抱負エントリです。 年末にがーっと連続エントリを投稿したのでもう大体振り返り終わったんじゃないのか、とは思うのですが、それはそれ、これはこれということで振り返っていきます。2016年の抱負 …

Sphinx in 2016

昨日は Markdown の 2016年を振り返りましたが、今日は Sphinx の 2016年を振り返りつつ、 2017年の目標を適当に挙げてみようと思います。 2つのメジャーリリースと 13のマイナーリリース 今年は 1.3.4 から 1.5.1 まで、合計で 15のリリースを行いました。 …

Markdown in 2016

Markdown、あなたのすぐとなりに潜む問題 昨日は toc 拡張の話ついでに、現在の Sphinx と markdown を取り巻く環境について愚痴ったわけですが、Markdown 業界は 2016年のこの時期になっても、いまだに共通的な仕様が決まっていません。2004年、John Gruber…

Sphinx から完全に reStructuredText を追い出した話

いくつかの記事で紹介されているとおり、 recommonmark を使うと Sphinx で markdown を使うことができます。 Software Design 2016年4月号 Markdownで始めるSphinx MarkdownでSphinxできるようになったので試してみた(前編) - 意識の高いLISPマシン Markd…

Sphinx コードの半減期と未来予想図

Twitter で流れてきた コードの半減期とテセウスの船 | 開発手法・プロジェクト管理 | POSTD を読んで、興味深かったのでさっそく Sphinx のコードでも実行してみました。その結果がこちらです。 コードの増え方は時期によって波がありますが、やはり Sphinx…

Linux カーネルでの Sphinx 利用法を見てみよう

年末カウントダウン Sphinx 連載、第3弾です。 一切下準備をせずに連載を始めたので、早くも息切れをしています。 だれかと約束をしたわけでもないのに急にアドベントカレンダー的なものを始めるのは、なんだか死に急いでいる気がしてきました。今回は、今年…

Sphinx のメンテナになって一年が経過した話

クリスマスが過ぎてから始まる Sphinx アドベントカレンダーへようこそ (嘘) Sphinx 大型連載第二夜です。タイトルにある通り、Sphinx のメンテナ活動をして一年が過ぎたので、その話をします。 OSS 開発者のひとつのサンプルケースとして、何かの参考になれ…

Sphinx に mypy の type annotation を導入した話

今年はアドベントカレンダーにも参加していないし、こたつに入ってだらだら過ごそうかと思っていたら、なんか書けと煽られました。年末ですね。@tk0miya qiita の記事まだー?— Tetsuya Morimoto (@t2y) 2016年12月25日何を書こうか思考をめぐらした結果、my…

2014-15年を振り返る / 2016年の抱負

あけましておめでとうございます。2年ぶりの抱負エントリです。 去年は正月の時期を逃してしまい、仕方がないから旧正月に書くことにするか!と思っていたら仕事が忙しくて完全にタイミングを逸してしまいました。2014年の抱負 として挙げたのは blockdiag …

tox で環境変数をセットする方法

先日リリースされた tox-2.0.0 から、コマンドを実行する際に環境変数がフィルタされるようになりました。 (new) introduce environment variable isolation: tox now only passes the PATH and PIP_INDEX_URL variable from the tox invocation environment…

古い pip で --use-wheel を指定してパッケージを入れるとコマンドが生成されないことがある件。

古い pip には wheel まわりの扱いに問題があるようで、 --use-wheel オプションを指定してパッケージを入れたときに コマンドが生成されないことがあるようです。具体的には drone.io の環境に入っている pip-1.4.1 では問題が発生しました。 そのため、 pi…

sphinxcontrib-googleanalytics-0.1 と sphinx-1.3 の組み合わせで Sphinx が落ちる件。

表題の組み合わせだと、こんなエラーを吐いて Sphinx さんが死ぬ。 Traceback (most recent call last): File "/Users/tkomiya/work/blockdiag.com/lib/python2.7/site-packages/sphinx/cmdline.py", line 244, in main opts.warningiserror, opts.tags, opt…

rails-erd でいい感じの ER図を出す

諸事情で ER図をとても作りたくなることってよくありますよね。rails で開発しているプロジェクトだと rails-erd というツールを使うと モデル定義から簡単に ER図っぽいものを生成できるのですが、 なにもオプション指定をしないと複雑で読みづらいものがで…

flake8 で coding: utf-8 の有無をチェックする flake8-coding を作った

# -*- coding: utf-8 -*- というファイルエンコーディングを示す magic comment の有無を lint しようと思ったのだけど 調べてみると Jenkins でやる方法ぐらいしか見当たりませんでした。drone.io やら travis ci やらでサクッとチェックできるように flake…

Jenkins + Warnings Plugin + flake8 で静的解析

ざっとググってもそれっぽい記事が見当たらなかったのでメモを残しておきます。 Jenkins の Warnings Plugin で flake8 の静的解析の結果を集計するには次のように設定します。 flake8 用のパーサーを追加する Jenkins の管理 > システム設定 ページの コン…

SphinxCon JP を開催しました

つい先日、SphinxCon JP 2014 が開催されました。 僕は所用があったため、午後の発表と懇親会だけ参加しました。 「Sphinx をはじめよう」というテーマの通り Sphinx 初心者/中級者に向けた発表がメインでしたが、 本家のアップデート報告、事例紹介、拡張、…

Sphinx-1.3 に numfig っぽい機能を付けた話

このブログでは numfig の闇と向き合う の記事から numfig との取っ組み合いをしていましたが、 ひょんなことから Sphinx 本体の改修を手伝うことになり、 つい先日 Assign numbers to figures, tables and code-blocks というプルリクが本体に取り込まれま…

visio2img と sphinxcontrib-visio のメンテナーになりました

少し前、インターン生として @yassu がうちの会社に来ていたので、 その際にドキュメント作成に使うツールを作ってもらいました。visio2img と sphinxcontrib-visio の 2パッケージです。 それぞれ、visio2img は Visio ファイルから画像ファイルを抽出する…

SphinxCon JP を開催することにしました

すでに渋谷では SphinxCon 開催の話題でもちきり状態で、 ご存じない方はもういらっしゃらないとは思いますが、今年も SphinxCon JP 2014 を開催します。今年も SphinxCon JP を開催することになりました!10/26(日)です。発表者、参加者の募集を始めたので…

YAPC::Asia 2014 に行ってきた #yapcasia

相変わらず perl を書いてはいないのだけど、あのお祭り感が大好きなので 今年も YAPC::Asia に行ってきました。帰り際に HUB で飲んでた時にスポンサーの人に煽られたのでなるはやで書いてます。@941 さんにまだブログ書いてない男の人とか…って言われたの…

only ディレクティブの微妙なうごき

only ディレクティブを組み合わせるとあれこれ微妙な挙動が発生するようです。最初は toctree と only ディレクティブの組み合わせについて悩んでいたのですが、 他にも only ディレクティブに関わる動きを @shimizukawa に教えてもらったので 合わせて紹介…

astah の画像を Sphinx に埋め込む拡張を作ってみた: sphinxcontrib-astah

先々週に cacoo の拡張をつくってそのあとパッケージングもしたのですが、 それに味をしめて(?) UML 系のツールとして名高い astah 向けの拡張もつくってみました。 sphinxcontrib-astah です。やっていることは超シンプルで、内部で astah-command.sh を呼…

あなたの知らない toctree の世界

numfig を実装してやらぁ!と息巻いてコードを書き始めたところ、 シンプルだと思っていた toctree の裏に思わぬ魔境が広がっていて 思わず部屋の隅っこで震えてしまった @tk0miya です。Sphinx のリファレンスを舐めるように読み尽くした toctree マニアに…

Cacoo の画像を Sphinx に埋め込む拡張を作ってみた: sphinxcontrib_cacooimage

今日、こんなツイートをみました。@wataradio blockdiagシリーズか、cacooで作った図をpngで利用ですかねー #sphinxjp— Takayuki Shimizukawa (@shimizukawa) 2014, 8月 12Cacoo で更新した図を Sphinx に貼り付けるにはローカルに保存する必要があります。 …

Sphinx ではどのようにラベルとキャプションを結びつけているのか

Sphinx ではラベル記法と :ref: 記法を使って、 ドキュメントの様々な位置にラベルを張り、それを参照することができます。 .. _target: section --------- セクションへの :ref:`参照 <target>` を作ります。 さて、このとき、ラベルを貼っているのがセクションタイ</target>…

Re: numfig の闇と向き合う

numfig の闇を垣間見るのにも飽きてきたので、これまで見た numfig 系拡張の問題をカバーすべく 自分でも numfig 系拡張を書いてみた。 new_numfig.pyざっくり動かしたところ、うまく動いているようにみえる。既存の fignum 系拡張との違いはこんな感じ。 表…

ファイルを超えてリンクを貼る (domain#resolve_xref() のすゝめ)

昨日の記事で、どの拡張も HTML に変換した時に他のページにリンクできないという体たらくなので、 Sphinx においけるリンクの解決方法をまとめておく。 解決方法: domain#resolve_xref() を使う 以上。 見出しで言い切ったのでこれ以上ネタも無いのだが、コ…

numfig の闇と向き合う

前の記事で あとは numfig の応用で自動採番をすることもできるようになるでしょう。 なんてことを書いてみたのだけど、よく考えてみると一度も numfig を使ったことがなかったので これを機に挑戦してみんとてするなり。 numfig をインストールする numfig …

コード片(code-block)にキャプションをつける

rstのファイルでリストに通し番号を入れる(久々にシェル芸) を見て、"code-block にキャプション付けられなかったっけ?" とおもって調べてみたところ、 Sphinx の code-block ディレクティブも docutils の code ディレクティブもどちらもキャプションをサ…