diff --git a/test_site/content/tests/rest_error.rst b/test_site/content/tests/rest_error.rst new file mode 100644 index 0000000..239c184 --- /dev/null +++ b/test_site/content/tests/rest_error.rst @@ -0,0 +1,17 @@ +title: reStructuredText Test Page with Deliberate Error +category: tests +tags: [rest, sample] +--- + +reStructuredText Page with Deliberate Error +=========================================== + +For issue #144: reStructuredText rendering errors don't show +filename, just "string" + +The following will trigger a rst rendering error: + - Should be an extra newline between the + - first bullet point and the preceeding paragraph +This is line 15 but wok will report line 11 due to four lines of +metadata above. + diff --git a/wok/page.py b/wok/page.py index 27e84f5..875804c 100644 --- a/wok/page.py +++ b/wok/page.py @@ -103,14 +103,20 @@ def from_file(cls, path, options, engine, renderer=renderers.Plain): elif len(splits) == 2: header = splits[0] page.meta = yaml.load(header) - page.original = splits[1] + # prepend X newlines to original document, where X + # is number of lines of metadata (including "---" + # delimiter). Fix for issue #145: rendering error + # line numbers are incorrect. + newlines = '\n' * (2+header.count('\n')) + page.original = newlines + splits[1] page.original_preview = page.meta.get('preview', '') elif len(splits) >= 3: header = splits[0] page.meta = {} - page.original = '\n'.join(splits[1:]) - page.original_preview = splits[1] + newlines = '\n' * (2+header.count('\n')) + page.original = newlines + '\n'.join(splits[1:]) + page.original_preview = newlines + splits[1] page.meta.update(yaml.load(header)) logging.debug('Got preview')