Configuration of the SmartyPantsTypographer parser work the same way. Simply replace SmartyPants in the examples above with SmartyPantsTypogrpaher.

Presets

SmartyPants comes with three presets configurations you can use instead of using a configuration string:

"0"

Suppress all transformations. (Do nothing.) The output is identical to the input.

"1"

Performs default SmartyPants transformations: quotes (including
backticks-style), em-dashes, and ellipses. -- (dash dash) is
used to signify an em-dash; there is no support for en-dashes.

"2"

Same as "1", except that it uses the old-school
typewriter shorthand for dashes: -- (dash dash) for en-dashes,
--- (dash dash dash) for em-dashes.

"3"

Same as "2", but inverts the shorthand for dashes: --
(dash dash) for em-dashes, and --- (dash dash dash) for en-dashes.

"-1"

Stupefy mode. Reverses the SmartyPants transformation process,
turning the HTML entities produced by SmartyPants into their ASCII
equivalents. E.g. &#8220; is turned into a simple double-quote
("), &#8212; is turned into two dashes, etc. This is useful if you
wish to suppress smart punctuation in specific pages, such as
RSS feeds.

SmartyPants Configuration

tags_to_skip = 'pre|code|kbd|script|style|math'

List of HTML tags where the content will not be affected by SmartyPants.

(Note: This is injected in a regular expression, so be careful not to use
special characters that might break the expression.)

do_nothing

Setting this to 1 will disable all transforms done by SmartyPants.
Set to 0 to allow the other transforms to operate.

do_quotes

Transform straight quotes " into “curly” quotes. Also works with
single quotes and apostrophes.

Option

Config Value

"quote"

'quote'

q

do_quotes = 1

“curly”

‘curly’

This enabled by default with preset configurations. Set to 0 to disable.

do_backticks

Transform approximative ``quotes'' ' into “curly” quotes. Set to2` to also handle single quotes.

Option

Config Value

``quotes''

`quotes'

b

do_backticks = 1

“curly”

B

do_backticks = 2

“curly”

‘curly’

The first variant above is enabled by default with preset configurations. Set to 0 to disable.

The first variant above is enabled by default with preset configurations.
Set to 0 to disable.

do_ellipses

Transform three consecutive dots ... into the ellipsis character… Set to
0 to disable.

Option

Config Value

...

e

do_ellipses = 1

…

This is enabled by default with preset configurations.

do_stupefy

Set to 1 to convert smart typographic characters back to their straight
ASCII counterparts: quotes, apostrophes, dashes, and ellipses.

convert_quot

Convert &quot; HTML entities to normal non-curly
double quotes ". This is done before all the other transforms, and the
final result will only be a straight quote if you do not have do_quotes
enabled. Use this option if your HTML editor emits &quot;
when typing quotes.

Option

Config Value

&quot;

w

convert_quot = 1

"

smart_doublequote_open = '&#8220;'

smart_doublequote_close = '&#8221;'

smart_singlequote_open = '&#8216;'

smart_singlequote_close = '&#8217;'(also apostrophe)

Replacement characters for replacing straight quotes with smart quotes.
The default values will produce
curly “double quotes”, ‘single quotes’, and apostrophes. Replace these
if you want straight quotes to be converted to something suitable for
another language.

backtick_doublequote_open = '&#8220;'

backtick_doublequote_close = '&#8221;'

backtick_singlequote_open = '&#8216;'

backtick_singlequote_close = '&#8217;'(also apostrophe)

Replacement character used by do_backticks above.

em_dash = '&#8212;'

en_dash = '&#8211;'

Replacement character for em- and em- dashes.

ellipsis = '&#8230;'

Replacement character for ellipsis.

SmartyPants Typographer Configuration

do_comma_quotes

Transform approximative ,,german`` or ''greek,, quotes to their
typographic character equivalent. This option only handles the ,, lower part
made of two consecutive commas, and should be set in conjunction with
do_backticks for the upper part to be converted too.

Option

Config Value

,,

c

do_comma_quotes = 1

„

Set to 0 to disable.

do_guillemets

Transform approximative guillemets (<< and >>) to their
typographic character equivalent.

Option

Config Value

<<

>>

g

do_guillemets = 1

«

»

Set to 0 to disable.

do_geresh_gershayim

Transform apostrophe and straight double quotes in the middle of Hebrew
words in typographic Geresh or Gershayim. Only applies when surrounded
by Hebrew letters on both sides, and will not apply at word boundaries.

Option

Variable

צ'ארלס

צה"ל

G

do_geresh_gershayim = 1

צ׳ארלס

צה״ל

do_space_colon

Transform space character before a colon to a no-break space.
Can force-insert or force-remove the space too.

Option

Config Value

this:

this :

:

do_space_colon = 1

this:

this_:

:+

do_space_colon = 2

this_:

this_:

:-

do_space_colon = -1

this:

this:

The first variant above is enabled by default with preset configurations.
Set to 0 to disable.

do_space_semicolon

Transform space character before a semicolon to a no-break space,
Can force-insert or force-remove the space too.

Option

Config Value

this;

this ;

:

do_space_semicolon = 1

this;

this_;

:+

do_space_semicolon = 2

this_;

this_;

:-

do_space_semicolon = -1

this;

this;

The first variant above is enabled by default with preset configurations.
Set to 0 to disable.

do_space_marks

Transform space character before an exclamation mark or a question mark
to a no-break space. Can force-insert or force-remove the space too.

Option

Config Value

¡this!

¡ this !

m

do_space_semicolon = 1

¡this!

¡_this_!

m+

do_space_semicolon = 2

¡_this_!

¡_this_!

m-

do_space_semicolon = -1

¡this!

¡this!

The first variant above is enabled by default with preset configurations.
Set to 0 to disable.

do_space_emdash

Transform space characters around an em-dash
to a breaking space. Can force-insert or force-remove the space too.

Option

Config Value

a—b

a — b

h

do_space_emdash = 1

a—b

a_—_b

h+

do_space_emdash = 2

a_—_b

a_—_b

h-

do_space_emdash = -1

a—b

a—b

Set to 0 to disable.

do_space_endash

Transform space character around an em-dash
to a breaking space. Can force-insert or force-remove the space too.

Option

Config Value

a–b

a – b

H

do_space_endash = 1

a–b

a_–_b

H+

do_space_endash = 2

a_–_b

a_–_b

H-

do_space_endash = -1

a–b

a–b

Set to 0 to disable.

do_space_frenchquote

Transform space character on the inside of french quotes to a no-break
space. Can force-insert or force-remove the space too.

Option

Config Value

«allô»

« allô »

f

do_space_frenchquote = 1

«allô»

«_allô_»

f+

do_space_frenchquote = 2

«_allô_»

«_allô_»

f-

do_space_frenchquote = -1

«allô»

«allô»

Note that with the first variant from the table above, spacing around
»German« and »Finnish» quotes are left untouched. The two other variants
should only be used with French text.

The first variant above is enabled by default with preset configurations.
Set to 0 to disable.

do_space_thousand

Transform space character used as a thousand separator to a no-break
space. Can force-insert the space into numbers too.

Option

Config Value

10 000 bugs

10000 bugs

t

do_space_thousand = 1

10_000 bugs

10000 bugs

t+

do_space_thousand = 2

10_000 bugs

10_000 bugs

The first variant above is enabled by default with preset configurations.
Set to 0 to disable.

do_space_unit

Transform space character used as a separator between a number and
a recognized unit abberviation to a no-break
space. Can force-insert the space into numbers too.

Option

Config Value

12 kg

12kg

u

do_space_unit = 1

12_kg

12kg

u+

do_space_unit = 2

12_kg

12_kg

u-

do_space_unit = -1

12kg

12kg

The first variant above is enabled by default with preset configurations.
Set to 0 to disable.

doublequote_low = "&#8222;"

Replacement character for low double quotes used by do_comma_quotes
above.

guillemet_leftpointing = "&#171;"

guillemet_rightpointing = "&#187;"

Replacement character for guillmets used by do_guillemets above.

geresh = "&#1523;"

gershayim = "&#1524;"

Replacement character for Geresh and Gershayim in Hebrew.

space_emdash = " "

space_endash = " "

space_colon = "&#160;"

space_semicolon = "&#160;"

space_marks = "&#160;"

space_frenchquote = "&#160;"

space_thousand = "&#160;"

space_unit = "&#160;"

Space character to use as a replacement for each of the spacing rules.
This is by default a regular no-break space, except around dashes where
a regular space is used.

Use other unicode character or HTML markup to acheive more fine-grained
spacing.

space = '(?: | |&nbsp;|&#0*160;|&#x0*[aA]0;)'

Regular expression for finding a space character (breakable or not).

UTF-8 Output

PHP SmartyPants default configuration will emit HTML entities in the output.
While you can change this manually by replacing replacement character entities
in configuration variables with their UTF-8 character equivalent, you can also
call this method wich will do exactly that:

$parser->decodeEntitiesInConfiguration()

This method will replace all HTML entities in configuration variables by
passing them through
html_entity_decode.

Configuring the classic version

Configuration options for the classic version are done using an attribute string identical to the one used by PHP SmartyPants Lib.

The defaultTransform function does not exist. Instead a global SmartyPants
function is available that will do the transform to which you can pass a configuration string.