О заметках в формате markdown

Я для себя часто пишу всякие заметки в локальных .md файлах в формате markdown. С одной стороны это удобно: какое-то простенькое форматирование, при этом разметка не мозолит глаза, если просматривать в сыром виде.

Но есть и недостатки: либо для просмотра нужен специальный вьюер, либо использовать конвертер в html. Если же файл передать какому нибудь пользователю Шindoшs как есть, то надо будет дополнительно объяснять что открывать надо в блокноте, иначе пользователь будет ломать голову чем же открыть.

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

И тут в голову пришла идея. У нас есть формат html, который сегодня можно просмотреть почти на любом устройстве, благо браузеры сейчас повсюду, у нас есть упрощённая разметка markdown, придуманная для того чтобы разметку было просто писать руками, а почему бы не встраивать markdown разметку прямо в html?

К примеру, в html коде вставляем что-то типа

<code class="markdown"><pre>
Заголовок
=========

Какой-то список

* айтем 1
* айтем 2
* айтем 3
</pre></code>

<script>
// Какой-то скрипт, ковертирующий markdown в html
</script>

Посмотрел какие есть реализации парсеров markdown на JS, выбрал MarkdownIt. Ну а чтобы минимизировать ручную работу с этим, накидал простенький скрипт на баше.

Суть работы скрипта: пишем .html файл с markdown кодом внутри, как в примере выше, без всех служебных тегов <html>, <head>, <body> и т.д., применяем скрипт, он добавляет в код всё что нужно вместе с прочими служебными тегами и всё. Дальше если файл потребуется редактировать, правим markdown прямо в нём. Скрипту также можно скормить и .md файл, он сгенерирует соответствующий .html файл со встроенным markdown, после чего исходный .md файл можно удалить. Для большего удобства скрипт можно добавить в контекстное меню файлового менеджера чтобы не пользоваться из консоли. В итоге всё сводится к паре кликов.

Ну а полученный .html файл можно просматривать где угодно и передавать кому-то, он портабельный, благо браузеры сейчас есть везде. Разве что в данной реализации требуется подключение к интернет, т.к. скрипты подгружаются с CDN ради компактности исходника. Но при отсутствуюем интернет контент всё равно отобразится, просто с сырой markdown разметкой.

В проекте также применён water.css для более менее нормального вида получаемых страниц.

Демо страницы, сгенерированной этой утилитой.

@rf #markdown