summaryrefslogtreecommitdiff
path: root/www/build-site.el
blob: d9c0f62bc346a821f9fbb2470e181df3263e2eb1 (about) (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
;; -*- lexical-binding: t; -*-

( defun publication-object ( )
  ( let ( ( object-projects ( list ) )
          ( org-publish-project-alist ( list ) )
          ( success-report "Build complete!" ) )
    ( list

      :object-compose
      ( lambda ( )
        ( setq org-publish-project-alist ( list object-projects ) )
        ( ) )

      :object-get-projects
      ( lambda ( data-projects )
        ( setq object-projects ( append data-projects object-projects ) )
        ( ) )

      :object-report
      ( lambda ( )
        ( print object-projects )
        ( print org-publish-project-alist )
        ( print success-report )
        ( ) ) ) ) )

( defun object-compose ( publication-instance )
  ( plist-get publication-instance :object-compose ) )

( defun object-get-projects ( publication-instance )
  ( plist-get publication-instance :object-get-projects ) )

( defun object-report ( publication-instance )
  ( plist-get publication-instance :object-report ) )

( defun publish ( publication-instance &rest project-data )
  ( let ( ( data-projects ( plist-get project-data :data-projects ) ) )
    ( funcall ( object-get-projects publication-instance ) data-projects )
    ( funcall ( object-compose publication-instance ) )
    ( funcall ( object-report publication-instance ) )
    ( ) ) )