6 votes

Convertir le format markdown en Rd, ou définir des règles de conversion markdown personnalisées ?

J'essaie d'écrire la documentation d'un paquet R en Markdown, et de la faire convertir en fichier Rd.

Je suppose qu'une autre façon de voir les choses est que je veux un cadre qui reconnaisse les différentes constructions markdown et me permette de spécifier comment elles doivent être rendues, par exemple :

  • `text in backticks` est converti en \code{text in backticks}
  • **text** est converti en \bold{text}
  • Les listes markdown sont converties en \itemize{...}

et ainsi de suite.

Y a-t-il quelque chose qui me permette de faire ça ? Le site pander dans R (enveloppant pandoc) semble prometteur, mais je ne suis pas sûr de pouvoir spécifier des règles de conversion (par exemple, il convertit les backticks à l'aide de \texttt et je veux \code ), et il génère également un document autonome complet au lieu de convertir uniquement mon extrait d'entrée.

El markdown pour R semble ne faire que du markdown -> HTML. Il semble qu'il pourrait supporte les moteurs de rendu personnalisés, mais je ne sais pas comment en écrire un (il semble que je doive écrire du code C).

Je cherche quelque chose comme ça :

convertMarkdown(myTextSnippet,
                backticks = function (txt) {
                    return(paste0('\\code{', txt, '}'))
                },
                bold = function(txt) {
                    return(paste0('\\bold{', txt, '}'))
                },
                unordered.list = function (items) {
                    itms <- paste('\\item', items, collapse='\n')
                    return(paste('\\itemize{', itms, '}', sep='\n'))
                },
                # ... and so on
)

Une telle chose existe-t-elle ?

(Bonus : je veux juste pouvoir intégrer le format markdown dans mon site web. roxygen les commentaires, et je pensais donc convertir certaines parties des commentaires de markdown en rd, puis exécuter roxygen sur la sortie).

4voto

dougmet Points 490

Avez-vous vu le paquet maxygen de @gabor-csardi ?

https://github.com/gaborcsardi/maxygen

Il vous permet essentiellement d'écrire des en-têtes roxygen en Markdown.

[MISE À JOUR] Ces changements ont été incorporés dans le paquet roxygen2 et seront publiés avec la version 6. Depuis GitHub :

La plupart des champs peuvent désormais être rédigés à l'aide de balises Markdown au lieu de l'option langage traditionnel Rd. Vous pouvez activer Markdown globalement en ajoutant Roxygen : list(markdown = TRUE) à DESCRIPTION. Les balises @md / @noMd activent/désactivent l'analyse du langage Markdown pour le bloc donné. Voir la vignette 'markdown' pour plus de détails (#36). pour plus de détails (#364, #431, #499, #506, #507). @gaborcsardi

0voto

Artem Klevtsov Points 1049

Vous pouvez utiliser le md2rd fonction suggérée par Fabian Scheipl : voir roclet-md2rd.R pour les détails.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X