Repository: jrblevin/markdown-mode
Pull request #861: Hide wiki markup as part of markdown-toggle-markup-hiding
Author: login: jayemar
Created: 2024-11-17T23:55:32Z | Merged: 2025-04-02T04:52:23Z

When markup hiding is enabled, the markup for markdown-style links is hidden, but the markup for wiki links is not.  This code change fontifies the different sections of wiki links so that they are properly supported by `markdown-toggle-markup-hiding`.

## Related Issues

The changes address issues #557, #782, and #847.

## Type of Change

- [ ] Bug fix (non-breaking change which fixes an issue)
- [x] Improvement (non-breaking change which improves an existing feature)
- [X] New feature (non-breaking change which adds functionality)
- [ ] Breaking change (fix or feature that would cause existing functionality to change)

## Checklist

- [X] I have read the **CONTRIBUTING.md** document.
- [x] I have updated the documentation in the **README.md** file if necessary.
- [X] I have added an entry to **CHANGES.md**.
- [x] I have added tests to cover my changes.
- [X] All new and existing tests passed (using `make test`).



Diff:
diff --git a/CHANGES.md b/CHANGES.md
index b4171603..38b24bfa 100644
--- a/CHANGES.md
+++ b/CHANGES.md
@@ -11,12 +11,14 @@
 
 *   Bug fixes:
     - `markdown-export` should not output stderr content to output file
+    - Hide wikilink markup as part of `markdown-toggle-markup-hiding` [GH-847][]
 
 *   Improvements:
     - Support drag and drop features on Windows and multiple files' drag and drop
     - Added cmark and cmark-gfm to the markdown command list.
     - Disable `imenu-submenus-on-top` by default [GH-882][]
 
+  [gh-847]: https://github.com/jrblevin/markdown-mode/issues/847
   [gh-882]: https://github.com/jrblevin/markdown-mode/issues/882
   [gh-891]: https://github.com/jrblevin/markdown-mode/issues/891
 
diff --git a/README.md b/README.md
index 903a903d..cfb62cf0 100644
--- a/README.md
+++ b/README.md
@@ -61,7 +61,7 @@ using `package.el`. First, configure `package.el` and the MELPA Stable
 repository by adding the following to your `.emacs`, `init.el`,
 or equivalent startup file:
 
