From: Thibault Marin <thibault.marin@gmx.com>
To: Matt Price <moptop99@gmail.com>
Cc: Org Mode <emacs-orgmode@gnu.org>
Subject: Re: getting access to a self-invented option?
Date: Sat, 03 Aug 2019 01:28:12 -0400 [thread overview]
Message-ID: <875zne4y37.fsf@dell-desktop.WORKGROUP> (raw)
In-Reply-To: <CAN_Dec_to_j67nmavz1sj9iTpYBpPG6hYCum_JyoaMABkvekVw@mail.gmail.com>
Hi,
I am not sure where you are trying to get to the value (in the
publishing function?), but I use something like the following to handle
custom keywords:
,----
| #+MWP_EXPORT_TYPE: slides
|
| #+name: elt
| #+begin_src emacs-lisp :results silent :exports none
| (let ((tree (org-element-parse-buffer)))
| (org-element-map
| tree 'keyword
| (lambda (r)
| (let ((key (org-element-property :key r))
| (value (org-element-property :value r)))
| (when (string= key "MWP_EXPORT_TYPE")
| value))) ;; Return the keyword value
| nil t))
| #+end_src
`----
If you have access to the parsed tree or the buffer filename, you may be
able to use this or something similar (maybe wrapped in a function).
Hope it helps.
On 2019-08-02T12:10:18-0400, Matt Price wrote:
I'm trying to streamline some veyr ad-hoc workflows I have. One thing I do
a lot during the school year is make some changes to an org source file,
and then export to hugo markdown with ox-hugo, and finally commit to git
(after that I have a git hook that generates the website & uploads the
changed pages to the appropriate location, usually a github-pages branch or
separate repo).
So I have this code:
(defun mwp-hugo-export-and-release ()
"Make it faster and easier to put my lectures up on the website."
(interactive)
(let* ((modfile (org-hugo-export-wim-to-md))
(basedir (plist-get (org-export-get-environment 'hugo)
':hugo-base-dir ))
(default-directory (expand-file-name basedir)))
(magit-stage-file modfile)
;; (magit-status)
(magit-commit-create)
) )
It works great, I'm very happy. HOWEVER: in my websites I have two kinds of
outputs:
- regular pages -- these get exported to .md files and turned into html by
hugo
- lecture notes -- these get exported to reveal.js HTML pages by
org-re-reveal and my hugo theme treats them differently .
I would really like to set a switch somewhere in the file, something like:
#+MWP_EXPORT_TYPE: slides
And then something like
let* ((modfile (if (eq :mwp-export-type "slides")
(mwp-hugo-reveal-custom-export-function)
(org-hugo-export-wim-to-md)))
....etc)
do stuff)
But I'm not sure how to get access to a totally non-standard option like
the kind I just invented in that last bit of pseudo-code. Anyone have a
good suggestion?
Thank you as always!
Matt
next prev parent reply other threads:[~2019-08-03 5:28 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-08-02 16:10 getting access to a self-invented option? Matt Price
2019-08-02 20:00 ` Tim Cross
2019-08-07 15:39 ` Matt Price
2019-08-03 5:28 ` Thibault Marin [this message]
2019-08-07 15:30 ` Matt Price
2019-08-03 17:42 ` Berry, Charles
2019-08-07 15:36 ` Matt Price
2019-08-07 16:58 ` Berry, Charles
2019-08-07 17:21 ` Berry, Charles
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
List information: https://www.orgmode.org/
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=875zne4y37.fsf@dell-desktop.WORKGROUP \
--to=thibault.marin@gmx.com \
--cc=emacs-orgmode@gnu.org \
--cc=moptop99@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this public inbox
https://git.savannah.gnu.org/cgit/emacs/org-mode.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).