support gitiles auto-linking
The gitiles renderer doesn't require URLs to be bracketed with <...>.
Add an extension to support that.
R=dpranke@chromium.org
BUG=
Review-Url: https://codereview.chromium.org/2743553002
Cr-Original-Commit-Position: refs/heads/master@{#455683}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: fceea8e4ed894e5d353117e1f864406620989eee
diff --git a/gitiles_autolink.py b/gitiles_autolink.py
new file mode 100644
index 0000000..5cfeb21
--- /dev/null
+++ b/gitiles_autolink.py
@@ -0,0 +1,28 @@
+# Copyright 2017 The Chromium Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+"""Implements Gitiles' simpler auto linking.
+
+This extention auto links basic URLs that aren't bracketed by <...>.
+
+https://gerrit.googlesource.com/gitiles/+/master/gitiles-servlet/src/main/java/com/google/gitiles/Linkifier.java
+"""
+
+from markdown.inlinepatterns import (AutolinkPattern, Pattern)
+from markdown.extensions import Extension
+
+
+AUTOLINK_RE = r'([Hh][Tt][Tt][Pp][Ss]?://[^>]*)'
+
+
+class _GitilesSmartQuotesExtension(Extension):
+ """Add Gitiles' simpler linkifier to Markdown."""
+ def extendMarkdown(self, md, md_globals):
+ md.inlinePatterns.add('gitilesautolink',
+ AutolinkPattern(AUTOLINK_RE, md),
+ '<autolink')
+
+
+def makeExtension(*args, **kwargs):
+ return _GitilesSmartQuotesExtension(*args, **kwargs)