.\" Automatically generated by Pod::Man 2.28 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "Text::SmartyPants 3pm" .TH Text::SmartyPants 3pm "2010-05-23" "perl v5.20.1" "User Contributed Perl Documentation" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "Methods" .IX Header "Methods" .SS "process" .IX Subsection "process" Do the bulk of the conversion work. .SS "SmartQuotes" .IX Subsection "SmartQuotes" Quotes to entities. .SS "SmartDashes" .IX Subsection "SmartDashes" Call the individual dash conversion to entities functions. .SS "SmartEllipses" .IX Subsection "SmartEllipses" Call the individual ellipse conversion to entities functions. .SS "EducateQuotes" .IX Subsection "EducateQuotes" .Vb 1 \& Parameter: String. \& \& Returns: The string, with "educated" curly quote HTML entities. \& \& Example input: "Isn\*(Aqt this fun?" \& Example output: “Isn’t this fun?” .Ve .SS "EducateBackticks" .IX Subsection "EducateBackticks" Replace double (back)ticks w/ \s-1HTML\s0 entities. .SS "EducateSingleBackticks" .IX Subsection "EducateSingleBackticks" Replace single (back)ticks w/ \s-1HTML\s0 entities. .SS "EducateDashes" .IX Subsection "EducateDashes" Dashes to \s-1HTML\s0 entity .PP .Vb 1 \& Parameter: String. \& \& Returns: The string, with each instance of "\-\-" translated to \& an em\-dash HTML entity. .Ve .SS "EducateDashesOldSchool" .IX Subsection "EducateDashesOldSchool" Dashes to entities. .PP .Vb 1 \& Parameter: String. \& \& Returns: The string, with each instance of "\-\-" translated to \& an en\-dash HTML entity, and each "\-\-\-" translated to \& an em\-dash HTML entity. .Ve .SS "EducateDashesOldSchoolInverted" .IX Subsection "EducateDashesOldSchoolInverted" .Vb 1 \& Parameter: String. \& \& Returns: The string, with each instance of "\-\-" translated to \& an em\-dash HTML entity, and each "\-\-\-" translated to \& an en\-dash HTML entity. Two reasons why: First, unlike the \& en\- and em\-dash syntax supported by \& EducateDashesOldSchool(), it\*(Aqs compatible with existing \& entries written before SmartyPants 1.1, back when "\-\-" was \& only used for em\-dashes. Second, em\-dashes are more \& common than en\-dashes, and so it sort of makes sense that \& the shortcut should be shorter to type. (Thanks to Aaron \& Swartz for the idea.) .Ve .SS "EducateEllipses" .IX Subsection "EducateEllipses" .Vb 3 \& Parameter: String. \& Returns: The string, with each instance of "..." translated to \& an ellipsis HTML entity. \& \& Example input: Huh...? \& Example output: Huh…? .Ve .SS "StupefyEntities" .IX Subsection "StupefyEntities" .Vb 3 \& Parameter: String. \& Returns: The string, with each SmartyPants HTML entity translated to \& its ASCII counterpart. \& \& Example input: “Hello — world.” \& Example output: "Hello \-\- world." .Ve .SS "SmartyPantsVersion" .IX Subsection "SmartyPantsVersion" Return the version of SmartyPants. .SS "ProcessEscapes" .IX Subsection "ProcessEscapes" .Vb 4 \& Parameter: String. \& Returns: The string, with after processing the following backslash \& escape sequences. This is useful if you want to force a "dumb" \& quote or other character to appear. \& \& Escape Value \& \-\-\-\-\-\- \-\-\-\-\- \& \e\e \ \& \e" " \& \e\*(Aq ' \& \e. . \& \e\- - \& \e\` ` .Ve .SH "Name" .IX Header "Name" Text::SmartyPants \- cute little punctuation assistant .SH "Synopsis" .IX Header "Synopsis" SmartyPants is a free web publishing plug-in for Movable Type, Blosxom, and BBEdit that easily translates plain \s-1ASCII\s0 punctuation characters into \*(L"smart\*(R" typographic punctuation \s-1HTML\s0 entities. .SH "Description" .IX Header "Description" SmartyPants can perform the following transformations: .IP "\(bu" 4 Straight quotes ( \*(L" and ' ) into \*(R"curly" quote \s-1HTML\s0 entities .IP "\(bu" 4 Backticks-style quotes (``like this'') into \*(L"curly\*(R" quote \s-1HTML\s0 entities .IP "\(bu" 4 Dashes (\f(CW\*(C`\-\-\*(C'\fR and \f(CW\*(C`\-\-\-\*(C'\fR) into en\- and em-dash entities .IP "\(bu" 4 Three consecutive dots (\f(CW\*(C`...\*(C'\fR) into an ellipsis entity .PP This means you can write, edit, and save your posts using plain old \&\s-1ASCII\s0 straight quotes, plain dashes, and plain dots, but your published posts (and final \s-1HTML\s0 output) will appear with smart quotes, em-dashes, and proper ellipses. .PP SmartyPants is a combination plug-in \*(-- the same file works with Movable Type, Blosxom, and BBEdit. It can also be used from a Unix-style command-line. Version requirements and installation instructions for each of these tools can be found in the corresponding sub-section under \&\*(L"Installation\*(R", below. .PP SmartyPants does not modify characters within \f(CW\*(C`
\*(C'\fR, \f(CW\*(C`\*(C'\fR, \f(CW\*(C`\*(C'\fR, or \f(CW\*(C`