Function: forge--topic-parse-template
forge--topic-parse-template is a byte-compiled function defined in
forge-topic.el.
Signature
(forge--topic-parse-template NAME)
Source Code
;; Defined in ~/.emacs.d/elpa/forge-20260408.1922/forge-topic.el
(defun forge--topic-parse-template (name)
(goto-char (point-min))
(skip-chars-forward "\s\t\n\r")
(if-let ((beg (and (looking-at "^---[\s\t]*$")
(point)))
(end (and (zerop (forward-line))
(re-search-forward "^---[\s\t]*$" nil t)
(match-beginning 0)))
(repoid (oref (forge-get-repository :tracked) id)))
(let-alist (yaml-parse-string (buffer-str beg end)
:object-type 'alist
:sequence-type 'list
:null-object nil
:false-object nil)
(when (stringp .name)
(setq name .name))
(setq name (propertize .name 'face 'bold))
`((prompt . ,(if .about (format "%s — %s" name .about) name))
(title . ,(and .title
(stringp .title)
(string-trim .title)))
(text . ,(string-trim (buffer-str (point))))
;; Prevent ad hock creation or previously unknown labels.
(labels . ,(cl-intersection
(ensure-list .labels)
(forge-sql-car [:select name :from label
:where (= repository $s1)]
repoid)
:test #'equal))
;; Server errors on invalid assignees.
(assignees . ,(cl-intersection
(ensure-list .assignees)
(forge-sql-car [:select login :from assignee
:where (= repository $s1)]
repoid)
:test #'equal))
(draft . ,(and (booleanp .draft) .draft))))
`((prompt . ,(propertize name 'face 'bold))
(text . ,(string-trim (buffer-str))))))