首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >解析HTML以修复微字和字形问题

解析HTML以修复微字和字形问题
EN

Stack Overflow用户
提问于 2012-12-04 17:50:30
回答 4查看 796关注 0票数 20

我对网络上的microtypography问题很感兴趣。

我想要一个工具来修复:

  • Quotes
    • “(”)开始引号(而不是“)
    • ”(“)结束引号(而不是")

  • Apostrophe
    • ‘(’)撇号(而不是')

  • 破折号和连字符
    • -(-或-) en破折号,用于表示范围,例如“13-15
    • ”(而不是-)
    • -(- or -) em破折号,用于改变思想,例如“众所周知,”星球大战“令人惊叹。”(而不是-或--)

  • 省略
    • …(…或…)水平省略号,用于表示省略或停顿(代替...)

  • 和更多\o/

所有这些修复都依赖于内容语言。例如,在法语中,我们必须在每个组合字形(:;?!,...)之前添加一个不可破坏的空格,我们的引号是«,就像这样»。

这样的工具有很多限制:

它不能在受保护的标签中编辑任何超文本标记语言( code...)

  • it,
  • 必须是快速的(用于内容管理系统的输出)
  • 它不能破坏超文本标记语言
  • 等等。

市场上已经有一些工具:

它们或多或少都是基于SmartyPants的,这是一个2005年的库,没有经过测试,没有文档,手动解析HTML语言,不处理除英语之外的其他规则。见鬼,不。

所以我的问题是:

  • 你知道有像这样的好工具吗?
  • 我该怎么做呢?我已经有一个使用DomCrawler的POC,但我并不信服。在PHP中解析和编辑超文本标记语言的最佳方法是什么?

编辑2013年7月:我从这个问题上获得的测试和专业知识中开发了JoliTypo。没有现成的lib在做我想做的事情。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2012-12-07 03:53:35

我的一些朋友Sean做了一些我经常用来做这个的东西。你可以在这里查看演示:http://files.seancoates.com/lexentity/他在这里写的博客:http://seancoates.com/blogs/lexentity,你可以在这里获取源代码:https://github.com/scoates/lexentity

它可能不能满足您的全部语言需求,但它是从英语开始的。

票数 8
EN

Stack Overflow用户

发布于 2012-12-11 07:12:07

您可能会对tidy感兴趣。它绑定了PHP (你只需要使用5+ )。它不仅能解析HTML,还能修复它。

但是有了本地化,您就只能靠自己了- intl没有任何关于quotes -f.ex的数据;至少我找不到它们。

票数 2
EN

Stack Overflow用户

发布于 2012-12-11 07:44:50

关于引用请阅读此Q tag,其他的我将使用bbcode库。因为很难编写算法来区分你需要的破折号。BBcode允许编辑器进行选择,但在编辑器必须执行操作的情况下,您可能会考虑提供某种按钮来插入特殊字符。对于容易识别的东西,您只需为BBcode库创建新的规则,如果它们必须是本地的,那么您将为不同的语言创建不同的规则集。显然,OOP中的继承在这里会很方便。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13700054

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档