diff --git a/project.el b/project.el index cb552a1..e90f8fe 100644 --- a/project.el +++ b/project.el @@ -119,13 +119,30 @@ (menu '("↑ Top ↑")) "")) +(defun y/org-get-keywords () + (org-element-map (org-element-parse-buffer 'element) 'keyword + (lambda (keyword) (cons (org-element-property :key keyword) + (org-element-property :value keyword))))) + +(defun y/org-get-meta (keyword) + (cdr (assoc keyword (y/org-get-keywords)))) + +(defun y/get-meta (file meta-name) + "Return the value of the meta of an org-mode file. + +(y/get-meta file \"DESCRIPTION\") +" + (org-babel-with-temp-filebuffer file (y/org-get-meta meta-name))) + (defun date-format-entry (entry _style project) "Return string for each ENTRY in PROJECT." (when (string-match "posts/.*" entry) (let* ((file (org-publish--expand-file-name entry project)) (title (org-publish-find-title entry project)) - (date (format-time-string "%Y-%m-%d" (org-publish-find-date entry project)))) - (format "- [%s] [[file:%s][%s]]\n" date file title)))) + (date (format-time-string "%Y-%m-%d" (org-publish-find-date entry project))) + (keywords (y/get-meta file "KEYWORDS")) + (description (y/get-meta file "DESCRIPTION"))) + (format "- [%s] [[file:%s][%s]] /(%s)/ \n %s" date file title keywords description)))) (defun org-blog-sitemap-fn-descr (descr title list) "Return sitemap using TITLE and LIST returned by `org-blog-sitemap-format-entry'." @@ -207,6 +224,9 @@ Return output file name." (cond ((not (directory-name-p entry)) (let* ((file (org-publish--expand-file-name entry project)) (title (org-publish-find-title entry project)) + (subtitle (y/get-meta (format "%s/%s" posts-dir entry) "SUBTITLE")) + (keywords (y/get-meta (format "%s/%s" posts-dir entry) "KEYWORDS")) + (description (y/get-meta (format "%s/%s" posts-dir entry) "DESCRIPTION")) (date (format-time-string "%Y-%m-%d" (org-publish-find-date entry project))) (link (concat "posts/" (file-name-sans-extension entry) ".html"))) (with-temp-buffer @@ -214,6 +234,14 @@ Return output file name." (org-set-property "RSS_PERMALINK" link) (org-set-property "PUBDATE" date) (org-set-property "ID" (org-auto-id-format title)) + (when subtitle + (org-set-property "SUBTITLE" subtitle)) + (when keywords + (insert "Keywords: ") + (insert keywords) + (insert "\n\n")) + (when description + (insert description)) (buffer-string)))) ((eq style 'tree) (file-name-nondirectory (directory-file-name entry))))) diff --git a/project.el.sig b/project.el.sig index 23c4a03..8bad8dc 100644 Binary files a/project.el.sig and b/project.el.sig differ diff --git a/src/archive.org b/src/archive.org index ae37819..6aa7fad 100644 --- a/src/archive.org +++ b/src/archive.org @@ -2,8 +2,9 @@ #+AUTHOR: Yann Esposito #+EMAIL: yann@esposito.host #+DESCRIPTION: Articles -- [2019-08-18] [[file:/Users/yaesposi/y/her.esy.fun/src/posts/project-el/index.org][Autoload Script by project]] - -- [2019-08-17] [[file:/Users/yaesposi/y/her.esy.fun/src/posts/troll-2/index.org][Troll 2]] - -- [2019-08-17] [[file:/Users/yaesposi/y/her.esy.fun/src/posts/new-blog.org][New Blog]] +- [2019-08-18] [[file:/Users/yaesposi/y/her.esy.fun/src/posts/project-el/index.org][Autoload Script by project]] /(programming, blog, org-mode)/ + A script I use to load safely an eLISP file when entering a new project directory. +- [2019-08-17] [[file:/Users/yaesposi/y/her.esy.fun/src/posts/troll-2/index.org][Troll 2]] /(movie)/ + I watched what may be the worse movie of all time and I still enjoyed greatly the show. +- [2019-08-17] [[file:/Users/yaesposi/y/her.esy.fun/src/posts/new-blog.org][New Blog]] /(programming, blog, org-mode, web, css)/ + Meta article about how I generate this blog. \ No newline at end of file diff --git a/src/posts/project-el/index.org b/src/posts/project-el/index.org index 66824c2..8549ba2 100644 --- a/src/posts/project-el/index.org +++ b/src/posts/project-el/index.org @@ -4,6 +4,7 @@ #+EMAIL: yann@esposito.host #+DATE: [2019-08-18 Sun] #+KEYWORDS: programming, blog, org-mode +#+DESCRIPTION: A script I use to load safely an eLISP file when entering a new project directory. #+OPTIONS: auto-id:t #+begin_quote diff --git a/src/posts/troll-2/index.org b/src/posts/troll-2/index.org index c70f8dc..1c9a09e 100644 --- a/src/posts/troll-2/index.org +++ b/src/posts/troll-2/index.org @@ -4,7 +4,7 @@ #+Email: yann@esposito.host #+Date: [2019-08-17 Sat] #+KEYWORDS: movie -#+DESCRIPTION: +#+DESCRIPTION: I watched what may be the worse movie of all time and I still enjoyed greatly the show. #+LANGUAGE: en #+LANG: en #+OPTIONS: H:5 auto-id:t