来练习把写在 Google Docs 里
查询Gmail资讯
API 表格的转成 API Blueprint 格式吧。
今日要点:
》Google Docs 转换 API Blueprint 格式之一
在前置作业与介绍都完成後,今天终於要来撰写 Google Apps Script 程序码来进行格式转换了。我们在
经过上述几天的介绍,我们已经把转换时所要的资讯都准备好了。
可以开始把 【Day 7】介绍的 Google Docs 转换成 【Day 22】 API Blueprint 格式。
我们程序码大概分几个部份
程序码如下:
var gApibConent =""; //要存到apib档的内容
const NL = "\n"; //NEWLINE
const REPLACE_URL = "REPLACE_URL";
const HOST = "https://script.google.com";
const VER = "v1.0";
//各段标题的起始列
var gSegmentTitle = ["Request Url Params", "Response Body", "Sample"];
var gSegmentIndex = [-1, -1, -1];
var gSegmentColspan = [3, 3, 2];
///////////////////////////////////////////////////////
//主要入口
///////////////////////////////////////////////////////
function doGet(e){
gApibConent =
"HOST: " + HOST + NL +
"FORMAT: 1A" + NL + NL +
"# 铁人赛 2021 " + NL +
"## Version" + NL +
VER + NL +
NL ;
readDocById('1AvS30VgjUNSYwg_sEpOd......'); //铁人赛 API 文件 Demo
createGoogleDriveTextFile(gApibConent);
Logger.log('转换完成');
}
///////////////////////////////////////////////////////
//读取 google Dos 档案, 处理每个表格
///////////////////////////////////////////////////////
function readDocById(id) {
var doc = DocumentApp.openById(id);
var tables = doc.getBody().getTables();
var docfilename = doc.getName();
Logger.log("开始转换 docfilename = " + docfilename);
var groupTitle = docfilename.split("-")[1];
gApibConent = gApibConent + NL + "# Group "+ groupTitle + NL;
Logger.log("groupTitle = " + groupTitle);
//读取每一个表格
for (var tableIndex in tables)
{
var table = tables[tableIndex]; //取出第 n 个 table
var tablerows = table.getNumRows(); //取得有几列
gSegmentIndex = [-1, -1, -1, -1];
//读取表格中的每一列
var array = [];
for ( var row = 0; row < tablerows; ++row ) {
var tablerow = table.getRow(row)
//读取一列中的每一格Cell
array[row] = [];
for ( var cell=0; cell < tablerow.getNumCells(); ++cell) {
var celltext = tablerow.getChild(cell).getText();
array[row][cell] = celltext;
}
parseRowData(row, array);
}
//处理 API 的描述区块
makeApiDescription(array, tablerows);
//处理 URL 置换
var sampleURL = array[(gSegmentIndex[2]+2)][1].replace(/ /g, "").replace(HOST, "");
sampleURL = sampleURL + "{?name,func}";
gApibConent = gApibConent.replace(REPLACE_URL, sampleURL) ;
//处理 Actions 区块
gApibConent = gApibConent + makeActions(array);
}
}
function makeApiDescription(array, tablerows){
//处理基本资料的 table 内容
gApibConent = gApibConent + makeHeaderTable(array.slice(0, 2));
//处理各区块的 table 内容
if(gSegmentIndex[0]>-1){
if(gSegmentIndex[1]>-1){
gApibConent = gApibConent + makeTable(gSegmentColspan[0], array.slice(gSegmentIndex[0], gSegmentIndex[1]));
} else if(gSegmentIndex[2]>-1){
gApibConent = gApibConent + makeTable(gSegmentColspan[0], array.slice(gSegmentIndex[0], gSegmentIndex[2]));
} else if(gSegmentIndex[3]>-1){
gApibConent = gApibConent + makeTable(gSegmentColspan[0], array.slice(gSegmentIndex[0], gSegmentIndex[3]));
}
}
if(gSegmentIndex[1]>-1){
if(gSegmentIndex[2]>-1){
gApibConent = gApibConent + makeTable(gSegmentColspan[1], array.slice(gSegmentIndex[1], gSegmentIndex[2]));
}
}
if(gSegmentIndex[2]>-1){
gApibConent = gApibConent + makeTable(gSegmentColspan[2], array.slice(gSegmentIndex[2], tablerows));
}
}
以上就是 Google Docs 转换 API Blueprint 格式主要程序流程介绍,明天继续把副程序介绍完,今天就先这样罗。
引言 昨天学了 chmod 命令的用法,这边大概整理几个简单用法: $ chmod 参数 目标档案...
前言 React hooks 是在 React 16.8 版本才加进来的功能。那到底什麽是 Hook...
在进行串接前,首先需要有定义串接的规格,例如:串接的协定 (HTTP、或走 FTP 档案交换等等)、...
接续昨天,今天要讲的是ExpandableListView的主体拉,首先创一个java档,我命名为M...
如果我有一个数字的阵列变数[2, 1, 2, 3, 5, 6, 8, 9],想要计算(0~9)各个数...