- Create Economist SubmissionTracking package correctly: * mainArticle = full blog post content * coverLetter = 216-word SIR— letter * Links to blog post via blogPostId - Archive 'Letter to The Economist' from blog posts (it's the cover letter) - Fix date display on article cards (use published_at) - Target publication already displaying via blue badge Database changes: - Make blogPostId optional in SubmissionTracking model - Economist package ID: 68fa85ae49d4900e7f2ecd83 - Le Monde package ID: 68fa2abd2e6acd5691932150 Next: Enhanced modal with tabs, validation, export 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
52 lines
1.7 KiB
Python
52 lines
1.7 KiB
Python
# Legacy Em Extension for Python-Markdown
|
|
# =======================================
|
|
|
|
# This extension provides legacy behavior for _connected_words_.
|
|
|
|
# Copyright 2015-2018 The Python Markdown Project
|
|
|
|
# License: [BSD](https://opensource.org/licenses/bsd-license.php)
|
|
|
|
"""
|
|
This extension provides legacy behavior for _connected_words_.
|
|
"""
|
|
|
|
from __future__ import annotations
|
|
|
|
from . import Extension
|
|
from ..inlinepatterns import UnderscoreProcessor, EmStrongItem, EM_STRONG2_RE, STRONG_EM2_RE
|
|
import re
|
|
|
|
# _emphasis_
|
|
EMPHASIS_RE = r'(_)([^_]+)\1'
|
|
|
|
# __strong__
|
|
STRONG_RE = r'(_{2})(.+?)\1'
|
|
|
|
# __strong_em___
|
|
STRONG_EM_RE = r'(_)\1(?!\1)([^_]+?)\1(?!\1)(.+?)\1{3}'
|
|
|
|
|
|
class LegacyUnderscoreProcessor(UnderscoreProcessor):
|
|
"""Emphasis processor for handling strong and em matches inside underscores."""
|
|
|
|
PATTERNS = [
|
|
EmStrongItem(re.compile(EM_STRONG2_RE, re.DOTALL | re.UNICODE), 'double', 'strong,em'),
|
|
EmStrongItem(re.compile(STRONG_EM2_RE, re.DOTALL | re.UNICODE), 'double', 'em,strong'),
|
|
EmStrongItem(re.compile(STRONG_EM_RE, re.DOTALL | re.UNICODE), 'double2', 'strong,em'),
|
|
EmStrongItem(re.compile(STRONG_RE, re.DOTALL | re.UNICODE), 'single', 'strong'),
|
|
EmStrongItem(re.compile(EMPHASIS_RE, re.DOTALL | re.UNICODE), 'single', 'em')
|
|
]
|
|
|
|
|
|
class LegacyEmExtension(Extension):
|
|
""" Add legacy_em extension to Markdown class."""
|
|
|
|
def extendMarkdown(self, md):
|
|
""" Modify inline patterns. """
|
|
md.inlinePatterns.register(LegacyUnderscoreProcessor(r'_'), 'em_strong2', 50)
|
|
|
|
|
|
def makeExtension(**kwargs): # pragma: no cover
|
|
""" Return an instance of the `LegacyEmExtension` """
|
|
return LegacyEmExtension(**kwargs)
|