Есть ли способ автоматически перемещать текст в определенные разделы в Документах Google в зависимости от того, каким цветом я его выделяю?

Итак, давайте посмотрим, смогу ли я объяснить это правильно.

Я использую Google Doc для отслеживания списка дел на работе. Когда я добавляю что-то, что требует немедленного внимания, я выделяю этот маркер и описание задачи ярко-желтым цветом. Меньшие задачи, получить другой цвет и т. д. Я разбиваю свои задачи на разные списки под разными заголовками в зависимости от типа проекта (так что у меня есть заголовок «Веб-сайт», а под ним маркированный список для всех задач, которые я нужно сделать это, чтобы обновить веб-сайт, у меня есть заголовок «Видео» и список под ним со всеми задачами, которые мне нужно выполнить для видео, и так далее). Затем в каждом разделе я выделяю в зависимости от приоритета.

В моем списке много разделов, и мне бы хотелось, чтобы при выделении задачи в данном разделе как «первоочередной» ярко-желтым цветом она автоматически копировалась и перемещалась в раздел. в самом верху моего документа под заголовком «Приоритеты», чтобы я мог видеть все в одном месте все высокоприоритетные задачи, которые я хочу выполнить во всех своих проектах, без необходимости просматривать каждый раздел в моем документе и потенциально что-то упускать .

Возможно ли это сделать? Я слышал о Google Apps Script, но никогда особо в него не вникал. У меня есть базовые знания в области кодирования, и я обычно могу разобраться с HTML, Javascript и т.д.

Возможно ли что-то подобное? И как бы я поступил?


comment
Я дал ответ с точки зрения кодирования, но вам также необходимо подумать о том, как вы будете запускать код. Я полагаю, вы могли бы связать сценарий с функцией пользовательского меню, как показано здесь: developers.google. .com/apps-script/guides/menus   -  person Aleister Tanek Javas Mraz    schedule 27.09.2019
comment
Я думаю, вам следует рассмотреть возможность использования вместо этого электронных таблиц, это может упростить управление данными так, как вы хотите, и использование сценариев приложений с ним работает хорошо. Выполнение этого из документа было бы сложным, потому что если у вас есть абзац и одно предложение одного цвета, а другое предложение другого цвета, это может усложнить дело, на листе вы можете организовать списки и легко управлять выделением. Это приемлемый подход?   -  person AMolina    schedule 30.09.2019


Ответы (1)


Бренда.

Вероятно, вы начнете с этого:

var doc = DocumentApp.getActiveDocument();
var body = doc.getBody();
var lists = body.getListItems();

var childIndex = 0;
for (var i = 0; i < doc.getNumChildren(); i++) {
    var child = doc.getChild(i);
    if (child.getType() == DocumentApp.ElementType.LIST_ITEM){
      while(child.getType() == DocumentApp.ElementType.LIST_ITEM){
        child = doc.getChild(i)
        childIndex = body.getChildIndex(child);
        Logger.log(childIndex)
        i++
      }
      child = doc.getChild(i-2)
      var listId = child.getListId();
      Logger.log(childIndex)

      // You'll want to do something like...
      // if child.getBackgroundColor() == "Yellow"...

        // Here you can add an element to your "Priorities" list as well:
        // var newElement = child.getParent().insertListItem(childIndex, elementContent);
        // newElement.setListId(child);
      break;
    }
}

Вот хорошая ссылка: https://stackoverflow.com/a/20729760/5415398

И еще: https://stackoverflow.com/a/26419644/5415398

Здесь вы получаете документ, его тело и любые содержащиеся в нем списки. Вы можете либо использовать переменную «списки» напрямую, либо вместо этого вы можете перебрать все дочерние элементы документа, и для любого из них, которые являются LIST_ITEM, они могут быть обработаны по мере необходимости.

Вы попытаетесь зафиксировать выделение элемента списка с помощью функции «.getBackgroundColor()», и, если это соответствует вашим условиям, добавьте элемент в список приоритетов.

(Примечание: этот ответ можно и нужно улучшить, чтобы он был полным.)

person Aleister Tanek Javas Mraz    schedule 27.09.2019