BBEdit中的Safari源代码

泽尔德曼抱怨道,正确地说,最近的浏览器不再能够选择显示网页源代码的外部编辑器:

虽然我们是诚实的,但这是一个整体的更新“在HTML编辑器中查看源代码“问题您无法在Chimera中选择的编辑器中查看源代码您无法在Safari中选择的编辑器中查看源代码您可以在OS 9下的IE5 / Mac中你选择的编辑器下查看源码,但你不能在OS X中,也没有人能告诉我们为什么浏览器不再支持这个功能....

这将是一个很棒的:一个提供可下载的Apple脚本的网站,它告诉特定的OS X浏览器在BBEdit或PageSpinner中打开源代码。

今天,泽尔德曼指出拉塞尔哈兰谁编写了这样的脚本(用于IE和Safari)并使它们可用。

俏皮的不过,我有一些建议。

在他的IE脚本中,Harlan得到了源代码:

tell application "Internet Explorer"
    set my_source to GetSource of document 1
end tell

但对于Safari,他使用命令行curl实用程序(可能受到我的启发)BBEdit的“Grab HTML”脚本):

tell application "Safari"
    set my_url to URL of document 1
end tell
-- "-i" tells curl to include the headers
set my_text to do shell script ("curl -i " & my_url)

然而,这不是必需的,因为Safari的文献对象有一个资源属性因此,我们可以简单地获取最前面的Safari文档的源代码:

告诉应用程序“Safari”将my_text设置为文档1的源

当然,也许你想要使用curl,因为除了源代码之外,curl可以被告知返回HTTP头(这正是Harlan的脚本告诉curl要做的)HTTP标头如下所示:

HTTP/1.1 200 OK
Date: Tue, 21 Jan 2003 17:43:36 GMT
Server: Apache/1.3.27
Last-Modified: Wed, 13 Nov 2002 05:19:42 GMT
ETag: "52f360-19c0-3dd1e0ee"
Accept-Ranges: bytes
Content-Length: 6592
Content-Type: text/html

如果您对该信息感兴趣,那么请务必使用curl但是如果你只想要源代码,你可以向Safari索取它。

但是,如果您确实要求Safari获取源代码,则会返回Unix样式的换行符(\ n),而BBEdit预计Mac换行(\ r)使用BBEdit轻松修复更换命令,给我们这个脚本:

tell application "Safari" to set s to source of document 1

tell application "BBEdit"
    activate
    make new text window with properties ¬
        {contents:s, source language:"HTML"}
    -- fix the \n that Safari sent over
    replace "\\n" using "\\r" searching in text 1 of text window 1 ¬
        options {search mode:grep, starting at top:true}
    select insertion point before character 1 of text window 1
end tell

上面的脚本是从a由Jim Correia发布到BBEdit-Talk列表请注意,此脚本显式告知BBEdit将源语言设置为HTML在大多数情况下,这不是必需的,因为BBEdit(6.5或更高版本)在未指定语言时非常聪明地猜测语言但是明确地说很少受到伤害。

以前: 海洋的X11
下一个: 编写Safari URL的脚本