@@ 1,6 1,6 @@
;;; pkg-writing.el --- Writing and blogging tools -*- lexical-binding: t -*-
-;; Copyright (C) 2024 Cytrogen
+;; Copyright (C) 2026 Cytrogen
;; This file contains:
;; - ox-hugo configuration for blog publishing
@@ 23,7 23,17 @@
(with-eval-after-load 'ox
(require 'ox-hugo)
- (setq org-hugo-base-dir "~/Projects/blog"))
+ (setq org-hugo-base-dir "~/Projects/blog")
+ ;; 导出时保留 LaTeX 公式给 MathJax 处理
+ (setq org-export-with-latex t))
+
+;; ox-gemini for Gemini protocol (gemtext) export
+(unless (package-installed-p 'ox-gemini)
+ (package-refresh-contents)
+ (package-install 'ox-gemini))
+
+(with-eval-after-load 'ox
+ (require 'ox-gemini))
;; Universal Elisp Tags Filter
;; Support for Hexo-style block tags
@@ 35,14 45,38 @@
(format "{%% %s %%}\n%s{%% end%s %%}" type content type))))
(add-to-list 'org-export-filter-special-block-functions 'my/org-export-hexo-universal-block))
+;; 内联着重号支持: [[em:着重内容]]
+;; 在 org 中显示为带下划线的文字,导出为 {% em %}...{% endem %}
+(with-eval-after-load 'org
+ (org-link-set-parameters
+ "em"
+ :follow (lambda (path) (message "着重: %s" path))
+ :export (lambda (path _desc backend _info)
+ (cond
+ ((org-export-derived-backend-p backend 'md 'hugo)
+ (format "{%% em %%}%s{%% endem %%}" path))
+ ((org-export-derived-backend-p backend 'gemini)
+ path)))
+ :face '(:underline t :foreground "dark orange"))
+
+ (org-link-set-parameters
+ "ruby"
+ :follow (lambda (_path) (message "Ruby annotation"))
+ :export (lambda (path desc backend _info)
+ (cond
+ ((org-export-derived-backend-p backend 'md 'hugo)
+ (format "{%% ruby %s %%}%s{%% endruby %%}" path desc))
+ ((org-export-derived-backend-p backend 'gemini)
+ (format "%s(%s)" desc path))))
+ :face '(:overline t :foreground "dark green")))
+
;; YASnippet Configuration
;; Text expansion system
(unless (package-installed-p 'yasnippet)
(package-install 'yasnippet))
-(with-eval-after-load 'yasnippet
- (yas-global-mode 1)
- (yas-reload-all))
+(require 'yasnippet)
+(yas-global-mode 1)
;; Newsletter Tools
;; Custom functions for newsletter generation