Простой способ преобразовать ваше резюме в Markdown для отображения на Github Gist и в HTML для использования на веб-сайте вашего портфолио.

Недавно я подал заявку на Microsoft Leap и заметил, что приложение запрашивает резюме в уценке на Github Gist. Хотя я знал, что технически возможно преобразовать свое резюме вручную в уценку - уценка предназначена для чтения человеком, и я уже делаю это для форматирования статей для публикации на Dev.to - я не хотел этого делать. На это уйдет много времени, и я не думал, что смогу добиться особенно хорошего результата.

Что еще более важно, мои паучьи чувства программиста начали покалывать. Могу я сделать это более лениво? Мне пришла в голову мысль, что попытка использовать программирование для делегирования этой задачи компьютеру вместо того, чтобы просто делать это самому, на самом деле может занять больше времени, чем просто прикусить пулю и отформатировать ее вручную. Однако мои глаза были ленивыми, а разум чувствовал себя программистом. Я только что съела на ужин макароны. Итак, игра началась.

Я погуглил и нашел программу под названием Pandoc, которая позволяет вам конвертировать между различными типами файлов уценки, включая Markdown, HTML5 и MS Word docx (полный список здесь).

Pandoc - это инструмент командной строки, поэтому здесь нет графического интерфейса пользователя, который мог бы вам помочь. Однако веб-сайт Pandoc позволяет легко начать работу. Есть инструкции установить его здесь и удобные для новичков инструкции здесь, в разделе« Начало работы , в которых объясняется 1) как использовать CLI и далее 2) как использовать сам Pandoc для преобразования текста непосредственно в терминале. как целые файлы.

После того, как вы установили Pandoc, его использование пугающе и приятно напоминает вызов типичной функции JavaScript, только мы на самом деле находимся в Терминале и (если вы работаете на Mac) пишем Bash.

Мы переходим в каталог, содержащий файл, который мы хотим преобразовать в файл другого типа. Для меня это выглядит так:

/ Пользователи / tcarney / Разработка / pandoc-test

Свою основную версию своего резюме я храню как документ Google, поскольку в Документах Google есть хорошая функция «История версий» в разделе «Файл». Это удобно и облегчает контроль версий для развивающихся документов, таких как резюме разработчика (новые проекты входят, старые проекты завершаются), вместо того, чтобы иметь дело с десятком различных файлов резюме.

Поэтому я загружаю свое резюме в виде файла docx и перетаскиваю его в каталог pandoc-test:

/Users/tcarney/Development/pandoc-test/TheoCarney-Resume.docx

Чтобы преобразовать его из docx в markdown, команда проста:

pandoc TheoCarney-Resume.docx -f docx -t markdown -s -o TheoCarney-Resume.md

Чтобы разбить это на термины JS, pandoc - это наша функция, TheoCarney-Resume.docx - это аргумент (это документ, который мы передаем и конвертируем), а все остальное - просто параметры / параметры. -f означает «от», -t - «до», поэтому мы переходим из формата docx в формат уценки.

Параметр -s указывает, что нужно создать« автономный файл с верхним и нижним колонтитулами, а не просто фрагмент» (Начало работы), а параметр -o означает вывод и указывает имя файла, который будет выводить Pandoc. новый текст уценки на. Если вы опустите -o, вместо этого pandoc просто напечатает новый текст уценки прямо в терминале.

Итак, если бы Pandoc был JS-функцией, я бы подумал об этом примерно так:

функция pandoc (inputFile, -f, inputFileType, -t, outputFileType, -s, -o, outputFile) {

пусть outputFile = inputFile.map (markdownElement = ›

markdownElement.outputFileType ()

)

возврат outputFile

}

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

Поскольку Pandoc по умолчанию преобразовывает из markdown в html, я также предположил, что под капотом Pandoc может сначала преобразовать inputFile в markdown в качестве промежуточного шага, а затем преобразовать его из этого в outputFileType. Однако это вызвало у меня достаточно любопытства, чтобы проверить документы Pandoc, в которых говорится: «Поскольку промежуточное представление документа pandoc менее выразительно, чем многие форматы, между которыми он конвертирует, не следует ожидать идеального преобразования между каждым форматом и любым другим».

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

Также следует отметить, что когда я попытался преобразовать в HTML, я сначала получил сообщение об ошибке, предлагающее мне предоставить дополнительный параметр заголовка для Pandoc, например:

pandoc TheoCarney-Resume.docx -f docx -t html -s -o TheoCarney-Resume.html - metadata title = "Theo Carney Resume"

Наконец, я просто хочу выделить кое-что, чему я научился и чему по-настоящему увлекся в процессе выполнения всего этого. Если вы прочитаете документацию Pandoc, то заметите, что не все типы файлов равны перед Pandoc. Например, вы не можете конвертировать из PDF, только в него, с помощью Pandoc.

Хотя это может быть не полностью связано, при просмотре видео на ComputerPhile несколько недель назад, когда я писал пост о HTML, я помню, как профессор Дэвид Брейлсфорд говорил о том, как критики PDF жалуются, что способ хранения фактических данных PDF - это, по сути, спагетти. код и ужасно смотреть. Поклонники PDF ответили на это, с чем профессор Брейлсфорд, похоже, согласился, примерно так: «Да, но PDF-файлы выглядят действительно красиво и удобны по многим другим причинам, так что это нормально».

Подумав об этом, я по-настоящему оценил, что с Pandoc файлы docx являются идеальной отправной точкой для преобразования практически во что угодно. Я задавался вопросом, как это возможно? Файлы Docx раньше меня раздражали, поскольку иногда их трудно открыть, в зависимости от используемого компьютера / ОС.

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

Конечно, я узнал, что x в docx просто означает xml: файлы docx на самом деле не являются одним файлом, а на самом деле представляют собой просто замаскированный zip-файл с файлами xml!

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

Если вы хотите сами проверить, как можно разархивировать файлы docx, на терминале Mac вы можете просто запустить эту команду с любым файлом docx:

разархивируйте any-file.docx -d hey-docx-your-fly-is-unzipped

Распакованные файлы и подкаталоги будут выведены в новый каталог:

Привет, док, ваша муха, распакована