Skip to content

Commit

Permalink
use reference serialization in markdown if available
Browse files Browse the repository at this point in the history
  • Loading branch information
xrotwang committed Dec 7, 2023
1 parent f899e24 commit 67dae31
Show file tree
Hide file tree
Showing 2 changed files with 12 additions and 3 deletions.
1 change: 1 addition & 0 deletions setup.cfg
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@ packages = find:
package_dir =
=src
install_requires =
clldutils
pycldf
clld
markdown
Expand Down
14 changes: 11 additions & 3 deletions src/clld_markdown_plugin/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,12 +3,15 @@
import logging

from markdown import Markdown
from markdown import markdown as base_markdown
from pycldf.ext.markdown import CLDFMarkdownLink
from clld.db.meta import DBSession
from clld.db.models import common
from clld.web.util.helpers import rendered_sentence
from clld.web.util.htmllib import HTML, literal
import clldutils

WITH_MARKDOWN = tuple(map(int, clldutils.__version__.split('.')[:2])) >= (3, 21)
log = logging.getLogger(__name__)

__author__ = "Robert Forkel, Florian Matter"
Expand Down Expand Up @@ -127,6 +130,11 @@ def markdown(req, s: str, session=None) -> str:
source_ids = set()

def repl(ml):
def ref(src): # pragma: no cover
if WITH_MARKDOWN:
return base_markdown(src.bibtex().text(markdown=True))
return src.bibtex().text()

if ml.is_cldf_link:
try:
table = ml.table_or_fname
Expand All @@ -142,9 +150,9 @@ def repl(ml):
elif 'cited_only' in ml.parsed_url.query:
model = settings['model_map'][table]["model"]
return HTML.ul(*[
HTML.li(literal(
(session or DBSession).query(model)
.filter(model.id == sid)[0].bibtex().text()))
HTML.li(literal(ref(
(session or DBSession).query(model).filter(model.id == sid)[0]
)))
for sid in sorted(source_ids)])
return link_entity(
req,
Expand Down

0 comments on commit 67dae31

Please sign in to comment.