On Sat, Nov 10, 2018 at 2:22 AM Nicolas Goaziou <mail@nicolasgoaziou.fr> wrote:Hello,
Matt Price <moptop99@gmail.com> writes:
> I am writing this interface to my university's learning management system:
> https://github.com/titaniumbones/Org-Marking-Mode/tree/use-structured-course-def.
> I am only using hte exporting system tangentially and I have not defined a
> new exporter. However, I would really like to be able to set some variable
> values in the header section of hte document, e.g.:
>
> #+ORG_LMS_COURSE: becomingmodern
You can add keywords specific to a given export back-end in its
definition, more precisely in :options-alist value. For example, in
"ox-texinfo", there is
(org-export-define-backend 'texinfo
'((bold . org-texinfo-bold))
...
:options-alist
'((:texinfo-filename "TEXINFO_FILENAME" nil nil t)
...))
which means `texinfo' back-end should recognize the "#+TEXINFO_FILENAME"
keyword, and store its value in the :texinfo-filename property from
"info" paramater, which is passed to each function.
You can write a derived back-end using this new keyword, along with
a template function that actually uses it. Look at the definition of
`beamer' back-end for an example.
Thank you as always, Nicolas. I have not written a derived backend for this, though I guess many of the functions are export-like and in osme ways thatwould make a lot of sense. But I also need to use the course id to receive data from the courseware server, so for instance, right now I have this code:------(defun org-lms-get-students (&optional course)(unless course(setq course org-lms-course))(let* ((courseid (plist-get course :id))(result(org-lms-canvas-request (format "courses/%s/users" courseid) "GET"'(("enrollment_type[]" . "student")("include[]" . "email")))))(message "RESULTS");;(with-temp-file "students-canvas.json" (insert result))(loop for student in-ref resultdo(if (string-match "," (plist-get student :sortable_name))(let ((namelist (split-string (plist-get student :sortable_name) ", ")))(plist-put student :lastname (car namelist) )(plist-put student :firstname (cadr namelist)))))result))---Is there aclever way to extract the value of ~org-lms-course~ from the exporter even if what I'm doing really isn't an export? I'm actually harvesting JSON data from the server, rather than producing an export file.HTH,
--
Nicolas Goaziou