为 mime 附件包装内联 javascript(每行最多 72 个字符)
Posted
技术标签:
【中文标题】为 mime 附件包装内联 javascript(每行最多 72 个字符)【英文标题】:Wrapping inline javascript for mime attachment (72 characters MAX per line) 【发布时间】:2011-08-13 10:34:08 【问题描述】:我正在生成一封带有 html mime 附件的电子邮件,该附件需要 离线 可用。 HTML 需要一些 javascript,特别是 jQuery 和 Date.js。
我遇到的问题是 javascript 需要在 72 个字符后换行,有人告诉我这是出于 CANSPAM 的原因。此外,一些 SMTP 服务器会在这么多字符后强制换行。如果强制换行发生在 javascript 不能有换行符的地方,它会破坏 javascript。 (缩小的 jQuery 是 1 行,超过 72 个字符多次)。
是否有库或工具可用于解析 javascript 的文本,并在 javascript 友好的地方插入换行符?
我的应用程序代码是用 Ruby 编写的。
更新
--line-break 72
在考虑到 72 个字符时非常慷慨,甚至将函数定义的大括号与函数参数放在同一行。
以--line-break 0
运行并在vim 中执行:s/\)/)\r/g
后,行似乎足够短
【问题讨论】:
【参考方案1】:YUI Compressor 将允许您使用 --line-break
选项为每行指定最大列长度:
--line-break Some source control tools don't like files containing lines longer than, say 8000 characters. The linebreak option is used in that case to split long lines after a specific column. It can also be used to make the code more readable, easier to debug (especially with the MS Script Debugger) Specify 0 to get a line break after each semi-colon in JavaScript, and after each rule in CSS.
根据经验,我发现它更多地将其视为指导方针而不是严格的规则。例如,如果您将 line-break 设置为 80 个字符,并且您有一个 100 个字符的字符串,它不会为您拆分该字符串。
但是,根据您的输入文件,您可能能够使其工作。
【讨论】:
以上是关于为 mime 附件包装内联 javascript(每行最多 72 个字符)的主要内容,如果未能解决你的问题,请参考以下文章