Commit graph

320 commits

Author SHA1 Message Date
Brit Butler
7ba1e0d16a Support extensionless sites via nil page-ext rather than index-ext.
Index-ext was a bit of a kludge used to support symlinking the index.html rather
than due to any real need for indexes to have different extensions than other
documents. Instead of an empty string to indicate no extension, we will use nil.
We hardcode "index.html" and use the first numeric-index's page-url to not make
assumptions about the user's routing scheme.
2023-06-30 16:28:24 -04:00
Cthulhux
e7e68ce602
Merge pull request #187 from equwal/url-gen-control
Control of URL generation -- extensions and name-fn
2022-08-08 16:51:12 +02:00
Cthulhux
878edba3df
Merge pull request #190 from equwal/more-versioning
Git versioned plugin
2021-05-26 16:03:47 +02:00
Cthulhux
bea699ebeb
Merge pull request #78 from cmstrickland/document-find-class
find-all matching adjusted
2021-05-26 16:01:47 +02:00
egao1980
c2a107cb3e Use robocopy on Windows
Rsync treats C:/ type path as remote and cowardly refuses to copy directories. Robocopy knows no fear.
2020-04-14 18:34:47 +01:00
Spenser Truex
49288bc135 Add git-versioned plugin alternative versioning
More powerful and modern than using symlink versioning. Automatically stages,
commits, and/or uploads the source dir.
2020-03-25 18:02:29 -07:00
Spenser Truex
efc0bfb738 Support name-fn for modifying URL strings.
Once the title has been converted to a URL (by `slugify`), name-fn changes it.
It is available in the .coleslawrc as `:namefn 'fn`, with the default
`:name-fn 'identity`
2020-03-24 15:56:48 -07:00
Spenser Truex
656401df71 Optional extension file extensions for posts and index
I wanted posts to have no extension (via :page-ext), so I had to allow for
:page-ext "" to work, and without inserting a dot at the end of my files. To
allow for index.html when :page-ext is not "html", :index-ext "html" in the
.coleslawrc is supported.
2020-03-24 15:44:53 -07:00
Masataro Asai
5fd748be8b *load-truename* does not work, it may point to the cached fasl file. 2019-10-27 15:36:20 -04:00
Javier Olaechea
35c09f45bd Simplify the setting of COLESLAW-CONF:*BASEDIR*
No need to use a before method specializing in the LOAD-OP. Use uiop's
pathname-parent-directory-pathname instead
2019-10-27 15:17:59 -04:00
Masataro Asai
dd53a77595 move all options to the default-initargs, for maximum customizability 2019-10-27 14:58:20 -04:00
Masataro Asai
eacc598930 as requested (Im not sure) 2019-10-27 14:55:20 -04:00
Masataro Asai
774a29a372 Removed the default deploy method and added RSYNC plugin 2019-10-27 14:54:54 -04:00
Masataro Asai
38a6c2d475 [minor api change] coleslaw:main takes keywords, can now skip the deploy 2019-10-27 14:07:42 -04:00
Masataro Asai
d9fa597d79 fix: DEPLOY method does not respect *default-pathname-defaults* 2019-10-26 19:45:52 -04:00
Javier Olaechea
a447df807b Closes #145
Before calling RENDER-TEXT, we have to ensure that the FORMAT slot is a
keyword. This bug was introduced in
a6164f0bc0

Thanks to Masataro Asai (Guicho) for reporting the bug.
2017-11-12 20:36:08 -05:00
Javier Olaechea
a6164f0bc0 Avoid RENDERing the text of a Post twice
Besides avoiding duplicate work the order in which we assign the values to the
slots no longer matters as excerpt doesn't read the contents from the TEXT slot
anymore.

cf. e1ab552e8f
2017-10-29 01:12:42 -05:00
Alfredo Beaumont
12f174533f Add support for either an automatic or manual excerpt for index 2017-10-29 01:12:42 -05:00
Johan Sjolen
d397b32328 Report when a required field is missing in the static-pages plugin
Add ASSERT-FIELD to the API as the entry point for plugins to report to the
user when a content field is missing.
2017-07-16 13:34:16 -05:00
Alfredo Beaumont
ca4ba22ef9 Get the month from content-date, if exists, instead of whole date. 2017-03-24 00:10:33 +01:00
Javier Olaechea
b90c0cc6fe PARSE-METADATA now handles CR-LF line endings
Closes #127
Thanks @chuntaro!
2016-11-15 10:01:41 -05:00
Javier Olaechea
c2ff1badf8 ALL-MONTHS: Don't assume that content has a date 2016-10-26 03:52:38 -05:00
Javier Olaechea
9311c2244f Move coleslaw-conf to its own ASDF system
Ideally the package coleslaw would only have symbols that refer to
configuration variables. However to ease setting *BASEDIR* to the right
value using UIOP:SYMBOL-CALL we provide a setter, SET-BASEDIR.

