Centaur-Emacs
Table of Contents
1. init.el
1.1. Add debug feature
(setq debug-on-error t)
ping 192.168.1.1
2. customer-post.org
2.1. Require file
2.1.1. Website
;;; init-site.el --- Exports org to site. -*- lexical-binding: t; -*- ;;; Commentary: ;;; Code: (use-package htmlize :ensure t ;; :config ;; (setq htmlize-output-type 'font) ) (progn "Settings of `org-export'." (setq org-export-in-background t ;; Hide html built-in style and script. org-html-htmlize-output-type 'inline-css org-html-head-include-default-style nil org-html-head-include-scripts nil )) (eval-after-load 'ox-html (setq user-full-name "YF Lin")) ;;(use-package ox-publish ;; :config (setq org-publish-project-alist '(("orgfiles" ;; ; Sources and destinations for files. :base-directory "~/site/org/" ;; local dir :publishing-directory "~/site/public/" ;; :publishing-directory "/ssh:jack@192.112.245.112:~/site/public/" ;; :preparation-function ;; :complete-function :base-extension "org" ;; :exclude "PrivatePage.org" ;; regexp ;; :include :recursive t ;; ; Publishing action :publishing-function org-html-publish-to-html ;; ; Generic properties :headline-levels 6 ;; org-export-headline-levels :language "en" ;; org-export-default-language :section-numbers nil ;; org-export-with-section-numbers :with-planning t ;; org-export-with-planning :with-priority t ;; org-export-with-priority ; ;; :with-tags not-in-toc ;; org-export-with-tags :with-toc t ;; org-export-with-toc :html-doctype "html5" ;; org-html-doctype ;; :html-metadata-timestamp-format "%Y-%m-%d" ;; org-html-metadata-timestamp-format :html-head-include-default-style nil ;; org-html-head-include-default-style :html-head-include-scripts nil ;; org-html-head-include-scripts :html-head "<link rel=\"shortcut icon\" href=\"themes/assets/xx.png\" type=\"image/x-icon\" /> <link rel=\"stylesheet\" href=\"themes/style.css\" type=\"text/css\" /> <script type=\"module\" src=\"themes/main.js\" defer></script>" ;; org-html-head :html-checkbox-type unicode ;; org-html-checkbox-type ;; :html-indent t ;; org-html-indent ;; :html-link-home "index.html" ;; org-html-link-home ;; :html-link-up "uUP" ;; org-html-link-up :html-validation-link "<a href=\"http://www.thethingsengine.org/\">ThingsEngine</a>" ;; org-html-validation-link ) ;; static assets ("confs" :base-directory "~/site/" :base-extension "js" :publishing-directory "~/site/public/" :recursive nil :publishing-function org-publish-attachment ) ("images" :base-directory "~/site/images/" :base-extension any :publishing-directory "~/site/public/images/" :recursive t :publishing-function org-publish-attachment ) ("themes" :base-directory "~/site/themes/" :base-extension any :publishing-directory "~/site/public/themes/" :recursive t :publishing-function org-publish-attachment ) ("website" :components ("orgfiles" "confs" "images" "themes")) ("statics" :components ("confs" "images" "themes")) ));;) (defun save-and-publish-website() "Save all buffers and publish." (interactive) (when (yes-or-no-p "Really save and publish current project?") (save-some-buffers t) (org-publish-project "website" t) (message "Site published done."))) (defun save-and-publish-statics () "Just copy statics like js, css, and image file .etc." (interactive) (org-publish-project "statics" t) (message "Copy statics done.")) (defun save-and-publish-file () "Save current buffer and publish." (interactive) (save-buffer t) (org-publish-current-file t)) (defun delete-org-and-html () "Delete current org and the relative html when it exists." (interactive) (when (yes-or-no-p "Really delete current org and the relative html?") (let ((fileurl (concat "~/site/public/" (file-name-base (buffer-name)) ".html"))) (if (file-exists-p fileurl) (delete-file fileurl)) (delete-file (buffer-file-name)) (kill-this-buffer) (message "Delete org and the relative html done.")))) (defun just-delete-relative-html () "Just delete the relative html when it exists." (interactive) (when (yes-or-no-p "Really delete the relative html?") (let ((fileurl (concat "~/site/public/" (file-name-base (buffer-name)) ".html"))) (if (file-exists-p fileurl) (progn (delete-file fileurl) (message "Delete the relative html done.") ) (message "None relative html."))))) (define-minor-mode auto-save-and-publish-file-mode "Toggle auto save and publish current file." :global nil :lighter "" (if auto-save-and-publish-file-mode ;; When the mode is enabled (progn (add-hook 'after-save-hook #'save-and-publish-file :append :local)) ;; When the mode is disabled (remove-hook 'after-save-hook #'save-and-publish-file :local))) ;;(use-package auto-save-and-publish-file-mode ;;:hook (org-mode)) (add-hook 'org-mode-hook #'auto-save-and-publish-file-mode) (use-package simple-httpd :ensure t :config (setq httpd-root "~/site/public")) (defun preview-current-buffer-in-browser () "Open current buffer as html." (interactive) (let ((fileurl (concat "http://127.0.0.1:8080/" (file-name-base (buffer-name)) ".html"))) (save-and-publish-file) (unless (httpd-running-p) (httpd-start)) (browse-url fileurl))) (provide 'init-site) ;;; init-site.el ends here
2.1.2. Add Require
(require 'init-site) (require 'sound-wav)
2.2. Addtional Package
2.2.1. Centaur Tab
(use-package centaur-tabs :ensure t :config (setq centaur-tabs-style "bar" centaur-tabs-height 22 centaur-tabs-set-icons t centaur-tabs-plain-icons t centaur-tabs-gray-out-icons t centaur-tabs-set-close-button t centaur-tabs-set-modified-marker t centaur-tabs-show-navigation-buttons t centaur-tabs-set-bar 'left centaur-tabs-cycle-scope 'tabs x-underline-at-descent-line nil) (centaur-tabs-headline-match) ;; (setq centaur-tabs-gray-out-icons 'buffer) ;; (centaur-tabs-enable-buffer-reordering) ;; (setq centaur-tabs-adjust-buffer-order t) (centaur-tabs-mode 1) (setq uniquify-separator "/") (setq uniquify-buffer-name-style 'forward) (defun centaur-tabs-buffer-groups () "`centaur-tabs-buffer-groups' control buffers' group rules. Group centaur-tabs with mode if buffer is derived from `eshell-mode' `emacs-lisp-mode' `dired-mode' `org-mode' `magit-mode'. All buffer name start with * will group to \"Emacs\". Other buffer group by `centaur-tabs-get-group-name' with project name." (list (cond ((ignore-errors (and (string= "*xwidget" (substring (buffer-name) 0 8)) (not (string= "*xwidget-log*" (buffer-name))))) "Xwidget") ((or (string-equal "*" (substring (buffer-name) 0 1)) (memq major-mode '(magit-process-mode magit-status-mode magit-diff-mode magit-log-mode magit-file-mode magit-blob-mode magit-blame-mode ))) "Emacs") ((derived-mode-p 'prog-mode) "Editing") ((derived-mode-p 'dired-mode) "Dired") ((memq major-mode '(helpful-mode help-mode)) "Help") ((memq major-mode '(org-mode org-agenda-clockreport-mode org-src-mode org-agenda-mode org-beamer-mode org-indent-mode org-bullets-mode org-cdlatex-mode org-agenda-log-mode diary-mode)) "OrgMode") (t (centaur-tabs-get-group-name (current-buffer)))))) :hook (dashboard-mode . centaur-tabs-local-mode) (term-mode . centaur-tabs-local-mode) (calendar-mode . centaur-tabs-local-mode) (org-agenda-mode . centaur-tabs-local-mode) (helpful-mode . centaur-tabs-local-mode) :bind ("C-c b" . centaur-tabs-backward) ("C-c n" . centaur-tabs-forward) ("C-c m" . centaur-tabs-forward-group) ("C-c v" . centaur-tabs-backward-group))
2.2.2. insert screenshots
Mojave has a new screenshot capability you get with SHIFT-COMMAND-5. After typing SHIFT-COMMAND-5, select OPTIONS, then select "save to desktop" and then the Dropbox saving funtionality. Clipboard
(use-package org-download :after org :defer nil :custom (org-download-method 'directory) (org-download-image-dir "images") (org-download-heading-lvl nil) (org-download-timestamp "%Y%m%d-%H%M%S_") (org-image-actual-width 300) (org-download-screenshot-method "/usr/local/bin/pngpaste %s") :bind ("C-s-y" . org-download-screenshot) :config (require 'org-download))
2.3. Key Binding
2.3.1. Org-capture
(global-set-key (kbd "s-1") 'org-capture)
- Org-caputure template
(setq org-capture-templates '(("a" "Appointment" entry (file+headline "~/org/GTD/appointment.org" "Appointments") "* TODO %?\n:PROPERTIES:\n\n:END:\nDEADLINE: %^T \n %i\n") ("n" "Note" entry (file+headline "~/org/GTD/notes.org" "Notes") "* Note %?\n%T") ("l" "Link" entry (file+headline "~/org/GTD/links.org" "Links") "* %? %^L %^g \n%T" :prepend t) ("b" "Blog idea" entry (file+headline "~/org/GTD/i.org" "Blog Topics:") "* %?\n%T" :prepend t) ("t" "To Do Item" entry (file+headline "~/org/GTD/task.org" "To Do Items") "* %?\n%T" :prepend t) ("j" "Journal" entry (file+datetree "~/org/GTD/journal.org") "* %?\nEntered on %U\n %i\n %a") ("s" "Screencast" entry (file "~/org/GTD/screencastnotes.org") "* %?\n%i\n")))
2.4. TE-fun
2.4.1. Number to Binary
(defun TE-number-to-bin-string (number) (require 'calculator) (let ((calculator-output-radix 'bin) (calculator-radix-grouping-mode nil)) (calculator-number-to-string number)))
2.5. Latex
(load "auctex.el" nil t t) ;;(load "preview-latex.el" nil t t) (setq TeX-auto-save t) (setq TeX-parse-self t) (setq-default TeX-master nil) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;RefTex;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; (require 'reftex) (add-hook 'LaTeX-mode-hook 'turn-on-reftex) (setq reftex-plug-into-AUCTeX t) (setq reftex-enable-partial-scans t) (setq reftex-save-parse-info t) (setq reftex-use-multiple-selection-buffers t) (setq reftex-toc-split-windows-horizontally t) ;;*toc*buffer on left。 (setq reftex-toc-split-windows-fraction 0.2) ;;*toc*buffer ratio。 (autoload 'reftex-mode "reftex" "RefTeX Minor Mode" t) (autoload 'turn-on-reftex "reftex" "RefTeX Minor Mode" nil) (autoload 'reftex-citation "reftex-cite" "Make citation" nil) (autoload 'reftex-index-phrase-mode "reftex-index" "Phrase mode" t) ;;;;;;;;;;;;;;;;;;;;;;;;;;CDLaTeX;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; (add-hook 'LaTeX-mode-hook 'turn-on-cdlatex) (autoload 'cdlatex-mode "cdlatex" "CDLaTeX Mode" t) (autoload 'turn-on-cdlatex "cdlatex" "CDLaTeX Mode" nil) ;;;;;;;;;;;;;;;;;;;;;;;;;;;LaTex-mode settings;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; (add-hook 'LaTeX-mode-hook (lambda () ;(require 'init-auto-complete-settings) ;(require 'init-yasnippet-settings) (TeX-fold-mode 1) (auto-fill-mode 1) ;;;;;;;;;;;;;;;; flyspell settings (flyspell-mode 1) (setq flyspell-sort-corrections nil) (setq flyspell-doublon-as-error-flag nil) (turn-on-auto-fill) ;;LaTeX mode,turn off auto fold (linum-mode 1) ;;(auto-complete-mode 1) (latex-math-mode 1) (outline-minor-mode 1) (imenu-add-menubar-index) (setq TeX-show-compilation nil) ;;NOT display compilation windows (setq TeX-global-PDF-mode t ;;PDF mode enable, not plain TeX-engine 'default) ;;use xelatex default (setq TeX-clean-confirm nil) (setq TeX-save-query nil) (setq font-latex-fontify-script t) (define-key LaTeX-mode-map (kbd "TAB") 'TeX-complete-symbol) (setq TeX-electric-escape t) ;; press \ then, jump to mini-buffer to input commands ;(setq TeX-view-program-list '(("Evince" "evince %o"))) ;; ; (setq TeX-view-program-selection '((output-pdf "Evince"))) ;(add-to-list 'TeX-command-list '("XeLaTeX" "%`xelatex%(mode)%' %t" TeX-run-TeX nil t)) ;(setq TeX-command-default "XeLaTeX") (setq TeX-fold-env-spec-list (quote (("[comment]" ("comment")) ("[figure]" ("figure")) ("[table]" ("table"))("[itemize]"("itemize"))("[enumerate]"("enumerate"))("[description]"("description"))("[overpic]"("overpic"))("[tabularx]"("tabularx"))("[code]"("code"))("[shell]"("shell"))))) (define-key LaTeX-mode-map (kbd "C-c C-p") 'reftex-parse-all) ;;;;;;deeper directory;;;;;;;;;;;;; ;(setq reftex-section-levels ; '(("part" . 0) ("chapter" . 1) ("section" . 2) ("subsection" . 3) ; ("frametitle" . 4) ("subsubsection" . 4) ("paragraph" . 5) ; ("subparagraph" . 6) ("addchap" . -1) ("addsec" . -2))) (setq LaTeX-section-hook '(LaTeX-section-heading LaTeX-section-title LaTeX-section-toc LaTeX-section-section LaTeX-section-label)) ));;