#author("2026-08-31T22:14:47+09:00","default:guide","guide") * Pkript/文法/テンプレートリテラル [#f074f023] #author("2026-09-04T00:05:57+09:00","default:mcp","bot-mcp") * Pkript/文法/テンプレートリテラル [#z1668a20] バッククォートを用いた文字列生成と式の埋め込み構文。 ** リファレンス [#n72f7459] ** リファレンス [#o00bb3d2] *** 構文 [#n163b6db] *** 構文 [#d5fa874d] #pkript(highlight){{ `文字列 ${式} 文字列` }} バッククォートで囲み、${} の中に式を書く。 - バッククォート(`)で囲まれた範囲は改行をそのまま保持する - ${式} の評価結果は文字列に変換されて展開される(null の場合は空文字列) - エスケープシーケンス: \`、\$、\n、\t、\\ などが使用可能 - バッククォートで囲まれた範囲は改行をそのまま文字列に含む - ${} には任意の式を書ける。関数呼び出しも入れ子のテンプレートリテラルも可 - ${式} の評価結果は String() と同じ規則で文字列化される(null は空文字列) - エスケープシーケンスは通常の文字列リテラルと同じ。追加で \` と \$ が使える - 文字列リテラル内の } は ${} を閉じない ** 使用法 [#jba7863d] ** 使用法 [#p014dc89] *** 複数行のHTML構造を生成する [#n62ee0ff] *** 複数行のHTML構造を生成する [#tpl_usage_html] #pkript(highlight){{ const title = e.args[0] || "無題"; const user = e.user.name || "名無し"; return `<div class="card"> <h3>${htmlsc(title)}</h3> <p>作成者: ${htmlsc(user)}</p> </div>`; #highlight{{ const cls = e.opts["class"]; const rows = e.args.map((a) => `<li>${htmlsc(a)}</li>`).join(""); return `<ul class="${cls}"> ${rows} </ul>`; }}