-
To enable a plugin, add its name and settings to your .coleslawrc. Plugin settings are described below. Note that some plugins require additional setup.
-
Available plugins are listed below with usage descriptions and config examples.
Description: This directly sends the contents of the staging dir to the deployed directory. The former default deployment method.
Example: (rsync "--exclude" ".git/" "--exclude" ".gitignore" "--copy-links")
Description: Provides traffic analysis through Google Analytics.
Example: (gtag :tracking-code "google-provided-unique-id")
Note: You can use (analytics :tracking-code "google-provided-unique-id")
for the legacy integration with Google Analytics.
Description: Provides traffic analysis through Piwik.
Example: (piwik :piwik-url "piwik.example.com" :piwik-site "example-site")
Description: Allows the user to write posts cl-who markup. Just create a
post with format: cl-who
and the plugin will do the rest.
Example: (cl-who)
Description: Provides comment support through Disqus.
Example: (disqus :shortname "disqus-provided-unique-id")
Description: Provides comment support through isso.
Example: (isso :isso-url "your-isso-url")
Description: Provides support for embedding gfycat gifs.
Any content tagged 'gfycat' containing an IMG element of the form
<img class="gfyitem" data-id="your-gfy-slug" />
will embed the
corresponding gfy.
Example: (gfycat)
Description:
Coleslaw deploys the blog to the specified branch of the given url.
url
-- a string, git repository url that you already have a push access.branch
-- a string, the branch to publish, either"gh-pages"
or"master"
can be used.remote
-- a string, the remote name that we use in the deploy directory. defaulted to"origin"
.cname
-- a string denoting the custom domain name, ort
. Ifcname
ist
, the value is inferred from the domain name specified in the.coleslawrc
. The value is written intoCNAME
file in the repository root. For details, see github-pages.
Example:
(gh-pages :url "[email protected]:myaccount/myrepo.git"
:branch "gh-pages"
:remote "origin"
:cname t)
Description: Primarily a performance enhancement. Caches the content database between builds with [cl-store][http://common-lisp.net/project/cl-store/] to avoid parsing the whole git repo every time. May become default functionality instead of a plugin at some point. Substantially reduces runtime for medium to large sites.
Example: (incremental)
Setup: You must run the examples/dump_db.sh
script to
generate a database dump for your site before enabling the
incremental plugin.
Description: Provides LaTeX support through
Mathjax for posts tagged with "math" and
indexes containing such posts. Any text enclosed in $$ will be
rendered, for example, $$ \lambda \scriptstyle{f}. (\lambda x. (\scriptstyle{f} (x x)) \lambda x. (\scriptstyle{f} (x x))) $$
.
Example: (mathjax)
Options:
-
:force
, when non-nil, will force the inclusion of MathJax on all posts. Default value isnil
. -
:location
specifies the location of theMathJax.js
file. The default value is"https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js"
. This is useful if you have a local copy of MathJax and want to use that version. -
:preset
allows the specification of the config parameter ofMathJax.js
. The default value is"TeX-AMS-MML_HTMLorMML"
. -
:config
is used as supplementary inline configuration to theMathJax.Hub.Config ({ ... });
. It is unused by default.
Description: Markless is a
new document markup standard. To use it in your posts, create the
posts with format: markless
. The output is generated using
cl-markless-plump,
meaning any syntax extensions that work with it should also be
available in Coleslaw.
Example: (mess)
Description: Some people really like
ReStructuredText. Who
knows why? But it only took one method to add, so yeah! Just create
a post with format: rst
and the plugin will do the rest.
Example: (rst)
Description: Allows hosting your blog entirely via
Amazon S3. It is suggested you closely
follow the relevant
AWS guide
to get the DNS setup correctly. Your :auth-file
should match that
described in the
ZS3 docs.
Example: (s3 :auth-file "/home/redline/.aws_creds" :bucket "blog.redlinernotes.com")
Description: This plugin generates a sitemap.xml under the page root, which is useful if you want google to crawl your site.
Example: (sitemap)
Description: This plugin allows you to add .page
files to your
repo, that will be rendered to static pages at a designated URL.
Example: (static-pages)
Description: This plugin tweets every time a new post is added to your repo. See Setup for an example of how to get your access token & secret.
Example: (twitter :api-key "<api-key>" :api-secret "<api-secret>" :access-token "<access-token>" :access-secret "<access-secret>")
Setup:
-
Create a new twitter app. Take note of the api key & secret.
-
In the repl do the following:
;; Load Chirp
(ql:quickload :chirp)
;; Use the api key & secret to get a URL where a pin code will be handled to you.
(chirp:initiate-authentication
:api-key "D1pMCK17gI10bQ6orBPS0w"
:api-secret "BfkvKNRRMoBPkEtDYAAOPW4s2G9U8Z7u3KAf0dBUA")
;; => "https://api.twitter.com/oauth/authorize?oauth_token=cJIw9MJM5HEtQqZKahkj1cPn3m3kMb0BYEp6qhaRxfk"
;; Exchange the pin code for an access token and and access secret. Take note
;; of them.
CL-USER> (chirp:complete-authentication "4173325")
;; => "18403733-bXtuum6qbab1O23ltUcwIk2w9NS3RusUFiuum4D3w"
;; "zDFsFSaLerRz9PEXqhfB0h0FNfUIDgbEe59NIHpRWQbWk"
;; Finally verify the credentials
(chirp:account/verify-credentials)
#<CHIRP-OBJECTS:USER PuercoPop #18405433>
Description: Add Summary Card metadata to blog posts to enhance twitter links to that content.
Example: `(twitter-summary-card :twitter-handle "@redline6561")
Either automatic git interaction or double versioning
Description: Automatically stages, commits, and/or pushes the server's sources. Assumes that a git repository exists in the server's directory. Pushing is optional.
Examples:
(git-versioned "~/src/dir/" 'stage 'commit 'push)
(git-versioned "~/src/dir/" 'stage 'commit)
Description: Originally, this was Coleslaw's only deploy behavior.
Instead of deploying directly to :deploy-dir
, creates .curr
and
.prev
symlinks in the deploy-dir, which point to timestamped
directories of the last two deploys of the site. Deploys prior to the
last two are automatically cleaned up.
Example: (versioned)
NOTE: This plugin really should be rewritten to act as a standalone script. It is designed for one time use and using it through a site config is pretty silly.
Description: Import blog posts from Wordpress using their export
tool. Blog entries will be read from the XML and converted into
.post files. Afterwards the XML file will be deleted to prevent
reimporting. Optionally an :output
argument may be supplied to the
plugin. If provided, it should be a directory in which to store the
.post files. Otherwise, the value of :repo
in your .coleslawrc
will be used.
Example: (import :filepath "/home/redline/redlinernotes-export.timestamp.xml" :output "/home/redlinernotes/blog/")
Description: Embed youtube videos in markdown using the shorthand syntax
!yt[<video-id>(|options*)*]
. Options can be width, height or any of the
player parameters.
For example !yt[oeul8fTG9dM|width=480,allowfullscreen]
.
Example: (3bmd-youtube)
Description: Provides code highlighting with Pygments instead of colorize. Pygments supports over 300 languages and text formats. Look at 3bmd for more info.
Example: (pygments)
Setup: Install Pygments
and verify that the pygmentize
command works (pygmentize -V
should print the version number). You also need to verify that your theme includes an appropriate css file.