diff options
| author | Roland Meister <roland_meister@arcor.de> | 2013-06-19 21:04:31 +0200 |
|---|---|---|
| committer | Roland Meister <roland_meister@arcor.de> | 2013-06-19 21:04:31 +0200 |
| commit | 4103ddb016532e9bc492ac75978593165378d375 (patch) | |
| tree | 6249e52b937f5710b2d7235db25e52bb45e08d9e /sphinx/builders | |
| parent | 98d6e9a246035d71aa06da176f13c28bb6b649a6 (diff) | |
| parent | 34b74095fb6a04c04d9a598f85a96eadc994931c (diff) | |
| download | sphinx-4103ddb016532e9bc492ac75978593165378d375.tar.gz | |
Merged birkenfeld/sphinx into default
Diffstat (limited to 'sphinx/builders')
| -rw-r--r-- | sphinx/builders/__init__.py | 3 | ||||
| -rw-r--r-- | sphinx/builders/epub.py | 17 |
2 files changed, 15 insertions, 5 deletions
diff --git a/sphinx/builders/__init__.py b/sphinx/builders/__init__.py index 3ff5a161..41824361 100644 --- a/sphinx/builders/__init__.py +++ b/sphinx/builders/__init__.py @@ -58,6 +58,9 @@ class Builder(object): self.config = app.config self.tags = app.tags self.tags.add(self.format) + self.tags.add(self.name) + self.tags.add("format_%s" % self.format) + self.tags.add("builder_%s" % self.name) # images that need to be copied over (source -> dest) self.images = {} diff --git a/sphinx/builders/epub.py b/sphinx/builders/epub.py index 2ddaf5c9..035cec6c 100644 --- a/sphinx/builders/epub.py +++ b/sphinx/builders/epub.py @@ -140,7 +140,7 @@ _css_link_target_class = u'link-target' # XXX These strings should be localized according to epub_language _guide_titles = { 'toc': u'Table of Contents', - 'cover': u'Cover Page' + 'cover': u'Cover' } _media_types = { @@ -188,14 +188,20 @@ class EpubBuilder(StandaloneHTMLBuilder): # the output files for epub must be .html only self.out_suffix = '.html' self.playorder = 0 + self.tocid = 0 def get_theme_config(self): return self.config.epub_theme, self.config.epub_theme_options # generic support functions - def make_id(self, name): - """Replace all characters not allowed for (X)HTML ids.""" - return name.replace('/', '_').replace(' ', '') + def make_id(self, name, id_cache={}): + # id_cache is intentionally mutable + """Return a unique id for name.""" + id = id_cache.get(name) + if not id: + id = 'epub-%d' % self.env.new_serialno('epub') + id_cache[name] = id + return id def esc(self, name): """Replace all characters not allowed in text an attribute values.""" @@ -629,8 +635,9 @@ class EpubBuilder(StandaloneHTMLBuilder): # XXX Modifies the node if incr: self.playorder += 1 + self.tocid += 1 node['indent'] = _navpoint_indent * level - node['navpoint'] = self.esc(_navPoint_template % self.playorder) + node['navpoint'] = self.esc(_navPoint_template % self.tocid) node['playorder'] = self.playorder return _navpoint_template % node |
