0
Files
src/tools/md_browser/gitiles_smart_quotes.py
Peter Kasting 3f58d92bdc Update md_browser to work with python-markdown v3.
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}
2022-12-16 21:07:11 +00:00

42 lines
1.2 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# -*- 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)