Return stringified multi-valued list
This commit is contained in:
parent
82f7522809
commit
7fba972dec
@ -14,70 +14,76 @@
|
|||||||
#+name: export_block
|
#+name: export_block
|
||||||
#+begin_src emacs-lisp :exports none
|
#+begin_src emacs-lisp :exports none
|
||||||
|
|
||||||
(setq export-file "SpaceCompanies.csv")
|
(setq export-file "SpaceCompanies.csv")
|
||||||
|
|
||||||
(defun get-multi-valued (pom prop)
|
(defun get-multi-valued (pom prop)
|
||||||
(let ((end (save-excursion (search-forward ":END:")))
|
(let ((end (save-excursion (search-forward ":END:")))
|
||||||
(elt-b nil)
|
(elt-b nil)
|
||||||
(elt-e nil)
|
(elt-e nil)
|
||||||
(elt nil)
|
(elt nil)
|
||||||
(values '()))
|
(values '())
|
||||||
(save-excursion
|
(values-str ""))
|
||||||
(setq elt-b (search-forward-regexp (format ":%s\\+?:" prop) end t))
|
(save-excursion
|
||||||
(while elt-b
|
(setq elt-b (search-forward-regexp (format ":%s\\+?:" prop) end t))
|
||||||
(setq elt-e (line-end-position))
|
(while elt-b
|
||||||
(setq elt (format "%s" (buffer-substring-no-properties
|
(setq elt-e (line-end-position))
|
||||||
elt-b elt-e)))
|
(setq elt (format "%s" (buffer-substring-no-properties
|
||||||
(setq values (cons elt values))
|
elt-b elt-e)))
|
||||||
(setq elt-b (search-forward-regexp (format ":%s\\+?:" prop) end t)))
|
(setq values (cons elt values))
|
||||||
)
|
(setq elt-b (search-forward-regexp (format ":%s\\+?:" prop) end t)))
|
||||||
values
|
|
||||||
))
|
|
||||||
|
|
||||||
(defun extract-company-data ()
|
|
||||||
(let* ((cur-point (point))
|
|
||||||
(entry (org-element-at-point))
|
|
||||||
(level (org-element-property :level entry))
|
|
||||||
(props (org-entry-properties))
|
|
||||||
(name (org-entry-get cur-point "ITEM"))
|
|
||||||
(homepage (org-entry-get cur-point "HOME_PAGE"))
|
|
||||||
(category (get-multi-valued cur-point "CATEGORY"))
|
|
||||||
(jobsurl (org-entry-get cur-point "JOB_POSTS_URL"))
|
|
||||||
(headquarters (org-entry-get cur-point "HEADQUARTERS"))
|
|
||||||
(usoffice (get-multi-valued cur-point "US_OFFICE"))
|
|
||||||
(remotefreindly (org-entry-get cur-point "REMOTE_FREINDLY")))
|
|
||||||
(if (eq level 2)
|
|
||||||
(with-current-buffer export-file
|
|
||||||
;; (message (format "PROPS: %S" props))
|
|
||||||
(insert (format "\"%s\",\"%s\",\"%s\",\"%s\",\"%s\",\"%s\",\"%s\"\n"
|
|
||||||
name
|
|
||||||
homepage
|
|
||||||
category
|
|
||||||
jobsurl
|
|
||||||
headquarters
|
|
||||||
usoffice
|
|
||||||
remotefreindly
|
|
||||||
))
|
|
||||||
))
|
|
||||||
)
|
|
||||||
)
|
|
||||||
|
|
||||||
;; Main
|
|
||||||
(save-excursion
|
|
||||||
(goto-char (point-min))
|
|
||||||
(search-forward-regexp "^\* Companies" nil t)
|
|
||||||
(beginning-of-line)
|
|
||||||
(get-buffer-create export-file)
|
|
||||||
(with-current-buffer export-file
|
|
||||||
(erase-buffer)
|
|
||||||
(insert "Name,Homepage,Category,Job Posts URL,Headquarters,US Office,Remote Friendly,Notes\n"))
|
|
||||||
(org-map-entries 'extract-company-data nil 'tree)
|
|
||||||
(with-current-buffer export-file
|
|
||||||
(write-file export-file)
|
|
||||||
)
|
)
|
||||||
)
|
(dolist (elt values values-str)
|
||||||
|
(let ((sep (if (> (length values-str) 0) ", " "") ))
|
||||||
|
(setq values-str (format "%s%s%s" values-str sep elt))
|
||||||
|
))))
|
||||||
|
|
||||||
|
(defun extract-company-data ()
|
||||||
|
(let* ((cur-point (point))
|
||||||
|
(entry (org-element-at-point))
|
||||||
|
(level (org-element-property :level entry))
|
||||||
|
(props (org-entry-properties))
|
||||||
|
(name (org-entry-get cur-point "ITEM"))
|
||||||
|
(homepage (org-entry-get cur-point "HOME_PAGE"))
|
||||||
|
(category (get-multi-valued cur-point "CATEGORY"))
|
||||||
|
(jobsurl (org-entry-get cur-point "JOB_POSTS_URL"))
|
||||||
|
(headquarters (org-entry-get cur-point "HEADQUARTERS"))
|
||||||
|
(usoffice (get-multi-valued cur-point "US_OFFICE"))
|
||||||
|
(remotefreindly (org-entry-get cur-point "REMOTE_FREINDLY")))
|
||||||
|
(if (eq level 2)
|
||||||
|
(with-current-buffer export-file
|
||||||
|
;; (message (format "PROPS: %S" props))
|
||||||
|
(insert (format "\"%s\",\"%s\",\"%s\",\"%s\",\"%s\",\"%s\",\"%s\"\n"
|
||||||
|
name
|
||||||
|
homepage
|
||||||
|
category
|
||||||
|
jobsurl
|
||||||
|
headquarters
|
||||||
|
usoffice
|
||||||
|
remotefreindly
|
||||||
|
))
|
||||||
|
))
|
||||||
|
)
|
||||||
|
)
|
||||||
|
|
||||||
|
;; Main
|
||||||
|
(save-excursion
|
||||||
|
(goto-char (point-min))
|
||||||
|
(search-forward-regexp "^\* Companies" nil t)
|
||||||
|
(beginning-of-line)
|
||||||
|
(get-buffer-create export-file)
|
||||||
|
(with-current-buffer export-file
|
||||||
|
(erase-buffer)
|
||||||
|
(insert "Name,Homepage,Category,Job Posts URL,Headquarters,US Office,Remote Friendly,Notes\n"))
|
||||||
|
(org-map-entries 'extract-company-data nil 'tree)
|
||||||
|
(with-current-buffer export-file
|
||||||
|
(write-file export-file)
|
||||||
|
)
|
||||||
|
)
|
||||||
#+end_src
|
#+end_src
|
||||||
|
|
||||||
|
#+RESULTS: export_block
|
||||||
|
: t
|
||||||
|
|
||||||
* Terms
|
* Terms
|
||||||
- SBIR
|
- SBIR
|
||||||
- STTR
|
- STTR
|
||||||
|
Loading…
x
Reference in New Issue
Block a user