Skip to content

Commit

Permalink
FIX #1: correct markdown newline handling
Browse files Browse the repository at this point in the history
  • Loading branch information
Melevir committed Apr 11, 2020
1 parent 7e8cf65 commit cde5afc
Show file tree
Hide file tree
Showing 5 changed files with 22 additions and 29 deletions.
6 changes: 3 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@
![Говорите и пишите по-русски правильно](https://raw.githubusercontent.com/Melevir/rozental_as_a_service/master/docs_img/rozental_book.jpg)


**ВНИМАНИЕ**: Фамилия Розенталя на английском пишется так: Rosenthal,
**ВНИМАНИЕ**: Фамилия Розенталя на английском пишется так: Rosenthal,
но эта библиотека называется `rozental`. Это не безграмотность, это метаирония. :)


Expand All @@ -33,7 +33,7 @@

pip install rozental_as_a_service

Для этого вам понадобится Python 3.6+.
Для этого вам понадобится Python 3.7+.


## Пример
Expand Down Expand Up @@ -85,7 +85,7 @@

# Contributing

Да, пожалуйста!
Да, пожалуйста!

Мы соблюдаем [правила поведения Django](https://www.djangoproject.com/conduct/)
и [стайлгайд BestDoctor](https://github.com/best-doctor/guides/blob/master/guides/python_styleguide.md).
Expand Down
2 changes: 1 addition & 1 deletion rozental_as_a_service/__init__.py
Original file line number Diff line number Diff line change
@@ -1 +1 @@
__version__ = '0.3.0'
__version__ = '1.0.0'
4 changes: 2 additions & 2 deletions rozental_as_a_service/strings_extractors.py
Original file line number Diff line number Diff line change
Expand Up @@ -20,15 +20,15 @@ def extract_from_python_src(raw_content: str) -> List[str]:


def extract_from_html(raw_content: str) -> List[str]:
return BeautifulSoup(raw_content, 'html.parser').find_all(text=True)
return [n.strip() for n in BeautifulSoup(raw_content, 'html.parser').find_all(text=True) if n.strip()]


def extract_from_markdown(raw_content: str) -> List[str]:
html = markdown(raw_content)
html = re.sub(r'<pre>(.*?)</pre>', ' ', html)
html = re.sub(r'<code>(.*?)</code>', ' ', html)
html = re.sub(r'<strong>(.*?)</strong>', r'\1', html)
html = re.sub(r'\n', '', html)
html = re.sub(r'\n', ' ', html)
return extract_from_html(html)


Expand Down
18 changes: 9 additions & 9 deletions tests/test_files/src_for_strings_extractors/src_markdown
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
<html lang="en">
<!-- <title>Title</title> -->
<head>
<title>Title</title>
<!-- Здесь <span>1</span> <br/>2 -->
<pre>pre</pre>
<code>code</code>
<strong>strong 55 77</strong>
</head></html>
Добрый
день

## Установка

pip install rozental_as_a_service

Также Розенталь поддерживает `.vocabulary`-файл: текстовый файл с
перечислением точно верных слов. Это нужно для слов, специфичных для проекта
21 changes: 7 additions & 14 deletions tests/test_strings_extractors.py
Original file line number Diff line number Diff line change
Expand Up @@ -30,28 +30,21 @@ def test_extract_from_html_src():
src = _load_src_file('src_html')
actual_res = sorted(extr.extract_from_html(src))
assert actual_res == [
'\n',
'\n',
'\n',
'\n',
'\n',
'\n',
'\n',
' <title>Title</title> ',
' Здесь <span>1</span> <br/>2 ',
'<title>Title</title>',
'Title',
'Здесь <span>1</span> <br/>2',
]


def test_extract_from_markdown_src():
src = _load_src_file('src_markdown')
actual_res = extr.extract_from_markdown(src)
assert actual_res == [
' <title>Title</title> ',
' ',
'Title',
' Здесь <span>1</span> <br/>2 ',
' strong 55 77',
'Добрый день',
'Установка',
'pip install rozental_as_a_service',
'Также Розенталь поддерживает -файл: текстовый файл с перечислением точно '
'верных слов. Это нужно для слов, специфичных для проекта',
]


Expand Down

0 comments on commit cde5afc

Please sign in to comment.