Skip to content

Commit 4dba452

Browse files
committed
put alternate in rels and rel-urls
per http://microformats.org/wiki/microformats2-parsing-issues#drop_alternate s_collection_and_include_them_in_rels
1 parent fffb2fa commit 4dba452

File tree

Image for: File tree

2 files changed

Image for: 2 files changed
+21
-17
lines changed

2 files changed

Image for: 2 files changed
+21
-17
lines changed

‎mf2py/parser.py

Lines changed: 15 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -275,22 +275,21 @@ def parse_rels(el):
275275
url = urljoin(self.__url__, el.get('href', ''))
276276
# there does not exist alternate in rel attributes
277277
# then parse rels as local
278-
if "alternate" not in rel_attrs:
279-
value_dict = self.__parsed__["rel-urls"].get(url, {})
280-
value_dict["text"] = el.get_text().strip()
281-
url_rels = value_dict.get("rels",[])
282-
value_dict["rels"] = url_rels
283-
for knownattr in ("media","hreflang","type","title"):
284-
x = get_attr(el, knownattr)
285-
if x is not None:
286-
value_dict[knownattr] = x
287-
self.__parsed__["rel-urls"][url] = value_dict
288-
for rel_value in rel_attrs:
289-
value_list = self.__parsed__["rels"].get(rel_value, [])
290-
value_list.append(url)
291-
url_rels.append(rel_value)
292-
self.__parsed__["rels"][rel_value] = value_list
293-
else:
278+
value_dict = self.__parsed__["rel-urls"].get(url, {})
279+
value_dict["text"] = el.get_text().strip()
280+
url_rels = value_dict.get("rels",[])
281+
value_dict["rels"] = url_rels
282+
for knownattr in ("media","hreflang","type","title"):
283+
x = get_attr(el, knownattr)
284+
if x is not None:
285+
value_dict[knownattr] = x
286+
self.__parsed__["rel-urls"][url] = value_dict
287+
for rel_value in rel_attrs:
288+
value_list = self.__parsed__["rels"].get(rel_value, [])
289+
value_list.append(url)
290+
url_rels.append(rel_value)
291+
self.__parsed__["rels"][rel_value] = value_list
292+
if "alternate" in rel_attrs:
294293
alternate_list = self.__parsed__.get("alternates", [])
295294
alternate_dict = {}
296295
alternate_dict["url"] = url

‎test/test_parser.py

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,8 @@
77
import sys
88
import glob
99
import json
10+
from unittest import TestCase
11+
TestCase.maxDiff = None
1012

1113
if sys.version < '3':
1214
text_type = unicode
@@ -317,12 +319,16 @@ def test_rels():
317319
assert result['rels'] == {
318320
u'in-reply-to': [u'http://example.com/1', u'http://example.com/2'],
319321
u'author': [u'http://example.com/a', u'http://example.com/b'],
322+
u'alternate': [u'http://example.com/fr'],
323+
u'home': [u'http://example.com/fr'],
320324
}
321325
assert result['rel-urls'] == {
322326
u'http://example.com/1': {'text': u"post 1", "rels": [u'in-reply-to']},
323327
u'http://example.com/2': {'text': u"post 2", "rels": [u'in-reply-to']},
324328
u'http://example.com/a': {'text': u"author a", "rels": [u'author']},
325329
u'http://example.com/b': {'text': u"author b", "rels": [u'author']},
330+
u'http://example.com/fr': {'text': u'French mobile homepage',
331+
'media': u'handheld', "rels":[u'alternate',u'home'], u'hreflang': u'fr'}
326332
}
327333

328334

@@ -418,7 +424,6 @@ def test_mf2tests():
418424
p = json.loads(Parser(doc=f).to_json())
419425
with open(jsonfile) as g:
420426
s = json.load(g)
421-
p.pop('rel-urls',None)
422427
yield check_mf2, htmlfile, p,s
423428

424429
def check_mf2(htmlfile, p,s):

0 commit comments

Image for: 0 commit comments
Comments
 (0)