Skip to content
Merged
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
49 changes: 13 additions & 36 deletions crates/typst-library/src/foundations/content.rs
Original file line number Diff line number Diff line change
Expand Up @@ -24,45 +24,30 @@ use crate::layout::{AlignElem, Alignment, Axes, Length, MoveElem, PadElem, Rel,
use crate::model::{Destination, EmphElem, LinkElem, StrongElem};
use crate::text::UnderlineElem;

/// ドキュメントのコンテンツ要素
/// ドキュメントコンテンツの要素
///
/// この型は、Typstの中心となるものです。Typstのすべてのマークアップやほとんどの
/// [関数]($function)はコンテンツを生成します。コンテンツ値は角括弧でマークアップを
/// 囲むことで作成できます。これは、コンテンツを関数に渡す際にも使われる方法です。
/// この型は、Typstの中心となるものです。Typstのすべてのマークアップやほとんどの[関数]($function)はコンテンツを生成します。コンテンツ値は角括弧でマークアップを囲むことで作成できます。これは、コンテンツを関数に渡す際にも使われる方法です。
///
/// # 例
/// ```example
/// Type of *Hello!* is
/// #type([*Hello!*])
/// ```
///
/// コンテンツは`+`演算子で追加したり、[結合]($scripting/#blocks)したり、整数と
/// 乗算したりすることができます。コンテンツが期待される場所であれば、[文字列]($str)や
/// `{none}`を渡すことも可能です。
/// コンテンツは`+`演算子で追加したり、[結合]($scripting/#blocks)したり、整数と乗算したりすることができます。コンテンツが期待される場所であれば、[文字列]($str)や`{none}`を渡すことも可能です。
///
/// # 表現
/// コンテンツはフィールドを持つ要素で構成されます。_要素関数_で要素を構築する際は、
/// フィールドを引数として提供します。コンテンツ値がある場合は、
/// [フィールドアクセス用シンタックス]($scripting/#field-access)でそのフィールドに
/// アクセスできます。
/// コンテンツはフィールドを持つ要素で構成されます。_要素関数_で要素を構築する際は、フィールドを引数として提供します。コンテンツ値がある場合は、[フィールドアクセス用シンタックス]($scripting/#field-access)でそのフィールドにアクセスできます。
///
/// フィールドの中には必須のものがあります。それらは要素を構築する際に提供する必要があるため、
/// その型のコンテンツでは常にフィールドアクセスを通じて利用可能です。
/// フィールドの中には必須のものがあります。それらは要素を構築する際に提供する必要があるため、その型のコンテンツでは常にフィールドアクセスを通じて利用可能です。
/// 必須フィールドはドキュメント内でそのようにマークされています。
///
/// ほとんどのフィールドはオプションで、必須フィールドと同様に、単一要素を設定する
/// ために要素関数に渡すことができます。しかし、[setルール]($styling/#set-rules)で
/// 設定して、スコープ内のすべての要素に適用することも可能です。
/// オプションのフィールドは、要素関数に明示的に渡された場合にのみフィールドアクセス構文
/// で利用でき、setルールから適用された場合は利用できません。
/// ほとんどのフィールドはオプションで、必須フィールドと同様に、単一要素を設定するために要素関数に渡すことができます。しかし、[setルール]($styling/#set-rules)で設定して、スコープ内のすべての要素に適用することも可能です。
/// オプションのフィールドは、要素関数に明示的に渡された場合にのみフィールドアクセス用シンタックスで利用でき、setルールから適用された場合は利用できません。
///
/// 各要素にはデフォルトの外観があります。しかし、[showルール]($styling/#show-rules)
/// を使用して、その外観を完全にカスタマイズすることもできます。showルールには要素が
/// 渡されます。showルールは要素のフィールドにアクセスし、そこから任意のコンテンツを
/// 生成することができます。
/// 各要素にはデフォルトの外観があります。しかし、[showルール]($styling/#show-rules)を使用して、その外観を完全にカスタマイズすることもできます。showルールには要素が渡されます。showルールは要素のフィールドにアクセスし、そこから任意のコンテンツを生成することができます。
///
/// ウェブアプリでは、コンテンツ変数にマウスカーソルを合わせると、そのコンテンツが正確に
/// どの要素で構成されているか、そしてどのようなフィールドを持っているかを確認できます。
/// ウェブアプリでは、コンテンツ変数にマウスカーソルを合わせると、そのコンテンツが正確にどの要素で構成されているか、そしてどのようなフィールドを持っているかを確認できます。
/// または、[`repr`]関数の出力を調べることでも確認できます。
#[ty(scope, cast)]
#[derive(Clone, Hash)]
Expand Down Expand Up @@ -529,16 +514,13 @@ impl Content {

#[scope]
impl Content {
/// コンテンツの要素関数です。この関数は、当該コンテンツに含まれる要素を生成するために
/// 使用できます。この関数は、その要素に対するsetルールやshowルール内で使用することも
/// ができます。特定の種類の要素をもっているかを確認するために、グローバル関数と比較
/// することも可能です。
/// コンテンツの要素関数です。この関数は、当該コンテンツに含まれる要素を生成するために使用できます。この関数は、その要素に対するsetルールやshowルール内で使用することもできます。特定の種類の要素を持っているかを確認するために、グローバル関数と比較することも可能です。
#[func]
pub fn func(&self) -> Element {
self.elem()
}

/// コンテンツが特定のフィールドをもつかどうか
/// コンテンツが特定のフィールドを持つかどうか
#[func]
pub fn has(
&self,
Expand All @@ -556,8 +538,7 @@ impl Content {
self.inner.elem.has(id)
}

/// コンテンツ内の指定されたフィールドにアクセスします。そのフィールドが存在しない場合は
/// デフォルト値が返されますが、デフォルト値が指定されていない場合はエラーになります。
/// コンテンツ内の指定されたフィールドにアクセスします。そのフィールドが存在しない場合はデフォルト値が返されますが、デフォルト値が指定されていない場合はエラーになります。
#[func]
pub fn at(
&self,
Expand Down Expand Up @@ -589,11 +570,7 @@ impl Content {
dict
}

/// コンテンツの位置情報です。これは、[query]によって返されたコンテンツ、
/// または[showルール]($reference/styling/#show-rules)によって提供
/// されたコンテンツに対してのみ利用できます。それ以外のコンテンツでは、
/// {none} になります。取得された位置情報は、[counter]($counter)、
/// [state]、[query]($query)と一緒に使用できます。
/// コンテンツの位置情報です。これは、[query]によって返されたコンテンツ、または[showルール]($reference/styling/#show-rules)によって提供されたコンテンツに対してのみ利用できます。それ以外のコンテンツでは、{none}になります。取得された位置情報は、[counter]($counter)、[state]、[query]($query)と一緒に使用できます。
#[func]
pub fn location(&self) -> Option<Location> {
self.inner.location
Expand Down