@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 +5 -1
- package/README_ja.md +13 -33
- package/dist/index.d.ts +0 -2
- package/dist/index.js +0 -2
- package/package.json +4 -4
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
|
-
- `
|
|
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
|
|
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
|
-
|
|
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
|
-
- `
|
|
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.
|
|
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
|
-
"
|
|
31
|
-
"@riebeckite/
|
|
32
|
-
"
|
|
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"
|