Tidy Up Plugin

Jun 12, 2006 | Tags: , , , , , , | Written by Administrator

This plugin provides the ability to run HTML Tidy through all your posts, pages, and comments, generating a report on just how dirty your code is. Should you want to, the plugin can also automatically update your database with the cleansed data.

If you are unaware of it's existence, HTML Tidy is a wonderful little tool that is embedded into almost everything nowadays. It's purpose is to take potentially malformed HTML code and produce clean XHTML.

Tidy Up does not require any special PHP configuration. As long as you have the ability to run executables then the plugin will work. Currently the plugin contains Tidy executables for:

  • Linux
  • Windows
  • Mac OS X
  • FreeBSD

It is likely that your web host runs one of these.

Installation

Installation is just like any WordPress plugin:
  • Download tidy-up.zip
  • Unzip
  • Upload to /wp-content/plugins on your server
  • Activate the plugin
  • Give tidy.linux, tidy.osx, tidy.exe, or tidy.freebsd execute permissions for the web server (generally means giving 'x' permission to group/other)
  • Use Tidy Up from the Manage/Tidy Up menu

You can find full details of installing a plugin on the plugin installation page.

Usage

To produce a report of all your posts or comments you need to go to the Tidy Up page of the Manage menu. Here you will be presented with the following interface:

Tidy Up interface

Choose your source (posts/pages or comments) and select your input and output formats. Then press either the 'Report' or 'Clean' button - report will just generate a report without making any modifications, while clean will save all modifications back to the database.

Input Format

When you write a post in WordPress you generally don't need to think about HTML formatting. You type your text, enter a blank line for a new paragraph, and write as you would normally. WordPress, being the clever chappy that it is, is aware of this and will automatically reformat your writing when it comes to viewing your blog, and everything displays correctly.

What's happening behind the scenes is that WordPress is adding HTML paragraph markers around your sections of plain text. While this is great for you (no need to think about HTML), it is a nuisance for am HTML verifier.

To get around this, the plugin allows you to specify the input and output formats. The input format is the current format of your data:

  • Default WordPress - Posts are stored without HTML paragraph formatting
  • Raw XHTML - Posts are stored with HTML paragraph formatting

Output Format

As an extension to the input format, this allows you to tell the plugin whether you want the cleaned code to be stored with HTML paragraph formatting or without.

Why bother with all this input/output formatting malarky?

Flexibility. You may want your data to be cleaned, but you want it stored in the paragraph-less WordPress format. You may want to convert from HTML paragraphs into WordPress format. It's up to you.

Tidy Up Single Post

As well as bulk-reporting on all posts, you can individually clean a single post. When the plugin is enabled, a new column will appear in the Post management screen. Clicking on this will produce a Tidy report on that post, with the capability of then saving it back to the database.

Report

A report will contain entries for each post that was checked:

Tidy Up report

Clicking on 'tidy' will clean that item (saving to the database). Clicking on 'edit' will open an edit box above the messages where you can update the text directly.

Configuration

Some people may want their data cleansed in different ways. HTML Tidy has many configuration options, and these are provided to you through two files located in the plugin directory:

  • wordpress.config - Tidy options when converting to WordPress format
  • xhtml.config - Tidy options when converting to XHTML format

You are free to modify these according to your own preferences and the HTML Tidy documentation.

Console Version

Due to the nature of the plugin it's possible that a scan of your HTML will result in a PHP timeout error. If your webserver is so configured then there is now around this other than using the command line version of the plugin. For this you will need SSH access to your web account:

  1. Change to the /wp-content/plugins/tidy-up directory
  2. Run php tidy_console.php source input [output] >report.html

Where source is:

  • posts
  • comments

And inputis:

  • wordpress
  • xhtml

output is optional and will cause the cleaned data to be written back to the database in the format specified ('wordpress' or 'xhtml').

The console version will output an HTML report to the screen. If you want, you can redirect this to a file (>report.html), and can then view it in your web browser at:

  http://yoursite.com/wp-content/plugins/tidy-up/report.html

