Markdown中的HTML

时间:2012-02-11 18:58:47

标签: html css markdown

我正在尝试使用一堆文本文件+ vim + Markdown.pl作为一个有效的记笔记平台。到目前为止,我对Markdown.pl解析器感到满意。但是像一条线,

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

转换为:

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

我有什么遗失的东西吗?

6 个答案:

答案 0 :(得分:6)

您遗漏的主要内容是Markdown并非真正设计为模板系统,而​​是纯文本格式语法。如果您想要包含样式表等HTML内容,最好使用Haml之类的内容。

另一个解决方案是围绕Markdown格式化的内容创建一个简单的HTML模板(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>

答案 1 :(得分:2)

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/;

您可能不必同时执行这两项操作,但结果是工作链接标记。

答案 2 :(得分:2)

如果markdown.pl符合规范,则应该可以。

文档的“内联HTML”部分markdown syntax声明您的html“必须通过空行与周围内容分开,并且块的开始和结束标记不应使用制表符缩进或缩进空间”。

:) TEO

答案 3 :(得分:1)

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>。我不确定你可以通过降价来避免这种情况。

答案 4 :(得分:0)

你需要

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

如果您尝试将其用作样式表(如果您正在尝试查看here)(我不确定降价的位置,我对降价一无所知)。

这是你想要使用它的方式吗?

答案 5 :(得分:0)

一个简单的解决方法是在HTML标记之前和</p>之前插入<p>

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

这将转换为:

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

它仍会添加段落,但可以帮助您的代码进入正确的层次结构。有些浏览器可能需要它。需要注意的一件事是不要使用双重换行符或任何降价特定的标点符号。