@ox-content/vite-plugin 3.0.0-alpha.8 → 3.0.0-beta.0
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/index.cjs +8898 -2585
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +2050 -221
- package/dist/index.d.cts.map +1 -1
- package/dist/index.d.mts +2050 -221
- package/dist/index.d.mts.map +1 -1
- package/dist/index.mjs +8839 -2531
- package/dist/index.mjs.map +1 -1
- package/dist/markdown-tables.cjs +70 -0
- package/dist/markdown-tables.cjs.map +1 -0
- package/dist/markdown-tables.d.cts +22 -0
- package/dist/markdown-tables.d.cts.map +1 -0
- package/dist/markdown-tables.d.mts +22 -0
- package/dist/markdown-tables.d.mts.map +1 -0
- package/dist/markdown-tables.mjs +66 -0
- package/dist/markdown-tables.mjs.map +1 -0
- package/dist/napi.cjs +44 -0
- package/dist/napi.cjs.map +1 -0
- package/dist/napi.mjs +34 -0
- package/dist/napi.mjs.map +1 -0
- package/dist/reader-chrome-client.cjs +103 -0
- package/dist/reader-chrome-client.d.cts +2 -0
- package/dist/reader-chrome-client.d.mts +2 -0
- package/dist/reader-chrome-client.mjs +102 -0
- package/dist/reader-chrome.cjs +109 -0
- package/dist/reader-chrome.cjs.map +1 -0
- package/dist/reader-chrome.d.cts +103 -0
- package/dist/reader-chrome.d.mts +103 -0
- package/dist/reader-chrome.mjs +98 -0
- package/dist/reader-chrome.mjs.map +1 -0
- package/dist/styles/all.css +15 -0
- package/dist/styles/citations.css +62 -0
- package/dist/styles/core.css +2261 -0
- package/dist/styles/github.css +262 -0
- package/dist/styles/graphviz.css +34 -0
- package/dist/styles/magic-links.css +33 -0
- package/dist/styles/markdown-tables.css +16 -0
- package/dist/styles/mermaid.css +151 -0
- package/dist/styles/not-by-ai.css +43 -0
- package/dist/styles/ogp.css +170 -0
- package/dist/styles/reader-chrome.css +163 -0
- package/dist/styles/social.css +678 -0
- package/dist/styles/tabs.css +210 -0
- package/dist/styles/theme-transition.css +37 -0
- package/dist/styles/twitter-full.css +598 -0
- package/dist/styles/youtube.css +87 -0
- package/dist/theme-tokens.cjs +95 -0
- package/dist/theme-tokens.cjs.map +1 -0
- package/dist/theme-tokens.d.cts +72 -0
- package/dist/theme-tokens.d.cts.map +1 -0
- package/dist/theme-tokens.d.mts +72 -0
- package/dist/theme-tokens.d.mts.map +1 -0
- package/dist/theme-tokens.mjs +91 -0
- package/dist/theme-tokens.mjs.map +1 -0
- package/dist/theme-transition-client.cjs +161 -0
- package/dist/theme-transition-client.d.cts +21 -0
- package/dist/theme-transition-client.d.mts +21 -0
- package/dist/theme-transition-client.mjs +160 -0
- package/dist/twitter-client.cjs +84 -0
- package/dist/twitter-client.d.cts +11 -0
- package/dist/twitter-client.d.mts +11 -0
- package/dist/twitter-client.mjs +83 -0
- package/dist/vitepress.cjs +614 -77
- package/dist/vitepress.cjs.map +1 -1
- package/dist/vitepress.mjs +588 -65
- package/dist/vitepress.mjs.map +1 -1
- package/package.json +89 -4
- package/dist/api.cjs +0 -6563
- package/dist/api.cjs.map +0 -1
- package/dist/api.mjs +0 -6456
- package/dist/api.mjs.map +0 -1
- package/dist/interop.cjs +0 -31
- package/dist/interop.cjs.map +0 -1
- package/dist/interop.mjs +0 -26
- package/dist/interop.mjs.map +0 -1
- package/dist/tabs.cjs +0 -98
- package/dist/tabs.cjs.map +0 -1
- package/dist/tabs.mjs +0 -99
- package/dist/tabs.mjs.map +0 -1
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Per-control flags for `ssg.readerChrome`.
|
|
3
|
+
*
|
|
4
|
+
* Omitted fields stay on when the feature itself is enabled.
|
|
5
|
+
*/
|
|
6
|
+
export interface ReaderChromeOptions {
|
|
7
|
+
/**
|
|
8
|
+
* Copy button on fenced code blocks. The clipboard is read in the browser,
|
|
9
|
+
* never at build time.
|
|
10
|
+
*
|
|
11
|
+
* @default true
|
|
12
|
+
*/
|
|
13
|
+
copy?: boolean;
|
|
14
|
+
|
|
15
|
+
/**
|
|
16
|
+
* Icon and `rel="noopener noreferrer"` on outbound `http(s)` links.
|
|
17
|
+
* Relative, hash, and same-document links are left alone.
|
|
18
|
+
*
|
|
19
|
+
* @default true
|
|
20
|
+
*/
|
|
21
|
+
externalLinks?: boolean;
|
|
22
|
+
|
|
23
|
+
/**
|
|
24
|
+
* Back-to-top control that appears after the page is scrolled.
|
|
25
|
+
*
|
|
26
|
+
* @default true
|
|
27
|
+
*/
|
|
28
|
+
backToTop?: boolean;
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
/**
|
|
32
|
+
* Resolved reader chrome. `false` means no extra markup or JS.
|
|
33
|
+
*/
|
|
34
|
+
export type ResolvedReaderChrome =
|
|
35
|
+
| false
|
|
36
|
+
| {
|
|
37
|
+
copy: boolean;
|
|
38
|
+
externalLinks: boolean;
|
|
39
|
+
backToTop: boolean;
|
|
40
|
+
};
|
|
41
|
+
|
|
42
|
+
type EnabledReaderChrome = Exclude<ResolvedReaderChrome, false>;
|
|
43
|
+
|
|
44
|
+
export type ReaderChromeInput =
|
|
45
|
+
| boolean
|
|
46
|
+
| ReaderChromeOptions
|
|
47
|
+
| EnabledReaderChrome
|
|
48
|
+
| undefined;
|
|
49
|
+
|
|
50
|
+
/**
|
|
51
|
+
* Resolve the public reader-chrome option shape.
|
|
52
|
+
*/
|
|
53
|
+
export declare function resolveReaderChromeInput(
|
|
54
|
+
input?: ReaderChromeInput,
|
|
55
|
+
): ResolvedReaderChrome;
|
|
56
|
+
|
|
57
|
+
/**
|
|
58
|
+
* Apply the same native reader-chrome HTML transform used by the built-in SSG.
|
|
59
|
+
*/
|
|
60
|
+
export declare function applyReaderChromeHtml(
|
|
61
|
+
html: string,
|
|
62
|
+
input?: ReaderChromeInput,
|
|
63
|
+
): string;
|
|
64
|
+
|
|
65
|
+
/**
|
|
66
|
+
* Root attributes consumed by the browser runtime.
|
|
67
|
+
*/
|
|
68
|
+
export declare function readerChromeAttributes(
|
|
69
|
+
input?: ReaderChromeInput,
|
|
70
|
+
): Readonly<Record<string, "">>;
|
|
71
|
+
|
|
72
|
+
/**
|
|
73
|
+
* Render the root attributes as a leading-space HTML fragment.
|
|
74
|
+
*/
|
|
75
|
+
export declare function renderReaderChromeAttributes(input?: ReaderChromeInput): string;
|
|
76
|
+
|
|
77
|
+
/**
|
|
78
|
+
* CSS shared by the built-in SSG and custom hosts.
|
|
79
|
+
*/
|
|
80
|
+
export declare function readerChromeCss(input?: ReaderChromeInput): string;
|
|
81
|
+
|
|
82
|
+
/**
|
|
83
|
+
* Auto-initializing script shared by the built-in SSG and custom hosts.
|
|
84
|
+
*/
|
|
85
|
+
export declare function readerChromeScript(input?: ReaderChromeInput): string;
|
|
86
|
+
|
|
87
|
+
/**
|
|
88
|
+
* Inline stylesheet tag for hosts that do not import
|
|
89
|
+
* `@ox-content/vite-plugin/styles/reader-chrome.css`.
|
|
90
|
+
*/
|
|
91
|
+
export declare function renderReaderChromeStyleTag(input?: ReaderChromeInput): string;
|
|
92
|
+
|
|
93
|
+
/**
|
|
94
|
+
* Inline auto-init script for static hosts that do not bundle
|
|
95
|
+
* `@ox-content/vite-plugin/reader-chrome/client`.
|
|
96
|
+
*/
|
|
97
|
+
export declare function renderReaderChromeScriptTag(input?: ReaderChromeInput): string;
|
|
98
|
+
|
|
99
|
+
export declare function readerChromeIsEnabled(
|
|
100
|
+
chrome: ResolvedReaderChrome,
|
|
101
|
+
): chrome is Exclude<ResolvedReaderChrome, false>;
|
|
102
|
+
|
|
103
|
+
export declare function readerChromeNeedsJs(chrome: ResolvedReaderChrome): boolean;
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Per-control flags for `ssg.readerChrome`.
|
|
3
|
+
*
|
|
4
|
+
* Omitted fields stay on when the feature itself is enabled.
|
|
5
|
+
*/
|
|
6
|
+
export interface ReaderChromeOptions {
|
|
7
|
+
/**
|
|
8
|
+
* Copy button on fenced code blocks. The clipboard is read in the browser,
|
|
9
|
+
* never at build time.
|
|
10
|
+
*
|
|
11
|
+
* @default true
|
|
12
|
+
*/
|
|
13
|
+
copy?: boolean;
|
|
14
|
+
|
|
15
|
+
/**
|
|
16
|
+
* Icon and `rel="noopener noreferrer"` on outbound `http(s)` links.
|
|
17
|
+
* Relative, hash, and same-document links are left alone.
|
|
18
|
+
*
|
|
19
|
+
* @default true
|
|
20
|
+
*/
|
|
21
|
+
externalLinks?: boolean;
|
|
22
|
+
|
|
23
|
+
/**
|
|
24
|
+
* Back-to-top control that appears after the page is scrolled.
|
|
25
|
+
*
|
|
26
|
+
* @default true
|
|
27
|
+
*/
|
|
28
|
+
backToTop?: boolean;
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
/**
|
|
32
|
+
* Resolved reader chrome. `false` means no extra markup or JS.
|
|
33
|
+
*/
|
|
34
|
+
export type ResolvedReaderChrome =
|
|
35
|
+
| false
|
|
36
|
+
| {
|
|
37
|
+
copy: boolean;
|
|
38
|
+
externalLinks: boolean;
|
|
39
|
+
backToTop: boolean;
|
|
40
|
+
};
|
|
41
|
+
|
|
42
|
+
type EnabledReaderChrome = Exclude<ResolvedReaderChrome, false>;
|
|
43
|
+
|
|
44
|
+
export type ReaderChromeInput =
|
|
45
|
+
| boolean
|
|
46
|
+
| ReaderChromeOptions
|
|
47
|
+
| EnabledReaderChrome
|
|
48
|
+
| undefined;
|
|
49
|
+
|
|
50
|
+
/**
|
|
51
|
+
* Resolve the public reader-chrome option shape.
|
|
52
|
+
*/
|
|
53
|
+
export declare function resolveReaderChromeInput(
|
|
54
|
+
input?: ReaderChromeInput,
|
|
55
|
+
): ResolvedReaderChrome;
|
|
56
|
+
|
|
57
|
+
/**
|
|
58
|
+
* Apply the same native reader-chrome HTML transform used by the built-in SSG.
|
|
59
|
+
*/
|
|
60
|
+
export declare function applyReaderChromeHtml(
|
|
61
|
+
html: string,
|
|
62
|
+
input?: ReaderChromeInput,
|
|
63
|
+
): string;
|
|
64
|
+
|
|
65
|
+
/**
|
|
66
|
+
* Root attributes consumed by the browser runtime.
|
|
67
|
+
*/
|
|
68
|
+
export declare function readerChromeAttributes(
|
|
69
|
+
input?: ReaderChromeInput,
|
|
70
|
+
): Readonly<Record<string, "">>;
|
|
71
|
+
|
|
72
|
+
/**
|
|
73
|
+
* Render the root attributes as a leading-space HTML fragment.
|
|
74
|
+
*/
|
|
75
|
+
export declare function renderReaderChromeAttributes(input?: ReaderChromeInput): string;
|
|
76
|
+
|
|
77
|
+
/**
|
|
78
|
+
* CSS shared by the built-in SSG and custom hosts.
|
|
79
|
+
*/
|
|
80
|
+
export declare function readerChromeCss(input?: ReaderChromeInput): string;
|
|
81
|
+
|
|
82
|
+
/**
|
|
83
|
+
* Auto-initializing script shared by the built-in SSG and custom hosts.
|
|
84
|
+
*/
|
|
85
|
+
export declare function readerChromeScript(input?: ReaderChromeInput): string;
|
|
86
|
+
|
|
87
|
+
/**
|
|
88
|
+
* Inline stylesheet tag for hosts that do not import
|
|
89
|
+
* `@ox-content/vite-plugin/styles/reader-chrome.css`.
|
|
90
|
+
*/
|
|
91
|
+
export declare function renderReaderChromeStyleTag(input?: ReaderChromeInput): string;
|
|
92
|
+
|
|
93
|
+
/**
|
|
94
|
+
* Inline auto-init script for static hosts that do not bundle
|
|
95
|
+
* `@ox-content/vite-plugin/reader-chrome/client`.
|
|
96
|
+
*/
|
|
97
|
+
export declare function renderReaderChromeScriptTag(input?: ReaderChromeInput): string;
|
|
98
|
+
|
|
99
|
+
export declare function readerChromeIsEnabled(
|
|
100
|
+
chrome: ResolvedReaderChrome,
|
|
101
|
+
): chrome is Exclude<ResolvedReaderChrome, false>;
|
|
102
|
+
|
|
103
|
+
export declare function readerChromeNeedsJs(chrome: ResolvedReaderChrome): boolean;
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
import { n as importNapiModuleSync } from "./napi.mjs";
|
|
2
|
+
//#region src/reader-chrome.ts
|
|
3
|
+
const EMPTY_ATTRIBUTES = Object.freeze({});
|
|
4
|
+
/**
|
|
5
|
+
* Resolve the public reader-chrome option shape.
|
|
6
|
+
*
|
|
7
|
+
* `true` mirrors `ssg.readerChrome: true`: copy, outbound-link decoration, and
|
|
8
|
+
* back-to-top are enabled. Object fields default on, so `{ copy: false }`
|
|
9
|
+
* disables only the copy button.
|
|
10
|
+
*/
|
|
11
|
+
function resolveReaderChromeInput(input = true) {
|
|
12
|
+
if (!input) return false;
|
|
13
|
+
if (input === true) return {
|
|
14
|
+
copy: true,
|
|
15
|
+
externalLinks: true,
|
|
16
|
+
backToTop: true
|
|
17
|
+
};
|
|
18
|
+
return {
|
|
19
|
+
copy: input.copy ?? true,
|
|
20
|
+
externalLinks: input.externalLinks ?? true,
|
|
21
|
+
backToTop: input.backToTop ?? true
|
|
22
|
+
};
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Apply the same native reader-chrome HTML transform used by the built-in SSG.
|
|
26
|
+
*
|
|
27
|
+
* This rewrites rendered article HTML. It wraps fenced `<pre>` blocks for copy
|
|
28
|
+
* controls and decorates outbound links when enabled. Back-to-top remains a
|
|
29
|
+
* document-shell control, so it is exposed through the asset helpers.
|
|
30
|
+
*/
|
|
31
|
+
function applyReaderChromeHtml(html, input = true) {
|
|
32
|
+
const chrome = resolveReaderChromeInput(input);
|
|
33
|
+
if (!chrome || !chrome.copy && !chrome.externalLinks) return html;
|
|
34
|
+
return importNapiModuleSync().applySsgReaderChromeHtml(html, {
|
|
35
|
+
copy: chrome.copy,
|
|
36
|
+
externalLinks: chrome.externalLinks,
|
|
37
|
+
backToTop: chrome.backToTop
|
|
38
|
+
});
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Root attributes consumed by the browser runtime.
|
|
42
|
+
*/
|
|
43
|
+
function readerChromeAttributes(input = true) {
|
|
44
|
+
const chrome = resolveReaderChromeInput(input);
|
|
45
|
+
if (!readerChromeIsEnabled(chrome)) return EMPTY_ATTRIBUTES;
|
|
46
|
+
return {
|
|
47
|
+
"data-ox-reader-chrome": "",
|
|
48
|
+
...chrome.copy ? { "data-ox-copy": "" } : {},
|
|
49
|
+
...chrome.externalLinks ? { "data-ox-external-links": "" } : {},
|
|
50
|
+
...chrome.backToTop ? { "data-ox-back-to-top": "" } : {}
|
|
51
|
+
};
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Render the root attributes as a leading-space HTML fragment.
|
|
55
|
+
*
|
|
56
|
+
* Useful in template strings: `<article${renderReaderChromeAttributes()}>`.
|
|
57
|
+
*/
|
|
58
|
+
function renderReaderChromeAttributes(input = true) {
|
|
59
|
+
return Object.keys(readerChromeAttributes(input)).map((name) => ` ${name}`).join("");
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* CSS shared by the built-in SSG and custom hosts.
|
|
63
|
+
*/
|
|
64
|
+
function readerChromeCss(input = true) {
|
|
65
|
+
return readerChromeIsEnabled(resolveReaderChromeInput(input)) ? importNapiModuleSync().getSsgReaderChromeCss() : "";
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* Auto-initializing script shared by the built-in SSG and custom hosts.
|
|
69
|
+
*/
|
|
70
|
+
function readerChromeScript(input = true) {
|
|
71
|
+
return readerChromeNeedsJs(resolveReaderChromeInput(input)) ? importNapiModuleSync().getSsgReaderChromeScript() : "";
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* Inline stylesheet tag for hosts that do not import
|
|
75
|
+
* `@ox-content/vite-plugin/styles/reader-chrome.css`.
|
|
76
|
+
*/
|
|
77
|
+
function renderReaderChromeStyleTag(input = true) {
|
|
78
|
+
const css = readerChromeCss(input);
|
|
79
|
+
return css ? `<style data-ox-style="reader-chrome">\n${css}</style>` : "";
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* Inline auto-init script for static hosts that do not bundle
|
|
83
|
+
* `@ox-content/vite-plugin/reader-chrome/client`.
|
|
84
|
+
*/
|
|
85
|
+
function renderReaderChromeScriptTag(input = true) {
|
|
86
|
+
const js = readerChromeScript(input);
|
|
87
|
+
return js ? `<script data-ox-script="reader-chrome">\n${js}<\/script>` : "";
|
|
88
|
+
}
|
|
89
|
+
function readerChromeIsEnabled(chrome) {
|
|
90
|
+
return Boolean(chrome && (chrome.copy || chrome.externalLinks || chrome.backToTop));
|
|
91
|
+
}
|
|
92
|
+
function readerChromeNeedsJs(chrome) {
|
|
93
|
+
return Boolean(chrome && (chrome.copy || chrome.backToTop));
|
|
94
|
+
}
|
|
95
|
+
//#endregion
|
|
96
|
+
export { applyReaderChromeHtml, readerChromeAttributes, readerChromeCss, readerChromeIsEnabled, readerChromeNeedsJs, readerChromeScript, renderReaderChromeAttributes, renderReaderChromeScriptTag, renderReaderChromeStyleTag, resolveReaderChromeInput };
|
|
97
|
+
|
|
98
|
+
//# sourceMappingURL=reader-chrome.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"reader-chrome.mjs","names":[],"sources":["../src/reader-chrome.ts"],"sourcesContent":["import { importNapiModuleSync } from \"./napi\";\nimport type { ReaderChromeOptions, ResolvedReaderChrome } from \"./reader-chrome-options\";\n\nexport type { ReaderChromeOptions, ResolvedReaderChrome };\n\ntype EnabledReaderChrome = Exclude<ResolvedReaderChrome, false>;\n\nexport type ReaderChromeInput = boolean | ReaderChromeOptions | EnabledReaderChrome | undefined;\n\nconst EMPTY_ATTRIBUTES = Object.freeze({}) as Readonly<Record<string, \"\">>;\n\n/**\n * Resolve the public reader-chrome option shape.\n *\n * `true` mirrors `ssg.readerChrome: true`: copy, outbound-link decoration, and\n * back-to-top are enabled. Object fields default on, so `{ copy: false }`\n * disables only the copy button.\n */\nexport function resolveReaderChromeInput(input: ReaderChromeInput = true): ResolvedReaderChrome {\n if (!input) {\n return false;\n }\n if (input === true) {\n return { copy: true, externalLinks: true, backToTop: true };\n }\n return {\n copy: input.copy ?? true,\n externalLinks: input.externalLinks ?? true,\n backToTop: input.backToTop ?? true,\n };\n}\n\n/**\n * Apply the same native reader-chrome HTML transform used by the built-in SSG.\n *\n * This rewrites rendered article HTML. It wraps fenced `<pre>` blocks for copy\n * controls and decorates outbound links when enabled. Back-to-top remains a\n * document-shell control, so it is exposed through the asset helpers.\n */\nexport function applyReaderChromeHtml(html: string, input: ReaderChromeInput = true): string {\n const chrome = resolveReaderChromeInput(input);\n if (!chrome || (!chrome.copy && !chrome.externalLinks)) {\n return html;\n }\n return importNapiModuleSync().applySsgReaderChromeHtml(html, {\n copy: chrome.copy,\n externalLinks: chrome.externalLinks,\n backToTop: chrome.backToTop,\n });\n}\n\n/**\n * Root attributes consumed by the browser runtime.\n */\nexport function readerChromeAttributes(\n input: ReaderChromeInput = true,\n): Readonly<Record<string, \"\">> {\n const chrome = resolveReaderChromeInput(input);\n if (!readerChromeIsEnabled(chrome)) {\n return EMPTY_ATTRIBUTES;\n }\n\n return {\n \"data-ox-reader-chrome\": \"\",\n ...(chrome.copy ? { \"data-ox-copy\": \"\" as const } : {}),\n ...(chrome.externalLinks ? { \"data-ox-external-links\": \"\" as const } : {}),\n ...(chrome.backToTop ? { \"data-ox-back-to-top\": \"\" as const } : {}),\n };\n}\n\n/**\n * Render the root attributes as a leading-space HTML fragment.\n *\n * Useful in template strings: `<article${renderReaderChromeAttributes()}>`.\n */\nexport function renderReaderChromeAttributes(input: ReaderChromeInput = true): string {\n return Object.keys(readerChromeAttributes(input))\n .map((name) => ` ${name}`)\n .join(\"\");\n}\n\n/**\n * CSS shared by the built-in SSG and custom hosts.\n */\nexport function readerChromeCss(input: ReaderChromeInput = true): string {\n return readerChromeIsEnabled(resolveReaderChromeInput(input))\n ? importNapiModuleSync().getSsgReaderChromeCss()\n : \"\";\n}\n\n/**\n * Auto-initializing script shared by the built-in SSG and custom hosts.\n */\nexport function readerChromeScript(input: ReaderChromeInput = true): string {\n return readerChromeNeedsJs(resolveReaderChromeInput(input))\n ? importNapiModuleSync().getSsgReaderChromeScript()\n : \"\";\n}\n\n/**\n * Inline stylesheet tag for hosts that do not import\n * `@ox-content/vite-plugin/styles/reader-chrome.css`.\n */\nexport function renderReaderChromeStyleTag(input: ReaderChromeInput = true): string {\n const css = readerChromeCss(input);\n return css ? `<style data-ox-style=\"reader-chrome\">\\n${css}</style>` : \"\";\n}\n\n/**\n * Inline auto-init script for static hosts that do not bundle\n * `@ox-content/vite-plugin/reader-chrome/client`.\n */\nexport function renderReaderChromeScriptTag(input: ReaderChromeInput = true): string {\n const js = readerChromeScript(input);\n return js ? `<script data-ox-script=\"reader-chrome\">\\n${js}</script>` : \"\";\n}\n\nexport function readerChromeIsEnabled(\n chrome: ResolvedReaderChrome,\n): chrome is Exclude<ResolvedReaderChrome, false> {\n return Boolean(chrome && (chrome.copy || chrome.externalLinks || chrome.backToTop));\n}\n\nexport function readerChromeNeedsJs(chrome: ResolvedReaderChrome): boolean {\n return Boolean(chrome && (chrome.copy || chrome.backToTop));\n}\n"],"mappings":";;AASA,MAAM,mBAAmB,OAAO,OAAO,CAAC,CAAC;;;;;;;;AASzC,SAAgB,yBAAyB,QAA2B,MAA4B;CAC9F,IAAI,CAAC,OACH,OAAO;CAET,IAAI,UAAU,MACZ,OAAO;EAAE,MAAM;EAAM,eAAe;EAAM,WAAW;CAAK;CAE5D,OAAO;EACL,MAAM,MAAM,QAAQ;EACpB,eAAe,MAAM,iBAAiB;EACtC,WAAW,MAAM,aAAa;CAChC;AACF;;;;;;;;AASA,SAAgB,sBAAsB,MAAc,QAA2B,MAAc;CAC3F,MAAM,SAAS,yBAAyB,KAAK;CAC7C,IAAI,CAAC,UAAW,CAAC,OAAO,QAAQ,CAAC,OAAO,eACtC,OAAO;CAET,OAAO,qBAAqB,CAAC,CAAC,yBAAyB,MAAM;EAC3D,MAAM,OAAO;EACb,eAAe,OAAO;EACtB,WAAW,OAAO;CACpB,CAAC;AACH;;;;AAKA,SAAgB,uBACd,QAA2B,MACG;CAC9B,MAAM,SAAS,yBAAyB,KAAK;CAC7C,IAAI,CAAC,sBAAsB,MAAM,GAC/B,OAAO;CAGT,OAAO;EACL,yBAAyB;EACzB,GAAI,OAAO,OAAO,EAAE,gBAAgB,GAAY,IAAI,CAAC;EACrD,GAAI,OAAO,gBAAgB,EAAE,0BAA0B,GAAY,IAAI,CAAC;EACxE,GAAI,OAAO,YAAY,EAAE,uBAAuB,GAAY,IAAI,CAAC;CACnE;AACF;;;;;;AAOA,SAAgB,6BAA6B,QAA2B,MAAc;CACpF,OAAO,OAAO,KAAK,uBAAuB,KAAK,CAAC,CAAC,CAC9C,KAAK,SAAS,IAAI,MAAM,CAAC,CACzB,KAAK,EAAE;AACZ;;;;AAKA,SAAgB,gBAAgB,QAA2B,MAAc;CACvE,OAAO,sBAAsB,yBAAyB,KAAK,CAAC,IACxD,qBAAqB,CAAC,CAAC,sBAAsB,IAC7C;AACN;;;;AAKA,SAAgB,mBAAmB,QAA2B,MAAc;CAC1E,OAAO,oBAAoB,yBAAyB,KAAK,CAAC,IACtD,qBAAqB,CAAC,CAAC,yBAAyB,IAChD;AACN;;;;;AAMA,SAAgB,2BAA2B,QAA2B,MAAc;CAClF,MAAM,MAAM,gBAAgB,KAAK;CACjC,OAAO,MAAM,0CAA0C,IAAI,YAAY;AACzE;;;;;AAMA,SAAgB,4BAA4B,QAA2B,MAAc;CACnF,MAAM,KAAK,mBAAmB,KAAK;CACnC,OAAO,KAAK,4CAA4C,GAAG,cAAa;AAC1E;AAEA,SAAgB,sBACd,QACgD;CAChD,OAAO,QAAQ,WAAW,OAAO,QAAQ,OAAO,iBAAiB,OAAO,UAAU;AACpF;AAEA,SAAgB,oBAAoB,QAAuC;CACzE,OAAO,QAAQ,WAAW,OAAO,QAAQ,OAAO,UAAU;AAC5D"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
@import "./core.css";
|
|
2
|
+
@import "./magic-links.css";
|
|
3
|
+
@import "./social.css";
|
|
4
|
+
@import "./twitter-full.css";
|
|
5
|
+
@import "./ogp.css";
|
|
6
|
+
@import "./github.css";
|
|
7
|
+
@import "./markdown-tables.css";
|
|
8
|
+
@import "./youtube.css";
|
|
9
|
+
@import "./tabs.css";
|
|
10
|
+
@import "./mermaid.css";
|
|
11
|
+
@import "./graphviz.css";
|
|
12
|
+
@import "./citations.css";
|
|
13
|
+
@import "./not-by-ai.css";
|
|
14
|
+
@import "./reader-chrome.css";
|
|
15
|
+
@import "./theme-transition.css";
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
.content .ox-cite {
|
|
2
|
+
white-space: nowrap;
|
|
3
|
+
font-size: 0.95em;
|
|
4
|
+
}
|
|
5
|
+
|
|
6
|
+
.content .ox-cite__ref {
|
|
7
|
+
font-variant-numeric: tabular-nums;
|
|
8
|
+
text-decoration-thickness: 0.08em;
|
|
9
|
+
text-underline-offset: 0.2em;
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
.content .ox-cite__ref:focus-visible,
|
|
13
|
+
.content .ox-bibliography__item:focus-within {
|
|
14
|
+
outline: var(--octc-focus-ring);
|
|
15
|
+
outline-offset: var(--octc-focus-offset);
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
.content .ox-cite__ref:target,
|
|
19
|
+
.content .ox-bibliography__item:target {
|
|
20
|
+
background: var(--octc-color-code-line-focus);
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
.content .ox-bibliography {
|
|
24
|
+
margin-top: 2rem;
|
|
25
|
+
padding-top: 1rem;
|
|
26
|
+
border-top: 1px solid var(--octc-color-border);
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
.content .ox-bibliography__title {
|
|
30
|
+
margin-top: 0;
|
|
31
|
+
font-size: 1.25rem;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
.content .ox-bibliography__list {
|
|
35
|
+
margin-block: 0;
|
|
36
|
+
padding-inline-start: 1.5rem;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
.content .ox-bibliography__item {
|
|
40
|
+
padding-inline-start: 0.25rem;
|
|
41
|
+
color: var(--octc-color-text-muted);
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
.content .ox-bibliography__item + .ox-bibliography__item {
|
|
45
|
+
margin-top: 0.65rem;
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
.content .ox-bibliography__item cite {
|
|
49
|
+
color: var(--octc-color-text);
|
|
50
|
+
font-style: italic;
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
.content .ox-bibliography__url,
|
|
54
|
+
.content .ox-bibliography__doi {
|
|
55
|
+
overflow-wrap: anywhere;
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
@media print {
|
|
59
|
+
.content .ox-cite__ref {
|
|
60
|
+
text-decoration: none;
|
|
61
|
+
}
|
|
62
|
+
}
|