(prior version had error in unwrapping lists) Lisp gurus, here is my feeble attempt at DRYing out my org-publish-project-alist. I'm setting up an octopress publishing system for several blogs, so my list might grow and I'd like to avoid duplication * Please advise on how I may make this cleaner and clearer. Original is at bottom. * And is there a better way than using the publishing settings for things like with-toc? * Does recursive still work for 8.2? * Would this be better done with some sort of macros? Thanks so much in advance! (setq my-common-octopress-settings '(:base-extension "org" :with-toc nil :with-sub-superscript nil :recursive t :publishing-function org-jekyll-publish-to-html :headline-levels 4 :body-only t)) (setq my-static-directories '("about" "meta" "tips")) (setq my-base-directory "~/a/railsonmaui-octopress/source") (defun my-create-octopress-static (prj base-directory) (let* ( (base-dir (concat base-directory "/" prj)) (prj-list (append (list :base-directory base-dir :publishing-directory base-dir) my-common-octopress-settings)) ) (cons prj prj-list))) (setq my-var (mapcar '(lambda (prj) (my-create-octopress-static prj my-base-directory)) my-static-directories)) (setq org-publish-project-alist (append (list ;; blog articles (cons "blog-org" (append '(:base-directory "~/a/railsonmaui-octopress/source/org_posts/" :base-extension "org" :publishing-directory "~/a/railsonmaui-octopress/source/_posts/") my-common-octopress-settings)) (cons "blog-extra" '(:base-directory "~/a/railsonmaui-octopress/source/org_posts/" :publishing-directory "~/a/railsonmaui-octopress/source/" :base-extension "css\\|pdf\\|png\\|jpg\\|gif\\|svg" :publishing-function org-publish-attachment :recursive t :author nil )) ;; all together (cons "blog" '(:components ("blog-org" "blog-extra about meta tips"))) ) (mapcar '(lambda (prj) (my-create-octopress-static prj my-base-directory)) my-static-directories) )) ORIGINAL (setq org-publish-project-alist '( ("blog-org" . (:base-directory "~/a/octopress/source/org_posts/" :base-extension "org" :publishing-directory "~/a/octopress/source/_posts/" :table-of-contents nil :sub-superscript nil :recursive t :publishing-function org-publish-org-to-octopress :headline-levels 4 :html-extension "markdown" :octopress-extension "markdown" :body-only t)) ("blog-extra" . (:base-directory "~/a/octopress/source/org_posts/" :publishing-directory "~/a/octopress/source/" :base-extension "css\\|pdf\\|png\\|jpg\\|gif\\|svg" :publishing-function org-publish-attachment :recursive t :author nil )) ("about" . (:base-directory "~/a/octopress/source/about/" :base-extension "org" :publishing-directory "~/a/octopress/source/about/" :sub-superscript nil :table-of-contents nil :recursive t :publishing-function org-publish-org-to-octopress :headline-levels 4 :html-extension "markdown" :octopress-extension "markdown" :body-only t)) ("meta" . (:base-directory "~/a/octopress/source/meta/" :base-extension "org" :publishing-directory "~/a/octopress/source/meta/" :sub-superscript nil :table-of-contents nil :recursive t :publishing-function org-publish-org-to-octopress :headline-levels 4 :html-extension "markdown" :octopress-extension "markdown" :body-only t)) ("tips" . (:base-directory "~/a/octopress/source/tips/" :base-extension "org" :publishing-directory "~/a/octopress/source/tips/" :sub-superscript nil :table-of-contents nil :recursive t :publishing-function org-publish-org-to-octopress :headline-levels 4 :html-extension "markdown" :octopress-extension "markdown" :body-only t)) ("blog" . (:components ("blog-org" "blog-extra about"))) )) -- Justin Gordon | 808-877-6461 | m: 808-281-7272 www.railsonmaui.com | twitter: @railsonmaui | sugarranchmaui.com | Sugar Ranch Blog