changelog shortlog graph tags branches changeset files file revisions raw help

Mercurial > core / annotate emacs/lib/publish.el

changeset 665: c60decbaae3d
parent: 39170f311b8c
author: Richard Westhaver <ellis@rwest.io>
date: Sun, 22 Sep 2024 21:29:15 -0400
permissions: -rw-r--r--
description: more graph updates
587
Richard Westhaver <ellis@rwest.io>
parents: 563
diff changeset
1
 ;;; publish.el --- the.compiler.company publishing script  -*- lexical-binding:t -*-
143
64d36c0e3942 podman shenanigans
ellis <ellis@rwest.io>
parents:
diff changeset
2
 
64d36c0e3942 podman shenanigans
ellis <ellis@rwest.io>
parents:
diff changeset
3
 ;; emacsclient -e '(load-file "publish.el")' '(publish)'
64d36c0e3942 podman shenanigans
ellis <ellis@rwest.io>
parents:
diff changeset
4
 
64d36c0e3942 podman shenanigans
ellis <ellis@rwest.io>
parents:
diff changeset
5
 ;;; Code:
64d36c0e3942 podman shenanigans
ellis <ellis@rwest.io>
parents:
diff changeset
6
 (require 'ox-publish)
64d36c0e3942 podman shenanigans
ellis <ellis@rwest.io>
parents:
diff changeset
7
 (require 'org-id)
606
6fc04c4d465c emacs and rocksdb upgrades
Richard Westhaver <ellis@rwest.io>
parents: 605
diff changeset
8
 (require 'dash)
637
b88bf15f60d0 parquet tweaks, import ox-man
Richard Westhaver <ellis@rwest.io>
parents: 636
diff changeset
9
 (require 'ox-man)
143
64d36c0e3942 podman shenanigans
ellis <ellis@rwest.io>
parents:
diff changeset
10
 ;; vendored
64d36c0e3942 podman shenanigans
ellis <ellis@rwest.io>
parents:
diff changeset
11
 (require 'htmlize)
395
d876b572b5b9 updates
Richard Westhaver <ellis@rwest.io>
parents: 143
diff changeset
12
 (defvar project-dir "~/comp/org")
563
8b10eabe89dd std/tests, clap tweaks
Richard Westhaver <ellis@rwest.io>
parents: 451
diff changeset
13
 (defvar publish-dir "/tmp/www")
143
64d36c0e3942 podman shenanigans
ellis <ellis@rwest.io>
parents:
diff changeset
14
 (defvar html-theme nil)
64d36c0e3942 podman shenanigans
ellis <ellis@rwest.io>
parents:
diff changeset
15
 (defvar url "https://compiler.company")
406
71baf0d4768d skel work
Richard Westhaver <ellis@rwest.io>
parents: 397
diff changeset
16
 (defvar vc-url "https://vc.compiler.company")
71baf0d4768d skel work
Richard Westhaver <ellis@rwest.io>
parents: 397
diff changeset
17
 (defvar packy-url "https://packy.compiler.company")
143
64d36c0e3942 podman shenanigans
ellis <ellis@rwest.io>
parents:
diff changeset
18
 (defvar html-foot "<footer><p>updated %C</p></footer>")
64d36c0e3942 podman shenanigans
ellis <ellis@rwest.io>
parents:
diff changeset
19
 
396
6f2796285c41 bug fix, messing with org 9.7 features
Richard Westhaver <ellis@rwest.io>
parents: 395
diff changeset
20
 ;; (setq org-protocol-project-alist
6f2796285c41 bug fix, messing with org 9.7 features
Richard Westhaver <ellis@rwest.io>
parents: 395
diff changeset
21
 ;;       '(("comp"
6f2796285c41 bug fix, messing with org 9.7 features
Richard Westhaver <ellis@rwest.io>
parents: 395
diff changeset
22
 ;;          :base-url url
6f2796285c41 bug fix, messing with org 9.7 features
Richard Westhaver <ellis@rwest.io>
parents: 395
diff changeset
23
 ;;          :working-directory project-dir
6f2796285c41 bug fix, messing with org 9.7 features
Richard Westhaver <ellis@rwest.io>
parents: 395
diff changeset
24
 ;;          :online-suffix ".html"
6f2796285c41 bug fix, messing with org 9.7 features
Richard Westhaver <ellis@rwest.io>
parents: 395
diff changeset
25
 ;;          :working-suffix ".org")))
6f2796285c41 bug fix, messing with org 9.7 features
Richard Westhaver <ellis@rwest.io>
parents: 395
diff changeset
26
 
143
64d36c0e3942 podman shenanigans
ellis <ellis@rwest.io>
parents:
diff changeset
27
 (setq org-html-style-default ""
629
ab02408636b7 elisp work, added slime-company (to be deprecated)
Richard Westhaver <ellis@rwest.io>
parents: 618
diff changeset
28
       ;; org-html-scripts ""
661
39170f311b8c add sk-def and sk-bind
Richard Westhaver <ellis@rwest.io>
parents: 638
diff changeset
29
       
143
64d36c0e3942 podman shenanigans
ellis <ellis@rwest.io>
parents:
diff changeset
30
       org-html-htmlize-output-type 'css
64d36c0e3942 podman shenanigans
ellis <ellis@rwest.io>
parents:
diff changeset
31
       org-export-htmlize-output-type 'css
447
1365263e8311 publish updates
Richard Westhaver <ellis@rwest.io>
parents: 428
diff changeset
32
       org-export-allow-bind-keywords t
143
64d36c0e3942 podman shenanigans
ellis <ellis@rwest.io>
parents:
diff changeset
33
       org-html-doctype "html5"
64d36c0e3942 podman shenanigans
ellis <ellis@rwest.io>
parents:
diff changeset
34
       org-html-html5-fancy t
629
ab02408636b7 elisp work, added slime-company (to be deprecated)
Richard Westhaver <ellis@rwest.io>
parents: 618
diff changeset
35
       ;; org-html-validation-link nil
143
64d36c0e3942 podman shenanigans
ellis <ellis@rwest.io>
parents:
diff changeset
36
       org-src-fontify-natively t
64d36c0e3942 podman shenanigans
ellis <ellis@rwest.io>
parents:
diff changeset
37
       make-backup-files nil
64d36c0e3942 podman shenanigans
ellis <ellis@rwest.io>
parents:
diff changeset
38
       debug-on-error t
661
39170f311b8c add sk-def and sk-bind
Richard Westhaver <ellis@rwest.io>
parents: 638
diff changeset
39
       org-id-link-to-org-use-id t
39170f311b8c add sk-def and sk-bind
Richard Westhaver <ellis@rwest.io>
parents: 638
diff changeset
40
       org-html-klipsify-src nil)
39170f311b8c add sk-def and sk-bind
Richard Westhaver <ellis@rwest.io>
parents: 638
diff changeset
41
 
39170f311b8c add sk-def and sk-bind
Richard Westhaver <ellis@rwest.io>
parents: 638
diff changeset
42
 (setq org-html-klipse-selection-script
39170f311b8c add sk-def and sk-bind
Richard Westhaver <ellis@rwest.io>
parents: 638
diff changeset
43
       "window.klipse_settings = {selector_eval_html: '.src-html',
39170f311b8c add sk-def and sk-bind
Richard Westhaver <ellis@rwest.io>
parents: 638
diff changeset
44
                              selector_eval_js: '.src-js',
39170f311b8c add sk-def and sk-bind
Richard Westhaver <ellis@rwest.io>
parents: 638
diff changeset
45
                              selector_eval_python_client: '.src-python',
39170f311b8c add sk-def and sk-bind
Richard Westhaver <ellis@rwest.io>
parents: 638
diff changeset
46
                              selector_eval_scheme: '.src-scheme',
39170f311b8c add sk-def and sk-bind
Richard Westhaver <ellis@rwest.io>
parents: 638
diff changeset
47
                              selector: '.src-clojure',
39170f311b8c add sk-def and sk-bind
Richard Westhaver <ellis@rwest.io>
parents: 638
diff changeset
48
                              selector_eval_ruby: '.src-ruby',
39170f311b8c add sk-def and sk-bind
Richard Westhaver <ellis@rwest.io>
parents: 638
diff changeset
49
                              selector_eval_clisp: '.src-lisp'};")
143
64d36c0e3942 podman shenanigans
ellis <ellis@rwest.io>
parents:
diff changeset
50
 
629
ab02408636b7 elisp work, added slime-company (to be deprecated)
Richard Westhaver <ellis@rwest.io>
parents: 618
diff changeset
51
 (setq org-html-link-home url)
ab02408636b7 elisp work, added slime-company (to be deprecated)
Richard Westhaver <ellis@rwest.io>
parents: 618
diff changeset
52
 
665
c60decbaae3d more graph updates
Richard Westhaver <ellis@rwest.io>
parents: 661
diff changeset
53
 (setq org-html-home/up-format "<nav id=\"org-div-home-and-up\"><a href=\"%s\" accesskey=\"h\"><button class=home>⌂</button></a><a href=\"%s\" accesskey=\"u\"><button class=up>▲</button></a>
c60decbaae3d more graph updates
Richard Westhaver <ellis@rwest.io>
parents: 661
diff changeset
54
 <button accesskey=\"s\" class=show onclick=open_all_sections()>show</button> <button accesskey=\"x\" class=hide onclick=close_all_sections()>hide</button></nav>")
629
ab02408636b7 elisp work, added slime-company (to be deprecated)
Richard Westhaver <ellis@rwest.io>
parents: 618
diff changeset
55
       
143
64d36c0e3942 podman shenanigans
ellis <ellis@rwest.io>
parents:
diff changeset
56
 (setq org-publish-project-alist
587
Richard Westhaver <ellis@rwest.io>
parents: 563
diff changeset
57
       `(("compiler.company" :components ("index" "meta" "blog" "docs" "notes" "plan"))
143
64d36c0e3942 podman shenanigans
ellis <ellis@rwest.io>
parents:
diff changeset
58
         ("index"
64d36c0e3942 podman shenanigans
ellis <ellis@rwest.io>
parents:
diff changeset
59
          :base-directory ,project-dir
64d36c0e3942 podman shenanigans
ellis <ellis@rwest.io>
parents:
diff changeset
60
          :base-extension "org"
64d36c0e3942 podman shenanigans
ellis <ellis@rwest.io>
parents:
diff changeset
61
          :recursive nil
64d36c0e3942 podman shenanigans
ellis <ellis@rwest.io>
parents:
diff changeset
62
          :htmlized-source t
64d36c0e3942 podman shenanigans
ellis <ellis@rwest.io>
parents:
diff changeset
63
          :footnote-section-p t
64d36c0e3942 podman shenanigans
ellis <ellis@rwest.io>
parents:
diff changeset
64
          :html-doctype "<!doctype html>"
64d36c0e3942 podman shenanigans
ellis <ellis@rwest.io>
parents:
diff changeset
65
 	 :html-postamble ,html-foot
64d36c0e3942 podman shenanigans
ellis <ellis@rwest.io>
parents:
diff changeset
66
          :publishing-directory ,publish-dir
64d36c0e3942 podman shenanigans
ellis <ellis@rwest.io>
parents:
diff changeset
67
          :publishing-function org-html-publish-to-html)
587
Richard Westhaver <ellis@rwest.io>
parents: 563
diff changeset
68
         ("meta"
Richard Westhaver <ellis@rwest.io>
parents: 563
diff changeset
69
          :base-directory ,(expand-file-name "meta" project-dir)
Richard Westhaver <ellis@rwest.io>
parents: 563
diff changeset
70
          :base-extension "org"
618
5e57683a0c28 rocksdb updates and tests, emacs org config
Richard Westhaver <ellis@rwest.io>
parents: 614
diff changeset
71
          :recursive nil
587
Richard Westhaver <ellis@rwest.io>
parents: 563
diff changeset
72
          :footnote-section-p t
Richard Westhaver <ellis@rwest.io>
parents: 563
diff changeset
73
          :html-doctype "<!doctype html>"
Richard Westhaver <ellis@rwest.io>
parents: 563
diff changeset
74
          :publishing-directory ,(expand-file-name "meta" publish-dir)
Richard Westhaver <ellis@rwest.io>
parents: 563
diff changeset
75
          :publishing-function org-html-publish-to-html
Richard Westhaver <ellis@rwest.io>
parents: 563
diff changeset
76
          :htmlized-source t
Richard Westhaver <ellis@rwest.io>
parents: 563
diff changeset
77
          :html-postamble ,html-foot)
143
64d36c0e3942 podman shenanigans
ellis <ellis@rwest.io>
parents:
diff changeset
78
         ("blog"
64d36c0e3942 podman shenanigans
ellis <ellis@rwest.io>
parents:
diff changeset
79
          :base-directory ,(expand-file-name "blog" project-dir)
428
af3d873a0312 clean.theme upgrades
Richard Westhaver <ellis@rwest.io>
parents: 422
diff changeset
80
          :recursive t
143
64d36c0e3942 podman shenanigans
ellis <ellis@rwest.io>
parents:
diff changeset
81
          :base-extension "org"
64d36c0e3942 podman shenanigans
ellis <ellis@rwest.io>
parents:
diff changeset
82
          :footnote-section-p t
64d36c0e3942 podman shenanigans
ellis <ellis@rwest.io>
parents:
diff changeset
83
          :html-doctype "<!doctype html>"
64d36c0e3942 podman shenanigans
ellis <ellis@rwest.io>
parents:
diff changeset
84
 	 :publishing-directory ,(expand-file-name "blog" publish-dir)
64d36c0e3942 podman shenanigans
ellis <ellis@rwest.io>
parents:
diff changeset
85
 	 :publishing-function org-html-publish-to-html
64d36c0e3942 podman shenanigans
ellis <ellis@rwest.io>
parents:
diff changeset
86
 	 :htmlized-source t
64d36c0e3942 podman shenanigans
ellis <ellis@rwest.io>
parents:
diff changeset
87
 	 :html-postamble ,html-foot)
422
3e0a434b0c56 init alik installer example, more emacs-lisp
Richard Westhaver <ellis@rwest.io>
parents: 406
diff changeset
88
         ("plan"
3e0a434b0c56 init alik installer example, more emacs-lisp
Richard Westhaver <ellis@rwest.io>
parents: 406
diff changeset
89
          :base-directory ,(expand-file-name "plan" project-dir)
428
af3d873a0312 clean.theme upgrades
Richard Westhaver <ellis@rwest.io>
parents: 422
diff changeset
90
          :recursive t
422
3e0a434b0c56 init alik installer example, more emacs-lisp
Richard Westhaver <ellis@rwest.io>
parents: 406
diff changeset
91
          :base-extension "org"
3e0a434b0c56 init alik installer example, more emacs-lisp
Richard Westhaver <ellis@rwest.io>
parents: 406
diff changeset
92
          :footnote-section-p t
3e0a434b0c56 init alik installer example, more emacs-lisp
Richard Westhaver <ellis@rwest.io>
parents: 406
diff changeset
93
          :html-doctype "<!doctype html>"
3e0a434b0c56 init alik installer example, more emacs-lisp
Richard Westhaver <ellis@rwest.io>
parents: 406
diff changeset
94
          :publishing-directory ,(expand-file-name "plan" publish-dir)
3e0a434b0c56 init alik installer example, more emacs-lisp
Richard Westhaver <ellis@rwest.io>
parents: 406
diff changeset
95
          :publishing-function org-html-publish-to-html
3e0a434b0c56 init alik installer example, more emacs-lisp
Richard Westhaver <ellis@rwest.io>
parents: 406
diff changeset
96
          :htmlized-source t
3e0a434b0c56 init alik installer example, more emacs-lisp
Richard Westhaver <ellis@rwest.io>
parents: 406
diff changeset
97
          :html-postamble ,html-foot)
3e0a434b0c56 init alik installer example, more emacs-lisp
Richard Westhaver <ellis@rwest.io>
parents: 406
diff changeset
98
         ("notes"
3e0a434b0c56 init alik installer example, more emacs-lisp
Richard Westhaver <ellis@rwest.io>
parents: 406
diff changeset
99
          :base-directory ,(expand-file-name "notes" project-dir)
428
af3d873a0312 clean.theme upgrades
Richard Westhaver <ellis@rwest.io>
parents: 422
diff changeset
100
          :recursive t
422
3e0a434b0c56 init alik installer example, more emacs-lisp
Richard Westhaver <ellis@rwest.io>
parents: 406
diff changeset
101
          :base-extension "org"
3e0a434b0c56 init alik installer example, more emacs-lisp
Richard Westhaver <ellis@rwest.io>
parents: 406
diff changeset
102
          :footnote-section-p t
3e0a434b0c56 init alik installer example, more emacs-lisp
Richard Westhaver <ellis@rwest.io>
parents: 406
diff changeset
103
          :html-doctype "<!doctype html>"
3e0a434b0c56 init alik installer example, more emacs-lisp
Richard Westhaver <ellis@rwest.io>
parents: 406
diff changeset
104
          :publishing-directory ,(expand-file-name "notes" publish-dir)
3e0a434b0c56 init alik installer example, more emacs-lisp
Richard Westhaver <ellis@rwest.io>
parents: 406
diff changeset
105
          :publishing-function org-html-publish-to-html
3e0a434b0c56 init alik installer example, more emacs-lisp
Richard Westhaver <ellis@rwest.io>
parents: 406
diff changeset
106
          :htmlized-source t
3e0a434b0c56 init alik installer example, more emacs-lisp
Richard Westhaver <ellis@rwest.io>
parents: 406
diff changeset
107
          :html-postamble ,html-foot)
143
64d36c0e3942 podman shenanigans
ellis <ellis@rwest.io>
parents:
diff changeset
108
         ("docs"
64d36c0e3942 podman shenanigans
ellis <ellis@rwest.io>
parents:
diff changeset
109
          :base-directory ,(expand-file-name "docs" project-dir)
64d36c0e3942 podman shenanigans
ellis <ellis@rwest.io>
parents:
diff changeset
110
          :base-extension "org"
64d36c0e3942 podman shenanigans
ellis <ellis@rwest.io>
parents:
diff changeset
111
          :recursive t
64d36c0e3942 podman shenanigans
ellis <ellis@rwest.io>
parents:
diff changeset
112
          :footnote-section-p t
64d36c0e3942 podman shenanigans
ellis <ellis@rwest.io>
parents:
diff changeset
113
          :html-doctype "<!doctype html>"
64d36c0e3942 podman shenanigans
ellis <ellis@rwest.io>
parents:
diff changeset
114
          :publishing-directory ,(expand-file-name "docs" publish-dir)
587
Richard Westhaver <ellis@rwest.io>
parents: 563
diff changeset
115
          :publishing-function org-html-publish-to-html
Richard Westhaver <ellis@rwest.io>
parents: 563
diff changeset
116
          :htmlized-source t
Richard Westhaver <ellis@rwest.io>
parents: 563
diff changeset
117
          :html-postamble ,html-foot)))
143
64d36c0e3942 podman shenanigans
ellis <ellis@rwest.io>
parents:
diff changeset
118
 
613
9ffe93dbe9b9 el tweaks
Richard Westhaver <ellis@rwest.io>
parents: 611
diff changeset
119
 ;; (defun org-export-get-reference-title (datum info)
9ffe93dbe9b9 el tweaks
Richard Westhaver <ellis@rwest.io>
parents: 611
diff changeset
120
 ;;   "Like `org-export-get-reference', except uses heading titles instead of random numbers."
9ffe93dbe9b9 el tweaks
Richard Westhaver <ellis@rwest.io>
parents: 611
diff changeset
121
 ;;   (let ((cache (plist-get info :internal-references)))
9ffe93dbe9b9 el tweaks
Richard Westhaver <ellis@rwest.io>
parents: 611
diff changeset
122
 ;;     (or (car (rassq datum cache))
9ffe93dbe9b9 el tweaks
Richard Westhaver <ellis@rwest.io>
parents: 611
diff changeset
123
 ;;         (let* ((crossrefs (plist-get info :crossrefs))
9ffe93dbe9b9 el tweaks
Richard Westhaver <ellis@rwest.io>
parents: 611
diff changeset
124
 ;;                (cells (org-export-search-cells datum))
9ffe93dbe9b9 el tweaks
Richard Westhaver <ellis@rwest.io>
parents: 611
diff changeset
125
 ;;                ;; Preserve any pre-existing association between
9ffe93dbe9b9 el tweaks
Richard Westhaver <ellis@rwest.io>
parents: 611
diff changeset
126
 ;;                ;; a search cell and a reference, i.e., when some
9ffe93dbe9b9 el tweaks
Richard Westhaver <ellis@rwest.io>
parents: 611
diff changeset
127
 ;;                ;; previously published document referenced a location
9ffe93dbe9b9 el tweaks
Richard Westhaver <ellis@rwest.io>
parents: 611
diff changeset
128
 ;;                ;; within current file (see
9ffe93dbe9b9 el tweaks
Richard Westhaver <ellis@rwest.io>
parents: 611
diff changeset
129
 ;;                ;; `org-publish-resolve-external-link').
9ffe93dbe9b9 el tweaks
Richard Westhaver <ellis@rwest.io>
parents: 611
diff changeset
130
 ;;                ;;
9ffe93dbe9b9 el tweaks
Richard Westhaver <ellis@rwest.io>
parents: 611
diff changeset
131
 ;;                ;; However, there is no guarantee that search cells are
9ffe93dbe9b9 el tweaks
Richard Westhaver <ellis@rwest.io>
parents: 611
diff changeset
132
 ;;                ;; unique, e.g., there might be duplicate custom ID or
9ffe93dbe9b9 el tweaks
Richard Westhaver <ellis@rwest.io>
parents: 611
diff changeset
133
 ;;                ;; two headings with the same title in the file.
9ffe93dbe9b9 el tweaks
Richard Westhaver <ellis@rwest.io>
parents: 611
diff changeset
134
 ;;                ;;
9ffe93dbe9b9 el tweaks
Richard Westhaver <ellis@rwest.io>
parents: 611
diff changeset
135
 ;;                ;; As a consequence, before re-using any reference to
9ffe93dbe9b9 el tweaks
Richard Westhaver <ellis@rwest.io>
parents: 611
diff changeset
136
 ;;                ;; an element or object, we check that it doesn't refer
9ffe93dbe9b9 el tweaks
Richard Westhaver <ellis@rwest.io>
parents: 611
diff changeset
137
 ;;                ;; to a previous element or object.
9ffe93dbe9b9 el tweaks
Richard Westhaver <ellis@rwest.io>
parents: 611
diff changeset
138
 ;;                (new (or (cl-some
9ffe93dbe9b9 el tweaks
Richard Westhaver <ellis@rwest.io>
parents: 611
diff changeset
139
 ;;                          (lambda (cell)
9ffe93dbe9b9 el tweaks
Richard Westhaver <ellis@rwest.io>
parents: 611
diff changeset
140
 ;;                            (let ((stored (cdr (assoc cell crossrefs))))
9ffe93dbe9b9 el tweaks
Richard Westhaver <ellis@rwest.io>
parents: 611
diff changeset
141
 ;;                              (when stored
9ffe93dbe9b9 el tweaks
Richard Westhaver <ellis@rwest.io>
parents: 611
diff changeset
142
 ;;                                (let ((old (org-export-format-reference stored)))
9ffe93dbe9b9 el tweaks
Richard Westhaver <ellis@rwest.io>
parents: 611
diff changeset
143
 ;;                                  (and (not (assoc old cache)) stored)))))
9ffe93dbe9b9 el tweaks
Richard Westhaver <ellis@rwest.io>
parents: 611
diff changeset
144
 ;;                          cells)
9ffe93dbe9b9 el tweaks
Richard Westhaver <ellis@rwest.io>
parents: 611
diff changeset
145
 ;;                         (when (org-element-property :raw-value datum)
9ffe93dbe9b9 el tweaks
Richard Westhaver <ellis@rwest.io>
parents: 611
diff changeset
146
 ;;                           ;; Heading with a title
9ffe93dbe9b9 el tweaks
Richard Westhaver <ellis@rwest.io>
parents: 611
diff changeset
147
 ;;                           (org-export-new-title-reference datum cache))
9ffe93dbe9b9 el tweaks
Richard Westhaver <ellis@rwest.io>
parents: 611
diff changeset
148
 ;;                         ;; NOTE: This probably breaks some Org Export
9ffe93dbe9b9 el tweaks
Richard Westhaver <ellis@rwest.io>
parents: 611
diff changeset
149
 ;;                         ;; feature, but if it does what I need, fine.
9ffe93dbe9b9 el tweaks
Richard Westhaver <ellis@rwest.io>
parents: 611
diff changeset
150
 ;;                         (org-export-format-reference
9ffe93dbe9b9 el tweaks
Richard Westhaver <ellis@rwest.io>
parents: 611
diff changeset
151
 ;;                          (org-export-new-reference cache))))
9ffe93dbe9b9 el tweaks
Richard Westhaver <ellis@rwest.io>
parents: 611
diff changeset
152
 ;;                (reference-string new))
9ffe93dbe9b9 el tweaks
Richard Westhaver <ellis@rwest.io>
parents: 611
diff changeset
153
 ;;           ;; Cache contains both data already associated to
9ffe93dbe9b9 el tweaks
Richard Westhaver <ellis@rwest.io>
parents: 611
diff changeset
154
 ;;           ;; a reference and in-use internal references, so as to make
9ffe93dbe9b9 el tweaks
Richard Westhaver <ellis@rwest.io>
parents: 611
diff changeset
155
 ;;           ;; unique references.
9ffe93dbe9b9 el tweaks
Richard Westhaver <ellis@rwest.io>
parents: 611
diff changeset
156
 ;;           (dolist (cell cells) (push (cons cell new) cache))
9ffe93dbe9b9 el tweaks
Richard Westhaver <ellis@rwest.io>
parents: 611
diff changeset
157
 ;;           ;; Retain a direct association between reference string and
9ffe93dbe9b9 el tweaks
Richard Westhaver <ellis@rwest.io>
parents: 611
diff changeset
158
 ;;           ;; DATUM since (1) not every object or element can be given
9ffe93dbe9b9 el tweaks
Richard Westhaver <ellis@rwest.io>
parents: 611
diff changeset
159
 ;;           ;; a search cell (2) it permits quick lookup.
9ffe93dbe9b9 el tweaks
Richard Westhaver <ellis@rwest.io>
parents: 611
diff changeset
160
 ;;           (push (cons reference-string datum) cache)
9ffe93dbe9b9 el tweaks
Richard Westhaver <ellis@rwest.io>
parents: 611
diff changeset
161
 ;;           (plist-put info :internal-references cache)
9ffe93dbe9b9 el tweaks
Richard Westhaver <ellis@rwest.io>
parents: 611
diff changeset
162
 ;;           reference-string))))
605
3734c596d103 rm babel, update org config
Richard Westhaver <ellis@rwest.io>
parents: 604
diff changeset
163
 
613
9ffe93dbe9b9 el tweaks
Richard Westhaver <ellis@rwest.io>
parents: 611
diff changeset
164
 ;; (defun org-export-new-title-reference (datum cache)
9ffe93dbe9b9 el tweaks
Richard Westhaver <ellis@rwest.io>
parents: 611
diff changeset
165
 ;;   "Return new reference for DATUM that is unique in CACHE."
9ffe93dbe9b9 el tweaks
Richard Westhaver <ellis@rwest.io>
parents: 611
diff changeset
166
 ;;   (cl-macrolet ((inc-suffixf (place)
9ffe93dbe9b9 el tweaks
Richard Westhaver <ellis@rwest.io>
parents: 611
diff changeset
167
 ;;                              `(progn
9ffe93dbe9b9 el tweaks
Richard Westhaver <ellis@rwest.io>
parents: 611
diff changeset
168
 ;;                                 (string-match (rx bos
9ffe93dbe9b9 el tweaks
Richard Westhaver <ellis@rwest.io>
parents: 611
diff changeset
169
 ;;                                                   (minimal-match (group (1+ anything)))
9ffe93dbe9b9 el tweaks
Richard Westhaver <ellis@rwest.io>
parents: 611
diff changeset
170
 ;;                                                   (optional "--" (group (1+ digit)))
9ffe93dbe9b9 el tweaks
Richard Westhaver <ellis@rwest.io>
parents: 611
diff changeset
171
 ;;                                                   eos)
9ffe93dbe9b9 el tweaks
Richard Westhaver <ellis@rwest.io>
parents: 611
diff changeset
172
 ;;                                               ,place)
9ffe93dbe9b9 el tweaks
Richard Westhaver <ellis@rwest.io>
parents: 611
diff changeset
173
 ;;                                 ;; HACK: `s1' instead of a gensym.
9ffe93dbe9b9 el tweaks
Richard Westhaver <ellis@rwest.io>
parents: 611
diff changeset
174
 ;;                                 (-let* (((s1 suffix) (list (match-string 1 ,place)
9ffe93dbe9b9 el tweaks
Richard Westhaver <ellis@rwest.io>
parents: 611
diff changeset
175
 ;;                                                            (match-string 2 ,place)))
9ffe93dbe9b9 el tweaks
Richard Westhaver <ellis@rwest.io>
parents: 611
diff changeset
176
 ;;                                         (suffix (if suffix
9ffe93dbe9b9 el tweaks
Richard Westhaver <ellis@rwest.io>
parents: 611
diff changeset
177
 ;;                                                     (string-to-number suffix)
9ffe93dbe9b9 el tweaks
Richard Westhaver <ellis@rwest.io>
parents: 611
diff changeset
178
 ;;                                                   0)))
9ffe93dbe9b9 el tweaks
Richard Westhaver <ellis@rwest.io>
parents: 611
diff changeset
179
 ;;                                   (setf ,place (format "%s--%s" s1 (cl-incf suffix)))))))
9ffe93dbe9b9 el tweaks
Richard Westhaver <ellis@rwest.io>
parents: 611
diff changeset
180
 ;;     (let* ((title (org-element-property :raw-value datum))
9ffe93dbe9b9 el tweaks
Richard Westhaver <ellis@rwest.io>
parents: 611
diff changeset
181
 ;;            (ref (url-hexify-string (substring-no-properties title)))
9ffe93dbe9b9 el tweaks
Richard Westhaver <ellis@rwest.io>
parents: 611
diff changeset
182
 ;;            (parent (org-element-property :parent datum)))
9ffe93dbe9b9 el tweaks
Richard Westhaver <ellis@rwest.io>
parents: 611
diff changeset
183
 ;;       (while (--any (equal ref (car it))
9ffe93dbe9b9 el tweaks
Richard Westhaver <ellis@rwest.io>
parents: 611
diff changeset
184
 ;;                     cache)
9ffe93dbe9b9 el tweaks
Richard Westhaver <ellis@rwest.io>
parents: 611
diff changeset
185
 ;;         ;; Title not unique: make it so.
9ffe93dbe9b9 el tweaks
Richard Westhaver <ellis@rwest.io>
parents: 611
diff changeset
186
 ;;         (if parent
9ffe93dbe9b9 el tweaks
Richard Westhaver <ellis@rwest.io>
parents: 611
diff changeset
187
 ;;             ;; Append ancestor title.
9ffe93dbe9b9 el tweaks
Richard Westhaver <ellis@rwest.io>
parents: 611
diff changeset
188
 ;;             (setf title (concat (org-element-property :raw-value parent)
9ffe93dbe9b9 el tweaks
Richard Westhaver <ellis@rwest.io>
parents: 611
diff changeset
189
 ;;                                 "--" title)
9ffe93dbe9b9 el tweaks
Richard Westhaver <ellis@rwest.io>
parents: 611
diff changeset
190
 ;;                   ref (url-hexify-string (substring-no-properties title))
9ffe93dbe9b9 el tweaks
Richard Westhaver <ellis@rwest.io>
parents: 611
diff changeset
191
 ;;                   parent (org-element-property :parent parent))
9ffe93dbe9b9 el tweaks
Richard Westhaver <ellis@rwest.io>
parents: 611
diff changeset
192
 ;;           ;; No more ancestors: add and increment a number.
9ffe93dbe9b9 el tweaks
Richard Westhaver <ellis@rwest.io>
parents: 611
diff changeset
193
 ;;           (inc-suffixf ref)))
9ffe93dbe9b9 el tweaks
Richard Westhaver <ellis@rwest.io>
parents: 611
diff changeset
194
 ;;       ref)))
605
3734c596d103 rm babel, update org config
Richard Westhaver <ellis@rwest.io>
parents: 604
diff changeset
195
 
143
64d36c0e3942 podman shenanigans
ellis <ellis@rwest.io>
parents:
diff changeset
196
 ;;;###autoload
64d36c0e3942 podman shenanigans
ellis <ellis@rwest.io>
parents:
diff changeset
197
 (defun publish (&optional sitemap static force async)
638
6c0e4a44c082 dblocks
Richard Westhaver <ellis@rwest.io>
parents: 637
diff changeset
198
   "publish `compiler.company' content.
143
64d36c0e3942 podman shenanigans
ellis <ellis@rwest.io>
parents:
diff changeset
199
 If STATIC is t, also publish media and static files.
64d36c0e3942 podman shenanigans
ellis <ellis@rwest.io>
parents:
diff changeset
200
 If FORCE is t, skip checking file mod date and just publish all files.
64d36c0e3942 podman shenanigans
ellis <ellis@rwest.io>
parents:
diff changeset
201
 If ASYNC is t, call `org-publish' asynchronously.
64d36c0e3942 podman shenanigans
ellis <ellis@rwest.io>
parents:
diff changeset
202
 If given a prefix (C-u), set all args to t"
64d36c0e3942 podman shenanigans
ellis <ellis@rwest.io>
parents:
diff changeset
203
   (interactive)
64d36c0e3942 podman shenanigans
ellis <ellis@rwest.io>
parents:
diff changeset
204
   (if current-prefix-arg
64d36c0e3942 podman shenanigans
ellis <ellis@rwest.io>
parents:
diff changeset
205
       (setq static t
64d36c0e3942 podman shenanigans
ellis <ellis@rwest.io>
parents:
diff changeset
206
 	    force t
64d36c0e3942 podman shenanigans
ellis <ellis@rwest.io>
parents:
diff changeset
207
             async t))
64d36c0e3942 podman shenanigans
ellis <ellis@rwest.io>
parents:
diff changeset
208
   (let ((default-directory project-dir))
64d36c0e3942 podman shenanigans
ellis <ellis@rwest.io>
parents:
diff changeset
209
     (message (format "publishing from %s" default-directory))    
64d36c0e3942 podman shenanigans
ellis <ellis@rwest.io>
parents:
diff changeset
210
     (org-publish "compiler.company" force async)))
614
f03dbf6338ed tryin to fix broken publish pipeline
Richard Westhaver <ellis@rwest.io>
parents: 613
diff changeset
211
 
604
74a55d5decce emacs org libraries and upgrades
Richard Westhaver <ellis@rwest.io>
parents: 588
diff changeset
212
 (provide 'publish)
74a55d5decce emacs org libraries and upgrades
Richard Westhaver <ellis@rwest.io>
parents: 588
diff changeset
213
 ;;; publish.el ends here