Я для себя часто пишу всякие заметки в локальных `.md` файлах в формате [markdown](https://ru.wikipedia.org/wiki/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 для более менее нормального вида получаемых страниц.
Демо страницы, сгенерированной этой утилитой.