>>Top Page >>techblog

サイトのルートから親ページまでのナビゲーションを書いてみた

written by a2c_s on 2016-03-02

Lektorのプラグイン機能を使ってウェブサイトのルートから親ページまでのナビゲーションを書いてみた。

とりあえずソースコードは以下のような感じ

まだAlternativeが上手く扱えないとか問題がいっぱい。

# -*- coding: utf-8 -*-
from urlparse import urljoin
import urllib

from lektor.pluginsystem import Plugin
from furl import furl


class RootRelativePathPlugin(Plugin):
    name = u'root-relative-path'
    description = u'Returns root relative path'

    def on_setup_env(self, **extra):
        def root_relative_path_list(url):
            if url == '/':
                return []
            lis = furl(url).path.segments
            url='/'
            name='Top Page'
            root_relative_path_lis = [(url, name)]
            for i in lis:
                url = urllib.quote(urljoin(url, '%s' % i))
                name = i
                root_relative_path_lis.append((url, name))
                url = url + '/'

            return root_relative_path_lis[:-1]
        self.env.jinja_env.filters['root_relative_path_list'] = root_relative_path_list
© Copyright 2016 by a2c_s.