<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>ドキュメント on えやみぐさ</title>
    <link>https://blog.aoirint.com/tags/%E3%83%89%E3%82%AD%E3%83%A5%E3%83%A1%E3%83%B3%E3%83%88/</link>
    <description>Recent content in ドキュメント on えやみぐさ</description>
    <generator>Hugo -- 0.164.0</generator>
    <language>ja</language>
    <lastBuildDate>Tue, 05 Jan 2021 07:40:00 +0900</lastBuildDate>
    <atom:link href="https://blog.aoirint.com/tags/%E3%83%89%E3%82%AD%E3%83%A5%E3%83%A1%E3%83%B3%E3%83%88/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Sphinx</title>
      <link>https://blog.aoirint.com/entry/2021/sphinx/</link>
      <pubDate>Tue, 05 Jan 2021 07:40:00 +0900</pubDate>
      <guid>https://blog.aoirint.com/entry/2021/sphinx/</guid>
      <description>&lt;p&gt;Python製のドキュメント生成ツール。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Python 3.8.5&lt;/li&gt;
&lt;li&gt;Sphinx 3.4.2
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://pypi.org/project/Sphinx/&#34;&gt;Sphinx · PyPI&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;pip3 install Sphinx
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id=&#34;restrestructuredtext&#34;&gt;reST（reStructuredText）&lt;/h2&gt;
&lt;p&gt;SphinxではデフォルトでreStructuredTextというマークアップ言語を使う。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://www.sphinx-doc.org/ja/master/usage/restructuredtext/basics.html&#34;&gt;https://www.sphinx-doc.org/ja/master/usage/restructuredtext/basics.html&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://atom.io/packages/language-restructuredtext&#34;&gt;https://atom.io/packages/language-restructuredtext&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;既存pythonプロジェクトにドキュメントを追加する&#34;&gt;既存Pythonプロジェクトにドキュメントを追加する&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;setup.py&lt;/code&gt; などが存在するPyPIパッケージプロジェクトを想定する。&lt;/p&gt;
&lt;p&gt;プロジェクトのルートに &lt;code&gt;docs&lt;/code&gt; ディレクトリを作成し、
インタラクティブツール &lt;code&gt;sphinx-quickstart&lt;/code&gt; を実行する。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;mkdir docs
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;cd docs/
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;sphinx-quickstart
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;code&gt;Separate source and build directories (y/n)&lt;/code&gt; と聞かれるので、 &lt;code&gt;y&lt;/code&gt; 。
プロジェクト名、著者名、言語などを答える。&lt;/p&gt;
&lt;p&gt;&lt;code&gt;source&lt;/code&gt; ディレクトリ、 &lt;code&gt;build&lt;/code&gt; ディレクトリ、 &lt;code&gt;Makefile&lt;/code&gt; が生成される。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;make html
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;以上のコマンドで &lt;code&gt;build/html&lt;/code&gt; ディレクトリにHTMLが生成される。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;python3 -m http.server -b localhost -d build/html
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;などで確認する。&lt;/p&gt;
&lt;p&gt;次はPythonモジュールのdocstringからドキュメントを自動生成する。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://qiita.com/some-nyan/items/1980198a05c12d90e5c3&#34;&gt;Sphinx でPythonのAPIドキュメントを自動作成 - Qiita&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://qiita.com/hatsumi3/items/11c5bc835efe713e4767&#34;&gt;python書くなら絶対に使いたい2つのドキュメント生成ツール - Qiita&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;#!/bin/bash
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;SCRIPT_DIR&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;$(&lt;/span&gt;cd &lt;span style=&#34;color:#66d9ef&#34;&gt;$(&lt;/span&gt;dirname $0&lt;span style=&#34;color:#66d9ef&#34;&gt;)&lt;/span&gt;; pwd&lt;span style=&#34;color:#66d9ef&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;cd &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;${&lt;/span&gt;SCRIPT_DIR&lt;span style=&#34;color:#e6db74&#34;&gt;}&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;sphinx-apidoc -f -o &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;./source/api&amp;#34;&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;../mymodule&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;make html
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;code&gt;docs/mkdocs.sh&lt;/code&gt; を以上のように作成し、実行する（TODO：Makefileへの入れ込み）。
ここでは、以下のように &lt;code&gt;docs&lt;/code&gt; ディレクトリと並んで、パッケージとして提供するPythonモジュール &lt;code&gt;mymodule&lt;/code&gt; のディレクトリがあることを想定している。
なお、 &lt;code&gt;docs/source/conf.py&lt;/code&gt; は設定ファイルであり、
例えば &lt;code&gt;html_theme = &#39;sphinx_rtd_theme&#39;&lt;/code&gt; のような設定を追加し、
&lt;code&gt;pip3 install sphinx-rtd-theme&lt;/code&gt; してから &lt;code&gt;make html&lt;/code&gt; することで、Read the Docsスタイルのドキュメントを生成できる。&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