-```lisp
+```emacs-lisp
 (require 'package)
 (add-to-list 'package-archives
              '("melpa-stable" . "https://stable.melpa.org/packages/"))
@@ -79,7 +79,7 @@ then you can automatically install and configure `markdown-mode` by
 adding a declaration such as this one to your init file (as an
 example; adjust settings as desired):
 
-```lisp
+```emacs-lisp
 (use-package markdown-mode
   :ensure t
   :mode ("README\\.md\\'" . gfm-mode)
@@ -99,7 +99,7 @@ save the file where Emacs can find it (i.e., a directory in your
 `load-path`). You can then configure `markdown-mode` and `gfm-mode`
 to load automatically by adding the following to your init file:
 
-```lisp
+```emacs-lisp
 (autoload 'markdown-mode "markdown-mode"
    "Major mode for editing Markdown files" t)
 (add-to-list 'auto-mode-alist
@@ -133,7 +133,7 @@ repository as above or install markdown-mode from
 If you clone the repository directly, then make sure that Emacs can
 find it by adding the following line to your startup file:
 
-```lisp
+```emacs-lisp
 (add-to-list 'load-path "/path/to/markdown-mode/repository")
 ```
 
@@ -350,7 +350,7 @@ prefix.  The most commonly used commands are described below.
     preview window to appear at the bottom or right, you can
     customize `markdown-split-window-direction`.
 
-      ```lisp
+      ```emacs-lisp
       ;; Set custom markdown preview function
       (setq markdown-live-preview-window-function #'my-markdown-preview-function)
 
@@ -952,18 +952,17 @@ customization screen.
 
 [Marked 2]: https://itunes.apple.com/us/app/marked-2/id890031187?mt=12&uo=4&at=11l5Vs&ct=mm
 
-## Extensions
-
+## Wiki Links Customization
 Besides supporting the basic Markdown syntax, Markdown Mode also
 includes syntax highlighting for `[[Wiki Links]]`.  This can be
 enabled by setting `markdown-enable-wiki-links` to a non-nil value.
-Wiki links may be followed by pressing <kbd>C-c C-o</kbd> when the point
-is at a wiki link.  Use <kbd>M-p</kbd> and <kbd>M-n</kbd> to quickly jump to the
-previous and next links (including links of other types).
+
 Aliased or piped wiki links of the form `[[link text|PageName]]`
-are also supported.  Since some wikis reverse these components, set
+are supported.  Since some wikis reverse these components, set
 `markdown-wiki-link-alias-first` to nil to treat them as
-`[[PageName|link text]]`.  If `markdown-wiki-link-fontify-missing`
+`[[PageName|link text]]`.
+
+If `markdown-wiki-link-fontify-missing`
 is also non-nil, Markdown Mode will highlight wiki links with
 missing target file in a different color.  By default, Markdown
 Mode only searches for target files in the current directory.
@@ -974,18 +973,31 @@ This value type is a symbol list. Possible values are
 - `parent-directories` : search in parent directories
 - `project` : search under project root
 
-[SmartyPants][] support is possible by customizing `markdown-command`.
+## Extensions
+### SmartyPants
+
+[SmartyPants][] is a free tool for easily translating plain ASCII punctuation
+characters into "smart" typographic punctuation HTML entities. It can perform
+the following transformations:
+- straight quotes ( " and ' ) into “curly” quote HTML entities
+- backticks-style quotes (``like this'') into “curly” quote HTML entities
+- dashes (“--” and “---”) into en- and em-dash entities
+- three consecutive dots (“...”) into an ellipsis entity
+
+SmartyPants support is possible by customizing `markdown-command`.
 If you install `SmartyPants.pl` at, say, `/usr/local/bin/smartypants`,
 then you can set `markdown-command` to `"markdown | smartypants"`.
 You can do this either by using <kbd>M-x customize-group markdown</kbd>
 or by placing the following in your `.emacs` file:
 
-```lisp
+```emacs-lisp
 (setq markdown-command "markdown | smartypants")
 ```
 
 [SmartyPants]: http://daringfireball.net/projects/smartypants/
 
+### LaTeX Mathematical Expressions
+
 Syntax highlighting for mathematical expressions written
 in LaTeX (only expressions denoted by `$..$`, `$$..$$`, or `\[..\]`)
 can be enabled by setting `markdown-enable-math` to a non-nil value,
@@ -1068,7 +1080,7 @@ by `markdown-mode` and `gfm-mode` as described below.
   for line wrapping in buffers.  You can do this with a
   `gfm-mode-hook` as follows:
 
-    ```lisp
+    ```emacs-lisp
     ;; Use visual-line-mode in gfm-mode
     (defun my-gfm-mode-hook ()
       (visual-line-mode 1))
diff --git a/markdown-mode.el b/markdown-mode.el
index 311050f4..6987741a 100644
--- a/markdown-mode.el
+++ b/markdown-mode.el
@@ -263,11 +263,11 @@ This is the default search behavior of Ikiwiki."
   :package-version '(markdown-mode . "2.2"))
 
 (defcustom markdown-wiki-link-search-type nil
-  "Searching type for markdown wiki link.
+  "A list of options for searching for markdown wiki links.
 
-sub-directories: search for wiki link targets in sub directories
-parent-directories: search for wiki link targets in parent directories
-project: search for wiki link targets under project root"
+`sub-directories': search for wiki link targets in sub directories
+`parent-directories': search for wiki link targets in parent directories
+`project': search for wiki link targets under project root"
   :group 'markdown
   :type '(set
           (const :tag "search wiki link from subdirectories" sub-directories)
@@ -278,6 +278,16 @@ project: search for wiki link targets under project root"
 (make-obsolete-variable 'markdown-wiki-link-search-subdirectories 'markdown-wiki-link-search-type "2.5")
 (make-obsolete-variable 'markdown-wiki-link-search-parent-directories 'markdown-wiki-link-search-type "2.5")
 
+(make-obsolete 'markdown-match-wiki-link nil "2.8")
+(make-obsolete 'markdown-highlight-wiki-link nil "2.8")
+(make-obsolete 'markdown-unfontify-region-wiki-links nil "2.8")
+(make-obsolete 'markdown-fontify-region-wiki-links nil "2.8")
+(make-obsolete 'markdown-extend-changed-region nil "2.8")
+(make-obsolete 'markdown-check-change-for-wiki-link nil "2.8")
+(make-obsolete 'markdown-check-change-for-wiki-link-after-change nil "2.8")
+(make-obsolete 'markdown-fontify-buffer-wiki-links nil "2.8")
+(make-obsolete 'markdown-setup-wiki-link-hooks nil "2.8")
+
 (defcustom markdown-wiki-link-fontify-missing nil
   "When non-nil, change wiki link face according to existence of target files.
 This is expensive because it requires checking for the file each time the buffer
@@ -930,7 +940,6 @@ This matches typical bracketed [[WikiLinks]] as well as \\='aliased
 wiki links of the form [[PageName|link text]].
 The meanings of the first and second components depend
 on the value of `markdown-wiki-link-alias-first'.
-
 Group 1 matches the entire link.
 Group 2 matches the opening square brackets.
 Group 3 matches the first component of the wiki link.
@@ -2007,12 +2016,14 @@ inline code fragments and code blocks."
 
 (defface markdown-link-face
   '((t (:inherit link)))
-  "Face for links."
+  "Face for link text, ie the alias portion of a link.
+If a wiki link does not have an alias portion, use this face
+for the entire link."
   :group 'markdown-faces)
 
 (defface markdown-missing-link-face
   '((t (:inherit font-lock-warning-face)))
-  "Face for missing links."
+  "Face for the link text if the link points to a missing file."
   :group 'markdown-faces)
 
 (defface markdown-reference-face
@@ -2283,6 +2294,7 @@ Depending on your font, some reasonable choices are:
                                 (7 markdown-markup-properties)))
     (markdown-fontify-inline-links)
     (markdown-fontify-reference-links)
+    (markdown-fontify-wiki-links)
     (,markdown-regex-reference-definition . ((1 'markdown-markup-face) ; [
                                              (2 'markdown-reference-face) ; label
                                              (3 'markdown-markup-face)    ; ]
@@ -2319,8 +2331,7 @@ Depending on your font, some reasonable choices are:
     (markdown-fontify-sub-superscripts)
     (markdown-match-inline-attributes . ((0 markdown-markup-properties prepend)))
     (markdown-match-leanpub-sections . ((0 markdown-markup-properties)))
-    (markdown-fontify-blockquotes)
-    (markdown-match-wiki-link . ((0 'markdown-link-face prepend))))
+    (markdown-fontify-blockquotes))
   "Syntax highlighting for Markdown files.")
 
 ;; Footnotes
@@ -3422,7 +3433,8 @@ the buffer)."
               (markdown-code-block-at-pos begin))
           (progn (goto-char (min (1+ begin) last))
                  (when (< (point) last)
-                   (markdown-match-wiki-link last)))
+                   (with-no-warnings
+                     (markdown-match-wiki-link last))))
         (set-match-data (list begin end))
         t))))
 
@@ -5254,8 +5266,7 @@ Otherwise, do normal delete by repeating
         (back-to-indentation)
         (unless (looking-at-p "[ \t]*$")
           (setq mincol (min mincol (current-column))))
-        (forward-line 1)
-        ))
+        (forward-line 1)))
     mincol))
 
 (defun markdown-indent-region (beg end arg)
@@ -5730,7 +5741,39 @@ Assumes match data is available for `markdown-regex-italic'."
   "Keymap for `gfm-mode'.
 See also `markdown-mode-map'.")
 
-
+
+;;; Text Properties ===========================================================
+
+(defconst markdown--markup-props (list 'invisible 'markdown-markup
+                                       'rear-nonsticky t
+                                       'font-lock-multiline t))
+
+(defconst markdown--title-props (list 'invisible 'markdown-markup
+                                      'font-lock-multiline t))
+
+(defun markdown--url-props ()
+  (if markdown-mouse-follow-link
+      (list 'invisible 'markdown-markup
+            'keymap markdown-mode-mouse-map
+            'mouse-face 'markdown-highlight-face
+            'font-lock-multiline t)
+    (list 'invisible 'markdown-markup
+          'keymap markdown-mode-mouse-map
+          'font-lock-multiline t)))
+
+(defun markdown--link-props (url &optional title)
+  "Return a property list for URL with optional TITLE."
+  (let ((echo-text (if title (concat title "\n" url) url)))
+    (if markdown-mouse-follow-link
+        (list 'keymap markdown-mode-mouse-map
+              'mouse-face 'markdown-highlight-face
+              'font-lock-multiline t
+              'help-echo echo-text)
+      (list 'keymap markdown-mode-mouse-map
+            'font-lock-multiline t
+            'help-echo echo-text))))
+
+
 ;;; Menu ======================================================================
 
 (easy-menu-define markdown-mode-menu markdown-mode-map
@@ -8208,39 +8251,20 @@ Translate filenames using `markdown-filename-translate-function'."
            (title-start (match-beginning 7))
            (title-end (match-end 7))
            (title (match-string-no-properties 7))
-           ;; Markup part
-           (mp (list 'invisible 'markdown-markup
-                     'rear-nonsticky t
-                     'font-lock-multiline t))
-           ;; Link part (without face)
-           (lp (list 'keymap markdown-mode-mouse-map
-                     'font-lock-multiline t
-                     'help-echo (if title (concat title "\n" url) url)))
-           ;; URL part
-           (up (list 'keymap markdown-mode-mouse-map
-                     'invisible 'markdown-markup
-                     'font-lock-multiline t))
-           ;; URL composition character
-           (url-char (markdown--first-displayable markdown-url-compose-char))
-           ;; Title part
-           (tp (list 'invisible 'markdown-markup
-                     'font-lock-multiline t)))
-      (when markdown-mouse-follow-link
-        (setq lp (append lp '(mouse-face 'markdown-highlight-face)))
-        (setq up (append up '(mouse-face 'markdown-highlight-face))))
+           (url-char (markdown--first-displayable markdown-url-compose-char)))
       (dolist (g '(1 2 4 5 8))
         (when (match-end g)
-          (add-text-properties (match-beginning g) (match-end g) mp)
+          (add-text-properties (match-beginning g) (match-end g) markdown--markup-props)
           (add-face-text-property (match-beginning g) (match-end g) 'markdown-markup-face)))
       ;; Preserve existing faces applied to link part (e.g., inline code)
       (when link-start
-        (add-text-properties link-start link-end lp)
+        (add-text-properties link-start link-end (markdown--link-props url title))
         (add-face-text-property link-start link-end 'markdown-link-face))
       (when url-start
-        (add-text-properties url-start url-end up)
+        (add-text-properties url-start url-end (markdown--url-props))
         (add-face-text-property url-start url-end 'markdown-url-face))
       (when title-start
-        (add-text-properties url-end title-end tp)
+        (add-text-properties url-end title-end markdown--title-props)
         (add-face-text-property url-end title-end 'markdown-link-title-face))
       (when (and markdown-hide-urls url-start)
         (compose-region url-start (or title-end url-end) url-char))
@@ -8253,11 +8277,7 @@ Translate filenames using `markdown-filename-translate-function'."
            (link-end (match-end 3))
            (ref-start (match-beginning 6))
            (ref-end (match-end 6))
-           ;; Markup part
-           (mp (list 'invisible 'markdown-markup
-                     'rear-nonsticky t
-                     'font-lock-multiline t))
-           ;; Link part
+           ;; Link properties
            (lp (list 'keymap markdown-mode-mouse-map
                      'font-lock-multiline t
                      'help-echo (lambda (_ __ pos)
@@ -8268,14 +8288,14 @@ Translate filenames using `markdown-filename-translate-function'."
                                           "Undefined reference"))))))
            ;; URL composition character
            (url-char (markdown--first-displayable markdown-url-compose-char))
-           ;; Reference part
+           ;; Reference properties
            (rp (list 'invisible 'markdown-markup
                      'font-lock-multiline t)))
       (when markdown-mouse-follow-link
         (setq lp (append lp '(mouse-face markdown-highlight-face))))
       (dolist (g '(1 2 4 5 8))
         (when (match-end g)
-          (add-text-properties (match-beginning g) (match-end g) mp)
+          (add-text-properties (match-beginning g) (match-end g) markdown--markup-props)
           (add-face-text-property (match-beginning g) (match-end g) 'markdown-markup-face)))
       (when link-start
         (add-text-properties link-start link-end lp)
@@ -8287,6 +8307,75 @@ Translate filenames using `markdown-filename-translate-function'."
           (compose-region ref-start ref-end url-char)))
       t)))
 
+(defun markdown-fontify-wiki-links (last)
+  "Add text properties to next wiki link from point to LAST."
+  (when (and markdown-enable-wiki-links
+             (markdown-match-inline-generic markdown-regex-wiki-link last))
+    (let* ((begin (match-beginning 1))
+           (end (match-end 1))
+           (beg2 (match-beginning 2))
+           (end2 (match-end 2))
+           (beg3 (match-beginning 3))
+           (end3 (match-end 3))
+           (beg4 (match-beginning 4))
+           (end4 (match-end 4))
+           (beg5 (match-beginning 5))
+           (end5 (match-end 5))
+           (beg6 (match-beginning 6))
+           (end6 (match-end 6))
+           (part1 (match-string-no-properties 3))
+           (part2 (match-string-no-properties 5))
+           (aliasp (string-equal (match-string-no-properties 4) "|"))
+           (file-name (markdown-convert-wiki-link-to-filename (markdown-wiki-link-link)))
+           (file-missing-p (not (file-exists-p file-name))))
+      (if (or (markdown-in-comment-p begin)
+              (markdown-in-comment-p end)
+              (markdown-inline-code-at-pos-p begin)
+              (markdown-inline-code-at-pos-p end)
+              (markdown-code-block-at-pos begin))
+          (progn (goto-char (min (1+ begin) last))
+                 (when (< (point) last)
+                   (markdown-fontify-wiki-links last)))
+        ;; Add text properties for hiding markup
+        (progn
+          ;; Propertize opening and closing brackets
+          (add-text-properties    beg2 end2 markdown--markup-props)
+          (add-face-text-property beg2 end2 'markdown-markup-face)
+          (add-text-properties    beg6 end6 markdown--markup-props)
+          (add-face-text-property beg6 end6 'markdown-markup-face)
+          (if aliasp
+              (progn
+                ;; Propertize pipe separating URL from link text
+                (add-text-properties    beg4 end4 markdown--markup-props)
+                (add-face-text-property beg4 end4 'markdown-markup-face)
+                (if markdown-wiki-link-alias-first
+                    (progn
+                      ;; Properties alias portion of link
+                      (add-text-properties    beg3 end3 (markdown--link-props part2))
+                      (add-face-text-property beg3 end3 'markdown-link-face)
+                      (add-text-properties    beg5 end5 (markdown--url-props))
+                      (add-text-properties    beg5 end5 '(invisible markdown-markup))
+                      (add-face-text-property beg5 end5 'markdown-url-face)
+                      (when (and file-missing-p markdown-wiki-link-fontify-missing)
+                        (put-text-property beg3 end3 'face 'markdown-missing-link-face)))
+                  (progn
+                    ;; Properties URL portion of link
+                    (add-text-properties    beg3 end3 (markdown--url-props))
+                    (add-text-properties    beg3 end3 '(invisible markdown-markup))
+                    (add-face-text-property beg3 end3 'markdown-url-face)
+                    (add-text-properties    beg5 end5 (markdown--link-props part1))
+                    (add-face-text-property beg5 end5 'markdown-link-face)
+                    (when (and file-missing-p markdown-wiki-link-fontify-missing)
+                      (put-text-property beg5 end5 'face 'markdown-missing-link-face)))))
+            (progn
+              ;; Properties link as link text
+              (add-text-properties    beg3 end3 (markdown--link-props part1))
+              (add-face-text-property beg3 end3 'markdown-link-face)
+              (when (and file-missing-p markdown-wiki-link-fontify-missing)
+                (put-text-property beg3 end3 'face 'markdown-missing-link-face)))))
+        (set-match-data (list begin end))
+        t))))
+
 (defun markdown-fontify-angle-uris (last)
   "Add text properties to angle URIs from point to LAST."
   (when (markdown-match-angle-uris last)
@@ -8294,19 +8383,14 @@ Translate filenames using `markdown-filename-translate-function'."
           (url-end (match-end 2)))
       (unless (or (markdown-in-inline-code-p url-start)
                   (markdown-in-inline-code-p url-end))
-        (let* (;; Markup part
-               (mp (list 'face 'markdown-markup-face
-                         'invisible 'markdown-markup
-                         'rear-nonsticky t
-                         'font-lock-multiline t))
-               ;; URI part
+        (let* (;; URI part
                (up (list 'keymap markdown-mode-mouse-map
                          'face 'markdown-plain-url-face
                          'font-lock-multiline t)))
           (when markdown-mouse-follow-link
             (setq up (append up '(mouse-face markdown-highlight-face))))
           (dolist (g '(1 3))
-            (add-text-properties (match-beginning g) (match-end g) mp))
+            (add-text-properties (match-beginning g) (match-end g) markdown--markup-props))
           (add-text-properties url-start url-end up)
           t)))))
 
@@ -8372,6 +8456,11 @@ The location of the alias component depends on the value of
     (or (match-string-no-properties 5) (match-string-no-properties 3))))
 
 (defun markdown--wiki-link-search-types ()
+  "Return a list of the currently selected search types.
+
+Due to deprecated variables, as of markdown-mode version 2.5, the return value
+of this function is the same as the value of the variable
+`markdown-wiki-link-search-type'."
   (let ((ret (and markdown-wiki-link-search-type
                   (cl-copy-list markdown-wiki-link-search-type))))
     (when (and markdown-wiki-link-search-subdirectories
@@ -8383,6 +8472,7 @@ The location of the alias component depends on the value of
     ret))
 
 (defun markdown--project-root ()
+  "Try various approaches to find the project root."
   (or (cl-loop for dir in '(".git" ".hg" ".svn")
                when (locate-dominating-file default-directory dir)
                return it)
@@ -8397,12 +8487,9 @@ The location of the alias component depends on the value of
 (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.  Look in the current
-directory first, then in subdirectories if
-`markdown-wiki-link-search-subdirectories' is non-nil, and then
-in parent directories if
-`markdown-wiki-link-search-parent-directories' is non-nil."
+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
@@ -8493,11 +8580,12 @@ and highlight accordingly."
               (file-name
                (markdown-convert-wiki-link-to-filename
                 (markdown-wiki-link-link))))
-          (if (condition-case nil (file-exists-p file-name) (error nil))
+          (with-no-warnings
+            (if (condition-case nil (file-exists-p file-name) (error nil))
+                (markdown-highlight-wiki-link
+                 highlight-beginning highlight-end 'markdown-link-face)
               (markdown-highlight-wiki-link
-               highlight-beginning highlight-end 'markdown-link-face)
-            (markdown-highlight-wiki-link
-             highlight-beginning highlight-end 'markdown-missing-link-face)))))))
+               highlight-beginning highlight-end 'markdown-missing-link-face))))))))
 
 (defun markdown-extend-changed-region (from to)
   "Extend region given by FROM and TO so that we can fontify all links.
@@ -8533,7 +8621,8 @@ newline after."
               ;; Extend the region to fontify so that it starts
               ;; and ends at safe places.
               (cl-multiple-value-bind (new-from new-to)
-                  (markdown-extend-changed-region from to)
+                  (with-no-warnings
+                    (markdown-extend-changed-region from to))
                 (goto-char new-from)
                 ;; Only refontify when the range contains text with a
                 ;; wiki link face or if the wiki link regexp matches.
@@ -8542,10 +8631,11 @@ newline after."
                            '(markdown-link-face markdown-missing-link-face))
                           (re-search-forward
                            markdown-regex-wiki-link new-to t))
-                  ;; Unfontify existing fontification (start from scratch)
-                  (markdown-unfontify-region-wiki-links new-from new-to)
-                  ;; Now do the fontification.
-                  (markdown-fontify-region-wiki-links new-from new-to))))))
+                  (with-no-warnings
+                   ;; Unfontify existing fontification (start from scratch)
+                   (markdown-unfontify-region-wiki-links new-from new-to)
+                   ;; Now do the fontification.
+                   (markdown-fontify-region-wiki-links new-from new-to)))))))
       (cursor-intangible-mode -1)
       (and (not modified)
            (buffer-modified-p)
@@ -8554,12 +8644,14 @@ newline after."
 (defun markdown-check-change-for-wiki-link-after-change (from to _)
   "Check region between FROM and TO for wiki links and re-fontify as needed.
 Designed to be used with the `after-change-functions' hook."
-  (markdown-check-change-for-wiki-link from to))
+  (with-no-warnings
+    (markdown-check-change-for-wiki-link from to)))
 
 (defun markdown-fontify-buffer-wiki-links ()
   "Refontify all wiki links in the buffer."
   (interactive)
-  (markdown-check-change-for-wiki-link (point-min) (point-max)))
+  (with-no-warnings
+    (markdown-check-change-for-wiki-link (point-min) (point-max))))
 
 (defun markdown-toggle-wiki-links (&optional arg)
   "Toggle support for wiki links.
@@ -8571,33 +8663,36 @@ and disable it otherwise."
             (not markdown-enable-wiki-links)
           (> (prefix-numeric-value arg) 0)))
   (when (called-interactively-p 'interactive)
-    (message "markdown-mode wiki link support %s" (if markdown-enable-wiki-links "enabled" "disabled")))
+    (message "markdown-mode wiki link support %s"
+             (if markdown-enable-wiki-links "enabled" "disabled")))
   (markdown-reload-extensions))
 
 (defun markdown-setup-wiki-link-hooks ()
   "Add or remove hooks for fontifying wiki links.
 These are only enabled when `markdown-wiki-link-fontify-missing' is non-nil."
   ;; Anytime text changes make sure it gets fontified correctly
-  (if (and markdown-enable-wiki-links
-           markdown-wiki-link-fontify-missing)
-      (add-hook 'after-change-functions
-                #'markdown-check-change-for-wiki-link-after-change t t)
-    (remove-hook 'after-change-functions
-                 #'markdown-check-change-for-wiki-link-after-change t))
-  ;; If we left the buffer there is a really good chance we were
-  ;; creating one of the wiki link documents. Make sure we get
-  ;; refontified when we come back.
-  (if (and markdown-enable-wiki-links
-           markdown-wiki-link-fontify-missing)
-      (progn
-        (add-hook 'window-configuration-change-hook
-                  #'markdown-fontify-buffer-wiki-links t t)
-        (markdown-fontify-buffer-wiki-links))
-    (remove-hook 'window-configuration-change-hook
-                 #'markdown-fontify-buffer-wiki-links t)
-    (markdown-unfontify-region-wiki-links (point-min) (point-max))))
+  (with-no-warnings
+    (if (and markdown-enable-wiki-links
+             markdown-wiki-link-fontify-missing)
+        (add-hook 'after-change-functions
+                  #'markdown-check-change-for-wiki-link-after-change t t)
+      (remove-hook 'after-change-functions
+                   #'markdown-check-change-for-wiki-link-after-change t))
+    ;; If we left the buffer there is a really good chance we were
+    ;; creating one of the wiki link documents. Make sure we get
+    ;; refontified when we come back.
+    (if (and markdown-enable-wiki-links
+             markdown-wiki-link-fontify-missing)
+        (progn
+          (add-hook 'window-configuration-change-hook
+                    #'markdown-fontify-buffer-wiki-links t t)
+          (markdown-fontify-buffer-wiki-links))
+      (remove-hook 'window-configuration-change-hook
+                   #'markdown-fontify-buffer-wiki-links t)
+      (with-no-warnings
+        (markdown-unfontify-region-wiki-links (point-min) (point-max)))))  )
+
 
-
 ;;; Following & Doing =========================================================
 
 (defun markdown-follow-thing-at-point (arg)
@@ -8784,9 +8879,7 @@ or span."
   (interactive)
   (when (derived-mode-p 'markdown-mode)
     ;; Refontify buffer
-    (font-lock-flush)
-    ;; Add or remove hooks related to extensions
-    (markdown-setup-wiki-link-hooks)))
+    (font-lock-flush)))
 
 (defun markdown-handle-local-variables ()
   "Run in `hack-local-variables-hook' to update font lock rules.
@@ -10090,6 +10183,19 @@ rows and columns and the column alignment."
                    (propertize link 'face 'markdown-reference-face)
                    (propertize "]" 'face 'markdown-markup-face))
                 (propertize link 'face 'markdown-url-face)))))
+   ;; Hidden URL for wiki links
+   ((and (and markdown-enable-wiki-links
+              (thing-at-point-looking-at markdown-regex-wiki-link))
+         (or markdown-hide-urls markdown-hide-markup))
+    (let* ((aliasp (string-equal (match-string-no-properties 4) "|"))
+           (part1 (match-string-no-properties 3))
+           (part2 (match-string-no-properties 5))
+           (link (if (and aliasp markdown-wiki-link-alias-first) part2 part1))
+           (edit-keys (markdown--substitute-command-keys
+                       "\\[markdown-insert-wiki-link]"))
+           (edit-str (propertize edit-keys 'face 'font-lock-constant-face)))
+      (format "Hidden URL (%s to edit): %s"
+              edit-str (propertize link 'face 'markdown-reference-face))))
    ;; Hidden language name for fenced code blocks
    ((and (markdown-code-block-at-point-p)
          (not (get-text-property (point) 'markdown-pre))
@@ -10224,8 +10330,6 @@ rows and columns and the column alignment."
   (if markdown-hide-markup
       (add-to-invisibility-spec 'markdown-markup)
     (remove-from-invisibility-spec 'markdown-markup))
-  ;; Wiki links
-  (markdown-setup-wiki-link-hooks)
   ;; Math mode
   (when markdown-enable-math (markdown-toggle-math t))
   ;; Add a buffer-local hook to reload after file-local variables are read
diff --git a/tests/markdown-test.el b/tests/markdown-test.el
index 999b7626..79b88315 100644
--- a/tests/markdown-test.el
+++ b/tests/markdown-test.el
@@ -151,7 +151,7 @@ This file is not saved."
                 (unless (eq vals value)
                   (throw 'fail loc))))))
     (when fail-loc
-      (message "Testing range (%d,%d) for property %s equal to %s."
+      (message "Testing that range (%d,%d) for property %s includes %s."
                begin end prop value)
       (message "Expected value (%s) not found in property (%s) at location %d" value prop fail-loc)
       (markdown-test-report-property-range begin end prop))
@@ -162,12 +162,12 @@ This file is not saved."
   (let ((fail-loc
          (catch 'fail
            (dolist (loc (number-sequence begin end))
-             (unless (eq (get-char-property loc prop) value)
+             (unless (equal (get-char-property loc prop) value)
                (throw 'fail loc))))))
     (when fail-loc
-      (message "Testing range (%d,%d) for property %s equal to %s."
+      (message "Testing that range (%d,%d) for property %s equal to %s."
                begin end prop value)
-      (message "Expected value (%s) not found in property (%s) at location %d" value prop fail-loc)
+      (message "Expected value (%s) does not equal property (%s) at location %d" value prop fail-loc)
       (markdown-test-report-property-range begin end prop))
     (should-not fail-loc)))
 
@@ -5766,39 +5766,24 @@ http://example.com \"title\"  )
 
 (ert-deftest test-markdown-wiki-link/font-lock ()
   "Test font lock faces for wiki links."
-  ;; If `temporary-file-directory' contains an inaccessible
-  ;; subdirectory, `markdown-fontify-buffer-wiki-links' fails because
-  ;; it calls `directory-files-recursively' on the directory, which
-  ;; fails because of
-  ;; <https://debbugs.gnu.org/cgi/bugreport.cgi?bug=28567>.  To fix
-  ;; this, we run the entire test in a new subdirectory of
-  ;; `temporary-file-directory', which is guaranteed to not contain
-  ;; any inaccessible directories.
-  (let ((temporary-file-directory
-         (file-name-as-directory (make-temp-file "markdown-test" :dir-flag))))
-    (markdown-test-temp-file "wiki-links.text"
-      (let* ((fn (concat (file-name-directory buffer-file-name)
-                         "inline.text"))
-             (markdown-enable-wiki-links t))
-        ;; Create inline.text in the same temp directory, refontify
-        (write-region "" nil fn nil 1)
-        (markdown-fontify-buffer-wiki-links)
-        ;; Confirm location of first wiki link
-        (should (eq (markdown-next-link) 8))
-        ;; First wiki link doesn't have a corresponding file
-        (markdown-test-range-has-property 8 20 'font-lock-face 'markdown-missing-link-face)
-        ;; Second wiki link doesn't have a corresponding file
-        (should (eq (markdown-next-link) 73))
-        (markdown-test-range-has-property 73 88 'font-lock-face 'markdown-missing-link-face)
-        ;; Move to third wiki link, and create the missing file
-        (should (eq (markdown-next-link) 155))
-        (should (string-equal (markdown-wiki-link-link) "inline"))
-        (markdown-test-range-has-property 155 164 'font-lock-face 'markdown-link-face)
-        ;; Check wiki links in code blocks
-        (markdown-test-range-has-face 360 395 'markdown-pre-face)
-        ;; Remove temporary files
-        (delete-file fn)))
-    (delete-directory temporary-file-directory)))
+  (let ((markdown-wiki-link-alias-first nil)
+        (markdown-wiki-link-search-type '(project))
+        (markdown-wiki-link-fontify-missing t)
+        (markdown-enable-wiki-links t))
+    (markdown-test-file "wiki-links.text"
+      ;; Confirm location of first wiki link
+      (should (eq (markdown-next-link) 8))
+      ;; First wiki link doesn't have a corresponding file
+      (markdown-test-range-has-property 10 18 'face 'markdown-missing-link-face)
+      ;; Second wiki link doesn't have a corresponding file
+      (should (eq (markdown-next-link) 73))
+      (markdown-test-range-has-property 81 86 'face 'markdown-missing-link-face)
+      ;; Third link DOES have a corresponding file
+      (should (eq (markdown-next-link) 155))
+      (should (string-equal (markdown-wiki-link-link) "inline"))
+      (markdown-test-range-has-property 157 162 'face 'markdown-missing-link-face)
+      ;; Check wiki links in code blocks
+      (markdown-test-range-has-face 370 405 'markdown-code-face))))
 
 (ert-deftest test-markdown-wiki-link/kill ()
   "Simple tests for `markdown-kill-thing-at-point' for wiki links."
@@ -7085,7 +7070,7 @@ x|"
     (markdown-indent-region (line-beginning-position) (line-end-position) nil)
     (should (string-equal (buffer-string) " #. abc\n    def\n"))))
 
-(ert-deftest test-markdown-ext/wiki-link-rules ()
+(ert-deftest test-markdown/wiki-link-rules ()
   "Test wiki link search rules and font lock for missing pages."
   (let ((markdown-enable-wiki-links t)
         (markdown-wiki-link-fontify-missing t)
@@ -7095,6 +7080,7 @@ x|"
       (unwind-protect
           (progn
             (markdown-mode)
+            (font-lock-ensure)
             ;; search rules
             (should (string-match-p
                      "/sub/foo$"
@@ -7103,16 +7089,20 @@ x|"
                      (markdown-convert-wiki-link-to-filename "doesnotexist")
                      "doesnotexist"))
             ;; font lock
-            (markdown-test-range-has-property 1 11 'font-lock-face 'markdown-link-face)
-            (markdown-test-range-has-property 14 33 'font-lock-face 'markdown-missing-link-face)
-            (markdown-test-range-has-property 36 42 'font-lock-face 'markdown-link-face)
-            (markdown-test-range-has-property 45 60 'font-lock-face 'markdown-missing-link-face))
+            (markdown-test-range-has-property  1  2 'face 'markdown-markup-face)
+            (markdown-test-range-has-property  3  9 'face 'markdown-link-face)
+            (markdown-test-range-has-property 10 11 'face 'markdown-markup-face)
+            (markdown-test-range-has-property 16 31 'face 'markdown-missing-link-face)
+            (markdown-test-range-has-property 38 40 'face 'markdown-link-face)
+            (markdown-test-range-has-property 47 58 'face 'markdown-missing-link-face)
+            (markdown-test-range-has-property 65 74 'face 'markdown-link-face))
         (kill-buffer)))
     (progn
       (find-file (expand-file-name "wiki/sub/foo" markdown-test-dir))
       (unwind-protect
           (progn
             (markdown-mode)
+            (font-lock-ensure)
             ;; search rules
             (should (string-match-p
                      "/wiki/root$"
@@ -7121,11 +7111,11 @@ x|"
                      (markdown-convert-wiki-link-to-filename "doesnotexist")
                      "doesnotexist"))
             ;; font lock
-            (markdown-test-range-has-property 1 16 'font-lock-face 'markdown-missing-link-face)
-            (markdown-test-range-has-property 19 26 'font-lock-face 'markdown-link-face))
+            (markdown-test-range-has-property  3 14 'face 'markdown-missing-link-face)
+            (markdown-test-range-has-property 21 24 'face 'markdown-link-face))
         (kill-buffer)))))
 
-(ert-deftest test-markdown-ext/wiki-link-keep-match-data ()
+(ert-deftest test-markdown/wiki-link-keep-match-data ()
   "Test that markdown-wiki-link-p keeps expected match data.
 Detail: https://github.com/jrblevin/markdown-mode/pull/590"
   (let ((markdown-enable-wiki-links t)
@@ -7142,7 +7132,7 @@ Detail: https://github.com/jrblevin/markdown-mode/pull/590"
             (should (string= (markdown-wiki-link-link) "Zettel Markdown")))
         (kill-buffer)))))
 
-(ert-deftest test-markdown-ext/wiki-link-search-under-project ()
+(ert-deftest test-markdown/wiki-link-search-under-project ()
   "Test that searching link under project root."
   (let ((markdown-enable-wiki-links t)
         (markdown-link-space-sub-char " ")
@@ -7180,7 +7170,7 @@ Detail: https://github.com/jrblevin/markdown-mode/pull/590"
             (should (string= "FOOBAR.md" (file-name-nondirectory link-file-name)))))
       (kill-buffer))))
 
-(ert-deftest test-markdown-ext/wiki-link-major-mode ()
+(ert-deftest test-markdown/wiki-link-major-mode ()
   "Test major-mode of linked page."
   (let ((markdown-enable-wiki-links t)
         (auto-mode-alist (cons '("bar\\.md" . gfm-mode) auto-mode-alist)))
@@ -7193,7 +7183,7 @@ Detail: https://github.com/jrblevin/markdown-mode/pull/590"
           (should (eq major-mode 'gfm-mode)))
       (kill-buffer))))
 
-(ert-deftest test-markdown-ext/wiki-link-nonexistent-file ()
+(ert-deftest test-markdown/wiki-link-nonexistent-file ()
   "Test following wiki link to nonexistent file visits the buffer."
   (let ((markdown-enable-wiki-links t))
     (find-file (expand-file-name "wiki/foo.md" markdown-test-dir))
diff --git a/tests/wiki-links.text b/tests/wiki-links.text
index 6c33349b..d5473c61 100644
--- a/tests/wiki-links.text
+++ b/tests/wiki-links.text
@@ -9,7 +9,7 @@ point 155.
 Bracketed expressions in code blocks should not be matched as wiki
 links:
 
-```
+```clojure
 {
  :user {
    :repositories [["clojars" {:sign-releases false}]]


Reviews:
user: login: syohex
state: COMMENTED
author_association: COLLABORATOR
submitted_at: 2024-11-18T02:37:55Z
user: login: jayemar
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2024-12-11T05:17:21Z
user: login: syohex
body: Please don't remove public interfaces  all of sudden.  When we remove public interfaces, fist we have to set them as obsoleted function/variable. Then after several version releases, then we will be able to remove them
state: COMMENTED
author_association: COLLABORATOR
submitted_at: 2025-02-21T04:26:18Z
user: login: jayemar
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-04-02T01:24:47Z
user: login: syohex
state: COMMENTED
author_association: COLLABORATOR
submitted_at: 2025-04-02T01:45:39Z

Review comments:
diff_hunk: @@ -8174,6 +8229,33 @@ Translate filenames using `markdown-filename-translate-function'."
           (markdown--browse-url (markdown-link-url)))
     (user-error "Point is not at a Markdown link or URL")))
 
+(defconst markup-props (list 'invisible 'markdown-markup
path: markdown-mode.el
user: login: syohex
body: Please add package prefix to global variables according to Emacs lisp naming convention
created_at: 2024-11-18T02:37:55Z
author_association: COLLABORATOR
diff_hunk: @@ -8174,6 +8229,33 @@ Translate filenames using `markdown-filename-translate-function'."
           (markdown--browse-url (markdown-link-url)))
     (user-error "Point is not at a Markdown link or URL")))
 
+(defconst markup-props (list 'invisible 'markdown-markup
path: markdown-mode.el
user: login: jayemar
body: I fixed this and ran a linter to help catch some other issues
created_at: 2024-12-11T05:17:21Z
author_association: CONTRIBUTOR
diff_hunk: @@ -3394,23 +3395,6 @@ the buffer)."
 (defun markdown-match-yaml-metadata-key (last)
   (markdown-match-propertized-text 'markdown-metadata-key last))
 
-(defun markdown-match-wiki-link (last)
path: markdown-mode.el
user: login: syohex
body: Please don't remove public interfaces, this causes breaking backward compatibility
created_at: 2025-02-21T04:19:22Z
author_association: COLLABORATOR
diff_hunk: @@ -8451,39 +8510,6 @@ See `markdown-wiki-link-p' and `markdown-follow-wiki-link'."
       (markdown-follow-wiki-link (markdown-wiki-link-link) arg)
     (user-error "Point is not at a Wiki Link")))
 
-(defun markdown-highlight-wiki-link (from to face)
path: markdown-mode.el
user: login: syohex
body: Please don't remove public interfaces, this causes breaking backward compatibility
created_at: 2025-02-21T04:19:42Z
author_association: COLLABORATOR
diff_hunk: @@ -8451,39 +8510,6 @@ See `markdown-wiki-link-p' and `markdown-follow-wiki-link'."
       (markdown-follow-wiki-link (markdown-wiki-link-link) arg)
     (user-error "Point is not at a Wiki Link")))
 
-(defun markdown-highlight-wiki-link (from to face)
-  "Highlight the wiki link in the region between FROM and TO using FACE."
-  (put-text-property from to 'font-lock-face face))
-
-(defun markdown-unfontify-region-wiki-links (from to)
path: markdown-mode.el
user: login: syohex
body: Please don't remove public interfaces, this causes breaking backward compatibility
created_at: 2025-02-21T04:19:51Z
author_association: COLLABORATOR
diff_hunk: @@ -8451,39 +8510,6 @@ See `markdown-wiki-link-p' and `markdown-follow-wiki-link'."
       (markdown-follow-wiki-link (markdown-wiki-link-link) arg)
     (user-error "Point is not at a Wiki Link")))
 
-(defun markdown-highlight-wiki-link (from to face)
-  "Highlight the wiki link in the region between FROM and TO using FACE."
-  (put-text-property from to 'font-lock-face face))
-
-(defun markdown-unfontify-region-wiki-links (from to)
-  "Remove wiki link faces from the region specified by FROM and TO."
-  (interactive "*r")
-  (let ((modified (buffer-modified-p)))
-    (remove-text-properties from to '(font-lock-face markdown-link-face))
-    (remove-text-properties from to '(font-lock-face markdown-missing-link-face))
-    ;; remove-text-properties marks the buffer modified in emacs 24.3,
-    ;; undo that if it wasn't originally marked modified
-    (set-buffer-modified-p modified)))
-
-(defun markdown-fontify-region-wiki-links (from to)
path: markdown-mode.el
user: login: syohex
body: Please don't remove public interfaces, this causes breaking backward compatibility
created_at: 2025-02-21T04:20:01Z
author_association: COLLABORATOR
diff_hunk: @@ -8502,50 +8528,6 @@ newline after."
         (setq new-to (point)))
     (cl-values new-from new-to)))
 
-(defun markdown-check-change-for-wiki-link (from to)
path: markdown-mode.el
user: login: syohex
body: Please don't remove public interfaces, this causes breaking backward compatibility
created_at: 2025-02-21T04:20:29Z
author_association: COLLABORATOR
diff_hunk: @@ -8502,50 +8528,6 @@ newline after."
         (setq new-to (point)))
     (cl-values new-from new-to)))
 
-(defun markdown-check-change-for-wiki-link (from to)
-  "Check region between FROM and TO for wiki links and re-fontify as needed."
-  (interactive "*r")
-  (let* ((modified (buffer-modified-p))
-         (buffer-undo-list t)
-         (inhibit-read-only t)
-         deactivate-mark
-         buffer-file-truename)
-    (unwind-protect
-        (save-excursion
-          (save-match-data
-            (save-restriction
-              (cursor-intangible-mode +1) ;; inhibit-point-motion-hooks is obsoleted since Emacs 29
-              ;; Extend the region to fontify so that it starts
-              ;; and ends at safe places.
-              (cl-multiple-value-bind (new-from new-to)
-                  (markdown-extend-changed-region from to)
-                (goto-char new-from)
-                ;; Only refontify when the range contains text with a
-                ;; wiki link face or if the wiki link regexp matches.
-                (when (or (markdown-range-property-any
-                           new-from new-to 'font-lock-face
-                           '(markdown-link-face markdown-missing-link-face))
-                          (re-search-forward
-                           markdown-regex-wiki-link new-to t))
-                  ;; Unfontify existing fontification (start from scratch)
-                  (markdown-unfontify-region-wiki-links new-from new-to)
-                  ;; Now do the fontification.
-                  (markdown-fontify-region-wiki-links new-from new-to))))))
-      (cursor-intangible-mode -1)
-      (and (not modified)
-           (buffer-modified-p)
-           (set-buffer-modified-p nil)))))
-
-(defun markdown-check-change-for-wiki-link-after-change (from to _)
path: markdown-mode.el
user: login: syohex
body: Please don't remove public interfaces, this causes breaking backward compatibility
created_at: 2025-02-21T04:20:41Z
author_association: COLLABORATOR
diff_hunk: @@ -8502,50 +8528,6 @@ newline after."
         (setq new-to (point)))
     (cl-values new-from new-to)))
 
-(defun markdown-check-change-for-wiki-link (from to)
-  "Check region between FROM and TO for wiki links and re-fontify as needed."
-  (interactive "*r")
-  (let* ((modified (buffer-modified-p))
-         (buffer-undo-list t)
-         (inhibit-read-only t)
-         deactivate-mark
-         buffer-file-truename)
-    (unwind-protect
-        (save-excursion
-          (save-match-data
-            (save-restriction
-              (cursor-intangible-mode +1) ;; inhibit-point-motion-hooks is obsoleted since Emacs 29
-              ;; Extend the region to fontify so that it starts
-              ;; and ends at safe places.
-              (cl-multiple-value-bind (new-from new-to)
-                  (markdown-extend-changed-region from to)
-                (goto-char new-from)
-                ;; Only refontify when the range contains text with a
-                ;; wiki link face or if the wiki link regexp matches.
-                (when (or (markdown-range-property-any
-                           new-from new-to 'font-lock-face
-                           '(markdown-link-face markdown-missing-link-face))
-                          (re-search-forward
-                           markdown-regex-wiki-link new-to t))
-                  ;; Unfontify existing fontification (start from scratch)
-                  (markdown-unfontify-region-wiki-links new-from new-to)
-                  ;; Now do the fontification.
-                  (markdown-fontify-region-wiki-links new-from new-to))))))
-      (cursor-intangible-mode -1)
-      (and (not modified)
-           (buffer-modified-p)
-           (set-buffer-modified-p nil)))))
-
-(defun markdown-check-change-for-wiki-link-after-change (from to _)
-  "Check region between FROM and TO for wiki links and re-fontify as needed.
-Designed to be used with the `after-change-functions' hook."
-  (markdown-check-change-for-wiki-link from to))
-
-(defun markdown-fontify-buffer-wiki-links ()
path: markdown-mode.el
user: login: syohex
body: Please don't remove public interfaces, this causes breaking backward compatibility
created_at: 2025-02-21T04:20:47Z
author_association: COLLABORATOR
diff_hunk: @@ -8556,33 +8538,10 @@ and disable it otherwise."
             (not markdown-enable-wiki-links)
           (> (prefix-numeric-value arg) 0)))
   (when (called-interactively-p 'interactive)
-    (message "markdown-mode wiki link support %s" (if markdown-enable-wiki-links "enabled" "disabled")))
+    (message "markdown-mode wiki link support %s"
+             (if markdown-enable-wiki-links "enabled" "disabled")))
   (markdown-reload-extensions))
 
-(defun markdown-setup-wiki-link-hooks ()
path: markdown-mode.el
user: login: syohex
body: Please don't remove public interfaces, this causes breaking backward compatibility
created_at: 2025-02-21T04:20:54Z
author_association: COLLABORATOR
diff_hunk: @@ -278,6 +278,16 @@ project: search for wiki link targets under project root"
 (make-obsolete-variable 'markdown-wiki-link-search-subdirectories 'markdown-wiki-link-search-type "2.5")
 (make-obsolete-variable 'markdown-wiki-link-search-parent-directories 'markdown-wiki-link-search-type "2.5")
 
path: markdown-mode.el
user: login: jayemar
body: These functions are no longer used due to the way wiki links are handled with the changes
created_at: 2025-04-02T01:24:47Z
author_association: CONTRIBUTOR
diff_hunk: @@ -278,6 +278,16 @@ This is the default search behavior of Ikiwiki."
 (make-obsolete-variable 'markdown-wiki-link-search-subdirectories 'markdown-wiki-link-search-type "2.5")
 (make-obsolete-variable 'markdown-wiki-link-search-parent-directories 'markdown-wiki-link-search-type "2.5")
 
+(make-obsolete 'markdown-match-wiki-link nil "2.3")
path: markdown-mode.el
user: login: syohex
body: The 3rd argument of the `make-obsolete` means that **when** this function was made obsolete. So, it should be next release version(`2.8`), not past released versions
created_at: 2025-04-02T01:45:38Z
author_association: COLLABORATOR

PR comments:
user: login: syohex
created_at: 2024-11-18T02:38:23Z
body: - Please fix all byte-compile warnings
- Please add unit tests
author_association: COLLABORATOR
user: login: jayemar
created_at: 2024-12-11T05:25:26Z
body: I fixed the byte compiler warnings and updated the wiki link tests to check that the face properties are properly being set to support markup hiding. I think I've done everything that's called out in `CONTRIBUTING.md`, but if not let me know.

Wiki links seemed to be handled very different front inline and reference links.  I couldn't find a reason for the two different approaches, and it make some of the implementation more difficult than it needed to be, so some of my changes have the effect of treating wiki links much more like reference and inline links.  If I misunderstood this and there's a reason for the two different approaches please let me know.  (That's only if `markdown-enable-wiki-links` is `t`; otherwise they'll still ignored.)
author_association: CONTRIBUTOR
user: login: jayemar
created_at: 2025-01-28T23:00:51Z
body: I see this workflow is halted with the message that it is awaiting approval from a maintainer.  Is there anything I can do or need to do in order to get this branch through the build pipeline?
author_association: CONTRIBUTOR
user: login: jayemar
created_at: 2025-02-21T00:50:47Z
body: @syohex fixed merge conflicts and failing tests from recent updates to mouse face in links
author_association: CONTRIBUTOR
user: login: jayemar
created_at: 2025-03-18T21:19:14Z
body: @syohex Thank you for the feedback.  You're right that I should not have removed public functions so I've added them back in.

However, these functions were originally called via a hook that is no longer necessary as the markup for wiki links is now handled via `markdown-mode-font-lock-keywords` so as to function like other link types.  Given this, should I mark these functions as obsolete?
author_association: CONTRIBUTOR
user: login: syohex
created_at: 2025-03-21T04:02:05Z
body: > should I mark these functions as obsolete?

If it is no longer necessary or we can use another one instead of them, then please mark them as obsoleted variables/functions.
author_association: COLLABORATOR
user: login: jayemar
created_at: 2025-04-02T01:26:41Z
body: @syohex I have marked the functions that are no longer used/necessary as obsolete
author_association: CONTRIBUTOR
user: login: syohex
created_at: 2025-04-02T04:04:40Z
body: Please update CHANGES.md
author_association: COLLABORATOR
user: login: jayemar
created_at: 2025-04-02T04:32:01Z
body: I've updated CHANGES.md to reference the changes from this branch.

And thanks for the changes to fix the byte compiler warnings!
author_association: CONTRIBUTOR