Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 9 additions & 1 deletion validator/__init__.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
import sdiff

from . import parsers, checks, reports, fs


Expand Down Expand Up @@ -56,7 +58,13 @@ def __init__(self, contents, content_type, parser, reader):
self.checks = []

def md(self):
self.checks.append(checks.markdown(self.content_type))
self.checks.append(checks.markdown(self.content_type,
md_parser_cls=sdiff.MdParser))
return self

def zendesk_helpcenter_md(self):
self.checks.append(checks.markdown(self.content_type,
md_parser_cls=sdiff.ZendeskHelpMdParser))
return self

def url(self, **kwargs):
Expand Down
8 changes: 6 additions & 2 deletions validator/checks/__init__.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,7 @@
from typing import Type

from sdiff import MdParser

from .md import MarkdownComparator
from .url import UrlValidator, UrlOccurenciesValidator
from .java import JavaComparator
Expand All @@ -17,10 +21,10 @@ def url_occurences(filetype):
return UrlOccurenciesValidator()


def markdown(filetype):
def markdown(filetype, md_parser_cls: Type[MdParser] = MdParser):
if filetype not in ['txt', 'html']:
raise UndefinedCheckTypeError('got filetype %s' % filetype)
return MarkdownComparator()
return MarkdownComparator(md_parser_cls)


def java_args(filetype):
Expand Down
11 changes: 9 additions & 2 deletions validator/checks/md.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
import re
from sdiff import diff, renderer
from typing import Type

from sdiff import diff, renderer, MdParser
from markdown import markdown

from ..errors import MdDiff, ContentData
Expand All @@ -13,6 +15,9 @@ def save_file(content, filename):


class MarkdownComparator(object):
def __init__(self, md_parser_cls: Type[MdParser] = MdParser):
self._md_parser_cls = md_parser_cls

def check(self, data, parser, reader):
if not data:
return []
Expand All @@ -26,7 +31,9 @@ def check(self, data, parser, reader):
for other in row:
other_parsed = parser.parse(reader.read(other))
other_html = markdown(other_parsed)
other_diff, base_diff, error = diff(other_parsed, base_parsed, renderer=renderer.HtmlRenderer())
other_diff, base_diff, error = diff(other_parsed, base_parsed,
renderer=renderer.HtmlRenderer(),
parser_cls=self._md_parser_cls)
if error:
error_msgs = []
if error:
Expand Down