TAEKO AKATSUKA
"特定のカテゴリ配下にテンプレートを適用して記事を作成する" の項目を加筆修正しました
Updated by taea 2021-02-03 16:17:50 +0900
  • # テンプレートとは?
  • - テンプレートを利用して効率的に記事を投稿することができます。
  • - esaではチーム作成時に、下記の3種類の初期設定のテンプレートが予め用意されています。
  • - テンプレートは既存のものを自由にカスタマイズしたり、新たに作ったりすることができます。また、日付やユーザー名などを変数で埋め込むこともできます。
  • ![image.png (1.0 MB)](https://img.esa.io/uploads/production/attachments/3/2020/03/25/2/f99aa6a7-02ae-44f2-8ba3-4788fed460a4.png)
  • ## 初期設定のテンプレート
  • ### 日報
  • ![image.png (1.1 MB)](https://img.esa.io/uploads/production/attachments/3/2020/03/25/2/595ef1f4-e559-41e5-ab3c-f0492be65802.png)
  • ### 議事録
  • ![image.png (1.1 MB)](https://img.esa.io/uploads/production/attachments/3/2020/03/25/2/d166db11-6883-40c0-b729-a381dac8f010.png)
  • ### 手順書
  • ![image.png (1.0 MB)](https://img.esa.io/uploads/production/attachments/3/2020/03/25/2/c55ec1c2-7990-49a0-b1e8-1bc47ceefe86.png)
  • # テンプレートを使った記事の作成手順
  • 実際にテンプレートを使った記事の作成手順について解説します。ここでは初期設定のテンプレートから「日報」を例に解説します。
  • - 左上メニューの **① "NEW POST"** ボタンをクリックして、新規記事作成画面を開きます。
  • - **② "Select Template"** をクリックすると、利用できるテンプレート一覧が表示されます。
  • - ![image.png (604.9 kB)](https://img.esa.io/uploads/production/attachments/3/2020/03/25/2/06ba392c-f722-4d83-9358-77f7e9c940c8.png)<span class="small">新規記事作成画面のみテンプレート選択が可能です。(投稿済みの記事の編集画面からは、テンプレート選択はできません。)</span>
  • - テンプレート一覧から**③ "日報"** を選択します。
  • - ![image.png (585.7 kB)](https://img.esa.io/uploads/production/attachments/3/2020/03/25/2/850ff438-413f-4eba-b93c-c8a349a57979.png)
  • - なお、テンプレート一覧はテキスト検索で絞り込んで表示することもできます。
  • (登録済みのテンプレート件数が多い場合に便利です)
  • - ![image.png (477.9 kB)](https://img.esa.io/uploads/production/attachments/3/2020/03/25/2/d335f1a6-ec4d-4022-a88b-21a9ce664370.png)
  • - テンプレートが適用された状態で、記事投稿ができます。
  • - このとき、記事タイトルには下記のように今日の日付と自分のスクリーンネームが自動的にセットされます。
  • (この仕組については[「テンプレート変数」の項](/posts/7#%E3%83%A6%E3%83%BC%E3%82%B6%E3%83%BC%E5%90%8D%E3%82%84%E6%97%A5%E4%BB%98%E3%81%AA%E3%81%A9%E3%82%92%E5%A4%89%E6%95%B0%E3%81%AB%E3%81%99%E3%82%8B%EF%BC%88%E3%83%86%E3%83%B3%E3%83%97%E3%83%AC%E3%83%BC%E3%83%88%E5%A4%89%E6%95%B0%EF%BC%89)で後述します。)
  • - ![image.png (1.2 MB)](https://img.esa.io/uploads/production/attachments/3/2020/03/25/2/c40af1d2-d20a-40c4-a4d6-3ca2ad0553fb.png)
  • - 記事内容を編集して投稿します
  • - ![image.png (1.4 MB)](https://img.esa.io/uploads/production/attachments/3/2020/03/25/2/912b9d65-71f6-481f-846c-c2f2f5ea9c00.png)
  • # テンプレートを作る・カスタマイズする
  • - テンプレートは自由に作成したり、既存のテンプレートをカスタマイズしたりできます。また、日付やユーザー名などをカテゴリ、タイトルや本文に変数として埋め込むことも可能です。
  • - 作成したテンプレートは、チームで利用することができます。
  • - また、[ユーザー個人専用のテンプレートも作成可能です(後述)](/posts/7#%E3%83%A6%E3%83%BC%E3%82%B6%E3%83%BC%E5%80%8B%E4%BA%BA%E7%94%A8%E3%81%AE%E3%83%86%E3%83%B3%E3%83%97%E3%83%AC%E3%83%BC%E3%83%88%E3%82%92%E4%BD%9C%E3%82%8B)。
  • ## テンプレートの元記事について
  • - テンプレートとして活用できる「元記事」は、普通の記事と同じようにチーム内の1記事として存在し、また普通の記事と同じように作成や編集ができます。
  • - **"Templates"** というカテゴリの中に初期設定のテンプレートの元記事が用意されています。
  • - ![image.png (1.1 MB)](https://img.esa.io/uploads/production/attachments/3/2020/03/25/2/730eb885-2afb-4148-85c0-ec57c9a874af.png)
  • - これらのテンプレート元記事は編集やカスタマイズが自由に可能です。
  • - また同じように "Templates" カテゴリの中に新しく作られた記事は、テンプレートとして利用することができます。
  • - 下記は「日報」テンプレートの元記事の様子です。
  • - テンプレートには、記事の画面上方に斜線の模様が入っており、その他の普通の記事と区別することができます。
  • - ![image.png (276.4 kB)](https://img.esa.io/uploads/production/attachments/3/2020/03/25/2/1da31b57-66d7-4417-a528-0636198f440a.png)
  • - ![image.png (322.2 kB)](https://img.esa.io/uploads/production/attachments/3/2020/03/25/2/dfb559f7-c3bc-48db-861e-285fb8b074d4.png)
  • ## テンプレートの作り方
  • - 上記の元記事と同様に、**"Templates/"** カテゴリの中に作られた記事は、テンプレートとして利用することができます。
  • - ただし、WIP状態の記事はテンプレートとして利用することができません。必ずShip It! して利用してください。
  • - ![image.png (1.4 MB)](https://img.esa.io/uploads/production/attachments/3/2020/03/25/2/7ec60bb6-4e07-4203-b42a-71b475f2eacc.png)
  • - ![image.png (627.6 kB)](https://img.esa.io/uploads/production/attachments/3/2020/03/25/2/57f24d35-9b30-460d-b402-24d924981874.png)
  • ## ユーザー名や日付などを変数にする(テンプレート変数)
  • - 前述した日報などのテンプレートに見られるように、テンプレートには投稿者自身のスクリーンネームや投稿日の日付などを、変数でカテゴリ、タイトル、本文に自由に埋め込むことができます。
  • - 日報、議事録などの記録を残すような記事を投稿するときに便利に利用できます。
  • - ![image.png (561.6 kB)](https://img.esa.io/uploads/production/attachments/3/2020/03/25/2/d0ef8efd-ddcb-4109-84c5-739027a729b9.png)
  • - ![image.png (681.9 kB)](https://img.esa.io/uploads/production/attachments/3/2020/03/25/2/e2b11256-c621-4a26-87b0-e97f14f98ecb.png)
  • ## 利用できるテンプレート変数
  • テンプレートでは以下の変数を利用することができます。
  • 上記で紹介した例の他にも、日付や曜日、ユーザーの名前等、様々な書式の変数が用意されています。
  • | 変数 | 効果 |
  • |-------------------------------------------------|------------------------------------------------------|
  • | `%{year}` | 本日の年 (e.g. 14) |
  • | `%{Year}` | 本日の年 (e.g. 2014) |
  • | `%{jyear}` | 本日の年度 (e.g. H26) |
  • | `%{Jyear}` | 本日の年度 (e.g. 平成26) |
  • | `%{jfyear}` | 本日の会計年度(4月始まり) (e.g. H25) |
  • | `%{Jfyear}` | 本日の会計年度(4月始まり) (e.g. 平成25) |
  • | `%{Year:-3m}` | 本日の会計年度(4月始まり) (e.g. 2013) |
  • | `%{month}` | 本日の月 (e.g. 06) |
  • | `%{Month}` | 本日の月 (e.g. Jun) |
  • | `%{Monthname}` | 本日の月 (e.g. June) |
  • | `%{Weekday}` | 本日の曜日 (e.g. Saturday) |
  • | `%{Week}` | 本日の曜日 (e.g. Sat) |
  • | `%{weekday}` | 本日の曜日 (e.g. 土曜日) |
  • | `%{week}` | 本日の曜日 (e.g. 土) |
  • | `%{cweek}` | (当月における)暦週 (e.g. 4) |
  • | `%{cWeek}` | 暦週 (e.g. 25) |
  • | `%{day}` | 本日の日 (e.g. 03) |
  • | `%{timestamp}` | UNIXタイムスタンプ(秒) (e.g. 1214022600) |
  • | `%{Timestamp}` | UNIXタイムスタンプ(ミリ秒) (e.g. 1214022600123) |
  • | `%{me}` or `%{screen_name}` | 自分の screen name (e.g. ken_c_lo) |
  • | `%{name}` | 自分の名前 (e.g. Taeko Akatsuka) |
  • | `%{team}` | チーム名 |
  • | `%{README}` | `README` に変換 |
  • | `%{}` | 空文字列に変換 |
  • ### テンプレート変数の拡張
  • `%{day}` や `%{month}` など、時間に関係する全てのテンプレート変数は、以下のような記述で日付をずらすことが出来ます。
  • ※: 例として2018/03/14 (水) の場合
  • | 記法 | 結果 | 補足 |
  • | --- | --- | --- |
  • | `%{day}` | 14 | 本日の日 |
  • | `%{day:+2d}` | 16| `%{day}` を2日後の時点で評価 |
  • | `%{day:=mon}` | 12 | `%{day}` を今週の月曜日の時点で評価 |
  • 詳しくはこちら: [ProTip/2018/03/14/テンプレート変数の拡張](/posts/254)
  • # 応用編
  • ## ユーザー個人用のテンプレートを作る
  • チーム全体で利用できるテンプレートの他、ユーザー個人専用で使えるテンプレートも作ることができます。
  • - `Users/[screen_name]/Templates/` カテゴリ配下に記事を置くと、そのscreen_nameの人だけに表示されるテンプレートになります
  • - 例: `Users/fukayatsu/Templates/日報/%{Year}/%{month}/%{day}/TITLE`
  • ## 特定のカテゴリ配下にテンプレートを適用して記事を作成する
  • 特定のカテゴリ内に記事を新規作成するときのテンプレートを用意し、適用することができます。
  • 特定のカテゴリ配下の __「Create a new post」__ ボタンで記事を新規作成するときに、カテゴリ名が一致する __フロー__ タイプのテンプレートが用意されていれば、そのテンプレートが自動的に新規作成画面に適用されます。
  • 例えば、以下のテンプレートがあったします。
  • - `Templates/カテゴリ1/YYYY/MM/DD/テンプレートA`
  • - `Templates/カテゴリ1/サブカテゴリ1/YYYY/MM/DD/テンプレートB`
  • この場合、以下のように、カテゴリ名が前方一致し、かつフロー型のテンプレートが用意されている場合、自動的に記事作成画面に適用されます。
  • - __「カテゴリ1」__ 配下で新規記事作成 → __テンプレートA__ が自動適用
  • - __「カテゴリ1/サブカテゴリ2」__ 配下で記事作成 → __テンプレートB__ が自動適用
  • - `Templates/[適用したいカテゴリ名]/...` という記事名で適用することができます。
  • ### 例)「ProTip」カテゴリ配下に記事を作るときのテンプレートの適用方法
  • - 「ProTip」カテゴリ配下用にテンプレートを予め用意しておきます。
  • - 例として、`Templates/ProTip/%{Year}/%{month}/%{day}/title`という記事名で、下記のようなテンプレートを用意しておきます。
  • - ![image.png (243.7 kB)](https://img.esa.io/uploads/production/attachments/105/2019/03/18/2/d55f664d-9233-4355-9ab1-d9ec4de2d963.png)
  • - 「ProTip」カテゴリ画面右上の "Create a new post here" ボタンを使って新規記事を作ります。
  • - ![image.png (415.9 kB)](https://img.esa.io/uploads/production/attachments/105/2019/03/18/2/50535727-56c5-439d-be6b-4fc68d54c8cb.png)
  • - すると、先に用意したテンプレートが適用された状態で、新規投稿画面を開くことができます。
  • - ![image.png (178.1 kB)](https://img.esa.io/uploads/production/attachments/105/2019/03/18/2/a07b932b-0c90-4b59-9d78-a682d4d3da58.png)
  • ## 特定のテンプレートが適用された状態で新規投稿できるURL
  • - `https://[チーム名].esa.io/posts/new?template_post_id=[記事番号]` にアクセスすると、その記事番号のテンプレートが適用された状態で新規投稿画面を開くことができます。
  • - この機能はchatbotを使う場合や、READMEにリンクを埋め込む場合に便利です。
  • ```chatbot
  • @here 日報書きましょう! https://example.esa.io/posts/new?template_post_id=3
  • ```
  • ```README.md
  • ...
  • [議事録を書く](/posts/new?template_post_id=5)
  • ...
  • ```
  • ## APIからの利用
  • [POST /v1/teams/:team_name/posts](https://docs.esa.io/posts/102#POST%20/v1/teams/:team_name/posts)のパラメータに、**テンプレートの記事番号**を指定することでAPIからテンプレートを適用することも可能です。

テンプレートとは?

  • テンプレートを利用して効率的に記事を投稿することができます。
  • esaではチーム作成時に、下記の3種類の初期設定のテンプレートが予め用意されています。
  • テンプレートは既存のものを自由にカスタマイズしたり、新たに作ったりすることができます。また、日付やユーザー名などを変数で埋め込むこともできます。

image.png (1.0 MB)

初期設定のテンプレート

日報

image.png (1.1 MB)

議事録

image.png (1.1 MB)

手順書

image.png (1.0 MB)

テンプレートを使った記事の作成手順

実際にテンプレートを使った記事の作成手順について解説します。ここでは初期設定のテンプレートから「日報」を例に解説します。

  • 左上メニューの ① "NEW POST" ボタンをクリックして、新規記事作成画面を開きます。
  • ② "Select Template" をクリックすると、利用できるテンプレート一覧が表示されます。
    • image.png (604.9 kB)新規記事作成画面のみテンプレート選択が可能です。(投稿済みの記事の編集画面からは、テンプレート選択はできません。)
  • テンプレート一覧から③ "日報" を選択します。
    • image.png (585.7 kB)
    • なお、テンプレート一覧はテキスト検索で絞り込んで表示することもできます。
      (登録済みのテンプレート件数が多い場合に便利です)
      • image.png (477.9 kB)
  • テンプレートが適用された状態で、記事投稿ができます。
    • このとき、記事タイトルには下記のように今日の日付と自分のスクリーンネームが自動的にセットされます。
      (この仕組については「テンプレート変数」の項で後述します。)
      • image.png (1.2 MB)
  • 記事内容を編集して投稿します
    • image.png (1.4 MB)

テンプレートを作る・カスタマイズする

  • テンプレートは自由に作成したり、既存のテンプレートをカスタマイズしたりできます。また、日付やユーザー名などをカテゴリ、タイトルや本文に変数として埋め込むことも可能です。
  • 作成したテンプレートは、チームで利用することができます。

テンプレートの元記事について

  • テンプレートとして活用できる「元記事」は、普通の記事と同じようにチーム内の1記事として存在し、また普通の記事と同じように作成や編集ができます。
  • "Templates" というカテゴリの中に初期設定のテンプレートの元記事が用意されています。
    • image.png (1.1 MB)
    • これらのテンプレート元記事は編集やカスタマイズが自由に可能です。
    • また同じように "Templates" カテゴリの中に新しく作られた記事は、テンプレートとして利用することができます。
  • 下記は「日報」テンプレートの元記事の様子です。
    • テンプレートには、記事の画面上方に斜線の模様が入っており、その他の普通の記事と区別することができます。
    • image.png (276.4 kB)
    • image.png (322.2 kB)

テンプレートの作り方

  • 上記の元記事と同様に、"Templates/" カテゴリの中に作られた記事は、テンプレートとして利用することができます。
    • ただし、WIP状態の記事はテンプレートとして利用することができません。必ずShip It! して利用してください。
    • image.png (1.4 MB)
    • image.png (627.6 kB)

ユーザー名や日付などを変数にする(テンプレート変数)

  • 前述した日報などのテンプレートに見られるように、テンプレートには投稿者自身のスクリーンネームや投稿日の日付などを、変数でカテゴリ、タイトル、本文に自由に埋め込むことができます。
    • 日報、議事録などの記録を残すような記事を投稿するときに便利に利用できます。
    • image.png (561.6 kB)
    • image.png (681.9 kB)

利用できるテンプレート変数

テンプレートでは以下の変数を利用することができます。
上記で紹介した例の他にも、日付や曜日、ユーザーの名前等、様々な書式の変数が用意されています。

変数 効果
%{year} 本日の年 (e.g. 14)
%{Year} 本日の年 (e.g. 2014)
%{jyear} 本日の年度 (e.g. H26)
%{Jyear} 本日の年度 (e.g. 平成26)
%{jfyear} 本日の会計年度(4月始まり) (e.g. H25)
%{Jfyear} 本日の会計年度(4月始まり) (e.g. 平成25)
%{Year:-3m} 本日の会計年度(4月始まり) (e.g. 2013)
%{month} 本日の月 (e.g. 06)
%{Month} 本日の月 (e.g. Jun)
%{Monthname} 本日の月 (e.g. June)
%{Weekday} 本日の曜日 (e.g. Saturday)
%{Week} 本日の曜日 (e.g. Sat)
%{weekday} 本日の曜日 (e.g. 土曜日)
%{week} 本日の曜日 (e.g. 土)
%{cweek} (当月における)暦週 (e.g. 4)
%{cWeek} 暦週 (e.g. 25)
%{day} 本日の日 (e.g. 03)
%{timestamp} UNIXタイムスタンプ(秒) (e.g. 1214022600)
%{Timestamp} UNIXタイムスタンプ(ミリ秒) (e.g. 1214022600123)
%{me} or %{screen_name} 自分の screen name (e.g. ken_c_lo)
%{name} 自分の名前 (e.g. Taeko Akatsuka)
%{team} チーム名
%{README} README に変換
%{} 空文字列に変換

テンプレート変数の拡張

%{day}%{month} など、時間に関係する全てのテンプレート変数は、以下のような記述で日付をずらすことが出来ます。

※: 例として2018/03/14 (水) の場合

記法 結果 補足
%{day} 14 本日の日
%{day:+2d} 16 %{day} を2日後の時点で評価
%{day:=mon} 12 %{day} を今週の月曜日の時点で評価

詳しくはこちら: ProTip/2018/03/14/テンプレート変数の拡張

応用編

ユーザー個人用のテンプレートを作る

チーム全体で利用できるテンプレートの他、ユーザー個人専用で使えるテンプレートも作ることができます。

  • Users/[screen_name]/Templates/ カテゴリ配下に記事を置くと、そのscreen_nameの人だけに表示されるテンプレートになります
    • 例: Users/fukayatsu/Templates/日報/%{Year}/%{month}/%{day}/TITLE

特定のカテゴリ配下にテンプレートを適用して記事を作成する

特定のカテゴリ内に記事を新規作成するときのテンプレートを用意し、適用することができます。特定のカテゴリ配下の「Create a new post」 ボタンで記事を新規作成するときに、カテゴリ名が一致する フロー タイプのテンプレートが用意されていれば、そのテンプレートが自動的に新規作成画面に適用されます。

例えば、以下のテンプレートがあったします。

  • Templates/[適用したいカテゴリ名]/...Templates/カテゴリ1/YYYY/MM/DD/テンプレートA という記事名で適用することができます。
  • Templates/カテゴリ1/サブカテゴリ1/YYYY/MM/DD/テンプレートB

この場合、以下のように、カテゴリ名が前方一致し、かつフロー型のテンプレートが用意されている場合、自動的に記事作成画面に適用されます。

  • 「カテゴリ1」 配下で新規記事作成 → テンプレートA が自動適用

  • 「カテゴリ1/サブカテゴリ2」 配下で記事作成 → テンプレートB が自動適用

  • Templates/[適用したいカテゴリ名]/... という記事名で適用することができます。

例)「ProTip」カテゴリ配下に記事を作るときのテンプレートの適用方法

  • 「ProTip」カテゴリ配下用にテンプレートを予め用意しておきます。
    • 例として、Templates/ProTip/%{Year}/%{month}/%{day}/titleという記事名で、下記のようなテンプレートを用意しておきます。
      • image.png (243.7 kB)
  • 「ProTip」カテゴリ画面右上の "Create a new post here" ボタンを使って新規記事を作ります。
    • image.png (415.9 kB)
  • すると、先に用意したテンプレートが適用された状態で、新規投稿画面を開くことができます。
    • image.png (178.1 kB)

特定のテンプレートが適用された状態で新規投稿できるURL

  • https://[チーム名].esa.io/posts/new?template_post_id=[記事番号] にアクセスすると、その記事番号のテンプレートが適用された状態で新規投稿画面を開くことができます。
  • この機能はchatbotを使う場合や、READMEにリンクを埋め込む場合に便利です。
chatbot
@here 日報書きましょう! https://example.esa.io/posts/new?template_post_id=3
README.md
...
[議事録を書く](/posts/new?template_post_id=5)
...

APIからの利用

POST /v1/teams/:team_name/postsのパラメータに、テンプレートの記事番号を指定することでAPIからテンプレートを適用することも可能です。

# テンプレートとは?

- テンプレートを利用して効率的に記事を投稿することができます。
- esaではチーム作成時に、下記の3種類の初期設定のテンプレートが予め用意されています。
- テンプレートは既存のものを自由にカスタマイズしたり、新たに作ったりすることができます。また、日付やユーザー名などを変数で埋め込むこともできます。

![image.png (1.0 MB)](https://img.esa.io/uploads/production/attachments/3/2020/03/25/2/f99aa6a7-02ae-44f2-8ba3-4788fed460a4.png)


## 初期設定のテンプレート

### 日報

![image.png (1.1 MB)](https://img.esa.io/uploads/production/attachments/3/2020/03/25/2/595ef1f4-e559-41e5-ab3c-f0492be65802.png)

### 議事録

![image.png (1.1 MB)](https://img.esa.io/uploads/production/attachments/3/2020/03/25/2/d166db11-6883-40c0-b729-a381dac8f010.png)

### 手順書

![image.png (1.0 MB)](https://img.esa.io/uploads/production/attachments/3/2020/03/25/2/c55ec1c2-7990-49a0-b1e8-1bc47ceefe86.png)

# テンプレートを使った記事の作成手順

実際にテンプレートを使った記事の作成手順について解説します。ここでは初期設定のテンプレートから「日報」を例に解説します。

-  左上メニューの **① "NEW POST"** ボタンをクリックして、新規記事作成画面を開きます。
- **② "Select Template"** をクリックすると、利用できるテンプレート一覧が表示されます。
    - ![image.png (604.9 kB)](https://img.esa.io/uploads/production/attachments/3/2020/03/25/2/06ba392c-f722-4d83-9358-77f7e9c940c8.png)<span class="small">新規記事作成画面のみテンプレート選択が可能です。(投稿済みの記事の編集画面からは、テンプレート選択はできません。)</span>
- テンプレート一覧から**③ "日報"** を選択します。
    - ![image.png (585.7 kB)](https://img.esa.io/uploads/production/attachments/3/2020/03/25/2/850ff438-413f-4eba-b93c-c8a349a57979.png)
    - なお、テンプレート一覧はテキスト検索で絞り込んで表示することもできます。
(登録済みのテンプレート件数が多い場合に便利です)
        - ![image.png (477.9 kB)](https://img.esa.io/uploads/production/attachments/3/2020/03/25/2/d335f1a6-ec4d-4022-a88b-21a9ce664370.png)
- テンプレートが適用された状態で、記事投稿ができます。
    - このとき、記事タイトルには下記のように今日の日付と自分のスクリーンネームが自動的にセットされます。
(この仕組については[「テンプレート変数」の項](/posts/7#%E3%83%A6%E3%83%BC%E3%82%B6%E3%83%BC%E5%90%8D%E3%82%84%E6%97%A5%E4%BB%98%E3%81%AA%E3%81%A9%E3%82%92%E5%A4%89%E6%95%B0%E3%81%AB%E3%81%99%E3%82%8B%EF%BC%88%E3%83%86%E3%83%B3%E3%83%97%E3%83%AC%E3%83%BC%E3%83%88%E5%A4%89%E6%95%B0%EF%BC%89)で後述します。)
        - ![image.png (1.2 MB)](https://img.esa.io/uploads/production/attachments/3/2020/03/25/2/c40af1d2-d20a-40c4-a4d6-3ca2ad0553fb.png)
- 記事内容を編集して投稿します
    - ![image.png (1.4 MB)](https://img.esa.io/uploads/production/attachments/3/2020/03/25/2/912b9d65-71f6-481f-846c-c2f2f5ea9c00.png)

# テンプレートを作る・カスタマイズする

- テンプレートは自由に作成したり、既存のテンプレートをカスタマイズしたりできます。また、日付やユーザー名などをカテゴリ、タイトルや本文に変数として埋め込むことも可能です。
- 作成したテンプレートは、チームで利用することができます。
    - また、[ユーザー個人専用のテンプレートも作成可能です(後述)](/posts/7#%E3%83%A6%E3%83%BC%E3%82%B6%E3%83%BC%E5%80%8B%E4%BA%BA%E7%94%A8%E3%81%AE%E3%83%86%E3%83%B3%E3%83%97%E3%83%AC%E3%83%BC%E3%83%88%E3%82%92%E4%BD%9C%E3%82%8B)。

## テンプレートの元記事について

- テンプレートとして活用できる「元記事」は、普通の記事と同じようにチーム内の1記事として存在し、また普通の記事と同じように作成や編集ができます。
- **"Templates"** というカテゴリの中に初期設定のテンプレートの元記事が用意されています。
    - ![image.png (1.1 MB)](https://img.esa.io/uploads/production/attachments/3/2020/03/25/2/730eb885-2afb-4148-85c0-ec57c9a874af.png)
    - これらのテンプレート元記事は編集やカスタマイズが自由に可能です。
    - また同じように "Templates" カテゴリの中に新しく作られた記事は、テンプレートとして利用することができます。
- 下記は「日報」テンプレートの元記事の様子です。
    - テンプレートには、記事の画面上方に斜線の模様が入っており、その他の普通の記事と区別することができます。
    - ![image.png (276.4 kB)](https://img.esa.io/uploads/production/attachments/3/2020/03/25/2/1da31b57-66d7-4417-a528-0636198f440a.png)
    - ![image.png (322.2 kB)](https://img.esa.io/uploads/production/attachments/3/2020/03/25/2/dfb559f7-c3bc-48db-861e-285fb8b074d4.png)

## テンプレートの作り方

- 上記の元記事と同様に、**"Templates/"** カテゴリの中に作られた記事は、テンプレートとして利用することができます。
    - ただし、WIP状態の記事はテンプレートとして利用することができません。必ずShip It! して利用してください。
    - ![image.png (1.4 MB)](https://img.esa.io/uploads/production/attachments/3/2020/03/25/2/7ec60bb6-4e07-4203-b42a-71b475f2eacc.png)
    - ![image.png (627.6 kB)](https://img.esa.io/uploads/production/attachments/3/2020/03/25/2/57f24d35-9b30-460d-b402-24d924981874.png)

## ユーザー名や日付などを変数にする(テンプレート変数)

- 前述した日報などのテンプレートに見られるように、テンプレートには投稿者自身のスクリーンネームや投稿日の日付などを、変数でカテゴリ、タイトル、本文に自由に埋め込むことができます。
    - 日報、議事録などの記録を残すような記事を投稿するときに便利に利用できます。
    - ![image.png (561.6 kB)](https://img.esa.io/uploads/production/attachments/3/2020/03/25/2/d0ef8efd-ddcb-4109-84c5-739027a729b9.png)
    - ![image.png (681.9 kB)](https://img.esa.io/uploads/production/attachments/3/2020/03/25/2/e2b11256-c621-4a26-87b0-e97f14f98ecb.png)

## 利用できるテンプレート変数

テンプレートでは以下の変数を利用することができます。
上記で紹介した例の他にも、日付や曜日、ユーザーの名前等、様々な書式の変数が用意されています。

| 変数                   |     効果     | 
|-------------------------------------------------|------------------------------------------------------|
|  `%{year}`                    | 本日の年 (e.g. 14)                                | 
|  `%{Year}`                    | 本日の年 (e.g. 2014)                                | 
|  `%{jyear}`                    | 本日の年度 (e.g. H26)                                | 
|  `%{Jyear}`                    | 本日の年度 (e.g. 平成26)                                | 
|  `%{jfyear}`                    | 本日の会計年度(4月始まり) (e.g. H25)                                | 
|  `%{Jfyear}`                    | 本日の会計年度(4月始まり) (e.g. 平成25)                                | 
| `%{Year:-3m}` | 本日の会計年度(4月始まり) (e.g. 2013) |
|  `%{month}`                    | 本日の月 (e.g. 06)                                | 
|  `%{Month}`                    | 本日の月 (e.g. Jun)                                | 
|  `%{Monthname}`                    | 本日の月 (e.g. June)                                | 
|  `%{Weekday}`                    | 本日の曜日 (e.g. Saturday)                                | 
|  `%{Week}`                    | 本日の曜日 (e.g. Sat)                                | 
|  `%{weekday}`                    | 本日の曜日 (e.g. 土曜日)                                | 
|  `%{week}`                    | 本日の曜日 (e.g. 土)                                | 
|  `%{cweek}`                    | (当月における)暦週 (e.g. 4)                                | 
|  `%{cWeek}`                    | 暦週 (e.g. 25)                                | 
|  `%{day}`                    | 本日の日 (e.g. 03)                                | 
| `%{timestamp}` | UNIXタイムスタンプ(秒) (e.g. 1214022600) |
| `%{Timestamp}` | UNIXタイムスタンプ(ミリ秒) (e.g. 1214022600123) |
|  `%{me}` or `%{screen_name}`                  | 自分の screen name (e.g. ken_c_lo)                               | 
|  `%{name}`                    | 自分の名前 (e.g. Taeko Akatsuka)                               | 
|  `%{team}`                    | チーム名                              | 
| `%{README}` | `README` に変換 |
| `%{}` | 空文字列に変換 |


### テンプレート変数の拡張

`%{day}` や `%{month}` など、時間に関係する全てのテンプレート変数は、以下のような記述で日付をずらすことが出来ます。

※: 例として2018/03/14 (水) の場合

| 記法 | 結果 | 補足 | 
| --- | --- | --- | 
| `%{day}` | 14 | 本日の日 |
| `%{day:+2d}` | 16| `%{day}` を2日後の時点で評価 |
| `%{day:=mon}` | 12 | `%{day}` を今週の月曜日の時点で評価 |

詳しくはこちら:  [ProTip/2018/03/14/テンプレート変数の拡張](/posts/254) 

# 応用編

## ユーザー個人用のテンプレートを作る

チーム全体で利用できるテンプレートの他、ユーザー個人専用で使えるテンプレートも作ることができます。

- `Users/[screen_name]/Templates/` カテゴリ配下に記事を置くと、そのscreen_nameの人だけに表示されるテンプレートになります
    - 例: `Users/fukayatsu/Templates/日報/%{Year}/%{month}/%{day}/TITLE`

## 特定のカテゴリ配下にテンプレートを適用して記事を作成する

特定のカテゴリ配下の __「Create a new post」__ ボタンで記事を新規作成するときに、カテゴリ名が一致する __フロー__ タイプのテンプレートが用意されていれば、そのテンプレートが自動的に新規作成画面に適用されます。

例えば、以下のテンプレートがあったします。

- `Templates/カテゴリ1/YYYY/MM/DD/テンプレートA`
- `Templates/カテゴリ1/サブカテゴリ1/YYYY/MM/DD/テンプレートB`

この場合、以下のように、カテゴリ名が前方一致し、かつフロー型のテンプレートが用意されている場合、自動的に記事作成画面に適用されます。

- __「カテゴリ1」__ 配下で新規記事作成 →  __テンプレートA__ が自動適用
- __「カテゴリ1/サブカテゴリ2」__ 配下で記事作成 →  __テンプレートB__ が自動適用


- `Templates/[適用したいカテゴリ名]/...` という記事名で適用することができます。 

### 例)「ProTip」カテゴリ配下に記事を作るときのテンプレートの適用方法

-  「ProTip」カテゴリ配下用にテンプレートを予め用意しておきます。
    - 例として、`Templates/ProTip/%{Year}/%{month}/%{day}/title`という記事名で、下記のようなテンプレートを用意しておきます。
        - ![image.png (243.7 kB)](https://img.esa.io/uploads/production/attachments/105/2019/03/18/2/d55f664d-9233-4355-9ab1-d9ec4de2d963.png)
-  「ProTip」カテゴリ画面右上の "Create a new post here" ボタンを使って新規記事を作ります。 
    - ![image.png (415.9 kB)](https://img.esa.io/uploads/production/attachments/105/2019/03/18/2/50535727-56c5-439d-be6b-4fc68d54c8cb.png)
- すると、先に用意したテンプレートが適用された状態で、新規投稿画面を開くことができます。
    - ![image.png (178.1 kB)](https://img.esa.io/uploads/production/attachments/105/2019/03/18/2/a07b932b-0c90-4b59-9d78-a682d4d3da58.png)

## 特定のテンプレートが適用された状態で新規投稿できるURL

- `https://[チーム名].esa.io/posts/new?template_post_id=[記事番号]` にアクセスすると、その記事番号のテンプレートが適用された状態で新規投稿画面を開くことができます。
- この機能はchatbotを使う場合や、READMEにリンクを埋め込む場合に便利です。

```chatbot
@here 日報書きましょう! https://example.esa.io/posts/new?template_post_id=3
```

```README.md
...
[議事録を書く](/posts/new?template_post_id=5)
...
```

## APIからの利用

[POST /v1/teams/:team_name/posts](https://docs.esa.io/posts/102#POST%20/v1/teams/:team_name/posts)のパラメータに、**テンプレートの記事番号**を指定することでAPIからテンプレートを適用することも可能です。

テンプレートとは?

  • テンプレートを利用して効率的に記事を投稿することができます。
  • esaではチーム作成時に、下記の3種類の初期設定のテンプレートが予め用意されています。
  • テンプレートは既存のものを自由にカスタマイズしたり、新たに作ったりすることができます。また、日付やユーザー名などを変数で埋め込むこともできます。

image.png (1.0 MB)

初期設定のテンプレート

日報

image.png (1.1 MB)

議事録

image.png (1.1 MB)

手順書

image.png (1.0 MB)

テンプレートを使った記事の作成手順

実際にテンプレートを使った記事の作成手順について解説します。ここでは初期設定のテンプレートから「日報」を例に解説します。

  • 左上メニューの ① "NEW POST" ボタンをクリックして、新規記事作成画面を開きます。
  • ② "Select Template" をクリックすると、利用できるテンプレート一覧が表示されます。
    • image.png (604.9 kB)新規記事作成画面のみテンプレート選択が可能です。(投稿済みの記事の編集画面からは、テンプレート選択はできません。)
  • テンプレート一覧から③ "日報" を選択します。
    • image.png (585.7 kB)
    • なお、テンプレート一覧はテキスト検索で絞り込んで表示することもできます。
      (登録済みのテンプレート件数が多い場合に便利です)
      • image.png (477.9 kB)
  • テンプレートが適用された状態で、記事投稿ができます。
    • このとき、記事タイトルには下記のように今日の日付と自分のスクリーンネームが自動的にセットされます。
      (この仕組については「テンプレート変数」の項で後述します。)
      • image.png (1.2 MB)
  • 記事内容を編集して投稿します
    • image.png (1.4 MB)

テンプレートを作る・カスタマイズする

  • テンプレートは自由に作成したり、既存のテンプレートをカスタマイズしたりできます。また、日付やユーザー名などをカテゴリ、タイトルや本文に変数として埋め込むことも可能です。
  • 作成したテンプレートは、チームで利用することができます。

テンプレートの元記事について

  • テンプレートとして活用できる「元記事」は、普通の記事と同じようにチーム内の1記事として存在し、また普通の記事と同じように作成や編集ができます。
  • "Templates" というカテゴリの中に初期設定のテンプレートの元記事が用意されています。
    • image.png (1.1 MB)
    • これらのテンプレート元記事は編集やカスタマイズが自由に可能です。
    • また同じように "Templates" カテゴリの中に新しく作られた記事は、テンプレートとして利用することができます。
  • 下記は「日報」テンプレートの元記事の様子です。
    • テンプレートには、記事の画面上方に斜線の模様が入っており、その他の普通の記事と区別することができます。
    • image.png (276.4 kB)
    • image.png (322.2 kB)

テンプレートの作り方

  • 上記の元記事と同様に、"Templates/" カテゴリの中に作られた記事は、テンプレートとして利用することができます。
    • ただし、WIP状態の記事はテンプレートとして利用することができません。必ずShip It! して利用してください。
    • image.png (1.4 MB)
    • image.png (627.6 kB)

ユーザー名や日付などを変数にする(テンプレート変数)

  • 前述した日報などのテンプレートに見られるように、テンプレートには投稿者自身のスクリーンネームや投稿日の日付などを、変数でカテゴリ、タイトル、本文に自由に埋め込むことができます。
    • 日報、議事録などの記録を残すような記事を投稿するときに便利に利用できます。
    • image.png (561.6 kB)
    • image.png (681.9 kB)

利用できるテンプレート変数

テンプレートでは以下の変数を利用することができます。
上記で紹介した例の他にも、日付や曜日、ユーザーの名前等、様々な書式の変数が用意されています。

変数 効果
%{year} 本日の年 (e.g. 14)
%{Year} 本日の年 (e.g. 2014)
%{jyear} 本日の年度 (e.g. H26)
%{Jyear} 本日の年度 (e.g. 平成26)
%{jfyear} 本日の会計年度(4月始まり) (e.g. H25)
%{Jfyear} 本日の会計年度(4月始まり) (e.g. 平成25)
%{Year:-3m} 本日の会計年度(4月始まり) (e.g. 2013)
%{month} 本日の月 (e.g. 06)
%{Month} 本日の月 (e.g. Jun)
%{Monthname} 本日の月 (e.g. June)
%{Weekday} 本日の曜日 (e.g. Saturday)
%{Week} 本日の曜日 (e.g. Sat)
%{weekday} 本日の曜日 (e.g. 土曜日)
%{week} 本日の曜日 (e.g. 土)
%{cweek} (当月における)暦週 (e.g. 4)
%{cWeek} 暦週 (e.g. 25)
%{day} 本日の日 (e.g. 03)
%{timestamp} UNIXタイムスタンプ(秒) (e.g. 1214022600)
%{Timestamp} UNIXタイムスタンプ(ミリ秒) (e.g. 1214022600123)
%{me} or %{screen_name} 自分の screen name (e.g. ken_c_lo)
%{name} 自分の名前 (e.g. Taeko Akatsuka)
%{team} チーム名
%{README} README に変換
%{} 空文字列に変換

テンプレート変数の拡張

%{day}%{month} など、時間に関係する全てのテンプレート変数は、以下のような記述で日付をずらすことが出来ます。

※: 例として2018/03/14 (水) の場合

記法 結果 補足
%{day} 14 本日の日
%{day:+2d} 16 %{day} を2日後の時点で評価
%{day:=mon} 12 %{day} を今週の月曜日の時点で評価

詳しくはこちら: ProTip/2018/03/14/テンプレート変数の拡張

応用編

ユーザー個人用のテンプレートを作る

チーム全体で利用できるテンプレートの他、ユーザー個人専用で使えるテンプレートも作ることができます。

  • Users/[screen_name]/Templates/ カテゴリ配下に記事を置くと、そのscreen_nameの人だけに表示されるテンプレートになります
    • 例: Users/fukayatsu/Templates/日報/%{Year}/%{month}/%{day}/TITLE

特定のカテゴリ配下にテンプレートを適用して記事を作成する

特定のカテゴリ配下の 「Create a new post」 ボタンで記事を新規作成するときに、カテゴリ名が一致する フロー タイプのテンプレートが用意されていれば、そのテンプレートが自動的に新規作成画面に適用されます。

例えば、以下のテンプレートがあったします。

  • Templates/カテゴリ1/YYYY/MM/DD/テンプレートA
  • Templates/カテゴリ1/サブカテゴリ1/YYYY/MM/DD/テンプレートB

この場合、以下のように、カテゴリ名が前方一致し、かつフロー型のテンプレートが用意されている場合、自動的に記事作成画面に適用されます。

  • 「カテゴリ1」 配下で新規記事作成 → テンプレートA が自動適用

  • 「カテゴリ1/サブカテゴリ2」 配下で記事作成 → テンプレートB が自動適用

  • Templates/[適用したいカテゴリ名]/... という記事名で適用することができます。

例)「ProTip」カテゴリ配下に記事を作るときのテンプレートの適用方法

  • 「ProTip」カテゴリ配下用にテンプレートを予め用意しておきます。
    • 例として、Templates/ProTip/%{Year}/%{month}/%{day}/titleという記事名で、下記のようなテンプレートを用意しておきます。
      • image.png (243.7 kB)
  • 「ProTip」カテゴリ画面右上の "Create a new post here" ボタンを使って新規記事を作ります。
    • image.png (415.9 kB)
  • すると、先に用意したテンプレートが適用された状態で、新規投稿画面を開くことができます。
    • image.png (178.1 kB)

特定のテンプレートが適用された状態で新規投稿できるURL

  • https://[チーム名].esa.io/posts/new?template_post_id=[記事番号] にアクセスすると、その記事番号のテンプレートが適用された状態で新規投稿画面を開くことができます。
  • この機能はchatbotを使う場合や、READMEにリンクを埋め込む場合に便利です。
chatbot
@here 日報書きましょう! https://example.esa.io/posts/new?template_post_id=3
README.md
...
[議事録を書く](/posts/new?template_post_id=5)
...

APIからの利用

POST /v1/teams/:team_name/postsのパラメータに、テンプレートの記事番号を指定することでAPIからテンプレートを適用することも可能です。