एक संक्षिप्त तरीके से कई कोड विखंडू प्रदर्शित करें


9

मैं एक ब्लॉग बना रहा हूँ blogdown, जिसमें मैं R से कोड और Stata से कोड की तुलना करता हूँ। मैं दोनों कोड दिखाना चाहता हूं ताकि उपयोगकर्ता तुलना कर सके कि यह R और स्टैटा में कैसे किया गया है। हॉवेर, एक पंक्ति में दो या अधिक विखंडू (आर के लिए कोड, स्टैटा + आउटपुट के लिए कोड) डालकर पढ़ने को काफी असहज बना देता है।

कई चौकों को शामिल करने के लिए कई लेआउट मेरे दिमाग में आए, लेकिन मुझे नहीं पता कि क्या वे पहले से ही लागू हैं या यदि ऐसा करना संभव है।


विखंडू को प्रदर्शित / छिपाने के लिए एक बटन है (एक बटन प्रति हिस्सा )

एक विचार यह होगा:

  • लेख में डिफ़ॉल्ट रूप से दिखाई देने वाले आर कोड विखंडू,
  • यदि उपयोगकर्ता किसी बटन पर क्लिक करता है, तो डिफ़ॉल्ट रूप से अदृश्य, स्टैटा कोड बदल जाता है

यह व्यक्ति और यह व्यक्ति अपने कोड चंक्स को ब्लॉगडाउन में तह करने में सफल रहे, लेकिन जाहिर तौर पर यह डिफ़ॉल्ट रूप से प्रत्येक विखंडू को छुपाता है या दिखाता है। मैं डिफ़ॉल्ट रूप से केवल कुछ विखंडू कैसे छिपा सकता हूं? क्या कोई विकल्प है (जैसे विकल्प eval, echo...) जो कोड चंक को छुपाता है या दिखाता है blogdown?


"टैब" के साथ विखंडू

इस भाग का शीर्षक स्वयं के लिए बोलता है: क्या एक चंक में टैब होना संभव है ताकि हम एक कोड से दूसरे पर स्विच कर सकें (उदाहरण के लिए वेब ब्राउज़र में टैब की तरह)?


अगल-बगल दो चूजों को प्रदर्शित करें

कुछ blogdownविषयों में (शायद सभी, मुझे नहीं पता), चौड़ाई काफी कम है और पक्षों पर कुछ अप्रयुक्त स्थान है। इसलिए, क्या यह संभव है कि किसी लेख के कुछ हिस्सों पर चौड़ाई बढ़ाई जाए और दो चौकों को एक साथ दिखाया जाए?

किसी भी विचार अगर इन लेआउट में से एक में महसूस किया जा सकता है blogdown?


2
मुझे लगता है कि पायथन और आर साइड कहीं-कहीं हैं, इसे दोहरा नहीं सकते, किसी से इसे हल करने के लिए प्रार्थना करना, मेरे पास एक ब्लॉग है जो वास्तव में सुधार करेगा अगर यह संभव था
ब्रूनो

1
क्या blogdownआप CSS को जोड़ सकते हैं? CSS का उपयोग करके आप कोड के दो ब्लॉक बना सकते हैं और उन्हें एक साथ रख सकते हैं। सीएसएस के साथ आप भी विखंडू को प्रदर्शित या छिपा सकते हैं, और टैब करने में सक्षम हो सकते हैं, लेकिन यह मेरा मजबूत बिंदु नहीं है।
बीस्टकोडर

@BeastCoder मुझे लगता है कि मैं blogdownCSS का उपयोग कर सकता हूं ( यहां देखें ) लेकिन मैंने कभी इसका उपयोग नहीं किया है इसलिए मैं कोशिश करूंगा लेकिन मुझे नहीं लगता कि मैं इसे हासिल कर
पाऊंगा

@bretauv मुझे लगता है कि अगर आप यह समझ सकते हैं कि यह इसके लायक हो सकता है, तो मैं आपको तीन ट्यूटोरियल छोड़ सकता हूं जो आपको पूरी तरह से उठ सकते हैं और यदि आप उस रास्ते को लेना चाहते हैं तो चल सकते हैं।
बीस्टकोडर

1. youtu.be/UB1O30fR-EE (जो एक HTML क्रैश कोर्स है) 2. youtu.be/yfoY53QXEnI (जो एक CSS क्रैश कोर्स है) 3. youtu.be/JJJoEo8JSnc (flexblock) वे चीजें जो आपको प्राप्त करने में सक्षम होनी चाहिए अगल-बगल के कोड विखंडू लेकिन वे आपको भविष्य की जानकारी भी प्रदान करेंगे जो हमेशा मददगार साबित होगी। गायब और फिर से दिखाई देने वाले कोड को जोड़ना कठिन हो सकता है लेकिन अगर आप किसी चीज़ का लिंक चाहते हैं तो आपको उस पर शुरुआत करनी होगी। मैं ब्लॉगिंग से बहुत परिचित नहीं हूँ लेकिन एक और तरीका हो सकता है जहाँ आपको CSS की आवश्यकता नहीं है। किसी भी तरह, मैं
BeastCoder

जवाबों:


0

ठीक है, यहाँ एक आंशिक उत्तर है। मैं कई चौकों को एक साथ रख सकता था, लेकिन मुझे नहीं पता कि मैं अपने पोस्ट में अन्य प्रस्तावों का एहसास कैसे करूं।

यह जो मैंने किया है। इस पृष्ठ के आधार पर , मैंने अपनी .Rmarkdownफ़ाइल में अपने ब्लॉग के लेखों में से कुछ में सीएसएस कोड डाला ।

<style>
.flex-container {
  display: flex;
  flex-wrap: nowrap;
  justify-content: center;
  overflow: visible;
}

