[Google Script]用Array製作大量Google Site頁面

製作Google Site的頁面從來就不是一件難事,動動手指製作空白頁面只需要10多秒,但是如果需要同時製作多達50個頁面的話,可能就是件相當痛苦的事情。
製作50個頁面這件事情多半不會遇到,遇到了還是得硬著頭皮來完成,話說Google Apps Script就提供了相當方便的工具,可以輕鬆解決這類型的問題,關於Google Apps Script的妙用後續會有多不同應用程式的整合,這篇我們來解決用用Array製作大量Google Site頁面。


在Google Site內使用Google apps script要先點 [管理協作平台]到後台,然後點選[應用服務指令碼],點選新增指令碼。

這次我遇到的任務是這樣的,我需要幫全縣的國中小製作相同的頁面,主程式的內容大概是下面的樣子。

 var schoolArray = [
 ["縣立馬公國中","mkjh"],
 ["縣立文光國中","wgjh"],
 ["縣立中正國中","ccjh"],
 ["縣立澎南國中","pnjh"],
 ["縣立湖西國中","hsjh"],
];
function creareFileCabinetFromTamplate() {
    var site = SitesApp.getSite("mail.phc.edu.tw", "104-phc-ceag-teacher-enhancement-program");
    var tamplate = site.getTemplates()[0];
    var page = site.getChildByName("school-course-plan");
    for (i = 0; i < schoolArray.length; i++) {
        page.createPageFromTemplate(schoolArray[i][0], schoolArray[i][1], tamplate);
    }
}
  1. 首先要針對要使用的Site進行定義,SitesApp.getSite後面跟了兩個參數,第一個是指定應用服務的網域,第二個參數是Google Site網站主頁的url(不是網站名稱喔)。
  2. 接著要找到我們要製作的頁面,我這使用getChildByName(),用法是site.getgetChildByName(),取得子頁面的方法有getChildByName()、getChildren(),使用ByName比較有簡單明確的指向性。
  3. 上兩步指定完位置後,就可以開始製作頁面,這裡用的是page.createPageFromTemplate(title, name, template),第一個參數是頁面的title,這裡可以理解成頁面的中文標題,第二個參數是頁面的url,ㄧ般是用英文做為頁面名稱,第三個參數是範本的來源。
  4. 範本的來源用site.getTemplates(),如果是網站的第一個範本使用getTemplates()[0]就是,如果不知道是哪一個範本也可以使用Logger.log(templates[i].getName()把他找出來。
  5. 儲存,然後執行creareFileCabinetFromTamplate這支程式就可以囉。
需要微調內容的話,就編寫schoolArray裡面的陣列就可以了。

這個網誌中的熱門文章

【Google Site】iframe簡單嵌入.swf

【Google Site】用html小工具做出marqueer效果