File: README.markdown

package info (click to toggle)
typogrify 20111209-2
  • links: PTS, VCS
  • area: main
  • in suites: wheezy
  • size: 220 kB
  • sloc: python: 247; makefile: 5
file content (134 lines) | stat: -rw-r--r-- 3,228 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
    Note: This fork tries to separate the general purpose logic from django
    related code so that it can be used with other template engines like
    Jinja2.

typogrify: Filters to make web typography easier
================================================================


This application provides a set of custom filters for the Django
template system which automatically apply various transformations to
plain text in order to yield typographically-improved HTML.


Requirements
============

``typogrify`` is designed to work with `Django`_, and so requires a
functioning installation of Django 0.96 or later. Also requires `the
Python port of John Gruber's SmartyPants`_ for tokenization.

.._ Django: http://www.djangoproject.com/
.._ The Python port of John Gruber's SmartyPants: http://web.chad.org/projects/smartypants.py/


Installation
============

To install a packaged version of ``typogrify``, download `the latest
package from Google Code`_, and -- in the directory in which you
downloaded it -- open a command line and do the following::

    tar zxvf typogrify-0.2.tar.gz
    cd typogrify-0.2
    python setup.py install

This will perform a standard installation of ``typogrify``.

Alternately, you can perform a Subversion checkout of the latest code;
execute the following in a directory that's on your Python path::

    svn checkout http://typogrify.googlecode.com/svn/trunk/typogrify/

Once ``typogrify`` is installed on your system, you can add it to the
``INSTALLED_APPS`` setting of any Django project in which you wish to
use it, and then use ``{% load typogrify %}`` in your templates to
load the filters it provides.


.._ the latest package from Google Code: http://typogrify.googlecode.com/files/typogrify-0.1.tar.gz


Included filters
================

``amp``
-------

Wraps ampersands in HTML with ``<span class="amp">`` so they can be
styled with CSS. Ampersands are also normalized to ``&amp;``. Requires
ampersands to have whitespace or an ``&nbsp;`` on both sides. Will not
change any ampersand which has already been wrapped in this fashion.


``caps``
--------

Wraps multiple capital letters in ``<span class="caps">`` so they can
be styled with CSS.


``initial_quotes``
------------------

Wraps initial quotes in ``<span class="dquo">`` for double quotes or
``<span class="quo">`` for single quotes. Works inside these block
elements:

* ``h1``, ``h2``, ``h3``, ``h4``, ``h5``, ``h6``

* ``p``

* ``li``

* ``dt``

* ``dd``

Also accounts for potential opening inline elements: ``a``, ``em``,
``strong``, ``span``, ``b``, ``i``.


``smartypants``
---------------

Applies ``SmartyPants``.


``typogrify``
-------------

Applies all of the following filters, in order:

* ``amp``

* ``widont``

* ``smartypants``

* ``caps``

* ``initial_quotes``


``widont``
----------

Based on Shaun Inman's PHP utility of the same name, replaces the
space between the last two words in a string with ``&nbsp;`` to avoid
a final line of text with only one word.

Works inside these block elements:

* ``h1``, ``h2``, ``h3``, ``h4``, ``h5``, ``h6``

* ``p``

* ``li``

* ``dt``

* ``dd``

Also accounts for potential closing inline elements: ``a``, ``em``,
``strong``, ``span``, ``b``, ``i``.