コンテンツにスキップ
Kong Logo | Kong Docs Logo
  • ドキュメント
    • API仕様を確認する
      View all API Specs すべてのAPI仕様を表示 View all API Specs arrow image
    • ドキュメンテーション
      API Specs
      Kong Gateway
      軽量、高速、柔軟なクラウドネイティブAPIゲートウェイ
      Kong Konnect
      SaaSのエンドツーエンド接続のための単一プラットフォーム
      Kong AI Gateway
      GenAI インフラストラクチャ向けマルチ LLM AI Gateway
      Kong Mesh
      Kuma と Envoy をベースにしたエンタープライズサービスメッシュ
      decK
      Kongの構成を宣言型で管理する上で役立ちます
      Kong Ingress Controller
      Kubernetesクラスタ内で動作し、Kongをプロキシトラフィックに設定する
      Kong Gateway Operator
      YAMLマニフェストを使用してKubernetes上のKongデプロイメントを管理する
      Insomnia
      コラボレーティブAPI開発プラットフォーム
  • Plugin Hub
    • Plugin Hubを探索する
      View all plugins すべてのプラグインを表示 View all plugins arrow image
    • 機能性 すべて表示 View all arrow image
      すべてのプラグインを表示
      AI's icon
      AI
      マルチ LLM AI Gatewayプラグインを使用してAIトラフィックを管理、保護、制御する
      認証's icon
      認証
      認証レイヤーでサービスを保護する
      セキュリティ's icon
      セキュリティ
      追加のセキュリティレイヤーでサービスを保護する
      トラフィック制御's icon
      トラフィック制御
      インバウンドおよびアウトバウンドAPIトラフィックの管理、スロットル、制限
      サーバーレス's icon
      サーバーレス
      他のプラグインと組み合わせてサーバーレス関数を呼び出します
      分析と監視's icon
      分析と監視
      APIとマイクロサービストラフィックを視覚化、検査、監視
      変革's icon
      変革
      Kongでリクエストとレスポンスをその場で変換
      ログ記録's icon
      ログ記録
      インフラストラクチャに最適なトランスポートを使用して、リクエストと応答データをログに記録します
  • サポート
  • コミュニティ
  • Kongアカデミー
デモを見る 無料トライアルを開始
Kong Gateway
3.4.x LTS
  • Home icon
  • Kong Gateway
  • Kong Enterprise
  • Dev Portal
  • テンプレートの使用
