11.08., 9:00 - 11:00: Due to updates GitLab will be unavailable for some minutes between 09:00 and 11:00.

Commit e7320df0 authored by di68kap's avatar di68kap

Punkte nach Verweisen richtig gesetzt

Leerverweise {=> p.36,1|-} und Rückwärtsverweise {=> p.36,1|domus/} funktionieren jetzt.
parent 94159bf9
......@@ -31,7 +31,7 @@ SCHREIBWEISE
* CONR. MUR. summ.; p.138,19 "simplex #sacerdo.|s."
* CHART. Xant.; 251 p. 163,35 "qui #sacerdo.|s ... ad omnia et singula teneantur, ad que #sacerdot.|es, qui dicuntur elemosinarii, sunt astricti."
* CHART. Austr. sup. II; 508 p. 468,27 "que {(memoria)} habetur pro nostris confratribus #sacerdoti.|bus regularibus."
{v. et {=> sacerdos_6}{=> forensis p. 379,49.|-}{=> hebdomadarius 961,1.|-}{=> sacerdotalis/sacerdos_7}{=> conducticius vol. II. p. 1275,5|-}.}
{v. et {=> sacerdos_6}{=> forensis p. 379,49.|-}{=> hebdomadarius 961,1.|-}{=> sacerdotalis/sacerdos_7}{=> vol. II. p. 1275,5|conducticius/}.}
UUU_BEDEUTUNG proverb.:
* WALAHFR. Wett.; 361 "plebis erit similis stultae peccando #sacerdo.|s {(spectat ad Vulg. Is. 24,2)}."
UUU_BEDEUTUNG in formula modestiae:
......
......@@ -567,7 +567,11 @@ class MLWCompiler(TreeProcessor):
if not pfad.startswith('/'):
# pfad = '../' + pfad
pfad = ''
urlstr = protokoll + pfad + artikel_name + '.xml#' + ziel
urlstr = protokoll + pfad + artikel_name
if ziel:
urlstr += '.xml#' + ziel
else:
urlstr += '.xml'
else:
artikel_name = (as_list(url['pfad']) + [''])[0].content.strip('/')
urlstr = url.content
......@@ -582,9 +586,14 @@ class MLWCompiler(TreeProcessor):
else:
Z = url['ziel']
ziel = Z.content
artikel_name = self.artikel_name
Z.result = "#" + ziel
urlstr = ASCII(url.content)
if ziel in ('-', ''):
artikel_name = ''
url.result = ''
urlstr = '-'
else:
artikel_name = self.artikel_name
Z.result = "#" + ziel
urlstr = ASCII(url.content)
except KeyError:
url = EMPTY_NODE
urlstr = VERWEISZIEL_FEHLT
......@@ -603,7 +612,7 @@ class MLWCompiler(TreeProcessor):
link.attr['href'] = urlstr.replace('&', '%38')
if alias_attr:
link.attr['alias'] = alias_attr
if 'protokoll' not in url:
if 'protokoll' not in url and 'ziel' in url:
link.attr['globaleReferenz'] = absolutes_verweis_ziel(artikel_name, ziel)
link.with_pos(node.pos)
# if urlstr == VERWEISZIEL_FEHLT:
......@@ -1534,7 +1543,8 @@ class AusgabeTransformation(TreeProcessor):
return (is_wsp([node]) or
(has_class(node, 'versteckt')) or
(all(unsichtbar(child) for child in node.children)
if node.children else not node.content.strip()))
if node.children
else (node.tag_name != 'a' and not node.content.strip())))
if isinstance(node_or_context, Node):
return unsichtbar(cast(Node, node_or_context))
else:
......@@ -1622,9 +1632,10 @@ class AusgabeTransformation(TreeProcessor):
+ teilbaum.result[i + 1:]
return teilbaum
except ValueError:
# etwas schlampig :-(
return hänge_an(teilbaum, was)
elif element.tag_name in OMITTED_TAGS or element.tag_name == 'a':
element.result = element.children + (Node('TEXT', was, True),)
return teilbaum
# return hänge_an(teilbaum, was)
elif element.tag_name in OMITTED_TAGS or element.tag_name == 'a':
parent = teilbaum
while parent.children and element not in parent.children:
parent = parent.children[-1]
......
......@@ -27,3 +27,6 @@ M4: """{=> sacerdos_4; sacerdos_5} * {adde} TRAD. Frising.; 29 p. 57,19."""
[match:Variante]
M5: """-rto(s): {=> sacerdos_3}"""
[match:EinzelVerweis]
M1: """{=> p. 379,49.| - }"""
......@@ -211,6 +211,17 @@ class TestMLWCompiler:
assert quellen_angabe.tag_name == 'Quellenangabe'
assert quellen_angabe.attr['autor'] == "Nonalbert. M."
def test_Rueckwaertsverweis(self):
st = parse_sxpr('(Verweise (Verweis (alias (TEXT "p. ") (TEXT "379,49.")) (L " ") (URL (pfad "forensis/"))))')
# st = parse_sxpr('(Verweise (Verweis (alias (TEXT "p. ") (TEXT "379,49.")) (L " ") (URL (pfad "forensis/") (ziel "x"))))')
rn = self.mlw_compiler(RootNode(st).with_pos(0))
assert rn.as_sxpr() == '(Verweise (a `(href "forensis.xml") "p. 379,49."))'
def test_Verweis_ohne_Ziel(self):
st = parse_sxpr('(Verweise (Verweis (alias (TEXT "p. ") (TEXT "379,49.")) (L " ") (URL (ziel "-"))))')
rn = self.mlw_compiler(RootNode(st).with_pos(0))
assert rn.as_sxpr() == '(Verweise (a `(href "-") "p. 379,49."))'
class TestAusgabeTransformation:
def setup(self):
......@@ -304,7 +315,10 @@ class TestAusgabeTransformation:
</Variante>""")
tr = AusgabeTransformation()
rn = tr(RootNode(variante))
print(rn.as_sxpr())
print(flatten_sxpr(rn.as_sxpr()))
assert flatten_sxpr(rn.as_sxpr()) == '(Variante (Beschreibung "-rto(s): ") ' \
'(L " ") (Beleg (Verweise (a `(href "#sacerdos_3") `(alias "⇒") ' \
'`(globaleReferenz "sacerdos.sacerdos-3")) (TEXT "."))))'
def test_on_LemmaVarianten(self):
node = RootNode(parse_sxpr('(LemmaVarianten (LemmaVariante (TEXT "fasc-")) '
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment