受到这篇伟大帖子的启发,我正在尝试使用org-mode
和babel
发出查询的组合elasticsearch
.例如,计算索引中的条目数:
#+BEGIN_SRC sh curl -XGET 'http://my.uri.example:8080/index/_count' #+END_SRC
C-c C-c
当点在块中时,可以使用上面的代码进行评估.1
另一方面,可以在组织文档中定义宏.我的问题是:是否可以定义一个宏
#+MACRO: live-db http://my.uri.example:8080
并重写代码块如下:
#+BEGIN_SRC sh curl -XGET '{{{live-db}}}/index/_count' #+END_SRC
开箱即用,对我来说,它没有用......似乎babel
在评估块之前没有扩展宏.想法?
现在,一旦我了解到我可以使用es-mode
,我就不会对我的问题进行微调.考虑以下两个请求:
#+BEGIN_SRC es :url http://mu.uri.stage:8080 GET /users/_search?pretty { "query": { "match_all":{} } } #+END_SRC
和
#+BEGIN_SRC es :url http://mu.uri.live:8080 GET /users/_search?pretty { "query": { "match_all":{} } } #+END_SRC
它们只是URL不同.我想定义两个宏:
#+MACRO staging http://my.uri.stage:8080 #+MACRO live http://my.uri.live:8080
然后使用宏作为块的变量.可能吗?
1确保启用评估sh
.添加如下内容:
(org-babel-do-load-languages 'org-babel-load-languages '((sh . t)))
到你的.emacs
.