diff --git a/.gitignore b/.gitignore
index 021dbdc..57cb5b1 100644
--- a/.gitignore
+++ b/.gitignore
@@ -5,3 +5,4 @@ ignore/
generated/
.curr
.prev
+build/
diff --git a/.travis.yml b/.travis.yml
new file mode 100644
index 0000000..b2e69df
--- /dev/null
+++ b/.travis.yml
@@ -0,0 +1,22 @@
+language: common-lisp
+sudo: false
+
+env:
+ global:
+ - PATH=~/.roswell/bin:$PATH
+ - ROSWELL_INSTALL_DIR=$HOME/.roswell
+ matrix:
+ - LISP=sbcl-bin
+ - LISP=ccl-bin
+
+install:
+ - curl -L https://raw.githubusercontent.com/snmsts/roswell/release/scripts/install-for-ci.sh | sh
+
+cache:
+ directories:
+ - $HOME/.roswell
+ - $HOME/.config/common-lisp
+
+script:
+ - ros -s prove -e "(ql:quickload '(coleslaw coleslaw-test))"
+ -e '(or (prove:run :coleslaw-test) (uiop:quit -1))'
diff --git a/README.md b/README.md
index 45074f1..8c36bc5 100644
--- a/README.md
+++ b/README.md
@@ -1,5 +1,8 @@
# coleslaw
+[](https://travis-ci.org/kingcons/coleslaw)
+[](http://quickdocs.org/coleslaw/)
+
> [Czeslaw Milosz](http://blog.redlinernotes.com/tag/milosz.html) was the writer-in-residence at UNC c. 1992.
@@ -23,7 +26,7 @@ Have questions? Come talk to us on IRC in **#coleslaw** on Freenode!
* Sitemap generation
* Incremental builds
* Analytics via Google
- * Comments via [Disqus](http://disqus.com/)
+ * Comments via [Disqus](http://disqus.com/) or [isso](http://posativ.org/isso)
* Hosting via [Github Pages](https://pages.github.com/) or [Amazon S3](http://aws.amazon.com/s3/)
* Embedding [gfycats](http://gfycat.com/)
* [Tweeting](http://twitter.com/) about new posts
diff --git a/coleslaw.asd b/coleslaw.asd
index 77e69c3..3506303 100644
--- a/coleslaw.asd
+++ b/coleslaw.asd
@@ -26,23 +26,19 @@
(:file "indexes")
(:file "feeds")
(:file "coleslaw"))
- :in-order-to ((test-op (load-op coleslaw-tests)))
- :perform (test-op :after (op c)
- (funcall (intern "RUN!" :coleslaw-tests)
- (intern "COLESLAW-TESTS" :coleslaw-tests))))
+ :in-order-to ((test-op (test-op coleslaw-test))))
-(defsystem #:coleslaw-tests
+(defsystem #:coleslaw-test
:description "A test suite for coleslaw."
:license "BSD"
:author "Brit Butler "
- :depends-on (coleslaw stefil)
- :pathname "tests/"
- :serial t
- :components ())
-
-(defmethod operation-done-p ((op test-op)
- (c (eql (find-system :coleslaw))))
- (values nil))
+ :depends-on (:coleslaw :prove)
+ :defsystem-depends-on (:prove-asdf)
+ :components ((:module "tests"
+ :components
+ ((:test-file "tests"))))
+ :perform (test-op :after (op c)
+ (uiop:symbol-call :prove 'run c)))
(defpackage #:coleslaw-conf (:export #:*basedir*))
(defparameter coleslaw-conf:*basedir*
diff --git a/docs/hacking.md b/docs/hacking.md
index 8c12e5d..cf09b4a 100644
--- a/docs/hacking.md
+++ b/docs/hacking.md
@@ -341,6 +341,57 @@ Unfortunately, this does not solve:
Content Types it includes or the CONTENT which indexes it appears
on is not yet clear.
+### Contributing
+
+The preferred workflow is more or less:
+
+ - fork and clone
+ - make a branch
+ - commit your changes
+ - push your branch to your github fork
+ - open a Pull Request
+
+#### Fork and clone
+
+You may clone the main github repository or your fork, whichever you cloned
+will be known as origin in your git repository. You have to add the other git
+repository to your remotes, so if you cloned from your fork execute:
+
+
+```bash
+git remote add upstream git@github.com:redline6561/coleslaw.git
+```
+
+If you cloned from the main github repository execute:
+
+```bash
+git remote add fork git@github.com:/coleslaw.git
+```
+
+For the rest of the steps we will assume you cloned from your fork and that the main github repository has the remote name of upstream.
+
+#### Make a branch
+
+```bash
+git checkout -b
+```
+
+It is important to work always on branch so one can track changes in upstream by simply executing ```git pull upstream master:master``` from the master branch. If one can't come up with a suitable branch name just name it patch-n.
+2
+#### Commit your changes
+
+Make the changes you want to coleslaw, add the files with that changes (```git add ```) and commit them (```git commit```). Your commit message should strive to sum up what has changes and why.
+
+#### Push your branch to your github fork
+
+```bash
+git push origin branch
+```
+
+#### Open a Pull Request
+
+After pushing the branch to your fork, on github you should see a button to open a pull request. In the PR message give the rationale for your changes.
+
[closure_template]: https://github.com/archimag/cl-closure-template
[api_docs]: https://github.com/redline6561/coleslaw/blob/master/docs/plugin-api.md
[clmd]: https://github.com/gwkkwg/cl-markdown
diff --git a/plugins/isso.lisp b/plugins/isso.lisp
new file mode 100644
index 0000000..7ca5c70
--- /dev/null
+++ b/plugins/isso.lisp
@@ -0,0 +1,20 @@
+(defpackage :coleslaw-isso
+ (:use :cl)
+ (:export #:enable)
+ (:import-from :coleslaw #:add-injection
+ #:post))
+
+(in-package :coleslaw-isso)
+
+(defvar *isso-header*
+ "")
+
+(defun enable (&key isso-url)
+ (flet ((inject-p (x)
+ (when (typep x 'post)
+ (format nil *isso-header* isso-url))))
+ (add-injection #'inject-p :body)))
diff --git a/plugins/s3.lisp b/plugins/s3.lisp
index f46e623..88570dd 100644
--- a/plugins/s3.lisp
+++ b/plugins/s3.lisp
@@ -10,11 +10,6 @@
(in-package :coleslaw-s3)
-(defparameter *credentials* nil
- "The credentials to authenticate with Amazon Web Services.
-Stored in a file with the access key on the first line
-and the secret key on the second.")
-
(defparameter *content-type-map* '(("html" . "text/html")
("css" . "text/css")
("png" . "image/png")
@@ -53,5 +48,7 @@ and the secret key on the second.")
(zs3:delete-objects (stale-keys) *bucket*)))
(defun enable (&key auth-file bucket)
- (setf *credentials* (zs3:file-credentials auth-file)
+ "AUTH-FILE: Path to file with the access key on the first line and the secret
+ key on the second."
+ (setf zs3:*credentials* (zs3:file-credentials auth-file)
*bucket* bucket))
diff --git a/tests/tests.lisp b/tests/tests.lisp
new file mode 100644
index 0000000..79e0106
--- /dev/null
+++ b/tests/tests.lisp
@@ -0,0 +1,11 @@
+(defpackage :coleslaw-tests
+ (:use :cl :prove))
+
+(in-package :coleslaw-tests)
+
+(plan nil)
+
+(deftest 1-is-a-number
+ (is-type 1 'fixnum))
+
+(finalize)