浏览代码

Custom editor setup for Pelican

Bob Mottram 8 年前
父节点
当前提交
f29191d71f
共有 1 个文件被更改,包括 53 次插入17 次删除
  1. 53
    17
      src/freedombone-app-pelican

+ 53
- 17
src/freedombone-app-pelican 查看文件

@@ -49,6 +49,27 @@ pelican_variables=(MY_USERNAME
49 49
                    PELICAN_BLOG_DOMAIN
50 50
                    PELICAN_BLOG_CODE)
51 51
 
52
+function pelican_editor_config {
53
+    if [ ! -f $PELICAN_BLOG_INSTALL_DIR/.emacs-pelican ]; then
54
+        echo "(add-hook 'before-save-hook 'delete-trailing-whitespace)" > $PELICAN_BLOG_INSTALL_DIR/.emacs-pelican
55
+        echo '(setq org-support-shift-select t)' >> $PELICAN_BLOG_INSTALL_DIR/.emacs-pelican
56
+        echo '(setq standard-indent 4)' >> $PELICAN_BLOG_INSTALL_DIR/.emacs-pelican
57
+        echo '(setq-default tab-width 4)' >> $PELICAN_BLOG_INSTALL_DIR/.emacs-pelican
58
+        echo '(setq c-basic-offset 4)' >> $PELICAN_BLOG_INSTALL_DIR/.emacs-pelican
59
+        echo '(mouse-wheel-mode t)' >> $PELICAN_BLOG_INSTALL_DIR/.emacs-pelican
60
+        echo '(setq make-backup-files t)' >> $PELICAN_BLOG_INSTALL_DIR/.emacs-pelican
61
+        echo '(setq version-control t)' >> $PELICAN_BLOG_INSTALL_DIR/.emacs-pelican
62
+        echo '(setq backup-directory-alist (quote ((".*" . "~/.emacs_backups/"))))' >> $PELICAN_BLOG_INSTALL_DIR/.emacs-pelican
63
+        echo "(setq default-major-mode 'text-mode)" >> $PELICAN_BLOG_INSTALL_DIR/.emacs-pelican
64
+        echo "(dolist (hook '(text-mode-hook))" >> $PELICAN_BLOG_INSTALL_DIR/.emacs-pelican
65
+        echo '    (add-hook hook (lambda () (flyspell-mode 1))))' >> $PELICAN_BLOG_INSTALL_DIR/.emacs-pelican
66
+        echo '(setq-default fill-column 72)' >> $PELICAN_BLOG_INSTALL_DIR/.emacs-pelican
67
+        echo '(setq auto-fill-mode 0)' >> $PELICAN_BLOG_INSTALL_DIR/.emacs-pelican
68
+        echo "(add-hook 'text-mode-hook 'turn-on-auto-fill)" >> $PELICAN_BLOG_INSTALL_DIR/.emacs-pelican
69
+        echo "(setq-default auto-fill-function 'do-auto-fill)" >> $PELICAN_BLOG_INSTALL_DIR/.emacs-pelican
70
+    fi
71
+}
72
+
52 73
 function pelican_regenerate_blog {
53 74
     clear
54 75
     echo ''
@@ -61,21 +82,27 @@ function pelican_regenerate_blog {
61 82
 function pelican_new_blog {
62 83
     DATESTR=$(date "+%Y-%m-%d %H:%M:%S")
63 84
 
64
-    echo $'Title: Blog Post Title' > $PELICAN_BLOG_INSTALL_DIR/.new-blog-entry
65
-    echo $"Date: ${DATESTR}" >> $PELICAN_BLOG_INSTALL_DIR/.new-blog-entry
66
-    echo $"Author: $(toxid --showuser)" >> $PELICAN_BLOG_INSTALL_DIR/.new-blog-entry
67
-    echo $'Category: default' >> $PELICAN_BLOG_INSTALL_DIR/.new-blog-entry
68
-    echo $'Tags: blog, tag' >> $PELICAN_BLOG_INSTALL_DIR/.new-blog-entry
69
-    echo  '' >> $PELICAN_BLOG_INSTALL_DIR/.new-blog-entry
70
-    echo $'Add your text here' >> $PELICAN_BLOG_INSTALL_DIR/.new-blog-entry
71
-    echo  '' >> $PELICAN_BLOG_INSTALL_DIR/.new-blog-entry
72
-    echo -n $'To include an image copy it into the /etc/blog/content/images directory, ' >> $PELICAN_BLOG_INSTALL_DIR/.new-blog-entry
73
-    echo $'then link to it with:' >> $PELICAN_BLOG_INSTALL_DIR/.new-blog-entry
74
-    echo  '' >> $PELICAN_BLOG_INSTALL_DIR/.new-blog-entry
75
-    echo $'![My image]({filename}images/myimage.jpg)' >> $PELICAN_BLOG_INSTALL_DIR/.new-blog-entry
76
-    echo  '' >> $PELICAN_BLOG_INSTALL_DIR/.new-blog-entry
77
-
78
-    editor $PELICAN_BLOG_INSTALL_DIR/.new-blog-entry
85
+    if [ ! -f $PELICAN_BLOG_INSTALL_DIR/.new-blog-entry ]; then
86
+        echo $'Title: Blog Post Title' > $PELICAN_BLOG_INSTALL_DIR/.new-blog-entry
87
+        echo $"Date: ${DATESTR}" >> $PELICAN_BLOG_INSTALL_DIR/.new-blog-entry
88
+        echo $"Author: $(toxid --showuser)" >> $PELICAN_BLOG_INSTALL_DIR/.new-blog-entry
89
+        echo $'Category: default' >> $PELICAN_BLOG_INSTALL_DIR/.new-blog-entry
90
+        echo $'Tags: blog, tag' >> $PELICAN_BLOG_INSTALL_DIR/.new-blog-entry
91
+        echo  '' >> $PELICAN_BLOG_INSTALL_DIR/.new-blog-entry
92
+        echo $'Add your text here' >> $PELICAN_BLOG_INSTALL_DIR/.new-blog-entry
93
+        echo  '' >> $PELICAN_BLOG_INSTALL_DIR/.new-blog-entry
94
+        echo -n $'To include an image copy it into the /etc/blog/content/images directory, ' >> $PELICAN_BLOG_INSTALL_DIR/.new-blog-entry
95
+        echo $'then link to it with:' >> $PELICAN_BLOG_INSTALL_DIR/.new-blog-entry
96
+        echo  '' >> $PELICAN_BLOG_INSTALL_DIR/.new-blog-entry
97
+        echo $'![My image]({filename}images/myimage.jpg)' >> $PELICAN_BLOG_INSTALL_DIR/.new-blog-entry
98
+        echo  '' >> $PELICAN_BLOG_INSTALL_DIR/.new-blog-entry
99
+    fi
100
+
101
+    if [ -f /usr/bin/emacs ]; then
102
+        emacs -q --load $PELICAN_BLOG_INSTALL_DIR/.emacs-pelican $PELICAN_BLOG_INSTALL_DIR/.new-blog-entry
103
+    else
104
+        editor $PELICAN_BLOG_INSTALL_DIR/.new-blog-entry
105
+    fi
79 106
 
80 107
     if grep -q $"Add your text here" $PELICAN_BLOG_INSTALL_DIR/.new-blog-entry; then
81 108
         return
@@ -108,8 +135,14 @@ function pelican_edit_blog {
108 135
     if [ ! -f $LAST_BLOG_ENTRY ]; then
109 136
         return
110 137
     fi
111
-    editor $LAST_BLOG_ENTRY
112
-    regenerate_blog
138
+
139
+    if [ -f /usr/bin/emacs ]; then
140
+        emacs -q --load $PELICAN_BLOG_INSTALL_DIR/.emacs-pelican $LAST_BLOG_ENTRY
141
+    else
142
+        editor $LAST_BLOG_ENTRY
143
+    fi
144
+
145
+    pelican_regenerate_blog
113 146
 }
114 147
 
115 148
 function pelican_delete_blog {
@@ -653,6 +686,9 @@ function install_pelican {
653 686
 
654 687
     chown -R $MY_USERNAME:$MY_USERNAME $PELICAN_BLOG_INSTALL_DIR
655 688
     chown -R www-data:www-data $PELICAN_BLOG_PATH
689
+
690
+    pelican_editor_config
691
+
656 692
     APP_INSTALLED=1
657 693
 }
658 694