Несколько копирайтеров + Google Docs = дорвей, сплог, СДЛ...

Автор: maximus. Posted in Блог

Привет ребятки, подмазывайте пятки! Сегодня технический пост про разные полезные фишки.

Сперва немного философии. Кто такой “сеошник”? По сути это человек, который находясь между веб-разработчиком сайта и разработчиком поисковой системы ищет разные ходы, лазейки, способы как обойти ограничения или пролезть в узком месте за счет автоматизации и знаний и получить преимущество там, где остальные конкурируют деньгами. Во как завернул. Исходя из этого определения получается, что сеошник должен не только эффективно обходить и подстраиваться под поисковые алгоритмы, но должен так же и эффективно организовывать свою работу и работу своей команды.

Вот про оптимизацию работы команды сегодня и поговорим.

Очень часто, тем кто работает не в одиночку, приходится увязывать работу нескольких людей, будь то копирайтер, дизайнер, программист либо ещё кто-то. Удобным средством для такой совместной работы является сервис Google Docs. Думаю все знают, кто не знает – нагуглит. В чем же удобство? Мне нравится хороший табличный процессор с возможностью групповой работы – все базовые возможности Excell в окне браузера + история изменений + групповая работа. Кто использует Google Docs, дружно скажите “Я” и поднимите руки, ну вот – лес рук.

Но оказывается, кроме групповой работы гугл даёт мощный инструмент в виде Google Script, который позволяет на Java-подобном языке городить различные обработки введённых в таблицы данных. И вот эта возможность заставляет играть таблицы новыми красками.

Представим себе такой сценарий работы – несколько копирайтеров распарсивают вам в таблицу сложные неструктурированные данные, которые вы потом при помощи нажатия одной кнопки преобразуете в формат импорта в вашу CMS или даже сразу в static-html сайт, который тут же можно залить на хостинг. Интересно? Прошу под кат…

Кто-то возможно тут скажет, зачем использовать Google Docs, когда есть море софта + можно что-то под себя запилить с админкой, блэк-джеком и т.п. Отвечу: в том и фишка, что обладая посредственными навыками программирования вы получаете готовый табличный редактор с групповой работой и прикручиваете ему уже нужный вам функционал.

Итак, задача – из структурированных в таблицу Google Docs данных сделать красивый HTML пригодный для использования по назначению.

Я не буду более точно конкретизировать задачу, потому что их тьма. Мы как минимум 2 задачи по СДЛ проектам сейчас решаем подобным способом. А можно напридумывать кучу – мониторинг, оповещение по email, рассылки (не очень массовые), обработка заказов и т.д. и т.п. Я покажу принцип, а там может кто чего придумает сам.

Предположим у нас есть таблица подобного рода, только на много много строк:

image

Эту таблицу мы собрали из разных источников разными способами, главное, что к табличному процессору есть многопользовательский доступ. Т.е. таблица это результат работы команды.

Из этой таблицы нам нужно сгенерировать html файлы для дальнейшего их использования. Призываем на помощь Google Script.

image

Через меню Инструменты – Редактор скриптов попадаем в простую среду разработки в которой можем писать код. Не буду тут приводить интерфейс, приведу код:

function HTML_out(){  

  var ss = SpreadsheetApp.getActiveSpreadsheet();

  var old_res = ss.getSheetByName("Результат");
  if (old_res != null) {
    ss.deleteSheet(old_res);
  }
  
  var res = "";
  ss.setActiveSheet(ss.getSheets()[0]);
  var sheet = ss.getSheetByName("Исходные данные");
  var rows = sheet.getDataRange();
  var numRows = rows.getNumRows();
  var values = rows.getValues();

  var new_sheet = ss.insertSheet("Результат");
  var row = values[0];

  var template = MakeHTMLTemplate();
  
  for (var i = 0; i <= numRows - 1; i++) {
    row = values[i];
    
    template.title = row[0];
    template.description = row[0] + row[1];
    template.keywords = row[1];
    template.html = row[2];
    
    res = template.evaluate().getContent();
    
    new_sheet.getRange("A" + (i+1) ).setValue(res);
  }
}

