🛠️

Google Apps Scriptで作ったWebページにタイトルを付ける

2023/01/09に公開

概要

Google Apps ScriptでWebページを公開する際に、HTMLにtitleタグを付与しても何故か反映されない
微妙に困る挙動なので、自前でタグを解釈し反映させる

環境

個人用アカウントのGoogle Apps Script

ファイル構成

index.html ... トップページ
main.gs ... ウェブページの表示処理

ソースコード全体

function doGet(e) {
  let html = HtmlService.createTemplateFromFile('index');
  return html.evaluate().setTitle(getTitle('index'));
}

function getTitle(page) {
  let contents = HtmlService.createHtmlOutputFromFile(page + '.html').getContent()
  const re = new RegExp('(?<=<title>).+(?=</title>)');

  let title = null
  if (re.test(contents)) {
    title = re.exec(contents)[0].trim()
  }

  return title
}

解説

getTitle関数で対象のhtmlファイルを取得し、titleタグの内容(文字列)を返却する
doGet側は文字列をsetTitleすることで、ページにタイトルが設定される

#正規表現の内容については先読みと後読みでググるとヒットします

Discussion