Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 6 additions & 4 deletions bookwyrm/connectors/openlibrary.py
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
"""openlibrary data connector"""

import re
from typing import Any, Optional, Union, Iterator, Iterable
from typing import Any, Optional, Union, Iterator, Iterable, cast

from markdown import markdown
import mistune

from bookwyrm import models
from bookwyrm.book_search import SearchResult
Expand Down Expand Up @@ -249,9 +249,11 @@ def ignore_edition(edition_data: JsonDict) -> bool:
def get_description(description_blob: Union[JsonDict, str]) -> str:
"""descriptions can be a string or a dict"""
if isinstance(description_blob, dict):
description = markdown(description_blob.get("value", ""))
description = cast(
str, mistune.html(description_blob.get("value", ""))
).rstrip()
else:
description = markdown(description_blob)
description = cast(str, mistune.html(description_blob)).rstrip()

if (
description.startswith("<p>")
Expand Down
4 changes: 2 additions & 2 deletions bookwyrm/models/fields.py
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@
from django.utils import timezone
from django.utils.translation import gettext_lazy as _
from django.utils.encoding import filepath_to_uri
from markdown import markdown
import mistune

from bookwyrm import activitypub
from bookwyrm.connectors import get_image
Expand Down Expand Up @@ -605,7 +605,7 @@ def field_from_activity(self, value, allow_external_connections=True, trigger=No
return clean(value)

def field_to_activity(self, value):
return markdown(value) if value else value
return mistune.html(value).rstrip() if value else value


class ArrayField(ActivitypubFieldMixin, DjangoArrayField):
Expand Down
2 changes: 1 addition & 1 deletion bookwyrm/tests/connectors/test_openlibrary_connector.py
Original file line number Diff line number Diff line change
Expand Up @@ -329,7 +329,7 @@ def test_create_edition_markdown_from_data(self):
result = self.connector.create_edition_from_data(work, self.edition_md_data)
self.assertEqual(
result.description,
'<blockquote>\n<p>"She didn\'t choose her garden" opens this chapbook '
"<blockquote>\n<p>&quot;She didn't choose her garden&quot; opens this chapbook "
"exploring Black womanhood, mental and physical health, spirituality, and "
"ancestral roots. It is an investigation of how to locate a self amidst "
"complex racial history and how to forge an authentic way forward. There's "
Expand Down
4 changes: 2 additions & 2 deletions bookwyrm/views/status.py
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@
from django.views import View
from django.views.decorators.http import require_POST

from markdown import markdown
import mistune
from bookwyrm import forms, models
from bookwyrm.models.report import DELETE_ITEM
from bookwyrm.utils import regex, sanitizer
Expand Down Expand Up @@ -344,6 +344,6 @@ def _unwrap(text):
def to_markdown(content):
"""catch links and convert to markdown"""
content = format_links(content)
content = markdown(content)
content = mistune.html(content).rstrip()
# sanitize resulting html
return sanitizer.clean(content)
3 changes: 1 addition & 2 deletions pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ main = [
"gunicorn==23.0.0",
"hiredis==2.3.2",
"libsass==0.23.0",
"Markdown==3.6",
"mistune==3.2.0",
"opentelemetry-api==1.24.0",
"opentelemetry-exporter-otlp-proto-grpc==1.24.0",
"opentelemetry-instrumentation-celery==0.45b0",
Expand Down Expand Up @@ -60,7 +60,6 @@ dev = [
"pytidylib==0.3.2",
"types-bleach==6.1.0.20240331",
"types-dataclasses==0.6.6",
"types-Markdown==3.6.0.20240316",
"types-Pillow==10.2.0.20240331",
"types-python-dateutil==2.9.0.20240316",
"types-requests==2.31.0.20240311",
Expand Down
Loading