//----------------------------------------------------
// создаём менюшку
function onOpen() {
  var menu = [{name: 'Выгрузить HTML', functionName: 'HTML_out'}];
  SpreadsheetApp.getActive().addMenu('Выгрузка', menu);
}
//----------------------------------------------
//----------------------------------------------
// создаём ХТМЛ шаблон
//----------------------------------------------
function MakeHTMLTemplate(){
  var template = HtmlService.createTemplate('<!DOCTYPE html> \n \
<html> \n \
<head> \n \
    <title><?= title ?></title>\n \
    <meta http-equiv="Content-type" content="text/html" charset="UTF-8" />\n \
    <meta name="keywords" content="<?= keywords ?>">\n \
    <meta name="description" content="<?= description ?>" /> \n<\n \
    <link type="image/x-icon" rel="shortcut icon" href="favicon.ico" /> \n \
    <link type="text/css" rel="stylesheet" href="/css/main.css" /> \n \
    <script type="text/javascript" src="/js/main.js"></script> \n \
</head> \n \
<body> \n \
<script type="text/javascript" src="/js/ga.js"></script> \n \
    <div class="body"> \n \
    <?= html ?> \n \
    </div>\n \
</body> \n \
</html>');
  
  return template;
}

Немного наговнокодил тут, но чтобы показать принцип. Сперва хотел подробно расписать, что для чего, но потом подумал что всё же это не гайд по программированию, если кому не понятно “чокаво” в комментах расскажу, ну или напишу отдельно статью подробней.

Главное, это принцип, если понял и проникся, то в справке по Google Script можно найти что требуется. На крайняк stackoverflow поможет.

В результате работы скрипта появляется вот такая менюшка прямо в таблице:

image

Кстати, такая возможность, добавлять свои меню и функции в интерфейс сильно упрощает работу для пользователей непрограммистов, грубо говоря – вы делаете нужный функционал, прячете его в меню, а дальше контент-менеджер просто жмакает кнопки и получает нужный результат, не задумываясь, что там под капотом и как чего работает.

В результате исполнения скрипта в самой таблице появляется лист “Результат”:

image

Вот с таким содержанием:

image

Можно конечно же всё это сохранять прямо в папку на гуглдиске, либо отсылать на почту, либо куда-то по ftp заливать, я для упрощения примера и сокращения кода вывел это всё в таблицу.

Вот тут исходный файл, можете растаскивать себе, смотреть, экспериментировать. При первом запуске Google спросит разрешение на запуск скриптов (так делается для каждого, даже созданного вами скрипта). Обращаю внимание что хакать меня через этот скрипт бессмысленно, поскольку скрипт исполняется в вашем окружении – в вашем браузере в контексте вашего Google Docs.

Всем бобра и удачной работы!

UPD1: В связи с потенциальной угрозой безопасности читателей сменил доступ к файлам на "только чтение" теперь скрипты не работают в примерах, в связи с этим код скрипта вынес в отдельный файл, вот ссылка: рабочий код
Просто скопируйте его в свой проект.

Комментарии   

vinc
+1 #11 vinc 23.04.2015 19:20
Благодарю
Цитировать | Сообщить модератору
new balance 410 muje
0 #12 new balance 410 muje 01.09.2016 01:29
I'am a big fan new balance 410 mujer of motoracing! See ya at the race.
Цитировать | Сообщить модератору
The Word Point
0 #14 The Word Point 08.09.2017 15:25
Businesses are erasing the boundaries between nations
and as a fruit, communication play the chief part in expanding
your reach as entrepreneur. Communication, in this matter, is the wit to translate between any
cant brace there is and the transfiguration services boom has made
it calm easier. You just from to change steady the flock you trust your
transference offers fair help, which can be verified through checking
the reviews of the fastidious one.
Цитировать | Сообщить модератору
PickWriters
0 #15 PickWriters 24.09.2017 14:53
It has not till hell freezes over been easier to opt
between the rewriting services, as all character opinions
and testimonials are gathered in ditty part of the
country for you to pick the best. Bolt bad supremacy and as a result bad endure by means
of consulting any transmission website reviews. Entirely written testimonials will influence you including the process of selecting the one and
alone change checking that will fit your needs.
Цитировать | Сообщить модератору
Craft Room for Pre
0 #16 Craft Room for Pre 29.09.2017 11:12
I love this video, for it steals my captivation, like as a book, and
leaves me aspiring to write wonderful, numerous tomes.
Цитировать | Сообщить модератору
C++ Qt 40
0 #17 C++ Qt 40 29.09.2017 11:56
I never tried to write a book before I just watch videos about how to write books I might write one
in the future I got a good idea for one
Цитировать | Сообщить модератору
Production Coach
0 #18 Production Coach 05.10.2017 01:33
I love the case study section. Thanks you guys for taking the time and effort to make this great content.
With love from Malaysia.
Цитировать | Сообщить модератору

Добавить комментарий


Защитный код
Обновить

Монетизация

Представьтесь