OctoPress のフロントエンドをZenity で作ってみました。
Web ベースのUI を作っている方もいるようですが、とりあえずこれでもお手軽になりました。
zenity スクリプト
Zenity のリストボックス、テキスト入力、プログレスバー等を利用して、フロントエンドを作成します。
octopress_helper.sh#!/bin/bash
OCTOPRESS_DIR=/mnt/common/github/octopress
PATH=$PATH:$HOME/bin:$HOME/.rvm/bin source $HOME/.rvm/scripts/rvm cd $OCTOPRESS_DIR
while : do pick=$(zenity --list --title "OctoPress Helper" --text "Select Action." --radiolist --column Pick --column dummy --column Action --hide-column 2 true 0 "New Post" false 1 "New Page" false 2 "Generate" false 3 "Deploy" false 4 "Preview" false 5 "Open Posts Folder" false 6 "Push Source"); case $pick in 0) post_title=$(zenity --entry --title="New Post" --text="Enter Title." ) if [ ${#post_title} > 0 ] ; then rake new_post["$post_title"] >(zenity --progress --title="New Post" --pulsate --auto-close --auto-kill) fi ;; 1) page_title=$(zenity --entry --title="New Page" --text="Enter Title." ) if [ ${#page_title} > 0 ] ; then rake new_page["$page_title"] >(zenity --progress --title="New Page" --pulsate --auto-close --auto-kill) fi ;; 2) rake generate >(zenity --progress --title="Generate" --pulsate --auto-close --auto-kill) ;; 3) rake deploy >(zenity --progress --title="Deploy" --pulsate --auto-close --auto-kill) ;; 4) rake preview >(zenity --progress --title="Preview" --pulsate --auto-close --auto-kill) ;; 5) nautilus $OCTOPRESS_DIR/source/_posts/ & ;; 6) git add . && git commit -m 'update' && git push -u origin source >(zenity --progress --title="Push Source" --pulsate --auto-close --auto-kill) ;; *) break ;; esac done
|
起動用ショートカットアイコン
起動用のショートカットファイルoctopress_helper.desktop
を作成してドックにドラッグ&ドロップします。
端末を非表示にする場合はTerminal=false
とします。
octopress_helper.desktop[Desktop Entry] Encoding=UTF-8 Name=OctoPress Helper Exec=/mnt/common/home/Script/octopress_helper.sh Icon=/usr/share/pixmaps/octopress.png Terminal=true Type=Application Categories=Application; StartupNotify=false
|
プレビュー
私は rake preview
をログイン時に常駐させて、ブラウザから http://localhost:4000/
にアクセスしてレイアウト結果を確認しています。フォルダ内の変更が監視されるので、多少の負荷はあるかもしれません。