blob: 29219059ce2be3a2eaaa9b96b37e1cfd82c58b65 [file] [log] [blame]
Rick Ellis7eb56d62008-09-12 07:22:35 +00001<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
2<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
3<head>
4
5<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
6<title>Typography Class : CodeIgniter User Guide</title>
7
8<style type='text/css' media='all'>@import url('../userguide.css');</style>
9<link rel='stylesheet' type='text/css' media='all' href='../userguide.css' />
10
11<script type="text/javascript" src="../nav/nav.js"></script>
12<script type="text/javascript" src="../nav/prototype.lite.js"></script>
13<script type="text/javascript" src="../nav/moo.fx.js"></script>
14<script type="text/javascript" src="../nav/user_guide_menu.js"></script>
15
16<meta http-equiv='expires' content='-1' />
17<meta http-equiv= 'pragma' content='no-cache' />
18<meta name='robots' content='all' />
19<meta name='author' content='ExpressionEngine Dev Team' />
20<meta name='description' content='CodeIgniter User Guide' />
21
22</head>
23<body>
24
25<!-- START NAVIGATION -->
26<div id="nav"><div id="nav_inner"><script type="text/javascript">create_menu('../');</script></div></div>
27<div id="nav2"><a name="top"></a><a href="javascript:void(0);" onclick="myHeight.toggle();"><img src="../images/nav_toggle_darker.jpg" width="154" height="43" border="0" title="Toggle Table of Contents" alt="Toggle Table of Contents" /></a></div>
28<div id="masthead">
29<table cellpadding="0" cellspacing="0" border="0" style="width:100%">
30<tr>
31<td><h1>CodeIgniter User Guide Version 1.7</h1></td>
32<td id="breadcrumb_right"><a href="../toc.html">Table of Contents Page</a></td>
33</tr>
34</table>
35</div>
36<!-- END NAVIGATION -->
37
38
39<!-- START BREADCRUMB -->
40<table cellpadding="0" cellspacing="0" border="0" style="width:100%">
41<tr>
42<td id="breadcrumb">
43<a href="http://codeigniter.com/">CodeIgniter Home</a> &nbsp;&#8250;&nbsp;
44<a href="../index.html">User Guide Home</a> &nbsp;&#8250;&nbsp;
45Typography Class
46</td>
47<td id="searchbox"><form method="get" action="http://www.google.com/search"><input type="hidden" name="as_sitesearch" id="as_sitesearch" value="codeigniter.com/user_guide/" />Search User Guide&nbsp; <input type="text" class="input" style="width:200px;" name="q" id="q" size="31" maxlength="255" value="" />&nbsp;<input type="submit" class="submit" name="sa" value="Go" /></form></td>
48</tr>
49</table>
50<!-- END BREADCRUMB -->
51
52<br clear="all" />
53
54
55<!-- START CONTENT -->
56<div id="content">
57
58
59<h1>Typography Class</h1>
60
61<p>The Typography Class provides functions that help you format text.</p>
62
63
64<h2>Initializing the Class</h2>
65
66<p>Like most other classes in CodeIgniter, the Typography class is initialized in your controller using the <dfn>$this->load->library</dfn> function:</p>
67
68<code>$this->load->library('typography');</code>
69<p>Once loaded, the Typography library object will be available using: <dfn>$this->typography</dfn></p>
70
71
72<h2>auto_typography()</h2>
73
74<p>Formats text so that it is semantically and typographically correct HTML. Takes a string as input and returns it with
75the following formatting:</p>
76
77<ul>
78<li>Surrounds paragraphs within &lt;p&gt;&lt;/p&gt; (looks for double line breaks to identify paragraphs).</li>
79<li>Single line breaks are converted to &lt;br /&gt;, except those that appear within &lt;pre&gt; tags.</li>
80<li>Block level elements, like &lt;div&gt; tags, are not wrapped within paragraphs, but their contained text is if it contains paragraphs.</li>
81<li>Quotes are converted to correctly facing curly quote entities, except those that appear within tags.</li>
82<li>Apostrophes are converted to curly apostrophy entities.</li>
83<li>Double dashes (either like -- this or like--this) are converted to em&#8212;dashes.</li>
84<li>Three consecutive periods either preceding or following a word are converted to ellipsis&#8230;</li>
85<li>Double spaces following sentences are converted to non-breaking spaces to mimic double spacing.</li>
86</ul>
87
88<p>Usage example:</p>
89
90<code>$string = $this->typography->auto_typography($string);</code>
91
Rick Ellis3bc791f2008-09-12 23:15:52 +000092<h3>Parameters</h3>
93
94<p>There are two optional parameters:</p>
95
96<ol>
97 <li><strong>Strip JavaScript Event Handlers</strong>. Determines whether the parser should strip all JavaScript event handlers for security. Use bolean <kbd>TRUE</kbd> or <kbd>FALSE</kbd>.</li>
98 <li><strong>Reduce Linebreaks</strong>. Determines whether the parser should reduce more then two consecutive linebreaks down to two. Use bolean <kbd>TRUE</kbd> or <kbd>FALSE</kbd>.</li>
99</ol>
100
101<p>By default the parser strips JS Event handlers and does not reduce line breaks. In other words, if no parameters are submitted, it is the same as doing this:</p>
102
103<code>$string = $this->typography->auto_typography($string, <kbd>TRUE</kbd>, <kbd>FALSE</kbd>);</code>
104
105
106<p class="important"><strong>Note:</strong> Typographic formatting can be processor intensive, particularly if you have a lot of content being formatted.
Rick Ellis7eb56d62008-09-12 07:22:35 +0000107If you choose to use this function you may want to consider
108<a href="../general/caching.html">caching</a> your pages.</p>
109
110
111
112<h2>convert_characters()</h2>
113
Rick Ellis3bc791f2008-09-12 23:15:52 +0000114<p>This function is similiar to the <dfn>auto_typography</dfn> function above, except that it only does character conversion:</p>
Rick Ellis7eb56d62008-09-12 07:22:35 +0000115
Rick Ellis3bc791f2008-09-12 23:15:52 +0000116<ul>
117<li>Quotes are converted to correctly facing curly quote entities, except those that appear within tags.</li>
118<li>Apostrophes are converted to curly apostrophy entities.</li>
119<li>Double dashes (either like -- this or like--this) are converted to em&#8212;dashes.</li>
120<li>Three consecutive periods either preceding or following a word are converted to ellipsis&#8230;</li>
121<li>Double spaces following sentences are converted to non-breaking spaces to mimic double spacing.</li>
122</ul>
Rick Ellis7eb56d62008-09-12 07:22:35 +0000123
Rick Ellis3bc791f2008-09-12 23:15:52 +0000124<p>Usage example:</p>
Rick Ellis7eb56d62008-09-12 07:22:35 +0000125
Rick Ellis3bc791f2008-09-12 23:15:52 +0000126<code>$string = $this->typography->convert_characters($string);</code>
Rick Ellis7eb56d62008-09-12 07:22:35 +0000127
128
129<h2>nl2br_except_pre()</h2>
130
131<p>Converts newlines to &lt;br /&gt; tags unless they appear within &lt;pre&gt; tags.
132This function is identical to the native PHP <dfn>nl2br()</dfn> function, except that it ignores &lt;pre&gt; tags.</p>
133
134<p>Usage example:</p>
135
136<code>$string = $this->typography->nl2br_except_pre($string);</code>
137
Derek Jonesd95ebca2008-10-01 23:57:38 +0000138<h2>protect_braced_quotes</h2>
139
140<p>When using the Typography library in conjunction with the Template Parser library it can often be desirable to protect single
141 and double quotes within curly braces. To enable this, set the <kbd>protect_braced_quotes</kbd> class property to <samp>TRUE</samp>.
142
143<p>Usage example:</p>
144
145<code>$this->load->library('typography');<br />
146$this->typography->protect_braced_quotes = TRUE;
147</code>
Rick Ellis7eb56d62008-09-12 07:22:35 +0000148
149</div>
150<!-- END CONTENT -->
151
152
153<div id="footer">
154<p>
155Previous Topic:&nbsp;&nbsp;<a href="parser.html">Template Parser</a>
156&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp;
157<a href="#top">Top of Page</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp;
158<a href="../index.html">User Guide Home</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp;
159Next Topic:&nbsp;&nbsp;<a href="unit_testing.html">Unit Testing Class</a>
160</p>
161<p><a href="http://codeigniter.com">CodeIgniter</a> &nbsp;&middot;&nbsp; Copyright &#169; 2006-2008 &nbsp;&middot;&nbsp; <a href="http://ellislab.com/">Ellislab, Inc.</a></p>
162</div>
163
164</body>
165</html>