You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Commit d91eb92
Browse filesBrowse the repository at this point in the historyBrowse files
feat(docs): add vitepress-blog plugin page, blog and config
- docs: add the BinaryNoir blog with three posts, the blog plugin page and its scopes demo; document Auto Sidebar and Auto Navbar's .sort, .limit and .more, and the glossary's {.off} and first-mention options
- config: wire up vitepress-blog (Markdown, head tags, page data, feeds, dev server and useBlog in the theme), add the RSS icon to the navbar and set the site URL to binarynoir.tech
- deps: vitepress-blog 0.1.1, auto-sidebar 0.9.0, auto-navbar 0.7.0, image-fallback 0.4.2, markdown-it-glossary 0.7.0
Copy file name to clipboardExpand all lines: README.md
+1Lines changed: 1 addition & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -20,6 +20,7 @@ It documents BinaryNoir's open-source VitePress plugins, Vite plugins and comman
20
20
|[`@binarynoir/vitepress-broken-links`](https://github.com/binarynoir/vitepress-broken-links)| Dead links render as text with a fix-it popover instead of failing the build |
21
21
|[`@binarynoir/vitepress-exclude`](https://github.com/binarynoir/vitepress-exclude)|`.exclude` files keep pages out of the build (a draft in `docs/plugins/exclude/` on purpose) |
22
22
|[`@binarynoir/vitepress-readme-index`](https://github.com/binarynoir/vitepress-readme-index)|`README.md` served as a folder's index page, for VuePress migrations |
23
+
|[`@binarynoir/vitepress-blog`](https://github.com/binarynoir/vitepress-blog)| The official [blog](https://binarynoir.tech/blog/) and its RSS feed, plus a scopes demo |
23
24
|[`@binarynoir/vite-plugin-optimize-images`](https://github.com/binarynoir/vite-plugin-optimize-images)| Re-compresses images in the build output |
24
25
|[`@binarynoir/vite-plugin-image-fallback`](https://github.com/binarynoir/vite-plugin-image-fallback)| Placeholder for missing images (one is missing on purpose) |
summary: markdown-it-glossary 0.6.0 lets a single term match in exact case, or in any case, whatever the rest of the site does.
6
+
tags: [release, glossary]
7
+
category: Plugins
8
+
---
9
+
10
+
# Glossary Tooltips 0.6: exact-case terms
11
+
12
+
[Glossary Tooltips](/plugins/glossary/) (`markdown-it-glossary`) 0.6.0 adds case flags for single terms.
13
+
14
+
End a term's heading with `{.exact}` and it only matches in exact case. End it with `{.anycase}` and it matches in any case. Either flag wins over the site, section and page settings, and covers the term's aliases too.
15
+
16
+
```md
17
+
### IT, Information Technology {.exact}
18
+
19
+
The people and systems that keep the computers running.
20
+
```
21
+
22
+
This is for short acronyms that collide with ordinary words when case is ignored: `IT` would otherwise match "it". See [Case sensitivity](/plugins/glossary/#case-sensitivity) for every level the setting can be made at.
23
+
24
+
This release also fixes headings with an attribute block, such as a custom anchor (`### CI {#ci}`): the block is no longer read as part of the term.
description: News and release notes for BinaryNoir's VitePress plugins, Vite plugins and command-line apps.
4
+
blog-index:
5
+
scope: site
6
+
folders: ./
7
+
feed:
8
+
title: BinaryNoir
9
+
description: News and release notes for BinaryNoir's VitePress plugins, Vite plugins and command-line apps.
10
+
---
11
+
12
+
# Blog
13
+
14
+
News and release notes for BinaryNoir's [plugins](/plugins/) and [apps](/apps/). Subscribe with the [RSS feed](/blog/feed.xml){target="_self"} to hear about new releases.
summary: Any page can now be a blog post, with a main blog, folder-scoped section blogs and an RSS feed for each.
6
+
image: /logo-wide-dark.png
7
+
imageAlt: The BinaryNoir logo
8
+
# A wide logo, not a photo: show all of it rather than cropping it to fill the card.
9
+
imageFit: contain
10
+
tags: [release, vitepress]
11
+
category: Plugins
12
+
sticky: true
13
+
---
14
+
15
+
# Introducing the Blog plugin
16
+
17
+
[`@binarynoir/vitepress-blog`](/plugins/blog/) is the newest BinaryNoir plugin. It turns any VitePress page into a blog post.
18
+
19
+
It works like the [Glossary](/plugins/glossary/) and [Markdown Tags](/plugins/markdown-tags/) plugins: you mark pages in their frontmatter, and the build does the rest.
20
+
21
+
-**`blog`** turns a page into a post, with a date, summary, image, authors and tags.
22
+
-**`blog-index`** turns a page into a blog that lists posts: the main blog for the whole site, or a section blog for one folder.
23
+
-**Every blog gets an RSS feed**, and every post gets a byline, newer and older links, and social-card tags.
24
+
25
+
This blog is the first to use it. See the [plugin page](/plugins/blog/) for everything it can do, and the [Scopes Demo](/plugins/blog/demo/) for a main blog and a section blog side by side.
title: 'Sidebar Accordion 0.3: filter long sidebars'
3
+
blog:
4
+
date: 2026-10-16
5
+
summary: Sidebar Accordion 0.3.0 adds a filter field that narrows a long sidebar to the pages that match.
6
+
tags: [release, sidebar-accordion]
7
+
category: Plugins
8
+
---
9
+
10
+
# Sidebar Accordion 0.3: filter long sidebars
11
+
12
+
[Sidebar Accordion](/plugins/sidebar-accordion) 0.3.0 adds a filter field at the top of the sidebar.
13
+
14
+
Type in it and the sidebar narrows to the pages that match, with the groups above each match held open. Clear it and every group goes back to how it was.
15
+
16
+
- Words can match the groups above a page, not just the page's own title.
17
+
- Case and accents are ignored, and matches are highlighted.
18
+
- The field only appears on sidebars with at least 20 links. Change that with `minItems`, and its wording with `labels`.
Copy file name to clipboardExpand all lines: docs/guide/how-this-site-works.md
+20-18Lines changed: 20 additions & 18 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -6,7 +6,7 @@ title: How this site works
6
6
7
7
[[readingTime]]
8
8
9
-
This site is plain VitePress 2 plus fourteen plugins. There is no hand-written navigation anywhere: add a Markdown file in the right folder and it shows up in the sidebar, the navbar, search and the sitemap.
9
+
This site is plain VitePress 2 plus fifteen plugins. There is no hand-written navigation anywhere: add a Markdown file in the right folder and it shows up in the sidebar, the navbar, search and the sitemap.
10
10
11
11
## Folder layout
12
12
@@ -22,6 +22,7 @@ docs/
22
22
exclude/ a .exclude file and the draft it keeps out of the build
23
23
readme-index/ pages served from README.md, as in VuePress
24
24
apps/ user docs for the CLI apps
25
+
blog/ the BinaryNoir blog: news and release notes
25
26
guide/ this section
26
27
reference/ glossary terms and the generated list of every tag
| Top navbar |[Auto Navbar](/plugins/auto-navbar)|`themeConfig.nav` in `config.mts`|
39
-
| One open sidebar group per level, and the Plugins sidebar's filter |[Sidebar Accordion](/plugins/sidebar-accordion)| The theme, plus `collapsed: true` on the sidebar |
40
-
| Left sidebar |[Auto Sidebar](/plugins/auto-sidebar/)|`themeConfig.sidebar` in `config.mts`|
41
-
| Status badges |[Markdown Tags](/plugins/markdown-tags/)|`markdown.config`, plus the theme |
42
-
| "Reading time" box |[Reading Time Tag](/plugins/reading-time-tag)|`markdown.config`|
| Top navbar |[Auto Navbar](/plugins/auto-navbar)|`themeConfig.nav` in `config.mts`|
40
+
| One open sidebar group per level, and the Plugins sidebar's filter |[Sidebar Accordion](/plugins/sidebar-accordion)| The theme, plus `collapsed: true` on the sidebar |
41
+
| Left sidebar |[Auto Sidebar](/plugins/auto-sidebar/)|`themeConfig.sidebar` in `config.mts`|
42
+
| Status badges |[Markdown Tags](/plugins/markdown-tags/)|`markdown.config`, plus the theme |
43
+
| "Reading time" box |[Reading Time Tag](/plugins/reading-time-tag)|`markdown.config`|
| Colored and sized text |[Text Style](/plugins/text-style)|`markdown.config`|
46
+
| File download links |[Downloads](/plugins/downloads)|`markdown.config` and `vite.plugins`|
47
+
| Stray `<tags>` shown as text |[HTML Escape](/plugins/html-escape/)|`markdown.config`, plus the theme |
48
+
| Dead links shown as text |[Broken Links](/plugins/broken-links)|`markdown.config`, plus the theme |
49
+
| Pages left out by `.exclude`|[Exclude](/plugins/exclude/)|`srcExclude` and `vite.plugins`|
50
+
|`README.md` as a folder's index |[README Index](/plugins/readme-index/)|`rewrites` and `markdown.config`|
51
+
| The blog, its post lists, bylines and RSS feeds |[Blog](/plugins/blog/)|`markdown.config`, `transformHead`, `transformPageData`, `buildEnd` and `vite.plugins`, plus the theme |
| Placeholder for a missing image |[Image Fallback](/plugins/image-fallback)|`vite.plugins`, plus the theme |
52
54
53
55
## The config
54
56
55
57
<<< @/.vitepress/config.mts{ts}
56
58
57
59
## The theme
58
60
59
-
The theme registers the badge component and loads its stylesheet, and turns on the four popovers: glossary definitions, the HTML Escape hints that explain broken markup, the Broken Links hints that explain dead links, and the Image Fallback hints that explain missing images:
61
+
The theme registers the badge component, loads the badge and blog stylesheets, and turns on the four popovers: glossary definitions, the HTML Escape hints that explain broken markup, the Broken Links hints that explain dead links, and the Image Fallback hints that explain missing images:
0 commit comments