Используйте другой аддон для Google Apps Script Google Docs - PullRequest
0 голосов
/ 07 июня 2019

Я сделал приложение, которое конвертирует документ в формат MLA (например, Times New Roman, 12 pt и т. Д.), И теперь я хотел бы сделать еще один шаг, чтобы позволить пользователю выбрать все ссылки, и я хочуиспользовать EasyBib API для составления цитат из них.В EasyBib есть надстройка, в которой, если вы вставите ссылку, она дает ссылку, и вы нажимаете «Добавить библиографию в документ», чтобы добавить цитату MLA в алфавитном порядке на страницу «Процитированная работа», последняястраница в документе Google.Поиск этой проблемы оказался бесполезным.

function myFunction() {
  /*
  This function turns the document's format into standard MLA.
  */

  var body = DocumentApp.getActiveDocument().getBody();
  body.setFontSize(12); // Set the font size of the contents of the documents to 12
  body.setForegroundColor('#000000'); // Set the color to black
  body.setFontFamily("Times New Roman"); // Set the font family to Times New Roman (standard MLA)
  body.editAsText().setBold(false); // Make everything not bold

  // Set the four headings at the top
  var datum = '3 February 1976';
  var course = 'Social Studies';
  var teacher = 'Your Teacher\'s Name Here';
  var student = 'Your Name Here';
  if (body.getParagraphs().length >= 4) {
    var firstPar = body.getParagraphs()[0].getText();
    var secondPar = body.getParagraphs()[1].getText();
    var thirdPar = body.getParagraphs()[2].getText();
    var lastPar = body.getParagraphs()[3].getText();

    if (!(firstPar == student && secondPar == teacher && thirdPar == course && lastPar == datum)) {
      body.insertParagraph(0, datum).setIndentFirstLine(0);
      body.insertParagraph(0, course).setIndentFirstLine(0);
      body.insertParagraph(0, teacher).setIndentFirstLine(0);
      body.insertParagraph(0, student).setIndentFirstLine(0); 
    }
  } else if (body.getParagraphs().length >= 1 && body.getParagraphs()[0].getText() !== '') {
    body.insertParagraph(0, datum).setIndentFirstLine(0);
    body.insertParagraph(0, course).setIndentFirstLine(0);
    body.insertParagraph(0, teacher).setIndentFirstLine(0);
    body.insertParagraph(0, student).setIndentFirstLine(0);
  }
  // Loops through paragraphs in body and sets each to double spaced
  var paragraphs = body.getParagraphs();
  for (var i = 0; i < paragraphs.length; i++) {
      var paragraph = paragraphs[i];

      // Double-spaced
      paragraph.setLineSpacing(2); 
      // Left align the first cell.
      paragraph.setAlignment(DocumentApp.HorizontalAlignment.LEFT); 
      if (i > 3) {
        // Set to 1 indent per paragraph
        Logger.log(paragraph.getIndentFirstLine());
        paragraph.setIndentFirstLine(36);
      }
  }
}

function onOpen() {
  var ui = DocumentApp.getUi();
  ui.createMenu('AutoFormat')
      .addItem('MLA', 'myFunction')
      .addToUi();
}

onOpen()

У меня вопрос, какой код мне нужно использовать для использования дополнения EasyBib или любого другого дополнения в Документах Google в Google Apps Script

1 Ответ

1 голос
/ 08 июня 2019

Нет общего способа использовать стороннее дополнение из скрипта Google Apps.Каждый разработчик дополнения должен решить, будет ли он добавлять API для своего дополнения.Хотя, возможно, я обнаружил, что существующие веб-службы, имеющие собственный API, создают надстройку, облегчающую использование их службы, а не наоборот.

...