Add support for either an automatic or manual excerpt for index

This commit is contained in:
Alfredo Beaumont 2017-03-22 18:30:49 +01:00 committed by Javier Olaechea
parent f4a66dc523
commit 12f174533f
3 changed files with 10 additions and 3 deletions

View file

@ -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"

View file

@ -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

View file

@ -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)