Skip to content

Commit 288db27

Browse files
committed
feat(markdown): Added support for Obsidian-style tags
Closes #491
1 parent e7db75d commit 288db27

10 files changed

Lines changed: 278 additions & 42 deletions

File tree

README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -290,6 +290,7 @@ Extra syntax(needs external parser),
290290
+ Block reference links.
291291
+ Embed file links.
292292
+ Internal links(supports *aliases*).
293+
+ Tags.
293294

294295
+ Wide variety of HTML entity names & codes support.
295296
+ Supported named entities: **786**.

doc/markview.nvim-markdown_inline.txt

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
---@field inline_codes markview.config.markdown_inline.inline_codes Inline code/code span configuration.
2121
---@field internal_links markview.config.markdown_inline.internal_links Internal link configuration.
2222
---@field uri_autolinks markview.config.markdown_inline.uri_autolinks URI autolink configuration.
23+
---@field tags markview.config.markdown_inline.tags Obsidian-style tags configuration.
2324
<
2425

2526
--------------------------------------------------------------------------------
@@ -843,6 +844,39 @@ Each uri autolinks type has the following options.
843844
---@alias markview.config.markdown_inline.uri_autolinks.opts markview.config.__inline
844845
<
845846

847+
--------------------------------------------------------------------------------
848+
tags *markview.nvim-markdown_inline.tags*
849+
850+
>lua
851+
--- Configuration for emails.
852+
---@class markview.config.markdown_inline.tags
853+
---
854+
---@field enable boolean Enable rendering of Obsidian-style tags.
855+
---
856+
---@field default markview.config.markdown_inline.tags.opts Default configuration for tags.
857+
---@field [string] markview.config.markdown_inline.tags.opts Configuration for emails whose name(text after `#`) matches `string`.
858+
<
859+
860+
Changes how `#tags` are shown.
861+
862+
>lua
863+
require("markview.config.markdown_inline").tags = {
864+
default = {
865+
hl = "MarkviewPalette7",
866+
padding_left = " ",
867+
padding_right = " "
868+
},
869+
enable = true
870+
}
871+
<
872+
873+
Each tag type has the following options.
874+
875+
>lua
876+
--[[ Options for a specific email type. ]]
877+
---@alias markview.config.markdown_inline.tags.opts markview.config.__inline
878+
<
879+
846880
Links ~
847881

848882
1: https://github.com/ikatyang/emoji-cheat-sheet/blob/master/README.md

doc/markview.nvim.txt

Lines changed: 76 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
│ wrap {img:2} │ nowrap {img:3}
99
╰─────────────────┴──────────────────╯
1010

11-
Image {img:6} Image {img:5} Image {img:4}
11+
Image {img:7} Image {img:6} Image {img:5} Image {img:4}
1212

1313
📚 Wiki {3} | 🧩 Extras {2} | 📦 Presets {1}
1414

@@ -17,12 +17,13 @@
1717

1818
Core features,
1919

