sbbs.el

Check-in [9cf3c77a3c]
Login
Overview
Comment:added formatting functions for compose-mode
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | master | trunk
Files: files | file ages | folders
SHA3-256: 9cf3c77a3c63613f72df693ddc3940a4fe2226ce53f4e9c5f569c33e57db7cc8
User & Date: philip@warpmail.net on 2020-05-05 19:49:13
Other Links: branch diff | manifest | tags
Context
2020-05-05
19:49
use variable-pitch face for links check-in: 093b218ae8 user: philip@warpmail.net tags: master, trunk
19:49
added formatting functions for compose-mode check-in: 9cf3c77a3c user: philip@warpmail.net tags: master, trunk
2020-04-24
09:30
show spoilers when point is on one check-in: 5794890443 user: philip@warpmail.net tags: master, trunk
Changes
Hide Diffs Side-by-Side Diffs Ignore Whitespace Patch

Modified sbbs.el from [02e789626c] to [a69b270c46].

   484    484           (insert (format ">>%d" nr))
   485    485           (newline))
   486    486         (setq header-line-format (format "Responding to Thread %d" id)
   487    487               sbbs--thread-id id
   488    488               sbbs--board board)
   489    489         (switch-to-buffer (current-buffer)))))
   490    490   
          491  +(defun sbbs-compose-format (style)
          492  +  "Insert "
          493  +  (if (region-active-p)
          494  +      (save-excursion
          495  +        (goto-char (region-beginning))
          496  +        (insert "style")
          497  +        (goto-char (region-end))
          498  +        (insert "style"))
          499  +    (insert style style)
          500  +    (forward-char (- (length style)))))
          501  +
          502  +(defun sbbs-compose-format-code ()
          503  +  "Insert code syntax markers."
          504  +  (interactive)
          505  +  (sbbs-compose-format "```\n"))
          506  +
          507  +(defun sbbs-compose-format-bold ()
          508  +  "Insert bold syntax markers."
          509  +  (interactive)
          510  +  (sbbs-compose-format "**"))
          511  +
          512  +(defun sbbs-compose-format-italic ()
          513  +  "Insert italic syntax markers."
          514  +  (interactive)
          515  +  (sbbs-compose-format "__"))
          516  +
          517  +(defun sbbs-compose-format-verbatim ()
          518  +  "Insert verbatim syntax markers."
          519  +  (interactive)
          520  +  (sbbs-compose-format "=="))
          521  +
          522  +(defun sbbs-compose-format-spoiler ()
          523  +  "Insert spoiler syntax markers."
          524  +  (interactive)
          525  +  (sbbs-compose-format "~~"))
          526  +
          527  +(defun sbbs-compose-unformat ()
          528  +  (interactive)
          529  +  (when (search-backward-regexp "\\(\\*\\*\\|==\\|__\\|~~\\)" nil t)
          530  +    (looking-at (concat "\\(" (regexp-quote (match-string 1)) "\\).*?"
          531  +                        "\\(" (regexp-quote (match-string 1)) "\\)"))
          532  +    (replace-match "" nil nil nil 2)
          533  +    (replace-match "" nil nil nil 1)))
          534  +
   491    535   (defun sbbs-compose-create ()
   492    536     "Upload response or thread to board."
   493    537     (interactive)
   494    538     (let ((board sbbs--board)
   495    539           (url-request-method "POST")
   496    540           (url-request-extra-headers
   497    541            '(("Content-Type" . "application/x-www-form-urlencoded")))
................................................................................
   601    645     (visual-line-mode t)
   602    646     (setq-local revert-buffer-function #'sbbs--reload-thread)
   603    647     (add-hook 'post-command-hook #'sbbs--uncover-spoiler
   604    648               nil t))
   605    649   
   606    650   (defvar sbbs-compose-mode-map
   607    651     (let ((map (make-sparse-keymap)))
          652  +    (define-key map (kbd "C-c C-f C-b") #'sbbs-compose-format-bold)
          653  +    (define-key map (kbd "C-c C-f C-i") #'sbbs-compose-format-italic)
          654  +    (define-key map (kbd "C-c C-f C-v") #'sbbs-compose-format-verbatim)
          655  +    (define-key map (kbd "C-c C-f C-s") #'sbbs-compose-format-spoiler)
          656  +    (define-key map (kbd "C-c C-f C-c") #'sbbs-compose-format-code)
          657  +    (define-key map (kbd "C-c C-f C-d") #'sbbs-compose-unformat)
   608    658       (define-key map (kbd "C-c C-c") #'sbbs-compose-create)
   609    659       map))
   610    660   
   611    661   (defvar sbbs--font-lock
   612    662     ;; stolen/based on from http://textboard.org/prog/81/5
   613    663     '(;; code
   614    664       ("^```\\(.*\n\\)*?```\n?" . 'sbbs--code-face)