diff --git a/data/autolink.st b/data/autolink.st
new file mode 100644
index 000000000..ab1e80f92
--- /dev/null
+++ b/data/autolink.st
@@ -0,0 +1,12 @@
+
+
diff --git a/data/static/js/autolink.js b/data/static/js/autolink.js
new file mode 100644
index 000000000..986fda157
--- /dev/null
+++ b/data/static/js/autolink.js
@@ -0,0 +1,37 @@
+// this file comes from: https://raw.githubusercontent.com/bryanwoods/autolink-js/master/autolink.js [MIT license]
+
+// Generated by CoffeeScript 1.10.0
+(function() {
+ var autoLink,
+ slice = [].slice;
+
+ autoLink = function() {
+ var callback, k, linkAttributes, option, options, pattern, v;
+ options = 1 <= arguments.length ? slice.call(arguments, 0) : [];
+ pattern = /(^|[\s\n]|<[A-Za-z]*\/?>)((?:https?|ftp):\/\/[\-A-Z0-9+\u0026\u2019@#\/%?=()~_|!:,.;]*[\-A-Z0-9+\u0026@#\/%=~()_|])/gi;
+ if (!(options.length > 0)) {
+ return this.replace(pattern, "$1$2");
+ }
+ option = options[0];
+ callback = option["callback"];
+ linkAttributes = ((function() {
+ var results;
+ results = [];
+ for (k in option) {
+ v = option[k];
+ if (k !== 'callback') {
+ results.push(" " + k + "='" + v + "'");
+ }
+ }
+ return results;
+ })()).join('');
+ return this.replace(pattern, function(match, space, url) {
+ var link;
+ link = (typeof callback === "function" ? callback(url) : void 0) || ("" + url + "");
+ return "" + space + link;
+ });
+ };
+
+ String.prototype['autoLink'] = autoLink;
+
+}).call(this);
diff --git a/data/templates/autolink.st b/data/templates/autolink.st
new file mode 100644
index 000000000..a77954dd1
--- /dev/null
+++ b/data/templates/autolink.st
@@ -0,0 +1,12 @@
+
+
diff --git a/data/templates/page.st b/data/templates/page.st
index 3bb382ac9..5cd97eafb 100644
--- a/data/templates/page.st
+++ b/data/templates/page.st
@@ -43,5 +43,6 @@
$javascripts$
$expire()$
$getuser()$
+ $autolink()$