20-
◇ Preview `Markdown`, `HTML`, $LaTeX$, `Typst` & `YAML` within Neovim.
20+
◇ Preview `Markdown`, `HTML`, $LaTeX$, `Typst` & `Asciidoc`(See
21+
integrations#Asciidoc {4}) within Neovim.
2122
◇ Hybrid editing mode! Allowing editing & previewing at the same time.
2223
◇ Splitview! Allows editing & previewing side-by-side.
2324
`Wrap` support(markdown only, at the moment)! Allows using text wrapping while
24-
not losing most rendering features! See integrations#wrap {5} for fixing visual
25-
glitches or integrations#nowrap {4} for disabling it.
25+
not losing most rendering features! See integrations#wrap {6} for fixing visual
26+
glitches or integrations#nowrap {5} for disabling it.
2627
◇ Highly customisable! You can change almost anything using the config!
2728
◇ Dynamic `highlight groups` that automatically updates with the colorscheme!
2829
`Callout`, `checkbox` completions for `blink.cmp` & `nvim-cmp`.
@@ -38,15 +39,41 @@ Table of contents
3839
🧩 Extras ............................................... |markview.nvim-extras|
3940
📦 Presets ............................................. |markview.nvim-presets|
4041

42+
Asciidoc ~
43+
44+
Image {img:8}
45+
46+
Supported syntax,
47+
48+
◇ Admonitions
49+
◇ Checkboxes(also supports custom checkbox states).
50+
◇ Horizontal rules
51+
◇ Literal blocks
52+
◇ Hiding document attributes
53+
◇ Image macros
54+
◇ Keycode macros
55+
◇ List items(ordered & unordered)
56+
◇ Automated TOC(Table of Contents)
57+
58+
Asciidoc inline ~
59+
60+
Supported syntax,
61+
62+
◇ Bold
63+
◇ Highlights
64+
◇ Italic
65+
◇ Monospace
66+
◇ URI
67+
4168
Fancy comments, ~
4269

43-
Image {img:7}
70+
Image {img:9}
4471

4572
▋ Comments are still experimental! The original parser only supports basic
4673
▋ features.
4774

4875
Conventional commit style comments with support for a subset of `markdown` &
49-
`vimdoc`. See integrations#fancy-comments {6} For more info.
76+
`vimdoc`. See integrations#fancy-comments {7} For more info.
5077

5178
Supported syntax,
5279

@@ -68,7 +95,7 @@ Extra syntax(needs external parser),
6895

6996
HTML, ~
7097

71-
Image {img:8}
98+
Image {img:10}
7299

73100
◇ Customizable previews for `container` & `void` elements.
74101
◇ Supports the following container elements out of the box,
@@ -92,7 +119,7 @@ Image {img:8}
92119

93120
LaTeX, ~
94121

95-
Image {img:9}
122+
Image {img:11}
96123

97124
◇ Supports basic LaTeX syntax,
98125
◇ Math blocks(typically `$$...$$`) & inline math(typically `$...$`).
@@ -162,7 +189,7 @@ Image {img:9}
162189

163190
Markdown, ~
164191

165-
Image {img:10}
192+
Image {img:12}
166193

167194
◇ Supports basic markdown(Github-flavored) syntax,
168195
◇ Block quotes(with support for `callouts` & titles).
@@ -191,12 +218,13 @@ Image {img:10}
191218

192219
`Org-mode` like indentation for headings.
193220

194-
Image {img:11}
221+
Image {img:13}
195222

196223
◇ Obsidian/PKM extended syntax support,
197224
◇ Block reference links.
198225
◇ Embed file links.
199226
◇ Internal links(supports aliases).
227+
◇ Tags.
200228

201229
◇ Wide variety of HTML entity names & codes support.
202230
◇ Supported named entities: 786.
@@ -207,7 +235,7 @@ Image {img:11}
207235

208236
Typst, ~
209237

210-
Image {img:12}
238+
Image {img:14}
211239

212240
◇ Supports the following items,
213241
◇ Code blocks.
@@ -235,7 +263,7 @@ Image {img:12}
235263

236264
YAML, ~
237265

238-
Image {img:13}
266+
Image {img:15}
239267

240268
◇ Custom property icons.
241269
◇ Custom property scope decorations.
@@ -258,8 +286,8 @@ Hybrid mode ~
258286
╭──────────────────────┬──────────────────────╮
259287
│ Normal hybrid mode │ Linewise hybrid mode │
260288
├──────────────────────┼──────────────────────┤
261-
│ hybrid_mode {img:14} │ linewise_hybrid_mode │
262-
│ │ {img:15}
289+
│ hybrid_mode {img:16} │ linewise_hybrid_mode │
290+
│ │ {img:17}
263291
╰──────────────────────┴──────────────────────╯
264292

265293
◇ Node-based edit range(default).
@@ -283,7 +311,7 @@ Internal Icon provider features,
283311
◇ 708 different filetype configuration.
284312
◇ Dynamic highlight groups for matching the colorscheme.
285313

286-
Image {img:16}
314+
Image {img:18}
287315

288316
◇ You can use `:Markview traceShow` to see what the plugin has been
289317
doing(including how long some of them took).
@@ -319,8 +347,8 @@ External icon providers,
319347
}
320348
<
321349

322-
◆ mini.icons {7}
323-
◆ nvim-web-devicons {8}
350+
◆ mini.icons {8}
351+
◆ nvim-web-devicons {9}
324352

325353
Parsers,
326354

@@ -342,6 +370,8 @@ Parsers,
342370
`latex`(optional)
343371
`typst`(optional)
344372
`yaml`(optional)
373+
◆ tree-sitter-asciidoc {11}(optional)
374+
See integrations#Asciidoc {10} to see how to get started.
345375

