OLD | NEW |
(Empty) | |
| 1 # -*- coding: utf-8 -*- |
| 2 # Copyright 2017 The Chromium Authors. All rights reserved. |
| 3 # Use of this source code is governed by a BSD-style license that can be |
| 4 # found in the LICENSE file. |
| 5 |
| 6 """Implements Gitiles' smart quotes. |
| 7 |
| 8 This extention converts dumb quotes into smart quotes like Gitiles: |
| 9 |
| 10 https://gerrit.googlesource.com/gitiles/+/master/gitiles-servlet/src/main/java/c
om/google/gitiles/doc/SmartQuotedExtension.java |
| 11 """ |
| 12 |
| 13 from markdown.inlinepatterns import Pattern |
| 14 from markdown.extensions import Extension |
| 15 |
| 16 |
| 17 class _GitilesSmartQuotesPattern(Pattern): |
| 18 """Process Gitiles' dumb->smart quotes.""" |
| 19 |
| 20 QUOTES = { |
| 21 '"': (u'“', u'”'), |
| 22 "'": (u'‘', u'’'), |
| 23 } |
| 24 |
| 25 def handleMatch(self, m): |
| 26 lq, rq = self.QUOTES[m.group(2)] |
| 27 return u'%s%s%s' % (lq, m.group(3), rq) |
| 28 |
| 29 |
| 30 class _GitilesSmartQuotesExtension(Extension): |
| 31 """Add Gitiles' smart quotes to Markdown.""" |
| 32 def extendMarkdown(self, md, md_globals): |
| 33 md.inlinePatterns.add('gitilessmartquotes', |
| 34 _GitilesSmartQuotesPattern(r"""(['"])([^\2]+)\2"""), |
| 35 '<emphasis') |
| 36 |
| 37 |
| 38 def makeExtension(*args, **kwargs): |
| 39 return _GitilesSmartQuotesExtension(*args, **kwargs) |
OLD | NEW |