diff options
author | Marek Paśnikowski <marek@marekpasnikowski.pl> | 2024-01-20 13:21:09 +0100 |
---|---|---|
committer | Marek Paśnikowski <marek@marekpasnikowski.pl> | 2024-01-20 13:21:49 +0100 |
commit | e0cffe169199f745ae269fb294912dc95d0318d9 (patch) | |
tree | 12d32309d79068fd5742f323817b76b4676a4fde /www/build-site.el | |
parent | c2a68bc233da4b42c75cb41f8fdcb652b944d2c1 (diff) |
Abstract away the user logic from the user interface
Diffstat (limited to 'www/build-site.el')
-rw-r--r-- | www/build-site.el | 26 |
1 files changed, 16 insertions, 10 deletions
diff --git a/www/build-site.el b/www/build-site.el index f2e8b7d..92f6339 100644 --- a/www/build-site.el +++ b/www/build-site.el @@ -20,7 +20,6 @@ :object-report ( lambda ( ) - ( print object-projects ) ( print org-publish-project-alist ) ( print success-report ) ( ) ) ) ) ) @@ -28,21 +27,28 @@ ;;; The Object Interface ( defun object-compose ( publication-instance ) - ( plist-get publication-instance :object-compose ) ) + ( funcall ( plist-get publication-instance :object-compose ) ) ) -( defun object-get-projects ( publication-instance ) - ( plist-get publication-instance :object-get-projects ) ) +( defun object-get-projects ( publication-instance data-projects ) + ( funcall + ( plist-get publication-instance :object-get-projects ) data-projects ) ) ( defun object-report ( publication-instance ) - ( plist-get publication-instance :object-report ) ) + ( funcall ( plist-get publication-instance :object-report ) ) ) ;;; The User Logic +( defun export-project-alist ( publication-instance ) + ( object-compose publication-instance ) + ( object-report publication-instance ) ) + +( defun import-data ( publication-instance project-data ) + ( let ( ( data-projects ( plist-get project-data :data-projects ) ) ) + ( object-get-projects publication-instance data-projects ) ) ) + ;;; The User Interface ( 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 ) ) - ( ) ) ) + ( import-data publication-instance project-data ) + ( export-project-alist publication-instance ) + ( ) ) |