Réduire la taille du fichier de la sortie R Markdown HTML

si je crée un fichier Markdown R très basique sans images ni code et tricote ce HTML, je finis avec une taille de fichier outputted qui est plus de 700kb dans la taille. Y a-t-il un moyen de réduire la taille du fichier HTML?

Exemple Minimal:

---
title: "Hello world!"
output:
html_document: default
html_notebook: default
---

Nothing else to say, really.

le fichier de sortie de html_document est 708.6 ko, tandis que html_notebook est 765.7 ko.

8
demandé sur Michael Harper 2016-12-20 11:19:06

3 réponses

html_vignette format est parfait si vous voulez un fichier de plus petite taille. Comme décrit dans la documentation de fonction:

une vignette HTML est une alternative légère à html_document qui peut être incluse dans les paquets qui seront envoyés à CRAN. Il réduit la taille d'une vignette de base de 100k à environ 10k.

Pour ton exemple:

---
title: "Hello world!"
output: rmarkdown::html_vignette
---

Nothing else to say, really.

donne un résultat de 6kB:

enter image description here

Vous pouvez en lire plus sur le paquet dans le documentation en ligne ici.

3
répondu Michael Harper 2018-07-21 11:08:23

la raison de la Grande Taille du fichier est que knit crée des fichiers autonomes par défaut et inclut donc des dépendances javascript (bootstrap, highlight, jquery, navigation) comme chaîne encodée base64. Voir:http://rmarkdown.rstudio.com/html_document_format.html#document_dependencies

dans votre cas simple, les capacités javascript ne sont pas nécessaires, vous pouvez donc faire ce qui suit:

---
title: "Hello world!"
output:
  html_document:
    self_contained: false
    lib_dir: libs
---

Nothing else to say, really.

cela créera un fichier html de taille ~ 2.7 kB et un dossier libs séparé avec les fichiers javascript. Toutefois, le dossier libs est presque 4MB de taille. Et bien que vous n'ayez pas nécessairement besoin des bibliothèques javascript, le fichier html essaie encore de les charger.

si vous êtes intéressé par une version vraiment minimale, vous pouvez jeter un oeil à la html_fragment option de sortie (http://rmarkdown.rstudio.com/html_fragment_format.html):

---
title: "Hello world!"
output:
  html_fragment: default
---

Nothing else to say, really.

ceci ne créera toutefois pas une page html complète mais plutôt html contenu qui peut être inclus dans un autre site web. test.html le fichier n'est que de 36 octets. Encore des navigateurs sera en mesure de l'afficher.

en dernier recours, vous pouvez créer un modèle html personnalisé pour pandoc: http://rmarkdown.rstudio.com/html_document_format.html#custom_templates

7
répondu Markus Ankenbrand 2016-12-20 09:35:52

la méthode la plus simple et la plus directe pour empêcher l'insertion indésirable des bibliothèques bootstrap dans le préambule du document HTML est d'ajouter le drapeau markdown supplémentaire "theme: null".

output:
  html_document:
     theme: null

C'est plus désirable que self_contained: false car il n'empêche pas l'insertion d'images ou d'autres composants ont besoin de garder le portable document.

À mon avis, il est plus souhaitable que de changer d' html_vignette parce qu'il n'absorbe pas les autres changements imposés par ce processeur.

s'il vous Plaît rappelez-vous que SI votre document utilise un modèle, le thème argument est ignoré et vous devez spécifier theme=NULL dans le rmarkdown::render fonction.

2
répondu pauljohn32 2018-07-26 17:34:43