
Perhaps no one has tried to use this tool in a long time? In any case, it wasn't working for me locally on Windows; this fixes it. Bug: none Change-Id: Iee762a62e7c1e4998c3dcc0fd6ca7d20ede664f5 Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/4114622 Auto-Submit: Peter Kasting <pkasting@chromium.org> Reviewed-by: Dirk Pranke <dpranke@google.com> Commit-Queue: Peter Kasting <pkasting@chromium.org> Cr-Commit-Position: refs/heads/main@{#1084509}
42 lines
1.2 KiB
Python
42 lines
1.2 KiB
Python
# -*- coding: utf-8 -*-
|
||
# Copyright 2017 The Chromium Authors
|
||
# Use of this source code is governed by a BSD-style license that can be
|
||
# found in the LICENSE file.
|
||
|
||
"""Implements Gitiles' smart quotes.
|
||
|
||
This extention converts dumb quotes into smart quotes like Gitiles:
|
||
|
||
https://gerrit.googlesource.com/gitiles/+/master/gitiles-servlet/src/main/java/com/google/gitiles/doc/SmartQuotedExtension.java
|
||
"""
|
||
|
||
from markdown.inlinepatterns import Pattern
|
||
from markdown.extensions import Extension
|
||
|
||
|
||
class _GitilesSmartQuotesPattern(Pattern):
|
||
"""Process Gitiles' dumb->smart quotes."""
|
||
|
||
QUOTES = {
|
||
'"': (u'“', u'”'),
|
||
"'": (u'‘', u'’'),
|
||
}
|
||
|
||
def handleMatch(self, m):
|
||
lq, rq = self.QUOTES[m.group(2)]
|
||
return u'%s%s%s' % (lq, m.group(3), rq)
|
||
|
||
|
||
class _GitilesSmartQuotesExtension(Extension):
|
||
"""Add Gitiles' smart quotes to Markdown, with a priority just higher than
|
||
that of the builtin 'em_strong'."""
|
||
|
||
def extendMarkdown(self, md):
|
||
md.inlinePatterns.register(
|
||
_GitilesSmartQuotesPattern(r"""(['"])([^\2]+)\2"""),
|
||
'gitilessmartquotes', 61)
|
||
|
||
|
||
def makeExtension(*args, **kwargs):
|
||
return _GitilesSmartQuotesExtension(*args, **kwargs)
|