enhanced archive and rss
This commit is contained in:
parent
3d5534e6d7
commit
0082064358
32
project.el
32
project.el
|
@ -119,13 +119,30 @@
|
||||||
(menu '("<a href=\"#preamble\">↑ Top ↑</a>"))
|
(menu '("<a href=\"#preamble\">↑ Top ↑</a>"))
|
||||||
"</div>"))
|
"</div>"))
|
||||||
|
|
||||||
|
(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)
|
(defun date-format-entry (entry _style project)
|
||||||
"Return string for each ENTRY in PROJECT."
|
"Return string for each ENTRY in PROJECT."
|
||||||
(when (string-match "posts/.*" entry)
|
(when (string-match "posts/.*" entry)
|
||||||
(let* ((file (org-publish--expand-file-name entry project))
|
(let* ((file (org-publish--expand-file-name entry project))
|
||||||
(title (org-publish-find-title entry project))
|
(title (org-publish-find-title entry project))
|
||||||
(date (format-time-string "%Y-%m-%d" (org-publish-find-date entry project))))
|
(date (format-time-string "%Y-%m-%d" (org-publish-find-date entry project)))
|
||||||
(format "- [%s] [[file:%s][%s]]\n" date file title))))
|
(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)
|
(defun org-blog-sitemap-fn-descr (descr title list)
|
||||||
"Return sitemap using TITLE and LIST returned by `org-blog-sitemap-format-entry'."
|
"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))
|
(cond ((not (directory-name-p entry))
|
||||||
(let* ((file (org-publish--expand-file-name entry project))
|
(let* ((file (org-publish--expand-file-name entry project))
|
||||||
(title (org-publish-find-title 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)))
|
(date (format-time-string "%Y-%m-%d" (org-publish-find-date entry project)))
|
||||||
(link (concat "posts/" (file-name-sans-extension entry) ".html")))
|
(link (concat "posts/" (file-name-sans-extension entry) ".html")))
|
||||||
(with-temp-buffer
|
(with-temp-buffer
|
||||||
|
@ -214,6 +234,14 @@ Return output file name."
|
||||||
(org-set-property "RSS_PERMALINK" link)
|
(org-set-property "RSS_PERMALINK" link)
|
||||||
(org-set-property "PUBDATE" date)
|
(org-set-property "PUBDATE" date)
|
||||||
(org-set-property "ID" (org-auto-id-format title))
|
(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))))
|
(buffer-string))))
|
||||||
((eq style 'tree)
|
((eq style 'tree)
|
||||||
(file-name-nondirectory (directory-file-name entry)))))
|
(file-name-nondirectory (directory-file-name entry)))))
|
||||||
|
|
BIN
project.el.sig
BIN
project.el.sig
Binary file not shown.
|
@ -2,8 +2,9 @@
|
||||||
#+AUTHOR: Yann Esposito
|
#+AUTHOR: Yann Esposito
|
||||||
#+EMAIL: yann@esposito.host
|
#+EMAIL: yann@esposito.host
|
||||||
#+DESCRIPTION: Articles
|
#+DESCRIPTION: Articles
|
||||||
- [2019-08-18] [[file:/Users/yaesposi/y/her.esy.fun/src/posts/project-el/index.org][Autoload Script by project]]
|
- [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]]
|
- [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]]
|
- [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.
|
|
@ -4,6 +4,7 @@
|
||||||
#+EMAIL: yann@esposito.host
|
#+EMAIL: yann@esposito.host
|
||||||
#+DATE: [2019-08-18 Sun]
|
#+DATE: [2019-08-18 Sun]
|
||||||
#+KEYWORDS: programming, blog, org-mode
|
#+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
|
#+OPTIONS: auto-id:t
|
||||||
|
|
||||||
#+begin_quote
|
#+begin_quote
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
#+Email: yann@esposito.host
|
#+Email: yann@esposito.host
|
||||||
#+Date: [2019-08-17 Sat]
|
#+Date: [2019-08-17 Sat]
|
||||||
#+KEYWORDS: movie
|
#+KEYWORDS: movie
|
||||||
#+DESCRIPTION:
|
#+DESCRIPTION: I watched what may be the worse movie of all time and I still enjoyed greatly the show.
|
||||||
#+LANGUAGE: en
|
#+LANGUAGE: en
|
||||||
#+LANG: en
|
#+LANG: en
|
||||||
#+OPTIONS: H:5 auto-id:t
|
#+OPTIONS: H:5 auto-id:t
|
||||||
|
|
Loading…
Reference in a new issue