External Links in new windows

Freshness Warning
This article is over 16 years old. It's possible that the information you read below isn't current.

Methods for changing how external links work in Movable Type templates have been previously been published by Mark Pilgrim and others, but I recently made some changes to a Movable Type installation that forces all external links to open in a new window and uses CSS to add the external site icon, so I thought I’d share the code here.

Like Mark’s method, you’ll need to use the Macro plugin and insert some macro code into your template or into a template module that is included in your templates.

<MTMacroDefine name="links" ctag="a"><MTIfMatches expr="[MTMacroAttr name='href']" pattern="m|^http:|">    <MTMacroAttr name="target" value="_blank">    <MTMacroAttr name="class" value="offsite"></MTIfMatches><MTIfMatches expr="[MTMacroAttr name='href']" pattern="m|^http://.*.yoursite.com|">    <MTMacroAttr name="target" value="_top">    <MTMacroAttr name="class" value=""></MTIfMatches><MTMacroTag rebuild="1"><MTMacroContent></a></MTMacroDefine>

Find the part that says yoursite.com and change it to your site’s URL.

Then add a bit of CSS to your stylesheet to tell browsers what to do with the “offsite” class.

.offsite {    padding-right: 9px;    background: url(aoutside.gif) no-repeat right;     color: darkgreen;}

This class adds some space after anything that uses the offsite class. The space is there to provide room for the image, which is added using the backround property.

You’ll need to create or pick an image to use as your offsite icon. For this example, I’m using one of the micro icons from WebGragpics. You might also find some of the QBullets icons suitable.

Make sure the padding for the offsite class is big enough to hold whatever icon you decide to use.

Then update your templates to activate the macro. Change your entry body and extended entries tags to look like <MTEntryBody apply_macros="1"> and <MTEntryExtended apply_macros="1">

Adam Kalsey
January 10, 2003 1:35 PM

Worse than ignoring it, some browsers really muck it up. IE 6 appears to put the "after content" inside the block instead of after the block. Basically, whatever's in the after content sits on top of what it's supposed to be after.

Trackback from Boon Kwee's Blog
February 2, 2003 8:23 PM

external links in new windows write up

Excerpt: External Links in new windows :: Kalsey Consulting Group I must get down to doing this.

Trackback from kadyellebee
February 3, 2003 9:10 PM

external links

Excerpt: Thanks to eska, I was reminded that I wanted to implement the External Links differentiation on my site. That was

Trackback from Test
February 6, 2003 1:50 AM

testing external links

Excerpt: External Links in new windows :: Kalsey Consulting Group

Trackback from Life in the Zu
March 8, 2003 11:14 AM

Testing External Links Plugin

Excerpt: I wanted to add the External Links icon to my site awhile ago, but I just got around to it today. Thanks to Kristine for leading me to the geeky instructions....

Trackback from As deep as a puddle after a hard rain
April 14, 2003 12:58 PM

Avoiding Duplicate Comments

Excerpt: Avoiding Duplicate Comments You have to be running Movable Type on a SQL database in order for this to work. and another thing... External Links in new windows I get so tired of having to add the target="blank" attribute to the links that point away fr...

Trackback from kadyellebee
April 18, 2003 3:18 PM

i heart css

Excerpt: I've been using the External Links to differentiate between offsite links, but I'd had at least one person say

Trackback from Zlinks
June 17, 2003 8:05 PM

External Links

Excerpt: External Links in new windows :: Kalsey Consulting Group...

Trackback from unblogged updates
August 30, 2003 11:23 AM


Excerpt: Arrrgghh! lol I have no updates. I'm that big of a loser. I've been mucking with a whole bunch of stuff for Movable Type. Especially stuff like Opening External Links in new windows [1 & 2]. Unfortunately, no matter what...

September 7, 2003 2:07 AM

Thanks adam! This is a good solution. Just a tip to all reading this you need the regex plugin and the macro one by the look of it. regex : http://www.bradchoate.com/past/mtregex.php#000884 Looking for an icon? Send me a ping and you can use this one: http://blog.iloaf.com/archives/000107.html

