Add support for either an automatic or manual excerpt for index
This commit is contained in:
parent
f4a66dc523
commit
12f174533f
3 changed files with 10 additions and 3 deletions
|
@ -5,6 +5,7 @@
|
||||||
(charset :initarg :charset :reader charset)
|
(charset :initarg :charset :reader charset)
|
||||||
(deploy-dir :initarg :deploy-dir :reader deploy-dir)
|
(deploy-dir :initarg :deploy-dir :reader deploy-dir)
|
||||||
(domain :initarg :domain :reader domain)
|
(domain :initarg :domain :reader domain)
|
||||||
|
(excerpt-sep :initarg :excerpt-sep :reader excerpt-sep)
|
||||||
(feeds :initarg :feeds :reader feeds)
|
(feeds :initarg :feeds :reader feeds)
|
||||||
(lang :initarg :lang :reader lang)
|
(lang :initarg :lang :reader lang)
|
||||||
(license :initarg :license :reader license)
|
(license :initarg :license :reader license)
|
||||||
|
@ -22,6 +23,7 @@
|
||||||
:license nil
|
:license nil
|
||||||
:plugins nil
|
:plugins nil
|
||||||
:sitenav nil
|
:sitenav nil
|
||||||
|
:excerpt-sep "<!--more-->"
|
||||||
:charset "UTF-8"
|
:charset "UTF-8"
|
||||||
:lang "en"
|
:lang "en"
|
||||||
:page-ext "html"
|
:page-ext "html"
|
||||||
|
|
|
@ -5,7 +5,7 @@
|
||||||
#:make-keyword
|
#:make-keyword
|
||||||
#:mappend)
|
#:mappend)
|
||||||
(:import-from :cl-fad #:file-exists-p)
|
(:import-from :cl-fad #:file-exists-p)
|
||||||
(:import-from :cl-ppcre #:scan-to-strings)
|
(:import-from :cl-ppcre #:scan-to-strings #:split)
|
||||||
(:import-from :closure-template #:compile-template)
|
(:import-from :closure-template #:compile-template)
|
||||||
(:import-from :local-time #:format-rfc1123-timestring)
|
(:import-from :local-time #:format-rfc1123-timestring)
|
||||||
(:import-from :uiop #:getcwd
|
(:import-from :uiop #:getcwd
|
||||||
|
|
|
@ -3,14 +3,19 @@
|
||||||
(defclass post (content)
|
(defclass post (content)
|
||||||
((title :initarg :title :reader title-of)
|
((title :initarg :title :reader title-of)
|
||||||
(author :initarg :author :reader author-of)
|
(author :initarg :author :reader author-of)
|
||||||
|
(excerpt :initarg :excerpt :reader excerpt-of)
|
||||||
(format :initarg :format :reader post-format))
|
(format :initarg :format :reader post-format))
|
||||||
(:default-initargs :author nil))
|
(:default-initargs :author nil :excerpt nil))
|
||||||
|
|
||||||
(defmethod initialize-instance :after ((object post) &key)
|
(defmethod initialize-instance :after ((object post) &key)
|
||||||
(with-slots (url title author format text) object
|
(with-slots (url title author excerpt format text) object
|
||||||
(setf url (compute-url object (slugify title))
|
(setf url (compute-url object (slugify title))
|
||||||
format (make-keyword (string-upcase format))
|
format (make-keyword (string-upcase format))
|
||||||
text (render-text text format)
|
text (render-text text format)
|
||||||
|
excerpt (or excerpt
|
||||||
|
(first (split (excerpt-sep *config*)
|
||||||
|
(render-text text format)
|
||||||
|
:limit 2)))
|
||||||
author (or author (author *config*)))))
|
author (or author (author *config*)))))
|
||||||
|
|
||||||
(defmethod render ((object post) &key prev next)
|
(defmethod render ((object post) &key prev next)
|
||||||
|
|
Loading…
Add table
Reference in a new issue