Skip to content

Instantly share code, notes, and snippets.

View tk0miya's full-sized avatar

Takeshi KOMIYA tk0miya

View GitHub Profile
@tk0miya
tk0miya / ext.py
Last active December 22, 2019 07:41
# extension testbed
# autodoc_typehints_docinfo -- typehint をいい感じに表示する拡張
#
# * 型情報は typehint を書いておいてね
# * conf.py で autodoc_typehints = 'docinfo' と設定する
from docutils import nodes
from sphinx import addnodes
from sphinx.util.docfields import DocFieldTransformer
from sphinx.util.inspect import Signature
# extension testbed
# Description: ``:index:`` ロールのタイトルを強調表示する
from docutils import nodes
from sphinx import addnodes
from sphinx.transforms import SphinxTransform
class IndexStyleTransform(SphinxTransform):
default_priority = 200

Sphinx でも絵文字を使ってみたい

github っぽく emoji を使ってみたいので、 GitHub の emoji ライブラリ gemoji から絵文字の定義リストを拝借して Sphinx に突っ込んで見るテスト。substitution 文法を拝借したので |+1| とすると絵文字が出ます。

Unicode の文字をそのまま埋め込んでいるので、PDF 出力する場合は Unicode 対応の LaTeX エンジンといい感じのフォントを使ってください。 つまり、デフォルトでは動作しません。

使い方

image: tk0miya/sphinx-pdf
pages:
script:
- kanji-config-updmap-sys ipaex
- make epub html latexpdf
- mkdir build/html/files
- mv build/latex/docutils.pdf build/html/files/mastering_docutils-v1.0.pdf
- mv build/epub/docutils.epub build/html/files/mastering_docutils-v1.0.epub
- mv build/html/ docutils
- zip -r docutils.zip docutils/
# extension testbed
"""
autodoc でサブクラスを表示してみる。
"""
from docutils import nodes
from sphinx import addnodes
from sphinx.transforms import SphinxTransform
まだお酒が残っているので gist に下書き。そのうち昇華してブログにでもするのではないだろうか。
技術書典7 で『Inside Sphinx』を頒布しているとき、お客さんから質問をひとつもらった。
質問の内容は極めてシンプルで、「本文中のある要素をクリックするごとに表示/非表示を切り替えるにはどうするとよいか」というものであった。
その場ではいいアイディアが出てこなかったため、CSS + JS で解決するとよいのではと答えたのだけど、
よくよく考えてみるとこれは HTML5 で導入された `<details>` タグの挙動そのものなのであった。
さて、期待されるアウトプットが整理できたところで、この課題を解決するにはどういうアプローチがよいだろうか。
ぱっと思い浮かぶ選択肢はいくつかある。どういうものが思いつくだろうか。そして、どれを選ぶべきだろう。
@tk0miya
tk0miya / ext.py
Created September 22, 2019 07:02
# extension testbed
from docutils import nodes
from docutils.parsers.rst import Directive
from sphinx.transforms.post_transforms import SphinxPostTransform
from sphinx.util.nodes import NodeMatcher
class details(nodes.Element, nodes.General):
# extension testbed
from datetime import datetime, timedelta
from itertools import islice
from operator import itemgetter
from typing import Dict, List
from sphinx.domains import Domain
from sphinx.util import logging

paragraph continuation in deep indented list and paragraph

   - a
    continuation line
   - b
    - shallow indented by baseline of list item
   - d
 - indented as same as list item
@tk0miya
tk0miya / README.md
Last active November 26, 2021 05:41

simple table

| hello | world |
| ----- | ----- |
| hello | world |
| hello | world |

| hello | world |