Java および Python の Google Apps Platform プロトコル ガイドでは、ページのタイトルが次の (不完全な) ルールを使用してパスに正規化されると説明しています*:
正規化は、空白を「-」にトリム + 縮小し、az、AZ、0-9、-、_ に一致しない文字を削除することです。
Google Apps Script について見つけることができるドキュメントはなく、できれば Google サイトの UI と同じ方法でこれを実現するヘルパー関数を見つけることができません。
私の最初の試み - これは完全ではありません (Google サイトの UI が文字列の開始と終了を処理する方法を扱っていません) は次のようになります。
str.trim().replace(/\s+/g, '-').replace(/[^a-z0-9_-]/ig, '-').toLowerCase();
これを使用しているコンテキストは、ページ タイトルのリストがあり、そのページがサイトに既に存在するかどうかを判断しようとしているということです。残念ながら、テキスト表現を使用して確認することはできません。
たとえば、Google サイトの「新しいページ UI を作成する」を使用すると、「004.ポリシーの展開 (方針管理)」というページのパスは「004-ポリシー-展開-方針管理」になります。
使用中、次のように、ページが存在するかどうかを確認し、存在する場合は何かを実行し、存在しない場合は別のことを実行しようとしています:
if (mySite.getChildByName(myNewPagePath) != null) {
// do something for pages that exist
} else {
// do something for pages that don't exist
}
* https://developers.google.com/google-apps/sites/docs/1.0/developers_guide_protocol
質問:
- ページのタイトルを正規化する既存のヘルパー関数はありますか?
- ページが既に存在するかどうかを確認するより良い方法はありますか?
- パスではなく、エンド ユーザーのタイトルでページが存在するかどうかを確認する方法はありますか?