我想使用Textmate的内置Tidy(Ctrl + Shift + H)功能来缩进我的HTML'而不修改代码中的任何内容.我已经写了非常简洁的HTML,我只需要Tidy用Soft-tabs缩进我的代码.
目前它打破了很多东西,格式也不完美.有人可以为我写一个Tidy配置,这样做:
1 - 仅限缩进,没有别的.
2 - 我不需要在换行符上推送某些标签.例如:Tidy这样做:
<li>
<a href="#">link</a>
</li>
Run Code Online (Sandbox Code Playgroud)
原始代码(或我需要的):
<li><a href="#">link</a></li>
Run Code Online (Sandbox Code Playgroud)
..如果我可以预先定义哪些标签保持内联,那就太好了.
基本上,我想用Tidy复制Dreamweaver的HTML格式化功能,但上面提到的两件事非常重要.
我认为这是我目前的(默认?)Tidy配置:
${TM_TIDY:-tidy}" -f /tmp/tm_tidy_errors -iq -utf8 \
-wrap 0 --tab-size $TM_TAB_SIZE --indent-spaces $TM_TAB_SIZE \
--indent yes \
${TM_XHTML:+-asxhtml --output-xhtml yes} \
${TM_SELECTED_TEXT:+--show-body-only yes} \
--enclose-text yes \
--doctype strict \
--wrap-php no \
--tidy-mark no`
Run Code Online (Sandbox Code Playgroud)
我非常感谢任何帮助.谢谢!
使用属于HTML5的新doctype和元素,您如何xdmp:tidy()识别HTML5中的那些?
如果我有一个包含以下内容的html页面:
<!DOCTYPE html>
<html>
<header>blah</header>
<section>blah</section>
Run Code Online (Sandbox Code Playgroud)
然后尝试类似的东西:
xdmp:tidy(xdmp:document-get("home.html"))
我得到的错误如下:
<section> is not recognized! discarding unexpected <section>
<header> is not recognized! discarding unexpected <header>
Run Code Online (Sandbox Code Playgroud)
我可以发送一些选项xdmp:tidy()让它来处理它吗?
我正在尝试用JTidy进行XHTML DOM解析,这似乎是违反直觉的任务.特别是,有一种解析HTML的方法:
Node Tidy.parse(Reader, Writer)
Run Code Online (Sandbox Code Playgroud)
为了获得该节点的<body />,我认为,我应该使用
Node Node.findBody(TagTable)
Run Code Online (Sandbox Code Playgroud)
我应该在哪里获得该TagTable的实例?(构造函数受到保护,我还没有找到工厂来生产它.)
我使用JTidy 8.0-SNAPSHOT.
我想将utidy的结果传递给Beautiful Soup,ala:
page = urllib2.urlopen(url)
options = dict(output_xhtml=1,add_xml_decl=0,indent=1,tidy_mark=0)
cleaned_html = tidy.parseString(page.read(), **options)
soup = BeautifulSoup(cleaned_html)
Run Code Online (Sandbox Code Playgroud)
运行时,会出现以下错误:
Traceback (most recent call last):
File "soup.py", line 34, in <module>
soup = BeautifulSoup(cleaned_html)
File "/var/lib/python-support/python2.6/BeautifulSoup.py", line 1499, in __init__
BeautifulStoneSoup.__init__(self, *args, **kwargs)
File "/var/lib/python-support/python2.6/BeautifulSoup.py", line 1230, in __init__
self._feed(isHTML=isHTML)
File "/var/lib/python-support/python2.6/BeautifulSoup.py", line 1245, in _feed
smartQuotesTo=self.smartQuotesTo, isHTML=isHTML)
File "/var/lib/python-support/python2.6/BeautifulSoup.py", line 1751, in __init__
self._detectEncoding(markup, isHTML)
File "/var/lib/python-support/python2.6/BeautifulSoup.py", line 1899, in _detectEncoding
xml_encoding_match = re.compile(xml_encoding_re).match(xml_data)
TypeError: expected string or buffer …Run Code Online (Sandbox Code Playgroud) 我有一个使用Spring Framework的Java servlet容器.使用Spring从JSP生成页面以连接所有内容.发送给用户的结果HTML并不像我想的那样整洁.我想在将HTML发送到客户端浏览器之前将其发送到Tidy.
我将它设置为开发工作并在生产中关闭; 从我的角度来看,这是一个胜利者,因为它会让我更容易维护.
关于如何在Spring中干净利落地工作的建议?
我从RSS频道抓取数据,清理它并保存在数据库中.我使用java,tidy,MySQL和JDBC.
脚步:
MySQL方案是
CREATE TABLE IF NOT EXISTS `rss_item_safe_texts` (
`id` int(10) unsigned NOT NULL,
`title` varchar(1000) NOT NULL,
`link` varchar(255) NOT NULL,
`description` mediumtext NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
Run Code Online (Sandbox Code Playgroud)
JDBC连接URL是
connUrl = "jdbc:mysql://" + host + "/" + database + "?user=" + username + "&password=" + password + "&useUnicode=true&characterEncoding=UTF-8";
Run Code Online (Sandbox Code Playgroud)
Java代码是
PreparedStatement updateSafeTextSt = conn.prepareStatement("UPDATE `rss_item_safe_texts` SET `title` = ?, `link` = ?, `description` = ? WHERE `id` = ?");
updateSafeTextSt.setString(1, EscapingUtils.escapeXssInjection(title));
updateSafeTextSt.setString(2, …Run Code Online (Sandbox Code Playgroud) 首先,我知道这是一个糟糕的解决方案,我不应该这样做.
背景:随意跳过
但是,我需要快速修复实时系统.我们目前有一个数据结构,通过一系列字符串构建器创建"xml"片段,将自身序列化为字符串.这是否是有效的XML我相当怀疑.在创建此xml之后,在通过消息队列发送之前,一些清理代码会在字符串中搜索xml声明的出现并将其删除.
这样做的方式(迭代每个执行indexOf的字符<?xml)是如此之慢,导致线程超时并杀死我们的系统.最终我会尝试正确地修复它(使用xml文档或类似的东西构建xml)但是今天我需要快速修复以替换那里的内容.
请记住,我知道这是一个远非理想的解决方案,但我需要快速修复以使我们恢复正常运行.
题
我想用正则表达式来查找声明.我正在计划:<\?xml.*?>然后使用Regex.Replace(input, string.empty)删除.
如果这个正则表达式有任何明显的问题,或者是否只是在代码中使用string.IndexOf("<?xml")和string.IndexOf("?>")(在更加理智的情况下)循环中编写它是更好的,你能告诉我吗?
编辑 我需要处理换行.
会:<\?xml[^>]*?>做的伎俩?
干杯!
EDIT2
谢谢您的帮助.正则表达式<\?xml.*?\?>很好.我最后编写了一些时序代码,并使用argex和IndexOf().我发现,对于我们最简单的用例,只需要声明剥离:
IndexOf()所以我去了,IndexOf()因为它很容易一个非常简单的循环.
干杯全都.
我正在使用php扩展名tidy-html来清理php输出.我知道整理删除无效标签,甚至无法处理HTML5 doctype,但我使用的标签<menu>曾经是HTML规范.但是,它<ul>无论如何都会改变.
奇怪的是,它没有这样做之前.我改变了整洁的配置,它已经休息了.现在我已经关闭了所有与标签混淆的选项,但它没有帮助.
我的脚本很冗长:
$tidy_config = array(
'char-encoding' => 'utf8',
'output-encoding' => 'utf8',
'output-html' => true,
'numeric-entities' => false,
'ascii-chars' => false,
'doctype' => 'loose',
'clean' => false,
'bare' => false,
'fix-uri' => true,
'indent' => true,
'indent-spaces' => 2,
'tab-size' => 2,
'wrap-attributes' => true,
'wrap' => 0,
'indent-attributes' => true,
'join-classes' => false,
'join-styles' => false,
'fix-bad-comments' => true,
'fix-backslash' => true,
'replace-color' => false,
'wrap-asp' => false,
'wrap-jste' => false,
'wrap-php' …Run Code Online (Sandbox Code Playgroud) 我需要将一些任意HTML加载到现有DOMDocument树中.以前的答案建议使用DOMDocumentFragment及其appendXML方法来处理这个问题.
正如@Owlvark在评论中指出的那样,xml不是html,因此这不是一个好的解决方案.
我遇到的主要问题是像这样的实体&ndash导致错误,因为该appendXML方法需要格式良好的XML.
我们可以定义实体,但这并不能解决并非所有html都是有效的xml的问题.
将HTML导入DOMDocument树中的好方法是什么?
我正在尝试用vim编辑一个离子应用程序,它使用html整理启用了句法.不幸的是,我遇到了一大堆错误.
如何让html整洁地识别离子标签,或者失败使它忽略它们,这样我就不会收到这样的错误:
www/index.html|26 col 5 error| <ion-pane> is not recognized!
...
www/index.html|24 col 3 warning| <body> proprietary attribute "ng-app"
Run Code Online (Sandbox Code Playgroud)