diff options
Diffstat (limited to 'ksh-forms-improved.el')
-rw-r--r-- | ksh-forms-improved.el | 87 |
1 files changed, 0 insertions, 87 deletions
diff --git a/ksh-forms-improved.el b/ksh-forms-improved.el deleted file mode 100644 index 83fa0e0..0000000 --- a/ksh-forms-improved.el +++ /dev/null @@ -1,87 +0,0 @@ -;; -*- lexical-binding: t -*- - -(require 'org) -(require 'subr-x) -(require 'cl-lib) - -;; General settings -(setq doc-view-continuous t) -(setq lpr-switches (list "-o sides=two-sided-long-edge" - "-o fit-to-page")) -(setq export-properties - (list :section-numbers nil - :with-toc nil)) - -;; Printing -(defun print-report () - (interactive) - (shell-command - (format "lpr -o sides=two-sided-long-edge -o fit-to-page %s" (buffer-file-name)))) -(defalias 'print-buffer 'print-report) - -;; Utilities -(defun set-values (record values) - "Set record RECORD to values in alist VALUES" - (seq-do (pcase-lambda (`(,field . ,value)) - (aset record field value)) - values)) - -;; Entry creation functions for form display -(defun form-entry (label-field) - (pcase label-field - (`(,label . ,field) - (list (format "%s\n" label) - field"\n\n")))) - -(defun new-record-filter (record) - (set-values record default-field-values) - record) -(setq forms-new-record-filter 'new-record-filter) - -;; Entry creation functions for org export -(defun ksh-forms-org-entry-function (format-string label-field) - (pcase label-field - (`(,label . ,field-no) - (let ((value (get-field field-no))) - (if value - (princ (format format-string label - (replace-regexp-in-string "\n" "\n\n" value))) - (user-error "Field \"%s\" should not be blank" label)))))) - -(defun get-field (field) - "Parse form and return field FIELD from form" - (cond ((integerp field) (nth (1- field) (forms--parse-form))) - ((stringp field) field))) - -(defun single-line-org-entry (label-field) - (ksh-forms-org-entry-function "*%s:* %s\n\n" label-field)) - -(defun multi-line-org-entry (label-field) - (ksh-forms-org-entry-function "\n* %s\n%s\n\n" label-field)) - -(defun text-if-non-blank (text) - (if (and text (not (string-blank-p text))) - (princ (format "%s\n\n" text)))) - -(defun ksh-forms-org-keyword (keyword-value) - (pcase keyword-value - (`(,keyword . ,value) - (princ (format "#+%s: %s\n" keyword value))))) - -(defun ksh-forms-org-latex-header (header) - (ksh-forms-org-keyword (cons "LATEX_HEADER" header))) - -(defun forms-print () - (interactive) - (find-file (org-to-pdf (funcall form-to-org)))) - -(setq org-latex-compiler "xelatex") - -(defun org-to-pdf (org-source) - (let ((tex-file-path (format "%s.tex" (make-temp-file "report")))) - (with-temp-buffer - (insert org-source) - (org-export-to-file 'latex tex-file-path - nil nil nil nil export-properties 'org-latex-compile)))) - -(make-variable-buffer-local 'form-to-org) |