Skip to content

Commit 90f06fc

Browse files
maxim-belkinfmichonneau
authored andcommitted
lesson-check: exclude aio.md, fix read_references
1 parent abbcce2 commit 90f06fc

File tree

1 file changed

+39
-22
lines changed

1 file changed

+39
-22
lines changed

bin/lesson_check.py

Lines changed: 39 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,9 @@
5555
# Pattern to match reference links (to resolve internally-defined references).
5656
P_INTERNAL_LINK_DEF = re.compile(r'^\[([^\]]+)\]:\s*(.+)')
5757

58+
# Pattern to match {% include ... %} statements
59+
P_INTERNAL_INCLUDE_LINK = re.compile(r'^{% include ([^ ]*) %}$')
60+
5861
# What kinds of blockquotes are allowed?
5962
KNOWN_BLOCKQUOTES = {
6063
'callout',
@@ -208,29 +211,44 @@ def read_references(reporter, ref_path):
208211
{symbolic_name : URL}
209212
"""
210213

214+
if not ref_path:
215+
raise Warning("No filename has been provided.")
216+
211217
result = {}
212218
urls_seen = set()
213-
if ref_path:
214-
with open(ref_path, 'r') as reader:
215-
for (num, line) in enumerate(reader):
216-
line_num = num + 1
217-
m = P_INTERNAL_LINK_DEF.search(line)
218-
require(m,
219-
'{0}:{1} not valid reference:\n{2}'.format(ref_path, line_num, line.rstrip()))
220-
name = m.group(1)
221-
url = m.group(2)
222-
require(name,
223-
'Empty reference at {0}:{1}'.format(ref_path, line_num))
224-
reporter.check(name not in result,
225-
ref_path,
226-
'Duplicate reference {0} at line {1}',
227-
name, line_num)
228-
reporter.check(url not in urls_seen,
229-
ref_path,
230-
'Duplicate definition of URL {0} at line {1}',
231-
url, line_num)
232-
result[name] = url
233-
urls_seen.add(url)
219+
220+
with open(ref_path, 'r') as reader:
221+
for (num, line) in enumerate(reader, 1):
222+
223+
if P_INTERNAL_INCLUDE_LINK.search(line): continue
224+
225+
m = P_INTERNAL_LINK_DEF.search(line)
226+
227+
message = '{}: {} not a valid reference: {}'
228+
require(m, message.format(ref_path, num, line.rstrip()))
229+
230+
name = m.group(1)
231+
url = m.group(2)
232+
233+
message = 'Empty reference at {0}:{1}'
234+
require(name, message.format(ref_path, num))
235+
236+
unique_name = name not in result
237+
unique_url = url not in urls_seen
238+
239+
reporter.check(unique_name,
240+
ref_path,
241+
'Duplicate reference name {0} at line {1}',
242+
name, num)
243+
244+
reporter.check(unique_url,
245+
ref_path,
246+
'Duplicate definition of URL {0} at line {1}',
247+
url, num)
248+
249+
result[name] = url
250+
urls_seen.add(url)
251+
234252
return result
235253

236254

@@ -539,7 +557,6 @@ def __init__(self, args, filename, metadata, metadata_len, text, lines, doc):
539557
(re.compile(r'index\.md'), CheckIndex),
540558
(re.compile(r'reference\.md'), CheckReference),
541559
(re.compile(r'_episodes/.*\.md'), CheckEpisode),
542-
(re.compile(r'aio\.md'), CheckNonJekyll),
543560
(re.compile(r'.*\.md'), CheckGeneric)
544561
]
545562

0 commit comments

Comments
 (0)