report-issue問題を報告する
  • Kong Gateway
  • Kong Konnect
  • Kong Mesh
  • Kong AI Gateway
  • Plugin Hub
  • decK
  • Kong Ingress Controller
  • Kong Gateway Operator
  • Insomnia
  • Kuma

  • ドキュメント投稿ガイドライン
  • 3.10.x (latest)
  • 3.9.x
  • 3.8.x
  • 3.7.x
  • 3.6.x
  • 3.5.x
  • 3.4.x (LTS)
  • 3.3.x
  • 2.8.x (LTS)
  • アーカイブ (2.6より前)
  • 導入
    • Kong Gatewayの概要
    • サポート
      • バージョンサポートポリシー
      • サードパーティの依存関係
      • ブラウザサポート
      • 脆弱性パッチ適用プロセス
      • ソフトウェア部品表
    • 安定性
    • リリースノート
    • 互換性のない変更
      • Kong Gateway 3.4.x
      • Kong Gateway 3.3.x
      • Kong Gateway 3.2.x
      • Kong Gateway 3.1.x
      • Kong Gateway 3.0.x
      • Kong Gateway 2.8.x またはそれ以前
    • キーコンセプト
      • サービス
      • ルート
      • コンシューマ
      • アップストリーム
      • プラグイン
      • コンシューマグループ
    • Kongの仕組み
      • トラフィックのルーティング
      • ロードバランシング
      • ヘルスチェックとサーキットブレーカー
    • 用語集
  • Kongを始めましょう
    • Kongを入手
    • サービスとルート
    • Rate Limiting
    • プロキシキャッシュ
    • Key Authentication
    • ロードバランシング
  • Kongのインストール
    • 概要
    • Kubernetes
      • 概要
      • Kong Gatewayのインストール
      • Admin APIを構成する
      • Kong Managerのインストール
    • Docker
      • docker runの使用
      • 独自の Docker イメージをビルドする
    • Linux
      • Amazon Linux
      • Debian
      • Red Hat
      • Ubuntu
    • インストール後
      • データストアの設定
      • エンタープライズライセンスを適用する
      • Kong Managerを有効にする
  • 本番環境のKong
    • デプロイメントトポロジー
      • 概要
      • ハイブリッドモード
        • 概要
        • Kong Gatewayをハイブリッドモードでデプロイする
      • DBレスデプロイメント
      • 伝統的な
    • 実行中のKong
      • 非rootユーザーとしてKongを実行する
      • Admin APIの保護
      • systemdの使用
    • アクセス制御
      • Kong Gatewayを安全に起動する
      • プログラムによる管理者の作成
      • RBACを有効にする
    • ライセンス
      • 概要
      • ライセンスのダウンロード
      • エンタープライズライセンスのデプロイ
      • ライセンス APIの使用
      • ライセンス使用状況の監視
    • ネットワーキング
      • デフォルトポート
      • DNSに関する考慮事項
      • ネットワークとファイアウォール
      • フォワードプロキシ経由のCP/DP通信
      • PostgreSQL TLS
        • PostgreSQL TLSの構成
        • PostgreSQL TLSのトラブルシューティング
    • Kong設定ファイル
    • 環境変数
    • KongからのウェブサイトとAPIの提供
    • モニタリング
      • 概要
      • Prometheus
      • StatsD
      • Datadog
      • ヘルスチェックプローブ
    • トレーシング
      • 概要
      • カスタムトレースエクスポーターの記述
      • トレース APIリファレンス
    • リソースサイジングのガイドライン
    • ブルーグリーンデプロイメント
    • カナリアデプロイメント
    • クラスタリングリファレンス
    • パフォーマンスベンチマークの確立
    • ログとデバッグ
      • ログ参照
      • 動的ログレベルの更新
      • ゲートウェイログのカスタマイズ
      • デバッグリクエスト
    • gRPCサービスを構成する
    • Expressionsルーターを使用する
    • アップグレードと移行
      • Kong Gateway 3.x.xのアップグレード
      • バックアップと復元
      • アップグレード戦略
        • デュアルクラスターのアップグレード
        • インプレースアップグレード
        • ブルーグリーンアップグレード
        • ローリングアップグレード
      • 2.8 LTS から 3.4 LTS へのアップグレード
      • OSS から Enterprise への移行
      • Cassandra から PostgreSQL への移行ガイドライン
      • 互換性のない変更
  • Kong Gateway Enterprise
    • 概要
    • Kong バイタル
      • 概要
      • メトリクス
      • InfluxDBによる分析
      • Prometheusによる分析
      • PostgreSQLにおける分析ストレージの見積もり
    • シークレット管理
      • 概要
      • はじめる
      • シークレットローテーション
      • 高度な使用法
      • バックエンド
        • 概要
        • 環境変数
        • AWS Secrets Manager
        • Azure Key Vault
        • Google Cloud Secret Manager
        • HashiCorp Vault
      • ハウツー
        • AWS Secrets Manager によるデータベースの保護
      • 参照形式
    • 動的なプラグインの順序
      • 概要
      • 動的プラグインの注文を開始する
    • Dev Portal
      • Overview
      • ポータルを有効にする
      • OpenAPI仕様の公開
      • 構造とファイルタイプ
      • テーマファイル
      • テンプレートを使う
      • エディターの使用
      • 認証と認可
        • Basic Auth
        • Key Auth
        • OIDC
        • セッション
        • カスタム登録フィールドの追加
        • 開発者の管理
        • 開発者の役割とコンテンツ権限
      • アプリケーション登録
        • 認可プロバイダー戦略
        • アプリケーション登録を有効にする
        • アプリケーション登録のための鍵認証を有効にする
        • 外部認証を有効にする
          • 外部OAuth2サポート
          • 外部認証のためのOktaとKongのセットアップ
          • 外部認証のためのAzure ADとKongのセットアップ
        • アプリケーションの管理
      • 開発ポータルのカスタマイズ
        • テーマ編集
        • ワークスペース間でのテンプレートの移行
        • Markdownレンダリングモジュール
        • ポータルメールのカスタマイズ
        • JavaScriptアセットの追加と使用
        • 開発ポータルのシングルページアプリ
        • 代替OpenAPIレンダラー
      • SMTP
      • Workspaces
      • ヘルパーCLI
      • ポータルAPIドキュメント
    • 監査ログ
    • キーリングとデータ暗号化
    • ワークスペース
    • コンシューマグループ
    • イベントフック
    • データプレーン(DP)のレジリエンスの構成
    • コントロールプレーン(CP)の停止管理について
    • FIPS 140-2
      • 概要
      • FIPS 準拠パッケージのインストール
      • FIPS 140-2準拠のプラグイン
    • AWS IAMを使用してKong Gateway Amazon RDSデータベースを認証する
    • 署名付き Kong イメージのビルド来歴を確認
  • Kong Manager
    • 概要
    • Kong Managerを有効にする
    • Kong Managerの使用を開始する
      • サービスとルート
      • Rate Limiting
      • プロキシキャッシュ
      • コンシューマによる認証
      • ロードバランシング
    • 認証と承認
      • 概要
      • スーパー管理者を作成する
      • ワークスペースとチーム
      • パスワードと RBAC トークンのリセット
      • Basic Auth
      • LDAP
        • LDAPの設定
        • LDAP サービスディレクトリマッピング
      • OIDC
        • OIDC を構成する
        • OIDC 認証済みグループマッピング
      • セッション
      • RBAC
        • 概要
        • RBACを有効にする
        • ロールと権限を追加する
        • ユーザーの作成
        • 管理者の作成
    • ネットワーク構成
    • ワークスペース
    • コンシューマグループを作成する
    • メールの送信
    • トラブルシューティング
  • カスタムプラグインの開発
    • 概要
    • ファイル構成
    • カスタムロジックの実装
    • プラグインの設定
    • データストアへのアクセス
    • カスタムエンティティの保存
    • カスタムエンティティのキャッシュ
    • Admin APIの拡張
    • テストを書く
    • インストールと配布
    • Proxy-Wasmフィルタ
      • proxy-wasm フィルターの作成
    • プラグイン開発キット
      • 概要
      • kong.client
      • kong.client.tls
      • kong.cluster
      • kong.ctx
      • kong.ip
      • kong.jwe
      • kong.log
      • kong.nginx
      • kong.node
      • kong.plugin
      • kong.request
      • kong.response
      • kong.router
      • kong.service
      • kong.service.request
      • kong.service.response
      • kong.table
      • kong.tracing
      • kong.vault
      • kong.websocket.client
      • kong.websocket.upstream
    • 他の言語のプラグイン
      • Go
      • Javascript
      • Python
      • コンテナ内でプラグインを実行する
      • 外部プラグインのパフォーマンス
  • Kong Plugins
    • 概要
    • 認証リファレンス
    • 複数の認証プラグインを許可する
    • プラグインキューイング
      • 概要
      • プラグインキューイングリファレンス
  • Admin API
    • 概要
    • インフォメーションルート
    • ヘルスルート
    • タグ
    • ルートのデバッグ
    • サービス
    • ルート
    • コンシューマ
    • プラグイン
    • 証明書
    • CA 証明書
    • SNI
    • アップストリーム
    • ターゲット
    • 金庫
    • 鍵
    • フィルターチェーン
    • ライセンス
    • ワークスペース
    • RBAC
    • アドミン
    • コンシューマグループ
    • イベントフック
    • キーリングとデータ暗号化
    • 監査ログ
    • ステータスAPI
  • リファレンス
    • kong.conf
    • Nginxディレクティブの挿入
    • CLI
    • キー管理
    • パフォーマンステストのフレームワーク
    • 表現言語
      • 概要
      • 言語リファレンス
      • パフォーマンスの最適化
    • Rate Limitingライブラリ
    • Webアセンブリ
    • FAQ
