<!DOCTYPE html> <html>

<head>
        <link rel="stylesheet" href="index.css" type="text/css" media="screen" />

        <script src="jquery-1.6.min.js" type="text/javascript"></script>
        <script src="../dist/jquery.syntax.js" type="text/javascript"></script>
        <script src="../dist/jquery.syntax.cache.js" type="text/javascript"></script>

        <script type="text/javascript">
                jQuery(function($) {
                        $.syntax();
                });
        </script>

</head>
<body>
        <h1>Syntax: AppleScript</h1>

        <h2>Hello World &amp; Mode-line Support</h2>

        <pre><code class="syntax applescript">(*

Copyright (C) 2009 Orion Transfer Ltd. All Rights Reserved. See www.oriontransfer.co.nz/ for more information. Drop files on top of this application to produce a zip archive on the desktop containing compressed JPEGs at a maximum size of 800px. *)

on open some_items

-- If we drop a single folder onto the icon, we pull the name from the folder name
set target_name to &quot;Images&quot;

if (count of some_items) = 1 then
        set first_item to get item 1 of some_items

        tell application &quot;System Events&quot;
                set target_item to disk item (first_item as string)

                if class of target_item is folder then
                        set target_name to name of first_item
                end if
        end tell
end if

display dialog &quot;Name of Archive&quot; default answer target_name buttons {&quot;OK&quot;} default button 1
set target_name to text returned of the result

tell application &quot;Finder&quot;
        set desktop_path to folder &quot;Desktop&quot; of home

        make new folder at desktop_path with properties {name:target_name}

        set destination to (folder target_name of desktop_path) as alias
        set archive_path to (POSIX path of (desktop_path as text)) &amp; target_name &amp; &quot;.zip&quot;
end tell

repeat with this_item in some_items
        tell application &quot;System Events&quot;
                set source_item to disk item (this_item as string)
        end tell

        process_path(source_item, destination)
end repeat

set archive_command to &quot;/usr/bin/ditto -c -k -rsrc &quot; &amp; quoted form of (POSIX path of destination) &amp; &quot; &quot; &amp; quoted form of archive_path

do shell script archive_command

tell application &quot;Finder&quot;
        activate

        delete folder target_name of desktop_path

        reveal file (target_name &amp; &quot;.zip&quot;) of desktop_path
end tell

end open

to process_path(source, destination)

-- Figure out if it is a file or folder, and recurse appropriately
tell application &quot;System Events&quot;
        set is_folder to class of source is folder
        if is_folder then
                set sub_items to items in source
        end if
end tell

if is_folder then
        repeat with this_item in sub_items
                process_path(this_item, destination)
        end repeat
else
        tell application &quot;System Events&quot;
                set source_alias to (path of source) as alias
        end tell

        resize_and_save(source_alias, destination)
end if

end process_path

to resize_and_save(image_alias, destination_alias)

tell application &quot;Image Events&quot;
        launch

        set opened_image to open image_alias

        if class of opened_image is image and not dimensions of opened_image = {} then
                set dim to dimensions of opened_image

                -- We only resize if the dimension is bigger than 800
                if (first item of dim &gt; 800 or second item of dim &gt; 800) then
                        scale opened_image to size 800
                end if

                save opened_image in destination_alias as JPEG with compression level medium

                close opened_image
        end if
end tell

end resize_and_save </code></pre>

</body>

</html>