@riebeckite/plugin-share 0.0.31 → 0.0.33

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
@@ -10,6 +10,10 @@ copy-link action is a progressive enhancement.
10
10
 
11
11
  [日本語](./README_ja.md)
12
12
 
13
+ ## Live example
14
+
15
+ The share row at the bottom of this page is the rendered control: social-share links plus the copy-link button that appears after JavaScript loads.
16
+
13
17
  ## Overview
14
18
 
15
19
  `share()` resolves each note's `permalink` to an absolute URL, composes the
@@ -94,7 +98,7 @@ the optional `className` is added to the root without replacing them.
94
98
  ## Exports
95
99
 
96
100
  - `share(options?)` — plugin factory
97
- - `sharePlugin` — alias of `share`
101
+ - `share` — alias of `share`
98
102
  - `resolveShareOptions(options?)` — apply option defaults
99
103
  - `validateShareOptions(options?)` — validate runtime options
100
104
  - `buildAbsoluteUrl(config, permalink)` — resolve a note URL to absolute
package/README_ja.md CHANGED
@@ -2,22 +2,17 @@
2
2
 
3
3
  <!-- Generated from docs/docs/plugins/share.ja.md. Edit the canonical documentation in docs/docs/plugins and run `pnpm docs:sync`. -->
4
4
 
5
- 記事ごとの共有ボタンをビルド時に生成するプラグインです。公開対象の各エントリ
6
- について、設定したサービス向けの共有 URL を組み立て、Share controls のデータ
7
- を提供します。Site が `<ShareControls links={...} />` を描画する位置をlayout で
8
- 決定します。共有リンクは通常の `<a>` なので JavaScript なしでも動作し、コピー
9
- 操作だけをプログレッシブ・エンハンスメントとして追加します。
5
+ 記事ごとの共有ボタンをビルド時に生成するプラグインです。公開対象の各エントリについて、設定したサービス向けの共有 URL を組み立て、共有コントロールのデータを提供します。サイトが `<ShareControls links={...} />` を描画する位置をレイアウトで決めます。共有リンクは通常の `<a>` なので JavaScript なしでも動作し、コピー操作だけをプログレッシブ・エンハンスメントとして追加します。
10
6
 
11
7
  [English](./README.md)
12
8
 
9
+ ## 実行例
10
+
11
+ このページの末尾にある共有リンクの行が、実際に描画されたコントロールです。ソーシャル共有のリンクに加え、JavaScript の読み込み後にコピー用ボタンが表示されます。
12
+
13
13
  ## 仕組み
14
14
 
15
- `share()` は各ノートの `permalink` を絶対 URL に解決し、ノートのタイトルと URL
16
- からサービスごとの共有 URL を組み立て、Share control data を組み立てます。
17
- データは `getShareLinks({ entry, site, options? })` で利用可能で、Site が
18
- `<ShareControls links={...} />` で描画します。共有リンクは通常の `<a>` なので
19
- JavaScript なしでも動作し、コピー操作だけをプログレッシブ・エンハンスメント
20
- として追加します。
15
+ `share()` は各ノートの `permalink` を絶対 URL に解決し、タイトルと URL からサービスごとの共有 URL を組み立てて、共有コントロール用のデータにまとめます。データは `getShareLinks({ entry, site, options? })` で取得でき、サイトが `<ShareControls links={...} />` で描画します。共有リンクは通常の `<a>` なので JavaScript なしでも動作し、コピー操作だけをプログレッシブ・エンハンスメントとして追加します。
21
16
 
22
17
  対応サービスは次のとおりです。
23
18
 
@@ -31,8 +26,7 @@ JavaScript なしでも動作し、コピー操作だけをプログレッシブ
31
26
  | `hatena` | `https://b.hatena.ne.jp/add?mode=confirm&url=…&title=…` |
32
27
  | `copy` | ノートの URL をコピーするボタン(リンクは JS 不要) |
33
28
 
34
- Mastodon はオプトインです。`services` に `"mastodon"` を追加し、
35
- `mastodonInstance` を設定してください。
29
+ Mastodon はオプトインです。`services` に `"mastodon"` を追加し、`mastodonInstance` を設定してください。
36
30
 
37
31
  ## 使い方
38
32
 
