继续介绍昨天主流程里的副程序吧。
今日要点:
》Google Docs 转换 API Blueprint 格式之二
昨天我们把主程序介绍完了,今天继续来介绍相关的副程序:
程序码如下:
在文件中,前面几列是 API 的基本资料,如说明、API 名称等。
///////////////////////////////////////////////////////
//处理表格每一列的内容
///////////////////////////////////////////////////////
function parseRowData(row, array){
switch (row) {
case 0:
var title = array[row][2];
title = title.replace(/\(/g, "(").replace(/\)/g, ")");
gApibConent = gApibConent + NL +
"## "+ title + " [" + REPLACE_URL + "]" + NL;
break;
default:
//找寻区块的开始列
for ( var index = 0; index < gSegmentTitle.length; ++index ) {
if(array[row][0].indexOf(gSegmentTitle[index])>-1) {
gSegmentIndex[index] = row;
}
}
}
}
在文件中,前面几列是 API 的基本资料,如说明、API 名称等。
因为他的格式跟其他的段落不太一样,所以需要独立一个副程序来处理。
///////////////////////////////////////////////////////
//处理基本资料的 table 内容
///////////////////////////////////////////////////////
function makeHeaderTable(arr){
var str = "";
str = str +
"<table>" + NL ;
var len = arr.length;
for ( var row = 0; row < arr.length; ++row ) {
var thtd = "th"; //标题的栏位用 th, 前端呈现会是蓝色
str = str +
" <tr>" + NL ;
if(row==1){
str = str +
" <td>" + arr[row][0] + "</td>" + NL +
" <td colspan=2>" + arr[row][1] + "</td>" + NL;
}else{
if(row>0){thtd = "td"}
for ( var cell = 0; cell < 3; ++cell ) {
str = str +
" <"+ thtd +">" +
arr[row][cell].replace(/ /g, " ").replace(/\n/g, "<br>") +
"</"+ thtd +">" + NL ;
}
}
str = str +
" </tr>" + NL;
}
str = str + "</table>" + NL;
Logger.log("makeHeaderTable(arr) = \n" + str); // debug
return str;
}
Logger.log 的执行结果:
最後我们组合 Action 区块,这里要从 API 文件各段落中,取出 Action 区块中所需要的变数。主要是:
///////////////////////////////////////////////////////
//处理 Action 区块
///////////////////////////////////////////////////////
function makeActions(arr){
var func = arr[0][1];
var title = arr[0][2];
var method = arr[(gSegmentIndex[2]+1)][1];
var str = "";
str = str + NL + "### try:" + title + " [" + method + "]" + NL + NL ;
str = str + "+ Parameters" + NL;
str = str + " + name: Jason (string, optional) -查询人的姓名" + NL;
str = str + " + func: "+ func + " (string, required) - 要呼叫的功能名称" + NL;
str = str + NL ;
str = str + "+ Response 200 (application/json)" + NL ;
str = str + NL ;
Logger.log("makeActions(arr) = " + str); // debug
return str;
}
Logger.log 的执行结果:
最後我们在云端硬碟中指定一个建好的资料夹,在这个资料夹中建立一个新的档案,把组合好的内容,存放进去。
///////////////////////////////////////////////////////
//汇出到 apib 档
///////////////////////////////////////////////////////
function createGoogleDriveTextFile(content) {
var dir = DriveApp.getFolderById("1qihF3An6UJykI8TEii...");
fileName = "铁人赛-API-文件-Demo-程序自动产生-" + VER + "-" + getTimestemp() + ".apib";
var file = dir.createFile(fileName, content);
};
以上就是 Google Docs 转换 API Blueprint 格式的全部转换程序码了。有些地方还可以写的更弹性,後续有时间的话再进行修正优化,让这专案的程序可以适应更多的表格型式。
<<: 应用程序快速更新还原,让服务持续运作不中断,公司财源滚滚,老板开心,大家开心
>>: [Day25]程序菜鸟自学C++资料结构演算法 – 快速排序法(Quick Sort)
As a Linux Administrator, You must know the import...
在生活中,我们常常面临选择, 今天午餐吃什麽好呢?饭还是面呢? 明天要去哪里玩?山上还是海边呢? 那...
今天邀请到旺宏科学奖的旺宏奖得主及以学测 APCS 组入学交大的 Jayinnn 来分享~ 访谈连结...
前言 本文说明使用TA-Lib函式库计算OBV指标。 OBV指标 OBV能量潮指标(On Balan...
[ 30 Days of ML Challenge | D03] 今天提供一个文件以及一个练习教材,...