Remove code line numbers in RSS
This commit is contained in:
parent
eb4c4330f7
commit
fc7b14192c
4 changed files with 20 additions and 7 deletions
|
@ -15,7 +15,8 @@ from django.utils import timezone
|
||||||
|
|
||||||
from articles.utils import (
|
from articles.utils import (
|
||||||
build_full_absolute_url,
|
build_full_absolute_url,
|
||||||
format_article_content,
|
format_article_content_for_html,
|
||||||
|
format_article_content_for_rss,
|
||||||
get_html_to_text_converter,
|
get_html_to_text_converter,
|
||||||
truncate_words_after_char_count,
|
truncate_words_after_char_count,
|
||||||
)
|
)
|
||||||
|
@ -94,7 +95,11 @@ class Article(models.Model):
|
||||||
|
|
||||||
@cached_property
|
@cached_property
|
||||||
def get_formatted_content(self):
|
def get_formatted_content(self):
|
||||||
return format_article_content(self.content)
|
return format_article_content_for_html(self.content)
|
||||||
|
|
||||||
|
@cached_property
|
||||||
|
def get_formatted_content_for_rss(self):
|
||||||
|
return format_article_content_for_rss(self.content)
|
||||||
|
|
||||||
def publish(self):
|
def publish(self):
|
||||||
if not self.published_at:
|
if not self.published_at:
|
||||||
|
|
|
@ -3,7 +3,7 @@ from django.test import Client
|
||||||
from django.urls import reverse
|
from django.urls import reverse
|
||||||
|
|
||||||
from articles.models import Article
|
from articles.models import Article
|
||||||
from articles.utils import format_article_content
|
from articles.utils import format_article_content_for_html
|
||||||
|
|
||||||
|
|
||||||
@pytest.mark.django_db
|
@pytest.mark.django_db
|
||||||
|
@ -42,7 +42,7 @@ def test_render_article_change_content(published_article: Article, client: Clien
|
||||||
api_res = post_article(client, published_article, preview_content)
|
api_res = post_article(client, published_article, preview_content)
|
||||||
assert api_res.status_code == 200
|
assert api_res.status_code == 200
|
||||||
api_content = api_res.content.decode("utf-8") # type: str
|
api_content = api_res.content.decode("utf-8") # type: str
|
||||||
html_preview_content = format_article_content(preview_content)
|
html_preview_content = format_article_content_for_html(preview_content)
|
||||||
assert html_preview_content in api_content
|
assert html_preview_content in api_content
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -15,12 +15,20 @@ def build_full_absolute_url(request, url):
|
||||||
return (settings.BLOG["base_url"] + url)[::-1].replace("//", "/", 1)[::-1]
|
return (settings.BLOG["base_url"] + url)[::-1].replace("//", "/", 1)[::-1]
|
||||||
|
|
||||||
|
|
||||||
def format_article_content(content):
|
def format_article_content_for_rss(content):
|
||||||
|
return _format_article_content(content, linenums=False)
|
||||||
|
|
||||||
|
|
||||||
|
def format_article_content_for_html(content):
|
||||||
|
return _format_article_content(content, linenums=True)
|
||||||
|
|
||||||
|
|
||||||
|
def _format_article_content(content, linenums: bool):
|
||||||
md = markdown.Markdown(
|
md = markdown.Markdown(
|
||||||
extensions=[
|
extensions=[
|
||||||
"extra",
|
"extra",
|
||||||
"admonition",
|
"admonition",
|
||||||
CodeHiliteExtension(linenums=True, guess_lang=False),
|
CodeHiliteExtension(linenums=linenums, guess_lang=False),
|
||||||
LazyLoadingImageExtension(),
|
LazyLoadingImageExtension(),
|
||||||
]
|
]
|
||||||
)
|
)
|
||||||
|
|
|
@ -19,7 +19,7 @@ class CompleteFeed(Feed):
|
||||||
return self.get_queryset(obj)[: self.FEED_LIMIT]
|
return self.get_queryset(obj)[: self.FEED_LIMIT]
|
||||||
|
|
||||||
def item_description(self, item: Article):
|
def item_description(self, item: Article):
|
||||||
return item.get_formatted_content
|
return item.get_formatted_content_for_rss
|
||||||
|
|
||||||
def item_pubdate(self, item: Article):
|
def item_pubdate(self, item: Article):
|
||||||
return item.published_at
|
return item.published_at
|
||||||
|
|
Reference in a new issue