Miyadaiku

オブジェクトリファレンス

コンテントオブジェクト

Miyadaikuで、contents ディレクトリや files ディレクトリのファイルは、コンテントオブジェクトとして読み込まれます。アーティクルやインデックスなどのファイルだけでなく、CSSや画像ファイルなどのMiyadaikuで処理されないファイルも、コンテントオブジェクトとして参照できます。

プロパティ

tagstitle など、コンテントオブジェクトに設定された プロパティ は、コンテントオブジェクトの属性として参照できます。

例: titleプロパティを表示

この文書のタイトルは、:jinja:`{{ content.title}}` です。

コンテンツのプロパティ以外にも、以下の属性を参照できます。

abstract

コンテンツの先頭から、abstract_length で指定した文字数のテキストを取得します。

filename

コンテンツの出力ファイル名(ディレクトリを含まない)を取得します。

headers

コンテンツのヘッダ要素の一覧を、次の NamedTuple で返します。

class HTMLIDInfo(NamedTuple):
    id: str   # ヘッダ部分のid
    tag: str  # ヘッダタグ名 (h1~h6)
    text: str # ヘッダ要素内のテキスト

html

コンテンツのHTMLを取得します。

メソッド

get_abstract(abstract_length=None, plain=False)

コンテンツの先頭から、abstract_length で指定した文字数のテキストを取得します。

abstract_length
取得する文字数を指定します。省略時は、abstract_length プロパティを使用します。
plain
Trueの場合はHTML、Falseの場合は plain text を返します。

現在のページからリンクする要素を返します。

text
リンク文字列を指定します。省略時は、fragment で指定するヘッダ要素のテキスト、またはオブジェクトのタイトルとなります。
fragment
リンク先の要素idを指定します。
abs_path
True の場合、プロトコルから始まる完全なURLを返します。
attrs:
<a>要素の属性を辞書で指定します。e.g: {'style':'border: solid 1px;'}
group_value
グループ別インデックスページの、グループの値を指定します。インデックスページでのみ指定できます。
npage
インデックスページの、リンク先ページ番号を指定します。インデックスページでのみ指定できます。
{{ content.link(fragment="id_in_page",
    attrs={"class":"class_a", "style":"border:solid;"}) }}

target で指定するコンテントオブジェクトへリンクする <a> 要素を返します。content.load(target).link_to() と同様です。

target
リンク先のコンテントオブジェクト、'/' から始まる絶対パス、または相対パスのいずれかを指定します。

現在のページからリンクする要素を返します。

text
リンク文字列を指定します。省略時は、fragment で指定するヘッダ要素のテキスト、またはオブジェクトのタイトルとなります。
fragment
リンク先の要素idを指定します。
abs_path
True の場合、プロトコルから始まる完全なURLを返します。
attrs:
<a>要素の属性を辞書で指定します。e.g: {'style':'border: solid 1px;'}
group_value
グループ別インデックスページの、グループの値を指定します。インデックスページでのみ指定できます。
npage
インデックスページの、リンク先ページ番号を指定します。インデックスページでのみ指定できます。
{{ content.link_to("../page1.rst", fragment="id_in_page",
                attrs={"class":"class_a"}) }}

load(target)

target で指定したパスのコンテントオブジェクトを取得します。

target
'/' から始まる絶対パス、または相対パスを指定できます。
{{ content.load('/page1.rst').abstract }}  

path(fragment=None, abs_path=False, group_value=None, npage=None)

現在のページから、自分自身へのパスを取得します。

fragment
ページ内の要素idを指定します。
abs_path
True の場合、プロトコルから始まる完全なURLを返します。
group_value
グループ別インデックスページの、グループの値を指定します。インデックスページでのみ指定できます。
npage
インデックスページの、リンク先ページ番号を指定します。インデックスページでのみ指定できます。

例:

<a href='{{ content.path() }}'>
  Current content</a>

path_to(target, fragment=None, abs_path=False, group_value=None, npage=None)

