Comment convertir un fichier de code source en HTML?

13

J'ai un fichier de code source écrit dans un langage de programmation (par exemple PHP) et je voudrais le convertir en un fichier HTML, donc je peux le publier sur le web afin de partager mon code.

Par conversion, je veux dire, par exemple, convertir de nouvelles lignes en <br>balises afin que le texte conserve la même mise en forme à la fois dans l'éditeur de texte et dans le navigateur Web. Idéalement, il devrait également conserver la coloration syntaxique afin de pouvoir également être imprimé.

Est-ce réalisable dans Vim? Si c'est le cas, comment?

Kenorb
la source
4
Que voulez-vous dire par conversion? Quelle est la sortie attendue?
OrangeTux
La sortie attendue serait html (format convivial pour navigateur).
kenorb
1
Tous les fichiers texte sont compatibles avec les navigateurs. Mais quand je vois la réponse d'Alexander Myshov, je pense comprendre ce que vous voulez dire.
OrangeTux
1
Je pense qu'un détail manque dans la question. Voulez-vous produire un document HTML complet pour chaque fichier source ou juste un fragment de code HTML que vous pouvez incorporer dans un autre document, ou cela n'a pas d'importance?
toro2k

Réponses:

16

La commande vim suivante créerait un rendu html du fichier actuel.

:TOhtml

Il enregistre le fichier dans le même dossier (avec l'extension .html) et il inclura les styles, les couleurs de premier plan / d'arrière-plan et la coloration syntaxique , de sorte que le fichier peut être publié directement sur le Web ainsi qu'imprimé.

Pour plus d' options (comme l' ajout de numéros de ligne, compability avec les anciens navigateurs, etc.), vérifier: :help TOhtml.

Pour convertir un fichier de manière non interactive, essayez la commande suivante:

vim -E -s -c "let g:html_no_progress=1" -c "syntax on" -c "set ft=c" -c "runtime syntax/2html.vim" -cwqa myfile.c

En relation:

Kenorb
la source
1
Vous n'avez pas besoin de la %, car c'est la valeur par défaut. Notez également que c'est exactement la même chose que l'autre réponse ( :runtime! syntax/2html.vim), la seule différence est que TOhtmlvous pouvez facilement ajouter une plage (au lieu de la définir g:html_start_lineet g:html_end_linemanuellement.)
Martin Tournoij
5

Si je vous ai bien compris, vous souhaitez convertir le contenu de la fenêtre actuelle en HTML. Essayez d'exécuter cette commande:

:runtime! syntax/2html.vim

Plus d'infos ici:

:help convert-to-HTML
Alexander Myshov
la source