@riebeckite/plugin-dataview 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 +4 -4
- package/README_ja.md +15 -15
- package/dist/index.d.ts +1 -2
- package/dist/index.js +2 -4
- package/dist/src/placeholder.d.ts +0 -1
- package/dist/src/runtime.d.ts +2 -1
- package/package.json +3 -3
- package/style.css +0 -19
package/README.md
CHANGED
|
@@ -10,7 +10,7 @@ client-side JavaScript is required.
|
|
|
10
10
|
|
|
11
11
|
## Overview
|
|
12
12
|
|
|
13
|
-
`
|
|
13
|
+
`dataview()` recognises fenced blocks whose language is `dataview`:
|
|
14
14
|
|
|
15
15
|
````md
|
|
16
16
|
```dataview
|
|
@@ -31,11 +31,11 @@ code blocks and produce a diagnostic.
|
|
|
31
31
|
|
|
32
32
|
```ts
|
|
33
33
|
import { defineConfig } from "@riebeckite/core";
|
|
34
|
-
import {
|
|
34
|
+
import { dataview } from "@riebeckite/plugin-dataview";
|
|
35
35
|
|
|
36
36
|
export default defineConfig({
|
|
37
37
|
// ...
|
|
38
|
-
plugins: [
|
|
38
|
+
plugins: [dataview()],
|
|
39
39
|
});
|
|
40
40
|
```
|
|
41
41
|
|
|
@@ -213,7 +213,7 @@ with `hideFallback`.
|
|
|
213
213
|
|
|
214
214
|
## Exports
|
|
215
215
|
|
|
216
|
-
- `
|
|
216
|
+
- `dataview(options?)` / `dataview(options?)` — plugin factory
|
|
217
217
|
- `remarkDataview(options?)` — remark transform usable on its own
|
|
218
218
|
- `parseDataview(source)` — parse a block body into a `DataviewSpec`
|
|
219
219
|
- `selectDataviewEntries(spec, manifest, defaultLimit)` — matching engine
|
package/README_ja.md
CHANGED
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
|
|
9
9
|
## できること
|
|
10
10
|
|
|
11
|
-
`
|
|
11
|
+
`dataview()` は、フェンス言語が `dataview` のコードブロックを検出します。
|
|
12
12
|
|
|
13
13
|
````md
|
|
14
14
|
```dataview
|
|
@@ -26,11 +26,11 @@ LIMIT 10
|
|
|
26
26
|
|
|
27
27
|
```ts
|
|
28
28
|
import { defineConfig } from "@riebeckite/core";
|
|
29
|
-
import {
|
|
29
|
+
import { dataview } from "@riebeckite/plugin-dataview";
|
|
30
30
|
|
|
31
31
|
export default defineConfig({
|
|
32
32
|
// ...
|
|
33
|
-
plugins: [
|
|
33
|
+
plugins: [dataview()],
|
|
34
34
|
});
|
|
35
35
|
```
|
|
36
36
|
|
|
@@ -51,7 +51,7 @@ LIMIT <n>
|
|
|
51
51
|
|
|
52
52
|
### `LIST`
|
|
53
53
|
|
|
54
|
-
`LIST`
|
|
54
|
+
`LIST` は一致したノートを箇条書きにします。末尾の式は、リンクの横にメタ情報として表示されます。
|
|
55
55
|
|
|
56
56
|
```dataview
|
|
57
57
|
LIST file.date
|
|
@@ -86,7 +86,7 @@ CALENDAR date
|
|
|
86
86
|
FROM #project
|
|
87
87
|
```
|
|
88
88
|
|
|
89
|
-
##
|
|
89
|
+
## クエリの節
|
|
90
90
|
|
|
91
91
|
### `FROM`
|
|
92
92
|
|
|
@@ -95,7 +95,7 @@ FROM #project
|
|
|
95
95
|
| ソース | 意味 |
|
|
96
96
|
| --- | --- |
|
|
97
97
|
| `#tag` | そのタグを持つ |
|
|
98
|
-
| `"folder"` |
|
|
98
|
+
| `"folder"` | slug がそのフォルダ、またはその配下 |
|
|
99
99
|
| `[note](https://github.com/Rerurate514/riebeckite/blob/main/docs/docs/note.ja.md)` | `note` へリンクしている(被リンク) |
|
|
100
100
|
|
|
101
101
|
ソースは `and` / `or` でつなぎ、`!` または `-` で否定し、`(` `)` でまとめられます。ソースを続けて書いた場合は `and` とみなします。
|
|
@@ -106,7 +106,7 @@ FROM (#project or #area) and "notes" and !#archive
|
|
|
106
106
|
|
|
107
107
|
### `WHERE`
|
|
108
108
|
|
|
109
|
-
`WHERE` は `file.*` と frontmatter
|
|
109
|
+
`WHERE` は `file.*` と frontmatter のフィールドを対象とする真偽式でノートを絞り込みます。
|
|
110
110
|
|
|
111
111
|
| 機能 | 例 |
|
|
112
112
|
| --- | --- |
|
|
@@ -116,13 +116,13 @@ FROM (#project or #area) and "notes" and !#archive
|
|
|
116
116
|
| `date()` | `date(due) >= date("2026-01-01")` |
|
|
117
117
|
| `number()` / `string()` | `number(weight) > 3` |
|
|
118
118
|
|
|
119
|
-
文字列の `=` / `!=` と `contains()` は大文字小文字を区別しません。`date()` はミリ秒のタイムスタンプ(または `null`)を返すので、`date(a) < date(b)`
|
|
119
|
+
文字列の `=` / `!=` と `contains()` は大文字小文字を区別しません。`date()` はミリ秒のタイムスタンプ(または `null`)を返すので、`date(a) < date(b)` は時系列順に比較できます。`null` や未定義の値は `<` / `>` を満たしません。
|
|
120
120
|
|
|
121
121
|
`file.*` で使えるフィールドは `file.name`、`file.title`、`file.slug`、`file.path`、`file.folder`、`file.link`、`file.permalink`、`file.url`、`file.tags`、`file.date`、`file.created`、`file.updated`、`file.published` です。それ以外は frontmatter のキーをそのまま名前で参照します(`status`、`priority`、`due` など)。
|
|
122
122
|
|
|
123
123
|
### `SORT`
|
|
124
124
|
|
|
125
|
-
`SORT`
|
|
125
|
+
`SORT` はカンマ区切りでフィールドを指定し、各フィールドに `asc`(既定)または `desc` を付けられます。値がないノートは末尾に並びます。
|
|
126
126
|
|
|
127
127
|
```dataview
|
|
128
128
|
SORT priority desc, file.name asc
|
|
@@ -130,7 +130,7 @@ SORT priority desc, file.name asc
|
|
|
130
130
|
|
|
131
131
|
### `GROUP BY`
|
|
132
132
|
|
|
133
|
-
`GROUP BY <フィールド>` は一致したノートをグループ化します。グループ値が見出しになり、`LIST` と `TASK` はグループごとにリストを、`TABLE` はグループ行を描画します。グループの順序は `SORT`
|
|
133
|
+
`GROUP BY <フィールド>` は一致したノートをグループ化します。グループ値が見出しになり、`LIST` と `TASK` はグループごとにリストを、`TABLE` はグループ行を描画します。グループの順序は `SORT` の結果を引き継ぎます。
|
|
134
134
|
|
|
135
135
|
### `LIMIT`
|
|
136
136
|
|
|
@@ -168,17 +168,17 @@ SORT priority desc, file.name asc
|
|
|
168
168
|
|
|
169
169
|
## 制限事項
|
|
170
170
|
|
|
171
|
-
- **DataviewJS
|
|
172
|
-
- **インラインフィールド(`field:: value
|
|
173
|
-
- **`TABLE`
|
|
174
|
-
- **`TASK`
|
|
171
|
+
- **DataviewJS には対応しません**。`dataviewjs` は意図的に対象外です。
|
|
172
|
+
- **インラインフィールド(`field:: value`)には対応しません**。参照するのは frontmatter だけです。
|
|
173
|
+
- **`TABLE` の列はフィールドパスです**。任意の式は書けません。見出しの変更は `AS "Label"` だけです(`file.size / 1024` のような計算列は不可)。
|
|
174
|
+
- **`TASK` が絞り込むのはノートです**。`FROM` / `WHERE` はタスクを含むノートに働きます。
|
|
175
175
|
- **`CALENDAR` が表示するのは 1 か月分**です。一致した日付のうち最も新しい月を描画します。
|
|
176
176
|
- `file.size`、`file.mtime`、`file.ctime` はマニフェストから取得できず `undefined` になります。
|
|
177
177
|
- 結果はビルド時に確定します。dataview ブロックが生成したリンクはコンテンツグラフ(バックリンク)には含まれません。フルビルドでは常に正しく再計算されます。
|
|
178
178
|
|
|
179
179
|
## エクスポート
|
|
180
180
|
|
|
181
|
-
- `
|
|
181
|
+
- `dataview(options?)` / `dataview(options?)`:プラグインファクトリ
|
|
182
182
|
- `remarkDataview(options?)`:Remark 変換だけを利用する場合の API
|
|
183
183
|
- `parseDataview(source)`:ブロック本文を `DataviewSpec` に変換
|
|
184
184
|
- `selectDataviewEntries(spec, manifest, defaultLimit)`:照合エンジン
|
package/dist/index.d.ts
CHANGED
|
@@ -5,5 +5,4 @@ export { createDataviewPlaceholder, createDataviewPlaceholderPattern, DATAVIEW_A
|
|
|
5
5
|
export { type RemarkDataviewOptions, remarkDataview } from "./src/remark.js";
|
|
6
6
|
export { renderDataview, renderDataviewError } from "./src/render.js";
|
|
7
7
|
export { type DataviewColumn, type DataviewComparisonOperator, type DataviewExpression, type DataviewFrom, type DataviewOptions, type DataviewParseResult, type DataviewQueryType, type DataviewSort, type DataviewSortOrder, type DataviewSource, type DataviewSpec, DEFAULT_DATAVIEW_CLASS_NAME, DEFAULT_DATAVIEW_LANGUAGE, type ResolvedDataviewOptions, resolveDataviewOptions, } from "./src/types.js";
|
|
8
|
-
export declare function
|
|
9
|
-
export declare const dataview: typeof dataviewPlugin;
|
|
8
|
+
export declare function dataview(options?: DataviewOptions): import("@riebeckite/core").RiebeckitePlugin<DataviewOptions>;
|
package/dist/index.js
CHANGED
|
@@ -1089,7 +1089,7 @@ function renderFallback(source, className, hideFallback) {
|
|
|
1089
1089
|
if (hideFallback) return "";
|
|
1090
1090
|
const trimmed = source.trim();
|
|
1091
1091
|
if (trimmed.length === 0) return "";
|
|
1092
|
-
return `<details class="${escapeHtmlAttribute(`${className}__fallback`)}"><summary
|
|
1092
|
+
return `<details class="${escapeHtmlAttribute(`${className}__fallback`)} rb-source-fallback"><summary>Dataview query</summary><pre><code>${escapeHtml(trimmed)}</code></pre></details>`;
|
|
1093
1093
|
}
|
|
1094
1094
|
function renderEmpty(className) {
|
|
1095
1095
|
return `<p class="${escapeHtmlAttribute(`${className}__empty`)}">No matching content.</p>`;
|
|
@@ -1206,7 +1206,7 @@ function formatError(error) {
|
|
|
1206
1206
|
}
|
|
1207
1207
|
|
|
1208
1208
|
// index.ts
|
|
1209
|
-
function
|
|
1209
|
+
function dataview(options = {}) {
|
|
1210
1210
|
const language = options.language ?? "dataview";
|
|
1211
1211
|
const runtime = createDataviewRuntime(options);
|
|
1212
1212
|
return definePlugin({
|
|
@@ -1230,7 +1230,6 @@ function dataviewPlugin(options = {}) {
|
|
|
1230
1230
|
]
|
|
1231
1231
|
});
|
|
1232
1232
|
}
|
|
1233
|
-
var dataview = dataviewPlugin;
|
|
1234
1233
|
function validateDataviewOptions(options) {
|
|
1235
1234
|
if (!options) return [];
|
|
1236
1235
|
const issues = [];
|
|
@@ -1260,7 +1259,6 @@ export {
|
|
|
1260
1259
|
createDataviewPlaceholder,
|
|
1261
1260
|
createDataviewPlaceholderPattern,
|
|
1262
1261
|
dataview,
|
|
1263
|
-
dataviewPlugin,
|
|
1264
1262
|
evaluateDataviewExpression,
|
|
1265
1263
|
isTruthy,
|
|
1266
1264
|
matchesDataviewFrom,
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
export declare const DATAVIEW_ATTRIBUTE = "data-rr-dataview";
|
|
2
|
-
export declare function encodeDataviewSource(source: string): string;
|
|
3
2
|
export declare function decodeDataviewSource(encoded: string): string;
|
|
4
3
|
export declare function createDataviewPlaceholder(source: string): string;
|
|
5
4
|
export declare function createDataviewPlaceholderPattern(): RegExp;
|
package/dist/src/runtime.d.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import type { ContentManifest, Diagnostic } from "@riebeckite/core";
|
|
2
2
|
import { type DataviewOptions } from "./types.js";
|
|
3
|
-
|
|
3
|
+
type DataviewRuntime = {
|
|
4
4
|
resolve(manifest: ContentManifest, diagnostics: Diagnostic[]): void;
|
|
5
5
|
};
|
|
6
6
|
export declare function createDataviewRuntime(options?: DataviewOptions): DataviewRuntime;
|
|
7
|
+
export {};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@riebeckite/plugin-dataview",
|
|
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",
|
|
@@ -15,9 +15,9 @@
|
|
|
15
15
|
"./style.css": "./style.css"
|
|
16
16
|
},
|
|
17
17
|
"dependencies": {
|
|
18
|
+
"@riebeckite/core": "0.0.33",
|
|
18
19
|
"@types/mdast": "^4.0.4",
|
|
19
|
-
"unist-util-visit": "^5.1.0"
|
|
20
|
-
"@riebeckite/core": "0.0.32"
|
|
20
|
+
"unist-util-visit": "^5.1.0"
|
|
21
21
|
},
|
|
22
22
|
"devDependencies": {
|
|
23
23
|
"tsx": "^4.22.4"
|
package/style.css
CHANGED
|
@@ -159,25 +159,6 @@
|
|
|
159
159
|
font-style: italic;
|
|
160
160
|
}
|
|
161
161
|
|
|
162
|
-
.rb-dataview__fallback {
|
|
163
|
-
margin-top: 0.75rem;
|
|
164
|
-
color: var(--rb-dataview-muted);
|
|
165
|
-
font-size: 0.8125rem;
|
|
166
|
-
}
|
|
167
|
-
|
|
168
|
-
.rb-dataview__fallback-summary {
|
|
169
|
-
cursor: pointer;
|
|
170
|
-
}
|
|
171
|
-
|
|
172
|
-
.rb-dataview__fallback-code {
|
|
173
|
-
overflow-x: auto;
|
|
174
|
-
margin: 0.5rem 0 0;
|
|
175
|
-
padding: 0.75rem 1rem;
|
|
176
|
-
border: 1px solid var(--rb-dataview-rule);
|
|
177
|
-
background: var(--rb-dataview-surface);
|
|
178
|
-
color: var(--rb-dataview-ink);
|
|
179
|
-
}
|
|
180
|
-
|
|
181
162
|
.rb-dataview--error {
|
|
182
163
|
margin: 1.5rem 0;
|
|
183
164
|
padding: 0.75rem 1rem;
|