Перейти к содержимому

Предпросмотр Markdown

Конфиденциально — файл не сохраняется

383 символа · 20 строк

Предпросмотр

Как это работает

1

Напишите или вставьте

Или перетащите файл .md. Предпросмотр обновляется по мере ввода.

2

Посмотрите, как это будет выглядеть

Таблицы, списки задач, зачёркивание, сноски и блоки кода с цветами — вариант GitHub, а не простой CommonMark.

3

Заберите результат

Скопируйте HTML или сохраните автономную страницу, которая откроется где угодно и правильно распечатается.

Какой Markdown и зачем очищать HTML

Markdown — это семейство, а не одна спецификация, и здесь используется общепринятый набор GitHub-flavoured Markdown: заголовки, выделение, списки, ссылки, изображения, цитаты, таблицы, блоки кода с подсветкой синтаксиса, списки задач, зачёркивание, сноски и автоматические ссылки. Именно так пишут почти все, и именно это будет в README. Более экзотические диалекты и специальные плагины отдельных сайтов — блоки-предупреждения, шорткоды, шаблоны — не поддерживаются, поэтому в документе, написанном для конкретного генератора, часть синтаксиса может отобразиться как есть.

HTML отображается, но сначала очищается, и в этом стоит разобраться. Markdown намеренно допускает HTML внутри себя, а значит, Markdown-файл откуда угодно может содержать тег script, встроенный обработчик событий, iframe или ссылку javascript:. Если отобразить это как есть, в вашем сеансе выполнится чужой код — просто потому, что вы вставили чужой README, чтобы его посмотреть. Всё исполняемое удаляется до показа, так что оформление сохраняется, а код — нет.

Это общий урок, а не особенность этой страницы. Любая система, которая отображает Markdown от пользователей, — поле комментария, вики, тикет в поддержку — отображает пользовательский HTML, если не очищает его, и именно так эту проблему и упускают из виду: «это же просто Markdown». Преобразование Markdown не является границей безопасности; ею является очистка.

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

Если нужно другое

README, который вы сейчас пишете, смотрите там, где он будет жить. Собственный редактор GitHub показывает предпросмотр с точным отображением, расширениями и якорями, а GitHub CLI — gh markdown-preview — делает то же локально на том же движке. Для документации у самого генератора (MkDocs, Docusaurus, Hugo) есть предпросмотр с живой перезагрузкой, где видны настоящие стили и навигация — то, что увидит читатель.

Для редактирования, а не проверки, удобнее редактор Markdown с панелью живого предпросмотра — Obsidian, Typora, VS Code со встроенным предпросмотром: он обновляется по мере ввода, а файл остаётся на месте, и не нужно каждый раз вставлять текст на страницу. Эта страница — для чтения чужого Markdown или быстрого взгляда на то, что вам прислали.

Частые вопросы

Мой документ где-нибудь сохраняется?

Нет. Ничего не сохраняется и не хранится, а после загрузки страницы всё работает даже с выключенным Wi-Fi. Заметки, черновики и внутренняя документация — как раз то, что люди вставляют в предпросмотр, не задумываясь.

Какой это вариант Markdown?

GitHub-flavoured, потому что сегодня на практике «Markdown» означает именно его. Таблицы, списки задач, зачёркивание, автоссылки, сноски и блоки кода с подсветкой синтаксиса — всё работает. В простом предпросмотре CommonMark ничего этого нет, поэтому README, который хорошо выглядит на GitHub, там выглядит сломанным.

Можно ли использовать HTML?

Да, и перед показом он очищается. Markdown допускает HTML, и этот предпросмотр его отображает, но всё, что может запустить скрипт, сначала удаляется, потому что вставка чужого README никогда не должна выполнять чужой код. Оформление, ссылки и изображения сохраняются.

Подсвечиваются ли блоки кода?

Да, с определением языка — для тех языков, которые ожидаешь увидеть в README, тем же подсветчиком, что используют рендеры в стиле GitHub. Укажите язык сразу после открывающих ```, и код будет раскрашен соответственно.

Можно ли сделать из этого PDF?

Именно это делает наш инструмент [Markdown в PDF](markdown-to-pdf) — с правильными разрывами страниц и типографикой. Эта страница для чтения и проверки, а та — для создания документа.

А изображения в моём Markdown?

Изображения по веб-адресу загружаются как обычно. Изображения по относительному пути — "![](img/chart.png)" — прочитать нельзя, потому что у веб-страницы нет доступа к папке, в которой лежит ваш файл. Вместо них показывается заглушка с именем недостающего файла, а не значок битой картинки.

Полезно знать: HTML внутри Markdown отображается, но сначала очищается: скрипты, обработчики событий и всё, что может выполниться, удаляются, поэтому вставленный чужой README не сможет запустить чужой код. GitHub-flavoured Markdown поддерживается; более экзотические диалекты и специальные плагины — нет.

Разместите этот инструмент на своём сайте

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