HTML внутри Markdown - PullRequest
       0

HTML внутри Markdown

4 голосов
/ 11 февраля 2012

Я пытаюсь использовать несколько текстовых файлов + vim + Markdown.pl в качестве эффективной платформы для создания заметок.До сих пор я был доволен парсером Markdown.pl.Но строка типа

<link href="style.css" rel="stylesheet"></link>

преобразуется в:

<p><link href="style.css" rel="stylesheet"></link></p>

Есть ли что-то, чего мне не хватает?

Ответы [ 6 ]

6 голосов
/ 11 февраля 2012

Главное, что вам не хватает, это то, что Markdown на самом деле не спроектирован как система шаблонов, а представляет собой синтаксис форматирования простого текста. Если вы хотите включить такие элементы HTML, как таблицы стилей, лучше использовать что-то вроде Haml .

Другим решением будет создание простого HTML-шаблона вокруг содержимого, отформатированного в Markdown, например (пример PHP, но может быть на любом другом языке).

<html>
<head>
    <title>My Notes</title>
    <link href="style.css" rel="stylesheet">
</head>
<body>
    <h1>My notes</h1>
    <?php markdown(file_get_contents('your_content.md')); ?>
</body>
2 голосов
/ 18 февраля 2013

Если markdown.pl соответствует спецификации, это должно быть возможно.

В разделе «Встроенный HTML» документации, синтаксис разметки , говорится, что ваш HTML «должен быть отделен от окружающего содержимого пустыми строками, а начальный и конечный теги блока не должны иметь отступ с табуляцией или пробелами ".

:) Teo

2 голосов
/ 23 мая 2012

Markdown.pl в своей последней версии не принимает теги ссылок как теги блоков, поэтому он пытается обернуть их в теги <p>.

Чтобы исправить это, добавьте слово «ссылка»'в списки регулярных выражений блочных тегов в строке 323, поэтому они в конечном итоге выглядят так:

my $block_tags_a = qr/p|div|h[1-6]|blockquote|pre|table|dl|ol|ul|script|noscript|form|fieldset|iframe|math|ins|del|link/;
my $block_tags_b = qr/p|div|h[1-6]|blockquote|pre|table|dl|ol|ul|script|noscript|form|fieldset|iframe|math|link/;

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

1 голос
/ 11 февраля 2012

Markdown оборачивает все, что считает абзацем, в <p></p>. Попробуйте здесь:

Попробуйте эту уценку:

 hello **this is going to be bold**<link href="style.css" rel="stylesheet"></link>

Это будет преобразовано в:

<p>hello
<strong>this is going to be bold</strong><link href="style.css" rel="stylesheet"></link></p>

Если вы можете сделать все одним блоком, вы получите один <p></p>. Я не уверен, что вы можете избежать этого с уценкой.

0 голосов
/ 09 апреля 2018

Один простой обходной путь - вставить </p> до и <p> после вашего HTML-тега:

</p><link href="style.css" rel="stylesheet"></link><p>

Это будет преобразовано в:

<p></p><link href="style.css" rel="stylesheet"></link><p></p>

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

0 голосов
/ 11 февраля 2012

Вам нужно

<link href="style.css" type="text/css" rel="stylesheet"></link>

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

Это то, как вы собираетесь его использовать?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...