Preserve Code Formatting

Author:Scott Reilly
Version:3.2
Last update:2011-07-12
Compatibility:WP 3.1 – 3.3.2
Comments:go here
Download:[ zip ]
Description:

Preserve formatting of code for display by preventing its modification by WordPress and other plugins while retaining original whitespace and characters.

Extended Description

Preserve formatting of code for display by preventing its modification by WordPress and other plugins while retaining original whitespace and characters.

NOTE: Use of the visual text editor will pose problems as it can mangle your intent in terms of code tags. I do not offer any support for those who have the visual editor active.

Notes:

Basically, you can just paste code into code, pre, and/or other tags you additionally specify and this plugin will:

  • Prevent WordPress from HTML-encoding text (i.e. single- and double-quotes will not become curly; “–” and “—” will not become en dash and em dash, respectively; “…” will not become a horizontal ellipsis, etc)
  • Prevent most other plugins from modifying preserved code
  • Prevent shortcodes from being processed
  • Optionally preserve whitespace (in a variety of methods)
  • Optionally preserve code added in comments

Keep these things in mind:

  • ALL embedded HTML tags and HTML entities will be rendered as text to browsers, appearing exactly as you wrote them (including any br tags).
  • By default this plugin filters ‘the_content’ (post content), ‘the_excerpt’ (post excerpt), and ‘get_comment_text (comment content)’.

Example:

A post containing this within code tags:

$wpdb->query("
        INSERT INTO $tablepostmeta
        (post_id,meta_key,meta_value)
        VALUES ('$post_id','link','$extended')
");

Would, with this plugin enabled, look in a browser pretty much how it does above, instead of like:

$wpdb->query(—
INSERT INTO $tablepostmeta
(post_id,meta_key,meta_value)
VALUES ('$post_id','link','$extended')
―);

Links: Plugin Homepage | Plugin Directory Page | Author Homepage

Find out more at the plugin’s WordPress Plugin Repository page.

Screenshots

Click to see full-size image.

  • preserve-code-formatting screenshot 1

    A screenshot of the plugin’s admin options page.


Installation

  1. Whether installing or updating, whether this plugin or any other, it is always advisable to back-up your data before starting
  2. Unzip preserve-code-formatting.zip inside the /wp-content/plugins/ directory (or install via the built-in WordPress plugin installer)
  3. Activate the plugin through the ‘Plugins’ admin menu in WordPress
  4. Go to the Settings -> Code Formatting admin settings page (which you can also get to via the Settings link next to the plugin on the Manage Plugins page) and customize the settings.
  5. Write a post with code contained within opening and closing code tags (using the HTML editor, not the Visual editor).

Frequently Asked Questions

Q. Why does my code still display all funky? (by the way, I’m using the visual editor)
A. The visual editor has a tendency to screw up some of your intent, especially when you are attempting to include raw code. This plugin does not make any claims about working when you create posts with the visual editor enabled.

Q. Can I put shortcode examples within code tags and not have them be evaluated by WordPress?
A. Yes, shortcodes within code tags (or any tag processed by this plugin) will be output as pure text and not be processed as shortcodes by WordPress.


Release Log

3.2

  • Fix bug with settings form not appearing in MS
  • Update plugin framework to 032
  • Remove support for ‘c2c_preserve_code_formatting’ global
  • Note compatibility through WP 3.3+
  • Drop support for versions of WP older than 3.1
  • Change parent constructor invocation
  • Create ‘lang’ subdirectory and move .pot file into it
  • Regenerate .pot
  • Add ‘Domain Path’ directive to top of main plugin file
  • Add link to plugin directory page to readme.txt
  • Add text and FAQ question regarding how shortcodes are prevented from being evaluated
  • Tweak installation instructions in readme.txt
  • Update screenshot for WP 3.3
  • Update copyright date (2012)

3.1

  • Fix to properly register activation and uninstall hooks
  • Update plugin framework to version v023
  • Save a static version of itself in class variable $instance
  • Deprecate use of global variable $c2c_preserve_code_formatting to store instance
  • Add __construct(), activation(), and uninstall()
  • Explicitly declare functions public and variable private
  • Remove declarations of instance variable which have since become part of the plugin framework
  • Note compatibility through WP 3.2+
  • Drop compatibility with version of WP older than 3.0
  • Minor code formatting changes (spacing)
  • Update copyright date (2011)
  • Add plugin homepage and author links in description in readme.txt

3.0

  • Re-implementation by extending C2C_Plugin_016, which among other things adds support for:
    • Reset of options to default values
    • Better sanitization of input values
    • Offload of core/basic functionality to generic plugin framework
    • Additional hooks for various stages/places of plugin operation
    • Easier localization support
  • Full localization support
  • Change storing plugin instance in global variable to $c2c_preserve_code_formatting (instead of $preserve_code_formatting), to allow for external manipulation
  • Rename class from ‘PreserveCodeFormatting’ to ‘c2c_PreserveCodeFormatting’
  • Remove docs from top of plugin file (all that and more are in readme.txt)
  • Note compatibility with WP 2.9+, 3.0+
  • Drop compatibility with versions of WP older than 2.8
  • Add PHPDoc documentation
  • Minor tweaks to code formatting (spacing)
  • Add package info to top of plugin file
  • Add Upgrade Notice section to readme.txt
  • Update copyright date
  • Remove trailing whitespace
  • Add .pot file

2.5.4

  • Fixed some borked code preservation by restoring some processing removed in previous release

2.5.3

  • Fixed recently introduced bug affecting occasional code preservation by using a more robust alternative approach
  • Fixed “Settings” link for plugin in plugin listing, which lead to blank settings page
  • Changed help text for preservable tags settings input to be more explicit

2.5.2

  • Fix to retain any attributes defined for tags being preserved
  • Fixed recently introduced bug affecting occasional code preservation

2.5.1

  • Fixed newly introduced bug that added unnecessary slashes to preserved code
  • Fixed long-running bug where intended slashes in code got stripped on display (last remaining known bug)

2.5

  • Fixed long-running bug that caused some preserved code to appear garbled
  • Updated a lot of internal plugin management code
  • Added ‘Settings’ link to plugin’s plugin listing entry
  • Used plugins_url() instead of hardcoded path
  • Brought admin markup in line with modern conventions
  • Minor reformatting (spacing)
  • Noted compatibility through WP2.8+
  • Dropped support for pre-WP2.6
  • Updated copyright date
  • Updated screenshot

2.0

  • Completely rewritten
  • Now properly handles code embedded in comments
  • Created its own class to encapsulate plugin functionality
  • Added admin options page under Options -> Code Formatting (or in WP 2.5: Settings -> Code Formatting). Options are now saved to database, negating need to customize code within the plugin source file.
  • Removed function anti_wptexturize() as the new handling approach negates its need
  • Changed description; updated installation instructions
  • Added compatibility note
  • Updated copyright date
  • Moved into its own subdirectory; added readme.txt and screenshot
  • Tested compatibility with WP 2.3.3 and 2.5

0.9

  • Initial release

Copyright & Disclaimer

Copyright © 2005-2011 by Scott Reilly (aka coffee2code)

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.