2017-01-14 2 views
1

Est-il possible de modifier le caractère utilisé pour indiquer le début/la fin de l'emphase et emphase forte en markdown pandoc?Modifier la notation d'accent markdown dans pandoc?

En particulier, je voudrais utiliser /emphasis/ et *strong emphasis*.

+0

N.B. - Cela semble mieux convenir à unix.SE, mais [tag: pandoc] a ici 918 questions, comparé à seulement 5 là-bas. Donc je suppose que c'est correct (ou mieux) de demander ici. – OJFord

+0

Il n'y a pas de moyen facile, car/emph/n'est pas reconnu comme une entrée spéciale. Si c'était juste en changeant un type de A à B (par exemple forte emph à emph) qui serait trivial avec des filtres, mais pour cela vous devrez peut-être pirater dans Pandoc lui-même avec certains Haskell –

+0

@SergioCorreia Merci, cela ne sonne pas vaut la peine ... – OJFord

Répondre

1

Il n'y a pas d'option dans pandoc pour personnaliser des morceaux individuels de syntaxe markdown - vous auriez à écrire un autre format d'entrée pour cela. Je pense que la façon la plus simple d'y parvenir est d'utiliser un pré-processeur qui convertit votre syntaxe personnalisée en syntaxe régulière markdown-strict ou markdown.

Voici un exemple, en utilisant filepp (il y a beaucoup d'autres options, y compris un script sed ou awk):

#regexp /\/\b/_/ 
#regexp /\b\//_/ 
#regexp /\*\b/\*\*/ 
#regexp /\b\*/\*\*/ 

Some *bold* and some /emphasis/ 

Pour ajouter l'étape de pré-traitement à la compilation:

filepp -m regexp.pm myfile.md | pandoc ... 

Par exemple , la compilation à pandoc -t html:

<p>Some <strong>bold</strong> and some <em>emphasis</em></p> 

pour faire Solidement enregistrer les commandes de PreProc dans leur propre fichier, disons que ~/.pandoc-pp

#regexp /\/\b/_/ 
#regexp /\b\//_/ 
#regexp /\*\b/\*\*/ 
#regexp /\b\*/\*\*/ 

et comprennent au sommet de tous les documents de démarquage:

#include ~/.pandoc-pp 
+1

Merci! Je l'ai fait avec sed, mais j'aime l'idée de l'avoir dans un fichier comme ça, beaucoup plus propre. Et bien sûr, je peux éviter la nécessité d'inclure votre dernière ligne dans chaque fichier en changeant le pipeline à: 'echo '#include ~/.pandoc-pp' | chat - monfichier.md | filepp -m regexp.pm | pandoc ... ':) – OJFord

1

/emphasis/ est pas markdown pour l'emphase, seulement *foo* et _bar_ est ... et l'écrivain de démarque Pandoc prend actuellement en charge le premier.

De toute façon, si vous demandez à propos de la génération de démarques; vous pouvez écrire un pandoc filter qui remplace Emph x par Str "/" <> x <> Str "/"). Si vous demandez de prendre la démarque comme entrée dans pandoc, vous devriez probablement essayer un préprocesseur comme suggéré par @scoa.

+0

«Markdown» signifie tellement de choses différentes que je pense qu'il serait plus juste de dire «ce n'est pas une démarque que nous connaissons de quiconque utilise». Le filtrage semble être le bon type de chose, mais cela n'arrive-t-il pas trop tard? Si l'AST est déjà construit quand je filtre, alors au mieux * * * et '/' vont commencer l'accentuation? – OJFord

+0

@OllieFord Eh bien, votre question est sur pandoc markdown, donc «démarque», ici, n'est pas ambigu:/emphase/n'est pas (pandoc) démarque pour l'emphase. – scoa

+0

@scoa J'utilise actuellement 'markdown_strict', dont' markdown' (Pandoc's) est un surensemble. Je ne pensais pas que c'était important pour la question - puisque j'ai déjà vérifié qu'il n'y a pas d'extension Pandoc qui change la syntaxe (par exemple, similaire à 'backtick_code_blocks'). – OJFord