For example:

 php tidy_console.php wordpress xhtml >report.html

Warning

I will accept no responsibility for any damage caused to your data. It is possible that the cleansed HTML code breaks existing formatting, corrupts your posts, or starts a feedback loop leading to the breakdown of the universe. You have been warned.

Share This

Comments

  1. aJ :

    Jul 6, 2006 1:07 am

    In the instructions you might want to add them to change the file permissions appropriately. I had to chmod the files before any reports could be generated.

    Thanks for the plugin :)

  2. David :

    Jul 10, 2006 6:36 am

    This plugin is excellent.
    One problem I have is with the ampersand charactor & &, if I have a properly escaped ampersand in the xhtml of the post, then tidy throws an error, but the w3 validator does not (as it is correct). If I ask tidy to clean the post, it does not appear to change anything, and then does not show an error. However, if I edit the post, the error returns.
    Is anyone else seeing behaviour like this?

  3. David :

    Jul 10, 2006 11:31 pm

    Further to what I wrote, turning off rich text editing solves the problem.

  4. John (author) :

    Jul 12, 2006 2:30 am

    aJ: You are correct. Documentation changed

    David: Curious. Looks like WordPress is somehow changing things with the rich text editing. I'll look into it

  5. David :

    Jul 17, 2006 2:33 am

    John,
    A couple of other (pretty unimportant points). The CSS refers to a folder tidy-up rather than tidy_up (I renamed the folder to avoid 404 errors in my stats) and the link on the plugin page links to this page as http://www.urbangiraffe.com/plugins/tidy_up/ rather than http://www.urbangiraffe.com/plugins/tidy-up/. You may want to check this.
    Cheers. The plugin works great.

  6. TJ Singleton :

    Jul 26, 2006 9:11 am

    Great stuff. Very useful. I used to to clean up a client site from the invalid mark-up. It'd be great if you could run it on the excerpts too!

  7. John (author) :

    Aug 3, 2006 1:07 am

    Thanks for that David, I had underscores and dashes all over the place. I've released version 1.1 which fixes those as well as adding support for excerpts, and some AJAX goodness thrown in as well.

  8. Gregg :

    Aug 6, 2006 1:28 am

    I receive the following error
    Warning: proc_open() has been disabled for security reasons

    I have CHMOD the files to 777.

    Does this mean my host does not let me execute exe files?

  9. John (author) :

    Aug 6, 2006 2:44 am

    Yes, it appears that your host has prevented executables from running. Possibly you could ask them to enable it for you, otherwise you're out of luck I'm afraid!

  10. Alessandro :

    Aug 14, 2006 6:27 am

    It would be very useful if this plugin checks the integrity of the post also only before <!-- more --> tag, not only on the entire tag, because also the first part of the post will be shown lonely on the summary posts page.

  11. Alessandro :

    Aug 14, 2006 6:36 am

    And you should change all wp_ occurrences from the SQL queries to '$table_prefix' global variable, because "wp_" is only the default value of a variable that it's possible to change.

  12. John (author) :

    Aug 14, 2006 8:32 pm

    Not sure I understand you about the more tag, Alessandro. The plugin checks the entire post, which includes both what is before and after the more tag

  13. sebastien (html illiterate) :

    Aug 25, 2006 5:33 am

    Hi,
    I installed your plugin but when I check a post the test invariably fails. When I press on clean, go back to post management and test the same post it fails again and again.
    Could this have to do with the fact I am writing this blog in Korean language? Or because there are many errors on my page, outside the post?

  14. kuratkull :

    Aug 27, 2006 10:36 am

    Hi, i did everything accordingly to the instructions, but when i try to tidy up single posts, it displays this error:

    #816: Failed

    sh: line 1: /usr/local/safe/tidy.linux: No such file or directory

    Has this anything to do with the php safe mode? because my hosting service has enabled safe mode :/

  15. John (author) :

    Sep 27, 2006 3:14 am

    Kuratkull, yes with safe mode enabled you'll only be able to execute programs in the 'safe' directory (it seems '/usr/local/safe')

    Sebastien: It could very well be the Korean text. I'll investigate this further

  16. Ezio Tuveri :

    Oct 30, 2006 6:33 am

    Hi John,
    is it possible to modify the plugin
    so that you can validate the drafts,
    at the moment only validates the published post.
    Great plugin by the way and thank you very very much
    for writing it, I tried others but didn't work,
    yours works very well.
    Thanks again,
    Ezio.

  17. John (author) :

    Nov 1, 2006 7:36 pm

    Tidying of drafts now enabled.

    Sebastien, I tried tidying some Korean text and got no errors or warnings. I suspect the error may be elsewhere, or maybe you are using the wrong input and output settings for your blog.

  18. Robin :

    Nov 2, 2006 6:47 am

    I am getting all - 1: Failed

    sh: /home/roadless/public_html/wp-content/plugins/tidy-up/tidy.linux: Permission denied

  19. John (author) :

    Nov 2, 2006 5:28 pm

    Hi Robin, it looks like you need to give the file execute permissions - do this for the 'group' and 'other' permissions.

  20. Will :

    Nov 7, 2006 2:18 am

    Hi,

    Awesome plug-in! Thanks a lot!

    I was just wondering if it is possible to have Tidy Up ignore certain tags (warnings).

    For example:

    35: Failed

    line 4 column 4 - Error: is not recognized!
    line 4 column 4 - Warning: discarding unexpected
    line 4 column 96 - Warning: discarding unexpected

    2 warnings, 1 error

    It would just be nice to get rid of "bogus" warnings. Since the code itself does produce 100% valid xhtml.

    Take Care,

    Will

  21. JoaquĆ­n :

    Nov 7, 2006 5:31 pm

    Hi,

    My site is in iso-8859-1. Can I use this plugin without problem or what changes do you suggest?

  22. author
    ovizii :

    Feb 3, 2007 5:47 am

    you say it works with pages too, but the dropdown only gives me: posts, comments, drafts... or are pages considered posts after 2.1 ?

  23. John (author) :

    Feb 18, 2007 3:31 am

    Pages are basically posts without a category, so selecting posts from the dropdown will give you access to both posts and pages.

  24. Toni :

    Feb 28, 2007 7:09 pm

    Cool plugin. But please note that tidy is precompiled and may or may not work with your specific linux box. On mine (AMD64/Ubuntu 6.06) it didn't work until I used the one from the repository.

  25. Will :

    Mar 11, 2007 5:47 pm

    Hi,

    Anyway you could please clean this up to play nice with wp-tiger:

    http://orderedlist.com/wordpress-plugins/wp-tiger-administration/

    Thanks a lot,

    Will

  26. Mohsin :

    Aug 8, 2007 8:16 am

    I`m Getting this error while generating report.

    Warning: proc_open() has been disabled for security reasons in /home/techpk/public_html/wp-content/plugins/tidy-up/tidy_class.php on line 251

    any idea what to do?

  27. John (author) :

    Aug 13, 2007 12:38 am

    Mohsin, your host has prevented the plugin from running Tidy. Unless you can convince them to change their security policy then there is nothing you can do about this.

  28. author
    damian :

    Feb 8, 2008 5:58 pm

    I've tried every possible combo of input/output and yet it always fails for every post when I click clean. No errors are thrown that I can tell. All posts are in English. Any ideas?

  29. author
    damian :

    Feb 8, 2008 6:03 pm

    nevermind - it was a permissions error - my bad!

  30. Jan :

    May 20, 2008 3:06 am

    Great Great Great!

    I like to have clean code on my blog :)

  31. stube :

    Jun 12, 2008 3:16 pm

    The configuration doesnt me work, I have only small traffic, is this the problem?

Pings & Trackbacks

blogherald.com, chajian.org, jamesmansfield.id.au, masterslate.org, thecredence.com, wordpresscn.com, wordpressplugin.org, wp-plugins.cn

Leave a comment


XHTML: You can use these tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Home | Software | Terms & Conditions | Sitemap | John Godley © 2008
Close
E-mail It