summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'SwifTools/Linkify.cpp')
-rw-r--r--SwifTools/Linkify.cpp17
1 files changed, 17 insertions, 0 deletions
diff --git a/SwifTools/Linkify.cpp b/SwifTools/Linkify.cpp
new file mode 100644
index 0000000..8654307
--- /dev/null
+++ b/SwifTools/Linkify.cpp
@@ -0,0 +1,17 @@
+#include "SwifTools/Linkify.h"
+
+#include <boost/regex.hpp>
+
+namespace Swift {
+
+static const boost::regex linkifyRegexp("(https?://([-\\w\\.]+)+(:\\d+)?(/([%-\\w/_\\.]*(\\?\\S+)?)?)?)");
+
+String Linkify::linkify(const String& input) {
+ return String(boost::regex_replace(
+ input.getUTF8String(),
+ linkifyRegexp,
+ "<a href=\"\\1\">\\1</a>",
+ boost::match_default|boost::format_all));
+}
+
+}