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

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

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

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

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

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

1 Ответ

0 голосов
/ 27 сентября 2019

Бренда.

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

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 ()», и, если он соответствует вашим условиям, добавьте элемент в список приоритетов.

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

...