Eski soru, evet ... Ama herkesin Googles olması durumunda; Başka bir seçenek Org Babel kullanıyor ve ob-http
... ( melpa'dan yüklenebilir .)
İle " " kod bloklarını içeren org-babel
bir .org
dosya oluşturabilirsiniz http
. Bu bloklar değerlendirildiğinde, HTTP isteğinde bulunurlar ve sonucu olarak yanıtı döndürürler.
Bu blokların " #+NAME:
" özniteliği varsa, sonuçlarını başka herhangi bir org-babel
blokta kullanabilirsiniz. Bu, HTTP isteklerinin sonuçlarını kullanarak oldukça temiz bir okuma yazma programlamasına olanak tanır.
Örneğin, bir HTTP isteği yapıp iade edilen JSON'u Ruby'de ayrıştırmayı gösteren küçük bir Org belgesi:
* 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.
Bu şöyle gözüküyor org-mode
:
C-c C-c
Alt bloğa (The Ruby) vurmak , birinciyi bağımlılığı açısından otomatik olarak değerlendirecektir (Bu :var
, bloğun başlığındaki bit.). Bu, http
isteğin önce yapıldığı ve ardından sonuçların daha fazla işlenmesi için Ruby'ye iletildiği anlamına gelir .
Bunu istediğiniz kadar blokla ve birçok dilde yapabilirsiniz.
Bu ihtiyaçlarınızı karşılıyorsa, ob-http
çalışabilmesi için taktıktan sonra bir miktar el ile ayarlama yapmanız gerekir. (Endişelenme, o kadar değil)
Yüklemeden sonra ob-http
, iki değişkeni özelleştirmeniz gerekir:, org-src-lang-modes
ve org-babel-load-languages
.
Böylece, çalıştırarak M-x customize-variable
her birini aşağıdakileri içerecek şekilde özelleştirebilirsiniz:
org-src-lang-modes
: Bu değişkeni bir tane daha dil eşlemesi içerecek şekilde özelleştirmek isteyeceksiniz, böylece listenin sonuna bir tane daha değer ekleyebilirsiniz:
String: http
Symbol: ob-http
Sonra C-x C-s
bu özelleştirmeyi kaydetmek için yapabilirsiniz .
org-babel-load-languages
: Etkin org
diller listesine bir öğe daha eklemek isteyeceksiniz . " http
"
Seçenek olası seçeneklerde değilse, listeye el ile eklemeniz gerekebilir, ancak :
Lisp ifadesini göstermek için "Durum" u tıklayarak ve " " seçeneğini seçerek yapabilirsiniz. son kapanış parantezinden önce:
(http . t)
Bundan sonra, hızlı C-x C-s
ve M-x org-reload
ihtiyacınız olan her şey olmalı ..!