Skip to content


Subversion checkout URL

You can clone with
Download ZIP
Fetching contributors…
Cannot retrieve contributors at this time
318 lines (238 sloc) 11.5 KB


Unlike other popular static blog compiler Acrylamid uses a CLI interface that uses positional arguments for each task. Long options are used for special flags like force or dry run. The basic call is acrylamid <subcommand> [options] [args].

-q, --quiet less verbose
-v, --verbose more verbose
-C, --no-color disable color
-h, --help show this help message and exit
--version print version details


This initializes the base structure of an Acrylamid blog, thus it should be the first command you'll execute. In addition to initialization it also can restore changed/deleted files if you specify the complete path as argument.

-f, --force don't ask, just overwrite
--xhtml use XHTML theme
--html5 use HTML5 theme (default)
--mako use the Mako template engine
--jinja2 use the Jinja2 template engine (default)

If you give . (dot) as argument the current working dir is used. Let's say you have edited output/style.css and want restore the original version.


With acrylamid new you specify a title in [args] or you'll get prompted to enter a title and Acrylamid automatically create the post using the current datetime and places the file into CONTENT_DIR (defaults to content/) using PERMALINK_FORMAT as path expansion. Afterwards it'll launch your favourite $EDITOR.


Compiles all your content using global, view and entry filters with some magic and generates all files into OUTPUT_DIR (defaults to output/). Note that this command will not remove orphaned files. Depending on your changes and content size it may take some time.

-f, --force clear cache before compilation
-n, --dry-run show what would have been compiled
-i, --ignore ignore critical errors (e.g. missing module used in a filter)


After you compiled your blog you could cd output/ && python -m SimpleHTTPServer to view the output, but this is rather exhausting. Its much simpler to run acrylamid view and it automatically serves on port 8000. Hit Ctrl-C to exit.

-p PORT, --port=PORT
 webserver port
$ acrylamid view -p 1234
 * Running on


If you need visual feedback while you write an entry, Acrylamid can automatically compile and serve when you save your document. Hit Ctrl-C to quit.

-f, --force clear cache before compilation
-i, --ignore ignore critical errors (e.g. missing module used in a filter)
-p PORT, --port=PORT
 webserver port


With the time Acrylamid compiles some files you later renamed or just removed. These files are not touched until you force it with acrylamid clean. This actually run a acrylamid compile -q and tracks all visited files thus afterwards it can show and delete untracked files in OUTPUT_DIR.

If you have static files in OUTPUT_DIR you should add them to OUTPUT_IGNORE which defaults to ['style.css', 'img/*', 'images/*'] -- otherwise Acrylamid removes them.

-f, --force remove all files generated by Acrylamid
-n, --dry-run show what would have been deleted

The syntax for patterns in OUTPUT_IGNORE is similar to git-ignore: a path with a leading slash means absolute position (to /path/to/output/), path with trailing slash marks a directory and everything else is just relative fnmatch.

  • ".hidden" matches every file named .hidden, "/.hidden" matches a file in the base directory named the same.
  • ".git/*" excludes HEAD, config and description but not the directories hooks/ and info/.
  • ".git/" ignores a .git folder anywhere in the output directory, "/.git/" only output/.git.

If you are unsure, wether your pattern works, use -n/--dry-run!


Acrylamid features a basic RSS and Atom feed importer as well as a WordPress dump importer to make it more easy to move to Acrylamid. To import a feed, point to an URL or local FILE. By default, all HTML is reconversed to Markdown using, first html2text if found then pandoc if found, otherwise plain HTML. reStructuredText is also supported via html2rest and optionally by pandoc.

Migrating from WordPress is more difficult than an RSS/Atom feed because WP does not store a valid HTML content but a pre-HTML state. Thus we fix this with some stupid <br />-Tags to convert it back to Markdown/reStructuredText. It is not recommended to import WordPress blogs as pure HTML because it does not validate!


If you get a critical Entry already exists u'content/2012/update.txt', you may change your PERMALINK_FORMAT to a more fine-grained "/:year/:month/:day/:slug/index.html" import strategy. If you don't which a re-layout of your entries, you can use --keep-links to use the permalink as path.

-f, --force override existing entries, use with care!
-m FMT reconversion of HTML to FMT, supports every language that pandoc supports (if you have pandoc installed). Use "HTML" if you don't whish any reconversion.
-k, --keep-links
 keep original permanent-links and also create content structure in that way. This does not work, if you links are like this: /?p=23.
-p, --pandoc use pandoc first, then html2rest or html2text


With acrylamid deploy TASK you can run single commands, e.g. push just generated content to your server. Write new tasks into the DEPLOYMENT dict inside your like this. You can invoke ls, echo and deploy as TASK.

    "ls": "ls $OUTPUT_DIR",
    "echo": "echo '$OUTPUT_DIR'",
    "upload": "rsync -av --delete $OUTPUT_DIR www@server:~/"

The first task will print out a file listing from your output directory. The command is pure shell, you could also use $HOME as variable. The most configuration parameters are added to the execution environment. The second task marks the substitution string as non-substituable and you'll get the variable itself. The last task is a simple command to deploy your blog directly to your server.

It's also possible to pass additional commands to tasks. Every argument and flag/option after the task identifier is passed to:


Prints a short summary about your blog and lists recent entries (drafted entries are grey).

-2 a git-like digit to show the last N articles. Defaults to 5.


Send Pingbacks to other blogs (still experimental) with one command. Without any arguments the newest article is submitted to any referenced url that supports Pingback.

-a, --all ping all entries (default: only the newest)
-2 a git-like digit to ping the newest N articles. Defaults to 1.
-n, --dry-run show what would have been pingbacked
-j JOBS, --jobs JOBS
 N parallel requests
Jump to Line
Something went wrong with that request. Please try again.