#javascript #css #markdown #styling #bootswatch
#javascript #css #markdown #стиль #bootswatch
Вопрос:
Я хочу использовать такой сервис, как StrapdownJS, для создания HTML-страниц, написанных на Markdown. StrapdownJS хорошо работает как анализатор Markdown, однако он не удовлетворяет моим потребностям в пользовательском стиле. В strapdownJS вы выбираете тему следующим образом:
<xmp theme="united">
# Markdown here...
</xmp>
Однако встраивание <link>
<style>
тега or в <head>
не работает, так как StrapdownJS выполняет весь стиль ПОСЛЕ загрузки head. Пока единственное решение, которое я могу придумать, — это программно изменить все стили с помощью чего-то вроде jQuery, что в значительной степени противоречит цели создания таблиц стилей в первую очередь.
У кого-нибудь есть хорошее решение для этого? Мое идеальное решение выглядело бы примерно так
- используется
<link>
для включения таблицы стилей CSS - укажите файл markdown (например,
content.md
) - Markdown анализируется и отображается как HTML со стилем из
style.css
Пожалуйста, дайте мне знать, если есть что-то похожее на это. Опять же, StrapdownJS был бы идеальным, если бы не его крайне ограниченный выбор тем — в нем всего несколько тем из Bootswatch.
Комментарии:
1. Как насчет чего-то вроде Markdown-it ? Это даст вам проанализированный HTML, который вы можете либо отправить клиенту, если вы делаете это на стороне сервера, либо визуализировать с помощью jQuery или ванильного Javascript, если вы анализируете markdown на стороне клиента. Поскольку это обычный HTML, вы можете использовать любой CSS, который вам нравится.
Ответ №1:
Я нашел более элегантный подход, используя MarkedJS.
Все, что вам нужно сделать, это импортировать вашу таблицу стилей вместе с MarkedJS.
Учитывая:
dir
|- style.css
|- marked.js
|- jquery.min.js
|- content.md
|- index.html
HTML:
<head>
<link href="style.css" rel="stylesheet">
<script src="marked.js"></script>
<script src="jquery.min.js"></script>
</head>
<body>
<div id="content"></div>
<script>
$.get('content.md', function(data) {
$('#content').html(marked(data));
}, 'text');
</script>
<body>
В итоге получилось именно то, что я искал; Я могу сохранить markdown в отдельном файле и динамически анализировать его, придерживаясь своих пользовательских стилей.
Вы, конечно, можете сделать это без jQuery, но я предпочитаю такой подход.