Я создаю блог, blogdown
в котором я сравниваю код из R и код из Stata. Я хотел бы показать оба кода, чтобы пользователь мог сравнить, как это делается в R и в Stata. Однако размещение двух или более блоков подряд (код для R, код для Stata + вывод) делает чтение довольно неудобным.
Мне пришло в голову несколько макетов, включающих несколько фрагментов, но я не знаю, реализованы ли они уже или вообще возможно ли это сделать.
Есть кнопка для отображения / скрытия чанков (одна кнопка на чанк )
Одна идея будет иметь:
- фрагменты кода R, видимые по умолчанию в статье,
- куски кода Stata невидимы по умолчанию, но видны, если пользователь нажимает кнопку
Этому человеку и этому человеку удалось свернуть свои фрагменты кода в blogdown, но, по-видимому, он скрывает или показывает все фрагменты по умолчанию. Как я могу скрыть только некоторые куски по умолчанию? Есть ли возможность (например , варианты eval
, echo
...) , что шкура или показывает код фрагмент в blogdown
?
Куски с «вкладками»
Название этой части говорит само за себя: возможно ли иметь вкладки в чанке, чтобы мы могли переключаться с одного кода на другой (например, как вкладки в веб-браузерах)?
Показать два куска рядом
В некоторых blogdown
темах (может быть, все, я не знаю), ширина довольно уменьшена, и по бокам есть неиспользуемое пространство. Следовательно, возможно ли увеличить ширину некоторых частей изделия и отобразить два куска рядом друг с другом?
Любая идея, если один из этих макетов может быть реализован в blogdown
?
blogdown
вам добавить CSS? Используя CSS, вы можете создать два блока кода и разместить их рядом. С помощью CSS вы также можете отображать или скрывать фрагменты, и, возможно, сможете делать вкладки, но это не моя сильная сторона.blogdown
могу использовать CSS (см. Здесь ), но я никогда не использовал его, поэтому я попытаюсь, но я не думаю, что смогу достичь этогоОтветы:
Хорошо, вот частичный ответ. Я мог бы просто поставить несколько кусков рядом, но я не знаю, как реализовать другие предложения в моем посте.
Это то, что я сделал. Основываясь на этой странице , я поместил немного CSS-кода в мой
.Rmarkdown
файл, содержащий одну из статей моего блога.Здесь он поместит код
head(mtcars)
и его вывод в два блока рядом друг с другом. Если вы ранее поместили другой блок</div>
, порядок будет таким: блок, его выход, блок, его выход и т. Д. Существует множество опций для настройки отображения двух (или более) столбцов. Однако я не смог сделать несколько вещей:Я не знаю, можно ли заказать три куска. Например, если вы добавите чанк после того, как с
head(mtcars)
, с , порядок будет: chunk1, выход chunk1, chunk2. Я не знаю, можно ли это переставить в: chunk1, chunk2, вывод chunk1.Если я помещу этот код в отдельный файл CSS, соответствующий фрагмент будет отображаться так, как если бы это был обычный текст. Как я могу поместить этот код во внешний файл CSS? Я знаю , что это объясняется в
blogdown
русской книге , но я просто не мог заставить его работать. Что я пробовал до сих пор:поместите код выше (между
<style>
и</style>
) в файл, который я назвалmain.css
и который я поместил вthemes/tale-hugo/static/css
поместите код ниже в начале моего
.Rmarkdown
файла. Я попытался заменить путь своим абсолютным путем к файлу,main.css
и я также попытался просто заменитьstyle.css
наmain.css
в приведенном ниже коде, но безуспешноЯ также попытался поместить путь в customCSS,
config.toml
но это не сработалоПоскольку казалось, что CSS работает, я хотел посмотреть, возможно ли с его помощью создавать вкладки. Это действительно возможно, но требует некоторого кода JavaScript, и я никогда не использовал его раньше, поэтому, если кто-то может помочь с этим, заранее спасибо.
По сути, это рабочая основа, которая может быть обновлена, если я найду решения, но если вы знаете, как решить некоторые из этих проблем, не стесняйтесь.
источник
Так как мой предыдущий ответ был немного запутанным и не очень подробным, я делаю новый ответ, который хорошо подходит для того, что я хотел сделать (то есть, имел возможность сложить некоторые куски кода).
Решение состоит в том, чтобы использовать Джонатана Сиди пакет данных , как указано в этом ответе . Первоначально целью этого пакета было скрыть некоторые выходные данные, которые занимают много места, например
sessionInfo
, в HTML-документах, созданных с помощью R Markdown (и, следовательно, также с R Blogdown). Вот пример (взят с сайта пакета):Однако то, что я хочу скрыть, это не вывод некоторого кода R, а код Stata (который не предназначен для запуска), так что читатели могут сравнить код R с кодом Stata, если они этого захотят. Поэтому мы должны использовать некоторый HTML для этого:
Теперь читатели могут видеть код Stata, если хотят, и те, кто не хочет, не отвлекаются на слишком большое количество фрагментов кода. Это работает и для статей Blogdown (так как это «просто» некоторая R Markdown на сайте).
Дополнительные функции ( настроить скрытые блоки ) подробно описаны на веб-сайте пакета.
источник