Рубрики
Без рубрики

Как генерировать файл Markdown GitHUB из Microsoft Word, используя Teamscript

Манш Бананл Что? Почему хотелось бы создать файл MD из документа Microsoft Word? Если это первая мысль, которую вы имели после прочтения этого названия, то позвольте мне дать вам сильное использование. Рассмотреть ситуацию, когда вы используете Git или любой другой

Автор оригинала: FreeCodeCamp Community Member.

Манес Банан

Какой? Почему хотелось бы создать файл MD из документа Microsoft Word? Если это первая мысль, которую вы имели после прочтения этого названия, то позвольте мне дать вам сильное использование.

Рассмотрим ситуацию, когда вы используете GIT или любую другую систему управления версиями (VCS) для источников вашего проекта, а также его артефакты. Теперь, как и большинство проектов, вы решите использовать Microsoft Word для документирования и проверять его в Git. Опять же, несколько членов команды редактируют тот же документ. После редактирования они проверяют документ в репозиторий.

Теперь Git сможет поддерживать историю вашего документа. Как вы сможете посмотреть изменения, которые были сделаны в документ, так как вы в последний раз проверили его? Да, вы можете использовать режим изменения отслеживания Microsoft Word, но не так воен? Или ради небес, вы сможете использовать утилиту Git Diff, чтобы быстро проверить различия? Я бы сказал, нет.

Тогда что такое решение? Стоит ли остановить использование Microsoft Word для документации? Или вы должны перейти на некоторые другие VCS?

Я не сказал ни один. Как насчет вас поддерживать документацию в Microsoft Word? Затем измените его в файл markdown (MD) (в условиях MAYMAN, текстовый файл) во время фазы сборки и регистрации? Если это решение возбуждает вас, то продолжайте чтение.

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

Что такое Markdown или файл MD?

Markdown – это синтаксический язык, направленный для удобного чтения и записи структурированного текста. Кроме того, легко учиться, и требуется только текстовый редактор для создания документа.

Теперь существует несколько реализаций языка (например GFM aka github roomosmed markdown). Каждая из этих реализаций имеет свои собственные улучшения и особенности, которые не обязательно совместимы друг с другом.

Каждая реализация поддерживает различные общие функции, такие как пункты, блокировки, заголовки и списки. Это помогает поддерживать текст структурированным способом, таким как Microsoft Word. Но вместо того, чтобы использовать внутренние двоичные коды, файлы MD используют символы простого текста для этих функций. Это делает MD файл текстового файла, но не двоичный файл, такой как файл DOCX.

Например, в аромате Markdown Github вот различные функции и способы представляют их в виде текста по сравнению с документом Word.

Для получения подробных преимуществ файлов MD над словными документами вы также можете обратиться к это статья.

ХОРОШО! Я убежден. Покажите мне код.

Отказ от ответственности: этот проект вдохновлен исходным кодом Typescript. При просмотре, я нашел эту идею преобразования документа Word в файл MD. Вы можете увидеть его исходный код здесь Отказ

Для простоты я удалил несколько разделов кода в моем репозитории. Оригинальный код был предназначен для преобразования документации по спецификации SpectScrient в файл MD. Этот файл содержит множество индивидуальных стилей. Итак, как только вы закончите с помощью этой статьи, вы можете очень пройти через код Converter TeampScript и ценим его способности выполнять более сложные преобразования.

Полный код, упомянутый в этой статье, может быть передан здесь Отказ Весь код можно разделить на 3 раздела:

  1. Конфигурации глотали.
  2. CScript выполнение.
  3. Типписная главная функция

Как уже говорилось ранее, вы можете преобразовать документ Word в файл MD во время фазы сборки. Это можно сделать любым заданным бегуном. Здесь я выбрал глоток.

В конфигурациях глотания я определил 3 задания. Первый – это очистить каталог сборки, который является довольно стандартным. Во-вторых – составить код TeampScript. И последний состоит в том, чтобы вызвать CScript для выполнения JavaScript.

Что такое CScript?

CScript.exe (присутствует в C: \ Windows \ System32) – это исполняемый файл на основе консоли для хоста сценариев, которые используются для запуска скриптов. Он может интерпретировать языки сценариев, такие как VB-скрипт или JavaScript. Точно так же у нас есть WSCRT, но используется для приложений Windows. В этом консоль не прикреплен. Поэтому, если у вас есть требование создания приложения на основе консоли, мы можем использовать CScript.

Теперь в нашем проекте главная работа CScript состоит в том, чтобы обеспечить среду выполнения в нашем скрипте I.e. JavaScript. Теперь вы должны думать, почему я не использовал узел вместо CScript для запуска моего JavaScript.

Оба обеспечивают временную среду выполнения JavaScript. CScript предоставляет присущую поддержку методике объекта компонентов Windows. Поэтому, если вы попытаетесь запустить этот скрипт через узел, вы получите такую ошибку.

