From f29191d71f6d80edff8a4ebaac4b992448f45289 Mon Sep 17 00:00:00 2001 From: Bob Mottram Date: Sun, 26 Mar 2017 12:50:52 +0100 Subject: [PATCH] Custom editor setup for Pelican --- src/freedombone-app-pelican | 68 ++++++++++++++++++++++++++++--------- 1 file changed, 52 insertions(+), 16 deletions(-) diff --git a/src/freedombone-app-pelican b/src/freedombone-app-pelican index 863b0553..7b2b894e 100755 --- a/src/freedombone-app-pelican +++ b/src/freedombone-app-pelican @@ -49,6 +49,27 @@ pelican_variables=(MY_USERNAME PELICAN_BLOG_DOMAIN PELICAN_BLOG_CODE) +function pelican_editor_config { + if [ ! -f $PELICAN_BLOG_INSTALL_DIR/.emacs-pelican ]; then + echo "(add-hook 'before-save-hook 'delete-trailing-whitespace)" > $PELICAN_BLOG_INSTALL_DIR/.emacs-pelican + echo '(setq org-support-shift-select t)' >> $PELICAN_BLOG_INSTALL_DIR/.emacs-pelican + echo '(setq standard-indent 4)' >> $PELICAN_BLOG_INSTALL_DIR/.emacs-pelican + echo '(setq-default tab-width 4)' >> $PELICAN_BLOG_INSTALL_DIR/.emacs-pelican + echo '(setq c-basic-offset 4)' >> $PELICAN_BLOG_INSTALL_DIR/.emacs-pelican + echo '(mouse-wheel-mode t)' >> $PELICAN_BLOG_INSTALL_DIR/.emacs-pelican + echo '(setq make-backup-files t)' >> $PELICAN_BLOG_INSTALL_DIR/.emacs-pelican + echo '(setq version-control t)' >> $PELICAN_BLOG_INSTALL_DIR/.emacs-pelican + echo '(setq backup-directory-alist (quote ((".*" . "~/.emacs_backups/"))))' >> $PELICAN_BLOG_INSTALL_DIR/.emacs-pelican + echo "(setq default-major-mode 'text-mode)" >> $PELICAN_BLOG_INSTALL_DIR/.emacs-pelican + echo "(dolist (hook '(text-mode-hook))" >> $PELICAN_BLOG_INSTALL_DIR/.emacs-pelican + echo ' (add-hook hook (lambda () (flyspell-mode 1))))' >> $PELICAN_BLOG_INSTALL_DIR/.emacs-pelican + echo '(setq-default fill-column 72)' >> $PELICAN_BLOG_INSTALL_DIR/.emacs-pelican + echo '(setq auto-fill-mode 0)' >> $PELICAN_BLOG_INSTALL_DIR/.emacs-pelican + echo "(add-hook 'text-mode-hook 'turn-on-auto-fill)" >> $PELICAN_BLOG_INSTALL_DIR/.emacs-pelican + echo "(setq-default auto-fill-function 'do-auto-fill)" >> $PELICAN_BLOG_INSTALL_DIR/.emacs-pelican + fi +} + function pelican_regenerate_blog { clear echo '' @@ -61,21 +82,27 @@ function pelican_regenerate_blog { function pelican_new_blog { DATESTR=$(date "+%Y-%m-%d %H:%M:%S") - echo $'Title: Blog Post Title' > $PELICAN_BLOG_INSTALL_DIR/.new-blog-entry - echo $"Date: ${DATESTR}" >> $PELICAN_BLOG_INSTALL_DIR/.new-blog-entry - echo $"Author: $(toxid --showuser)" >> $PELICAN_BLOG_INSTALL_DIR/.new-blog-entry - echo $'Category: default' >> $PELICAN_BLOG_INSTALL_DIR/.new-blog-entry - echo $'Tags: blog, tag' >> $PELICAN_BLOG_INSTALL_DIR/.new-blog-entry - echo '' >> $PELICAN_BLOG_INSTALL_DIR/.new-blog-entry - echo $'Add your text here' >> $PELICAN_BLOG_INSTALL_DIR/.new-blog-entry - echo '' >> $PELICAN_BLOG_INSTALL_DIR/.new-blog-entry - echo -n $'To include an image copy it into the /etc/blog/content/images directory, ' >> $PELICAN_BLOG_INSTALL_DIR/.new-blog-entry - echo $'then link to it with:' >> $PELICAN_BLOG_INSTALL_DIR/.new-blog-entry - echo '' >> $PELICAN_BLOG_INSTALL_DIR/.new-blog-entry - echo $'![My image]({filename}images/myimage.jpg)' >> $PELICAN_BLOG_INSTALL_DIR/.new-blog-entry - echo '' >> $PELICAN_BLOG_INSTALL_DIR/.new-blog-entry + if [ ! -f $PELICAN_BLOG_INSTALL_DIR/.new-blog-entry ]; then + echo $'Title: Blog Post Title' > $PELICAN_BLOG_INSTALL_DIR/.new-blog-entry + echo $"Date: ${DATESTR}" >> $PELICAN_BLOG_INSTALL_DIR/.new-blog-entry + echo $"Author: $(toxid --showuser)" >> $PELICAN_BLOG_INSTALL_DIR/.new-blog-entry + echo $'Category: default' >> $PELICAN_BLOG_INSTALL_DIR/.new-blog-entry + echo $'Tags: blog, tag' >> $PELICAN_BLOG_INSTALL_DIR/.new-blog-entry + echo '' >> $PELICAN_BLOG_INSTALL_DIR/.new-blog-entry + echo $'Add your text here' >> $PELICAN_BLOG_INSTALL_DIR/.new-blog-entry + echo '' >> $PELICAN_BLOG_INSTALL_DIR/.new-blog-entry + echo -n $'To include an image copy it into the /etc/blog/content/images directory, ' >> $PELICAN_BLOG_INSTALL_DIR/.new-blog-entry + echo $'then link to it with:' >> $PELICAN_BLOG_INSTALL_DIR/.new-blog-entry + echo '' >> $PELICAN_BLOG_INSTALL_DIR/.new-blog-entry + echo $'![My image]({filename}images/myimage.jpg)' >> $PELICAN_BLOG_INSTALL_DIR/.new-blog-entry + echo '' >> $PELICAN_BLOG_INSTALL_DIR/.new-blog-entry + fi - editor $PELICAN_BLOG_INSTALL_DIR/.new-blog-entry + if [ -f /usr/bin/emacs ]; then + emacs -q --load $PELICAN_BLOG_INSTALL_DIR/.emacs-pelican $PELICAN_BLOG_INSTALL_DIR/.new-blog-entry + else + editor $PELICAN_BLOG_INSTALL_DIR/.new-blog-entry + fi if grep -q $"Add your text here" $PELICAN_BLOG_INSTALL_DIR/.new-blog-entry; then return @@ -108,8 +135,14 @@ function pelican_edit_blog { if [ ! -f $LAST_BLOG_ENTRY ]; then return fi - editor $LAST_BLOG_ENTRY - regenerate_blog + + if [ -f /usr/bin/emacs ]; then + emacs -q --load $PELICAN_BLOG_INSTALL_DIR/.emacs-pelican $LAST_BLOG_ENTRY + else + editor $LAST_BLOG_ENTRY + fi + + pelican_regenerate_blog } function pelican_delete_blog { @@ -653,6 +686,9 @@ function install_pelican { chown -R $MY_USERNAME:$MY_USERNAME $PELICAN_BLOG_INSTALL_DIR chown -R www-data:www-data $PELICAN_BLOG_PATH + + pelican_editor_config + APP_INSTALLED=1 }