Нашей команде необходимо автоматизировать многие рутинные задачи. Можем ли мы использовать один инструмент или нам нужно использовать несколько?

У нашей команды технических специалистов есть множество повторяющихся задач, требующих много времени, которые нам необходимо автоматизировать. В основном мы используем Sphinx , reStructuredText , Adobe Illustrator и Visio.

Конкретные вещи, которые нам нужно автоматизировать и сделать доступными через графический интерфейс или командную строку:

  • Создание файлов reSructuredText и связанных с ними индексных записей :toctree:с набором параметров, которые может указать автор, которые будут использоваться для заполнения таких полей, как :ref:имя, заголовок страницы, имя файла, индексные теги и местоположение страницы в пределах навигационная иерархия.
  • Перемещение разделов документации на новую позицию в оглавлении.
  • Открытие шаблона Visio и/или Illustrator и его соответствующая привязка в .rstфайле с указанной директивой, например рисунок или изображение с правильными размерами ширины/высоты и подписью.

Мы хотим свести инструменты к минимуму. Это должно быть решение, которому можно научить всю команду, в основном не имеющую опыта программирования, но желающую учиться.

Будет ли наиболее подходящей программа типа макроса, такая как Automator (мы используем Mac)? Нужно ли нам рассматривать язык программирования? Опять же, мы хотели бы выбрать одну технологию/инструмент, а не несколько.

Это не похоже на вопрос о предмете технической коммуникации в контексте этого сайта. Тот факт, что вы просто занимаетесь техническим письмом, просто совпадение с фактической темой этого поста. Мы должны оставаться немного осторожными, чтобы это не превратилось в общий компьютерный сайт.
Существует множество клавиатурных макросов, которые позволяют выполнять менее интеллектуальную, но, тем не менее, утомительную автоматизацию. Мне нравятся AutoHotKeys.
Я попытаюсь придать этому технологическую окраску :) Я создал сценарий VBA, который выполняет некоторые основные задачи редактирования документов Word (я называю его «Взгляд редактора»). Он просматривает документ и отмечает или изменяет установленный список известных проблем (заглавные буквы, выбор слов, орфография и т. д.). Это сэкономило мне (и моим авторам-инженерам, не являющимся носителями английского языка) много времени. Если вам интересно увидеть код, напишите мне в личку.
Я думаю, что тема абсолютно техническая, связанная с общением. Производительность и эффективность важны для каждого технического писателя, и, по моему опыту, написание сценариев для автоматизации задач технического общения очень помогло нашей команде сэкономить время на ручных задачах и сосредоточиться на фактическом написании. Я голосую за повторное открытие вопроса. Что касается ответа, наша команда широко использует Python для автоматизации задач, подобных упомянутым в вопросе.
@ Amruta2799: Я согласен, что это жизненно важный актив для команд технических специалистов, которые часто не имеют навыков программирования. Я постараюсь задать более предметный вопрос.
Я переформулировал вопрос в соответствии с полученными отзывами.
Я думаю, что это следует открыть повторно, потому что с правками речь идет об инструментах, обычно используемых в техническом письме.

Ответы (2)

Автоматизируйте скучные вещи с помощью Python , Эл Свейгарт. Это лучший единственный ресурс, чтобы узнать, как делать именно то, о чем вы просите. Это книга о программировании для людей, не являющихся программистами, и в ней основное внимание уделяется автоматизации повторяющихся задач, с которыми рабочие сталкиваются в течение рабочего дня. Вы можете прочитать ее онлайн бесплатно или забрать копию на Amazon или No Starch Press (ссылки на покупку книги есть на сайте).

Фантастический ресурс! Я использовал это, и это как раз тот инструмент, который нам нужен. Чрезвычайно гибкий, но доступный для нашей команды.

Чтобы автоматизировать любую задачу обработки данных, вам нужны две вещи:

  • Доступ к метаданным или шаблону в исходных данных, с которыми вы хотите действовать.
  • Возможность изменить метаданные или данные источника таким образом, чтобы не повредить файл и не сделать его нечитаемым.

Причина того, что так много систем, которые хотят обеспечить высокий уровень автоматизации, используют XML в качестве формата файла, заключается в том, что формат XML предназначен для облегчения этих двух операций. (Например, тот факт, что XML не использует указатели или структуры фиксированного размера, означает, что вы можете обновлять его содержимое без необходимости обновления других данных в файле.)

Существует также много хороших проверенных инструментов для работы с XML, как для доступа к метаданным и шаблонам в файле, так и для обновления файлов без их повреждения.

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

Большинство языков программирования, конечно, позволят вам получить доступ или обновить практически любой файл, но, помимо библиотек для работы с определенными форматами, они также полностью оставляют на ваше усмотрение расшифровку того, как читать и записывать эти форматы файлов и что может быть очень нетривиальным. Python — отличный выбор, если вы идете по этому пути, но учтите, что если вы не сможете найти библиотеки для управления всеми форматами файлов, которые вы используете, потребуется много работы, чтобы ваша автоматизация работала надежно, и что обновление в любом задействованных форматов файлов может сломать его.

Итак, ответ заключается в том, что вам, вероятно, понадобятся различные инструменты. Но тогда, конечно, вы сталкиваетесь с проблемой, что вам нужно интегрировать работу и обмен информацией между этими инструментами.

Все это говорит о том, что если вам нужен высокий уровень автоматизации, возможно, вам лучше не искать инструменты для автоматизации задач во всех форматах, которые вы используете сейчас, а искать формат или форматы, которые уже имеют отличные функции автоматизации или которые были разработаны так, чтобы ими было легко манипулировать. И этот поиск, вероятно (хотя и не обязательно), приведет вас к XML.