346376
Fonts,
347377

@@ -370,7 +400,7 @@ Add this to your plugin list.
370400
▋ cause more time for the previews to load when starting Neovim!
371401

372402
The plugin should be loaded after your colorscheme to ensure the correct
373-
highlight groups are used. See integrations.transparent_colorschemes {9} if you
403+
highlight groups are used. See integrations.transparent_colorschemes {12} if you
374404
use a transparent colorscheme and the colors don't look right.
375405

376406
>lua
@@ -419,7 +449,7 @@ use a transparent colorscheme and the colors don't look right.
419449

420450
📥 GitHub release ~
421451

422-
Tagged releases can be found in the release page {10}.
452+
Tagged releases can be found in the release page {13}.
423453

424454
▋ 󰋽 Note
425455
▋ `Github releases` may sometimes be slightly behind `main`.
@@ -439,7 +469,7 @@ Tagged releases can be found in the release page {10}.
439469
--------------------------------------------------------------------------------
440470
🧭 Usage
441471

442-
You can find more usage recipes here {11}.
472+
You can find more usage recipes here {14}.
443473

444474
--------------------------------------------------------------------------------
445475
🎇 Commands *markview.nvim-commands*
@@ -581,32 +611,37 @@ Links ~
581611
1: https://github.com/OXY2DEV/markview.nvim/wiki/Presets
582612
2: https://github.com/OXY2DEV/markview.nvim/wiki/Extras
583613
3: https://github.com/OXY2DEV/markview.nvim/wiki/Home
584-
4: https://github.com/OXY2DEV/markview.nvim/wiki/Integrations#-nowrap
585-
5: https://github.com/OXY2DEV/markview.nvim/wiki/Integrations#-wrap
586-
6: https://github.com/OXY2DEV/markview.nvim/wiki/Integrations#-fancy-comments
587-
7: https://github.com/nvim-mini/mini.icons
588-
8: https://github.com/nvim-tree/nvim-web-devicons
589-
9: https://github.com/OXY2DEV/markview.nvim/wiki/Integrations#-transparent-colorschemes
590-
10: https://github.com/OXY2DEV/markview.nvim/releases
591-
11: |markview.nvim-usage|
614+
4: https://github.com/OXY2DEV/markview.nvim/wiki/Usage#Asciidoc
615+
5: https://github.com/OXY2DEV/markview.nvim/wiki/Integrations#-nowrap
616+
6: https://github.com/OXY2DEV/markview.nvim/wiki/Integrations#-wrap
617+
7: https://github.com/OXY2DEV/markview.nvim/wiki/Integrations#-fancy-comments
618+
8: https://github.com/nvim-mini/mini.icons
619+
9: https://github.com/nvim-tree/nvim-web-devicons
620+
10: https://github.com/OXY2DEV/markview.nvim/wiki/Usage#Asciidoc
621+
11: https://github.com/cathaysia/tree-sitter-asciidoc
622+
12: https://github.com/OXY2DEV/markview.nvim/wiki/Integrations#-transparent-colorschemes
623+
13: https://github.com/OXY2DEV/markview.nvim/releases
624+
14: |markview.nvim-usage|
592625

593626
Images ~
594627

