Strip <span> tags from HTML in vim

David Nash vim, xhtml 4 Comments

When upgrading a website you might see source code like this: <span style=”font-family: Arial; color: #0000ff; font-size: small;”>Some text goes here</span> You’re using CSS now and all those <span> tags are ruining it. In gvim, do this search and substitute: %s/<span.\{-}>//g Then to get rid of the </span> tags, do this: :%s/<\/span>//g

Dynamic Font/Image Replacement in Silverstripe

David Nash silverstripe, What I'm Working On Today 15 Comments

I’ve recently started creating sites with SilverStripe CMS, and I’m loving it. My client wants nicely rendered non-standard font titles that fade in and out, without using javascript. Here’s how I’m going to accomplish it: In Silverstripe’s mysite/code/Page.php I overload the onBeforeWrite() call in my Page class. This intercepts the data before it is written to the database. I can get the title of the updated page from $this->Title I will then use PHP’s GD (graphics) library to create a PNG with a transparent background. I’ll use imagettftext() to load a font from a TTF file and write it to …

1px high DIV in IE6

David Nash css, xhtml 2 Comments

Very occasionally I’ll use an empty DIV for decoration, and in CSS use height: 1px. In IE6 to make this work you need to put comments inside the DIV, otherwise it’ll display at the height of the font you’re using. <div class=”line”></div> becomes <div class=”line”><!– –></div> You don’t need any line-height fixes in the CSS. Yes, it’ll add to your markup a bit, but you should probably be explaining why you’re using meaningless, empty DIVs anyway.

Minimal sIFR3 demo

David Nash css Leave a Comment

I like sIFR, but it really bugs me that I have to read through an entire tutorial to get something really basic up and running. This is a simple sIFR3 demo, using the basic cochin.swf file and an almost minimal amount of code to see it in action. Download my minimal sIFR3 demo here. I believe you’ll need to upload it to a webserver to run it, you won’t just be able to open the index.html file to see it working.

Batch reduce resolution of images in Ubuntu Linux

David Nash bash, linux 4 Comments

Open a terminal window or shell (who needs a GUI!?) sudo apt-get install imagemagick cd image_folder mkdir resized for f in *jpg do convert -resize 30% $f resized/$f done Easier than Photoshop, I reckon! I needed this today for some photos I was uploading. Photos from recent cameras are huge and Australian bandwidth doesn’t cut it. So this really helps. Obviously you only need to do the first line once. I found this in the Ubuntu forums but it took me a while to find the right combination of keywords in Google. View the original thread. I needed to change …

Fixing Windows File Permissions in Linux

David Nash bash Leave a Comment

Find all files (not directories) and remove the eXecutable bit. I don’t know what the characters on the end do: find . -type f -exec chmod a-x {} \; Make all directories executable to user, read/writable to groups others (good for when the web server is in ‘others’): find . -type d -exec chmod 755 {} \; Make all files read/write/executable for user, readable for the group and others: find . -type f -exec chmod 644 {} \;

Unix Time in MySQL and bash

David Nash bash, mysql Leave a Comment

A quick one today. I was working on a mysql database that used unix timestamp produced by PHP’s time() function. I needed to be able to quickly convert this time to a human-readable format. In bash, date -d @timestamp is a quick way to convert. In a terminal shell eg: # date -d @1224992980 Sun Oct 26 14:49:40 EST 2008 In a MySQL client, you could also use select date(from_unixtime(column_name)) from table_name; Or if you want a little more flexibility in the output, for example outputting 27/02/09, you could do: select date_format(from_unixtime(column_name), ‘%d/%m/%y’) from table_name; This post is one of …

Assorted Handy vim Commands, Part 1

David Nash vim, xhtml 1 Comment

To reverse the order of lines, eg 1-5 : 1,5 g/^/m0 For example, one two three four five becomes five four three two one To remove blank lines : %g/^$/d Delete all lines that don’t contain “string” : %v/string/d

Turn all links in an HTML file into ‘#’

David Nash vim, xhtml Leave a Comment

Replace all in the current file instances of: <a href=”link_to_somewhere.html”>link</a> with: <a href=”#”>link</a> :%s/\(a href=”\)\(\S\+\)\(“\)/\1#\3/g This is great if you’ve got a big HTML file that you want to demo to a client where you don’t want the links to do anything when clicked. You could also use javascript to do the same thing – just “return false” for all <a> elements on the page.