← Blog of oldlisper

ARBLOG

· 19.12.2012 00:00
· original author: archimag

ARBLOG

Проект arblog из моего персонального блога превратился в независимый движок, всё моё было оттуда вычищено и выделено в основанный на нём archimag.lisper.ru. Теперь любой желающий может использовать arblog для создания своего собственного блога.

Проект подразумевает модульную структуру, с возможностью поддержки разных хранилищ данных, разных языков разметки, разных тем оформления и, вероятно, различных систем комментариев (правда для комментариев я ещё не пришёл к конкретному решению). Но богатства модулей пока не наблюдается, а есть хранилище на MongoDB, разметка на базе reStructuredText и одна единственная тема оформления.

Простейший сайт на базе arblog можно создать следующим образом:

;;;; myblog.asd

(defsystem #:myblog
  :defsystem-depends-on (#:arblog-systems)
  :depends-on (#:arblog #:arblog-datastore-mongodb #:arblog-markup-rst #:arblog-theme-mirev)
  :components ((:file "myblog"))
)

;;;; myblog.lisp

(restas:define-module #:myblog
  (:use #:cl)
)


(in-package #:myblog)

(restas:mount-submodule -arblog- (#:arblog)
  (arblog:*blog-name* "My blog")
  (arblog:*posts-on-page* 10)

  (arblog:*datastore* (make-instance 'arblog.datastore.mongodb:arblog-mongo-datastore))
  (arblog:*markup* (make-instance 'arblog.markup.rst:arblog-rst-markup))
  (arblog:*theme* (make-instance 'arblog.theme.mirev:arblog-mirev-theme))

  (arblog:*disqus-enabled* nil)
)

Здесь комментарии отключены. Если есть аккаунт DISQUS, то можно включить комментарии задав в restas:mount-submodule следующие переменные:

(arblog:*disqus-shortname* "disqus short name")
(arblog:*disqus-developer-mode* nil)
(arblog:*disqus-enabled* t)

В ближайшем будущем будет несколько постов о внутреннем устройстве arblog.

Чуть не забыл, проект требует самых последний версий restas и cl-closure-template.