Ich erstelle ein Blog, blogdown
in dem ich Code von R und Code von Stata vergleiche. Ich möchte beide Codes anzeigen, damit der Benutzer vergleichen kann, wie es in R und in Stata gemacht wird. Wenn Sie jedoch zwei oder mehr Blöcke hintereinander platzieren (Code für R, Code für Stata + Ausgabe), ist das Lesen ziemlich unangenehm.
Mir sind mehrere Layouts in den Sinn gekommen, die mehrere Chunks enthalten, aber ich weiß nicht, ob sie bereits implementiert sind oder ob dies überhaupt möglich ist.
Haben Sie eine Schaltfläche zum Anzeigen / Ausblenden von Blöcken (eine Schaltfläche pro Block )
Eine Idee wäre:
- die R-Code-Chunks, die standardmäßig im Artikel angezeigt werden,
- Die Stata-Codeblöcke sind standardmäßig unsichtbar, aber sichtbar, wenn der Benutzer auf eine Schaltfläche klickt
Diese Person und diese Person haben es geschafft, ihre Code-Chunks in Blogdown zu falten, aber anscheinend werden standardmäßig alle Chunks ausgeblendet oder angezeigt. Wie kann ich standardmäßig nur einige Blöcke ausblenden? Gibt es eine Option (wie die Optionen eval
, echo
...), die Codeblock ein- oder ausblendet blogdown
?
Chunks mit "Tabs"
Der Titel dieses Teils spricht für sich: Ist es möglich, Tabs in einem Block zu haben, damit wir von einem Code zum anderen wechseln können (genau wie Tabs in Webbrowsern zum Beispiel)?
Zeigen Sie zwei Teile nebeneinander an
Bei einigen blogdown
Themen (vielleicht alle, ich weiß es nicht) ist die Breite ziemlich reduziert und es gibt etwas ungenutzten Platz an den Seiten. Ist es daher möglich, die Breite einiger Teile eines Artikels zu erhöhen und zwei Teile nebeneinander anzuzeigen?
Irgendeine Idee, ob eines dieser Layouts realisiert werden kann blogdown
?
blogdown
Sie CSS hinzufügen? Mit CSS können Sie zwei Codeblöcke erstellen und nebeneinander platzieren. Mit CSS können Sie auch die Blöcke anzeigen oder ausblenden und möglicherweise die Registerkarten erstellen, aber das ist nicht meine Stärke.blogdown
kann CSS verwenden (siehe hier ), aber ich habe es nie verwendet, also werde ich es versuchen, aber ich glaube nicht, dass ich dies erreichen kannAntworten:
Okay, hier ist eine teilweise Antwort. Ich könnte einfach mehrere Brocken nebeneinander stellen, aber ich weiß nicht, wie ich die anderen Vorschläge in meinem Beitrag realisieren soll.
Das habe ich getan. Basierend auf dieser Seite habe ich einen CSS-Code in meine
.Rmarkdown
Datei eingefügt, der einen der Artikel meines Blogs enthält.Hier werden der Code
head(mtcars)
und seine Ausgabe in zwei Blöcken nebeneinander abgelegt . Wenn Sie zuvor einen anderen Block eingefügt haben</div>
, lautet die Reihenfolge: ein Block, seine Ausgabe, ein Block, seine Ausgabe usw. Es gibt viele Optionen, mit denen Sie die Anzeige der zwei (oder mehr) Spalten anpassen können. Es gibt einige Dinge, die ich jedoch nicht tun konnte:Ich weiß nicht, ob es möglich ist, drei Stücke zu bestellen. Wenn Sie beispielsweise einen Block nach dem mit
head(mtcars)
hinzufügen, lautet die Reihenfolge: Block1, Ausgabe von Block1, Block2. Ich weiß nicht, ob es neu angeordnet werden kann in: chunk1, chunk2, Ausgabe von chunk1.Wenn ich diesen Code in eine separate CSS-Datei einfüge, wird der betreffende Block so angezeigt, als wäre es normaler Text. Wie kann ich diesen Code in eine externe CSS-Datei einfügen? Ich weiß , dass dies in der erklärt wird
blogdown
‚s Buch , aber ich konnte es einfach nicht funktioniert. Was ich bisher versucht habe ist:Fügen Sie den obigen Code (zwischen
<style>
und</style>
) in eine Datei ein, die ich benanntmain.css
und in die ich eingefügt habethemes/tale-hugo/static/css
Fügen Sie den folgenden Code am Anfang meiner
.Rmarkdown
Datei ein. Ich habe versucht, den Pfad durch meinen absoluten Pfad zur Dateimain.css
zu ersetzen, und ich habe auch versucht, nurstyle.css
durchmain.css
den folgenden Code zu ersetzen , aber ohne ErfolgIch habe auch versucht, den Pfad in customCSS einzufügen,
config.toml
aber es hat nicht funktioniertDa CSS zu funktionieren schien, wollte ich sehen, ob es möglich ist, damit Registerkarten zu erstellen. Es ist zwar möglich , erfordert aber JavaScript-Code, und ich habe ihn noch nie zuvor verwendet. Wenn also jemand dabei helfen kann, danke im Voraus.
Grundsätzlich ist dies eine Arbeitsgrundlage, die möglicherweise aktualisiert wird, wenn ich Lösungen finde. Wenn Sie jedoch wissen, wie einige dieser Probleme zu lösen sind, zögern Sie nicht.
quelle
Da meine vorherige Antwort etwas chaotisch und nicht sehr detailliert war, mache ich eine neue Antwort, die gut zu dem passt, was ich tun wollte (dh die Möglichkeit, einige Codeblöcke zu falten).
Die Lösung ist Jonathan Sidis zu verwenden Details Paket, Wie von dieser Antwort . Ursprünglich war das Ziel dieses Pakets, einige Ausgaben zu verbergen, die viel Platz
sessionInfo
beanspruchen , z. B. in HTML-Dokumenten, die mit R Markdown (und damit auch mit R Blogdown) erstellt wurden. Hier ist ein Beispiel (entnommen aus der Website des Pakets):Was ich jedoch verbergen möchte, ist nicht die Ausgabe eines R-Codes, sondern eines Stata-Codes (der nicht ausgeführt werden soll), damit Leser R-Code mit Stata-Code vergleichen können, wenn sie möchten. Daher müssen wir dazu HTML verwenden:
Jetzt können Leser den Stata-Code sehen, wenn sie möchten, und diejenigen, die nicht möchten, werden nicht von zu vielen Codeblöcken abgelenkt. Dies funktioniert auch für Blogdown-Artikel (da es sich "nur" um R Markdown auf einer Website handelt).
Weitere Funktionen ( z. B. Anpassen der versteckten Blöcke ) finden Sie auf der Website des Pakets.
quelle