Теперь, что такое технология объекта компонента?

Компонентная модель объекта – это технология, разработанная Microsoft. Это не язык, а двоичный стандарт. Согласно определению,

На терминах Mayman COM-объекты являются интерфейсами к различным объектам выполнения. (Вот почему определение имеет термин под названием «Двоичные программные компоненты»). Это не язык, а методика, которая является языком программирования агностической.

Единственное требование языка для COM заключается в том, что код генерируется на языке, который может создавать структуры указателей. Явно или неявно, вызов функции через указатели. Объектно-ориентированные языки, такие как C ++ и SmallTalk, предоставляют механизмы программирования, которые упрощают реализацию объектов COM

После этого мы можем использовать любой другой язык, такой как Java, VB или JavaScript, чтобы взаимодействовать с теми объектами COM. Это также даст нам доступ к приложениям времени выполнения. В нашем случае к приложениям Microsoft Word.

Итак, вы говорите, что мы не можем использовать узел вообще здесь?

Нет, это не правда. Мы можем использовать узел также вместо CScript. Но для поддержки COM, нам нужно будет установить другой пакет под названием Win32Com для поддержки COM. Подробности можно найти здесь Отказ

Окончательный код

Теперь, чтобы взаимодействовать со словом приложения, были использованы различные API. И поскольку мы используем модель COM Object, я передал Слово объектная модель Отказ

Слово предоставляет сотни объектов, с которыми вы можете взаимодействовать. Эти объекты организованы в иерархии, которая тесно следует пользовательскому интерфейсу. В верхней части иерархии объект приложения. Этот объект представляет собой текущий экземпляр слова. Объект Application содержит документ, выделение, закладка и объекты диапазона. Каждый из этих объектов имеет много методов и свойств, которые вы можете получить доступ к манипулированию и взаимодействию с объектом.

Теперь в нашем скрипте мы впервые создали объект приложения Word с помощью ActiveXObject. После получения объекта приложений объект документа создается путем передачи названия документа (полученного из аргументов командной строки CScript Calling).

Теперь это представляет собой активный объект фактического документа. Этот объект способен распределять, а также манипулирование документом Word. Однако в случае нашего использования нам нужно только разбирать документ и написать текстовый файл.

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

Вы можете найти фактический код типографии здесь Отказ Код довольно легко читать. Ниже несколько основных основных моментов этого:

  1. Первый , объект документа передан функции ConvertDocumentTomarkdowndown, которая возвращает текст, который будет записан в файле MD.
  2. Кроме того, в ConvertDocumentTomarkdown, методы и свойства объекта документа вызываются для поиска и замены соответствующих словных функций с соответствующим языком GFM Syntax. Например. Сначала ищется индивидуальные и смелые и читалические тексты. После этого текст заменяется по конкретному коду GFM. И, наконец, слов стили удаляются. Все это сделано здесь Отказ
  3. После этого перекрестные ссылки заменил Отказ Однако это сложно. Во-первых, функция TOGGLESHOWCODES вызывается. Это оказывает аналогичное влияние Alt + F9 в документе Word. Это заменяет все перекрестные ссылки в документ с кодом. После этого найдите и изменение метода, чтобы найти и заменить все перекрестные ссылки с стилем GFM. Здесь «19 Ref» передается как аргумент для функции. Это стандартный критерий поиска для поиска всех перекрестных ссылок в документе Word. Наконец, после замены, снова функция TOGGLESHOWCODES вызывается, чтобы вернуть документ в его первоначальную форму.
  4. Наконец, вызывается функция «Писатель», которая делает главную работу. Он считывает абзац документа по абзацу, а затем с использованием случая коммутатора, ищет стили абзацев (например, если он является заголовками или таблицей или абзац списка или изображение). Теперь, в зависимости от найденного стиля, нужный текст написан в MD файле.

Слово или два на встраивании изображений: Встраивание изображений в файл MD немного сложно.

Во-первых, вам нужно хранить изображения в вашем хранилище GIT. Затем ссылка должна быть дана в файле MD для встраивания в него. Синтаксис – это!

Теперь, чтобы автоматически генерировать эту ссылку для изображения во время преобразования слова в файл MD, создан скрытый текст (сразу после изображения без какого-либо пространства) с контентом в виде сама ссылка. А потом в Код Этот скрытый текст отделен и вставлен в файл MD.

Теперь вы можете найти настоящий код, чтобы сделать все это очень утомительное, но это все, как API воздействует на слово приложение. Так что не беспокойтесь об этом. Вы определенно можете обратиться в мой код или оригинальный код TeampScript. Оба станут хорошим стартером для вашего следующего проекта.

О, подожди !! Вот и все. Вы сделали это до конца? Ну тогда ? Поздравляю! ? И, если вам понравилась эта статья, нажмите этот хлопок? Кнопка ниже. Это будет много значить для меня, и это поможет другим людям увидеть историю. Ваше здоровье! ?