void 0.10.2 → 0.10.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{auth-cmd-DLvXvN-0.mjs → auth-cmd-CblKzAdD.mjs} +2 -2
- package/dist/{better-auth-shared-a7H3wk9J.d.mts → better-auth-shared-jkksALri.d.mts} +2 -2
- package/dist/build-cmd-CJQSRupz.mjs +140 -0
- package/dist/{cache-CHFZmqa5.mjs → cache-CMzjhxHh.mjs} +1 -1
- package/dist/{cancel-deploy-BwpT4U4a.mjs → cancel-deploy-S2N8NSv6.mjs} +1 -1
- package/dist/cli/cli.mjs +203 -42
- package/dist/{client-CTHvucDv.mjs → client-YIzxv2ZO.mjs} +12 -0
- package/dist/{create-project-CruTH_TQ.mjs → create-project-pLQdzEPe.mjs} +1 -1
- package/dist/{db-BxnfKs7f.mjs → db-hAmBumot.mjs} +3 -3
- package/dist/{delete-IQe1O4Re.mjs → delete-CfSe3EJO.mjs} +1 -1
- package/dist/{deploy-CuxXxVgz.mjs → deploy-DpOdwtla.mjs} +3 -3
- package/dist/{domain-Bq6kzr_T.mjs → domain-CkowysQx.mjs} +1 -1
- package/dist/{env-BD3U_0Av.mjs → env-CIwG2y7G.mjs} +1 -1
- package/dist/{env-helpers-ZatKyjen.d.mts → env-helpers-B_ks681T.d.mts} +1 -1
- package/dist/{gen-Dgi4D7GC.mjs → gen-q6McxXgE.mjs} +1 -1
- package/dist/{github-cmd-CD0Z8KCF.mjs → github-cmd-BvEKQmcD.mjs} +169 -8
- package/dist/{handler-DczZlaXR.d.mts → handler-B7rCOy21.d.mts} +3 -3
- package/dist/index.d.mts +3 -3
- package/dist/index.mjs +5 -5
- package/dist/{init-CTe46nIr.mjs → init-CZP69LJu.mjs} +5 -5
- package/dist/{link-BGFW4pHD.mjs → link-BKLElphS.mjs} +2 -2
- package/dist/{list-CbGxdbe7.mjs → list-B7qXBBjo.mjs} +1 -1
- package/dist/{login-v4wle1vn.mjs → login-B3l_sDwT.mjs} +1 -1
- package/dist/{logs-BFgY5Vqc.mjs → logs-AXm660MB.mjs} +1 -1
- package/dist/{mcp-STKL-uWs.mjs → mcp-D2plINxM.mjs} +1 -1
- package/dist/pages/client.d.mts +1 -1
- package/dist/pages/head-client.d.mts +1 -1
- package/dist/pages/head.d.mts +1 -1
- package/dist/pages/index.d.mts +2 -2
- package/dist/pages/islands-plugin.d.mts +1 -1
- package/dist/pages/protocol.d.mts +2 -2
- package/dist/{project-cmd-DZh-vbEL.mjs → project-cmd-InegJruy.mjs} +8 -8
- package/dist/{protocol-63PHtCHS.d.mts → protocol-6UZCowS1.d.mts} +3 -3
- package/dist/{rollback-o0M0Qo_n.mjs → rollback-CHVE-DeT.mjs} +1 -1
- package/dist/runtime/auth.d.mts +1 -1
- package/dist/runtime/better-auth-pg.d.mts +1 -1
- package/dist/runtime/better-auth.d.mts +1 -1
- package/dist/runtime/client-react.d.mts +2 -2
- package/dist/runtime/client-solid.d.mts +2 -2
- package/dist/runtime/client-svelte.d.mts +2 -2
- package/dist/runtime/client-vue.d.mts +2 -2
- package/dist/runtime/client.d.mts +2 -2
- package/dist/runtime/env-helpers.d.mts +1 -1
- package/dist/runtime/env-public-client.d.mts +1 -1
- package/dist/runtime/env-public.d.mts +2 -2
- package/dist/runtime/fetch-stream.d.mts +1 -1
- package/dist/runtime/fetch.d.mts +1 -1
- package/dist/runtime/handler.d.mts +1 -1
- package/dist/runtime/live.d.mts +2 -2
- package/dist/runtime/validator.d.mts +1 -1
- package/dist/runtime/ws-server.d.mts +2 -2
- package/dist/runtime/ws.d.mts +3 -3
- package/dist/{secret-gs_yyGZL.mjs → secret-CVKwIOm3.mjs} +1 -1
- package/package.json +2 -2
- package/skills/void/docs/guide/pages-routing/markdown.md +12 -0
- package/skills/void/docs/node_modules/void/node_modules/@void/md/README.md +2 -1
- package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/markdown-it-footnote/README.md +135 -0
- package/skills/void/docs/reference/cli.md +75 -14
- /package/dist/{auth-nEUVHuFI.d.mts → auth-Dz2CCn4T.d.mts} +0 -0
- /package/dist/{fetch-error-BQMdPvge.d.mts → fetch-error-B6RaJ-eZ.d.mts} +0 -0
- /package/dist/{head-JAH2l3fg.d.mts → head-eOUCWUNy.d.mts} +0 -0
- /package/dist/{prepare-DH2WnEpD.mjs → prepare-DRRboRqH.mjs} +0 -0
- /package/dist/{providers-BkiAlEad.d.mts → providers-BJIoduK9.d.mts} +0 -0
- /package/dist/{runner-pg-BAheiT6v.mjs → runner-pg-EuhrFW3D.mjs} +0 -0
- /package/dist/{skills--OMgLmXW.mjs → skills-Dl3u05da.mjs} +0 -0
- /package/dist/{standard-schema-BCBv-QaP.d.mts → standard-schema-Cy0lfeWv.d.mts} +0 -0
- /package/dist/{subcommand-prompt-ClwpLlKD.mjs → subcommand-prompt-B8ng0FTS.mjs} +0 -0
- /package/dist/{types-BnHMXezo.d.mts → types-BodZGegX.d.mts} +0 -0
- /package/dist/{yarn-pnp-DhCHHLAz.mjs → yarn-pnp-WLW2IHUY.mjs} +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { n as AuthState, r as AuthUser, t as AuthSession } from "../auth-
|
|
1
|
+
import { n as AuthState, r as AuthUser, t as AuthSession } from "../auth-Dz2CCn4T.mjs";
|
|
2
2
|
import { auth, createAuthClient } from "./auth-client-vue.mjs";
|
|
3
|
-
import { t as FetchError } from "../fetch-error-
|
|
3
|
+
import { t as FetchError } from "../fetch-error-B6RaJ-eZ.mjs";
|
|
4
4
|
import { fetch } from "./fetch.mjs";
|
|
5
5
|
import { fetchStream } from "./fetch-stream.mjs";
|
|
6
6
|
export { type AuthSession, type AuthState, type AuthUser, FetchError, FetchError as StreamError, auth, createAuthClient, fetch, fetchStream };
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { n as AuthState, r as AuthUser, t as AuthSession } from "../auth-
|
|
1
|
+
import { n as AuthState, r as AuthUser, t as AuthSession } from "../auth-Dz2CCn4T.mjs";
|
|
2
2
|
import { auth, createAuthClient } from "./auth-client.mjs";
|
|
3
|
-
import { t as FetchError } from "../fetch-error-
|
|
3
|
+
import { t as FetchError } from "../fetch-error-B6RaJ-eZ.mjs";
|
|
4
4
|
import { fetch } from "./fetch.mjs";
|
|
5
5
|
import { fetchStream } from "./fetch-stream.mjs";
|
|
6
6
|
export { type AuthSession, type AuthState, type AuthUser, FetchError, FetchError as StreamError, auth, createAuthClient, fetch, fetchStream };
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { a as getSecretOverride, c as oneOf, i as email, l as string, n as SECRET_OVERRIDE_SYMBOL, o as json, r as boolean, s as number, t as EnvSchema, u as url } from "../env-helpers-
|
|
1
|
+
import { a as getSecretOverride, c as oneOf, i as email, l as string, n as SECRET_OVERRIDE_SYMBOL, o as json, r as boolean, s as number, t as EnvSchema, u as url } from "../env-helpers-B_ks681T.mjs";
|
|
2
2
|
export { EnvSchema, SECRET_OVERRIDE_SYMBOL, boolean, email, getSecretOverride, json, number, oneOf, string, url };
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { c as oneOf, i as email, l as string, o as json, r as boolean, s as number, t as EnvSchema, u as url } from "../env-helpers-
|
|
1
|
+
import { c as oneOf, i as email, l as string, o as json, r as boolean, s as number, t as EnvSchema, u as url } from "../env-helpers-B_ks681T.mjs";
|
|
2
2
|
|
|
3
3
|
//#region src/runtime/env-public-client.d.ts
|
|
4
4
|
declare const env: Record<string, unknown>;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/// <reference types="@cloudflare/workers-types" />
|
|
2
|
-
import { t as StandardSchemaV1 } from "../standard-schema-
|
|
3
|
-
import { c as oneOf, i as email, l as string, o as json, r as boolean, s as number, t as EnvSchema, u as url } from "../env-helpers-
|
|
2
|
+
import { t as StandardSchemaV1 } from "../standard-schema-Cy0lfeWv.mjs";
|
|
3
|
+
import { c as oneOf, i as email, l as string, o as json, r as boolean, s as number, t as EnvSchema, u as url } from "../env-helpers-B_ks681T.mjs";
|
|
4
4
|
import * as _$_cloudflare_sandbox0 from "@cloudflare/sandbox";
|
|
5
5
|
|
|
6
6
|
//#region src/runtime/env-public.d.ts
|
package/dist/runtime/fetch.d.mts
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
/// <reference types="@cloudflare/workers-types" />
|
|
2
|
-
import { C as defer, E as ValidatorSlots, S as InferProps, T as HandlerInput, _ as defineQueue, a as CloudEnv, b as Deferred, c as QueueRetryOptions, d as TypedQueueHandler, f as VoidAssetRewriteError, g as defineMiddleware, h as defineHead, i as CloudContextVariables, l as RenderAssetTags, m as defineHandler, n as CloudBindings, o as QueueBatch, p as basicAuth, r as CloudContext, s as QueueMessage, t as BasicAuthOptions, u as TypedHandler, v as defineRender, w as ValidationError, y as defineScheduled } from "../handler-
|
|
2
|
+
import { C as defer, E as ValidatorSlots, S as InferProps, T as HandlerInput, _ as defineQueue, a as CloudEnv, b as Deferred, c as QueueRetryOptions, d as TypedQueueHandler, f as VoidAssetRewriteError, g as defineMiddleware, h as defineHead, i as CloudContextVariables, l as RenderAssetTags, m as defineHandler, n as CloudBindings, o as QueueBatch, p as basicAuth, r as CloudContext, s as QueueMessage, t as BasicAuthOptions, u as TypedHandler, v as defineRender, w as ValidationError, y as defineScheduled } from "../handler-B7rCOy21.mjs";
|
|
3
3
|
export { BasicAuthOptions, CloudBindings, CloudContext, CloudContextVariables, CloudEnv, Deferred, HandlerInput, InferProps, QueueBatch, QueueMessage, QueueRetryOptions, RenderAssetTags, TypedHandler, TypedQueueHandler, ValidationError, ValidatorSlots, VoidAssetRewriteError, basicAuth, defer, defineHandler, defineHead, defineMiddleware, defineQueue, defineRender, defineScheduled };
|
package/dist/runtime/live.d.mts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/// <reference types="@cloudflare/workers-types" />
|
|
2
|
-
import { r as AuthUser } from "../auth-
|
|
3
|
-
import { a as CloudEnv, r as CloudContext } from "../handler-
|
|
2
|
+
import { r as AuthUser } from "../auth-Dz2CCn4T.mjs";
|
|
3
|
+
import { a as CloudEnv, r as CloudContext } from "../handler-B7rCOy21.mjs";
|
|
4
4
|
|
|
5
5
|
//#region src/runtime/live.d.ts
|
|
6
6
|
type MaybePromise<T> = T | Promise<T>;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { D as runValidation, E as ValidatorSlots, T as HandlerInput } from "../handler-
|
|
1
|
+
import { D as runValidation, E as ValidatorSlots, T as HandlerInput } from "../handler-B7rCOy21.mjs";
|
|
2
2
|
export { HandlerInput, ValidatorSlots, runValidation };
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { n as AuthState } from "../auth-
|
|
2
|
-
import { i as VoidAuthRuntimeOptions, n as VoidAuthEnv } from "../better-auth-shared-
|
|
1
|
+
import { n as AuthState } from "../auth-Dz2CCn4T.mjs";
|
|
2
|
+
import { i as VoidAuthRuntimeOptions, n as VoidAuthEnv } from "../better-auth-shared-jkksALri.mjs";
|
|
3
3
|
import { AnyWebSocketDefinition } from "./ws.mjs";
|
|
4
4
|
|
|
5
5
|
//#region src/runtime/ws-server.d.ts
|
package/dist/runtime/ws.d.mts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { r as AuthUser } from "../auth-
|
|
2
|
-
import { t as StandardSchemaV1 } from "../standard-schema-
|
|
3
|
-
import { a as CloudEnv } from "../handler-
|
|
1
|
+
import { r as AuthUser } from "../auth-Dz2CCn4T.mjs";
|
|
2
|
+
import { t as StandardSchemaV1 } from "../standard-schema-Cy0lfeWv.mjs";
|
|
3
|
+
import { a as CloudEnv } from "../handler-B7rCOy21.mjs";
|
|
4
4
|
import { WebSocketRouteMap } from "void/routes";
|
|
5
5
|
|
|
6
6
|
//#region src/runtime/ws.d.ts
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { n as cliTitle } from "./output-DeiS4oEX.mjs";
|
|
2
|
-
import { f as getToken, n as PlatformClient } from "./client-
|
|
2
|
+
import { f as getToken, n as PlatformClient } from "./client-YIzxv2ZO.mjs";
|
|
3
3
|
import { _ as me, c as R, g as ge, n as Ce, u as Se, v as ue, x as q, y as ye } from "./dist-abzUneor.mjs";
|
|
4
4
|
import { r as readProjectConfig } from "./project-CH9pdo16.mjs";
|
|
5
5
|
import { r as resolveProjectBySlug, t as getRequestedProjectSlug } from "./resolve-project-D4O1_fZz.mjs";
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "void",
|
|
3
|
-
"version": "0.10.
|
|
3
|
+
"version": "0.10.4",
|
|
4
4
|
"repository": {
|
|
5
5
|
"type": "git",
|
|
6
6
|
"url": "git+https://github.com/voidzero-dev/void.git",
|
|
@@ -353,7 +353,7 @@
|
|
|
353
353
|
"valibot": ">=1.0.0-beta.7",
|
|
354
354
|
"vite": "^8.0.0",
|
|
355
355
|
"zod": "^3.25.0 || ^4.0.0",
|
|
356
|
-
"@void/md": "0.10.
|
|
356
|
+
"@void/md": "0.10.4"
|
|
357
357
|
},
|
|
358
358
|
"peerDependenciesMeta": {
|
|
359
359
|
"@void/md": {
|
|
@@ -437,6 +437,18 @@ Import code from external files:
|
|
|
437
437
|
|
|
438
438
|
Shortcodes convert to unicode: `:tada:` becomes :tada:, `:rocket:` becomes :rocket:.
|
|
439
439
|
|
|
440
|
+
### Footnotes
|
|
441
|
+
|
|
442
|
+
Reference a footnote inline and define it anywhere in the document:
|
|
443
|
+
|
|
444
|
+
```md
|
|
445
|
+
Here is a statement with a footnote.[^1]
|
|
446
|
+
|
|
447
|
+
[^1]: And here is the footnote body.
|
|
448
|
+
```
|
|
449
|
+
|
|
450
|
+
The references and definitions render into a linked footnote list at the end of the content.
|
|
451
|
+
|
|
440
452
|
### Attributes
|
|
441
453
|
|
|
442
454
|
Add classes, IDs, or attributes to any element:
|
|
@@ -115,6 +115,7 @@ Full VitePress-parity feature set:
|
|
|
115
115
|
- **Custom containers** — `:::tip`, `:::info`, `:::warning`, `:::danger`, `:::details`
|
|
116
116
|
- **GitHub alerts** — `> [!NOTE]`, `> [!TIP]`, `> [!WARNING]`, `> [!IMPORTANT]`, `> [!CAUTION]`
|
|
117
117
|
- **Emoji** — `:emoji_name:` shortcodes
|
|
118
|
+
- **Footnotes** — `text[^1]` refs with matching `[^1]: definition` blocks
|
|
118
119
|
- **Attributes** — `{.class #id}` on elements via `markdown-it-attrs`
|
|
119
120
|
- **Anchor links** — auto-generated heading anchors
|
|
120
121
|
- **Table of contents** — `[[toc]]` directive
|
|
@@ -143,7 +144,7 @@ import '@void/md/theme.css'; // or theme-content.css
|
|
|
143
144
|
|
|
144
145
|
## Tests
|
|
145
146
|
|
|
146
|
-
- `test/unit/compile.test.ts` — compilation pipeline: basic, frontmatter, title extraction, headings, Shiki, emoji, anchors
|
|
147
|
+
- `test/unit/compile.test.ts` — compilation pipeline: basic, frontmatter, title extraction, headings, Shiki, emoji, footnotes, anchors
|
|
147
148
|
- `test/unit/extract-script.test.ts` — script extraction: island imports, client code, edge cases
|
|
148
149
|
- `test/unit/plugins.test.ts` — markdown-it plugins: containers, GitHub alerts, links, images, line numbers, emoji, TOC
|
|
149
150
|
- `test/unit/emit-vue.test.ts` — Vue component emission with and without islands
|
|
@@ -0,0 +1,135 @@
|
|
|
1
|
+
# markdown-it-footnote
|
|
2
|
+
|
|
3
|
+
[](https://github.com/markdown-it/markdown-it-footnote/actions/workflows/ci.yml)
|
|
4
|
+
[](https://www.npmjs.org/package/markdown-it-footnote)
|
|
5
|
+
[](https://coveralls.io/r/markdown-it/markdown-it-footnote?branch=master)
|
|
6
|
+
|
|
7
|
+
> Footnotes plugin for [markdown-it](https://github.com/markdown-it/markdown-it) markdown parser.
|
|
8
|
+
|
|
9
|
+
__v2.+ requires `markdown-it` v5.+, see changelog.__
|
|
10
|
+
|
|
11
|
+
Markup is based on [pandoc](http://johnmacfarlane.net/pandoc/README.html#footnotes) definition.
|
|
12
|
+
|
|
13
|
+
__Normal footnote__:
|
|
14
|
+
|
|
15
|
+
```
|
|
16
|
+
Here is a footnote reference,[^1] and another.[^longnote]
|
|
17
|
+
|
|
18
|
+
[^1]: Here is the footnote.
|
|
19
|
+
|
|
20
|
+
[^longnote]: Here's one with multiple blocks.
|
|
21
|
+
|
|
22
|
+
Subsequent paragraphs are indented to show that they
|
|
23
|
+
belong to the previous footnote.
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
html:
|
|
27
|
+
|
|
28
|
+
```html
|
|
29
|
+
<p>Here is a footnote reference,<sup class="footnote-ref"><a href="#fn1" id="fnref1">[1]</a></sup> and another.<sup class="footnote-ref"><a href="#fn2" id="fnref2">[2]</a></sup></p>
|
|
30
|
+
<p>This paragraph won’t be part of the note, because it
|
|
31
|
+
isn’t indented.</p>
|
|
32
|
+
<hr class="footnotes-sep">
|
|
33
|
+
<section class="footnotes">
|
|
34
|
+
<ol class="footnotes-list">
|
|
35
|
+
<li id="fn1" class="footnote-item"><p>Here is the footnote. <a href="#fnref1" class="footnote-backref">↩</a></p>
|
|
36
|
+
</li>
|
|
37
|
+
<li id="fn2" class="footnote-item"><p>Here’s one with multiple blocks.</p>
|
|
38
|
+
<p>Subsequent paragraphs are indented to show that they
|
|
39
|
+
belong to the previous footnote. <a href="#fnref2" class="footnote-backref">↩</a></p>
|
|
40
|
+
</li>
|
|
41
|
+
</ol>
|
|
42
|
+
</section>
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
__Inline footnote__:
|
|
46
|
+
|
|
47
|
+
```
|
|
48
|
+
Here is an inline note.^[Inlines notes are easier to write, since
|
|
49
|
+
you don't have to pick an identifier and move down to type the
|
|
50
|
+
note.]
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
html:
|
|
54
|
+
|
|
55
|
+
```html
|
|
56
|
+
<p>Here is an inline note.<sup class="footnote-ref"><a href="#fn1" id="fnref1">[1]</a></sup></p>
|
|
57
|
+
<hr class="footnotes-sep">
|
|
58
|
+
<section class="footnotes">
|
|
59
|
+
<ol class="footnotes-list">
|
|
60
|
+
<li id="fn1" class="footnote-item"><p>Inlines notes are easier to write, since
|
|
61
|
+
you don’t have to pick an identifier and move down to type the
|
|
62
|
+
note. <a href="#fnref1" class="footnote-backref">↩</a></p>
|
|
63
|
+
</li>
|
|
64
|
+
</ol>
|
|
65
|
+
</section>
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
|
|
69
|
+
## Install
|
|
70
|
+
|
|
71
|
+
node.js, browser:
|
|
72
|
+
|
|
73
|
+
```bash
|
|
74
|
+
npm install markdown-it-footnote --save
|
|
75
|
+
bower install markdown-it-footnote --save
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
## Use
|
|
79
|
+
|
|
80
|
+
```js
|
|
81
|
+
var md = require('markdown-it')()
|
|
82
|
+
.use(require('markdown-it-footnote'));
|
|
83
|
+
|
|
84
|
+
md.render(/*...*/) // See examples above
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
_Differences in browser._ If you load script directly into the page, without
|
|
88
|
+
package system, module will add itself globally as `window.markdownitFootnote`.
|
|
89
|
+
|
|
90
|
+
|
|
91
|
+
### Customize
|
|
92
|
+
|
|
93
|
+
If you want to customize the output, you'll need to replace the template
|
|
94
|
+
functions. To see which templates exist and their default implementations,
|
|
95
|
+
look in [`index.js`](index.js). The API of these template functions is out of
|
|
96
|
+
scope for this plugin's documentation; you can read more about it [in the
|
|
97
|
+
markdown-it
|
|
98
|
+
documentation](https://github.com/markdown-it/markdown-it/blob/master/docs/architecture.md#renderer).
|
|
99
|
+
|
|
100
|
+
To demonstrate with an example, here is how you might replace the `<hr>` that
|
|
101
|
+
this plugin emits by default with an `<h4>` emitted by your own template
|
|
102
|
+
function override:
|
|
103
|
+
|
|
104
|
+
```js
|
|
105
|
+
const md = require('markdown-it')().use(require('markdown-it-footnote'));
|
|
106
|
+
|
|
107
|
+
md.renderer.rules.footnote_block_open = () => (
|
|
108
|
+
'<h4 class="mt-3">Footnotes</h4>\n' +
|
|
109
|
+
'<section class="footnotes">\n' +
|
|
110
|
+
'<ol class="footnotes-list">\n'
|
|
111
|
+
);
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
Here's another example that customizes footnotes for epub books:
|
|
115
|
+
|
|
116
|
+
```js
|
|
117
|
+
const backrefLabel = 'back to text';
|
|
118
|
+
|
|
119
|
+
const epubRules = {
|
|
120
|
+
footnote_ref: ['<a', '<a epub:type="noteref"'],
|
|
121
|
+
footnote_open: ['<li', '<li epub:type="footnote"'],
|
|
122
|
+
footnote_anchor: ['<a', `<a aria-label="${backrefLabel}"`],
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
Object.keys(epubRules).map(rule => {
|
|
126
|
+
let defaultRender = md.renderer.rules[rule];
|
|
127
|
+
md.renderer.rules[rule] = (tokens, idx, options, env, self) => {
|
|
128
|
+
return defaultRender(tokens, idx, options, env, self).replace(...epubRules[rule]);
|
|
129
|
+
}
|
|
130
|
+
})
|
|
131
|
+
```
|
|
132
|
+
|
|
133
|
+
## License
|
|
134
|
+
|
|
135
|
+
[MIT](https://github.com/markdown-it/markdown-it-footnote/blob/master/LICENSE)
|
|
@@ -35,6 +35,7 @@ Use this page as a command reference. If you are setting up a project for the fi
|
|
|
35
35
|
| `void project rollback` | Roll back to a previous deployment |
|
|
36
36
|
| `void project cancel` | Cancel an active deployment |
|
|
37
37
|
| `void project purge-cache` | Purge all cached pages |
|
|
38
|
+
| `void build logs` | Stream, tail, or download build logs |
|
|
38
39
|
| `void mcp` | Start the Void MCP server |
|
|
39
40
|
| `void init` | Setup wizard for new or existing projects |
|
|
40
41
|
|
|
@@ -606,13 +607,18 @@ Connect a GitHub repository to a Void project for automatic deploys. On every pu
|
|
|
606
607
|
|
|
607
608
|
**Options**
|
|
608
609
|
|
|
609
|
-
| Flag | Description
|
|
610
|
-
| --------------------- |
|
|
611
|
-
| `--project <name>` | Project name (alias for the positional argument)
|
|
612
|
-
| `--installation <id>` | GitHub App installation ID (required when you have multiple installations)
|
|
613
|
-
| `--repo <owner/repo>` | Repository full name — required unless the installation grants exactly one repo
|
|
614
|
-
| `--branch <name>` | Branch to deploy from — **required in non-interactive mode**
|
|
615
|
-
| `--executor <type>` | Build executor: `container` (default) or `github_actions`
|
|
610
|
+
| Flag | Description |
|
|
611
|
+
| --------------------- | --------------------------------------------------------------------------------- |
|
|
612
|
+
| `--project <name>` | Project name (alias for the positional argument) |
|
|
613
|
+
| `--installation <id>` | GitHub App installation ID (required when you have multiple installations) |
|
|
614
|
+
| `--repo <owner/repo>` | Repository full name — required unless the installation grants exactly one repo |
|
|
615
|
+
| `--branch <name>` | Branch to deploy from — **required in non-interactive mode** |
|
|
616
|
+
| `--executor <type>` | Build executor: `container` (default) or `github_actions` |
|
|
617
|
+
| `--workflow <path>` | Authorized deploy workflow file — defaults to `.github/workflows/void-deploy.yml` |
|
|
618
|
+
|
|
619
|
+
The `--workflow` path is the workflow file the GitHub OIDC exchange authorizes to mint this project's deploy token. It defaults to the scaffolded `.github/workflows/void-deploy.yml`; set it only if your deploy step lives in a different workflow file (it must be under `.github/workflows/` and end in `.yml`/`.yaml`). Because the exchange is secretless, **only this one workflow** can mint a deploy token — any other workflow in the repo (including an unsafe `pull_request_target`) is rejected. Pointing it at a broad, multi-purpose workflow widens that trust, so prefer a dedicated file.
|
|
620
|
+
|
|
621
|
+
Interactively (TTY), after resolving the repository and branch, `void github connect` prompts for the **build executor** (defaulting to `container`). If you pick `github_actions`, it then prompts for the **deploy workflow file**, defaulting to `.github/workflows/void-deploy.yml` and validated locally before it is sent. Pass `--executor` and/or `--workflow` to skip the respective prompt. The workflow prompt is skipped entirely for the `container` executor, which does not use a workflow file.
|
|
616
622
|
|
|
617
623
|
**Non-interactive use (CI)**
|
|
618
624
|
|
|
@@ -633,17 +639,18 @@ void github connect my-app \
|
|
|
633
639
|
void github update [project] [options]
|
|
634
640
|
```
|
|
635
641
|
|
|
636
|
-
Update an existing connection's deploy **branch** and/or **
|
|
642
|
+
Update an existing connection's deploy **branch**, **build executor**, and/or authorized **workflow file**. Use this to change settings on a project that is already connected — for example, flipping the executor from `container` to `github_actions` for a monorepo whose Void app lives in a subdirectory, moving the deploy branch, or pointing the OIDC trust at a different workflow file. The project must already be connected (run `void github connect` first); the repository and installation are not changed.
|
|
637
643
|
|
|
638
644
|
**Options**
|
|
639
645
|
|
|
640
|
-
| Flag | Description
|
|
641
|
-
| ------------------- |
|
|
642
|
-
| `--project <name>` | Project name (alias for the positional argument)
|
|
643
|
-
| `--branch <name>` | New branch to deploy from
|
|
644
|
-
| `--executor <type>` | New build executor: `container` or `github_actions`
|
|
646
|
+
| Flag | Description |
|
|
647
|
+
| ------------------- | ---------------------------------------------------------------- |
|
|
648
|
+
| `--project <name>` | Project name (alias for the positional argument) |
|
|
649
|
+
| `--branch <name>` | New branch to deploy from |
|
|
650
|
+
| `--executor <type>` | New build executor: `container` or `github_actions` |
|
|
651
|
+
| `--workflow <path>` | New authorized deploy workflow file (under `.github/workflows/`) |
|
|
645
652
|
|
|
646
|
-
Interactively (TTY), `void github update` shows the current branch and executor and prompts for new values, defaulting each to the current setting. When stdin is not a TTY, it never prompts: pass at least one of `--branch` / `--executor`, or it fails closed. If nothing actually changes, the command reports "no changes" and does not call the API.
|
|
653
|
+
Interactively (TTY), `void github update` shows the current branch and executor and prompts for new values, defaulting each to the current setting. If the resulting executor is `github_actions`, it then prompts for the **deploy workflow file**, defaulting to the current path and validated locally; pass `--workflow` to skip that prompt. The workflow prompt is skipped when the executor is `container`, which does not use a workflow file. When stdin is not a TTY, it never prompts: pass at least one of `--branch` / `--executor` / `--workflow`, or it fails closed. If nothing actually changes, the command reports "no changes" and does not call the API.
|
|
647
654
|
|
|
648
655
|
```
|
|
649
656
|
void github update my-app --executor github_actions
|
|
@@ -651,6 +658,60 @@ void github update my-app --executor github_actions
|
|
|
651
658
|
|
|
652
659
|
**Project resolution** follows the same order as deploy: positional / `--project`, `VOID_PROJECT`, linked project (`.void/project.json`).
|
|
653
660
|
|
|
661
|
+
### `void github status`
|
|
662
|
+
|
|
663
|
+
```
|
|
664
|
+
void github status [project]
|
|
665
|
+
```
|
|
666
|
+
|
|
667
|
+
Show a project's current GitHub connection: the connected **repository**, the deploy **branch**, the **build executor** (`container` or `github_actions`), and the authorized **deploy workflow file**. Read-only — it never changes anything. The workflow file is the OIDC pin used only for `github_actions` builds; on a `container` connection it is still shown but marked unused. The project must already be connected (run `void github connect` first, otherwise it reports that and exits).
|
|
668
|
+
|
|
669
|
+
**Options**
|
|
670
|
+
|
|
671
|
+
| Flag | Description |
|
|
672
|
+
| ------------------ | ------------------------------------------------ |
|
|
673
|
+
| `--project <name>` | Project name (alias for the positional argument) |
|
|
674
|
+
|
|
675
|
+
```
|
|
676
|
+
void github status my-app
|
|
677
|
+
```
|
|
678
|
+
|
|
679
|
+
**Project resolution** follows the same order as deploy: positional / `--project`, `VOID_PROJECT`, linked project (`.void/project.json`).
|
|
680
|
+
|
|
681
|
+
## Build
|
|
682
|
+
|
|
683
|
+
Inspect Deploy-on-GitHub builds.
|
|
684
|
+
|
|
685
|
+
### `void build logs`
|
|
686
|
+
|
|
687
|
+
```
|
|
688
|
+
void build logs [build] [--follow] [--output <file>] [--project <slug>]
|
|
689
|
+
```
|
|
690
|
+
|
|
691
|
+
Stream, tail, or download the build logs for a **container** build. With no
|
|
692
|
+
`[build]` argument, targets the project's most recent build.
|
|
693
|
+
|
|
694
|
+
| Flag | Purpose | Default |
|
|
695
|
+
| ------------------------ | ----------------------------------------------------------------- | ------- |
|
|
696
|
+
| `--follow`, `-f` | Live-tail: poll until the build reaches a terminal status. | off |
|
|
697
|
+
| `--output <file>`, `-o` | Write logs to a file instead of stdout (appends while following). | stdout |
|
|
698
|
+
| `--project <slug>`, `-p` | Target project. | linked |
|
|
699
|
+
|
|
700
|
+
**Project resolution** follows the same order as deploy: positional / `--project`,
|
|
701
|
+
`VOID_PROJECT`, linked project (`.void/project.json`).
|
|
702
|
+
|
|
703
|
+
Builds run on **GitHub Actions** keep their logs on GitHub — the command prints
|
|
704
|
+
the Actions run URL instead of streaming. Only the last 10,000 log lines of a
|
|
705
|
+
container build are retained.
|
|
706
|
+
|
|
707
|
+
Examples:
|
|
708
|
+
|
|
709
|
+
```
|
|
710
|
+
void build logs # print the latest build's logs
|
|
711
|
+
void build logs -f # follow the latest build until it finishes
|
|
712
|
+
void build logs bld_123 -o build.log # download a specific build's logs
|
|
713
|
+
```
|
|
714
|
+
|
|
654
715
|
## Custom Domains
|
|
655
716
|
|
|
656
717
|
### `void domain add`
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|