Skip to content
Open
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;

/// ドキュメントのコンテンツ要素
/// ドキュメントコンテンツの要素
Copy link
Contributor

@ultimatile ultimatile Sep 9, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
/// ドキュメントコンテンツの要素
/// 文書のコンテンツ。

///
/// この型は、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)でそのフィールドにアクセスできます。
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

"syntax"は「構文」で統一しています。

Suggested change
/// コンテンツはフィールドを持つ要素で構成されます。_要素関数_で要素を構築する際は、フィールドを引数として提供します。コンテンツ値がある場合は、[フィールドアクセス用シンタックス]($scripting/#field-access)でそのフィールドにアクセスできます。
/// コンテンツはフィールドを持つ要素で構成されます。_要素関数_で要素を構築する際は、フィールドを引数として提供します。コンテンツ値がある場合は、[フィールドアクセス構文]($scripting/#field-access)でそのフィールドにアクセスできます。

///
/// フィールドの中には必須のものがあります。それらは要素を構築する際に提供する必要があるため、
/// その型のコンテンツでは常にフィールドアクセスを通じて利用可能です。
/// フィールドの中には必須のものがあります。それらは要素を構築する際に提供する必要があるため、その型のコンテンツでは常にフィールドアクセスを通じて利用可能です。
/// 必須フィールドはドキュメント内でそのようにマークされています。
///
/// ほとんどのフィールドはオプションで、必須フィールドと同様に、単一要素を設定する
/// ために要素関数に渡すことができます。しかし、[setルール]($styling/#set-rules)で
/// 設定して、スコープ内のすべての要素に適用することも可能です。
/// オプションのフィールドは、要素関数に明示的に渡された場合にのみフィールドアクセス構文
/// で利用でき、setルールから適用された場合は利用できません。
/// ほとんどのフィールドはオプションで、必須フィールドと同様に、単一要素を設定するために要素関数に渡すことができます。しかし、[setルール]($styling/#set-rules)で設定して、スコープ内のすべての要素に適用することも可能です。
/// オプションのフィールドは、要素関数に明示的に渡された場合にのみフィールドアクセス用シンタックスで利用でき、setルールから適用された場合は利用できません。
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
/// オプションのフィールドは、要素関数に明示的に渡された場合にのみフィールドアクセス用シンタックスで利用でき、setルールから適用された場合は利用できません。
/// オプションのフィールドは、要素関数に明示的に渡された場合にのみフィールドアクセス構文で利用でき、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ルール内で使用することもできます。特定の種類の要素を持っているかを確認するために、グローバル関数と比較することも可能です。
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

修正提案しづらいので文分割させてもらいました。

Suggested change
/// コンテンツの要素関数です。この関数は、当該コンテンツに含まれる要素を生成するために使用できます。この関数は、その要素に対するsetルールやshowルール内で使用することもできます。特定の種類の要素を持っているかを確認するために、グローバル関数と比較することも可能です
/// コンテンツの要素関数
/// この関数を用いると、当該コンテンツに含まれる要素を生成できます。
/// この関数は、その要素に対するsetルールやshowルール内でも使用できます。
/// グローバル関数と比較することで、特定の種類の要素を持っているかを確認できます。

1行目はAPI定義の1行目のため体言止め。2・4行目は間違いではないのですが、こちらの方が自然かと思います。採用するかはお任せします。
3行目(4行目も)に関しては、「ことが(も)できます」という表現はスタイルガイドで避けるようになっていますので、これは修正をお願いします。

#[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)と一緒に使用できます。
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
/// コンテンツの位置情報です。これは、[query]によって返されたコンテンツ、または[showルール]($reference/styling/#show-rules)によって提供されたコンテンツに対してのみ利用できます。それ以外のコンテンツでは、{none}になります。取得された位置情報は、[counter]($counter)、[state]、[query]($query)と一緒に使用できます。
/// コンテンツの位置情報です。これは、[クエリ]($query)によって返されたコンテンツ、または[showルール]($reference/styling/#show-rules)によって提供されたコンテンツに対してのみ利用できます。それ以外のコンテンツでは、`{none}`になります。取得された位置情報は、[カウンター]($counter)、[状態]($state)、[クエリ]($query)と一緒に使用できます。

#[func]
pub fn location(&self) -> Option<Location> {
self.inner.location
Expand Down