Lektorについてのお勉強、第2回。前回はとりあえず動かすってことをやってみました。(前回記事: Lektorを使ってみる)
今回はフォルダーとかファイル構成とか調べてみたのをメモ書き程度にまとめておきます。(あとで自分がみてわかるように)
基本的に内容は公式サイトの[Project -> Folder Structure]と [Project -> Project File]の内容です。英語がむっちゃ苦手なんで、意味がおかしいところなどあったらコメントかTwitter@takunokkoあたりででご指摘いただけると嬉しいです。
Folder Structure(フォルダー構成)
プロジェクトを作る時にデータのファイル構成を理解することは重要。うんぬんかんぬん。。
ベーシックレイアウトはこんな感じになってる:
yourproject.lektorproject content/ models/ templates/ assets/
これ以外にもちょっとプラグイン追加したりするともうちょいフォルダあるよ。
Project File
プロジェクトの主要な構成をうんぬん。詳しくはProject Fileを参照
Folders
content/
コンテンツフォルダはフォルダ名contentで最終的なプロジェクトに含まれるソースとか全部入ってる。
それぞれのフォルダにはcontent.lrとその他リソースを入れる。ファイル構成例は以下のような感じ:
content/ contents.lr projects/ contents.lr project-a/ contents.lr thumbnail.png project-b/ contents.lr thumbnail.png project-c/ contents.lr thumbnail.png
contentフォルダの詳細はContentのドキュメントを参照。(ブログに書いてないんで公式サイトのContentページ)
models/
lektorをパワルフに作るパンとバターです。(…難しいセンスだ)
contentフォルダのデータがどのように処理されるかを正確に定義する。modelsフォルダにはそぞれのモデルに対応するINIファイルが含まれる。
詳しくはData Modellingのドキュメントを参照。(これもブログに書いてないんで公式サイトのData Modellingページ。
templates/
各モデルに対応する.htmlファイルを置く。モデル名と同じ(.html)ファイルを置く。
assets/
このフォルダに置いたファイルは最終的な出力にそのままコピーされる。cssファイルを置くならここ。
その他にもwebサイトに置くfaviconとか.htaccessとかを置いておく。
flowblocks/
いまいちわからないですm(_ _)m
packages/
プラグインを開発する時にプラグインを設置するフォルダ。
ここに入れてあるプラグインは自動的に有効化されるとか。。。
configs/
<プラグインID>.iniの形式のプラグイン固有のファイルが置かれるとか。
databags/
よくわからないですが、多分高度な使い方をするのに必要なものをいれるフォルダ。
外部からアクセスできるので、テンプレートディレクトリを入れないほうがいいかもしれない?
Project File(プロジェクトファイル)
.lektorprojectの拡張子のファイルのこと。プロジェクトの主要な構成がかいてあるファイル。プロジェクトのファイルはINIファイル(文字コードはutf-8)で最低限、プロジェクト名が必要。
とりあえずファイル名はなんでもいいけど.lektorprojectの拡張子があるところがLektorプロジェクトのルートフォルダになる。
構成
[project]
プロジェクトに関する基本的な制御を書く
- name
プロジェクト名。管理者パネルの表示とかに使われる - locale
Webサイトのデフォルトのロケール。en_USがデフォになってる。日本語ならja_JPとかにすればいいのかな。 - url
webサイトのURL。external URLを作る際に利用する値。設定しなくても大丈夫だけど、フルのURLを使うような時に仕様違反になる。(うまくURLが作成できない) - url_style
生成されるURLの参照スタイルを制御する。- relative : 現在のページに相対的
- absolute : ルートページに対して絶対的
- external : 外部のURL(http://からみたいな)が生成される
- path
よくわからないけど、バージョン管理したりする時に邪魔なファイルをディレクトリ外の他の場所において、それを参照させたいみたいな時に使うのかな。 - excluded_assets
Webページを生成する際?に扱いたくないファイルをUnix shell形式で指定する。
デフォでは”_”と”.”で始まるファイルが除外されてるとか。 - included_assets
excluded_assetsとは逆に必要なファイルを書く。
例:
[project] name = My Website url = https://www.mywebsite.invalid/ locale = de_DE excluded_assets = *.backup, *~ included_assets = _special_file
[packages]
パッケージ名 = バージョン
のような感じに指定する。
[servers.*]
デプロイとかの機能を使う時に指定するのかな。
[alternatives.*]
別のサーバー?同じ内容で別のページを公開したい。みたいな時に使う?
別言語のページを作る時に使うみたい。
まとめ
正直、全く説明になってない気がする…。それでもこのブログを書きながら公式サイトを読んでたら理解が深まった気がする。
公式サイトのドキュメント(English)を読んだほうがいいと思いますw