@@ -164,6 +164,14 @@ def get_locale():
164164 return locale
165165
166166
167+def get_doi_resolver():
168+ doi_resolvers = settings['doi_resolvers']
169+ doi_resolver = request.args.get('doi_resolver', request.preferences.get_value('doi_resolver'))[0]
170+ if doi_resolver not in doi_resolvers:
171+ doi_resolvers = settings['default_doi_resolver']
172+ return doi_resolver
173+
174+
167175# code-highlighter
168176@app.template_filter('code_highlighter')
169177def code_highlighter(codelines, language=None):
@@ -695,6 +703,8 @@ def preferences():
695703 shortcuts={y: x for x, y in engine_shortcuts.items()},
696704 themes=themes,
697705 plugins=plugins,
706+ doi_resolvers=settings['doi_resolvers'],
707+ current_doi_resolver=get_doi_resolver(),
698708 allowed_plugins=allowed_plugins,
699709 theme=get_current_theme_name(),
700710 preferences_url_params=request.preferences.get_as_url_params(),
@@ -839,7 +849,10 @@ def config():
839849 'autocomplete': settings['search']['autocomplete'],
840850 'safe_search': settings['search']['safe_search'],
841851 'default_theme': settings['ui']['default_theme'],
842− 'version': VERSION_STRING})
852+ 'version': VERSION_STRING,
853+ 'doi_resolvers': [r for r in search['doi_resolvers']],
854+ 'default_doi_resolver': settings['default_doi_resolver'],
855+ })
843856
844857
845858@app.errorhandler(404)