- 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>
41 lines
1.1 KiB
Python
41 lines
1.1 KiB
Python
# `NL2BR` Extension
|
|
# ===============
|
|
|
|
# A Python-Markdown extension to treat newlines as hard breaks; like
|
|
# GitHub-flavored Markdown does.
|
|
|
|
# See https://Python-Markdown.github.io/extensions/nl2br
|
|
# for documentation.
|
|
|
|
# Original code Copyright 2011 [Brian Neal](https://deathofagremmie.com/)
|
|
|
|
# All changes Copyright 2011-2014 The Python Markdown Project
|
|
|
|
# License: [BSD](https://opensource.org/licenses/bsd-license.php)
|
|
|
|
"""
|
|
A Python-Markdown extension to treat newlines as hard breaks.
|
|
Similar to GitHub-flavored Markdown's behavior.
|
|
|
|
See the [documentation](https://Python-Markdown.github.io/extensions/nl2br)
|
|
for details.
|
|
"""
|
|
|
|
from __future__ import annotations
|
|
|
|
from . import Extension
|
|
from ..inlinepatterns import SubstituteTagInlineProcessor
|
|
|
|
BR_RE = r'\n'
|
|
|
|
|
|
class Nl2BrExtension(Extension):
|
|
|
|
def extendMarkdown(self, md):
|
|
""" Add a `SubstituteTagInlineProcessor` to Markdown. """
|
|
br_tag = SubstituteTagInlineProcessor(BR_RE, 'br')
|
|
md.inlinePatterns.register(br_tag, 'nl', 5)
|
|
|
|
|
|
def makeExtension(**kwargs): # pragma: no cover
|
|
return Nl2BrExtension(**kwargs)
|