@riebeckite/plugin-backlinks 0.0.32 → 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 +10 -6
- package/README_ja.md +14 -10
- package/dist/index.d.ts +1 -1
- package/dist/index.js +5 -5
- package/package.json +6 -6
package/README.md
CHANGED
|
@@ -7,8 +7,12 @@ current note.
|
|
|
7
7
|
|
|
8
8
|
[日本語](./README_ja.md)
|
|
9
9
|
|
|
10
|
+
## Live example
|
|
11
|
+
|
|
12
|
+
Open [Backlink](/docs/glossary/backlink) to see the rendered Backlinks section at the bottom of an article that other pages link to.
|
|
13
|
+
|
|
10
14
|
## Recommended placement
|
|
11
|
-
`
|
|
15
|
+
`backlinks()` provides a `getBacklinks({ view, slug })` helper that returns
|
|
12
16
|
`readonly ArticleBacklink[]` (`{ slug, permalink, title }`) and a `<Backlinks
|
|
13
17
|
backlinks={...} />` component that renders a `<footer class="rr-backlinks">` with
|
|
14
18
|
an eyebrow label and a list of links. The Site places the `<Backlinks />`
|
|
@@ -23,15 +27,15 @@ renders nothing.
|
|
|
23
27
|
|
|
24
28
|
```ts
|
|
25
29
|
import { defineConfig } from "@riebeckite/core";
|
|
26
|
-
import {
|
|
30
|
+
import { backlinks } from "@riebeckite/plugin-backlinks";
|
|
27
31
|
|
|
28
32
|
export default defineConfig({
|
|
29
33
|
// ...
|
|
30
|
-
plugins: [
|
|
34
|
+
plugins: [backlinks()],
|
|
31
35
|
});
|
|
32
36
|
```
|
|
33
37
|
|
|
34
|
-
`
|
|
38
|
+
`backlinks()` adds backlinks for every public entry with published
|
|
35
39
|
incoming links and bundles `style.css` into the app stylesheet. Render
|
|
36
40
|
`<Backlinks backlinks={getBacklinks({ view, slug })} />` once in the article
|
|
37
41
|
layout to display it. The official Starter already renders this component.
|
|
@@ -58,7 +62,7 @@ return (
|
|
|
58
62
|
|
|
59
63
|
## Configuration
|
|
60
64
|
|
|
61
|
-
There are no plugin options for `
|
|
65
|
+
There are no plugin options for `backlinks`. The `Backlinks` component
|
|
62
66
|
accepts `backlinks` as a required prop.
|
|
63
67
|
|
|
64
68
|
## Component
|
|
@@ -68,7 +72,7 @@ an eyebrow label and a list of links to each backlink's resolved `permalink`.
|
|
|
68
72
|
|
|
69
73
|
## Exports
|
|
70
74
|
|
|
71
|
-
- `
|
|
75
|
+
- `backlinks()` — plugin factory
|
|
72
76
|
- `Backlinks` — list component (default export of `components/backlinks.tsx`)
|
|
73
77
|
- `getBacklinks({ view, slug })` — resolves published backlinks for a slug
|
|
74
78
|
(`{ slug, permalink, title }` each)
|
package/README_ja.md
CHANGED
|
@@ -2,31 +2,35 @@
|
|
|
2
2
|
|
|
3
3
|
<!-- Generated from docs/docs/plugins/backlinks.ja.md. Edit the canonical documentation in docs/docs/plugins and run `pnpm docs:sync`. -->
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
現在の記事を参照している公開済みノートを一覧表示するプラグインです。
|
|
6
6
|
|
|
7
7
|
[English](./README.md)
|
|
8
8
|
|
|
9
|
+
## 実行例
|
|
10
|
+
|
|
11
|
+
[Backlink](/ja/docs/glossary/backlink) を開くと、他のページからリンクされている記事の末尾に、Backlinks セクションが描画されています。
|
|
12
|
+
|
|
9
13
|
## 推奨配置
|
|
10
14
|
|
|
11
|
-
`
|
|
15
|
+
`backlinks()` はコンテンツマニフェストから被リンクを解決する `getBacklinks({ view, slug })` と、その結果を描画する `<Backlinks backlinks={...} />` コンポーネントを提供します。`getBacklinks()` は公開対象のノートだけを残し、マニフェスト順で返します。`Backlinks` は受け取った一覧をリンク集として描画し、表示対象がなければ何も出力しません。配置はサイト側が担当し、通常は記事本文の後でこのコンポーネントを一度描画します。
|
|
12
16
|
|
|
13
17
|
## クイックスタート
|
|
14
18
|
|
|
15
19
|
```ts
|
|
16
20
|
import { defineConfig } from "@riebeckite/core";
|
|
17
|
-
import {
|
|
21
|
+
import { backlinks } from "@riebeckite/plugin-backlinks";
|
|
18
22
|
|
|
19
23
|
export default defineConfig({
|
|
20
24
|
// ...
|
|
21
|
-
plugins: [
|
|
25
|
+
plugins: [backlinks()],
|
|
22
26
|
});
|
|
23
27
|
```
|
|
24
28
|
|
|
25
|
-
|
|
29
|
+
プラグインを有効にすると、公開済みの被リンクがある記事で `getBacklinks()` が一覧を返すようになります。記事レイアウトで `<Backlinks backlinks={getBacklinks({ view, slug })} />` を一度描画してください。公式 Starter はこのコンポーネントをすでに描画しています。
|
|
26
30
|
|
|
27
31
|
## 高度なカスタマイズ
|
|
28
32
|
|
|
29
|
-
アプリ側で表示位置を決める場合は、`getBacklinks({ view, slug })`
|
|
33
|
+
アプリ側で表示位置を決める場合は、`getBacklinks({ view, slug })` を呼び出してデータを取得し、`<Backlinks backlinks={...} />` コンポーネントを一度だけ描画してください。被リンクのデータと公開範囲のフィルタリングは変わりません。
|
|
30
34
|
|
|
31
35
|
```tsx
|
|
32
36
|
import Backlinks, { getBacklinks } from "@riebeckite/plugin-backlinks";
|
|
@@ -37,18 +41,18 @@ const items = getBacklinks({ manifest, config, slug, resolveTitle });
|
|
|
37
41
|
return <Article footerContent={<Backlinks backlinks={items} />} />;
|
|
38
42
|
```
|
|
39
43
|
|
|
40
|
-
|
|
44
|
+
`<Backlinks />` を複数回描画すると、同じ一覧が重複して表示されます。
|
|
41
45
|
|
|
42
46
|
## 設定
|
|
43
47
|
|
|
44
|
-
`
|
|
48
|
+
`backlinks()` にはプラグイン用のオプションがありません。`Backlinks` コンポーネントは `backlinks` 必須プロップを受け取ります。
|
|
45
49
|
|
|
46
50
|
## 公開 API
|
|
47
51
|
|
|
48
|
-
- `
|
|
52
|
+
- `backlinks()`:プラグインファクトリ
|
|
49
53
|
- `Backlinks`:被リンク一覧コンポーネント
|
|
50
54
|
- `getBacklinks({ view, slug })`:公開済みの被リンクを解決する関数
|
|
51
|
-
- `ArticleBacklink`:`{ slug, permalink, title }` の型。`permalink`
|
|
55
|
+
- `ArticleBacklink`:`{ slug, permalink, title }` の型。`permalink` は解決済みの正規 URL
|
|
52
56
|
|
|
53
57
|
## 関連資料
|
|
54
58
|
|
package/dist/index.d.ts
CHANGED
|
@@ -3,4 +3,4 @@ export { default as Backlinks } from "./components/backlinks.js";
|
|
|
3
3
|
export type { ArticleBacklink } from "./src/backlinks.js";
|
|
4
4
|
export { getBacklinks, getPublishedBacklinks } from "./src/backlinks.server.js";
|
|
5
5
|
export type BacklinksOptions = Record<never, never>;
|
|
6
|
-
export declare function
|
|
6
|
+
export declare function backlinks(options?: BacklinksOptions): import("@riebeckite/core").RiebeckitePlugin<BacklinksOptions>;
|
package/dist/index.js
CHANGED
|
@@ -33,17 +33,17 @@ import { jsx, jsxs } from "hono/jsx/jsx-runtime";
|
|
|
33
33
|
var Backlinks = (async (props) => {
|
|
34
34
|
const site = useSiteContext();
|
|
35
35
|
const article = useArticleContext();
|
|
36
|
-
const
|
|
37
|
-
if (!
|
|
36
|
+
const backlinks2 = props.backlinks ?? (site && article?.entry ? await getBacklinks({ view: site.view, slug: article.entry.slug }) : void 0);
|
|
37
|
+
if (!backlinks2 || backlinks2.length === 0) return html``;
|
|
38
38
|
return /* @__PURE__ */ jsxs("footer", { class: "rr-backlinks", children: [
|
|
39
39
|
/* @__PURE__ */ jsx("p", { class: "rr-backlinks__eyebrow", children: "Backlinks" }),
|
|
40
|
-
/* @__PURE__ */ jsx("ul", { class: "rr-backlinks__list", children:
|
|
40
|
+
/* @__PURE__ */ jsx("ul", { class: "rr-backlinks__list", children: backlinks2.map((backlink) => /* @__PURE__ */ jsx("li", { class: "rr-backlinks__item", children: /* @__PURE__ */ jsx("a", { class: "rr-backlinks__link", href: backlink.permalink, children: backlink.title }) }, backlink.slug)) })
|
|
41
41
|
] });
|
|
42
42
|
});
|
|
43
43
|
var backlinks_default = Backlinks;
|
|
44
44
|
|
|
45
45
|
// index.ts
|
|
46
|
-
function
|
|
46
|
+
function backlinks(options = {}) {
|
|
47
47
|
return definePlugin({
|
|
48
48
|
name: "backlinks",
|
|
49
49
|
order: 500,
|
|
@@ -59,7 +59,7 @@ function backlinksPlugin(options = {}) {
|
|
|
59
59
|
}
|
|
60
60
|
export {
|
|
61
61
|
backlinks_default as Backlinks,
|
|
62
|
-
|
|
62
|
+
backlinks,
|
|
63
63
|
getBacklinks,
|
|
64
64
|
getPublishedBacklinks
|
|
65
65
|
};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@riebeckite/plugin-backlinks",
|
|
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",
|
|
@@ -21,13 +21,13 @@
|
|
|
21
21
|
"./style.css": "./style.css"
|
|
22
22
|
},
|
|
23
23
|
"dependencies": {
|
|
24
|
-
"
|
|
25
|
-
"@riebeckite/ui": "0.0.
|
|
26
|
-
"
|
|
24
|
+
"@riebeckite/core": "0.0.33",
|
|
25
|
+
"@riebeckite/ui": "0.0.33",
|
|
26
|
+
"hono": "^4.12.25"
|
|
27
27
|
},
|
|
28
28
|
"devDependencies": {
|
|
29
|
-
"
|
|
30
|
-
"
|
|
29
|
+
"@riebeckite/test": "0.0.33",
|
|
30
|
+
"tsx": "^4.22.4"
|
|
31
31
|
},
|
|
32
32
|
"publishConfig": {
|
|
33
33
|
"access": "public"
|