.emacs.d/init.d/text/web.el

66 lines
2.6 KiB
EmacsLisp

;;; web.el --- Settings for web stuff. -*- lexical-binding: t; -*-
;;; Commentary:
;;; Code:
(require 'basics/package-management)
(require 'misc/completion)
;; Use company auto-completion for (X)HTML.
(use-package company-web
:demand t
:after (company)
:config (add-to-list 'company-backends 'company-web-html))
(use-package web-mode
:custom
(web-mode-markup-indent-offset 2) ; Default indentation level.
:config (defun my/html-surround-with-tag (beg end)
"Surround region with HTML tag."
(interactive "*r")
(if (region-active-p)
(let ((tag (completing-read "Tag: "
'("em" "strong" "blockquote"))))
(insert (concat "<" tag ">"
(delete-and-extract-region beg end)
"</" tag ">")))
(message "No active region")))
:mode (("\\.[ps]?html?$" . web-mode)
("\\.tmpl$" . web-mode) ; Gitea templates.
("\\.php$" . web-mode))
:hook (web-mode . (lambda () (set-fill-column 120)))
:bind ("C-c C-M-h" . my/html-surround-with-tag))
;; Read EPUB ebooks.
(use-package nov
:custom (nov-text-width fill-column)
:custom-face (variable-pitch ((t (:inherit variable-pitch
:family "Source Serif Pro"
:height 1.4))))
:mode ("\\.epub$" . nov-mode))
;; Mode for writing blog posts with hugo.
(when (string= (system-name) "ventiloplattform")
(use-package easy-hugo
:custom ((easy-hugo-basedir "~/Projekte/www/computering.tastytea.de/")
(easy-hugo-url "https://computering.tastytea.de")
(easy-hugo-postdir "content/posts")
(easy-hugo-previewtime (* 60 60 2))
(easy-hugo-default-ext ".adoc")
(easy-hugo-asciidoc-extension "adoc")
(easy-hugo-server-flags "-D")
(easy-hugo-bloglist ; Additional blogs.
'(((easy-hugo-basedir . "~/Projekte/www/thoughtpile.tastytea.de/")
(easy-hugo-url . "https://thoughtpile.tastytea.de")
(easy-hugo-postdir . "content/posts")
(easy-hugo-previewtime . (* 60 60 2)))
((easy-hugo-basedir . "~/Projekte/www/text-de.tastytea.de/")
(easy-hugo-url . "https://text-de.tastytea.de")
(easy-hugo-postdir . "content/posts")
(easy-hugo-previewtime . (* 60 60 2))))))
:bind ("C-c h" . easy-hugo)))
(provide 'text/web)
;;; web.el ends here