595628
1: https://github.com/OXY2DEV/markview.nvim/blob/images/v27/markview.nvim-splitview.png
596629
2: https://github.com/OXY2DEV/markview.nvim/blob/images/v27/markview.nvim-wrap.png
597630
3: https://github.com/OXY2DEV/markview.nvim/blob/images/v27/markview.nvim-nowrap.png
598-
4: https://github.com/OXY2DEV/markview.nvim/blob/images/v27/markview.nvim-comment.png
599-
5: https://github.com/OXY2DEV/markview.nvim/blob/images/v27/markview.nvim-hybrid_mode.png
600-
6: https://github.com/OXY2DEV/markview.nvim/blob/images/v27/markview.nvim-splitview_2.png
601-
7: https://github.com/OXY2DEV/markview.nvim/wiki/images/comment/markview.nvim-comment.injection.png
602-
8: https://github.com/OXY2DEV/markview.nvim/blob/images/v25/repo/html-tokyonight_night.png
603-
9: https://github.com/OXY2DEV/markview.nvim/blob/images/v25/repo/latex-cyberdream.png
604-
10: https://github.com/OXY2DEV/markview.nvim/blob/images/v25/repo/markdown-catppuccin_mocha.png
605-
11: https://github.com/OXY2DEV/markview.nvim/blob/images/v25/repo/markdown_inline-nightfly.png
606-
12: https://github.com/OXY2DEV/markview.nvim/blob/images/v25/repo/typst-kanagawa_wave.png
607-
13: https://github.com/OXY2DEV/markview.nvim/blob/images/v25/repo/yaml-material_palenight.png
608-
14: https://github.com/OXY2DEV/markview.nvim/blob/images/v25/wiki/hybrid_mode.png
609-
15: https://github.com/OXY2DEV/markview.nvim/blob/images/v25/wiki/linewise_hybrid_mode.png
610-
16: https://github.com/OXY2DEV/markview.nvim/blob/images/v25/repo/traceback.png
631+
4: https://github.com/OXY2DEV/markview.nvim/blob/images/v27/markview.nvim-asciidoc.png
632+
5: https://github.com/OXY2DEV/markview.nvim/blob/images/v27/markview.nvim-comment.png
633+
6: https://github.com/OXY2DEV/markview.nvim/blob/images/v27/markview.nvim-hybrid_mode.png
634+
7: https://github.com/OXY2DEV/markview.nvim/blob/images/v27/markview.nvim-splitview_2.png
635+
8: https://github.com/OXY2DEV/markview.nvim/blob/images/v27/markview.nvim-asciidoc.png
636+
9: https://github.com/OXY2DEV/markview.nvim/wiki/images/comment/markview.nvim-comment.injection.png
637+
10: https://github.com/OXY2DEV/markview.nvim/blob/images/v25/repo/html-tokyonight_night.png
638+
11: https://github.com/OXY2DEV/markview.nvim/blob/images/v25/repo/latex-cyberdream.png
639+
12: https://github.com/OXY2DEV/markview.nvim/blob/images/v25/repo/markdown-catppuccin_mocha.png
640+
13: https://github.com/OXY2DEV/markview.nvim/blob/images/v25/repo/markdown_inline-nightfly.png
641+
14: https://github.com/OXY2DEV/markview.nvim/blob/images/v25/repo/typst-kanagawa_wave.png
642+
15: https://github.com/OXY2DEV/markview.nvim/blob/images/v25/repo/yaml-material_palenight.png
643+
16: https://github.com/OXY2DEV/markview.nvim/blob/images/v25/wiki/hybrid_mode.png
644+
17: https://github.com/OXY2DEV/markview.nvim/blob/images/v25/wiki/linewise_hybrid_mode.png
645+
18: https://github.com/OXY2DEV/markview.nvim/blob/images/v25/repo/traceback.png
611646

612647
vim:ft=help:textwidth=80:tabstop=4:noexpandtab:

doc/tags

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -95,6 +95,7 @@ markview.nvim-markdown_inline.hyperlinks markview.nvim-markdown_inline.txt /*mar
9595
markview.nvim-markdown_inline.images markview.nvim-markdown_inline.txt /*markview.nvim-markdown_inline.images*
9696
markview.nvim-markdown_inline.inline_codes markview.nvim-markdown_inline.txt /*markview.nvim-markdown_inline.inline_codes*
9797
markview.nvim-markdown_inline.internal_links markview.nvim-markdown_inline.txt /*markview.nvim-markdown_inline.internal_links*
98+
markview.nvim-markdown_inline.tags markview.nvim-markdown_inline.txt /*markview.nvim-markdown_inline.tags*
9899
markview.nvim-markdown_inline.uri_autolinks markview.nvim-markdown_inline.txt /*markview.nvim-markdown_inline.uri_autolinks*
99100
markview.nvim-presets markview.nvim-presets.txt /*markview.nvim-presets*
100101
markview.nvim-preview markview.nvim-preview.txt /*markview.nvim-preview*

lua/markview/config/markdown_inline.lua

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -515,4 +515,15 @@ return {
515515
hl = "MarkviewPalette2Fg"
516516
},
517517
},
518+
519+
tags = {
520+
enable = true,
521+
522+
default = {
523+
padding_left = " ",
524+
padding_right = " ",
525+
526+
hl = "MarkviewPalette7"
527+
}
528+
},
518529
};

0 commit comments

Comments
 (0)