summaryrefslogtreecommitdiff
path: root/sphinx/writers/websupport.py
diff options
context:
space:
mode:
authorjacob <jacob@panda>2010-05-31 17:12:32 -0500
committerjacob <jacob@panda>2010-05-31 17:12:32 -0500
commit9e81b8f003f0b0d055189367c1a701048796644a (patch)
tree993470c7ee6af93861082f8d6b1e7c6ca67883f9 /sphinx/writers/websupport.py
parent777386ef566a88246f6c4cadeba88fc79cc71d56 (diff)
downloadsphinx-git-9e81b8f003f0b0d055189367c1a701048796644a.tar.gz
Slice at bullet_list, desc, or paragraph now.
Diffstat (limited to 'sphinx/writers/websupport.py')
-rw-r--r--sphinx/writers/websupport.py47
1 files changed, 32 insertions, 15 deletions
diff --git a/sphinx/writers/websupport.py b/sphinx/writers/websupport.py
index e712b1339..a1e59788c 100644
--- a/sphinx/writers/websupport.py
+++ b/sphinx/writers/websupport.py
@@ -16,29 +16,46 @@ class WebSupportTranslator(HTMLTranslator):
"""
Our custom HTML translator.
"""
+ commentable_nodes = ['bullet_list', 'paragraph', 'desc']
+
def __init__(self, builder, *args, **kwargs):
HTMLTranslator.__init__(self, builder, *args, **kwargs)
self.init_support()
def init_support(self):
self.support_document = Document()
+ self.in_commentable = False
self.current_id = 0
+ def dispatch_visit(self, node):
+ if node.__class__.__name__ in self.commentable_nodes:
+ self.handle_visit_commentable(node)
+ HTMLTranslator.dispatch_visit(self, node)
+
+ def dispatch_departure(self, node):
+ HTMLTranslator.dispatch_departure(self, node)
+ if node.__class__.__name__ in self.commentable_nodes:
+ self.handle_depart_commentable(node)
+
def handle_visit_commentable(self, node):
- self.support_document.add_slice(''.join(self.body))
- self.body = []
+ # If we are already recording a commentable slice we don't do
+ # anything. We can't handle nesting.
+ if not self.in_commentable:
+ self.support_document.add_slice(''.join(self.body))
+ node.commented = self.in_commentable = True
+ self.body = []
+ else:
+ node.commented = False
def handle_depart_commentable(self, node):
- slice_id = '%s-%s' % (self.builder.docname, self.current_id)
- self.support_document.add_slice(''.join(self.body),
- slice_id, commentable=True)
- self.body = []
- self.current_id += 1
-
- def visit_paragraph(self, node):
- HTMLTranslator.visit_paragraph(self, node)
- self.handle_visit_commentable(node)
-
- def depart_paragraph(self, node):
- HTMLTranslator.depart_paragraph(self, node)
- self.handle_depart_commentable(node)
+ assert(self.in_commentable)
+ if node.commented:
+ slice_id = '%s-%s' % (self.builder.docname, self.current_id)
+ self.current_id += 1
+
+ body = ''.join(self.body)
+ self.support_document.add_slice(body, slice_id, commentable=True)
+
+ self.in_commentable = False
+ self.body = []
+