Differences From
Artifact [02e789626c]:
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)