Tidy Up Plugin
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/pluginson 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:
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:
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 formatxhtml.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:
- Change to the
/wp-content/plugins/tidy-updirectory - Run
php tidy_console.php source input [output] >report.html
Where source is:
- posts
- comments
And inputis:
wordpressxhtml
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.






Comments (page 2 of 4)
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: Failedline 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
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.
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
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.
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.
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
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 :/
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?
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
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.
Leave a comment