Trackback from Reflective Reality
September 7, 2003 2:11 AM

External links open new windows

Excerpt: Just installed the regex and macro plugins and a macro from Adam to open links in new windows. Wanna know how? Want an Icon? read on......

Adam Kalsey
September 7, 2003 8:34 PM

All you need is Macros, the regex plugin isn't needed.

October 28, 2003 10:08 PM

Hello, I just installed MTMacro. I'm still having a difficult time trying to understand how this plugin works. I have the AXS visitor tracker on in my blog. I want to track "outside" links, and it requires me to prepend "http://mydomainname.com/axs/ax.pl?" before each link in the href attribute. ie. If I wanted to track who clicks a link to nytimes.com, I'd have href="http://mydomainname.com/axs/ax.pl?http://nytimes.com" target=_blank" I want to use this plugin to automatically prepend this to each link outside of my site because handtyping it in is such a pain. But I don't want to it to prepend to any internal links since they're all tracked anyway. And also add the target="_blank" attribute to the external links as well. Any help with be greatly appreciated! Thanks!

November 3, 2003 4:16 PM

Hmmm. So why would a space appear instead of the icon in some links? For example, the link you included to Web Graphics has a blank space where the icon should be. I have a similar situation with a link on my site. At first I thought it was the hyphen in the domain name (because your link and mine both have one), but I tested by removing the hyphen and still had the same problem.

February 11, 2007 10:43 AM

i love oll

These are the last 15 comments. Read all 17 comments here.

Your comments:

Text only, no HTML. URLs will automatically be converted to links. Your email address is required, but it will not be displayed on the site.


Not your company or your SEO link. Comments without a real name will be deleted as spam.

Email: (not displayed)

If you don't feel comfortable giving me your real email address, don't expect me to feel comfortable publishing your comment.

Website (optional):

Follow me on Twitter

Best Of

  • How not to apply for a job Applying for a job isn't that hard, but it does take some minimal effort and common sense.
  • Movie marketing on a budget Mark Cuban's looking for more cost effective ways to market movies.
  • California State Fair The California State Fair lets you buy tickets in advance from their Web site. That's good. But the site is a horror house of usability problems.
  • Customer reference questions. Sample questions to ask customer references when choosing a software vendor.
  • Comment Spam Manifesto Spammers are hereby put on notice. Your comments are not welcome. If the purpose behind your comment is to advertise yourself, your Web site, or a product that you are affiliated with, that comment is spam and will not be tolerated. We will hit you where it hurts by attacking your source of income.
  • More of the best »

Recently Read

Get More

Subscribe | Archives


Assumptions and project planning (Feb 18)
When your assumptions change, it's reasonable that your project plans and needs change as well. But too many managers are afraid to go back and re-work a plan that they've already agreed to.
Feature voting is harmful to your product (Feb 7)
There's a lot of problems with using feature voting to drive your product.
Encouraging 1:1s from other managers in your organization (Jan 4)
If you’re managing other managers, encourage them to hold their own 1:1s. It’s such an important tool for managing and leading that everyone needs to be holding them.
One on One Meetings - a collection of posts about 1:1s (Jan 2)
A collection of all my writing on 1:1s
Are 1:1s confidential? (Jan 2)
Is the discussion that occurs in a 1:1 confidential, even if no agreed in the meeting to keep it so?
Skip-level 1:1s are your hidden superpower (Jan 1)
Holding 1:1s with peers and with people far below you on the reporting chain will open your eyes up to what’s really going on in your business.
Do you need a 1:1 if you’re regularly communicating with your team? (Dec 28)
You’re simply not having deep meaningful conversation about the process of work in hallway conversations or in your chat apps.
What agenda items should a manager bring to a 1:1? (Dec 23)
At least 80% of a 1:1 agenda should be driven by your report, but if you also to use this time to work on things with them, then you’ll have better meetings.

Subscribe to this site's feed.


Adam Kalsey

Mobile: 916.600.2497

Email: adam AT kalsey.com

Twitter, etc: akalsey



©1999-2019 Adam Kalsey.