为mime附件包装内联javascript(每行最多72个字符)

Wrapping inline javascript for mime attachment (72 characters MAX per line)

本文关键字:72个 字符 javascript mime 包装      更新时间:2023-09-26

我正在生成一封带有HTML mime附件的电子邮件,该附件需要在离线时可用。HTML需要一些javascript,特别是jQuery和Date.js。

我遇到的问题是,javascript需要行包装后72个字符,我被告知这是CANSPAM的原因。还有一些SMTP服务器会在这么多字符之后强制换行。如果强制换行发生在javascript不能有换行符的地方,它会破坏javascript。(jQuery minified是1连续行,超过72个字符多次)

是否有一个库或工具,我可以用它来解析javascript的文本,并在javascript友好的地方插入换行符?

我的应用程序代码是Ruby。

更新

--line-break 72在它认为是72个字符时非常慷慨,甚至将函数定义的花括号与函数参数放在同一行。

将其作为--line-break 0运行并在vim中执行:s/'){/)'r{/g后,行似乎足够短

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.

从经验来看,我看到它更多地将此视为指导方针而不是严格的规则。例如,如果您将换行符设置为80个字符,而您有一个100个字符的字符串,它不会为您将该字符串分隔。

但是,根据您的输入文件,您可能能够使其工作