長いリンクを短いリンクに変換する

emaxのURLをまともな外観にするための小さなスクリプト。 bit.lyサービスを介して機能します。



インターフェイスは、short-url-dwim関数で表されます。 カーソルがURLの上にあるときに呼び出された場合(プロトコルが必要)、URLは短いリンクに置き換えられます。 別のケースでは、ミニバッファーにURLを入力するように求められ、カーソルの位置に短いリンクが挿入されます。

エラーメッセージはミニバッファーに表示されます。



スクリプトコード:



(defvar short-url-user "emacsshorturl")

(defvar short-url-apiKey "R_ac13b2e481b5a73db361ddfa1430fef5")



(defun short-url (url place-url)

(unless url (error "Url is nil"))

(let ((reply (replace-regexp-in-string

"\n" ""

(shell-command-to-string

(concat "curl --url \"api.bit.ly/shorten\" -F version=\"2.0.1\" -F"

"longUrl=\"" url "\""

" -F login=\"" short-url-user

"\" -F apiKey=\"" short-url-apiKey

"\" 2> /dev/null")))))

(when (string-match ".*\"errorMessage\": \"\\([^\"]+\\)\".*" reply)

(error (concat

"ERROR: "

(replace-regexp-in-string

".*\"errorMessage\": \"\\([^\"]+\\)\".*"

"\\1" reply))))

(let ((shortUrl (replace-regexp-in-string

".*\"shortUrl\": \"\\([^\"]*\\)\".*"

"\\1" reply)))

(when place-url

(delete-region (car place-url) (cdr place-url)))

(insert shortUrl))))



(defun short-url-dwim ()

(interactive)

(let ((bounds-url (bounds-of-thing-at-point 'url)))

(if bounds-url

(short-url (thing-at-point 'url) bounds-url)

(short-url-user-url (read-from-minibuffer "URL: ")))))



(provide 'short-url)







インストールとセットアップ



コードは、load-pathフォルダーの「short-url.el」という名前のファイルに配置する必要があります。 次に、次のコードを.emacsに追加します。



(require 'short-url)







bit.lyで登録し、アカウントにスクリプトを設定することを強くお勧めします。 これには少なくとも2つの理由があります。



これを行うには、次を.emacsに追加します。



(setq short-url-user < >)

(setq short-url-apiKey < apiKey>)








All Articles