Function: markdown-convert-wiki-link-to-filename
markdown-convert-wiki-link-to-filename is a byte-compiled function
defined in markdown-mode.el.
Signature
(markdown-convert-wiki-link-to-filename NAME)
Documentation
Generate a filename from the wiki link NAME.
Spaces in NAME are replaced with markdown-link-space-sub-char.
Search depth is determined by markdown-wiki-link-search-type.
When in gfm-mode, follow GitHub's conventions where [[Test Test]]
and [[test test]] both map to Test-test.ext.
Source Code
;; Defined in ~/.emacs.d/elpa/markdown-mode-20260321.143/markdown-mode.el
(defun markdown-convert-wiki-link-to-filename (name)
"Generate a filename from the wiki link NAME.
Spaces in NAME are replaced with `markdown-link-space-sub-char'.
Search depth is determined by `markdown-wiki-link-search-type'.
When in `gfm-mode', follow GitHub's conventions where [[Test Test]]
and [[test test]] both map to Test-test.ext."
(save-match-data
;; This function must not overwrite match data(PR #590)
(let* ((basename (replace-regexp-in-string
"[[:space:]\n]" markdown-link-space-sub-char name))
(basename (if (and (derived-mode-p 'gfm-mode) (not markdown-wiki-link-retain-case))
(concat (upcase (substring basename 0 1))
(downcase (substring basename 1 nil)))
basename))
(search-types (markdown--wiki-link-search-types))
directory extension default candidates dir)
(when buffer-file-name
(setq directory (file-name-directory buffer-file-name)
extension (file-name-extension buffer-file-name)))
(setq default (concat basename
(when extension (concat "." extension))))
(cond
;; Look in current directory first.
((or (null buffer-file-name)
(file-exists-p default))
default)
;; Possibly search in subdirectories, next.
((and (memq 'sub-directories search-types)
(setq candidates
(directory-files-recursively
directory (concat "^" default "$"))))
(car candidates))
;; Possibly search in parent directories as a last resort.
((and (memq 'parent-directories search-types)
(setq dir (locate-dominating-file directory default)))
(concat dir default))
((and (memq 'project search-types)
(setq candidates
(directory-files-recursively
(markdown--project-root) (concat "^" default "$"))))
(car candidates))
;; If nothing is found, return default in current directory.
(t default)))))