コード例 #1
0
 def test_tidy_doesnt_persist_options(self):
     tidy = Tidy()
     # This option makes it a fragment
     doc, err = tidy.tidy_document(DOC % 'a', {'show-body-only': 1})
     self.assertEqual(doc, 'a\n')
     doc, err = tidy.tidy_document(DOC % 'a')
     self.assertEqual(doc, DOC % 'a')
コード例 #2
0
ファイル: test_docs.py プロジェクト: GertBurger/pytidylib
 def test_tidy_doesnt_persist_options(self):
     tidy = Tidy()
     # This option makes it a fragment
     doc, err = tidy.tidy_document(DOC % 'a', {'show-body-only': 1})
     self.assertEqual(doc, 'a\n')
     doc, err = tidy.tidy_document(DOC % 'a')
     self.assertEqual(doc, DOC % 'a')
コード例 #3
0
ファイル: ertos.py プロジェクト: lsf37/website
def save_handler(req, query, messages):
    path = req.filename
    content_dir = cfg.get('core', 'content_dir')

    length = int(req.headers_in['content-length'])
    postvars = parse_qs(req.read(length), keep_blank_values=1)
    if b'content' not in postvars:
        return apache.HTTP_NOT_FOUND


    # Editor adds <p>&nbsp;</p> if file starts with a blank line or a comment
    user_content = postvars[b'content'].pop().decode('utf-8').replace(r'<p>&nbsp;</p>', '', 1)

    tidy = Tidy()
    OPTIONS = {
        'wrap': 72,
        'hide-comments' : 'no',
        'preserve-entities': 'yes',
        'char-encoding' : 'utf8',
        'indent-attributes' : 'yes',
    }
    doc = '<!DOCTYPE html><head><title>foo</title></head><body>' + user_content + '</body></html>'
    doc, errs = tidy.tidy_document(doc, options=OPTIONS)

    if errs is not '':
        req.write("<strong>Errors found</strong><br/><pre>")
        req.write(cgi.escape(errs))
        req.write("</pre>")
        return apache.OK

    doc = re.sub(r'^.*<body>(.*)</body>.*', r'\1', doc, flags=re.DOTALL)
    doc = re.sub(r'^    ', '', doc, flags=re.MULTILINE)
    if path.startswith(content_dir):
        filename = path + ".new"
        f = open(filename, "w")
        f.write(doc)
        f.close()
        os.rename(filename, path)
        os.chmod(path, 0o664)
    else:
        req.write("<strong>Attempt to update a file not in the web directory</strong>")
        return apache.HTTP_FORBIDDEN

    if 'save' in query:
        del query['save']
    req.args = req.args.replace('?save', '')
    return psp_handler(req, query, messages)
コード例 #4
0
def tidy_html(html):
    tidy = Tidy()
    html, errors = tidy.tidy_document(html)
    return html
コード例 #5
0
ファイル: test_docs.py プロジェクト: GertBurger/pytidylib
 def test_can_use_two_tidy_instances(self):
     t1 = Tidy()
     t2 = Tidy()
     self.assertEqual(t1.tidy_document(DOC % 'a')[0], DOC % 'a')
     self.assertEqual(t2.tidy_document(DOC % 'b')[0], DOC % 'b')
コード例 #6
0
 def test_can_use_two_tidy_instances(self):
     t1 = Tidy()
     t2 = Tidy()
     self.assertEqual(t1.tidy_document(DOC % 'a')[0], DOC % 'a')
     self.assertEqual(t2.tidy_document(DOC % 'b')[0], DOC % 'b')
コード例 #7
0
def validate_html(html: str):
    from tidylib import Tidy
    tidy = Tidy()
    document, errors = tidy.tidy_document(html)
    if errors:
        raise TypeError(errors)
コード例 #8
0
ファイル: handle_html.py プロジェクト: hee0624/extract_web
 def tidy_html(html_str):
     """补齐html缺失标签"""
     tidy = Tidy()
     tidy_html, errors = tidy.tidy_document(html_str)
     return tidy_html