outputz.el レシピ

outputz.el で、編集しているマシン、ユーザー名、ファイルの種類、ファイル名を区別するために、こんなことをやってみた。

こんなかんじで記録されて、いいかんじ。

http://gyazo.com/b04d208c929d0ce09b28e6adedf69c7a.png

(defun outputz-percent-encode (str &optional coding-system)                                                                  
  (if (or (null coding-system)                                                                                               
            (not (coding-system-p coding-system)))                                                                           
      (setq coding-system 'utf-8))                                                                                           
  (mapconcat                                                                                                                 
   (lambda (c)                                                                                                               
     (cond                                                                                                                   
      ((outputz-url-reserved-p c)                                                                                            
       (char-to-string c))                                                                                                   
      ((eq c ? ) "+")                                                                                                        
      (t (format "%%%x" c))))                                                                                                
   (encode-coding-string str coding-system)                                                                                  
   ""))                                                                                                                      
                                                                                                                             
(defun outputz-url-reserved-p (ch)                                                                                           
  (or (and (<= ?A ch) (<= ch ?z))                                                                                            
      (and (<= ?0 ch) (<= ch ?9))                                                                                            
      (eq ?. ch)                                                                                                             
      (eq ?- ch)                                                                                                             
      (eq ?_ ch)                                                                                                             
      (eq ?~ ch)))                                                                                                           
                                                                                                                             
(require 'outputz)                                                                                                           
(setq outputz-key "**********")
                                                                                                             
(setq outputz-base-uri                                                                                                       
      (concat "http://" (user-login-name) "." (system-name) ".emacs.jp/"))
(setq outputz-uri outputz-base-uri)                                                                                          
                                                                                                                             
(defadvice outputz (before outputz-setup-uri)                                                                                
  (setq outputz-uri                                                                                                          
        (outputz-percent-encode                                                                                              
         (concat outputz-base-uri                                                                                            
                 (symbol-name major-mode) "/"                                                                                
                 (file-name-nondirectory (or (buffer-file-name) (buffer-name)))))))                                          
                                                                                                                             
(ad-activate-regexp "outputz-setup-uri")