# Name: smd_short_url v0.21 # Type: Client side plugin # Canonical short URLs using article ID # Author: Stef Dawson # URL: http://stefdawson.com/ # Recommended load order: 5 # ..................................................................... # This is a plugin for Textpattern - http://textpattern.com/ # To install: textpattern > admin > plugins # Paste the following text into the 'Install plugin' box: # ..................................................................... YToxMTp7czo0OiJuYW1lIjtzOjEzOiJzbWRfc2hvcnRfdXJsIjtzOjY6ImF1dGhvciI7czox MToiU3RlZiBEYXdzb24iO3M6MTA6ImF1dGhvcl91cmkiO3M6MjI6Imh0dHA6Ly9zdGVmZGF3 c29uLmNvbS8iO3M6NzoidmVyc2lvbiI7czo0OiIwLjIxIjtzOjExOiJkZXNjcmlwdGlvbiI7 czozNzoiQ2Fub25pY2FsIHNob3J0IFVSTHMgdXNpbmcgYXJ0aWNsZSBJRCI7czo0OiJjb2Rl IjtzOjEwNDQ6InJlZ2lzdGVyX2NhbGxiYWNrKCdzbWRfc2hvcnRfdXJsJywgJ3R4cF9kaWUn LCA0MDQpOw0KDQpmdW5jdGlvbiBzbWRfc2hvcnRfdXJsKCRldmVudCwgJHN0ZXApIHsNCgkk dXJscGFydHMgPSBwYXJzZV91cmwoaHUpOw0KDQoJJHJlID0gJyNeJy4kdXJscGFydHNbJ3Bh dGgnXS4nKFswLTldLiopIyc7DQoNCgkkaGF2ZV9pZCA9IHByZWdfbWF0Y2goJHJlLCAkX1NF UlZFUlsnUkVRVUVTVF9VUkknXSwgJG0pOw0KDQoJaWYgKCRoYXZlX2lkKSB7DQoJCSRpZCA9 ICRtWzFdOw0KCQkkcGVybWxpbmsgPSBwZXJtbGlua3VybF9pZCgkaWQpOw0KDQoJCWlmICgk cGVybWxpbmspIHsNCgkJCW9iX2VuZF9jbGVhbigpOw0KDQoJCQkvLyBTdHVwaWQsIG92ZXIg dGhlIHRvcCBoZWFkZXIgc2V0dGluZyBmb3IgSUUNCgkJCWhlYWRlcigiU3RhdHVzOiAzMDEi KTsNCgkJCWhlYWRlcigiSFRUUC8xLjAgMzAxIE1vdmVkIFBlcm1hbmVudGx5Iik7DQoJCQlo ZWFkZXIoIkxvY2F0aW9uOiAiLiRwZXJtbGluaywgVFJVRSwgMzAxKTsNCg0KCQkJLy8gSW4g Y2FzZSB0aGUgaGVhZGVyKCkgbWV0aG9kIGZhaWxzLCBmYWxsIGJhY2sgb24gYSBjbGFzc2lj IHJlZGlyZWN0DQoJCQllY2hvICc8aHRtbD48aGVhZD48TUVUQSBIVFRQLUVRVUlWPSJSZWZy ZXNoIiBDT05URU5UPSIwO1VSTD0nLiRwZXJtbGluay4nIj48L2hlYWQ+PGJvZHk+PC9ib2R5 PjwvaHRtbD4nOw0KCQkJZGllKCk7DQoJCX0NCgl9DQp9DQoNCmZ1bmN0aW9uIHNtZF9jYW5v bmljYWwoJGF0dHMsICR0aGluZz0nJykgew0KCWdsb2JhbCAkcHJldGV4dDsNCg0KCWV4dHJh Y3QobEF0dHMoYXJyYXkoDQoJCSd0eXBlJyA9PiAnbGluaycsDQoJKSwgJGF0dHMpKTsNCg0K CWFzc2VydF9hcnRpY2xlKCk7DQoJJGxpbmsgPSBodS4kcHJldGV4dFsnaWQnXTsNCg0KCSRv dXQgPSAnJzsNCglpZiAoJHR5cGU9PSJsaW5rIikgew0KCQkkb3V0ID0gJzxsaW5rIHJldj0i Y2Fub25pY2FsIiBocmVmPSInLiRsaW5rLiciIC8+JzsNCgl9IGVsc2Ugew0KCQkkb3V0ID0g JGxpbms7DQoJfQ0KCXJldHVybiAkb3V0Ow0KfSI7czo0OiJ0eXBlIjtzOjE6IjAiO3M6NToi b3JkZXIiO3M6MToiNSI7czo1OiJmbGFncyI7czoxOiIwIjtzOjQ6ImhlbHAiO3M6Mjg1Nzoi PGRpdiBpZD0ic21kX2hlbHAiPgoKCTxoMT5zbWRfc2hvcnRfdXJsPC9oMT4KCgk8cCBjbGFz cz0icmVxdWlyZWQiPlJlcXVpcmVzIDxzcGFuIGNsYXNzPSJjYXBzIj5UWFA8L3NwYW4+IDQu Mi4wLjwvcD4KCgk8cD5BbGxvdyB2aXNpdG9ycyB0byB1c2Ugc2hvcnQgPHNwYW4gY2xhc3M9 ImNhcHMiPlVSTDwvc3Bhbj5zIGNvbXByaXNpbmcganVzdCBzaXRlLmNvbS9hcnRpY2xlX0lE LCB3aGljaCB3aWxsIHJlZGlyZWN0IHRvIHRoZSByZWFsIGFydGljbGUuPC9wPgoKCTxwPklu c3RhbGwuIEFjdGl2YXRlLiBEb25lLjwvcD4KCgk8aDI+Q2Fub25pY2FsIDxjb2RlPiZsdDts aW5rJmd0OzwvY29kZT4gdGFnPC9oMj4KCgk8cD5JZiB5b3Ugd2lzaCB0byBhZGQgdGhlIGNh bm9uaWNhbCA8Y29kZT4mbHQ7bGluayZndDs8L2NvZGU+IHRhZyB0byB5b3VyIGRvY3VtZW50 IHRoYXQgZGVmaW5lcyB0aGUgYXJ0aWNsZSYjODIxNztzIHNob3J0IDxzcGFuIGNsYXNzPSJj YXBzIj5VUkw8L3NwYW4+IGZvciBzZWFyY2ggZW5naW5lcyB0aGVuIHB1dCA8Y29kZT4mbHQ7 dHhwOnNtZF9jYW5vbmljYWwgLyZndDs8L2NvZGU+IHNvbWV3aGVyZSBpbiB5b3VyIDxjb2Rl PiZsdDtoZWFkJmd0OzwvY29kZT4gc2VjdGlvbi4gUmVtZW1iZXIgaXQgbXVzdCBnbyBpbnNp ZGUgYSA8Y29kZT4mbHQ7dHhwOmlmX2luZGl2aWR1YWxfYXJ0aWNsZSZndDs8L2NvZGU+IGNv bmRpdGlvbmFsIG9yIGl0IHdpbGwgdGhyb3cgYW4gZXJyb3IuPC9wPgoKCTxwPlRoZSB0YWcg dGFrZXMgb25lIG9wdGlvbmFsIGF0dHJpYnV0ZTogPGNvZGU+dHlwZTwvY29kZT4gY2FuIGVp dGhlciBiZSA8Y29kZT5saW5rPC9jb2RlPiAodGhlIGRlZmF1bHQpIHRvIG91dHB1dCB0aGUg ZnVsbCBmb3JtYXR0ZWQgY2Fub25pY2FsIGxpbmsgdGFnLCBvciA8Y29kZT51cmw8L2NvZGU+ IHRvIG91dHB1dCB0aGUgcmF3IDxzcGFuIGNsYXNzPSJjYXBzIj5VUkw8L3NwYW4+IHNvIHlv dSBtYXkgdXNlIGl0IGluIHlvdXIgb3duIG1hbm5lci48L3A+CgoJPHA+VGhhbmtzIHRvIHdl dCBmb3IgYSBsYXJnZSBjaHVuayBvZiB0aGUgY29kZS48L3A+CgoJPGgyIGlkPSJjaGFuZ2Vs b2ciPkNoYW5nZWxvZzwvaDI+CgoJPHVsPgoJCTxsaT4xNiBKdW4gMDkgfCAwLjEgfCBJbml0 aWFsIHJlbGVhc2U8L2xpPgoJCTxsaT4yMyBKdW4gMDkgfCAwLjExIHwgRml4ZWQgY2FsbGJh Y2sgcG9pbnQgdG8gcGxheSBuaWNlbHkgd2l0aCBnYnBfcGVybWFuZW50X2xpbmtzICh0aGFu a3MgcGllbWFuL2dyYWVtZSk8L2xpPgoJCTxsaT4xOSBKdWwgMDkgfCAwLjIgfCBSZXF1aXJl cyA8c3BhbiBjbGFzcz0iY2FwcyI+VFhQPC9zcGFuPiA0LjIuMCA7IGNoYW5nZWQgY2FsbGJh Y2sgdG8gdHhwX2RpZSBhbmQgc3RhdHVzIGNvZGUgdG8gMzAxICh0aGFua3Mgd2V0KTwvbGk+ CgkJPGxpPjE3IFNlcCAwOSB8IDAuMjEgfCBLbHVkZ2UgdG8gZm9yY2UgPHNwYW4gY2xhc3M9 ImNhcHMiPkhUTUw8L3NwYW4+IHJlZGlyZWN0IGlmIDxjb2RlPmhlYWRlcigpPC9jb2RlPiBm YWlscyBmb3Igd2hhdGV2ZXIgcmVhc29uICh0aGFua3MgdGhlIGJsdWUgZHJhZ29uKTwvbGk+ Cgk8L3VsPgoKPC9kaXY+CjwhLS0gKioqIEJFR0lOIFBMVUdJTiBDU1MgKioqIC0tPgo8c3R5 bGUgdHlwZT0idGV4dC9jc3MiPgojc21kX2hlbHAgeyBsaW5lLWhlaWdodDoxLjUgO30KI3Nt ZF9oZWxwIGNvZGUgeyBmb250LXdlaWdodDpib2xkOyBmb250OiAxMDUlLzEzMCUgIkNvdXJp ZXIgTmV3IiwgY291cmllciwgbW9ub3NwYWNlOyBiYWNrZ3JvdW5kLWNvbG9yOiAjRkZGRkND O30KI3NtZF9oZWxwIGNvZGUuYmxvY2sgeyBmb250LXdlaWdodDpub3JtYWw7IGJvcmRlcjox cHggZG90dGVkICM5OTk7IGJhY2tncm91bmQtY29sb3I6ICNmMGU2OGM7IGRpc3BsYXk6Ymxv Y2s7IG1hcmdpbjoxMHB4IDEwcHggMjBweDsgcGFkZGluZzoxMHB4OyB9CiNzbWRfaGVscCBo MSB7IGNvbG9yOiAjMzY5OyBmb250OiAyMHB4IEdlb3JnaWEsIHNhbnMtc2VyaWY7IG1hcmdp bjogMDsgdGV4dC1hbGlnbjogY2VudGVyOyB9CiNzbWRfaGVscCBoMiB7IGJvcmRlci1ib3R0 b206IDFweCBzb2xpZCBibGFjazsgcGFkZGluZzoxMHB4IDAgMDsgY29sb3I6ICMzNjk7IGZv bnQ6IDE3cHggR2VvcmdpYSwgc2Fucy1zZXJpZjsgfQojc21kX2hlbHAgaDMgeyBjb2xvcjog IzI3NTY4NTsgZm9udDogYm9sZCAxMnB4IEFyaWFsLCBzYW5zLXNlcmlmOyBsZXR0ZXItc3Bh Y2luZzogMXB4OyBtYXJnaW46IDEwcHggMCAwO3RleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7 IHRleHQtZGVjb3JhdGlvbjp1bmRlcmxpbmU7fQojc21kX2hlbHAgaDQgeyBmb250OiBib2xk IDExcHggQXJpYWwsIHNhbnMtc2VyaWY7IGxldHRlci1zcGFjaW5nOiAxcHg7IG1hcmdpbjog MTBweCAwIDAgO3RleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7IH0KI3NtZF9oZWxwIC5hdG5t IHsgZm9udC13ZWlnaHQ6Ym9sZDsgY29sb3I6IzMzZDsgfQojc21kX2hlbHAgLm1hbmQgeyBi YWNrZ3JvdW5kOiNlZWU7IGJvcmRlcjoxcHggZG90dGVkICM5OTk7IH0KI3NtZF9oZWxwIHRh YmxlIHt3aWR0aDo5MCU7IHRleHQtYWxpZ246Y2VudGVyOyBwYWRkaW5nLWJvdHRvbToxZW07 fQojc21kX2hlbHAgdGQsICNzbWRfaGVscCB0aCB7Ym9yZGVyOjFweCBzb2xpZCAjOTk5OyBw YWRkaW5nOi41ZW0gMDt9CiNzbWRfaGVscCB1bCB7IGxpc3Qtc3R5bGUtdHlwZTpzcXVhcmU7 IH0KI3NtZF9oZWxwIC5yZXF1aXJlZCB7Y29sb3I6cmVkO30KI3NtZF9oZWxwIGxpIHsgbWFy Z2luOjVweCAyMHB4IDVweCAzMHB4OyB9CiNzbWRfaGVscCAuYnJlYWsgeyBtYXJnaW4tdG9w OjVweDsgfQo8L3N0eWxlPgo8IS0tICoqKiBFTkQgUExVR0lOIENTUyAqKiogLS0+CiI7czoz OiJtZDUiO3M6MzI6ImIwMzhkODM0MmIyNmNiYzk2YTZmNzE0YzkyM2EzMDgyIjt9