@@ -58,25 +52,15 @@ export default defineConfig({
58
52
  | `copiedLabel` | `string` | `"Copied"` | コピー成功時に通知する文言 |
59
53
  | `copyFailedLabel` | `string` | `"Copy failed"` | コピー失敗時に通知する文言 |
60
54
 
61
- `services` に `"mastodon"` を含めたのに `mastodonInstance` が未設定の場合、
62
- `riebeckite check` の時点で設定エラーになります。
55
+ `services` に `"mastodon"` を含めたのに `mastodonInstance` が未設定の場合、`riebeckite check` の時点で設定エラーになります。
63
56
 
64
- ## 表示
57
+ ## 共有コントロールの表示位置
65
58
 
66
- 共有コントロールは、Site が layout で `<ShareControls links={...} />` を
67
- 描画する位置に実際に描画されます。このサイトでは、プログレッシブ・エンハンス
68
- メントされたリンクコピー操作を含むコントロールとして表示します。Site は
69
- コントロールを記事のトップやボトム、またはその他の位置に描画するかどうかを
70
- 決定します。
59
+ 共有コントロールは、サイトがレイアウトで `<ShareControls links={...} />` を描画する位置に表示されます。このサイトでは、プログレッシブ・エンハンスメントされたリンクコピー操作を含むコントロールとして表示します。サイトはコントロールを記事の上や下、その他の位置のどこに描画するかを決めます。
71
60
 
72
61
  ## プログレッシブ・エンハンスメント
73
62
 
74
- 共有リンクは通常の `<a>` なので、JavaScript を無効にしても動作します。コピー
75
- ボタンは `hidden` の状態で出力され、アプリのページ初期化時に呼ばれる
76
- `initShare()` が表示に切り替えます。JavaScript がない読者に、動かない操作を
77
- 見せることはありません。コピーには `navigator.clipboard.writeText` を使い、
78
- 失敗時は非表示の textarea と `document.execCommand("copy")` にフォールバック
79
- します。結果は `aria-live="polite"` のステータス領域で通知します。
63
+ 共有リンクは通常の `<a>` なので、JavaScript を無効にしても動作します。コピーボタンは `hidden` の状態で出力され、アプリのページ初期化時に呼ばれる `initShare()` が表示に切り替えます。JavaScript がない読者に、動かない操作を見せることはありません。コピーには `navigator.clipboard.writeText` を使い、失敗時は非表示の textarea と `document.execCommand("copy")` にフォールバックします。結果は `aria-live="polite"` のステータス領域で通知します。
80
64
 
81
65
  ## スタイル
82
66
 
@@ -86,16 +70,12 @@ export default defineConfig({
86
70
  import "@riebeckite/plugin-share/style.css";
87
71
  ```
88
72
 
89
- 安定したクラスは `rr-share`(ルート)、`rr-share__list`、`rr-share__item`、
90
- `rr-share__link`、`rr-share__link--{service}`、`rr-share__button`、
91
- `rr-share__copy`、`rr-share__status` です。Theme はこれらのフックを対象に
92
- できます。任意の `className` はルートに追加され、これらのフックを置き換え
93
- ません。
73
+ 安定したクラスは `rr-share`(ルート)、`rr-share__list`、`rr-share__item`、`rr-share__link`、`rr-share__link--{service}`、`rr-share__button`、`rr-share__copy`、`rr-share__status` です。テーマはこれらのフックを対象にできます。任意の `className` はルートに追加され、これらのフックを置き換えません。
94
74
 
95
75
  ## エクスポート
96
76
 
97
77
  - `share(options?)`:プラグインファクトリ
98
- - `sharePlugin`:`share` のエイリアス
78
+ - `share`:`share` のエイリアス
99
79
  - `resolveShareOptions(options?)`:オプションの既定値を適用する
100
80
  - `validateShareOptions(options?)`:実行時オプションを検証する
101
81
  - `buildAbsoluteUrl(config, permalink)`:ノート URL を絶対 URL に解決する
package/dist/index.d.ts CHANGED
@@ -18,5 +18,3 @@ export declare const SHARE_PLUGIN_NAME = "share";
18
18
  * JavaScript; only the copy-link action is enhanced at runtime.
19
19
  */
20
20
  export declare function share(options?: ShareOptions): import("@riebeckite/core").RiebeckitePlugin<ShareOptions>;
21
- /** Alias matching the `*Plugin` suffix used by other plugin factories. */
22
- export declare const sharePlugin: typeof share;
package/dist/index.js CHANGED
@@ -389,7 +389,6 @@ function share(options = {}) {
389
389
  ]
390
390
  });
391
391
  }
392
- var sharePlugin = share;
393
392
  export {
394
393
  DEFAULT_SHARE_ARIA_LABEL,
395
394
  DEFAULT_SHARE_COPIED_LABEL,
@@ -410,6 +409,5 @@ export {
410
409
  renderShareControls,
411
410
  resolveShareOptions,
412
411
  share,
413
- sharePlugin,
414
412
  validateShareOptions
415
413
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@riebeckite/plugin-share",
3
- "version": "0.0.31",
3
+ "version": "0.0.33",
4
4
  "license": "Apache-2.0",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -27,9 +27,9 @@
27
27
  "./style.css": "./style.css"
28
28
  },
29
29
  "dependencies": {
30
- "hono": "^4.12.25",
31
- "@riebeckite/core": "0.0.31",
32
- "@riebeckite/ui": "0.0.31"
30
+ "@riebeckite/core": "0.0.33",
31
+ "@riebeckite/ui": "0.0.33",
32
+ "hono": "^4.12.25"
33
33
  },
34
34
  "devDependencies": {
35
35
  "tsx": "^4.22.4"