Skip to content
Snippets Groups Projects
Commit 102fde39 authored by boyska's avatar boyska
Browse files

langmenu plugin

parent 1384610f
No related branches found
No related tags found
No related merge requests found
......@@ -48,3 +48,5 @@ THEME = 'themes/bs3'
BOOTSTRAP_THEME = 'cyborg'
HIDE_SIDEBAR = True
PLUGIN_PATHS = ['plugins']
PLUGINS = ['langmenu']
'''
This plugin attemps to create something similar to menuitems,
but more meaningful with respect to l10n
'''
from __future__ import print_function
from pelican import signals
def add_localmenuitems(generator):
menu = {} # lang: list of pages
for page in generator.context['pages']:
menu.setdefault(page.lang, [])
for tr in page.translations:
menu.setdefault(tr.lang, [])
print('we have langs ' + ','.join(menu.keys()))
for page in sorted(generator.context['pages'],
key=lambda x: x.navbar_sort):
defined_langs = []
menu[page.lang].append(page)
defined_langs.append(page.lang)
for tr in page.translations:
menu[tr.lang].append(tr)
defined_langs.append(tr.lang)
for lang in menu.keys():
if lang not in defined_langs:
menu[lang].append(page)
menuitems = {}
for lang in menu:
menuitems[lang] = []
for page in menu[lang]:
menuitems[lang].append((page.title, page.url))
print(menuitems['en'])
print(menuitems['it'])
generator.context['LOCALMENUITEMS'] = menuitems
def register():
signals.page_generator_finalized.connect(add_localmenuitems)
pass
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment