diff options
| author | Michael Williamson <mike@zwobble.org> | 2015-01-25 17:06:54 +0000 |
|---|---|---|
| committer | Michael Williamson <mike@zwobble.org> | 2015-01-25 17:06:54 +0000 |
| commit | 1483a864719cedabc0d6c6bcd98e0b2d9d3ce0c1 (patch) | |
| tree | 8f5db7dde7d0f1952890f5ba97af7c958c212d13 /mammoth/conversion.py | |
| parent | abdcd67365d663c878fd370cb97e77ce74c2b1a7 (diff) | |
Use prefix to generate IDs
Diffstat (limited to 'mammoth/conversion.py')
| -rw-r--r-- | mammoth/conversion.py | 29 |
1 files changed, 15 insertions, 14 deletions
diff --git a/mammoth/conversion.py b/mammoth/conversion.py index 6ef13c8..0eb3ccc 100644 --- a/mammoth/conversion.py +++ b/mammoth/conversion.py @@ -12,29 +12,29 @@ def convert_document_element_to_html(element, style_map=None, convert_image=None, convert_underline=None, - generate_uniquifier=None): + id_prefix=None): if style_map is None: style_map = [] - if generate_uniquifier is None: - generate_uniquifier = lambda: random.randint(0, 1000000000000000) + if id_prefix is None: + id_prefix = str(random.randint(0, 1000000000000000)) html_generator = HtmlGenerator() converter = DocumentConverter(style_map, convert_image=convert_image, convert_underline=convert_underline, - generate_uniquifier=generate_uniquifier) + id_prefix=id_prefix) converter.convert_element_to_html(element, html_generator,) html_generator.end_all() return results.Result(html_generator.html_string(), converter.messages) class DocumentConverter(object): - def __init__(self, style_map, convert_image, convert_underline, generate_uniquifier): + def __init__(self, style_map, convert_image, convert_underline, id_prefix): self.messages = [] self._style_map = style_map - self._uniquifier = generate_uniquifier() + self._id_prefix = id_prefix self._note_references = [] self._converters = { documents.Document: self._convert_document, @@ -147,11 +147,10 @@ class DocumentConverter(object): } def _convert_note_reference(self, note_reference, html_generator): - uid = self._note_uid(note_reference.note_id) html_generator.start("sup") html_generator.start("a", { - "href": "#{0}-{1}".format(note_reference.note_type, uid), - "id": "{0}-ref-{1}".format(note_reference.note_type, uid), + "href": "#" + self._note_html_id(note_reference), + "id": self._note_ref_html_id(note_reference), }) self._note_references.append(note_reference); note_number = len(self._note_references) @@ -160,12 +159,11 @@ class DocumentConverter(object): html_generator.end() def _convert_note(self, note, html_generator): - uid = self._note_uid(note.id) - html_generator.start("li", {"id": "{0}-{1}".format(note.note_type, uid)}) + html_generator.start("li", {"id": self._note_html_id(note)}) note_generator = HtmlGenerator() self._convert_elements_to_html(note.body, note_generator) note_generator.text(" ") - note_generator.start("a", {"href": "#{0}-ref-{1}".format(note.note_type, uid)}) + note_generator.start("a", {"href": "#" + self._note_ref_html_id(note)}) note_generator.text(_up_arrow) note_generator.end_all() html_generator.append(note_generator) @@ -200,8 +198,11 @@ class DocumentConverter(object): return default - def _note_uid(self, note_id): - return "{0}-{1}".format(self._uniquifier, note_id) + def _note_html_id(self, note): + return "{0}-{1}-{2}".format(self._id_prefix, note.note_type, note.note_id) + + def _note_ref_html_id(self, note): + return "{0}-{1}-ref-{2}".format(self._id_prefix, note.note_type, note.note_id) def _document_matcher_matches(matcher, element, element_type): |
