Skip to content

Instantly share code, notes, and snippets.

@shimizukawa
Last active February 11, 2023 07:32
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save shimizukawa/2927d6ef049fe39fc3c4 to your computer and use it in GitHub Desktop.
Save shimizukawa/2927d6ef049fe39fc3c4 to your computer and use it in GitHub Desktop.
Sphinx column directive extension コラムディレクティブ拡張 for sphinx-1.5 or earlier. LICENSE: CC BY https://creativecommons.org/licenses/by/3.0/deed
# -- directive/role definition ------------------------------------------------>
from docutils.parsers.rst.directives.admonitions import BaseAdmonition
from docutils import nodes
from sphinx.util.compat import make_admonition
class NamedNoteDirective(BaseAdmonition):
node_class = nodes.admonition
css_class = 'note'
#required_arguments = 1
required_arguments = 0
optional_arguments = 1
def run(self):
title = u''
if self.arguments:
title += self.arguments[0]
if 'class' in self.options:
self.options['class'].append(self.css_class)
else:
self.options['class'] = [self.css_class]
ret = make_admonition(
nodes.admonition, self.name, [title], self.options,
self.content, self.lineno, self.content_offset, self.block_text,
self.state, self.state_machine)
ret[0].attributes['name'] = self.name
return ret
class ColumnDirective(NamedNoteDirective):
css_class = 'column'
def setup(app):
app.add_stylesheet('custom.css')
app.add_directive('column', ColumnDirective)
div.column {
background-color: #eee;
border: 1px solid #ccc;
}
.. reStructuredText sample
Sphinx column directive extension: usage
===================================================
.. column:: this is column title
tihs is column body.
New version for sphinx-1.6 or later is here: https://gist.github.com/shimizukawa/9cd6721cc922776c2167f92d857ea121
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment