Skip to content

Commit 30e5910

Browse files
authored
feat: add zendesk helpcenter markdown check (#25)
1 parent bac6cd3 commit 30e5910

File tree

3 files changed

+24
-5
lines changed

3 files changed

+24
-5
lines changed

validator/__init__.py

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
import sdiff
2+
13
from . import parsers, checks, reports, fs
24

35

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

5860
def md(self):
59-
self.checks.append(checks.markdown(self.content_type))
61+
self.checks.append(checks.markdown(self.content_type,
62+
md_parser_cls=sdiff.MdParser))
63+
return self
64+
65+
def zendesk_helpcenter_md(self):
66+
self.checks.append(checks.markdown(self.content_type,
67+
md_parser_cls=sdiff.ZendeskHelpMdParser))
6068
return self
6169

6270
def url(self, **kwargs):

validator/checks/__init__.py

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,7 @@
1+
from typing import Type
2+
3+
from sdiff import MdParser
4+
15
from .md import MarkdownComparator
26
from .url import UrlValidator, UrlOccurenciesValidator
37
from .java import JavaComparator
@@ -17,10 +21,10 @@ def url_occurences(filetype):
1721
return UrlOccurenciesValidator()
1822

1923

20-
def markdown(filetype):
24+
def markdown(filetype, md_parser_cls: Type[MdParser] = MdParser):
2125
if filetype not in ['txt', 'html']:
2226
raise UndefinedCheckTypeError('got filetype %s' % filetype)
23-
return MarkdownComparator()
27+
return MarkdownComparator(md_parser_cls)
2428

2529

2630
def java_args(filetype):

validator/checks/md.py

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
import re
2-
from sdiff import diff, renderer
2+
from typing import Type
3+
4+
from sdiff import diff, renderer, MdParser
35
from markdown import markdown
46

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

1416

1517
class MarkdownComparator(object):
18+
def __init__(self, md_parser_cls: Type[MdParser] = MdParser):
19+
self._md_parser_cls = md_parser_cls
20+
1621
def check(self, data, parser, reader):
1722
if not data:
1823
return []
@@ -26,7 +31,9 @@ def check(self, data, parser, reader):
2631
for other in row:
2732
other_parsed = parser.parse(reader.read(other))
2833
other_html = markdown(other_parsed)
29-
other_diff, base_diff, error = diff(other_parsed, base_parsed, renderer=renderer.HtmlRenderer())
34+
other_diff, base_diff, error = diff(other_parsed, base_parsed,
35+
renderer=renderer.HtmlRenderer(),
36+
parser_cls=self._md_parser_cls)
3037
if error:
3138
error_msgs = []
3239
if error:

0 commit comments

Comments
 (0)