このページは日本語に翻訳済みです。
link要素関数要素関数要素関数はsetルールやshowルールでカスタマイズできます。
setルールやshowルールでカスタマイズできます。URLや文書中の位置へのリンク。
デフォルトでは、リンクの外見は通常のテキストと変わりません。 しかし、showルールを使うことで、簡単に任意のスタイルを適用できます。
例
#show link: underline
https://example.com \
#link("https://example.com") \
#link("https://example.com")[
See example.com
]

構文
この関数には専用の構文もあります。
http://やhttps://で始まるテキストは、自動的にリンクに変換されます。
ハイフネーション
ハイフネーションや両端揃えを有効にしていても、意図しないURL中のハイフネーションを防ぐため、
デフォルトではリンクには適用されません。
これを無効化するには、show link: set text(hyphenate: true)を使用します。
アクセシビリティ
リンクの遷移先は、リンクテキスト自体、または少なくともその前後のテキストから明確であるべきです。 PDFエクスポートでは、Typstはリンクの遷移先に基づいてツールチップの説明を自動的に生成します。 URLへのリンクの場合は、URL自体がツールチップとして使われます。
HTMLエクスポートにおけるリンク
HTMLエクスポートでは、ラベルやロケーションへのリンクは、フラグメント識別子を用いたアンカーリンクに変換されます。 これに対応するため、既存のIDを持たないターゲットはDOM上で自動的にIDを受け取ります。 この仕組みは、リンクターゲットが変換されるHTMLノードの種類によって異なります。
-
リンクターゲットが単一のHTML要素に変換される場合、その要素がIDを受け取ります。 例としては、(単一の
<h2>要素に変換される)トップレベルの見出しにリンクする場合が典型的です。 -
リンクターゲットが単一のテキストノードに変換される場合、そのノードは
<span>でラップされ、その<span>がIDを受け取ります。 -
リンクターゲットが複数のノードに変換される場合、最初のノードがIDを受け取ります。
-
リンクターゲットが全くノードに変換されない場合、リンクターゲットとして機能する空の
<span>が生成されます。
特定のDOM構造に依存する場合は、コンパイラーがテキストのテキストノードへの正確な分割を保証しないため、リンクターゲットが1つまたは複数の要素に変換されることを保証する必要があります。
自動的なID生成では、リンクターゲットのラベルが存在する場合、人間が読めるIDを作成するためにラベルの再利用を試みます。 ラベルは以下の条件を満たす場合に再利用できます。
-
全ての文字が、Unicode上で英字もしくは数字に分類されるか、あるいはハイフンかアンダースコアであること。
-
ラベルが数字またはハイフンで始まらないこと。
これらのルールは、ラベルがCSS識別子としても、リンク用のURLフラグメントとしても有効であることを保証します。
IDはDOM内で一意でなければならないため、重複するラベルをIDとして再利用する際には、それらを区別する必要があるかもしれません。 正確なルールは以下の通りです。
-
ラベルが再利用可能で文書内で一意であれば、そのままIDとして使用されます。
-
ラベルが再利用可能だが一意ではない場合、ハイフンと整数からなるサフィックスが追加されます。 例えば、
<mylabel>というラベルが2つ存在すると、mylabel-1とmylabel-2に変換されます。 -
それ以外の場合は、
loc-に続けて整数を付けた一意なIDが生成されます。
引数引数引数は関数への入力値です。関数名の後に括弧で囲んで指定します。
link(,)->dest必須引数必須引数必須引数は、関数を呼び出す際に必ず指定しなければなりません。位置引数位置引数位置引数は順序通りに指定することで、引数名を省略して設定できます。
destリンクの遷移先。
-
Webページにリンクする場合、
destは有効なURL文字列である必要があります。mailto:やtel:のURLスキームを含むURLが指定され、 かつbodyパラメーターが省略された場合、 URLスキームを除いたメールアドレスまたは電話番号がリンクの本文になります。 -
文書中の別の部分にリンクする場合、
destには次の3つのうちいずれかの形式を使用できます。
例を表示
= Introduction <intro>
#link("mailto:hello@typst.app") \
#link(<intro>)[Go to intro] \
#link((page: 1, x: 0pt, y: 0pt))[
Go to top
]

body
bodyリンクとして表示するコンテンツ。
destがURL文字列の場合、このパラメーターは省略可能です。
この場合、URLがリンクとして表示されます。