2

问题:如何阅读 google docs doc 中的标题参考(格式为#heading=h.12345)?

背景:想在文档中使用交叉引用。例子。

1.1 Chapter 1 (i.e. paragraph has heading DocumentApp.ParagraphHeading.HEADING1)

Sample text. For more, see chapter 1.2.

1.2 Chapter 2

Sample text. For more, see chapter 1.1.

现在,谷歌文档可以进行交叉引用(插入链接),但是是“普通”链接并且不带有章节号。

因此,方法是: - 插入交叉引用的链接

  • 使用应用程序脚本,构建标题参考和章节编号的索引

  • 也使用应用程序脚本,更新查看基于其链接的章节文本

我查看了 getLinkUrl 没有成功:

var links = [];
var ps = DocumentApp.getActiveDocument().getBody().getParagraphs();
for(var i = 0; i < ps.length; i++) {
  var h = ps[i].getHeading();
  if( h == DocumentApp.ParagraphHeading.HEADING1 ) {
    var t = ps[i].editAsText();
    var u = t.getLinkUrl();
  }
}

是否可以阅读标题参考?

4

2 回答 2

1

是否可以阅读标题参考?

绝对,至少从目录来看。这些参考在attributesTOC 条目中。您可以在这个答案中看到一个带有脚本的示例。

于 2013-09-12T01:27:38.823 回答
1

这是您的代码(稍作修改)以检测 HEADING1 假设只有一个实例。它可以适应检测其他标题类型和多次出现。

function get_some_heading() {
  var ps = DocumentApp.getActiveDocument().getBody()
  var searchType = DocumentApp.ElementType.PARAGRAPH;
  var searchHeading = DocumentApp.ParagraphHeading.HEADING1;
  var searchResult = null;

  while (searchResult = ps.findElement(searchType, searchResult)) {
    var par = searchResult.getElement().asParagraph();
    if (par.getHeading() == searchHeading) {
      // Found one, update Logger.log and stop.
      var h = searchResult.getElement().asText().getText();

      return h;
    }
  }

  //return null or something
}

这是枚举段落标题参考,这是上面使用的搜索模式参考(用于稍微不同的用例)。

于 2017-01-01T01:31:30.970 回答