题
我可以使用 Markdown 在段落上定义类名吗?如果是这样,怎么办?
解决方案
本身?不可以,但...
没有,降价的语法不行。可以设置ID值额外通过与降价的。
您可以使用普通的HTML ,并添加属性 markdown="1"
以继续在HTML元素内降价转换。这需要减价额外虽然。
<p class='specialParagraph' markdown='1'>
**Another paragraph** which allows *Markdown* within it.
</p>
可能的解决方案:(未经测试并用于<blockquote>
)
我发现了以下的在线:
功能
function _DoBlockQuotes_callback($matches) {
...cut...
//add id and class details...
$id = $class = '';
if(preg_match_all('/\{(?:([#.][-_:a-zA-Z0-9 ]+)+)\}/',$bq,$matches)) {
foreach ($matches[1] as $match) {
if($match[0]=='#') $type = 'id';
else $type = 'class';
${$type} = ' '.$type.'="'.trim($match,'.# ').'"';
}
foreach ($matches[0] as $match) {
$bq = str_replace($match,'',$bq);
}
}
return _HashBlock(
"<blockquote{$id}{$class}>\n$bq\n</blockquote>"
) . "\n\n";
}
降价
>{.className}{#id}This is the blockquote
结果
<blockquote id="id" class="className">
<p>This is the blockquote</p>
</blockquote>
其他提示
原始HTML实际上是在降价完全有效的。例如:
Normal *markdown* paragraph.
<p class="myclass">This paragraph has a class "myclass"</p>
只要确保HTML不是一个代码块中。
如果您的环境是 JavaScript,请使用 降价它 与插件一起 Markdown-it-attrs:
const md = require('markdown-it')();
const attrs = require('markdown-it-attrs');
md.use(attrs);
const src = 'paragraph {.className #id and=attributes}';
// render
let res = md.render(src);
console.log(res);
输出
<p class="className" id="id" and="attributes">paragraph</p>
笔记: 在 Markdown 中允许属性时请注意安全问题!
免责声明,我是 markdown-it-attrs 的作者。
下面是用于kramdown以下@ Yarin的回答的工作示例。
A simple paragraph with a class attribute.
{:.yourClass}
如果你降价的味道kramdown,那么你可以设置CSS类是这样的:
{:.nameofclass}
paragraph is here
然后,在你的CSS文件中,用户设定的CSS这样的:
.nameofclass{
color: #000;
}
正如上面提到的降价本身让你挂在此。然而,取决于实施方式有一些解决方法:
MD中的至少一个版本认为<div>
是块级别标记但<DIV>
仅仅是文本。然而,所有broswers不区分大小写。这可以让你保持MD的语法简单,在添加的div容器标签的成本。
因此,以下是一种解决方法:
<DIV class=foo>
Paragraphs here inherit class foo from above.
</div>
这种方法的缺点是输出代码<p>
标签包裹<div>
线(他们两个,第一,因为它不是与第二,因为它不匹配,没有浏览器fusses关于这个,我已经找到了,但代码将无法验证。MD往往放在备用<p>
标签反正。
降价几个版本执行公约<tag markdown="1">
在这种情况下MD会做,在标签内的正常处理。上面的例子中变为:
<div markdown="1" class=foo>
Paragraphs here inherit class foo from above.
</div>
在当前版本的弗莱彻的 MultiMarkdown 的允许属性跟随链接,如果使用引用链接。
在苗条降价这样:
markdown:
{:.cool-heading}
#Some Title
转换为:
<h1 class="cool-heading">Some Title</h1>
如果你只需要为Javascript目的的选择(像我一样),你可能只是想使用一个href
属性,而不是一个class
或id
的:
只是这样做:
<a href="#foo">Link</a>
降价不会忽视或像它与类和IDS除去href
属性。
所以在你的Javascript或jQuery的,你可以再做:
$('a[href$="foo"]').click(function(event) {
... do your thing ...
event.preventDefault();
});
至少这部作品在我的版本降价的...