.flex-container > div {
  width: 200px;
  margin: 10px;
  text-align: left;
  line-height: 75px;
  font-size: 30px;
}
</style>
<div class="flex-container">
```{r message = FALSE}
head(mtcars)
```
</div>

यहां, यह कोड head(mtcars)और इसके आउटपुट को दो साइड में एक साथ रख देगा । यदि आप पहले एक और चंक लगाते हैं </div>, तो यह क्रम होगा: एक चंक, इसका आउटपुट, एक चंक, इसका आउटपुट आदि। कई विकल्प हैं जो दो (या अधिक) कॉलमों के प्रदर्शन को अनुकूलित करते हैं। हालांकि कई चीजें हैं जो मैं नहीं कर सकता था:

  1. मुझे नहीं पता कि क्या यह संभव है कि तीन चूजों का ऑर्डर किया जाए। उदाहरण के लिए, यदि आप एक के बाद एक चंक जोड़ते हैं head(mtcars), तो आदेश होगा: chunk1, chunk1 का उत्पादन, chunk2। मुझे नहीं पता कि इसे फिर से व्यवस्थित किया जा सकता है: chunk1, chunk2, chunk1 का आउटपुट।

  2. यदि मैं इस कोड को एक अलग सीएसएस फ़ाइल में डालता हूं, तो संबंधित पाठ को प्रदर्शित किया जाएगा जैसे कि यह सामान्य पाठ था। मैं इस कोड को बाहरी CSS फ़ाइल में कैसे डाल सकता हूँ? मुझे पता है कि इस से समझाया गया है blogdownकी किताब है, लेकिन मैं सिर्फ यह काम नहीं कर सके। मैंने अब तक क्या कोशिश की है:

    • (के बीच उपरोक्त कोड डाल <style>और </style>एक फ़ाइल में) है कि मैं नामित main.cssऔर मैं में रखा है किthemes/tale-hugo/static/css

    • मेरी .Rmarkdownफ़ाइल की शुरुआत में नीचे दिया गया कोड डालें । मैं फाइल करने के लिए मेरी निरपेक्ष पथ से पथ को बदलने के लिए करने की कोशिश की main.cssऔर मैं भी बदलने के लिए बस की कोशिश की style.cssद्वारा main.cssनीचे दिए गए कोड में, लेकिन सफलता नहीं मिली

      <html>
          <link rel="stylesheet" href="/css/style.css" />
      </html>
    • मैंने customCSS में भी रास्ता निकालने की कोशिश की config.tomlलेकिन यह काम नहीं आया

  3. चूंकि सीएसएस काम करने लगता था, मैं यह देखना चाहता था कि क्या इसके साथ टैब बनाना संभव है। यह वास्तव में संभव है, लेकिन इसके लिए कुछ जावास्क्रिप्ट कोड की आवश्यकता होती है और मैंने पहले कभी इसका इस्तेमाल नहीं किया है, अगर कोई इसके साथ मदद कर सकता है, तो अग्रिम धन्यवाद।

मूल रूप से, यह एक कार्यशील आधार है जिसे अगर मैं समाधान ढूंढता हूं तो अद्यतन किया जा सकता है, लेकिन यदि आप जानते हैं कि इन समस्याओं में से कुछ को कैसे हल किया जाए, तो संकोच न करें।


@BeastCoder यहाँ क्या मैं अब तक किया है
bretauv

0

चूँकि मेरा पिछला उत्तर थोड़ा गड़बड़ था और बहुत विस्तृत नहीं था, इसलिए मैं एक नया उत्तर देता हूँ जो मैं करना चाहता था (यानी कुछ कोड चंक्स मोड़ने की संभावना के साथ) ठीक है।

इसका समाधान जोनाथन सिदी के विवरण पैकेज का उपयोग करना है , जैसा कि इस उत्तर द्वारा बताया गया है । मूल रूप से, इस पैकेज का उद्देश्य कुछ ऐसे आउटपुट को छिपाना था जो बहुत अधिक जगह लेते हैं, जैसे कि sessionInfo, आर मार्केड के साथ किए गए HTML दस्तावेजों में (और इसलिए आर ब्लॉगडाउन के साथ भी)। यहाँ एक उदाहरण (पैकेज की वेबसाइट से लिया गया है):

---
title: "Test"
output: html_document
---

```{r}
library(details)

sessioninfo::session_info()%>%
  details::details(summary = 'current session info')
```

हालाँकि, मैं जो छुपाना चाहता हूं वह कुछ आर कोड का आउटपुट नहीं है, लेकिन एक स्टैटा कोड (जिसका मतलब रन नहीं है) है, जिससे पाठक आर कोड की तुलना स्टटा कोड से कर सकते हैं यदि वे करना चाहते हैं। इसलिए, हमें ऐसा करने के लिए कुछ HTML का उपयोग करना चाहिए:

---
title: "Test"
output: html_document
---

## Regression with R and Stata

```{r, eval=FALSE}
lm(mpg ~ drat, data = mtcars)
```

<details>
<summary> Stata </summary>
```stata
regress y x
```
</details>

अब, पाठक यदि चाहें तो स्टैटा कोड देख सकते हैं और जो नहीं चाहते हैं, वे बहुत सारे कोड विखंडनों से विचलित नहीं होते हैं। यह ब्लॉगडाउन लेखों के लिए भी काम करता है (क्योंकि यह एक वेबसाइट पर "आर" कुछ आर मार्कडाउन है)।

अधिक विशेषताएं ( उदाहरण के लिए छिपी हुई चंक्स अनुकूलित करें ) पैकेज की वेबसाइट पर विस्तृत हैं।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.