netscape-bookmark-parser 1.1.4 → 1.2.2
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/LICENSE +2 -2
- package/README-ja.md +108 -98
- package/README.md +108 -98
- package/dist/index.d.ts +237 -0
- package/dist/index.js +347 -0
- package/dist/index.js.map +1 -0
- package/dist/web.d.ts +239 -0
- package/dist/web.js +340 -0
- package/dist/web.js.map +1 -0
- package/package.json +58 -15
- package/esm/_dnt.polyfills.d.ts +0 -101
- package/esm/_dnt.polyfills.d.ts.map +0 -1
- package/esm/_dnt.polyfills.js +0 -127
- package/esm/_dnt.shims.d.ts +0 -6
- package/esm/_dnt.shims.d.ts.map +0 -1
- package/esm/_dnt.shims.js +0 -61
- package/esm/deps/jsr.io/@b-fuze/deno-dom/0.1.49/build/deno-wasm/deno-wasm.d.ts +0 -14
- package/esm/deps/jsr.io/@b-fuze/deno-dom/0.1.49/build/deno-wasm/deno-wasm.d.ts.map +0 -1
- package/esm/deps/jsr.io/@b-fuze/deno-dom/0.1.49/build/deno-wasm/deno-wasm.js +0 -151
- package/esm/deps/jsr.io/@b-fuze/deno-dom/0.1.49/deno-dom-wasm.d.ts +0 -23
- package/esm/deps/jsr.io/@b-fuze/deno-dom/0.1.49/deno-dom-wasm.d.ts.map +0 -1
- package/esm/deps/jsr.io/@b-fuze/deno-dom/0.1.49/deno-dom-wasm.js +0 -26
- package/esm/deps/jsr.io/@b-fuze/deno-dom/0.1.49/src/api.d.ts +0 -24
- package/esm/deps/jsr.io/@b-fuze/deno-dom/0.1.49/src/api.d.ts.map +0 -1
- package/esm/deps/jsr.io/@b-fuze/deno-dom/0.1.49/src/api.js +0 -48
- package/esm/deps/jsr.io/@b-fuze/deno-dom/0.1.49/src/constructor-lock.d.ts +0 -5
- package/esm/deps/jsr.io/@b-fuze/deno-dom/0.1.49/src/constructor-lock.d.ts.map +0 -1
- package/esm/deps/jsr.io/@b-fuze/deno-dom/0.1.49/src/constructor-lock.js +0 -4
- package/esm/deps/jsr.io/@b-fuze/deno-dom/0.1.49/src/deserialize.d.ts +0 -4
- package/esm/deps/jsr.io/@b-fuze/deno-dom/0.1.49/src/deserialize.d.ts.map +0 -1
- package/esm/deps/jsr.io/@b-fuze/deno-dom/0.1.49/src/deserialize.js +0 -61
- package/esm/deps/jsr.io/@b-fuze/deno-dom/0.1.49/src/dom/document-fragment.d.ts +0 -19
- package/esm/deps/jsr.io/@b-fuze/deno-dom/0.1.49/src/dom/document-fragment.d.ts.map +0 -1
- package/esm/deps/jsr.io/@b-fuze/deno-dom/0.1.49/src/dom/document-fragment.js +0 -110
- package/esm/deps/jsr.io/@b-fuze/deno-dom/0.1.49/src/dom/document.d.ts +0 -68
- package/esm/deps/jsr.io/@b-fuze/deno-dom/0.1.49/src/dom/document.d.ts.map +0 -1
- package/esm/deps/jsr.io/@b-fuze/deno-dom/0.1.49/src/dom/document.js +0 -322
- package/esm/deps/jsr.io/@b-fuze/deno-dom/0.1.49/src/dom/dom-parser.d.ts +0 -6
- package/esm/deps/jsr.io/@b-fuze/deno-dom/0.1.49/src/dom/dom-parser.d.ts.map +0 -1
- package/esm/deps/jsr.io/@b-fuze/deno-dom/0.1.49/src/dom/dom-parser.js +0 -46
- package/esm/deps/jsr.io/@b-fuze/deno-dom/0.1.49/src/dom/element.d.ts +0 -127
- package/esm/deps/jsr.io/@b-fuze/deno-dom/0.1.49/src/dom/element.d.ts.map +0 -1
- package/esm/deps/jsr.io/@b-fuze/deno-dom/0.1.49/src/dom/element.js +0 -1068
- package/esm/deps/jsr.io/@b-fuze/deno-dom/0.1.49/src/dom/elements/html-template-element.d.ts +0 -29
- package/esm/deps/jsr.io/@b-fuze/deno-dom/0.1.49/src/dom/elements/html-template-element.d.ts.map +0 -1
- package/esm/deps/jsr.io/@b-fuze/deno-dom/0.1.49/src/dom/elements/html-template-element.js +0 -94
- package/esm/deps/jsr.io/@b-fuze/deno-dom/0.1.49/src/dom/html-collection.d.ts +0 -21
- package/esm/deps/jsr.io/@b-fuze/deno-dom/0.1.49/src/dom/html-collection.d.ts.map +0 -1
- package/esm/deps/jsr.io/@b-fuze/deno-dom/0.1.49/src/dom/html-collection.js +0 -80
- package/esm/deps/jsr.io/@b-fuze/deno-dom/0.1.49/src/dom/node-list.d.ts +0 -23
- package/esm/deps/jsr.io/@b-fuze/deno-dom/0.1.49/src/dom/node-list.d.ts.map +0 -1
- package/esm/deps/jsr.io/@b-fuze/deno-dom/0.1.49/src/dom/node-list.js +0 -159
- package/esm/deps/jsr.io/@b-fuze/deno-dom/0.1.49/src/dom/node.d.ts +0 -127
- package/esm/deps/jsr.io/@b-fuze/deno-dom/0.1.49/src/dom/node.d.ts.map +0 -1
- package/esm/deps/jsr.io/@b-fuze/deno-dom/0.1.49/src/dom/node.js +0 -629
- package/esm/deps/jsr.io/@b-fuze/deno-dom/0.1.49/src/dom/selectors/custom-api.d.ts +0 -6
- package/esm/deps/jsr.io/@b-fuze/deno-dom/0.1.49/src/dom/selectors/custom-api.d.ts.map +0 -1
- package/esm/deps/jsr.io/@b-fuze/deno-dom/0.1.49/src/dom/selectors/custom-api.js +0 -5
- package/esm/deps/jsr.io/@b-fuze/deno-dom/0.1.49/src/dom/selectors/nwsapi-types.d.ts +0 -12
- package/esm/deps/jsr.io/@b-fuze/deno-dom/0.1.49/src/dom/selectors/nwsapi-types.d.ts.map +0 -1
- package/esm/deps/jsr.io/@b-fuze/deno-dom/0.1.49/src/dom/selectors/nwsapi-types.js +0 -2
- package/esm/deps/jsr.io/@b-fuze/deno-dom/0.1.49/src/dom/selectors/nwsapi.d.ts +0 -90
- package/esm/deps/jsr.io/@b-fuze/deno-dom/0.1.49/src/dom/selectors/nwsapi.d.ts.map +0 -1
- package/esm/deps/jsr.io/@b-fuze/deno-dom/0.1.49/src/dom/selectors/nwsapi.js +0 -1611
- package/esm/deps/jsr.io/@b-fuze/deno-dom/0.1.49/src/dom/selectors/selectors.d.ts +0 -16
- package/esm/deps/jsr.io/@b-fuze/deno-dom/0.1.49/src/dom/selectors/selectors.d.ts.map +0 -1
- package/esm/deps/jsr.io/@b-fuze/deno-dom/0.1.49/src/dom/selectors/selectors.js +0 -28
- package/esm/deps/jsr.io/@b-fuze/deno-dom/0.1.49/src/dom/selectors/sizzle-types.d.ts +0 -8
- package/esm/deps/jsr.io/@b-fuze/deno-dom/0.1.49/src/dom/selectors/sizzle-types.d.ts.map +0 -1
- package/esm/deps/jsr.io/@b-fuze/deno-dom/0.1.49/src/dom/selectors/sizzle-types.js +0 -2
- package/esm/deps/jsr.io/@b-fuze/deno-dom/0.1.49/src/dom/selectors/sizzle.d.ts +0 -7
- package/esm/deps/jsr.io/@b-fuze/deno-dom/0.1.49/src/dom/selectors/sizzle.d.ts.map +0 -1
- package/esm/deps/jsr.io/@b-fuze/deno-dom/0.1.49/src/dom/selectors/sizzle.js +0 -2061
- package/esm/deps/jsr.io/@b-fuze/deno-dom/0.1.49/src/dom/string-cache.d.ts +0 -3
- package/esm/deps/jsr.io/@b-fuze/deno-dom/0.1.49/src/dom/string-cache.d.ts.map +0 -1
- package/esm/deps/jsr.io/@b-fuze/deno-dom/0.1.49/src/dom/string-cache.js +0 -10
- package/esm/deps/jsr.io/@b-fuze/deno-dom/0.1.49/src/dom/utils-types.d.ts +0 -13
- package/esm/deps/jsr.io/@b-fuze/deno-dom/0.1.49/src/dom/utils-types.d.ts.map +0 -1
- package/esm/deps/jsr.io/@b-fuze/deno-dom/0.1.49/src/dom/utils-types.js +0 -8
- package/esm/deps/jsr.io/@b-fuze/deno-dom/0.1.49/src/dom/utils.d.ts +0 -31
- package/esm/deps/jsr.io/@b-fuze/deno-dom/0.1.49/src/dom/utils.d.ts.map +0 -1
- package/esm/deps/jsr.io/@b-fuze/deno-dom/0.1.49/src/dom/utils.js +0 -239
- package/esm/deps/jsr.io/@b-fuze/deno-dom/0.1.49/src/parser.d.ts +0 -5
- package/esm/deps/jsr.io/@b-fuze/deno-dom/0.1.49/src/parser.d.ts.map +0 -1
- package/esm/deps/jsr.io/@b-fuze/deno-dom/0.1.49/src/parser.js +0 -20
- package/esm/mod.d.ts +0 -10
- package/esm/mod.d.ts.map +0 -1
- package/esm/mod.js +0 -9
- package/esm/mod_web.d.ts +0 -9
- package/esm/mod_web.d.ts.map +0 -1
- package/esm/mod_web.js +0 -8
- package/esm/package.json +0 -3
- package/esm/src/BookmarksParser/BookmarksParser.d.ts +0 -130
- package/esm/src/BookmarksParser/BookmarksParser.d.ts.map +0 -1
- package/esm/src/BookmarksParser/BookmarksParser.js +0 -142
- package/esm/src/BookmarksParser/index.d.ts +0 -8
- package/esm/src/BookmarksParser/index.d.ts.map +0 -1
- package/esm/src/BookmarksParser/index.js +0 -7
- package/esm/src/BookmarksTree/BookmarksTree.d.ts +0 -118
- package/esm/src/BookmarksTree/BookmarksTree.d.ts.map +0 -1
- package/esm/src/BookmarksTree/BookmarksTree.js +0 -225
- package/esm/src/BookmarksTree/index.d.ts +0 -8
- package/esm/src/BookmarksTree/index.d.ts.map +0 -1
- package/esm/src/BookmarksTree/index.js +0 -7
- package/esm/src/deps.d.ts +0 -9
- package/esm/src/deps.d.ts.map +0 -1
- package/esm/src/deps.js +0 -7
- package/esm/src/web/BookmarksParser/BookmarksParser.d.ts +0 -130
- package/esm/src/web/BookmarksParser/BookmarksParser.d.ts.map +0 -1
- package/esm/src/web/BookmarksParser/BookmarksParser.js +0 -142
- package/esm/src/web/BookmarksParser/index.d.ts +0 -8
- package/esm/src/web/BookmarksParser/index.d.ts.map +0 -1
- package/esm/src/web/BookmarksParser/index.js +0 -7
- package/esm/src/web/BookmarksTree/BookmarksTree.d.ts +0 -118
- package/esm/src/web/BookmarksTree/BookmarksTree.d.ts.map +0 -1
- package/esm/src/web/BookmarksTree/BookmarksTree.js +0 -225
- package/esm/src/web/BookmarksTree/index.d.ts +0 -8
- package/esm/src/web/BookmarksTree/index.d.ts.map +0 -1
- package/esm/src/web/BookmarksTree/index.js +0 -7
- package/esm/src/web/deps.d.ts +0 -10
- package/esm/src/web/deps.d.ts.map +0 -1
- package/esm/src/web/deps.js +0 -9
package/LICENSE
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
MIT License
|
|
2
2
|
|
|
3
|
-
Copyright (c) 2025
|
|
3
|
+
Copyright (c) 2025-2026 kurage(@umitsukidev)
|
|
4
4
|
|
|
5
5
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
6
|
of this software and associated documentation files (the "Software"), to deal
|
|
@@ -18,4 +18,4 @@ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
|
18
18
|
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
19
|
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
20
|
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
-
SOFTWARE.
|
|
21
|
+
SOFTWARE.
|
package/README-ja.md
CHANGED
|
@@ -4,7 +4,8 @@
|
|
|
4
4
|
|
|
5
5
|
> **注意:**
|
|
6
6
|
> この README は AI による自動生成です。内容はほぼ正確ですが、不正確な説明が含まれる場合があります。
|
|
7
|
-
|
|
7
|
+
|
|
8
|
+
英語版ドキュメント: [`./README.md`](./README.md)
|
|
8
9
|
|
|
9
10
|
## 特徴
|
|
10
11
|
|
|
@@ -30,13 +31,10 @@ import { BookmarksParser, BookmarksTree } from "netscape-bookmark-parser";
|
|
|
30
31
|
### Deno
|
|
31
32
|
|
|
32
33
|
```typescript
|
|
33
|
-
import {
|
|
34
|
-
BookmarksParser,
|
|
35
|
-
BookmarksTree,
|
|
36
|
-
} from "jsr:@grakeice/netscape-bookmark-parser";
|
|
34
|
+
import { BookmarksParser, BookmarksTree } from "jsr:@grakeice/netscape-bookmark-parser";
|
|
37
35
|
```
|
|
38
36
|
|
|
39
|
-
> **注意:** JSR 版は Node.js/Deno
|
|
37
|
+
> **注意:** JSR 版は Node.js/Deno 用のエントリです。ブラウザでは npm の依存関係ゼロの `./web` エントリをご利用ください。
|
|
40
38
|
|
|
41
39
|
### ブラウザ
|
|
42
40
|
|
|
@@ -50,16 +48,16 @@ import { BookmarksParser, BookmarksTree } from "netscape-bookmark-parser/web";
|
|
|
50
48
|
|
|
51
49
|
// 例: アップロードされたブックマークファイルの解析
|
|
52
50
|
function handleFileUpload(event: Event) {
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
51
|
+
const file = (event.target as HTMLInputElement).files?.[0];
|
|
52
|
+
if (file) {
|
|
53
|
+
const reader = new FileReader();
|
|
54
|
+
reader.onload = (e) => {
|
|
55
|
+
const htmlContent = e.target?.result as string;
|
|
56
|
+
const bookmarksTree = BookmarksParser.parse(htmlContent);
|
|
57
|
+
console.log(bookmarksTree.toJSON());
|
|
58
|
+
};
|
|
59
|
+
reader.readAsText(file);
|
|
60
|
+
}
|
|
63
61
|
}
|
|
64
62
|
```
|
|
65
63
|
|
|
@@ -67,15 +65,15 @@ function handleFileUpload(event: Event) {
|
|
|
67
65
|
|
|
68
66
|
```html
|
|
69
67
|
<script type="importmap">
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
68
|
+
{
|
|
69
|
+
"imports": {
|
|
70
|
+
"netscape-bookmark-parser/web": "https://cdn.jsdelivr.net/npm/netscape-bookmark-parser@1.1.4/dist/web.js"
|
|
71
|
+
}
|
|
72
|
+
}
|
|
75
73
|
</script>
|
|
76
74
|
<script type="module">
|
|
77
|
-
|
|
78
|
-
|
|
75
|
+
import { BookmarksParser, BookmarksTree } from "netscape-bookmark-parser/web";
|
|
76
|
+
const tree = BookmarksParser.parse(htmlContent);
|
|
79
77
|
</script>
|
|
80
78
|
```
|
|
81
79
|
|
|
@@ -83,14 +81,14 @@ function handleFileUpload(event: Event) {
|
|
|
83
81
|
|
|
84
82
|
```html
|
|
85
83
|
<script type="module">
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
84
|
+
import {
|
|
85
|
+
BookmarksParser,
|
|
86
|
+
BookmarksTree,
|
|
87
|
+
} from "https://cdn.jsdelivr.net/npm/netscape-bookmark-parser@1.1.4/dist/web.js";
|
|
90
88
|
</script>
|
|
91
89
|
```
|
|
92
90
|
|
|
93
|
-
> **ブラウザサポート:**
|
|
91
|
+
> **ブラウザサポート:** web 最適化版は npm の `./web` エントリから利用できます。ネイティブブラウザ API を使用し、DOM ライブラリへの依存はありません。
|
|
94
92
|
|
|
95
93
|
> **注意:** web 最適化版は DOMParser 等のネイティブ API を利用し、Node.js 用ポリフィルを含まないため、ブラウザで軽量かつ高速です。
|
|
96
94
|
|
|
@@ -198,12 +196,12 @@ console.log(devFolder.get("GitHub")); // "https://github.com"
|
|
|
198
196
|
|
|
199
197
|
### Web 最適化版
|
|
200
198
|
|
|
201
|
-
> **重要:** ブラウザサポートは npm
|
|
199
|
+
> **重要:** ブラウザサポートは npm の `./web` エントリから利用できます。
|
|
202
200
|
|
|
203
201
|
このライブラリは Node.js 依存を排除し、ネイティブブラウザ API を利用する web 最適化版を提供します:
|
|
204
202
|
|
|
205
203
|
```typescript
|
|
206
|
-
//
|
|
204
|
+
// web最適化版
|
|
207
205
|
import { BookmarksParser, BookmarksTree } from "netscape-bookmark-parser/web";
|
|
208
206
|
```
|
|
209
207
|
|
|
@@ -215,49 +213,49 @@ import { BookmarksParser, BookmarksTree } from "netscape-bookmark-parser/web";
|
|
|
215
213
|
|
|
216
214
|
- [`static parse(htmlString: string): BookmarksTree`](#static-parsehtmlstring-string-bookmarkstree)
|
|
217
215
|
|
|
218
|
-
|
|
219
|
-
|
|
216
|
+
- Netscape Bookmark 形式の HTML 文字列を解析し、`BookmarksTree`を返します。
|
|
217
|
+
- [`parseFromHTMLString`](#static-parsefromhtmlstringhtmlstring-string-bookmarkstree)のエイリアス。
|
|
220
218
|
|
|
221
|
-
|
|
219
|
+
**例:**
|
|
222
220
|
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
221
|
+
```typescript
|
|
222
|
+
const html = `<!DOCTYPE NETSCAPE-Bookmark-file-1>\n<HTML><BODY><DL><p>\n <DT><A HREF=\"https://example.com\">Example</A>\n</DL><p></BODY></HTML>`;
|
|
223
|
+
const tree = BookmarksParser.parse(html);
|
|
224
|
+
console.log(tree.toJSON());
|
|
225
|
+
```
|
|
228
226
|
|
|
229
227
|
- [`static parseFromHTMLString(htmlString: string): BookmarksTree`](#static-parsefromhtmlstringhtmlstring-string-bookmarkstree)
|
|
230
228
|
|
|
231
|
-
|
|
229
|
+
- HTML 文字列を解析し、`BookmarksTree`を返します。
|
|
232
230
|
|
|
233
|
-
|
|
231
|
+
**例:**
|
|
234
232
|
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
233
|
+
```typescript
|
|
234
|
+
const html = `<!DOCTYPE NETSCAPE-Bookmark-file-1>...`;
|
|
235
|
+
const tree = BookmarksParser.parseFromHTMLString(html);
|
|
236
|
+
```
|
|
239
237
|
|
|
240
238
|
- [`static parseFromDOM(dom: HTMLDocument): BookmarksTree`](#static-parsefromdomdom-htmldocument-bookmarkstree)
|
|
241
239
|
|
|
242
|
-
|
|
240
|
+
- 既存の`HTMLDocument`から`BookmarksTree`を生成します。
|
|
243
241
|
|
|
244
|
-
|
|
242
|
+
**例:**
|
|
245
243
|
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
244
|
+
```typescript
|
|
245
|
+
const dom = new DOMParser().parseFromString(html, "text/html");
|
|
246
|
+
const tree = BookmarksParser.parseFromDOM(dom);
|
|
247
|
+
```
|
|
250
248
|
|
|
251
249
|
- [`static parseFromJSON(jsonString: string): BookmarksTree`](#static-parsefromjsonjsonstring-string-bookmarkstree)
|
|
252
250
|
|
|
253
|
-
|
|
251
|
+
- JSON 文字列を解析し、`BookmarksTree`を返します。
|
|
254
252
|
|
|
255
|
-
|
|
253
|
+
**例:**
|
|
256
254
|
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
255
|
+
```typescript
|
|
256
|
+
const json = '{"Google": "https://google.com"}';
|
|
257
|
+
const tree = BookmarksParser.parseFromJSON(json);
|
|
258
|
+
```
|
|
261
259
|
|
|
262
260
|
---
|
|
263
261
|
|
|
@@ -269,73 +267,73 @@ import { BookmarksParser, BookmarksTree } from "netscape-bookmark-parser/web";
|
|
|
269
267
|
|
|
270
268
|
- [`new BookmarksTree()`](#constructor)
|
|
271
269
|
|
|
272
|
-
|
|
270
|
+
**例:**
|
|
273
271
|
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
272
|
+
```typescript
|
|
273
|
+
const tree = new BookmarksTree();
|
|
274
|
+
tree.set("Google", "https://google.com");
|
|
275
|
+
```
|
|
278
276
|
|
|
279
277
|
#### インスタンスメソッド
|
|
280
278
|
|
|
281
279
|
- [`toJSON(): Record<string, unknown>`](#tojson-recordstring-unknown)
|
|
282
280
|
|
|
283
|
-
|
|
281
|
+
- ツリーを JSON オブジェクトに変換します。
|
|
284
282
|
|
|
285
|
-
|
|
283
|
+
**例:**
|
|
286
284
|
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
285
|
+
```typescript
|
|
286
|
+
const json = tree.toJSON();
|
|
287
|
+
console.log(json);
|
|
288
|
+
```
|
|
291
289
|
|
|
292
290
|
- [`toDOM(): HTMLDocument`](#todom-htmldocument)
|
|
293
291
|
|
|
294
|
-
|
|
292
|
+
- ツリーを Netscape Bookmark 形式の HTML ドキュメントに変換します。
|
|
295
293
|
|
|
296
|
-
|
|
294
|
+
**例:**
|
|
297
295
|
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
296
|
+
```typescript
|
|
297
|
+
const dom = tree.toDOM();
|
|
298
|
+
```
|
|
301
299
|
|
|
302
300
|
- [`get HTMLString(): string`](#get-htmlstring-string)
|
|
303
301
|
|
|
304
|
-
|
|
302
|
+
- Netscape Bookmark 形式の完全な HTML 文字列を取得します。
|
|
305
303
|
|
|
306
|
-
|
|
304
|
+
**例:**
|
|
307
305
|
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
306
|
+
```typescript
|
|
307
|
+
const html = tree.HTMLString;
|
|
308
|
+
console.log(html);
|
|
309
|
+
```
|
|
312
310
|
|
|
313
311
|
- [`get HTMLText(): string`](#get-htmltext-string)
|
|
314
|
-
|
|
312
|
+
- `HTMLString`のエイリアス(非推奨)。
|
|
315
313
|
|
|
316
314
|
#### 静的メソッド
|
|
317
315
|
|
|
318
316
|
- [`static fromJSON(json: Record<string, unknown>): BookmarksTree`](#static-fromjsonjson-recordstring-unknown-bookmarkstree)
|
|
319
317
|
|
|
320
|
-
|
|
318
|
+
- JSON オブジェクトからツリーを生成します。
|
|
321
319
|
|
|
322
|
-
|
|
320
|
+
**例:**
|
|
323
321
|
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
322
|
+
```typescript
|
|
323
|
+
const json = { Google: "https://google.com" };
|
|
324
|
+
const tree = BookmarksTree.fromJSON(json);
|
|
325
|
+
```
|
|
328
326
|
|
|
329
327
|
- [`static fromDOM(dom: HTMLDocument): BookmarksTree`](#static-fromdomdom-htmldocument-bookmarkstree)
|
|
330
328
|
|
|
331
|
-
|
|
329
|
+
- HTML ドキュメントからツリーを生成します。
|
|
332
330
|
|
|
333
|
-
|
|
331
|
+
**例:**
|
|
334
332
|
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
333
|
+
```typescript
|
|
334
|
+
const dom = new DOMParser().parseFromString(html, "text/html");
|
|
335
|
+
const tree = BookmarksTree.fromDOM(dom);
|
|
336
|
+
```
|
|
339
337
|
|
|
340
338
|
## プロジェクト構成
|
|
341
339
|
|
|
@@ -350,16 +348,28 @@ src/
|
|
|
350
348
|
├── BookmarksParser.test.ts # パーサーテスト
|
|
351
349
|
└── index.ts # エクスポート定義
|
|
352
350
|
scripts/
|
|
353
|
-
└──
|
|
351
|
+
└── sync-jsr-version.mjs # package.jsonとJSRバージョンの同期
|
|
354
352
|
.github/
|
|
355
353
|
└── workflows/
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
└── README.md
|
|
354
|
+
├── changesets.yml # ChangesetsによるバージョンPR
|
|
355
|
+
├── ci.yml # テスト・型検査・ビルド
|
|
356
|
+
└── release.yml # NPM/JSR公開とGitHub Release
|
|
357
|
+
dist/ # 生成されるパッケージファイル(コミット対象外)
|
|
361
358
|
```
|
|
362
359
|
|
|
360
|
+
## 開発とリリース
|
|
361
|
+
|
|
362
|
+
pnpmで依存関係をインストールし、ローカル検証を実行します。
|
|
363
|
+
|
|
364
|
+
```bash
|
|
365
|
+
pnpm install
|
|
366
|
+
pnpm test
|
|
367
|
+
pnpm typecheck
|
|
368
|
+
pnpm build
|
|
369
|
+
```
|
|
370
|
+
|
|
371
|
+
ユーザー向け変更には `pnpm changeset` でリリースノートを追加します。`main` へのpushでChangesetsがバージョンPRを作成し、マージ時に `package.json` の変更と `jsr.json` のバージョン同期が行われます。その後の `main` へのpushでNPM/JSRへ公開し、対応する `v<version>` GitタグとGitHub Releaseを作成します。
|
|
372
|
+
|
|
363
373
|
## サポート形式
|
|
364
374
|
|
|
365
375
|
### 入力形式
|
|
@@ -471,7 +481,7 @@ MIT License - 詳細は[LICENSE](LICENSE)を参照してください。
|
|
|
471
481
|
### v1.1.0
|
|
472
482
|
|
|
473
483
|
- 🌐 **ブラウザサポート**: ブラウザ用 web 最適化版を追加
|
|
474
|
-
- 📦 **デュアルエントリーポイント**: Node.js/Deno
|
|
484
|
+
- 📦 **デュアルエントリーポイント**: Node.js/Deno 用(`src/index.ts`)とブラウザ用(`src/web.ts`)を分離
|
|
475
485
|
- ⚡ **ネイティブ DOM API**: ブラウザ版は DOMParser 等のネイティブ API で高速化
|
|
476
486
|
- 🔧 **ビルド最適化**: ポリフィル除去等によるビルド強化
|
|
477
487
|
- 📚 **ドキュメント更新**: ブラウザ利用例・API リファレンス追加
|