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
I realized Bitbucket UI is changed to Atlassian common web application UI style.
Long time I didn't use it and I don't know they are acquired by Atlassian. So I surprised.
Fixed 2016-02-03
It should be written as
{% set pages = site.query('./blog', alt=alt).all() %}
But I've written as below
{% set pages = site.query('./blog').all() %}
Still I couldn't find how to refer alternative language (english) blog title from top page.
I written code as below. It listing up blog titles but it is only refer primary language title even if referred from english page.
{% set pages = site.query('./techblog').all() %}
{% for page in pages[0:5] %}
<li>
{{ page.title }}
</li>
{% endif %}
{% endfor %}
Switched to responsive design through Foundation 6 to adapt for multi screen size like PC and mobile phone.
This site is built by static site generator Lektor
It is still young project. First commit is available on the GitHub at Dec 19th 2015. But I impressed its design and philosophy.
I'd like to follow its status and how in this blog in the future, too.
数時間使用して気づいた点いくつか
小さいことだけどSub Pageを作る際に、最初にタイトル入力の画面が出てAdd Sub Pageをしてから初めてSub Pageの編集ができるというのが最初戸惑った。会社で使っているCMSではタイトルと内容の入力が同時にできるので。
Admin のページにサイドバーにSubpagesがあるがParentページが無いのはわかり難い(トップバーからは移動できる)。自分で改善すればいいのだけど。
PageやWikiの中は設定によってマークダウンフォーマットがデフォルトで指定されているのだけど初め何のフォーマットなのかわからずに戸惑った。あとマークダウンフォーマットの説明ページもデフォルトで欲しい。
Lektor のサイト(https://www.getlektor.com/docs/deployment/)では以下のコマンドを記載しているが
lektor build && s3cmd --region=ap-northeast-1 sync "$(lektor project-info --output-path)" "s3://bucketname"
以下のように
lektor build && s3cmd --region=ap-northeast-1 sync "$(lektor project-info --output-path)"/* "s3://bucketname"
として、$(lektor project-info --output-path) の後ろにアスタリスク("*")をつけないとサイトが格納されているディレクトリ自体がアップロードされてしまい思った通りにできなかった。
なおlektor-s3プラグインはregionを指定する方法がわからず使用を断念。
北海道から本州に来てすでに10数年が経つが、本州に来て驚いたことの一つは田舎の意味が北海道と本州では全くちがうということだった。
一言で言うと北海道の田舎は広くて歴史が浅いが本州の田舎は狭くて歴史が深い。
北海道の場合歴史が浅いのでそもそも山奥には集落がなく
山->裾野の森->町or村と自然の境界部
というようになっているのだけど
本州の場合数百年前から山の麓まで山林を利用するために集落ができているので
山->谷間にある山奥の村->川を下ったところにある平野との接続部にある村->街道->大きな街
となっていることに住んでしばらくたってから気がついた。
この違いは大きくて、北海道だと村社会といったときに人数的に付き合いの範囲が狭いことは想像がつくのだけど、空間的に使える範囲が狭いことがどうにも想像できない。
過疎化で消滅間近な集落と聞いたときにも北海道の集落よりもはるかに長い期間の歴史や文化まで消えてしまうことが理解できない