Следующий AppleScript возьмет содержимое буфера обмена и заменит его префиксом URL:
set the clipboard to "http://bugzilla_server/bugzilla/show_bug.cgi?id=" & (the clipboard)
Вы можете скомпилировать это в AppleScript scpt
и сделать его доступным в папке Scripts
или скомпилировать его в запускаемую app
:
osacompile -e 'set the clipboard to "http://bugzilla_server/bugzilla/show_bug.cgi?id=" & (the clipboard)' -o replacebug.scpt # or -o replacebug.app
Если ваш основной вариант использования для этого - при составлении почты в Mail.app
, это может быть не самый удобный подход. Если вы используете Snow Leopard (10.6), более простым решением будет воспользоваться новой функцией Text Substitution
. Откройте панель настроек System Preferences -> Language & Text
, выберите вкладку Text
и нажмите +
, чтобы добавить новую замену, например:
Replace With
(b) http://bugzilla_server/bugzilla/show_bug.cgi?id=
Затем, в Mail.app
, запустите New Message
и, удерживая курсор в текстовом теле, сделайте управляющий щелчок мыши, чтобы вызвать контекстное меню. Из него выберите Substitutions -> Text Replacement
. С этого момента, когда вы вводите текст сообщения электронной почты при вводе:
(b)777
(b)
автоматически изменится на сохраненный вами текст URL:
http://bugzilla_server/bugzilla/show_bug.cgi?id=777
Это также будет работать в других текстовых приложениях Cocoa, таких как Safari.
EDIT:
Когда речь идет о создании URL-ссылок в электронной почте, существует как минимум три разных формата электронной почты, каждый из которых имеет свое решение. Поскольку вы не говорите, какой тип вы используете, я расскажу обо всех трех:
Простой текстовый формат. Невозможно «спрятать» URL-адрес в составленном электронном письме, хотя некоторые читатели электронной почты могут предоставить кликабельную ссылку для простого текстового URL-адреса.
Электронная почта в формате HTML - Apple Mail.app
не поддерживает создание электронной почты в этом формате, хотя она будет отображаться. Используя какой-либо другой почтовый клиент или вашу собственную программу, достаточно просто создать ссылку с помощью стандартного HTML-тега привязки <a href=...>
.
Электронная почта в формате Rich Text Format - AFAIK, это единственный способ создать URL-ссылку с Mail.app
. К сожалению, нет простого способа создать гиперссылку RTF с помощью команд AppleScript. Исходя из предложения здесь , это способ сделать это путем создания изменяемого шаблона RTF через буфер обмена.
- В
TextEdit.app
создайте новое окно документа.
- Вставьте текст, который вы хотите отобразить в электронном письме, т.е.
777
.
- Выберите текст (⌘A), затем добавьте ссылку (⌘K). Введите полный URL-адрес также с помощью
777
в поле «Ссылка назначения»; нажмите ОК.
- Измените текстовый формат по желанию с помощью команд меню Формат.
- Сохранить файл (⇧⌘S) как
temp.rtf
с File Format
-> Rich Text Format
.
- Закройте окно документа.
- Откройте окно документа (⌘O), выбрав файл
temp.rtf
и выбрав Ignore rich text commands
.
Вставьте следующее перед первой строкой в файле:
#!/bin/sh
sed -e "s/777/$(pbpaste -Prefer txt)/g" <<EOF | pbcopy -Prefer rtf
Добавить EOF
отдельной строкой в конец файла.
Теперь оно должно выглядеть примерно так:
#!/bin/sh
sed -e "s/777/$(pbpaste -Prefer txt)/g" <<EOF | pbcopy -Prefer rtf
{\rtf1\ansi\ansicpg1252\cocoartf1038\cocoasubrtf250
{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
{\colortbl;\red255\green255\blue255;}
\margl1440\margr1440\vieww9000\viewh8400\viewkind0
\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\ql\qnatural\pardirnatural
{\field{\*\fldinst{HYPERLINK "http://bugzilla_server/bugzilla/show_bug.cgi?id=777"}}{\fldrslt
\f0\fs24 \cf0 777}}}
EOF
Сохраните это как Plain Text
файл и выполните непосредственно как сценарий оболочки или вызовите его с помощью команды AppleScript do shell script
.
Такое решение будет работать с большинством других приложений, поддерживающих формат Rich Text.