पुराना सवाल है, हाँ ... लेकिन इस घटना में कि कोई भी इसे गोगल्स करता है; एक अन्य विकल्प ऑर्गन बैबेल और ob-http
... का उपयोग कर रहा है (इसे मेल्पा से इंस्टॉल किया जा सकता है )
इसके साथ org-babel
, आप एक .org
फाइल बना सकते हैं जिसमें http
कोड ब्लॉक हैं। जब इन ब्लॉकों का मूल्यांकन किया जाता है, तो वे HTTP अनुरोध करेंगे और परिणाम के रूप में प्रतिक्रिया वापस करेंगे।
यदि इन ब्लॉकों में एक " #+NAME:
" विशेषता है, तो आप किसी अन्य org-babel
ब्लॉक में उनके परिणामों का उपयोग कर सकते हैं । यह HTTP अनुरोधों के परिणामों का उपयोग करके कुछ सुंदर स्वच्छ साक्षर प्रोग्रामिंग के लिए अनुमति देता है।
उदाहरण के लिए, एक HTTP अनुरोध करने और रूबी में दिए गए JSON को पार्स करने का प्रदर्शन करने वाला एक छोटा सा Org दस्तावेज़ है:
* The request
The following is the example request shown on [[https://github.com/zweifisch/ob-http][ob-http's Github page]]...
It isn't anything fancy, but it is a REST API request, and returns
JSON, so it works for the sake of this demonstration:
#+NAME:ob-languages
#+BEGIN_SRC http :pretty
GET https://api.github.com/repos/zweifisch/ob-http/languages
#+END_SRC
#+RESULTS:
: {
: "Emacs Lisp": 7034
: }
Notice how this has a "=#+NAME:=" attribute? This is a name we can use
in other =org-babel= blocks. (As you will see below)
* Using the request
Now that I have an =http= request in an org block with a name... Lets
write something in a completely different language and use our HTTP
request's response:
#+BEGIN_SRC ruby :var langs=ob-languages
require 'json'
JSON.parse(langs)['Emacs Lisp']
#+END_SRC
#+RESULTS:
: 7034
The =:var= keyword allowed me to assign the "=langs=" variable in the
Ruby block to the result of the =ob-languages= block [[The request][above]].
This didn't have to be in Ruby, this could have been any language,
including another =http= block.
यह इस तरह दिखता है org-mode
:
C-c C-c
नीचे ब्लॉक पर मारना (रूबी एक) स्वचालित रूप से अपनी निर्भरता के लिए शीर्ष एक का मूल्यांकन करेगा (यह :var
ब्लॉक के हेडर में थोड़ा सा है।)। इसका मतलब यह होगा कि http
अनुरोध पहले किया जाता है, और फिर परिणाम को आगे की प्रक्रिया के लिए रूबी को पास किया जाता है।
आप इसे जितने चाहें उतने ब्लॉक और कई भाषाओं के साथ कर सकते हैं।
यदि यह आपकी आवश्यकताओं के अनुरूप है, ob-http
तो इसे काम करने के लिए स्थापित करने के बाद आपको थोड़ी सी मैन्युअल ट्विकिंग की आवश्यकता होती है। (चिंता न करें, यह उतना नहीं है)
स्थापित करने के बाद ob-http
, आपको दो चर अनुकूलित करने की आवश्यकता है: org-src-lang-modes
और org-babel-load-languages
।
इसलिए, दौड़कर M-x customize-variable
, आप प्रत्येक को निम्नलिखित शामिल करने के लिए अनुकूलित कर सकते हैं:
org-src-lang-modes
: आप एक और भाषा मानचित्रण को शामिल करने के लिए इस चर को अनुकूलित करना चाहेंगे, ताकि आप सूची के अंत में एक और मूल्य सम्मिलित कर सकें:
String: http
Symbol: ob-http
तब आप C-x C-s
उस अनुकूलन को सहेज सकते हैं ।
org-babel-load-languages
: आप सक्षम org
भाषाओं की सूची में एक और आइटम जोड़ना चाहेंगे । " http
"।
हालाँकि, आपको इसे मैन्युअल रूप से सूची में जोड़ने की आवश्यकता हो सकती है यदि विकल्प संभावित विकल्पों में नहीं है, तो आप ऐसा कर सकते हैं कि :
लिस्प अभिव्यक्ति दिखाने के लिए "राज्य" पर क्लिक करके और " " का चयन करें ... फिर आप निम्नलिखित जोड़ देंगे अंतिम समापन कोष्ठक से पहले:
(http . t)
उसके बाद, एक त्वरित C-x C-s
और M-x org-reload
आप सभी की जरूरत होनी चाहिए ..!