Function: markdown-match-generic-metadata
markdown-match-generic-metadata is a byte-compiled function defined in
markdown-mode.el.
Signature
(markdown-match-generic-metadata REGEXP LAST)
Documentation
Match metadata declarations specified by REGEXP from point to LAST.
These declarations must appear inside a metadata block that begins at the beginning of the buffer and ends with a blank line (or the end of the buffer).
Source Code
;; Defined in ~/.emacs.d/elpa/markdown-mode-20260321.143/markdown-mode.el
(defun markdown-match-generic-metadata (regexp last)
"Match metadata declarations specified by REGEXP from point to LAST.
These declarations must appear inside a metadata block that begins at
the beginning of the buffer and ends with a blank line (or the end of
the buffer)."
(let* ((first (point))
(end-re "\n[ \t]*\n\\|\n\\'\\|\\'")
(block-begin (goto-char 1))
(block-end (re-search-forward end-re nil t)))
(if (and block-end (> first block-end))
;; Don't match declarations if there is no metadata block or if
;; the point is beyond the block. Move point to point-max to
;; prevent additional searches and return return nil since nothing
;; was found.
(progn (goto-char (point-max)) nil)
;; If a block was found that begins before LAST and ends after
;; point, search for declarations inside it. If the starting is
;; before the beginning of the block, start there. Otherwise,
;; move back to FIRST.
(goto-char (if (< first block-begin) block-begin first))
(if (and (re-search-forward regexp (min last block-end) t)
(markdown-metadata-line-p (point) regexp))
;; If a metadata declaration is found, set match-data and return t.
(let ((key-beginning (match-beginning 1))
(key-end (match-end 1))
(markup-begin (match-beginning 2))
(markup-end (match-end 2))
(value-beginning (match-beginning 3)))
(set-match-data (list key-beginning (point) ; complete metadata
key-beginning key-end ; key
markup-begin markup-end ; markup
value-beginning (point))) ; value
t)
;; Otherwise, move the point to last and return nil
(goto-char last)
nil))))