8000 Defined a new Sphinx directive called "best-practice" by javiereguiluz · Pull Request #21 · fabpot/sphinx-php · GitHub
[go: up one dir, main page]

Skip to content
This repository was archived by the owner on Apr 16, 2022. It is now read-only.

Defined a new Sphinx directive called "best-practice" #21

Merged
merged 1 commit into from
Oct 15, 2014
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ You can use the following extensions in your `conf.py` file:
* `sensio.sphinx.refinclude`
* `sensio.sphinx.configurationblock`
* `sensio.sphinx.phpcode`
* `sensio.sphinx.bestpractice`

To enable highlighting for PHP code not between `<?php ... ?>` by default:

Expand Down
41 changes: 41 additions & 0 deletions sensio/sphinx/bestpractice.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
from docutils.parsers.rst import Directive, directives
from docutils import nodes
from string import upper
from sphinx.util.compat import make_admonition
from sphinx import addnodes
from sphinx.locale import _

class bestpractice(nodes.Admonition, nodes.Element):
pass

class BestPractice(Directive):
has_content = True
required_arguments = 0
optional_arguments = 1
final_argum 7148 ent_whitespace = True
option_spec = {}

def run(self):
ret = make_admonition(
bestpractice, self.name, [_('Best Practice')], self.options,
self.content, self.lineno, self.content_offset, self.block_text,
self.state, self.state_machine)
if self.arguments:
argnodes, msgs = self.state.inline_text(self.arguments[0],
self.lineno)
para = nodes.paragraph()
para += argnodes
para += msgs
ret[0].insert(1, para)

return ret

def visit_bestpractice_node(self, node):
self.visit_admonition(node, 'best-practice')

def depart_bestpractice_node(self, node):
self.depart_admonition(node)

def setup(app):
app.add_node(bestpractice, html=(visit_bestpractice_node, depart_bestpractice_node))
app.add_directive('best-practice', BestPractice)
0