summaryrefslogtreecommitdiff
path: root/ksh-forms-improved.el
diff options
context:
space:
mode:
authorArun Isaac2020-12-31 13:20:36 +0530
committerArun Isaac2020-12-31 15:07:21 +0530
commitc986de298d9ae631c5c70bc66aa4c327f38e6c88 (patch)
tree45d1128311903492e585769461c18f202e0f9ffc /ksh-forms-improved.el
parentb222cda5853f9e0f78c6fe567d5e7ada0218e7bb (diff)
downloadksh-reports-c986de298d9ae631c5c70bc66aa4c327f38e6c88.tar.gz
ksh-reports-c986de298d9ae631c5c70bc66aa4c327f38e6c88.tar.lz
ksh-reports-c986de298d9ae631c5c70bc66aa4c327f38e6c88.zip
Provide ksh-forms feature.
* ksh-forms.el: Provide ksh-forms. * ksh-discharge.el, ksh-scan2.el, ksh-scan3.el: Require ksh-forms.
Diffstat (limited to 'ksh-forms-improved.el')
-rw-r--r--ksh-forms-improved.el87
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)