add internal Typograph (Типограф Муравьева)

This commit is contained in:
e-serg
2022-12-16 23:47:26 +03:00
parent 0e2719afa7
commit 20ca688a35
3 changed files with 3239 additions and 5 deletions

3199
cadpoint/web/EMT.py Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -1,6 +1,7 @@
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
from cadpoint.settings import * from cadpoint.settings import *
import re
def check_cookies(request) -> bool: def check_cookies(request) -> bool:
@@ -37,3 +38,16 @@ def safe_html_special_symbols(s: str) -> str:
result = result.replace('<br />', ' ') result = result.replace('<br />', ' ')
result = result.replace('<br>', ' ') result = result.replace('<br>', ' ')
return result return result
def post_processing_html(s: str) -> str:
s = re.sub(r"\s+", " ", s, flags=re.IGNORECASE)
s = re.sub(r">\s+|>&nbsp;", "> ", s, flags=re.IGNORECASE)
s = re.sub(r"\n|\r|<p[^>]*>\s*</p>|<p>&nbsp;</p>", "", s, flags=re.IGNORECASE)
s = re.sub(r"</p>\s*<br[^>]*>", "</p>", s, flags=re.IGNORECASE)
s = re.sub(r"<br[^>]*>\s*<p>|<p[^>]*>\s*<p[^>]*>", "<p>", s, flags=re.IGNORECASE)
s = re.sub(r"</p>\s*</p>", "</p>", s, flags=re.IGNORECASE)
s = re.sub(r"<br[^>]*>\s*<br[^>]*>", "<br />", s, flags=re.IGNORECASE)
s = re.sub(r"<p><blockquote>", "<blockquote>", s, flags=re.IGNORECASE)
s = re.sub(r"</blockquote></p>", "</blockquote>", s, flags=re.IGNORECASE)
return s

View File

@@ -6,10 +6,9 @@ from filer.fields.image import FilerFileField
from ckeditor.fields import RichTextField from ckeditor.fields import RichTextField
from taggit.managers import TaggableManager from taggit.managers import TaggableManager
from taggit.models import Tag, TaggedItem from taggit.models import Tag, TaggedItem
from web.add_function import safe_html_special_symbols, post_processing_html
import web.models
from web.add_function import safe_html_special_symbols
import urllib3 import urllib3
import re
import pytils import pytils
import random import random
import datetime import datetime
@@ -220,8 +219,30 @@ class TbContent(models.Model):
' <link target="_blank" />' ' <link target="_blank" />'
'</preferences>'.encode('cp1251')}) '</preferences>'.encode('cp1251')})
self.szContentBody = resp.data.decode('cp1251') self.szContentBody = resp.data.decode('cp1251')
self.bTypograf = False
except: except:
# если API типографа не доступен, то подключаем локальный типограф Муравьева
import web.EMT as EMT
emt_header = EMT.EMTypograph()
emt_header.setup({'Text.paragraphs': 'off'})
emt_header.set_text(self.szContentHead)
self.szContentHead = emt_header.apply()
emt_intro = EMT.EMTypograph()
print("==================================== self.szContentBody\n", self.szContentIntro)
print("-----------------")
emt_intro.set_text(self.szContentIntro)
# emt_intro.set_tag_layout(layout=EMT.LAYOUT_CLASS)
self.szContentIntro = emt_intro.apply()
self.szContentIntro = post_processing_html(self.szContentIntro)
print(self.szContentIntro)
emt_body = EMT.EMTypograph()
print("==================================== self.szContentBody")
print(self.szContentBody)
print("-----------------")
emt_body.set_text(self.szContentBody)
# emt_body.set_tag_layout(layout=EMT.LAYOUT_CLASS)
self.szContentBody = emt_body.apply()
self.szContentBody = post_processing_html(self.szContentBody)
print(self.szContentBody)
self.bTypograf = False self.bTypograf = False
super(TbContent, self).save(*args, **kwargs) super(TbContent, self).save(*args, **kwargs)