From af102a2579b42768bfd7eaa19da37925ff5ec536 Mon Sep 17 00:00:00 2001 From: Georg Brandl Date: Tue, 24 Feb 2009 23:38:12 +0100 Subject: [PATCH] Output each accesskey only once, regardless of the number of relbars. --- sphinx/jinja2glue.py | 10 ++++++++++ sphinx/themes/basic/layout.html | 4 ++-- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/sphinx/jinja2glue.py b/sphinx/jinja2glue.py index a7acf33a6..679447a81 100644 --- a/sphinx/jinja2glue.py +++ b/sphinx/jinja2glue.py @@ -26,6 +26,15 @@ def _tobool(val): return val.lower() in ('true', '1', 'yes', 'on') return bool(val) +def accesskey(context, key): + """Helper to output each access key only once.""" + if '_accesskeys' not in context: + context.vars['_accesskeys'] = {} + if key not in context.vars['_accesskeys']: + context.vars['_accesskeys'][key] = 1 + return 'accesskey="%s"' % key + return '' + class BuiltinTemplateLoader(TemplateBridge, BaseLoader): """ @@ -64,6 +73,7 @@ class BuiltinTemplateLoader(TemplateBridge, BaseLoader): extensions=extensions) self.environment.filters['tobool'] = _tobool self.environment.globals['debug'] = contextfunction(pformat) + self.environment.globals['accesskey'] = contextfunction(accesskey) if use_i18n: self.environment.install_gettext_translations(builder.translator) diff --git a/sphinx/themes/basic/layout.html b/sphinx/themes/basic/layout.html index 7a2d5859f..15cb42c9f 100644 --- a/sphinx/themes/basic/layout.html +++ b/sphinx/themes/basic/layout.html @@ -12,14 +12,14 @@ {%- for rellink in rellinks %}
  • {{ rellink[3] }} + {{ accesskey(rellink[2]) }}>{{ rellink[3] }} {%- if not loop.first %}{{ reldelim2 }}{% endif %}
  • {%- endfor %} {%- block rootrellink %}
  • {{ shorttitle|e }}{{ reldelim1 }}
  • {%- endblock %} {%- for parent in parents %} -
  • {{ parent.title }}{{ reldelim1 }}
  • +
  • {{ parent.title }}{{ reldelim1 }}
  • {%- endfor %} {%- block relbaritems %} {% endblock %}