扩展PHP Markdown以接受CSS类名

时间:2010-01-27 22:41:14

标签: php css markdown

我是Markdown的忠实粉丝(几乎在我所有的PHP项目中使用它)但不是它有限输出的粉丝。大部分渲染都有点过于简单,并且实际上并没有让我对它的布局有太多的控制或自由。例如,我可以插入图像:

![Alt Text](path/to/image.jpg)
This is my image!

但这只会转换为:

<p>
  <img src="path/to/image.jpg" alt="Alt Text" /> This is my image!
</p>

假设我想将图像浮动到右边?我目前无法在语法中添加任何类,但这不是一个很好的功能吗?我希望能够输出:

<p>
  <img src="path/to/image.jpg" alt="Alt Text" class="alignright caption"> 
  This is my image!
</p>

支持一个或多个CSS类将是惊人的。我的问题是关于在Markdown的PHP版本中实现这种支持的最佳方法。

想法?

5 个答案:

答案 0 :(得分:8)

Markdown在核心版本中没有语法支持CSS class名称,内联样式或id属性。根据您的工作情况,您可能会发现Textile可以为您提供更好的解决方案。在某种程度上它与Markdown相似,而在其他方面它则完全不同。例如,要在您的问题中获得上面提到的输出,您将使用此纺织品字符串:

  

(alignright caption)path / to / image.jpg(Alt Text)!这是我的形象!

哪个会转化为:

<p>
  <img src="path/to/image.jpg" alt="Alt Text" class="alignright caption"> 
  This is my image!
</p>

您还可以使用{}

应用内联样式(恐怖恐怖)

您可以在他们的实时演示页面上play with the syntax

我在为PHP找到一个Textile解析器时遇到了一些麻烦,所以你在这个答案上的里程可能不如我希望的那么多。我确实找到this snippet,但肯定不是整件事。

答案 1 :(得分:4)

没有“最佳方式”将其实施到Markdown;你只需停止使用Markdown(你可以自己创作)。

值得庆幸的是,Markdown不会像你想象的那样限制你的控制或自由。

  

Markdown不是HTML的替代品,甚至不接近它。它的语法非常小,仅对应于HTML标签的一小部分。想法是来创建一种语法,使其更容易插入HTML标记。在我看来,HTML标签已经很容易插入。 Markdown的想法是让阅读,编写和编辑散文变得容易。 HTML是发布格式; Markdown是一种写作格式。因此,Markdown的格式化语法仅解决可以用纯文本传达的问题。

     

对于Markdown语法未涵盖的任何标记,您只需使用HTML本身。没有必要为它添加前缀或分隔它以表明您正在从Markdown切换到HTML;你只需使用标签。

来源:Markdown Syntax Documentation - Inline HTML

答案 2 :(得分:2)

查看此链接的信息:

http://www.pingtrip.com/weblog/2008/04/adding-custom-tags-to-markdown

您可以使用该精确技术制作应用了样式的span或div“block”。它似乎在多行上工作没有问题。

在标签中包含classname会更加困难,但是我现在还不能说多少。我最终会去做,如果我这样做,我会在这里发布结果。

我想知道为什么这么多人只说“Markdown不是 那个”? Markdown非常有用,仅限于博客和留言板评论。

编辑:

如果不遵循链接,请更清楚:

您可以创建自定义标记,以便您定义开始和结束字符串以及替换文本。例如:

-s%classname%
这是你的 定制风格的 降价脚本
秒 -

可以很容易地实现应用某个类/ id的span / div块。点击链接查看“警告”和“注释”框的示例实现。

答案 3 :(得分:1)

使用带有haml的markdown,请参阅http://xtargets.com/2010/10/05/why-wouldnt-you-use-haml/

答案 4 :(得分:0)

Php Markdown Extra包括添加课程的功能,请参阅https://michelf.ca/projects/php-markdown/extra/#spe-attr。此功能已于2015年3月添加,请参阅https://github.com/michelf/php-markdown