enterprise-switcher-icon 次に切り替える: OSS
On this pageOn this page
  • 構文
  • カスタムプロパティの表示
  • 部分的
    • content/index.txt
    • layouts/index.html
    • partials/header.html
    • partials/header_nav.html
    • partials/hero.html
    • partials/hero.html
  • ブロック
    • content/index.txt
    • layouts/index.html
    • layouts/wrapper.html
  • コレクション
    • content/_posts/post1.md
    • content/_posts/post2.md
    • themes/base/layouts/post.html
  • Kong テンプレートヘルパー - Lua API
    • l(key, fallback)
    • each(list_or_table)
    • print(any)
    • markdown(文字列)
    • json_encode(object)
    • json_decode(string)
    • ポータル
    • ページ
    • ユーザー
    • テーマ
    • str
    • tbl
旧バージョンのドキュメントを参照しています。 最新のドキュメントはこちらをご参照ください。

テンプレートの使用

Kong Portalはlua-resty-templateテンプレートライブラリ上に構築されており、https://github.com/bungle/lua-resty-templateで確認できます。ライブラリの基本的な使い方については後述します。何が実現できるかについての詳細な情報は、ソースドキュメントを参照してください。

構文

(lua-resty-templates ドキュメントからの抜粋)

テンプレートでは次のタグを使用できます。

  • {{expression}}、式の結果を書き込みます(HTMLエスケープ処理された)

  • {*expression*}, 式の結果を記述します

  • {% lua code %}は、Luaコードを実行します

  • {(path-to-partial)}、パスでpartialファイルを含める場合、ファイルのコンテキストを指定することもできます{(partials/header.html, { message = "Hello, World" } )}

  • {-block-}...{-block-}{-block-} の内容を、(このケースでは)キー block を持つ blocks テーブルに格納された値にラップします。ブロックの使用を参照してください。定義済みのブロック名(verbatim および raw)をそのまま使用しないでください。

  • {-verbatim-}...{-verbatim-}、{-raw-}...{-raw-}は定義済みのブロックであり、その内部はlua-resty-templateによって処理されず、内容がそのまま出力されます。

  • {# comments #}{#から#}までのすべての要素はコメントアウト(出力も実行も不可)状態とみなされます。

カスタムプロパティの表示

OpenAPI仕様では、カスタムプロパティを使用できます。Dev Portalでカスタムプロパティを公開するには、spec-renderer.htmlファイルのshowExtensionsをtrueに変更します。デフォルトでは、showExtensionsはfalseです。

部分的

パーシャルは、レイアウトが参照できる HTML のスニペットです。パーシャルはそのレイアウトがアクセスできるデータと同じすべてのデータにアクセスでき、他のパーシャルを呼び出すこともできます。コードをパーシャルに分割すると、大きなページを整理しやすくなるだけでなく、さまざまなレイアウトで共通のページ要素を共有できます。

content/index.txt

---
layout: index.html
title: Partials
header_logo: assets/images/example.jpeg
header_nav_items:
  about:
    href: /about
  guides:
    href: /guides
hero_title: Partials Info
hero_description: Partials are wicked sick!
---

layouts/index.html

{(partials/header.html)}
<div class="content" id="sl-md0000000">
  {(partials/hero.html)}
</div>
{(partials/footer.html)}

partials/header.html

<header class="row" id="sl-md0000000">
  <div class="column" id="sl-md0000000">
    <img src="{{page.header_logo}}" id="sl-md0000000"/>
  </div>
  <div class="column" id="sl-md0000000">
    {(partials/header_nav.html)}
  </div>
</header>

partials/header_nav.html

<ul id="sl-md0000000">
  {% for title, href in each(page.header_nav_items) do %}
    <li id="sl-md0000000"><a href="{{href}}" id="sl-md0000000">{{title}}</a></li>
  {% end %}
</ul>

partials/hero.html

<h1 id="sl-md0000000">{{page.hero_title}}</h1>
<p id="sl-md0000000">{{page.hero_description}}</p>

partials/hero.html

<footer id="sl-md0000000">
  <p id="sl-md0000000">footer</p>
</footer>

出力:

<header class="row" id="sl-md0000000">
  <div class="column" id="sl-md0000000">
    <img src="assets/images/example.jpeg" id="sl-md0000000"/>
  </div>
  <div class="column" id="sl-md0000000">
    <ul id="sl-md0000000">
      <li id="sl-md0000000"><a href="/about" id="sl-md0000000">about</a></li>
      <li id="sl-md0000000"><a href="/guieds" id="sl-md0000000">guides</a></li>
    </ul>
  </div>
</header>
<h1 id="sl-md0000000">Partials Info</h1>
<p id="sl-md0000000">Partials are wicked sick!</p>
<footer id="sl-md0000000">
  <p id="sl-md0000000">footer</p>
</footer>

ブロック

ブロックを使用すると、ビューまたは部分を別のテンプレートに埋め込むことができます。ブロックは、異なるテンプレートで共通のラッパーを共有する場合に特に便利です。

以下の例では、コンテンツ ファイルがwrapper.htmlではなくindex.htmlを参照していることに注意してください。

content/index.txt

---
layout: index.html
title: Blocks
description: Blocks are the future!
---

layouts/index.html

{% layout = "layouts/wrapper.html" %}    <- syntax declaring where to find the block

{-main-}                                 <- delimiter describing what content renders in block
<div class="content" id="sl-md0000000">
  <h1 id="sl-md0000000">{{page.title}}</h1>
  <p id="sl-md0000000">{{page.description}}<p id="sl-md0000000">
</div>
{-main-}

layouts/wrapper.html

<!doctype id="sl-md0000000"     >
<html id="sl-md0000000">
  <head id="sl-md0000000">
    <title id="sl-md0000000">Testing lua-resty-template blocks</title>
  </head>
  <body id="sl-md0000000">
    <header id="sl-md0000000">
      <p id="sl-md0000000">header</p>
    </header>
    {*main*}                 <- syntax indicating where to place the block
    <footer id="sl-md0000000">
      <p id="sl-md0000000">footer</p>
    </footer>
  </body>
</html>

出力:

<!doctype id="sl-md0000000"     >
<html id="sl-md0000000">
  <head id="sl-md0000000">
    <title id="sl-md0000000">Testing lua-resty-template blocks</title>
  </head>
  <body id="sl-md0000000">
    <header id="sl-md0000000">
      <p id="sl-md0000000">header</p>
    </header>
    <div class="content" id="sl-md0000000">
      <h1 id="sl-md0000000">Blocks</h1>
      <p id="sl-md0000000">Blocks are the future!<p id="sl-md0000000">
    </div>
    <footer id="sl-md0000000">
      <p id="sl-md0000000">footer</p>
    </footer>
  </body>
</html>

コレクション

コレクションは、コンテンツのセットをグループとしてレンダリングできる強力なツールです。コレクションとしてレンダリングされるコンテンツは、構成可能なルートパターンとレイアウトを共有します。コレクションはポータル portal.conf.yaml ファイルで構成します。

以下の例は、個々の posts で構成される基本的な blog コレクションをレンダリングするのに必要なすべての設定/ファイルを示しています。

portal.conf.yaml

name: Kong Portal
theme:
  name: base
collections:
  posts:
    output: true
    route: /:stub/:collection/:name
    layout: post.html

上記を見ると、collectionsオブジェクトが宣言されたことがわかります。このオブジェクトは個別コレクションで構成されています。この例では、postsという名前のコレクションを構成しています。レンダラーはcontentフォルダ内の_postsというルートディレクトリでレンダリングする個々のページを検索します。animalsという名前の別のコレクション構成を作成した場合、レンダラーは_animalsというディレクトリでレンダリングするコンテンツファイルを検索します。

各構成項目は、いくつかのパーツで構成されています。

  • output
    • 必須 :false
    • タイプ :boolean
    • 説明 :このオプション属性は、コレクションをレンダリングするかどうかを決定します。falseに設定すると、コレクションの仮想ルートは作成されません。
  • route
    • 必須 : true
    • タイプ :string
    • デフォルト :none
    • 説明 :route 属性は必須で、どのパターンからコレクションルートを生成するかをレンダラーに伝えます。コレクションルートには、各コレクションメンバーを一意に識別する有効な動的名前空間が必ず1つ以上含まれている必要があります。
      • ルート宣言内の:で始まる名前空間はすべて動的であると見なされます。
      • Kongでは、特定の動的名前空間のみが有効と認識されます。
        • :title: 名前空間を、headmatterで宣言されたコンテンツtitleに置き換えます。
        • :name:名前空間をコンテンツのファイル名に置き換えます。
        • :collection: 名前空間を現在のコレクションの名前に置き換えます。
        • :stub:各コンテンツのheadmatterのnamespaceをheadmatter.stubの値で置き換えます。
  • layout
    • 必須 :true
      • タイプ :string
      • 説明 : layout 属性は、コレクションがレンダリングに使用する HTML レイアウトを決定します。パスルートは、現在のテーマ layouts ディレクトリ内からアクセスされます。

content/_posts/post1.md

---
title: Post One
stub: blog
---

This is my first post!

content/_posts/post2.md

---
title: Post Two
stub: blog
---

This is my second post!

themes/base/layouts/post.html

<h1 id="sl-md0000000">{{ page.title }}</h1>
<p id="sl-md0000000">{* page.body *}</p>

出力:

<kong_portal_gui_url id="sl-md0000000">/blog/posts/post1より:

<h1 id="sl-md0000000">Post One</h1>
<p id="sl-md0000000">This is my first post!</p>

<kong_portal_gui_url id="sl-md0000000">/blog/posts/post2より:

<h1 id="sl-md0000000">Post Two</h1>
<p id="sl-md0000000">This is my second post!</p>

Kong テンプレートヘルパー - Lua API

Kong テンプレートヘルパーは、レンダリング時にポータルデータへのアクセスを提供し、Kong への強力な統合を実現するオブジェクトのコレクションです。

グローバル:

  • l - 最初のバージョンのロケールヘルパーで、現在アクティブなページから値を取得します。
  • each - リストまたはテーブルを反復処理するためによく使用されるヘルパー。
  • print - リスト/テーブルを印刷するためによく使用されるヘルパー。
  • markdown - リスト/テーブルを印刷するためによく使用されるヘルパー。
  • json_decode - JSON を Lua テーブルにデコードします。
  • json_encode - LuaテーブルをJSONにエンコードします。

オブジェクト:

  • portal - ポータルオブジェクトは、現在アクセスされているのワークスペースポータルを指します。
  • page - ページオブジェクトは、現在アクティブなページとそのコンテンツを参照します。
  • user - ユーザーオブジェクトはKongポータルに現在ログインしてアクセスしている開発者を表します。
  • theme - テーマオブジェクトは、現在アクティブなテーマとその変数を表します。
  • tbl = テーブルヘルパーメソッド。例: map、filter、find、sort.
  • str = 文字列ヘルパーメソッド。例:lower、upper、reverse、endswithなど
  • helpers - ヘルパー関数は、一般的なタスクを簡素化したり、Kong Portal メソッドへの簡単なショートカットを提供したりします。

用語/定義:

  • list - Luaでの通称である配列([1, 2, 3])は、テーブルのようなオブジェクト({1, 2, 3})です。Luaリストのインデックスは、0ではなく1から始まります。値には配列表記(list[1])でアクセスできます。
  • table - LuaではオブジェクトまたはHashMap({1: 2})ともよく呼ばれ、({1 = 2})のように記述されます。値には配列またはドット表記(table.one or table["one"])でアクセスできます。

l(key, fallback)

現在アクティブなページから現在の翻訳をキーで返します。

戻り値の型

string

使用法

content/en/example.txtを使用:

---
layout: example.html

locale:
  title: Welcome to {{portal.name}}
  slogan: The best developer portal ever created.
---

content/es/example.txtを使用:

---
layout: example.html

locale:
  title: Bienvenido a {{portal.name}}
  slogan: El mejor portal para desarrolladores jamás creado.
---

layouts/example.htmlを使用:

<h1 id="sl-md0000000">{* l("title", "Welcome to" .. portal.name) *}</h1>
<p id="sl-md0000000">{* l("slogan", "My amazing developer portal!") *}</p>
<p id="sl-md0000000">{* l("powered_by", "Powered by Kong.") *}</p>

出力:

en/exampleの場合:

<h1 id="sl-md0000000">Welcome to Kong Portal</h1>
<p id="sl-md0000000">The best developer portal ever created.</p>
<p id="sl-md0000000">Powered by Kong.</p>

es/exampleの場合:

<h1 id="sl-md0000000">Bienvenido a Kong Portal</h1>
<p id="sl-md0000000">El mejor portal para desarrolladores jamás creado.</p>
<p id="sl-md0000000">Powered by Kong.</p>

注記

  • l(...) は、 page オブジェクトからのヘルパーです。page.l経由でもアクセス可能です。ただし、 page.lテンプレート補間をサポートしていません (たとえば、 ``は機能しません)。

each(list_or_table)

渡される引数のタイプに応じて適切な反復子を返します。

戻り値の型

Iterator

使用法

テンプレート(リスト):

{% for index, value in each(table) do %}
<ul id="sl-md0000000">
  <li id="sl-md0000000">Index: {{index}}</li>
  <li id="sl-md0000000">Value: {{ print(value) }}</li>
</ul>
{% end %}

テンプレート(テーブル):

{% for key, value in each(table) do %}
<ul id="sl-md0000000">
  <li id="sl-md0000000">Key: {{key}}</li>
  <li id="sl-md0000000">Value: {{ print(value) }}</li>
</ul>
{% end %}

print(any)

入力値の出力を文字列として返します。

戻り値の型

string

使用法

テンプレート(テーブル):

<pre id="sl-md0000000">{{print(page)}}</pre>

markdown(文字列)

引数として渡されたマークダウン文字列からHTMLを返します。文字列引数が有効なマークダウンでない場合、関数は文字列をそのまま返します。正しくレンダリングするには、ヘルパーを未加工の{* *}区切り文字とともに使用する必要があります。

戻り値の型

string

使用法

テンプレート(引数としての文字列):

<pre id="sl-md0000000">{* markdown("##This is Markdown") *}</pre>

テンプレート(引数としてのコンテンツ値):

<pre id="sl-md0000000">{* markdown(page.description) *}</pre>

json_encode(object)

JSONは引数として渡されたLuaテーブルをエンコードします

戻り値の型

string

使用法

テンプレート:

<pre id="sl-md0000000">{{ json_encode({ dog = cat }) }}</pre>

json_decode(string)

JSON 文字列引数を Lua テーブルにデコードします

戻り値の型

table

使用法

テンプレート:

<pre id="sl-md0000000">{{ print(json_encode('{"dog": "cat"}')) }}</pre>

ポータル

portalでは現在のポータルに関連するデータにアクセスできます。たとえば、ポータルの構成、コンテンツ、仕様、レイアウトなどのデータです。

  • portal.workspace
  • portal.url
  • portal.api_url
  • portal.auth
  • portal.specs
  • portal.specs_by_tag
  • portal.developer_meta_fields

次のようにして、portalオブジェクトで現在のワークスペースポータル構成に直接アクセスできます。

portal[config_key] or portal.config_key

たとえば、 portal.auth はポータルの構成値です。構成値のリストは、 kong.confのポータルセクションを読むことで確認できます。

kong.confから

ポータルには portal_ で始まる設定値のみが表示され、portal_ プレフィックスを削除することでアクセスできます。

一部の設定値は変更またはカスタマイズされています。これらのカスタマイズは、ポータルメンバーセクションに記載されています。

portal.workspace

現在のポータルのワークスペースを返します。

戻り値の型
string
使用法

テンプレート:


{{portal.workspace}}

出力:

default

portal.url

現在のポータルのURLをワークスペースと共に返します。

戻り値の型
string
使用法

テンプレート:


{{portal.url}}

出力:

http://127.0.0.1:8003/default

portal.api_url

追加された現在のワークスペースでportal_api_urlの設定値を返します。

戻り値の型
string or nil
使用法

テンプレート:


{{portal.api_url}}

portal_api_url = http://127.0.0.1:8004 の場合の出力結果:

http://127.0.0.1:8004/default

portal.auth

現在のポータルの認証タイプを返します。

戻り値の型
string
使用法

値の印刷

入力:


{{portal.auth}}

portal_auth = basic-auth の場合の出力結果:

basic-auth

認証が有効になっているかどうかを確認

入力:

{% if portal.auth then %}
  Authentication is enabled!
{% end %}

portal_auth = basic-auth の場合の出力結果:

Authentication is enabled!

portal.specs

現在のポータル内に含まれる仕様ファイルの配列を返します。

戻り値の型
array
使用法

コンテンツ値の表示

テンプレート:

<pre id="sl-md0000000">{{ print(portal.specs) }}</pre>

出力:

{
  {
    "path" = "content/example1_spec.json",
    "content" = "..."
  },
  {
    "path" = "content/documentation/example1_spec.json",
    "content" = "..."
  },
  ...
}

値のループ

テンプレート:

{% for _, spec in each(portal.specs) %}
  <li id="sl-md0000000">{{spec.path}}</li>
{% end %}

出力:

  <li id="sl-md0000000">content/example1_spec.json</li>
  <li id="sl-md0000000">content/documentation/example1_spec.json</li>

パスでフィルタリング

テンプレート:

{% for _, spec in each(helpers.filter_by_path(portal.specs, "content/documentation")) %}
  <li id="sl-md0000000">{{spec.path}}</li>
{% end %}

出力:

  <li id="sl-md0000000">content/documentation/example1_spec.json</li>

portal.developer_meta_fields

開発者を登録するためにKongで利用可能/必要な開発者メタフィールドの配列を返します。

戻り値の型

array
使用法

値の印刷

テンプレート:


{{ print(portal.developer_meta_fields) }}

出力:

{
  {
    label    = "Full Name",
    name     = "full_name",
    type     = "text",
    required = true,
  },
  ...
}

値のループ

テンプレート:

{% for i, field in each(portal.developer_meta_fields) do %}
<ul id="sl-md0000000">
  <li id="sl-md0000000">Label: {{field.label}}</li>
  <li id="sl-md0000000">Name: {{field.name}}</li>
  <li id="sl-md0000000">Type: {{field.type}}</li>
  <li id="sl-md0000000">Required: {{field.required}}</li>
</ul>
{% end %}

出力:

<ul id="sl-md0000000">
  <li id="sl-md0000000">Label: Full Name</li>
  <li id="sl-md0000000">Name: full_name</li>
  <li id="sl-md0000000">Type: text</li>
  <li id="sl-md0000000">Required: true</li>
</ul>
...

ページ

pageは、ページのURL、パス、ブレッドクラムなどを含む、現在のページに関連するデータにアクセスを提供します。

  • page.route
  • page.url
  • page.breadcrumbs
  • page.body

新しいコンテンツ ページを作成するときに、キーと値を定義できます。ここでは、それらの値にアクセスする方法とその他の興味深い点について学習します。

pageオブジェクトに直接定義してキー値にアクセスするには、次のように指定します。

page[key_name] or page.key_name

このように、ネストしたキーにアクセスすることもできます。

page.key_name.nested_key

ここで注意が必要です。出力エラーを回避するには、次に示すように、nested_key にアクセスする前に key_name が存在することを確認してください。


{{page.key_name and page.key_name.nested_key}}

page.route

現在のページのルート/パスを返します。

戻り値の型
string
使用法

テンプレート:


{{page.route}}

出力(指定URLはhttp://127.0.0.1:8003/default/guides/getting-started)。

guides/getting-started

page.url

現在のページの URL を返します。

戻り値の型
string
使用法

テンプレート:


{{page.url}}

出力(指定URLはhttp://127.0.0.1:8003/default/guides/getting-started)。

http://127.0.0.1:8003/default/guides/getting-started

page.breadcrumbs

現在のページの階層リンクコレクションを返します。

戻り値の型
table[]
アイテムのプロパティ
  • item.path - アイテムへの完全パス、フォワードスラッシュの接頭辞なし。
  • item.display_name - フォーマットされた名前。
  • item.is_first - これはリストの最初のアイテムですか?
  • item.is_last - これはリストの最後のアイテムですか?
使用法

テンプレート:

<div id="sl-md0000000 breadcrumbs">
  <a href="" id="sl-md0000000">Home</a>
  {% for i, crumb in each(page.breadcrumbs) do %}
    {% if crumb.is_last then %}
      / {{ crumb.display_name }}
    {% else %}
      / <a href="{{crumb.path}}" id="sl-md0000000">{{ crumb.display_name }}</a>
    {% end %}
  {% end %}
</div>

page.body

現在のページの本文を文字列として返します。ルートのコンテンツファイルに .md または .markdown の拡張子が付いている場合、本文はマークダウンからHTMLに解析されます。

戻り値の型
string
.txt、.json、.yaml、.ymlテンプレートの使用法

index.txt:

This is text content.

テンプレート:

<h1 id="sl-md0000000">This is a title</h1>
<p id="sl-md0000000">{{ page.body) }}</p>

出力:

> # This is a title
> This is text content.
使用法:.md、.markdown テンプレート

テンプレート(markdown): テンプレート内のマークダウンをレンダリングするには、未加工の区切り記号 {* *} を使用してください。

index.txt

# This is a title
This is text content.

テンプレート:

{* page.body *}

出力:

> # This is a title
> This is text content.

ユーザー

userは、現在認証されているユーザーに関連するデータへのアクセスを許可します。ユーザーオブジェクトは、KONG_PORTAL_AUTHが有効な場合にのみ適用されます。

  • user.is_authenticated
  • user.has_role
  • user.get

user.is_authenticated

現在のユーザーの認証ステータスを boolean 値で返します。

戻り値の型
boolean
使用法

テンプレート:


{{print(user.is_authenticated)}}

出力:

true

user.has_role

ユーザーに引数として指定されたロールがある場合はtrueを返します。

戻り値の型
boolean
使用法

テンプレート:


{{print(user.has_role("blue"))}}

出力:

true

user.get

開発者属性を引数に受け取り、存在すれば値を返します。

戻り値の型
any
使用法

テンプレート:


{{user.get("email")}}

{{print(user.get("meta"))}}

出力:

example123@konghq.com
{ "full_name" = "example" }

テーマ

themeオブジェクトは、theme.conf.yamlファイルに設定された値を公開します。さらに、portal.conf.yamlに含まれる変数のオーバーライドも含まれます。

  • theme.colors
  • theme.color
  • theme.fonts
  • theme.font

theme.colors

色変数のテーブルとその値をキーと値のペアで返します。

戻り値の型
table
使用法

theme.conf.yaml:

name: Kong
colors:
  primary:
    value: '#FFFFFF'
    description: 'Primary Color'
  secondary:
    value: '#000000'
    description: 'Secondary Color'
  tertiary:
    value: '#1DBAC2'
    description: 'Tertiary Color'

テンプレート:

{% for k,v in each(theme.colors) do %}
  <p id="sl-md0000000">{{k}}: {{v}}</p>
{% end %}

出力:

<p id="sl-md0000000">primary: #FFFFFF</p>
<p id="sl-md0000000">secondary: #000000</p>
<p id="sl-md0000000">tertiary: #1DBAC2</p>

theme.colors

説明

string引数でcolor varを取り、値を返します。

戻り値の型
string
使用法

theme.conf.yaml:

name: Kong
colors:
  primary:
    value: '#FFFFFF'
    description: 'Primary Color'
  secondary:
    value: '#000000'
    description: 'Secondary Color'
  tertiary:
    value: '#1DBAC2'
    description: 'Tertiary Color'

テンプレート:

<p id="sl-md0000000">primary: {{theme.color("primary")}}</p>
<p id="sl-md0000000">secondary: {{theme.color("secondary")}}</p>
<p id="sl-md0000000">tertiary: {{theme.color("tertiary")}}</p>

出力:

<p id="sl-md0000000">primary: #FFFFFF</p>
<p id="sl-md0000000">secondary: #000000</p>
<p id="sl-md0000000">tertiary: #1DBAC2</p>

theme.fonts

フォント変数のテーブルとその値をキーと値のペアで返します。

戻り値の型
table
使用法

theme.conf.yaml:

name: Kong
fonts:
  base: Roboto
  code: Roboto Mono
  headings: Lato

テンプレート:

{% for k,v in each(theme.fonts) do %}
  <p id="sl-md0000000">{{k}}: {{v}}</p>
{% end %}

出力:

<p id="sl-md0000000">base: Roboto</p>
<p id="sl-md0000000">code: Roboto Mono</p>
<p id="sl-md0000000">headings: Lato</p>

theme.font

文字列引数でフォント名を取り、値を返します。

戻り値の型
string
使用法

theme.conf.yaml:

name: Kong
fonts:
  base: Roboto
  code: Roboto Mono
  headings: Lato

テンプレート:

<p id="sl-md0000000">base: {{theme.font("base")}}</p>
<p id="sl-md0000000">code: {{theme.font("code")}}</p>
<p id="sl-md0000000">headings: {{theme.font("headings")}}</p>

出力:

<p id="sl-md0000000">base: #FFFFFF</p>
<p id="sl-md0000000">code: #000000</p>
<p id="sl-md0000000">headings: #1DBAC2</p>

str

便利な文字列ヘルパーメソッドを含むテーブル。

使用法

.upper()例:

<pre id="sl-md0000000">{{ str.upper("dog") }}</pre>

メソッド

str.byte
str.char
str.dump
str.find
str.format
str. gfind
str.gmatch
str.gsub
str.len
str.lower
str.match
str.rep
str.reverse
str.sub
str.upper
str. isalpha
str.isdigit
str.isalnum
str.isspace
str.islower
str.isupper
str.startswith
str.endswith
str.join
str.splitlines
str.split
str.expandtabs
str.lfind
str.rfind
str.replace
str.count
str. ljust
str.rjust
str.center
str.lstrip
str. rstrip
str.strip
str.splitv
str.partition
str.rpartition
str.at
str.lines
str.title
str.shorten
str.quote_string

tbl

便利なテーブルヘルパーメソッドを含むテーブル

使用法

.map() 例:

{% tbl.map({"dog", "cat"}, function(item) %}
  {% if item ~= "dog" then %}
    {% return true %}
  {% end %}
{% end) %}

メソッド

tbl.getn
tbl.setn
tbl.maxn
tbl.insert
tbl.remove
tbl.concat
tbl.map
tbl.foreach
tbl.foreachi
tbl.sort
tbl.sortv
tbl.filter
tbl.size
tbl.index_by
tbl.transform
tbl.range
tbl.reduce
tbl.index_map
tbl.makeset
tbl.union
tbl.intersection
tbl.count_map
tbl.set
tbl.new
tbl.clear
tbl.removevalues
tbl.readonly
tbl.update
tbl.copy
tbl.deepcopy
tbl.icopy
tbl.move
tbl.insertvalues
tbl.deepcompare
tbl.compare
tbl.compare_no_order
tbl.find
tbl.find_if
tbl.search
tbl.keys
tbl.values
tbl.sub
tbl.merge
tbl.difference
tbl.zip
Thank you for your feedback.
Was this page useful?
情報が多すぎる場合 close cta icon
Kong Konnectを使用すると、より多くの機能とより少ないインフラストラクチャを実現できます。月額1Mリクエストが無料。
無料でお試しください
  • Kong
    APIの世界を動かす

    APIマネジメント、サービスメッシュ、イングレスコントローラーの統合プラットフォームにより、開発者の生産性、セキュリティ、パフォーマンスを大幅に向上します。

    • 製品
      • Kong Konnect
      • Kong Gateway Enterprise
      • Kong Gateway
      • Kong Mesh
      • Kong Ingress Controller
      • Kong Insomnia
      • 製品アップデート
      • 始める
    • ドキュメンテーション
      • Kong Konnectドキュメント
      • Kong Gatewayドキュメント
      • Kong Meshドキュメント
      • Kong Insomniaドキュメント
      • Kong Konnect Plugin Hub
    • オープンソース
      • Kong Gateway
      • Kuma
      • Insomnia
      • Kongコミュニティ
    • 会社概要
      • Kongについて
      • お客様
      • キャリア
      • プレス
      • イベント
      • お問い合わせ
  • 利用規約• プライバシー• 信頼とコンプライアンス
© Kong Inc. 2025