- Split each ASDF system into its own file

- All system definitions are made in the ASDF-USER package, as
recommended by ASDF.

Fixes #110
2016-09-20 23:15:57 -05:00
Lukasz Janyst
414c8dd742 Export *config* accessors useful in user plug-ins 2015-12-03 12:13:17 +01:00
Lukasz Janyst
075477b9ce Allow for plug-ins to be defined in the user repo 2015-12-03 12:12:59 +01:00
Brit Butler
44eb77da2c Merge pull request #98 from ljanyst/user-themes
Allow for themes defines in the user repo
2015-11-21 10:07:52 -05:00
Matthias Wimmer
4d24884863 Supporting other file extensions for the index page as well.
Coleslaw is able to write the blog content to xhtml file as well, using the
configuration setting :page-ext. But it did ignore the file extension when
creating the index page link responsible for the default landing page. With this
fix the file extension gets honored. E.g. when "xhtml" is configured, coleslaw
will generate a link from "index.xhtml" to "1.xhtml".
2015-11-20 23:56:39 +01:00
Lukasz Janyst
bd17b6c039 Allow for themes defines in the user repo 2015-11-15 20:23:53 +01:00
Brit Butler
5727578b26 Minor indentation tweak. 2015-05-26 23:38:49 -04:00
Colin M. Strickland
4b0819c288 refactored class name matching code
added class-name-p function to util
refactored incremental plugin process-change and documents purge-all
to use class-name-p when matching against exact class names
2015-01-04 15:25:39 +00:00
Colin M. Strickland
7d26e2bb5a Renamed find-all matching parameter to matches-p
In response to feedback on PR-78
  https://github.com/redline6561/coleslaw/pull/78
2015-01-04 14:13:21 +00:00
Colin M. Strickland
7facd55afb find-all matching adjusted
find-all implementation returns false positives for subclasses
added parameter of a predicate to implement matching, with a default
value that preserves original behaviour

added an exact class matcher to purge-all invocation of find-all to stop
it purging subclasses
2015-01-02 10:47:32 +00:00
Javier Olaechea
144cb03294 Style fixes and missing closing paren 2014-12-10 12:16:31 -05:00
lukasepple
1e1c64b245 using zerop instead of (= 0 2014-12-10 15:07:09 +01:00
lukasepple
d7ffd1b7d7 error handling in slugify 2014-12-09 20:55:57 +01:00
lukasepple
d5e5aed0d9 using char instead of aref
for getting a char by index
2014-12-07 13:03:27 +01:00
Brit Butler
3671178a35 Minor indentation fixes. 2014-12-06 22:00:07 -05:00
lukasepple
5aa89f4497 cleanup of the code belonging to slugify 2014-12-06 22:55:50 +01:00
lukasepple
fbacd3b81f made slugs unicode-safe like
used mozilla's slugify implementation as reference:
https://github.com/mozilla/unicode-slugify/blob/master/slugify/__init__.py
2014-12-06 19:51:06 +01:00
Olof-Joachim Frahm
68ee3c942d Catch errors while trying to compile plugins.
A warning with the full error message will be printed and the original
file `LOAD`ed instead.  If the error isn't related to the `fasl` file
output, then the `LOAD` should also throw an error, at which point the
normal error handling would take place.
2014-12-02 21:29:29 +01:00
Javier Olaechea
1ff10b9b63 conent.lisp (parse-medatada): add filename to the error message 2014-11-11 22:59:17 -05:00
Brit Butler
762ad5e44d Handle trailing slashes more gracefully. Kick off 0.9.7-dev. 2014-11-02 23:04:45 -05:00
Brit Butler
a6a5b0b86b Force staging-dir to be a directory-pathname in compile-blog. 2014-11-02 21:00:40 -05:00
Brit Butler
913023e377 Fix directory-does-not-exist initarg buglet. 2014-11-02 20:45:25 -05:00
Colin M. Strickland
bcd9051b14 use :utf8 symbol directly in external-format
sbcl can use :utf8 as a direct symbol also
2014-10-25 22:16:53 +01:00
Brit Butler
1b3acd107e Fix feed handling bug backwards compatibly. No name changes. 2014-09-23 17:39:40 -04:00
Brit Butler
1289706b46 Quick bugfix to add-injection. 2014-09-23 17:33:55 -04:00
Brit Butler
f27172a1f7 Last minute backwards compatibility fix for people on very old SBCLs. 2014-09-23 17:28:11 -04:00
Javier Olaechea
47a17508e8 Add twitter meta-data to posts
This depends on a pending change to add-injection
2014-09-23 11:52:33 -04:00
Brit Butler
e44d0bde9e Make add-injection support more complex injections. Thanks @PuercoPop.
In short, an injection is now a FUNCTION that takes a
document and returns either a STRING to insert in the
page (possibly with data from the document) or NIL.
2014-09-22 14:31:08 -04:00