On Sat, Nov 10, 2018 at 2:22 AM Nicolas Goaziou wrote: > Hello, > > Matt Price 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 result do (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 >