Je ne connais pas une manière plus précise de demander "Puis-je définir un nom de classe sur un paragraphe en utilisant Markdown?" Avez-vous oublié de lire le titre?
Ryan Florence le
[Particulier] Si vous êtes un utilisateur de Node, veuillez consulter Rho . Bien qu'il ne soit pas compatible à 100% avec Markdown, vous pouvez toujours le trouver très attrayant, car il possède la fonctionnalité dont vous avez besoin à la base.
(Testé avec l'analyseur MaRuKu), vous pouvez utiliser uniquement "{.class-name}" au début d'une ligne de texte pour effectuer la balise P. La partie id est cependant ignorée.
David Hutchison
75
Le HTML brut est en fait parfaitement valide dans le markdown. Par exemple:
Normal*markdown* paragraph.<p class="myclass">This paragraph has a class"myclass"</p>
Assurez-vous simplement que le HTML ne se trouve pas dans un bloc de code.
Markdown devrait avoir cette capacité, mais ce n'est pas le cas. Au lieu de cela, vous êtes coincé avec des supersets Markdown spécifiques à la langue:
Je n'avais aucune idée à ce sujet. Fonctionne plutôt bien avec Markdown Preview (Sublime 3) qui utilise l' PythonMarkdownanalyseur intégré .
Mihai
3
Comme mentionné ci-dessus, le démarquage lui-même vous laisse accroché. Cependant, selon l'implémentation, il existe quelques solutions de contournement:
Au moins une version de MD considère <div>comme une balise de niveau bloc mais <DIV>n'est que du texte. Tous les broswers sont cependant insensibles à la casse. Cela vous permet de conserver la simplicité de syntaxe de MD, au prix de l'ajout de balises de conteneur div.
Voici donc une solution de contournement:
<DIVclass=foo>
Paragraphs here inherit class foo from above.
</div>
L'inconvénient est que le code de sortie a des <p>balises enveloppant les <div>lignes (les deux, la première parce que ce n'est pas le cas et la seconde parce qu'elle ne correspond pas. Aucun navigateur ne s'inquiète de ce que j'ai trouvé, mais le code a gagné » t valider. MD a tendance à mettre en réserve<p> étiquettes de .
Plusieurs versions de markdown implémentent la convention, <tag markdown="1">auquel cas MD effectuera le traitement normal à l'intérieur de la balise. L'exemple ci-dessus devient:
<divmarkdown="1"class=foo>
Paragraphs here inherit class foo from above.
</div>
La version actuelle de MultiMarkdown de Fletcher permet aux attributs de suivre le lien si vous utilisez des liens référencés.
Remarque: veuillez vous assurer que vous utilisez des marqueurs de code; la plupart de ce message a été masqué car il a été interprété comme des balises HTML.
Lawrence Dol
Merci - le piratage DIV est la seule réponse ici qui semble fonctionner avec pegdown / cegdown. (Pegdown est également extensible avec des plugins, donc je pourrais le faire à long terme)
Il convient également de mentionner que les <span>balises permettent à l'intérieur d'eux - les éléments de niveau bloc annulent nativement MD à l'intérieur d'eux à moins que vous ne les configuriez pour ne pas le faire, mais les styles en ligne autorisent nativement MD à l'intérieur d'eux. En tant que tel, je fais souvent quelque chose qui ressemble à ...
Thisis a superfluous paragraph thing.<span class="class-red">And thus I delve intomy topic,Lorem ipsum lollipop bubblegum.</span>And thus with that I conclude.
Je ne suis pas sûr à 100% si c'est universel, mais cela semble être le cas dans tous les éditeurs de MD que j'ai utilisés.
Si vous avez juste besoin d'un sélecteur à des fins Javascript (comme je l'ai fait), vous pouvez simplement utiliser un hrefattribut au lieu d'un classouid :
Faites juste ceci:
<ahref="#foo">Link</a>
Markdown n'ignorera ni ne supprimera le href attribut comme il le fait avec les classes et les identifiants.
Donc, dans votre Javascript ou jQuery, vous pouvez alors faire:
$('a[href$="foo"]').click(function(event){...do your thing ...event.preventDefault();});
Au moins cela fonctionne dans ma version de Markdown ...
Réponses:
Dupe: Comment définir un attribut de classe HTML dans Markdown?
Nativement? Non mais...
Non, la syntaxe de Markdown ne le peut pas. Vous pouvez définir des valeurs d'ID avec Markdown Extra via.
Vous pouvez utiliser du HTML standard si vous le souhaitez et ajouter l'attribut
markdown="1"
pour continuer la conversion de démarque dans l'élément HTML. Cela nécessite cependant Markdown Extra .Solution possible: (non testé et destiné à
<blockquote>
)J'ai trouvé ce qui suit en ligne:
Fonction
Réduction
Résultat
la source
Le HTML brut est en fait parfaitement valide dans le markdown. Par exemple:
Assurez-vous simplement que le HTML ne se trouve pas dans un bloc de code.
la source
Si votre environnement est JavaScript, utilisez markdown-it avec le plugin markdown-it-attrs :
Production
jsfiddle
Remarque: soyez conscient de l'aspect sécurité lorsque vous autorisez des attributs dans votre démarque!
Avertissement, je suis l'auteur de markdown-it-attrs.
la source
Markdown devrait avoir cette capacité, mais ce n'est pas le cas. Au lieu de cela, vous êtes coincé avec des supersets Markdown spécifiques à la langue:
PHP: Markdown Extra
Ruby: Kramdown , Maruku
Mais si vous devez respecter la vraie syntaxe Markdown, vous êtes coincé avec l'insertion de HTML brut, ce qui est moins idéal.
la source
Si votre saveur de démarque est kramdown, vous pouvez définir la classe css comme ceci:
Ensuite, dans votre fichier css, vous définissez le css comme ceci:
la source
Voici un exemple de travail pour kramdown suite à la réponse de @ Yarin.
Référence: https://kramdown.gettalong.org/syntax.html#inline-attribute-lists
la source
Python
Markdown
analyseur intégré .Comme mentionné ci-dessus, le démarquage lui-même vous laisse accroché. Cependant, selon l'implémentation, il existe quelques solutions de contournement:
Au moins une version de MD considère
<div>
comme une balise de niveau bloc mais<DIV>
n'est que du texte. Tous les broswers sont cependant insensibles à la casse. Cela vous permet de conserver la simplicité de syntaxe de MD, au prix de l'ajout de balises de conteneur div.Voici donc une solution de contournement:
L'inconvénient est que le code de sortie a des
<p>
balises enveloppant les<div>
lignes (les deux, la première parce que ce n'est pas le cas et la seconde parce qu'elle ne correspond pas. Aucun navigateur ne s'inquiète de ce que j'ai trouvé, mais le code a gagné » t valider. MD a tendance à mettre en réserve<p>
étiquettes de .Plusieurs versions de markdown implémentent la convention,
<tag markdown="1">
auquel cas MD effectuera le traitement normal à l'intérieur de la balise. L'exemple ci-dessus devient:La version actuelle de MultiMarkdown de Fletcher permet aux attributs de suivre le lien si vous utilisez des liens référencés.
la source
Dans Slim Markdown, utilisez ceci:
Se traduit par:
la source
Il convient également de mentionner que les
<span>
balises permettent à l'intérieur d'eux - les éléments de niveau bloc annulent nativement MD à l'intérieur d'eux à moins que vous ne les configuriez pour ne pas le faire, mais les styles en ligne autorisent nativement MD à l'intérieur d'eux. En tant que tel, je fais souvent quelque chose qui ressemble à ...Je ne suis pas sûr à 100% si c'est universel, mais cela semble être le cas dans tous les éditeurs de MD que j'ai utilisés.
la source
Si vous avez juste besoin d'un sélecteur à des fins Javascript (comme je l'ai fait), vous pouvez simplement utiliser un
href
attribut au lieu d'unclass
ouid
:Faites juste ceci:
Markdown n'ignorera ni ne supprimera le
href
attribut comme il le fait avec les classes et les identifiants.Donc, dans votre Javascript ou jQuery, vous pouvez alors faire:
Au moins cela fonctionne dans ma version de Markdown ...
la source