@wiki0/cli 0.0.5 → 0.0.6

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
@@ -14,6 +14,7 @@ The package exposes the `wiki0` binary.
14
14
 
15
15
  ```sh
16
16
  wiki0 init ./my-wiki
17
+ wiki0 init ./my-project --wiki-dir docs
17
18
  wiki0 page create "projects/wiki0" --body "Local-first [[topics/memory]]." --root ./my-wiki
18
19
  wiki0 plan --source_type codebase --scope "current repository" --sources README.md,package.json
19
20
  wiki0 extract docs/guide.md --root ./my-wiki
@@ -32,6 +33,13 @@ wiki0 events --root ./my-wiki
32
33
  wiki0 review --root ./my-wiki
33
34
  ```
34
35
 
36
+ ## Content folder and index
37
+
38
+ Page commands write under `wiki/` by default. Use `--wiki-dir docs`
39
+ when you want wiki0-backed project documentation in `docs/` instead.
40
+ The local SQLite index lives under `.wiki0/`; `wiki0 init` adds
41
+ `.wiki0/` to `.gitignore` because it is rebuildable cache data.
42
+
35
43
  ## Output
36
44
 
37
45
  Most commands return JSON so agents and shell scripts can consume the
package/dist/actions.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import { type WikiFrontmatter } from '@wiki0/core';
2
- export declare function init_workspace(root: string): string;
2
+ export declare function init_workspace(root: string, wiki_dir?: string): string;
3
3
  export declare function read_markdown_input(options: {
4
4
  file?: string;
5
5
  body?: string;
package/dist/actions.js CHANGED
@@ -1,21 +1,34 @@
1
1
  import { schema_sql } from '@wiki0/core';
2
- import { mkdirSync, readFileSync, writeFileSync } from 'node:fs';
2
+ import { existsSync, mkdirSync, readFileSync, writeFileSync, } from 'node:fs';
3
3
  import { join } from 'node:path';
4
- export function init_workspace(root) {
4
+ export function init_workspace(root, wiki_dir = 'wiki') {
5
5
  for (const dir of [
6
- 'wiki/inbox',
7
- 'wiki/decisions',
8
- 'wiki/people',
9
- 'wiki/projects',
10
- 'wiki/topics',
6
+ `${wiki_dir}/inbox`,
7
+ `${wiki_dir}/decisions`,
8
+ `${wiki_dir}/people`,
9
+ `${wiki_dir}/projects`,
10
+ `${wiki_dir}/topics`,
11
11
  '.wiki0',
12
12
  ]) {
13
13
  mkdirSync(join(root, dir), { recursive: true });
14
14
  }
15
- writeFileSync(join(root, 'wiki/index.md'), '# Wiki0\n\nStart here. Link pages with `[[topics/example]]`.\n', { flag: 'wx' });
15
+ writeFileSync(join(root, wiki_dir, 'index.md'), '# Wiki0\n\nStart here. Link pages with `[[topics/example]]`.\n', { flag: 'wx' });
16
16
  writeFileSync(join(root, '.wiki0/schema.sql'), schema_sql);
17
+ ensure_gitignore_ignores_index(root);
17
18
  return `Created wiki0 workspace at ${root}`;
18
19
  }
20
+ function ensure_gitignore_ignores_index(root) {
21
+ const path = join(root, '.gitignore');
22
+ const entry = '.wiki0/';
23
+ if (!existsSync(path)) {
24
+ writeFileSync(path, `${entry}\n`, { flag: 'wx' });
25
+ return;
26
+ }
27
+ const body = readFileSync(path, 'utf-8');
28
+ if (body.split(/\r?\n/u).includes(entry))
29
+ return;
30
+ writeFileSync(path, `${body}${body.endsWith('\n') ? '' : '\n'}${entry}\n`);
31
+ }
19
32
  export function read_markdown_input(options) {
20
33
  return options.file
21
34
  ? readFileSync(options.file, 'utf-8')
@@ -1 +1 @@
1
- {"version":3,"file":"actions.js","sourceRoot":"","sources":["../src/actions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAwB,MAAM,aAAa,CAAC;AAC/D,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACjE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,MAAM,UAAU,cAAc,CAAC,IAAY;IAC1C,KAAK,MAAM,GAAG,IAAI;QACjB,YAAY;QACZ,gBAAgB;QAChB,aAAa;QACb,eAAe;QACf,aAAa;QACb,QAAQ;KACR,EAAE,CAAC;QACH,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACjD,CAAC;IAED,aAAa,CACZ,IAAI,CAAC,IAAI,EAAE,eAAe,CAAC,EAC3B,gEAAgE,EAChE,EAAE,IAAI,EAAE,IAAI,EAAE,CACd,CAAC;IACF,aAAa,CAAC,IAAI,CAAC,IAAI,EAAE,mBAAmB,CAAC,EAAE,UAAU,CAAC,CAAC;IAC3D,OAAO,8BAA8B,IAAI,EAAE,CAAC;AAC7C,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,OAGnC;IACA,OAAO,OAAO,CAAC,IAAI;QAClB,CAAC,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC;QACrC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;AACzB,CAAC;AAED,MAAM,UAAU,sBAAsB,CACrC,IAAY;IAEZ,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAoB,CAAC;AAC5C,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,KAAc;IACxC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;AAC7C,CAAC"}
1
+ {"version":3,"file":"actions.js","sourceRoot":"","sources":["../src/actions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAwB,MAAM,aAAa,CAAC;AAC/D,OAAO,EACN,UAAU,EACV,SAAS,EACT,YAAY,EACZ,aAAa,GACb,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,MAAM,UAAU,cAAc,CAC7B,IAAY,EACZ,QAAQ,GAAG,MAAM;IAEjB,KAAK,MAAM,GAAG,IAAI;QACjB,GAAG,QAAQ,QAAQ;QACnB,GAAG,QAAQ,YAAY;QACvB,GAAG,QAAQ,SAAS;QACpB,GAAG,QAAQ,WAAW;QACtB,GAAG,QAAQ,SAAS;QACpB,QAAQ;KACR,EAAE,CAAC;QACH,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACjD,CAAC;IAED,aAAa,CACZ,IAAI,CAAC,IAAI,EAAE,QAAQ,EAAE,UAAU,CAAC,EAChC,gEAAgE,EAChE,EAAE,IAAI,EAAE,IAAI,EAAE,CACd,CAAC;IACF,aAAa,CAAC,IAAI,CAAC,IAAI,EAAE,mBAAmB,CAAC,EAAE,UAAU,CAAC,CAAC;IAC3D,8BAA8B,CAAC,IAAI,CAAC,CAAC;IACrC,OAAO,8BAA8B,IAAI,EAAE,CAAC;AAC7C,CAAC;AAED,SAAS,8BAA8B,CAAC,IAAY;IACnD,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;IACtC,MAAM,KAAK,GAAG,SAAS,CAAC;IACxB,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;QACvB,aAAa,CAAC,IAAI,EAAE,GAAG,KAAK,IAAI,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;QAClD,OAAO;IACR,CAAC;IACD,MAAM,IAAI,GAAG,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IACzC,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC;QAAE,OAAO;IACjD,aAAa,CACZ,IAAI,EACJ,GAAG,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,GAAG,KAAK,IAAI,CACrD,CAAC;AACH,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,OAGnC;IACA,OAAO,OAAO,CAAC,IAAI;QAClB,CAAC,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC;QACrC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;AACzB,CAAC;AAED,MAAM,UAAU,sBAAsB,CACrC,IAAY;IAEZ,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAoB,CAAC;AAC5C,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,KAAc;IACxC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;AAC7C,CAAC"}
package/dist/commands.js CHANGED
@@ -25,6 +25,11 @@ function parse_sources(value) {
25
25
  function parse_optional_sources(value) {
26
26
  return parse_sources(value);
27
27
  }
28
+ function wiki_dir_arg(args) {
29
+ return typeof args.wikiDir === 'string' && args.wikiDir.length > 0
30
+ ? args.wikiDir
31
+ : 'wiki';
32
+ }
28
33
  function resolve_cli_source(root, source) {
29
34
  return isAbsolute(source) ? source : resolve(root, source);
30
35
  }
@@ -53,9 +58,14 @@ export const main = defineCommand({
53
58
  description: 'Wiki root path',
54
59
  default: '.',
55
60
  },
61
+ wikiDir: {
62
+ type: 'string',
63
+ description: 'Content folder to store pages (for example docs)',
64
+ default: 'wiki',
65
+ },
56
66
  },
57
67
  run({ args }) {
58
- console.log(init_workspace(String(args.path ?? '.')));
68
+ console.log(init_workspace(String(args.path ?? '.'), wiki_dir_arg(args)));
59
69
  },
60
70
  }),
61
71
  page: defineCommand({
@@ -81,6 +91,11 @@ export const main = defineCommand({
81
91
  description: 'Wiki root path',
82
92
  default: '.',
83
93
  },
94
+ wikiDir: {
95
+ type: 'string',
96
+ description: 'Content folder to store pages (for example docs)',
97
+ default: 'wiki',
98
+ },
84
99
  overwrite: {
85
100
  type: 'boolean',
86
101
  description: 'Overwrite an existing page',
@@ -89,6 +104,7 @@ export const main = defineCommand({
89
104
  run({ args }) {
90
105
  const page = create_page(String(args.title), read_markdown_input(args), {
91
106
  root: String(args.root ?? '.'),
107
+ wiki_dir: wiki_dir_arg(args),
92
108
  overwrite: Boolean(args.overwrite),
93
109
  });
94
110
  print_json(page);
@@ -107,9 +123,14 @@ export const main = defineCommand({
107
123
  description: 'Wiki root path',
108
124
  default: '.',
109
125
  },
126
+ wikiDir: {
127
+ type: 'string',
128
+ description: 'Content folder to store pages (for example docs)',
129
+ default: 'wiki',
130
+ },
110
131
  },
111
132
  run({ args }) {
112
- print_json(read_page(String(args.title), String(args.root ?? '.')));
133
+ print_json(read_page(String(args.title), String(args.root ?? '.'), wiki_dir_arg(args)));
113
134
  },
114
135
  }),
115
136
  frontmatter: defineCommand({
@@ -132,6 +153,11 @@ export const main = defineCommand({
132
153
  description: 'Wiki root path',
133
154
  default: '.',
134
155
  },
156
+ wikiDir: {
157
+ type: 'string',
158
+ description: 'Content folder to store pages (for example docs)',
159
+ default: 'wiki',
160
+ },
135
161
  merge: {
136
162
  type: 'boolean',
137
163
  description: 'Merge with existing frontmatter',
@@ -140,6 +166,7 @@ export const main = defineCommand({
140
166
  run({ args }) {
141
167
  const page = set_page_frontmatter(String(args.title), parse_frontmatter_json(args.data), {
142
168
  root: String(args.root ?? '.'),
169
+ wiki_dir: wiki_dir_arg(args),
143
170
  merge: Boolean(args.merge),
144
171
  });
145
172
  print_json(page);
@@ -166,9 +193,14 @@ export const main = defineCommand({
166
193
  description: 'Wiki root path',
167
194
  default: '.',
168
195
  },
196
+ wikiDir: {
197
+ type: 'string',
198
+ description: 'Content folder to store pages (for example docs)',
199
+ default: 'wiki',
200
+ },
169
201
  },
170
202
  run({ args }) {
171
- const page = append_page(String(args.title), read_markdown_input(args), String(args.root ?? '.'));
203
+ const page = append_page(String(args.title), read_markdown_input(args), String(args.root ?? '.'), wiki_dir_arg(args));
172
204
  print_json(page);
173
205
  },
174
206
  }),
@@ -209,6 +241,11 @@ export const main = defineCommand({
209
241
  description: 'Wiki root path',
210
242
  default: '.',
211
243
  },
244
+ wikiDir: {
245
+ type: 'string',
246
+ description: 'Content folder to store pages (for example docs)',
247
+ default: 'wiki',
248
+ },
212
249
  overwrite: {
213
250
  type: 'boolean',
214
251
  description: 'Overwrite existing synced source pages',
@@ -237,6 +274,7 @@ export const main = defineCommand({
237
274
  async run({ args }) {
238
275
  print_json(await sync_documents({
239
276
  root: String(args.root ?? '.'),
277
+ wiki_dir: wiki_dir_arg(args),
240
278
  sources: parse_sources(args.sources) ?? [],
241
279
  overwrite: Boolean(args.overwrite),
242
280
  index: !args.noIndex,
@@ -309,10 +347,16 @@ export const main = defineCommand({
309
347
  description: 'Wiki root path',
310
348
  default: '.',
311
349
  },
350
+ wikiDir: {
351
+ type: 'string',
352
+ description: 'Content folder to store pages (for example docs)',
353
+ default: 'wiki',
354
+ },
312
355
  },
313
356
  run({ args }) {
314
357
  print_json(add_fact({
315
358
  root: String(args.root ?? '.'),
359
+ wiki_dir: wiki_dir_arg(args),
316
360
  page: args.page ? String(args.page) : undefined,
317
361
  category: String(args.category ?? 'note'),
318
362
  summary: String(args.summary),
@@ -337,6 +381,11 @@ export const main = defineCommand({
337
381
  description: 'Wiki root path',
338
382
  default: '.',
339
383
  },
384
+ wikiDir: {
385
+ type: 'string',
386
+ description: 'Content folder to store pages (for example docs)',
387
+ default: 'wiki',
388
+ },
340
389
  },
341
390
  run({ args }) {
342
391
  print_json(list_facts(String(args.root ?? '.'), args.category ? String(args.category) : undefined));
@@ -352,6 +401,11 @@ export const main = defineCommand({
352
401
  description: 'Wiki root path',
353
402
  default: '.',
354
403
  },
404
+ wikiDir: {
405
+ type: 'string',
406
+ description: 'Content folder to store pages (for example docs)',
407
+ default: 'wiki',
408
+ },
355
409
  limit: {
356
410
  type: 'string',
357
411
  description: 'Maximum number of events',
@@ -372,6 +426,11 @@ export const main = defineCommand({
372
426
  description: 'Wiki root path',
373
427
  default: '.',
374
428
  },
429
+ wikiDir: {
430
+ type: 'string',
431
+ description: 'Content folder to store pages (for example docs)',
432
+ default: 'wiki',
433
+ },
375
434
  limit: {
376
435
  type: 'string',
377
436
  description: 'Maximum number of topics',
@@ -390,9 +449,14 @@ export const main = defineCommand({
390
449
  description: 'Wiki root path',
391
450
  default: '.',
392
451
  },
452
+ wikiDir: {
453
+ type: 'string',
454
+ description: 'Content folder to store pages (for example docs)',
455
+ default: 'wiki',
456
+ },
393
457
  },
394
458
  run({ args }) {
395
- print_json(index_wiki(String(args.root ?? '.')));
459
+ print_json(index_wiki(String(args.root ?? '.'), wiki_dir_arg(args)));
396
460
  },
397
461
  }),
398
462
  status: defineCommand({
@@ -403,9 +467,14 @@ export const main = defineCommand({
403
467
  description: 'Wiki root path',
404
468
  default: '.',
405
469
  },
470
+ wikiDir: {
471
+ type: 'string',
472
+ description: 'Content folder to store pages (for example docs)',
473
+ default: 'wiki',
474
+ },
406
475
  },
407
476
  run({ args }) {
408
- print_json(index_status(String(args.root ?? '.')));
477
+ print_json(index_status(String(args.root ?? '.'), wiki_dir_arg(args)));
409
478
  },
410
479
  }),
411
480
  search: defineCommand({
@@ -417,6 +486,11 @@ export const main = defineCommand({
417
486
  description: 'Wiki root path',
418
487
  default: '.',
419
488
  },
489
+ wikiDir: {
490
+ type: 'string',
491
+ description: 'Content folder to store pages (for example docs)',
492
+ default: 'wiki',
493
+ },
420
494
  limit: {
421
495
  type: 'string',
422
496
  description: 'Maximum number of results',
@@ -442,13 +516,18 @@ export const main = defineCommand({
442
516
  description: 'Wiki root path',
443
517
  default: '.',
444
518
  },
519
+ wikiDir: {
520
+ type: 'string',
521
+ description: 'Content folder to store pages (for example docs)',
522
+ default: 'wiki',
523
+ },
445
524
  json: {
446
525
  type: 'boolean',
447
526
  description: 'Output structured JSON instead of Markdown',
448
527
  },
449
528
  },
450
529
  run({ args }) {
451
- const result = show_wiki_chunk(String(args.target), String(args.root ?? '.'));
530
+ const result = show_wiki_chunk(String(args.target), String(args.root ?? '.'), wiki_dir_arg(args));
452
531
  if (args.json)
453
532
  print_json(result);
454
533
  else
@@ -466,6 +545,11 @@ export const main = defineCommand({
466
545
  description: 'Wiki root path',
467
546
  default: '.',
468
547
  },
548
+ wikiDir: {
549
+ type: 'string',
550
+ description: 'Content folder to store pages (for example docs)',
551
+ default: 'wiki',
552
+ },
469
553
  limit: {
470
554
  type: 'string',
471
555
  description: 'Maximum number of context results',
@@ -477,7 +561,7 @@ export const main = defineCommand({
477
561
  },
478
562
  },
479
563
  run({ args }) {
480
- const result = get_wiki_context(String(args.query), String(args.root ?? '.'), Number(args.limit ?? 5));
564
+ const result = get_wiki_context(String(args.query), String(args.root ?? '.'), Number(args.limit ?? 5), wiki_dir_arg(args));
481
565
  console.log(args.json
482
566
  ? JSON.stringify(result, null, 2)
483
567
  : result.markdown);
@@ -491,6 +575,11 @@ export const main = defineCommand({
491
575
  description: 'Wiki root path',
492
576
  default: '.',
493
577
  },
578
+ wikiDir: {
579
+ type: 'string',
580
+ description: 'Content folder to store pages (for example docs)',
581
+ default: 'wiki',
582
+ },
494
583
  },
495
584
  run({ args }) {
496
585
  print_json(graph_wiki(String(args.root ?? '.')));
@@ -504,9 +593,14 @@ export const main = defineCommand({
504
593
  description: 'Wiki root path',
505
594
  default: '.',
506
595
  },
596
+ wikiDir: {
597
+ type: 'string',
598
+ description: 'Content folder to store pages (for example docs)',
599
+ default: 'wiki',
600
+ },
507
601
  },
508
602
  run({ args }) {
509
- const result = lint_wiki(String(args.root ?? '.'));
603
+ const result = lint_wiki(String(args.root ?? '.'), wiki_dir_arg(args));
510
604
  print_json(result);
511
605
  if (!result.ok)
512
606
  process.exitCode = 1;
@@ -521,9 +615,14 @@ export const main = defineCommand({
521
615
  description: 'Wiki root path',
522
616
  default: '.',
523
617
  },
618
+ wikiDir: {
619
+ type: 'string',
620
+ description: 'Content folder to store pages (for example docs)',
621
+ default: 'wiki',
622
+ },
524
623
  },
525
624
  run({ args }) {
526
- print_json(backlinks_for_page(String(args.title), String(args.root ?? '.')));
625
+ print_json(backlinks_for_page(String(args.title), String(args.root ?? '.'), wiki_dir_arg(args)));
527
626
  },
528
627
  }),
529
628
  review: defineCommand({
@@ -536,9 +635,14 @@ export const main = defineCommand({
536
635
  description: 'Wiki root path',
537
636
  default: '.',
538
637
  },
638
+ wikiDir: {
639
+ type: 'string',
640
+ description: 'Content folder to store pages (for example docs)',
641
+ default: 'wiki',
642
+ },
539
643
  },
540
644
  run({ args }) {
541
- print_json(review_wiki(String(args.root ?? '.')));
645
+ print_json(review_wiki(String(args.root ?? '.'), wiki_dir_arg(args)));
542
646
  },
543
647
  }),
544
648
  },
@@ -1 +1 @@
1
- {"version":3,"file":"commands.js","sourceRoot":"","sources":["../src/commands.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"commands.js","sourceRoot":"","sources":["../src/commands.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export declare function serve_viewer(root: string, host: string, port: number, open: boolean): void;
package/dist/viewer.js ADDED
@@ -0,0 +1,186 @@
1
+ import { backlinks_for_page, graph_wiki, index_status, index_wiki, read_page, review_wiki, search_wiki, } from '@wiki0/core';
2
+ import { spawn } from 'node:child_process';
3
+ import { createServer } from 'node:http';
4
+ function send_json(response, status_code, data) {
5
+ response.writeHead(status_code, {
6
+ 'content-type': 'application/json; charset=utf-8',
7
+ 'cache-control': 'no-store',
8
+ });
9
+ response.end(JSON.stringify(data));
10
+ }
11
+ function send_html(response, html) {
12
+ response.writeHead(200, {
13
+ 'content-type': 'text/html; charset=utf-8',
14
+ 'cache-control': 'no-store',
15
+ });
16
+ response.end(html);
17
+ }
18
+ function open_url(url) {
19
+ const command = process.platform === 'darwin'
20
+ ? 'open'
21
+ : process.platform === 'win32'
22
+ ? 'cmd'
23
+ : 'xdg-open';
24
+ const args = process.platform === 'win32' ? ['/c', 'start', '', url] : [url];
25
+ const child = spawn(command, args, { detached: true, stdio: 'ignore' });
26
+ child.unref();
27
+ }
28
+ function read_view_state(root, url) {
29
+ const status = index_status(root);
30
+ if (status.stale)
31
+ index_wiki(root);
32
+ const graph = graph_wiki(root);
33
+ const review = review_wiki(root);
34
+ const query = url.searchParams.get('q')?.trim() ?? '';
35
+ const search = query ? search_wiki(query, root, 8) : [];
36
+ const selected_path = url.searchParams.get('page') ?? graph.nodes[0]?.path ?? null;
37
+ let selected_page = null;
38
+ let backlinks = [];
39
+ if (selected_path) {
40
+ try {
41
+ const selected_title = selected_path.replace(/\.md$/u, '');
42
+ selected_page = read_page(selected_title, root);
43
+ backlinks = backlinks_for_page(selected_title, root);
44
+ }
45
+ catch {
46
+ selected_page = null;
47
+ }
48
+ }
49
+ return {
50
+ root,
51
+ status: status.stale ? index_status(root) : status,
52
+ graph,
53
+ review,
54
+ query,
55
+ search,
56
+ selected_path,
57
+ selected_page,
58
+ backlinks,
59
+ };
60
+ }
61
+ function viewer_html() {
62
+ return `<!doctype html>
63
+ <html lang="en">
64
+ <head>
65
+ <meta charset="utf-8" />
66
+ <meta name="viewport" content="width=device-width, initial-scale=1" />
67
+ <title>wiki0 viewer</title>
68
+ <style>
69
+ :root{color-scheme:light dark;font-family:Inter,ui-sans-serif,system-ui,sans-serif;background:#0f172a;color:#e2e8f0}body{margin:0}main{padding:24px;display:grid;gap:16px}header{display:flex;justify-content:space-between;gap:16px;align-items:end;flex-wrap:wrap}.muted{color:#94a3b8}.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px}.card{background:#111827;border:1px solid #334155;border-radius:14px;padding:16px;box-shadow:0 12px 40px #02061740}.value{font-size:28px;font-weight:700}input,button{border-radius:10px;border:1px solid #475569;background:#020617;color:#e2e8f0;padding:10px 12px}button{cursor:pointer}button:hover{border-color:#93c5fd}.layout{display:grid;grid-template-columns:minmax(0,1fr) 380px;gap:16px}.graph{min-height:520px;overflow:hidden}.side{display:grid;gap:16px;align-content:start}.page-list{display:grid;gap:6px;max-height:220px;overflow:auto}.page-list button{text-align:left}.selected{border-color:#38bdf8;background:#082f49}svg{width:100%;height:520px}.node{fill:#38bdf8;cursor:pointer}.node.selected{fill:#f59e0b}.edge{stroke:#64748b;stroke-width:1.4}.edge.unresolved{stroke:#f97316;stroke-dasharray:4 4}.label{fill:#cbd5e1;font-size:12px;pointer-events:none}pre{white-space:pre-wrap;max-height:420px;overflow:auto}.result{border-top:1px solid #334155;padding:10px 0}@media(max-width:900px){.layout{grid-template-columns:1fr}}
70
+ </style>
71
+ </head>
72
+ <body>
73
+ <main>
74
+ <header><div><h1>wiki0 viewer</h1><p id="root" class="muted"></p></div><form id="search"><input id="q" name="q" placeholder="Search wiki" /><button>Search</button></form></header>
75
+ <section class="cards"><div class="card"><div class="muted">Pages</div><div id="pages" class="value">0</div></div><div class="card"><div class="muted">Edges</div><div id="edges" class="value">0</div></div><div class="card"><div class="muted">Unresolved</div><div id="unresolved" class="value">0</div></div><div class="card"><div class="muted">Review</div><div id="review" class="value">0</div></div></section>
76
+ <section class="layout"><div class="card graph"><svg id="graph" role="img" aria-label="Wiki graph"></svg></div><aside class="side"><div class="card"><h2>Pages</h2><div id="page-list" class="page-list"></div></div><div class="card"><h2 id="page-title">Select a page</h2><p id="page-path" class="muted"></p><pre id="page-content"></pre><div id="backlinks"></div></div></aside></section>
77
+ <section id="search-results" class="card" hidden><h2>Search results</h2><div id="results"></div></section>
78
+ </main>
79
+ <script>
80
+ const state = { data: null };
81
+ const esc = (value) => String(value ?? '').replace(/[&<>"']/g, (char) => ({'&':'&amp;','<':'&lt;','>':'&gt;','"':'&quot;',"'":'&#39;'}[char]));
82
+ async function load_state() {
83
+ const params = new URLSearchParams(location.search);
84
+ const response = await fetch('/api/state?' + params.toString());
85
+ state.data = await response.json();
86
+ render_state(state.data);
87
+ }
88
+ function select_page(path) {
89
+ const params = new URLSearchParams(location.search);
90
+ params.set('page', path);
91
+ history.pushState(null, '', '?' + params.toString());
92
+ load_state();
93
+ }
94
+ function render_state(data) {
95
+ document.getElementById('root').textContent = data.root;
96
+ document.getElementById('q').value = data.query;
97
+ document.getElementById('pages').textContent = data.graph.nodes.length;
98
+ document.getElementById('edges').textContent = data.graph.edges.length;
99
+ document.getElementById('unresolved').textContent = data.graph.edges.filter((edge) => edge.status === 'unresolved').length;
100
+ document.getElementById('review').textContent = data.review.length;
101
+ document.getElementById('page-list').innerHTML = data.graph.nodes.map((node) => '<button class="' + (node.path === data.selected_path ? 'selected' : '') + '" type="button" onclick="select_page(' + JSON.stringify(node.path).replace(/"/g, '&quot;') + ')">' + esc(node.title) + '</button>').join('');
102
+ render_graph(data);
103
+ render_page(data);
104
+ render_search(data);
105
+ }
106
+ function render_graph(data) {
107
+ const svg = document.getElementById('graph');
108
+ const nodes = data.graph.nodes;
109
+ const width = svg.clientWidth || 800;
110
+ const height = svg.clientHeight || 520;
111
+ const radius = Math.max(130, Math.min(width, height) / 2 - 70);
112
+ const center_x = width / 2;
113
+ const center_y = height / 2;
114
+ const positions = new Map(nodes.map((node, index) => {
115
+ const angle = (Math.PI * 2 * index) / Math.max(nodes.length, 1) - Math.PI / 2;
116
+ return [node.path, { x: center_x + Math.cos(angle) * radius, y: center_y + Math.sin(angle) * radius }];
117
+ }));
118
+ const edge_markup = data.graph.edges.map((edge) => {
119
+ const from = positions.get(edge.from);
120
+ const to = positions.get(edge.to);
121
+ if (!from || !to) return '';
122
+ return '<line class="edge ' + edge.status + '" x1="' + from.x + '" y1="' + from.y + '" x2="' + to.x + '" y2="' + to.y + '"></line>';
123
+ }).join('');
124
+ const node_markup = nodes.map((node) => {
125
+ const point = positions.get(node.path);
126
+ const selected = node.path === data.selected_path ? ' selected' : '';
127
+ return '<g onclick="select_page(' + JSON.stringify(node.path).replace(/"/g, '&quot;') + ')"><circle class="node' + selected + '" cx="' + point.x + '" cy="' + point.y + '" r="8"></circle><text class="label" x="' + (point.x + 12) + '" y="' + (point.y + 4) + '">' + esc(node.title) + '</text></g>';
128
+ }).join('');
129
+ svg.innerHTML = edge_markup + node_markup;
130
+ }
131
+ function render_page(data) {
132
+ const page = data.selected_page;
133
+ document.getElementById('page-title').textContent = page ? page.title : 'Select a page';
134
+ document.getElementById('page-path').textContent = page ? page.path : '';
135
+ document.getElementById('page-content').textContent = page ? page.content : '';
136
+ document.getElementById('backlinks').innerHTML = '<h3>Backlinks</h3>' + (data.backlinks.length ? data.backlinks.map((link) => '<button type="button" onclick="select_page(' + JSON.stringify(link.path).replace(/"/g, '&quot;') + ')">' + esc(link.title) + '</button>').join(' ') : '<p class="muted">No backlinks.</p>');
137
+ }
138
+ function render_search(data) {
139
+ const section = document.getElementById('search-results');
140
+ section.hidden = !data.query;
141
+ document.getElementById('results').innerHTML = data.search.length ? data.search.map((result) => '<article class="result"><strong>' + esc(result.title) + '</strong><p class="muted">' + esc(result.path) + '</p><p>' + esc(result.snippet) + '</p></article>').join('') : '<p class="muted">No results.</p>';
142
+ }
143
+ document.getElementById('search').addEventListener('submit', (event) => {
144
+ event.preventDefault();
145
+ const params = new URLSearchParams(location.search);
146
+ const q = document.getElementById('q').value.trim();
147
+ if (q) params.set('q', q); else params.delete('q');
148
+ history.pushState(null, '', '?' + params.toString());
149
+ load_state();
150
+ });
151
+ addEventListener('popstate', load_state);
152
+ addEventListener('resize', () => state.data && render_graph(state.data));
153
+ load_state();
154
+ </script>
155
+ </body>
156
+ </html>`;
157
+ }
158
+ export function serve_viewer(root, host, port, open) {
159
+ const server = createServer((request, response) => {
160
+ const url = new URL(request.url ?? '/', `http://${host}:${port}`);
161
+ try {
162
+ if (url.pathname === '/api/state') {
163
+ send_json(response, 200, read_view_state(root, url));
164
+ return;
165
+ }
166
+ if (url.pathname === '/') {
167
+ send_html(response, viewer_html());
168
+ return;
169
+ }
170
+ send_json(response, 404, { error: 'Not found' });
171
+ }
172
+ catch (error) {
173
+ send_json(response, 500, {
174
+ error: error instanceof Error ? error.message : String(error),
175
+ });
176
+ }
177
+ });
178
+ server.listen(port, host, () => {
179
+ const address = `http://${host}:${port}`;
180
+ console.log(`Serving wiki0 viewer for ${root}`);
181
+ console.log(address);
182
+ if (open)
183
+ open_url(address);
184
+ });
185
+ }
186
+ //# sourceMappingURL=viewer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"viewer.js","sourceRoot":"","sources":["../src/viewer.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wiki0/cli",
3
- "version": "0.0.5",
3
+ "version": "0.0.6",
4
4
  "description": "wiki0 command line interface",
5
5
  "homepage": "https://github.com/spences10/wiki0/tree/main/packages/cli#readme",
6
6
  "license": "MIT",
@@ -31,7 +31,7 @@
31
31
  },
32
32
  "dependencies": {
33
33
  "citty": "^0.2.2",
34
- "@wiki0/core": "0.0.5"
34
+ "@wiki0/core": "0.0.6"
35
35
  },
36
36
  "devDependencies": {
37
37
  "@types/node": "^25.8.0",