diff options
author | Yoshiki Shibukawa <shibukawa.yoshiki@dena.jp> | 2016-08-19 17:16:12 +0900 |
---|---|---|
committer | Yoshiki Shibukawa <shibukawa.yoshiki@dena.jp> | 2016-08-20 22:27:13 +0900 |
commit | 16b99532ca03bfbcce4e39d04d08cbfb9e8f1323 (patch) | |
tree | 9facc7f9dd00558f0bc2c05f04f3af168812908e /sphinx/jinja2glue.py | |
parent | cbb4266b198490cbebffdf104e5127118bda29b5 (diff) | |
download | sphinx-git-16b99532ca03bfbcce4e39d04d08cbfb9e8f1323.tar.gz |
flatten genindex columns' height
Diffstat (limited to 'sphinx/jinja2glue.py')
-rw-r--r-- | sphinx/jinja2glue.py | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/sphinx/jinja2glue.py b/sphinx/jinja2glue.py index f3ce87a8c..df1aa490c 100644 --- a/sphinx/jinja2glue.py +++ b/sphinx/jinja2glue.py @@ -35,6 +35,27 @@ def _toint(val): return 0 +def _slice_index(values, slices): + seq = list(values) + length = 0 + for value in values: + length += 1 + len(value[1][1]) # count includes subitems + items_per_slice = length // slices + offset = 0 + for slice_number in range(slices): + count = 0 + start = offset + if slices == slice_number + 1: # last column + offset = len(seq) + else: + for value in values[offset:]: + count += 1 + len(value[1][1]) + offset += 1 + if count >= items_per_slice: + break + yield seq[start:offset] + + def accesskey(context, key): """Helper to output each access key only once.""" if '_accesskeys' not in context: @@ -127,6 +148,7 @@ class BuiltinTemplateLoader(TemplateBridge, BaseLoader): extensions=extensions) self.environment.filters['tobool'] = _tobool self.environment.filters['toint'] = _toint + self.environment.filters['slice_index'] = _slice_index self.environment.globals['debug'] = contextfunction(pformat) self.environment.globals['accesskey'] = contextfunction(accesskey) self.environment.globals['idgen'] = idgen |