@riebeckite/plugin-code-enhance 0.0.27 → 0.0.28

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/README.md CHANGED
@@ -46,10 +46,14 @@ export default defineConfig({
46
46
  - Line numbers (`data-line-number` gutter)
47
47
  - Line and character highlighting from pretty-code meta (`{1,3}`, `[/re/]`)
48
48
  - Diff coloring for `+` / `-` lines in `diff` code blocks
49
- - Terminal styling for `bash`, `console`, `sh`, `shell`, `terminal`, `zsh`
50
- (inverted palette) with a `$` prompt prefix on non-empty lines
49
+ - One dark, terminal-style surface for every code block (inverted palette)
50
+ - A `$` prompt prefix on `bash`, `console`, `sh`, `shell`, `terminal`, `zsh`
51
+ lines
51
52
  - Focusable `<pre>` (`tabindex="0"`) for keyboard scrolling
52
53
 
54
+ Themes can set `--rr-code-syntax` on an `rr-code` root to choose the syntax
55
+ foreground without selecting highlighted-code descendants.
56
+
53
57
  ## Options
54
58
 
55
59
  | Option | Type | Default | Description |
@@ -61,8 +65,7 @@ export default defineConfig({
61
65
  | `lineHighlight` | `boolean` | `true` | Apply meta-based line/char highlights |
62
66
  | `diffHighlight` | `boolean` | `true` | Color `+` / `-` lines in `diff` blocks |
63
67
  | `collapsible` | `boolean` | `false` | Add the collapse button |
64
- | `terminal` | `boolean` | `true` | Terminal styling for shell languages |
65
- | `commandPrompt` | `boolean` | `true` | `$` prompt prefix on terminal lines |
68
+ | `commandPrompt` | `boolean` | `true` | `$` prompt prefix on shell-language lines |
66
69
  | `wrapToggle` | `boolean` | `true` | Show the wrap toggle button |
67
70
  | `defaultCollapsed` | `boolean` | `false` | Start collapsed (requires `collapsible`) |
68
71
  | `copyLabel` | `string` | `"Copy"` | Copy button label forwarded to the client |
package/README_ja.md CHANGED
@@ -25,9 +25,13 @@ export default defineConfig({
25
25
  - Shiki のテーマによる色付け、行番号、メタデータによる行・文字の強調
26
26
  - `diff` コードブロックの `+` と `-` で始まる行の差分表示
27
27
  - コピー、折り返し、任意の折りたたみ
28
- - `bash`、`console`、`sh` などを端末風に表示し、必要に応じて `$` を付ける
28
+ - すべてのコードブロックを端末風の暗い配色で表示する
29
+ - `bash`、`console`、`sh` などのシェル言語の行に `$` を付ける
29
30
  - キーボードで内容を確認できるよう、`<pre>` をフォーカス可能にする
30
31
 
32
+ Theme は `rr-code` の root に `--rr-code-syntax` を指定すると、ハイライト済みコードの
33
+ 子要素を選択せずに構文色を指定できます。
34
+
31
35
  ## オプション
32
36
 
33
37
  | オプション | 型 | 既定値 | 内容 |
@@ -39,8 +43,7 @@ export default defineConfig({
39
43
  | `lineHighlight` | `boolean` | `true` | メタデータによる行・文字の強調を適用する |
40
44
  | `diffHighlight` | `boolean` | `true` | `diff` コードブロックの `+` / `-` で始まる行を色付けする |
41
45
  | `collapsible` | `boolean` | `false` | 折りたたみボタンを追加する |
42
- | `terminal` | `boolean` | `true` | シェル言語を端末風に表示する |
43
- | `commandPrompt` | `boolean` | `true` | 端末の各行に `$` を付ける |
46
+ | `commandPrompt` | `boolean` | `true` | シェル言語の行に `$` を付ける |
44
47
  | `wrapToggle` | `boolean` | `true` | 折り返し切替ボタンを表示する |
45
48
  | `defaultCollapsed` | `boolean` | `false` | `collapsible` 有効時に折りたたんで開始する |
46
49
  | `copyLabel` | `string` | `"Copy"` | クライアントに渡すコピー前の文言 |
@@ -52,11 +55,11 @@ export default defineConfig({
52
55
 
53
56
  ## 公開 API
54
57
 
55
- - `codeEnhance(options?)` — プラグインファクトリ
56
- - `rehypeCodeEnhance(options?)` — Rehype 変換
57
- - `initCodeEnhance(options?)` — ブラウザ初期化関数
58
- - `DEFAULT_COPY_LABEL`、`DEFAULT_COPIED_LABEL` — 既定のコピー文言
59
- - `CodeEnhanceOptions`、`CodeEnhanceClientOptions`、`CodeEnhanceTheme` — 型
58
+ - `codeEnhance(options?)`:プラグインファクトリ
59
+ - `rehypeCodeEnhance(options?)`:Rehype 変換
60
+ - `initCodeEnhance(options?)`:ブラウザ初期化関数
61
+ - `DEFAULT_COPY_LABEL`、`DEFAULT_COPIED_LABEL`:既定のコピー文言
62
+ - `CodeEnhanceOptions`、`CodeEnhanceClientOptions`、`CodeEnhanceTheme`:型
60
63
 
61
64
  ## 関連資料
62
65
 
package/dist/index.js CHANGED
@@ -230,12 +230,11 @@ function enhancePrettyCodeFigures(tree, options) {
230
230
  const titleNode = findTitleNode(node);
231
231
  const title = titleNode ? getTextContent(titleNode) : null;
232
232
  const language = getLanguage(pre, code);
233
- const isTerminal = options.terminal !== false && isTerminalLanguage(language);
233
+ const isShell = isTerminalLanguage(language);
234
234
  node.properties = {
235
235
  ...node.properties,
236
236
  className: mergeClassName(node.properties?.className, "rr-code"),
237
- dataLanguage: language,
238
- dataTerminal: isTerminal ? "true" : void 0
237
+ dataLanguage: language
239
238
  };
240
239
  pre.properties = {
241
240
  ...pre.properties,
@@ -253,8 +252,7 @@ function enhancePrettyCodeFigures(tree, options) {
253
252
  if (options.lineNumbers) markLineNumbers(code);
254
253
  if (options.diffHighlight !== false && isDiffLanguage(language))
255
254
  markDiffLines(code);
256
- if (options.commandPrompt !== false && isTerminal)
257
- markCommandPrompts(code);
255
+ if (options.commandPrompt !== false && isShell) markCommandPrompts(code);
258
256
  }
259
257
  const bodyChildren = node.children?.filter((child) => child !== titleNode) ?? [];
260
258
  const body = element("div", { className: "rr-code__body" }, bodyChildren);
@@ -14,7 +14,6 @@ export type CodeEnhanceOptions = CodeEnhanceClientOptions & {
14
14
  lineHighlight?: boolean;
15
15
  diffHighlight?: boolean;
16
16
  collapsible?: boolean;
17
- terminal?: boolean;
18
17
  commandPrompt?: boolean;
19
18
  wrapToggle?: boolean;
20
19
  defaultCollapsed?: boolean;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@riebeckite/plugin-code-enhance",
3
- "version": "0.0.27",
3
+ "version": "0.0.28",
4
4
  "license": "Apache-2.0",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -23,7 +23,7 @@
23
23
  "dependencies": {
24
24
  "rehype-pretty-code": "^0.14.1",
25
25
  "shiki": "^3.13.0",
26
- "@riebeckite/core": "0.0.27"
26
+ "@riebeckite/core": "0.0.28"
27
27
  },
28
28
  "devDependencies": {
29
29
  "tsx": "^4.22.4"
package/style.css CHANGED
@@ -1,6 +1,6 @@
1
1
  .rr-code {
2
- --rr-code-paper: var(--rb-color-paper, #ffffff);
3
- --rr-code-ink: var(--rb-color-ink, #000000);
2
+ --rr-code-paper: var(--rb-color-ink, #000000);
3
+ --rr-code-ink: var(--rb-color-paper, #ffffff);
4
4
  --rr-code-muted: color-mix(in srgb, var(--rr-code-ink) 56%, transparent);
5
5
  --rr-code-rule: color-mix(in srgb, var(--rr-code-ink) 18%, transparent);
6
6
  --rr-code-accent: var(--rb-color-accent, #686868);
@@ -14,12 +14,6 @@
14
14
  margin-bottom: 2rem;
15
15
  }
16
16
 
17
- .rr-code[data-terminal="true"] {
18
- --rr-code-paper: var(--rb-color-ink, #000000);
19
- --rr-code-ink: var(--rb-color-paper, #ffffff);
20
- --rr-code-syntax: var(--shiki-dark, inherit);
21
- }
22
-
23
17
  .rr-code__header {
24
18
  display: flex;
25
19
  align-items: center;
@@ -91,21 +85,9 @@
91
85
 
92
86
  .rr-code .rr-code__code,
93
87
  .rr-code .rr-code__code span {
94
- color: var(--rr-code-syntax, var(--shiki-light, inherit));
95
- }
96
-
97
- :is(:root, .rb-theme-root)[data-theme="dark"] .rr-code .rr-code__code,
98
- :is(:root, .rb-theme-root)[data-theme="dark"] .rr-code .rr-code__code span {
99
88
  color: var(--rr-code-syntax, var(--shiki-dark, inherit));
100
89
  }
101
90
 
102
- @media (prefers-color-scheme: dark) {
103
- :is(:root, .rb-theme-root):not([data-theme]) .rr-code .rr-code__code,
104
- :is(:root, .rb-theme-root):not([data-theme]) .rr-code .rr-code__code span {
105
- color: var(--rr-code-syntax, var(--shiki-dark, inherit));
106
- }
107
- }
108
-
109
91
  .rr-code__line {
110
92
  display: inline-block;
111
93
  min-width: 100%;
@@ -163,8 +145,3 @@
163
145
  --rr-code-ink: var(--rb-color-ink, #ffffff);
164
146
  }
165
147
  }
166
-
167
- .rr-code[data-terminal="true"] .rr-code__code,
168
- .rr-code[data-terminal="true"] .rr-code__code span {
169
- color: var(--shiki-dark, inherit);
170
- }