20
17

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

SphinxでのDocumentの作り方メモ

Last updated at Posted at 2018-09-28

はじめに

最近Documentを作成してみようみたいな話があったのでそれ勉強メモです
ドキュメントは,共同でコードを書く時,それを引き継ぐとき等々,自分で書いていてもコードを忘れてしまうかなと思うので,ほかの人がみても,あとから見ても,分かりやすくまとめておくことに役立ちます

参考

これだけで作成まではたどり着けると思いますが正直rstとかいろいろ始めてだったのでその話もまとめます
ちなみに今回使うのはSphinxというツール

sphinx

これはpython製のドキュメント生成ツールになりますと書かれています
rstでドキュメントを作れると書いてあります

いやいやrstってなんですか

というわけです

rstは
reStructuredText記法です

大体こんな感じでいつも書かれます


===========================
Utilities related to math
===========================

Func_math
=======================

.. automodule:: utils.func_math
   :members:

これは,
http://d.hatena.ne.jp/kk_Ataka/20111202/1322839748
このあたりを参考にしていただければよいと思います

基本的にはmarkdownと似た形で書けることが知られています

つまり,rst記法で書かれたものを使って,sphinxで読み込むイメージですね

sphinx-quickstart

参考の記事でも書かれていましたが,これを行うと

  • conf.py
  • make.bat
  • Makefile
  • その他もろもろ

ができます
ここも疑問に思ったので書いておきます

conf.py

conf.pyはconfigurationファイルのことです
sphinxでドキュメントを作成するときの中身の設定をしてくれています

中をみると英語ではありますが,説明をしてくれています
困ったらconf.pyの中を見てみてください


html_theme = 'default'

これはよく使います
テーマを変えられるので

extentionの部分もよく使用されるみたいですね
拡張機能を追加する場合はここに


# Add any Sphinx extension module names here, as strings. They can be
# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom
# ones.
extensions = [

]

数式とかの拡張,コードをハイライトしてくれる等々
さまざまな機能がありそうです
http://www.sphinx-doc.org/ja/stable/extensions.html

extしといた方がいいのは

'sphinx.ext.autodoc'

このあたりかと
これは,
http://sphinx.shibu.jp/ext/autodoc.html
にかいてあるように
コメントアウトをうまく行っておくと,関数等を勝手にdoc化してくれるという優れもの

なんかなしにしてもbuild通ったのでよくわかりませんがあったほうがいいと思います 後日確認します

また,githubpagesとの連携もできます
githubpagesの作り方は以下のサイトとかみてみました

extは


'sphinx.ext.githubpages'

言えるのはこの辺をいろいろいじれば,ドキュメントの形等々変えることができるということです

makefile系

非常に無知だったので,書くのも恥ずかしいですが
makefileとMakefileはwindows用,LINUX用にそれぞれ書かれているものです
実行用ファイルですね!!
この中にを見てみると

# Minimal makefile for Sphinx documentation
#

# You can set these variables from the command line.
SPHINXOPTS    =
SPHINXBUILD   = sphinx-build
SPHINXPROJ    = Utils # プロジェクト名
SOURCEDIR     = . # rstが置いてある場所
BUILDDIR      = build # 作る場所

# Put it first so that "make" without argument is like "make help".
help:
	@$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)

.PHONY: help Makefile

# Catch-all target: route all unknown targets to Sphinx using the new
# "make mode" option.  $(O) is meant as a shortcut for $(SPHINXOPTS).
%: Makefile
	@$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)

こんなんなってます
よくわかりません

たぶんSP..あたりをいじる場合はいじればよいと思います

make htmlする

さきほどの

sphinx-quickstart

ではhtmlを作成できていないので
上記の設定をもろもろやります

そのあとに
例えばこのような形でmoduleを作成したとします


├── LICENSE
├── Makefile
├── README.md
├── docs
│   ├── Makefile
│   ├── conf.py
│   ├── index.rst
│   ├── func_math.rst
│   └── make.bat
├── utils
│   ├── __init__.py
│   └── func_math.py
├── setup.py
└── tests
    ├── __init__.py

ここで
func_mathというmoduleを作成しています

func_mathの中身の一部はこんなん

# -*- coding: utf-8 -*-

import math
import numpy as np

def rad_to_deg(rad_angle):
    """
    Translate rad to deg

    Parameters
    -------
    angle : float or numpy.ndarray [rad]
    
    Returns
    -------
    deg_angle : float or numpy.ndarray [deg]
    """

    deg_angle = 180.0 * rad_angle / math.pi

    return deg_angle

これで関数を作成しています
rad_to_degというラジアンから角度への変換といういたって簡単なものです

ここでのポイントは
コメントの書き方

このようにかくことで先ほどいっていた
automoduleが使えます

ちなみにdocStringというそうです

参考はこの辺

func_math.rstを作成します

===========================
Utilities related to math
===========================

Func_math
=======================

.. automodule:: utils.func_math
   :members:

こうしておけば後はうまくいくはずです

make html

とdocsに移動してから打ってみてください

忘れないこと

init.pyをわすれずに...
module化しないと呼んでくれない
conf.py内でpathを追加することを忘れないように

htmlの中身を見てみると

キャプチャ.PNG

こんな感じでできていると思います!!

すごい...

詳しいこととかはまだまだ分かっていないので,また調べたらあげます

20
17
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
20
17

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?