Code Monkey home page Code Monkey logo

acrylamid's Introduction

Welcome to Acrylamid's Documentation!

Acrylamid is yet another static blog compiler written in python that aims to be lightweight, fast and producing high quality output. It is licensed under BSD Style, 2 clauses.

Why?

Why another static blog compiler, that's a valid question. So, why is Acrylamid better than X (pelican, hyde, nikola...): Acrylamid is faster than X, because incremental compilation is a core feature. Acrylamid is better, because you can not only use Markdown/reST/whatyoulike, you can even use all builtin extensions and more. Acrylamid has no custom header/body/filesystem layout. It uses well-known YAML and that's it.

Why not Acrylamid? Well, it's not well tested by different people with different requirements. It does not use multiple cores (currently no static blog framework does this, but I am working on this). The default layout is indeed not the most beautifulst. Acrylamid currently has no asset handling (naïve "copy tree" sucks).

Features

Acrylamid is a mixture of nanoc, Pyblosxom and Pelican. It features mainly:

  • blog articles, static pages, tags RSS/Atom feeds and an article overview
  • theming support (using jinja2) and support for jinja2 directly in postings
  • Markdown, reStructuredText, textile and pandoc
  • Markdown extensions and custom reStructuredText directives
  • MathML, modern web-typography and hyphenation using soft-hyphens
  • RSS/Atom import, deployment and a handy CLI
  • it's very flexible/configurable and fast

Quickstart

easy_install -U acrylamid

It has actually only one dependency, jinja2 but for convenience it also installs markdown and translitcodec. In addition it has support for PyYAML, reStructuredText, syntax highlighting using pygments, asciimathml to render MathML and finally smartypants for nicer typography.

easy_install -U docutils pygments asciimathml smartypants

Get acrylamid, edit conf.py and layouts/ and compile with:

$> acrylamid init myblog
    create  myblog/conf.py
    ...
$> cd myblog/
$> acrylamid compile && acrylamid view
      warn  using mtime from <fileentry f'content/sample entry.txt'>
    create  '/articles/index.html', written to output/articles/index.html
    create  'Die Verwandlung', written to output/2011/die-verwandlung/index.html
    create  '/atom/index.html', written to output/atom/index.html
    create  '/rss/index.html', written to output/rss/index.html
    create  '/', written to output/index.html
   * Running on http://127.0.0.1:8000/

Real World Example?

I have released all sources from my personal blog: /posativ/blog.posativ.org/. Take a look at my conf.py for some inspiration.

Filters

You can apply various filter to a single entry, to a specific view or globally and Acrylamid resolves it automatically (some filters conflict with others so you can for example apply Markdown as global filter but render some entries with reStructuredText). Currently supported by acrylamid, see docs/filters.rst for detailed information:

  • Markdown: rendering Markdown (+asciimathml,pygments,built-in extensions)
  • reST: reStructuredText (+pygments)
  • pandoc: Pandoc (+Markdown,textitle,rst,...)
  • textile: using Textile as markup language
  • HTML: don't render with filters mentioned above (it's a conflicting filter)
  • typography: https://code.google.com/p/typogrify/ (and custom modifications)
  • hyphenation: hyphenate words (len > 10) based on language
  • summarize: summarizes posts to 200 words
  • head_offset: decrease headings by offset
  • jinja2: write jinja2 in your entries (you can also execute system calls therewith)
  • acronyms: automatically replace acronyms and abbreviations to help unexperienced users

Commands

See :doc:`commands` for a detailed overview.

%> acrylamid --help
Usage: acrylamid <subcommand> [options] [args]

Options:
  -q, --quiet    less verbose
  -v, --verbose  more verbose
  -h, --help     show this help message and exit
  --version      print version details

Commands:
  init           initializes base structure in DIR
  create  (new)  creates a new entry
  compile (co)   compile blog
  view           fire up built-in webserver
  autocompile    automatic compilation and serving (short aco)
  clean   (rm)   remove abandoned files
  import         import content from URL
  deploy         run a given TASK

All subcommands except `init` require a conf.py file.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.