我有一个带有bookmarklet的旧项目,它有一些稍微技术性的说明,通过创建一个虚拟书签并替换位置字段来将JavaScript文件转换为bookmarklet。我想把它变成我的jekyll生成的博客上的书签,这样用户就可以简单地拖放链接到书签栏来安装它。
一个硬性要求是将JavaScript代码保存在单独的文件中(以便易于修改和限制),并且,如果可能的话,不必保持文件的两个版本同步。到目前为止,我所尝试的是:
[foo][1]
[1]:javascript:{% include foo.js %}
但这并不能逃避JavaScript代码,所以网页最终成为一个链接和<code>
块的混乱。我还尝试了include foo.js | escape
,这似乎是一个语法错误。
如何包含文件和转义以使其可用作书签?
这样做是正确的,使用%20
对空格*:
[foo][1]
{% capture raw_bookmarklet %}{% include foo.js %}{% endcapture %}
[1]:javascript:{{ raw_bookmarklet | uri_escape }}
结果代码和页面。
*:url_encode
将空格替换为+
,导致语法错误。