target で指定するコンテントオブジェクトへのパスを取得します。content.load(target).path() と同様です。

target
リンク先のコンテントオブジェクト、'/' から始まる絶対パス、または相対パスのいずれかを指定します。
fragment
リンク先の要素idを指定します。
abs_path
True の場合、プロトコルから始まる完全なURLを返します。
group_value
グループ別インデックスページの、グループの値を指定します。インデックスページでのみ指定できます。
npage
インデックスページの、リンク先ページ番号を指定します。インデックスページでのみ指定できます。
<a href='{{ page.path_to("../page1.rst") }}'>
  親ディレクトリのpage1.html</a>

コンテキストオブジェクト

作成中の出力ファイルに関する情報を保持します。

メソッド

get_url()

出力ファイルのURLを返します。

コンテンツ コレクション

コンテンツコレクションは、Miyadaikuプロジェクトのすべてのコンテントを管理するオブジェクトです。

メソッド

get_content(key, base=None)

コレクションから、指定したファイル名の コンテントオブジェクト を取得します。

key
コンテントオブジェクトのパスを、/ で始まる絶対パス、または相対パスで指定します。相対パスで指定する場合は、base に起点となるコンテントオブジェクトを指定します。
base
key に相対パスを指定した場合に、起点となるコンテントオブジェクトを指定します。
{{ contents.get_content("../page1.rst") }}

get_contents(subdirs=None, recurse: bool = True, base=None, filters=None, excludes=None)

コレクションから、指定した条件の コンテントオブジェクト を検索します。結果として、コンテントオブジェクト のリストを返します。

subdirs
検索対象のディレクトリのリストを指定します。ディレクトリ名は、/ で始まる絶対パス、または相対パスで指定します。相対パスで指定する場合は、base に起点となるコンテントオブジェクトを指定します。
base
subdirs に相対パスを指定した場合に、起点となるコンテントオブジェクトを指定します。
recurse
指定したディレクトリのサブディレクトリも検索する場合は True とします。
filters
検索条件を指定します。検索するプロパティ名をキー、表示対象のプロパティ値のリストを値とする辞書を指定します。省略時は、文書プロパティ draftfalse かつ typearticle のコンテントオブジェクトを検索します。
excludes
検索結果から除外する条件を指定します。検索するプロパティ名をキー、表示対象のプロパティ値のリストを値とする辞書を指定します。
{% for found in contents.get_contents(filter={'tags': ['tag1', 'tag2']}) %}
  <p>{{ found.title}}</p>
{% endfor %}

group_items(group, subdirs=None, recurse: bool = True, base=None, filters=None, excludes=None)

contents.get_contents() と同様に、アーティクルを検索します。検索結果は、group で指定するプロパティ名の値で分類します。

戻り値は、

[
  (['プロパティ値1'], [article1, article2,]), 
  (['プロパティ値2'], [article3, article4, article5]),
] 

のように、プロパティ値と該当するコンテントオブジェクトのリストのタプルを要素とするリストを返します。

group
分類するプロパティ名を指定します。
subdirs
検索対象のディレクトリのリストを指定します。ディレクトリ名は、/ で始まる絶対パス、または相対パスで指定します。相対パスで指定する場合は、base に起点となるコンテントオブジェクトを指定します。
base
subdirs に相対パスを指定した場合に、起点となるコンテントオブジェクトを指定します。
recurse
指定したディレクトリのサブディレクトリも検索する場合は True とします。
filters
検索条件を指定します。検索するプロパティ名をキー、表示対象のプロパティ値のリストを値とする辞書を指定します。省略時は、文書プロパティ draftfalse かつ typearticle のコンテントオブジェクトを検索します。
excludes
検索結果から除外する条件を指定します。検索するプロパティ名をキー、表示対象のプロパティ値のリストを値とする辞書を指定します。
<dl>
{% for values, items in contents.group_items('tags') %}
  <dt>{{ values[0] }}</dt>
  {% for item in items %}
    <dd>{{item.link()}}</dd>
  {% endfor %}
{% endfor %}
</dl>