Posso definire un nome di class sul paragrafo usando Markdown?

Posso definire un nome di class sul paragrafo usando Markdown? Se é cosi, come?

Dupe: come posso impostare un attributo di class HTML in Markdown?


Nativamente? No ma…

No, la syntax di Markdown non può. È ansible impostare i valori ID con Markdown Extra attraverso.

Puoi utilizzare l’HTML normale se lo desideri e aggiungere l’attributo markdown="1" per continuare la conversione del markdown all’interno dell’elemento HTML. Ciò richiede però Markdown Extra .

 

**Another paragraph** which allows *Markdown* within it.

Possibile soluzione: (non testata e intesa per

)

Ho trovato il seguente online:

Funzione

 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( "\n$bq\n" ) . "\n\n"; } 

riduione di prezzo

 >{.className}{#id}This is the blockquote 

Risultato

 

This is the blockquote

L’HTML grezzo è in realtà perfettamente valido nel markdown. Per esempio:

 Normal *markdown* paragraph. 

This paragraph has a class "myclass"

Assicurati che l’HTML non si trovi all’interno di un blocco di codice.

Markdown dovrebbe avere questa capacità, ma non lo fa. Invece, sei bloccato con superset Markdown specifici della lingua:

PHP: Markdown Extra
Ruby: Kramdown , Maruku

Ma se hai bisogno di rispettare la vera syntax di Markdown, sei bloccato con l’inserimento di HTML non elaborato, che è meno ideale.

Se il tuo ambiente è JavaScript, usa markdown-it insieme al plugin 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); 

Produzione

 

paragraph

jsfiddle

Nota: tieni presente l’aspetto della sicurezza quando autorizzi gli attributi nel tuo markdown!

Disclaimer, sono l’autore di markdown-it-attrs.

Come detto sopra, il ribasso ti lascia sospeso su questo. Tuttavia, a seconda dell’implementazione, esistono alcuni accorgimenti:

Almeno una versione di MD considera

un tag a livello di blocco ma

è solo testo. Tuttavia, tutte le broswers sono insensibili alle maiuscole e alle minuscole. Ciò consente di mantenere la semplicità della syntax di MD, a costo di aggiungere tag contenitore div.

Quindi il seguente è una soluzione:

 
Paragraphs here inherit class foo from above.

Lo svantaggio di questo è che il codice di output ha tag

avvolgono le linee

(entrambi, il primo perché non lo è e il secondo perché non corrisponde. Nessun browser si preoccupa di ciò che ho trovato , ma il codice non verrà convalidato. MD tende comunque a inserire i tag

riserva.

Diverse versioni di markdown implementano la convenzione nel qual caso MD eseguirà la normale elaborazione all’interno del tag. L’esempio sopra diventa:

 
Paragraphs here inherit class foo from above.

La versione corrente di MultiMarkdown di Fletcher consente agli attributi di seguire il collegamento se si utilizzano collegamenti referenziati.

Ecco un esempio funzionante per kramdown che segue la risposta di Yarin.

 A simple paragraph with a class attribute. {:.yourClass} 

Riferimento: https://kramdown.gettalong.org/syntax.html#inline-attribute-lists

Non in Markdown. Usa invece il tessuto :

 This is a standard paragraph. p(a-class). This is a paragraph with a class. 

crea il seguente codice HTML:

 

Note that this paragraph has no class.

This is a paragraph with a class.

Se il tuo gusto di markdown è kramdown, puoi impostare la class css in questo modo:

 {:.nameofclass} paragraph is here 

Quindi nel tuo file css, imposti il ​​css in questo modo:

 .nameofclass{ color: #000; } 

Se hai solo bisogno di un selettore per scopi Javascript (come ho fatto io), potresti semplicemente voler usare un attributo href invece di una class o id :

Basta fare questo:

 Link 

Markdown non ignorerà o rimuoverà l’attributo href come fa con le classi e gli id.

Quindi nel tuo Javascript o jQuery puoi quindi fare:

 $('a[href$="foo"]').click(function(event) { ... do your thing ... event.preventDefault(); }); 

Almeno questo funziona nella mia versione di Markdown …

Nel ribasso sottile questo:

 markdown: {:.cool-heading} #Some Title 

Traduce in:

 

Some Title