@lapis-notes/lapis-plugin-docs 0.0.0-stage → 0.1.0
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 +188 -2
- package/dist/docs/DocsBlockMarkdownEditor.svelte +37 -0
- package/dist/docs/DocsBlockMarkdownEditor.svelte.d.ts +13 -0
- package/dist/docs/DocsBlockRefPicker.svelte +75 -0
- package/dist/docs/DocsBlockRefPicker.svelte.d.ts +11 -0
- package/dist/docs/DocsBookEditor.svelte +141 -0
- package/dist/docs/DocsBookEditor.svelte.d.ts +10 -0
- package/dist/docs/DocsBookNavigation.svelte +838 -0
- package/dist/docs/DocsBookNavigation.svelte.d.ts +11 -0
- package/dist/docs/DocsBooksColumn.svelte +82 -0
- package/dist/docs/DocsBooksColumn.svelte.d.ts +10 -0
- package/dist/docs/DocsCardBackMatter.svelte +32 -0
- package/dist/docs/DocsCardBackMatter.svelte.d.ts +10 -0
- package/dist/docs/DocsCardBlockExtra.svelte +43 -0
- package/dist/docs/DocsCardBlockExtra.svelte.d.ts +9 -0
- package/dist/docs/DocsCardPreviewFlip.svelte +143 -0
- package/dist/docs/DocsCardPreviewFlip.svelte.d.ts +17 -0
- package/dist/docs/DocsCardPreviewStack.svelte +135 -0
- package/dist/docs/DocsCardPreviewStack.svelte.d.ts +13 -0
- package/dist/docs/DocsCardPrompt.svelte +33 -0
- package/dist/docs/DocsCardPrompt.svelte.d.ts +8 -0
- package/dist/docs/DocsCardReviewAnswer.svelte +45 -0
- package/dist/docs/DocsCardReviewAnswer.svelte.d.ts +8 -0
- package/dist/docs/DocsCardTagChips.svelte +19 -0
- package/dist/docs/DocsCardTagChips.svelte.d.ts +7 -0
- package/dist/docs/DocsCardsPanel.svelte +232 -0
- package/dist/docs/DocsCardsPanel.svelte.d.ts +17 -0
- package/dist/docs/DocsCardsReview.css +1050 -0
- package/dist/docs/DocsChapterFooter.svelte +248 -0
- package/dist/docs/DocsChapterFooter.svelte.d.ts +11 -0
- package/dist/docs/DocsChapterScrollRing.svelte +101 -0
- package/dist/docs/DocsChapterScrollRing.svelte.d.ts +6 -0
- package/dist/docs/DocsDisplayPanel.css +627 -0
- package/dist/docs/DocsDisplayPanel.svelte +78 -0
- package/dist/docs/DocsDisplayPanel.svelte.d.ts +16 -0
- package/dist/docs/DocsEditorPanel.css +325 -0
- package/dist/docs/DocsEditorPanel.svelte +570 -0
- package/dist/docs/DocsEditorPanel.svelte.d.ts +22 -0
- package/dist/docs/DocsFlipCard.svelte +68 -0
- package/dist/docs/DocsFlipCard.svelte.d.ts +8 -0
- package/dist/docs/DocsFolderDirectoryList.svelte +206 -0
- package/dist/docs/DocsFolderDirectoryList.svelte.d.ts +14 -0
- package/dist/docs/DocsFolderPanel.css +357 -0
- package/dist/docs/DocsFolderPanel.svelte +102 -0
- package/dist/docs/DocsFolderPanel.svelte.d.ts +17 -0
- package/dist/docs/DocsLinksPanel.css +61 -0
- package/dist/docs/DocsLinksPanel.svelte +55 -0
- package/dist/docs/DocsLinksPanel.svelte.d.ts +11 -0
- package/dist/docs/DocsMarkdownField.svelte +93 -0
- package/dist/docs/DocsMarkdownField.svelte.d.ts +11 -0
- package/dist/docs/DocsMarkdownPreview.svelte +278 -0
- package/dist/docs/DocsMarkdownPreview.svelte.d.ts +17 -0
- package/dist/docs/DocsReviewPanel.svelte +63 -0
- package/dist/docs/DocsReviewPanel.svelte.d.ts +11 -0
- package/dist/docs/DocsRichBlock.svelte +291 -0
- package/dist/docs/DocsRichBlock.svelte.d.ts +13 -0
- package/dist/docs/DocsRichDisplay.svelte +316 -0
- package/dist/docs/DocsRichDisplay.svelte.d.ts +14 -0
- package/dist/docs/DocsSlidesPreview.css +243 -0
- package/dist/docs/DocsSlidesPreview.svelte +206 -0
- package/dist/docs/DocsSlidesPreview.svelte.d.ts +10 -0
- package/dist/docs/DocsWorkspace.css +570 -0
- package/dist/docs/DocsWorkspace.svelte +831 -0
- package/dist/docs/DocsWorkspace.svelte.d.ts +48 -0
- package/dist/docs/DocsWorkspaceToolbar.svelte +211 -0
- package/dist/docs/DocsWorkspaceToolbar.svelte.d.ts +27 -0
- package/dist/docs/candidates/ChoiceMenu.svelte +114 -0
- package/dist/docs/candidates/ChoiceMenu.svelte.d.ts +10 -0
- package/dist/docs/candidates/FlipCardDeck.svelte +800 -0
- package/dist/docs/candidates/FlipCardDeck.svelte.d.ts +36 -0
- package/dist/docs/candidates/MarkdownFloatingToc.svelte +313 -0
- package/dist/docs/candidates/MarkdownFloatingToc.svelte.d.ts +14 -0
- package/dist/docs/candidates/SearchableChoicePicker.css +161 -0
- package/dist/docs/candidates/SearchableChoicePicker.svelte +208 -0
- package/dist/docs/candidates/SearchableChoicePicker.svelte.d.ts +19 -0
- package/dist/docs/candidates/StructuredTable.svelte +98 -0
- package/dist/docs/candidates/StructuredTable.svelte.d.ts +8 -0
- package/dist/docs/candidates/StructuredTableEditor.svelte +374 -0
- package/dist/docs/candidates/StructuredTableEditor.svelte.d.ts +12 -0
- package/dist/docs/candidates/TagEditor.svelte +31 -0
- package/dist/docs/candidates/TagEditor.svelte.d.ts +14 -0
- package/dist/docs/candidates/WorkspaceHistoryControls.svelte +112 -0
- package/dist/docs/candidates/WorkspaceHistoryControls.svelte.d.ts +8 -0
- package/dist/docs/candidates/markdown-floating-toc.css +151 -0
- package/dist/docs/candidates/markdown-floating-toc.d.ts +1 -0
- package/dist/docs/candidates/markdown-floating-toc.js +1 -0
- package/dist/docs/docs-anki-import.d.ts +34 -0
- package/dist/docs/docs-anki-import.js +516 -0
- package/dist/docs/docs-book-view-model.d.ts +9 -0
- package/dist/docs/docs-book-view-model.js +71 -0
- package/dist/docs/docs-card-answer-markdown.d.ts +1 -0
- package/dist/docs/docs-card-answer-markdown.js +63 -0
- package/dist/docs/docs-card-display.d.ts +10 -0
- package/dist/docs/docs-card-display.js +18 -0
- package/dist/docs/docs-display-focus.d.ts +7 -0
- package/dist/docs/docs-display-focus.js +42 -0
- package/dist/docs/docs-document-surface.d.ts +7 -0
- package/dist/docs/docs-document-surface.js +25 -0
- package/dist/docs/docs-folder-directory.d.ts +21 -0
- package/dist/docs/docs-folder-directory.js +56 -0
- package/dist/docs/docs-link-mode.d.ts +16 -0
- package/dist/docs/docs-link-mode.js +94 -0
- package/dist/docs/docs-workspace-helpers.d.ts +25 -0
- package/dist/docs/docs-workspace-helpers.js +195 -0
- package/dist/docs/docs.tokens.css +13 -0
- package/dist/docs/import-anki-package.d.ts +10 -0
- package/dist/docs/import-anki-package.js +30 -0
- package/dist/docs/lapis-markdown-extensions.d.ts +9 -0
- package/dist/docs/lapis-markdown-extensions.js +128 -0
- package/dist/docs/pin-reading-chrome.d.ts +4 -0
- package/dist/docs/pin-reading-chrome.js +32 -0
- package/dist/docs/sidebar/DocsFoldersSidebar.svelte +134 -0
- package/dist/docs/sidebar/DocsFoldersSidebar.svelte.d.ts +15 -0
- package/dist/docs/sidebar/DocsLinksSidebar.svelte +105 -0
- package/dist/docs/sidebar/DocsLinksSidebar.svelte.d.ts +11 -0
- package/dist/docs/sidebar/DocsSidebar.css +346 -0
- package/dist/docs/sidebar/DocsSidebar.svelte +430 -0
- package/dist/docs/sidebar/DocsSidebar.svelte.d.ts +18 -0
- package/dist/docs/sidebar/DocsSidebarHost.svelte +139 -0
- package/dist/docs/sidebar/DocsSidebarHost.svelte.d.ts +12 -0
- package/dist/docs/sidebar/DocsTagsSidebar.svelte +176 -0
- package/dist/docs/sidebar/DocsTagsSidebar.svelte.d.ts +12 -0
- package/dist/docs/sidebar/docs-book-note-tree.d.ts +23 -0
- package/dist/docs/sidebar/docs-book-note-tree.js +88 -0
- package/dist/docs/sidebar/docs-note-sort.d.ts +26 -0
- package/dist/docs/sidebar/docs-note-sort.js +54 -0
- package/dist/docs/sidebar/docs-sidebar-filters.d.ts +17 -0
- package/dist/docs/sidebar/docs-sidebar-filters.js +74 -0
- package/dist/docs/sidebar/docs-sidebar-ui-storage.d.ts +24 -0
- package/dist/docs/sidebar/docs-sidebar-ui-storage.js +87 -0
- package/dist/docs/sidebar/docs-source-folder-tree.d.ts +16 -0
- package/dist/docs/sidebar/docs-source-folder-tree.js +143 -0
- package/dist/docs/sidebar/docs-tag-tree.d.ts +17 -0
- package/dist/docs/sidebar/docs-tag-tree.js +84 -0
- package/dist/docs-cards-view.d.ts +18 -0
- package/dist/docs-cards-view.js +52 -0
- package/dist/docs-document-view.d.ts +24 -0
- package/dist/docs-document-view.js +127 -0
- package/dist/docs-document-workspace.svelte +215 -0
- package/dist/docs-document-workspace.svelte.d.ts +16 -0
- package/dist/docs-index.d.ts +5 -0
- package/dist/docs-index.js +49 -0
- package/dist/docs-path.d.ts +6 -0
- package/dist/docs-path.js +10 -0
- package/dist/docs-plugin.d.ts +21 -0
- package/dist/docs-plugin.js +140 -0
- package/dist/docs-repository.d.ts +15 -0
- package/dist/docs-repository.js +75 -0
- package/dist/docs-review-view.d.ts +18 -0
- package/dist/docs-review-view.js +52 -0
- package/dist/docs-settings-tab.d.ts +8 -0
- package/dist/docs-settings-tab.js +25 -0
- package/dist/docs-settings.d.ts +17 -0
- package/dist/docs-settings.js +38 -0
- package/dist/docs-view.d.ts +22 -0
- package/dist/docs-view.js +51 -0
- package/dist/docs-workspace.svelte +394 -0
- package/dist/docs-workspace.svelte.d.ts +15 -0
- package/dist/index.d.ts +12 -0
- package/dist/index.js +12 -0
- package/dist/model/book.d.ts +6 -0
- package/dist/model/book.js +101 -0
- package/dist/model/coding-runtime.d.ts +4 -0
- package/dist/model/coding-runtime.js +9 -0
- package/dist/model/docs-card-context.d.ts +32 -0
- package/dist/model/docs-card-context.js +89 -0
- package/dist/model/docs-card-preview-stack-motion.d.ts +51 -0
- package/dist/model/docs-card-preview-stack-motion.js +94 -0
- package/dist/model/docs-media-context.d.ts +9 -0
- package/dist/model/docs-media-context.js +18 -0
- package/dist/model/docs-note-list.d.ts +8 -0
- package/dist/model/docs-note-list.js +25 -0
- package/dist/model/docs-relative-media.d.ts +30 -0
- package/dist/model/docs-relative-media.js +116 -0
- package/dist/model/docs-review-constants.d.ts +4 -0
- package/dist/model/docs-review-constants.js +13 -0
- package/dist/model/fsrs.d.ts +14 -0
- package/dist/model/fsrs.js +153 -0
- package/dist/model/graph.d.ts +12 -0
- package/dist/model/graph.js +169 -0
- package/dist/model/index.d.ts +14 -0
- package/dist/model/index.js +14 -0
- package/dist/model/markdown-normalize.d.ts +11 -0
- package/dist/model/markdown-normalize.js +755 -0
- package/dist/model/markdown.d.ts +167 -0
- package/dist/model/markdown.js +365 -0
- package/dist/model/sample.d.ts +7 -0
- package/dist/model/sample.js +524 -0
- package/dist/model/types.d.ts +328 -0
- package/dist/model/types.js +1 -0
- package/dist/model/workspace.d.ts +6 -0
- package/dist/model/workspace.js +81 -0
- package/dist/storybook.css +52 -0
- package/dist/styles.css +1 -0
- package/manifest.json +11 -0
- package/package.json +147 -4
|
@@ -0,0 +1,169 @@
|
|
|
1
|
+
import {} from "./types";
|
|
2
|
+
import { renderDocsNoteMarkdown } from "./markdown";
|
|
3
|
+
const WIKILINK_PATTERN = /\[\[([^\]|]+?)(?:\|([^\]]+?))?\]\]/g;
|
|
4
|
+
const TAG_PATTERN = /(^|[\s([{])#([A-Za-z0-9][A-Za-z0-9_-]*(?:\/[A-Za-z0-9][A-Za-z0-9_-]*)*)\b/g;
|
|
5
|
+
function normalizeLookup(value) {
|
|
6
|
+
return value.trim().replace(/\s+/g, " ").toLowerCase();
|
|
7
|
+
}
|
|
8
|
+
function compactText(value) {
|
|
9
|
+
return value.replace(/\s+/g, " ").trim();
|
|
10
|
+
}
|
|
11
|
+
function wikiLinkTargetNote(value) {
|
|
12
|
+
return compactText(value).split("#", 1)[0].trim();
|
|
13
|
+
}
|
|
14
|
+
function excerptAround(value, index) {
|
|
15
|
+
const compact = compactText(value);
|
|
16
|
+
if (!compact)
|
|
17
|
+
return "";
|
|
18
|
+
const start = Math.max(0, index - 70);
|
|
19
|
+
const excerpt = compact.slice(start, start + 180).trim();
|
|
20
|
+
return `${start > 0 ? "..." : ""}${excerpt}`;
|
|
21
|
+
}
|
|
22
|
+
export function extractDocsWikiLinks(note) {
|
|
23
|
+
const content = renderDocsNoteMarkdown(note);
|
|
24
|
+
return [...content.matchAll(WIKILINK_PATTERN)].map((match) => ({
|
|
25
|
+
sourceNoteId: note.id,
|
|
26
|
+
raw: match[0],
|
|
27
|
+
target: compactText(match[1] ?? ""),
|
|
28
|
+
...(match[2] ? { label: compactText(match[2]) } : {}),
|
|
29
|
+
index: match.index ?? 0,
|
|
30
|
+
}));
|
|
31
|
+
}
|
|
32
|
+
export function extractDocsTags(value) {
|
|
33
|
+
return Array.from(new Set([...value.matchAll(TAG_PATTERN)]
|
|
34
|
+
.map((match) => match[2].trim())
|
|
35
|
+
.filter(Boolean))).sort((left, right) => left.localeCompare(right));
|
|
36
|
+
}
|
|
37
|
+
export function normalizeDocsTag(tag) {
|
|
38
|
+
return tag
|
|
39
|
+
.trim()
|
|
40
|
+
.replace(/^#+/, "")
|
|
41
|
+
.replace(/^\/+|\/+$/g, "");
|
|
42
|
+
}
|
|
43
|
+
export function docsTagMatchesFolder(tag, folder) {
|
|
44
|
+
const normalizedTag = normalizeDocsTag(tag).toLowerCase();
|
|
45
|
+
const normalizedFolder = normalizeDocsTag(folder).toLowerCase();
|
|
46
|
+
if (!normalizedTag || !normalizedFolder)
|
|
47
|
+
return false;
|
|
48
|
+
return (normalizedTag === normalizedFolder ||
|
|
49
|
+
normalizedTag.startsWith(`${normalizedFolder}/`));
|
|
50
|
+
}
|
|
51
|
+
/** Note, card, and inline body tags used for folder membership and filtering. */
|
|
52
|
+
export function docsNoteTagValues(note) {
|
|
53
|
+
const cardTags = Array.isArray(note.cards) ? note.cards.flatMap((card) => card.tags) : [];
|
|
54
|
+
const inlineTags = Array.isArray(note.blocks) && typeof note.body === "string"
|
|
55
|
+
? extractDocsTags(renderDocsNoteMarkdown(note))
|
|
56
|
+
: [];
|
|
57
|
+
return [...note.tags, ...cardTags, ...inlineTags];
|
|
58
|
+
}
|
|
59
|
+
export function docsNoteMatchesTagFolder(note, folder) {
|
|
60
|
+
return docsNoteTagValues(note).some((tag) => docsTagMatchesFolder(tag, folder));
|
|
61
|
+
}
|
|
62
|
+
function tagHierarchy(tag) {
|
|
63
|
+
const parts = normalizeDocsTag(tag)
|
|
64
|
+
.split("/")
|
|
65
|
+
.map((part) => part.trim())
|
|
66
|
+
.filter(Boolean);
|
|
67
|
+
return parts.map((_, index) => parts.slice(0, index + 1).join("/"));
|
|
68
|
+
}
|
|
69
|
+
function addLookup(lookup, key, noteId) {
|
|
70
|
+
const normalized = normalizeLookup(key);
|
|
71
|
+
if (!normalized)
|
|
72
|
+
return;
|
|
73
|
+
lookup.set(normalized, [...(lookup.get(normalized) ?? []), noteId]);
|
|
74
|
+
}
|
|
75
|
+
function noteLookup(notes) {
|
|
76
|
+
const lookup = new Map();
|
|
77
|
+
for (const note of notes) {
|
|
78
|
+
addLookup(lookup, note.title, note.id);
|
|
79
|
+
for (const alias of note.aliases)
|
|
80
|
+
addLookup(lookup, alias, note.id);
|
|
81
|
+
}
|
|
82
|
+
return lookup;
|
|
83
|
+
}
|
|
84
|
+
export function resolveDocsNoteId(notes, target) {
|
|
85
|
+
const targetNote = wikiLinkTargetNote(target ?? "");
|
|
86
|
+
if (!targetNote)
|
|
87
|
+
return null;
|
|
88
|
+
if (notes.some((note) => note.id === targetNote))
|
|
89
|
+
return targetNote;
|
|
90
|
+
const lookup = noteLookup(notes);
|
|
91
|
+
const matches = Array.from(new Set(lookup.get(normalizeLookup(targetNote)) ?? []));
|
|
92
|
+
return matches.length === 1 ? matches[0] : null;
|
|
93
|
+
}
|
|
94
|
+
function resolveLink(link, notesById, lookup) {
|
|
95
|
+
const targetNote = wikiLinkTargetNote(link.target);
|
|
96
|
+
if (notesById.has(targetNote))
|
|
97
|
+
return { ...link, resolvedNoteId: targetNote };
|
|
98
|
+
const matches = Array.from(new Set(lookup.get(normalizeLookup(targetNote)) ?? []));
|
|
99
|
+
if (matches.length === 1)
|
|
100
|
+
return { ...link, resolvedNoteId: matches[0] };
|
|
101
|
+
if (matches.length > 1)
|
|
102
|
+
return { ...link, ambiguousNoteIds: matches };
|
|
103
|
+
return link;
|
|
104
|
+
}
|
|
105
|
+
function buildTagSummaries(notes) {
|
|
106
|
+
const byTag = new Map();
|
|
107
|
+
const ensure = (tag) => {
|
|
108
|
+
const normalized = tag.trim();
|
|
109
|
+
if (!normalized)
|
|
110
|
+
return null;
|
|
111
|
+
const existing = byTag.get(normalized) ?? {
|
|
112
|
+
notes: new Set(),
|
|
113
|
+
cards: new Set(),
|
|
114
|
+
};
|
|
115
|
+
byTag.set(normalized, existing);
|
|
116
|
+
return existing;
|
|
117
|
+
};
|
|
118
|
+
for (const note of notes) {
|
|
119
|
+
for (const tag of docsNoteTagValues(note)) {
|
|
120
|
+
for (const tagPrefix of tagHierarchy(tag)) {
|
|
121
|
+
ensure(tagPrefix)?.notes.add(note.id);
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
for (const card of note.cards) {
|
|
125
|
+
for (const tag of card.tags) {
|
|
126
|
+
for (const tagPrefix of tagHierarchy(tag)) {
|
|
127
|
+
ensure(tagPrefix)?.cards.add(`${note.id}/${card.id}`);
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
return [...byTag.entries()]
|
|
133
|
+
.map(([tag, value]) => ({
|
|
134
|
+
tag,
|
|
135
|
+
noteCount: value.notes.size,
|
|
136
|
+
cardCount: value.cards.size,
|
|
137
|
+
}))
|
|
138
|
+
.sort((left, right) => left.tag.localeCompare(right.tag));
|
|
139
|
+
}
|
|
140
|
+
export function buildDocsGraph(notes) {
|
|
141
|
+
const notesById = new Map(notes.map((note) => [note.id, note]));
|
|
142
|
+
const lookup = noteLookup(notes);
|
|
143
|
+
const links = notes
|
|
144
|
+
.flatMap(extractDocsWikiLinks)
|
|
145
|
+
.map((link) => resolveLink(link, notesById, lookup));
|
|
146
|
+
const backlinks = Object.fromEntries(notes.map((note) => [note.id, []]));
|
|
147
|
+
for (const link of links) {
|
|
148
|
+
if (!link.resolvedNoteId)
|
|
149
|
+
continue;
|
|
150
|
+
const source = notesById.get(link.sourceNoteId);
|
|
151
|
+
if (!source)
|
|
152
|
+
continue;
|
|
153
|
+
backlinks[link.resolvedNoteId] ??= [];
|
|
154
|
+
backlinks[link.resolvedNoteId].push({
|
|
155
|
+
sourceNoteId: source.id,
|
|
156
|
+
sourceTitle: source.title,
|
|
157
|
+
raw: link.raw,
|
|
158
|
+
label: link.label,
|
|
159
|
+
excerpt: excerptAround(renderDocsNoteMarkdown(source), link.index),
|
|
160
|
+
});
|
|
161
|
+
}
|
|
162
|
+
return {
|
|
163
|
+
links,
|
|
164
|
+
backlinks,
|
|
165
|
+
unresolvedLinks: links.filter((link) => !link.resolvedNoteId && !link.ambiguousNoteIds?.length),
|
|
166
|
+
ambiguousLinks: links.filter((link) => Boolean(link.ambiguousNoteIds?.length)),
|
|
167
|
+
tags: buildTagSummaries(notes),
|
|
168
|
+
};
|
|
169
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
export { DOCS_NOTE_SCHEMA_VERSION, type DocsBookChapter, type DocsBookChapterNavigation, type DocsBookChapterRef, type DocsBookMetadata, type DocsBookNavigation, type CreateDocsNoteInput, type DocsBacklink, type DocsCalloutBlock, type DocsCalloutTone, type DocsCard, type DocsCardStackItem, type DocsCardStackMode, type DocsCardStatus, type DocsCardType, type DocsCodeBlock, type DocsConceptBlock, type DocsDocType, type DocsFsrsState, type DocsFsrsStateName, type DocsGraph, type DocsMarkdownBlock, type DocsMarkdownFile, type DocsNote, type DocsNoteSummary, type DocsNotePanel, type DocsProcedureBlock, type DocsPromptBlock, type DocsResourceItem, type DocsResourcesBlock, type DocsRevisionBlock, type DocsReviewLog, type DocsReviewQueueItem, type DocsReviewQueueSummaryItem, type DocsReviewRating, type DocsReviewScope, type DocsStoryBlock, type DocsTableBlock, type DocsTagSummary, type DocsTextBlock, type DocsWikiLink, type DocsWorkspace, type DocsWorkspaceIndex, } from "./types";
|
|
2
|
+
export { CODING_RUNTIME_VERSIONS, codingRuntimeVersion, } from "./coding-runtime";
|
|
3
|
+
export { assertDocsId, createDocsCodingExercise, createDocsNote, docsNoteToFrontmatter, docsNoteToMarkdown, isValidDocsId, normalizeDocsBlock, normalizeDocsCodingExercise, normalizeDocsCard, parseDocsNoteMarkdownFile, renderDocsBlockMarkdown, renderDocsNoteMarkdown, slugifyDocsId, } from "./markdown";
|
|
4
|
+
export { extractDocsTags, extractDocsWikiLinks, buildDocsGraph, docsNoteMatchesTagFolder, docsNoteTagValues, docsTagMatchesFolder, normalizeDocsTag, resolveDocsNoteId, } from "./graph";
|
|
5
|
+
export { buildDocsReviewQueue, docsFsrsParameters, formatDocsReviewInterval, fsrsCardFromState, fsrsStateFromCard, previewDocsCardRatings, reviewDocsCard, } from "./fsrs";
|
|
6
|
+
export { REVIEW_RATING_KEYS, REVIEW_RATING_LABELS, REVIEW_RATINGS, } from "./docs-review-constants";
|
|
7
|
+
export { SAMPLE_DOCS_BOOK_FOLDER, SAMPLE_DOCS_BOOK_INDEX_ID, SAMPLE_DOCS_BOOK_TAG, SAMPLE_DOCS_CHAPTER_IDS, SAMPLE_DOCS_NOTE_IDS, sampleDocsNotes, } from "./sample";
|
|
8
|
+
export { buildDocsBooks, resolveDocsBookNavigation } from "./book";
|
|
9
|
+
export { buildDocsWorkspace, buildDocsWorkspaceIndex, docsNoteToSummary, docsSummariesToStubNotes, } from "./workspace";
|
|
10
|
+
export { docsNoteBlockCount, docsNoteBodyLength, docsNoteCardCount, docsNoteListKey, isDocsNoteSummary, type DocsNoteListItem, } from "./docs-note-list";
|
|
11
|
+
export { cardHasBackMatter, docsBlockIdFromRef, docsBlockPlainText, docsBlockReferenceIndex, docsBlockRefMarker, docsBlockSnippet, resolveCardBlockRefs, type CardBlockRefResolution, type MissingCardBlockRef, type ResolvedCardBlockRef, } from "./docs-card-context";
|
|
12
|
+
export { DOCS_MEDIA_SENTINEL_PREFIX, decodeDocsMediaSentinel, encodeDocsMediaSentinel, resolveDocsMediaRelativePath, rewriteDocsRelativeMediaSrc, serverDocsMediaUrl, type DocsMediaUrlResolver, } from "./docs-relative-media";
|
|
13
|
+
export { getDocsMediaResolver, setDocsMediaResolver, type DocsMediaResolver, } from "./docs-media-context";
|
|
14
|
+
export { CARD_STACK_MOTION, CARD_STACK_KICK, CARD_STACK_ANIMATION_NAMES, CARD_STACK_SWIPE, swipeDragPose, fanPose, fanStackOpacity, fanStackZIndex, fanTransform, wrappedCardIndex, clampCardIndex, resolveStackIndex, nextStackIndex, canNavigateStack, cardDepthInStack, incomingFanDepth, type CardStackMode, } from "./docs-card-preview-stack-motion";
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
export { DOCS_NOTE_SCHEMA_VERSION, } from "./types";
|
|
2
|
+
export { CODING_RUNTIME_VERSIONS, codingRuntimeVersion, } from "./coding-runtime";
|
|
3
|
+
export { assertDocsId, createDocsCodingExercise, createDocsNote, docsNoteToFrontmatter, docsNoteToMarkdown, isValidDocsId, normalizeDocsBlock, normalizeDocsCodingExercise, normalizeDocsCard, parseDocsNoteMarkdownFile, renderDocsBlockMarkdown, renderDocsNoteMarkdown, slugifyDocsId, } from "./markdown";
|
|
4
|
+
export { extractDocsTags, extractDocsWikiLinks, buildDocsGraph, docsNoteMatchesTagFolder, docsNoteTagValues, docsTagMatchesFolder, normalizeDocsTag, resolveDocsNoteId, } from "./graph";
|
|
5
|
+
export { buildDocsReviewQueue, docsFsrsParameters, formatDocsReviewInterval, fsrsCardFromState, fsrsStateFromCard, previewDocsCardRatings, reviewDocsCard, } from "./fsrs";
|
|
6
|
+
export { REVIEW_RATING_KEYS, REVIEW_RATING_LABELS, REVIEW_RATINGS, } from "./docs-review-constants";
|
|
7
|
+
export { SAMPLE_DOCS_BOOK_FOLDER, SAMPLE_DOCS_BOOK_INDEX_ID, SAMPLE_DOCS_BOOK_TAG, SAMPLE_DOCS_CHAPTER_IDS, SAMPLE_DOCS_NOTE_IDS, sampleDocsNotes, } from "./sample";
|
|
8
|
+
export { buildDocsBooks, resolveDocsBookNavigation } from "./book";
|
|
9
|
+
export { buildDocsWorkspace, buildDocsWorkspaceIndex, docsNoteToSummary, docsSummariesToStubNotes, } from "./workspace";
|
|
10
|
+
export { docsNoteBlockCount, docsNoteBodyLength, docsNoteCardCount, docsNoteListKey, isDocsNoteSummary, } from "./docs-note-list";
|
|
11
|
+
export { cardHasBackMatter, docsBlockIdFromRef, docsBlockPlainText, docsBlockReferenceIndex, docsBlockRefMarker, docsBlockSnippet, resolveCardBlockRefs, } from "./docs-card-context";
|
|
12
|
+
export { DOCS_MEDIA_SENTINEL_PREFIX, decodeDocsMediaSentinel, encodeDocsMediaSentinel, resolveDocsMediaRelativePath, rewriteDocsRelativeMediaSrc, serverDocsMediaUrl, } from "./docs-relative-media";
|
|
13
|
+
export { getDocsMediaResolver, setDocsMediaResolver, } from "./docs-media-context";
|
|
14
|
+
export { CARD_STACK_MOTION, CARD_STACK_KICK, CARD_STACK_ANIMATION_NAMES, CARD_STACK_SWIPE, swipeDragPose, fanPose, fanStackOpacity, fanStackZIndex, fanTransform, wrappedCardIndex, clampCardIndex, resolveStackIndex, nextStackIndex, canNavigateStack, cardDepthInStack, incomingFanDepth, } from "./docs-card-preview-stack-motion";
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { type CreateDocsNoteInput, type DocsCard, type DocsCodingExercise, type DocsMarkdownFile, type DocsNote, type DocsRevisionBlock } from "./types";
|
|
2
|
+
export declare function isValidDocsId(value: string): boolean;
|
|
3
|
+
export declare function assertDocsId(value: string): string;
|
|
4
|
+
export declare function slugifyDocsId(value: string, fallback?: string): string;
|
|
5
|
+
export declare function compactObject<T extends Record<string, unknown>>(record: T): Partial<T>;
|
|
6
|
+
export declare function createDocsCodingExercise(exerciseId: string): DocsCodingExercise;
|
|
7
|
+
export declare function normalizeDocsCodingExercise(value: unknown, cardId: string): DocsCodingExercise;
|
|
8
|
+
export declare function normalizeDocsBlock(input: unknown, index: number): DocsRevisionBlock;
|
|
9
|
+
export declare function normalizeDocsCard(input: unknown, index: number, timestamp: string): DocsCard;
|
|
10
|
+
export declare function createDocsNote(input?: CreateDocsNoteInput, now?: Date): DocsNote;
|
|
11
|
+
export declare function parseDocsNoteMarkdownFile(file: DocsMarkdownFile): DocsNote;
|