Typography Class
****************

The Typography Class provides methods that help you format text.

* Using the Typography Class

  * Initializing the Class

* Class Reference


Using the Typography Class
==========================


Initializing the Class
----------------------

Like most other classes in CodeIgniter, the Typography class is
initialized in your controller using the "$this->load->library()"
method:

   $this->load->library('typography');

Once loaded, the Typography library object will be available using:

   $this->typography


Class Reference
===============

class CI_Typography

   $protect_braced_quotes = FALSE

      When using the Typography library in conjunction with the
      Template Parser library it can often be desirable to protect
      single and double quotes within curly braces. To enable this,
      set the "protect_braced_quotes" class property to TRUE.

      Usage example:

         $this->load->library('typography');
         $this->typography->protect_braced_quotes = TRUE;

   auto_typography($str[, $reduce_linebreaks = FALSE])

      Parameters:
         * **$str** ("string") – Input string

         * **$reduce_linebreaks** ("bool") – Whether to reduce
           consecutive linebreaks

      Returns:
         HTML typography-safe string

      Return type:
         "string"

      Formats text so that it is semantically and typographically
      correct HTML. Takes a string as input and returns it with the
      following formatting:

         * Surrounds paragraphs within <p></p> (looks for double line
           breaks to identify paragraphs).

         * Single line breaks are converted to <br />, except those
           that appear within <pre> tags.

         * Block level elements, like <div> tags, are not wrapped
           within paragraphs, but their contained text is if it
           contains paragraphs.

         * Quotes are converted to correctly facing curly quote
           entities, except those that appear within tags.

         * Apostrophes are converted to curly apostrophe entities.

         * Double dashes (either like – this or like–this) are
           converted to em—dashes.

         * Three consecutive periods either preceding or following a
           word are converted to ellipsis (…).

         * Double spaces following sentences are converted to non-
           breaking spaces to mimic double spacing.

      Usage example:

         $string = $this->typography->auto_typography($string);

      There is one optional parameter that determines whether the
      parser should reduce more than two consecutive line breaks down
      to two. Pass boolean TRUE to enable reducing line breaks:

         $string = $this->typography->auto_typography($string, TRUE);

      Note:

        Typographic formatting can be processor intensive,
        particularly if you have a lot of content being formatted. If
        you choose to use this method you may want to consider caching
        your pages.

   format_characters($str)

      Parameters:
         * **$str** ("string") – Input string

      Returns:
         Formatted string

      Return type:
         "string"

      This method is similar to "auto_typography()" above, except that
      it only does character conversion:

         * Quotes are converted to correctly facing curly quote
           entities, except those that appear within tags.

         * Apostrophes are converted to curly apostrophe entities.

         * Double dashes (either like – this or like–this) are
           converted to em—dashes.

         * Three consecutive periods either preceding or following a
           word are converted to ellipsis (…).

         * Double spaces following sentences are converted to non-
           breaking spaces to mimic double spacing.

      Usage example:

         $string = $this->typography->format_characters($string);

   nl2br_except_pre($str)

      Parameters:
         * **$str** ("string") – Input string

      Returns:
         Formatted string

      Return type:
         "string"

      Converts newlines to <br /> tags unless they appear within <pre>
      tags. This method is identical to the native PHP "nl2br()"
      function, except that it ignores <pre> tags.

      Usage example:

         $string = $this->typography->nl2br_except_pre($string);
