@tnotesjs/core 0.1.15 → 0.1.16
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 +87 -87
- package/dist/{chunk-FVKQPBPP.js → chunk-4MO7F7Q4.js} +2005 -1769
- package/dist/cli/index.js +1 -1
- package/dist/vitepress/config/index.js +212 -4
- package/package.json +1 -1
- package/types/config.ts +61 -61
- package/types/index.ts +11 -11
- package/types/note.ts +33 -33
- package/vitepress/assets/icons/icon__check.svg +3 -3
- package/vitepress/assets/icons/icon__clipboard.svg +7 -7
- package/vitepress/assets/icons/icon__close.svg +1 -1
- package/vitepress/assets/icons/icon__collapse.svg +1 -1
- package/vitepress/assets/icons/icon__confirm.svg +1 -1
- package/vitepress/assets/icons/icon__copy.svg +4 -4
- package/vitepress/assets/icons/icon__focus.svg +1 -1
- package/vitepress/assets/icons/icon__fold.svg +3 -3
- package/vitepress/assets/icons/icon__folder.svg +1 -1
- package/vitepress/assets/icons/icon__fullscreen.svg +1 -1
- package/vitepress/assets/icons/icon__fullscreen_exit.svg +1 -1
- package/vitepress/assets/icons/icon__github.svg +3 -3
- package/vitepress/assets/icons/icon__mindmap.svg +1 -1
- package/vitepress/assets/icons/icon__next.svg +1 -1
- package/vitepress/assets/icons/icon__number_gray.svg +1 -1
- package/vitepress/assets/icons/icon__number_purple.svg +1 -1
- package/vitepress/assets/icons/icon__prev.svg +1 -1
- package/vitepress/assets/icons/icon__restore.svg +1 -1
- package/vitepress/assets/icons/icon__rotate.svg +4 -4
- package/vitepress/assets/icons/icon__search.svg +1 -1
- package/vitepress/assets/icons/icon__sidebar_collapsed.svg +1 -1
- package/vitepress/assets/icons/icon__sidebar_opened.svg +1 -1
- package/vitepress/assets/icons/icon__totop.svg +5 -5
- package/vitepress/assets/icons/icon__vscode.svg +5 -5
- package/vitepress/assets/icons/icon__zoom_fit.svg +1 -1
- package/vitepress/assets/icons/icon__zoom_in.svg +1 -1
- package/vitepress/assets/icons/icon__zoom_out.svg +1 -1
- package/vitepress/assets/icons/icon__zoom_reset.svg +1 -1
- package/vitepress/assets/icons/index.ts +39 -39
- package/vitepress/components/BilibiliOutsidePlayer/BilibiliOutsidePlayer.vue +20 -20
- package/vitepress/components/CodeBlockFullscreen/CodeBlockFullscreen.vue +373 -373
- package/vitepress/components/CodeBlockFullscreen/index.ts +115 -115
- package/vitepress/components/CodeBlockFullscreen/styles.css +64 -64
- package/vitepress/components/Discussions/Discussions.module.scss +32 -32
- package/vitepress/components/Discussions/Discussions.vue +211 -211
- package/vitepress/components/EnWordList/EnWordList.module.scss +124 -124
- package/vitepress/components/EnWordList/EnWordList.vue +543 -543
- package/vitepress/components/EnWordList/RightClickMenu.module.scss +22 -22
- package/vitepress/components/EnWordList/RightClickMenu.vue +66 -66
- package/vitepress/components/Footprints/Footprints.module.scss +93 -93
- package/vitepress/components/Footprints/Footprints.vue +377 -377
- package/vitepress/components/Layout/AboutModal.module.scss +233 -233
- package/vitepress/components/Layout/AboutModal.vue +105 -105
- package/vitepress/components/Layout/AboutPanel.vue +270 -270
- package/vitepress/components/Layout/ContentCollapse.vue +603 -603
- package/vitepress/components/Layout/CustomSidebar.vue +878 -608
- package/vitepress/components/Layout/DocBeforeControls.vue +149 -149
- package/vitepress/components/Layout/DocFooter.vue +233 -233
- package/vitepress/components/Layout/ImagePreview.module.scss +201 -201
- package/vitepress/components/Layout/ImagePreview.vue +281 -281
- package/vitepress/components/Layout/Layout.module.scss +661 -661
- package/vitepress/components/Layout/Layout.vue +618 -559
- package/vitepress/components/Layout/NoteStatus.vue +140 -140
- package/vitepress/components/Layout/SidebarItems.vue +1083 -268
- package/vitepress/components/Layout/SidebarNavBefore.vue +171 -108
- package/vitepress/components/Layout/Swiper.vue +167 -167
- package/vitepress/components/Layout/ToggleFullContent.module.scss +11 -11
- package/vitepress/components/Layout/ToggleFullContent.vue +35 -35
- package/vitepress/components/Layout/ToggleSidebar.module.scss +11 -11
- package/vitepress/components/Layout/ToggleSidebar.vue +36 -36
- package/vitepress/components/Layout/composables/useCollapseControl.ts +88 -88
- package/vitepress/components/Layout/composables/useNoteConfig.ts +119 -119
- package/vitepress/components/Layout/composables/useNoteSave.ts +178 -178
- package/vitepress/components/Layout/composables/useNoteValidation.ts +85 -85
- package/vitepress/components/Layout/composables/useRedirect.ts +113 -113
- package/vitepress/components/Layout/composables/useVSCodeIntegration.ts +85 -85
- package/vitepress/components/Layout/homeReadme.data.ts +124 -124
- package/vitepress/components/MarkMap/MarkMap.module.scss +159 -159
- package/vitepress/components/MarkMap/MarkMap.vue +405 -405
- package/vitepress/components/Mermaid/Mermaid.module.scss +275 -275
- package/vitepress/components/Mermaid/Mermaid.vue +365 -365
- package/vitepress/components/NotesTable/NotesTable.module.scss +77 -77
- package/vitepress/components/NotesTable/NotesTable.vue +98 -98
- package/vitepress/components/NotesTable/README.md +67 -67
- package/vitepress/components/Settings/Settings.module.scss +375 -433
- package/vitepress/components/Settings/Settings.vue +376 -306
- package/vitepress/components/SidebarCard/MindMapView.vue +484 -484
- package/vitepress/components/SidebarCard/NotesTrendChart.vue +108 -108
- package/vitepress/components/SidebarCard/SidebarCard.vue +946 -946
- package/vitepress/components/Tooltip/Tooltip.vue +70 -70
- package/vitepress/components/constants.ts +109 -91
- package/vitepress/components/notesConfig.data.ts +73 -73
- package/vitepress/components/sidebar.data.ts +59 -59
- package/vitepress/components/tnotes-config.data.ts +21 -21
- package/vitepress/components/utils.ts +26 -26
- package/vitepress/config/index.ts +169 -167
- package/vitepress/configs/constants.ts +26 -26
- package/vitepress/configs/head.config.ts +25 -25
- package/vitepress/configs/index.ts +9 -9
- package/vitepress/configs/markdown-it.d.ts +23 -23
- package/vitepress/configs/markdown.config.ts +366 -366
- package/vitepress/configs/theme.config.ts +108 -108
- package/vitepress/plugins/buildProgressPlugin.ts +434 -434
- package/vitepress/plugins/getNoteByConfigIdPlugin.ts +107 -107
- package/vitepress/plugins/renameNotePlugin.ts +68 -68
- package/vitepress/plugins/sidebarStructurePlugin.ts +260 -0
- package/vitepress/plugins/updateConfigPlugin.ts +63 -63
- package/vitepress/theme/index.ts +137 -137
- package/vitepress/theme/styles/base.scss +50 -50
- package/vitepress/theme/styles/components/404.scss +31 -31
- package/vitepress/theme/styles/components/collapse.scss +175 -175
- package/vitepress/theme/styles/components/markmap.scss +101 -101
- package/vitepress/theme/styles/components/swiper.scss +255 -255
- package/vitepress/theme/styles/index.scss +25 -25
- package/vitepress/theme/styles/layout.scss +70 -62
- package/vitepress/theme/styles/utilities.scss +39 -39
- package/vitepress/theme/styles/vitepress-override.scss +25 -25
package/dist/cli/index.js
CHANGED
|
@@ -1,10 +1,13 @@
|
|
|
1
1
|
import {
|
|
2
|
+
FileWatcherService,
|
|
2
3
|
NoteIndexCache,
|
|
4
|
+
NoteService,
|
|
5
|
+
ReadmeService,
|
|
3
6
|
RenameNoteCommand,
|
|
4
7
|
UpdateNoteConfigCommand,
|
|
5
8
|
generateAnchor,
|
|
6
9
|
logger
|
|
7
|
-
} from "../../chunk-
|
|
10
|
+
} from "../../chunk-4MO7F7Q4.js";
|
|
8
11
|
import "../../chunk-SQVHJR2Z.js";
|
|
9
12
|
|
|
10
13
|
// vitepress/config/index.ts
|
|
@@ -371,11 +374,11 @@ function getThemeConfig(config) {
|
|
|
371
374
|
}
|
|
372
375
|
}
|
|
373
376
|
},
|
|
374
|
-
// sidebar
|
|
377
|
+
// VitePress 只有 sidebar 非空才会渲染 sidebar 插槽,自定义侧边栏依赖这个外壳。
|
|
375
378
|
sidebar: [
|
|
376
379
|
{
|
|
377
|
-
text: "
|
|
378
|
-
|
|
380
|
+
text: "",
|
|
381
|
+
items: []
|
|
379
382
|
}
|
|
380
383
|
],
|
|
381
384
|
socialLinks: config.socialLinks
|
|
@@ -811,6 +814,210 @@ function renameNotePlugin() {
|
|
|
811
814
|
};
|
|
812
815
|
}
|
|
813
816
|
|
|
817
|
+
// vitepress/plugins/sidebarStructurePlugin.ts
|
|
818
|
+
async function readJsonBody(req) {
|
|
819
|
+
let body = "";
|
|
820
|
+
await new Promise((resolve, reject) => {
|
|
821
|
+
req.on("data", (chunk) => {
|
|
822
|
+
body += chunk.toString();
|
|
823
|
+
});
|
|
824
|
+
req.on("end", resolve);
|
|
825
|
+
req.on("error", reject);
|
|
826
|
+
});
|
|
827
|
+
return body ? JSON.parse(body) : {};
|
|
828
|
+
}
|
|
829
|
+
function sendJson(res, statusCode, payload) {
|
|
830
|
+
res.statusCode = statusCode;
|
|
831
|
+
res.setHeader("Content-Type", "application/json");
|
|
832
|
+
res.end(JSON.stringify(payload));
|
|
833
|
+
}
|
|
834
|
+
function normalizePathname(url) {
|
|
835
|
+
return (url || "").split("?")[0];
|
|
836
|
+
}
|
|
837
|
+
function normalizeGroupPath(value) {
|
|
838
|
+
if (!Array.isArray(value) || value.length === 0) {
|
|
839
|
+
throw new Error("Missing groupPath");
|
|
840
|
+
}
|
|
841
|
+
return value.map((item) => String(item));
|
|
842
|
+
}
|
|
843
|
+
function normalizeCount(value) {
|
|
844
|
+
const count = Number(value ?? 1);
|
|
845
|
+
if (!Number.isInteger(count) || count < 1 || count > 100) {
|
|
846
|
+
throw new Error("count must be an integer between 1 and 100");
|
|
847
|
+
}
|
|
848
|
+
return count;
|
|
849
|
+
}
|
|
850
|
+
function getCreatedNotePayload(notes) {
|
|
851
|
+
return notes.map((note) => ({
|
|
852
|
+
index: note.index,
|
|
853
|
+
dirName: note.dirName,
|
|
854
|
+
link: `/notes/${encodeURIComponent(note.dirName)}/README`
|
|
855
|
+
}));
|
|
856
|
+
}
|
|
857
|
+
async function withSuspendedWatcher(task) {
|
|
858
|
+
const watcher = FileWatcherService.getInstance();
|
|
859
|
+
try {
|
|
860
|
+
watcher?.suspend();
|
|
861
|
+
return await task();
|
|
862
|
+
} finally {
|
|
863
|
+
watcher?.unsuspend();
|
|
864
|
+
}
|
|
865
|
+
}
|
|
866
|
+
function sidebarStructurePlugin() {
|
|
867
|
+
const noteService = NoteService.getInstance();
|
|
868
|
+
const readmeService = ReadmeService.getInstance();
|
|
869
|
+
async function createNotes(count) {
|
|
870
|
+
const notes = [];
|
|
871
|
+
const usedIndexes = /* @__PURE__ */ new Set();
|
|
872
|
+
for (const note of noteService.getAllNotes()) {
|
|
873
|
+
const index = parseInt(note.index, 10);
|
|
874
|
+
if (!isNaN(index)) {
|
|
875
|
+
usedIndexes.add(index);
|
|
876
|
+
}
|
|
877
|
+
}
|
|
878
|
+
for (let i = 0; i < count; i++) {
|
|
879
|
+
const note = await noteService.createNote({
|
|
880
|
+
title: "new",
|
|
881
|
+
usedIndexes
|
|
882
|
+
});
|
|
883
|
+
const index = parseInt(note.index, 10);
|
|
884
|
+
if (!isNaN(index)) {
|
|
885
|
+
usedIndexes.add(index);
|
|
886
|
+
}
|
|
887
|
+
notes.push(note);
|
|
888
|
+
}
|
|
889
|
+
return notes;
|
|
890
|
+
}
|
|
891
|
+
return {
|
|
892
|
+
name: "tnotes-sidebar-structure",
|
|
893
|
+
configureServer(server) {
|
|
894
|
+
server.middlewares.use(async (req, res, next) => {
|
|
895
|
+
const pathname = normalizePathname(req.url);
|
|
896
|
+
const handledPaths = /* @__PURE__ */ new Set([
|
|
897
|
+
"/__tnotes_sidebar_rename_group",
|
|
898
|
+
"/__tnotes_sidebar_delete_group",
|
|
899
|
+
"/__tnotes_sidebar_create_note",
|
|
900
|
+
"/__tnotes_sidebar_create_notes",
|
|
901
|
+
"/__tnotes_sidebar_delete_note",
|
|
902
|
+
"/__tnotes_sidebar_reorder"
|
|
903
|
+
]);
|
|
904
|
+
if (!handledPaths.has(pathname)) {
|
|
905
|
+
next();
|
|
906
|
+
return;
|
|
907
|
+
}
|
|
908
|
+
if (req.method !== "POST") {
|
|
909
|
+
sendJson(res, 405, { success: false, message: "Method Not Allowed" });
|
|
910
|
+
return;
|
|
911
|
+
}
|
|
912
|
+
try {
|
|
913
|
+
const data = await readJsonBody(req);
|
|
914
|
+
const result = await withSuspendedWatcher(async () => {
|
|
915
|
+
if (pathname === "/__tnotes_sidebar_rename_group") {
|
|
916
|
+
const groupPath = normalizeGroupPath(data.groupPath);
|
|
917
|
+
const newTitle = String(data.newTitle || "");
|
|
918
|
+
await readmeService.renameGroupInReadme(groupPath, newTitle);
|
|
919
|
+
await readmeService.refreshHomeReadmeAndSidebar();
|
|
920
|
+
return {
|
|
921
|
+
success: true,
|
|
922
|
+
sidebarChanged: true,
|
|
923
|
+
message: "\u76EE\u5F55\u5DF2\u91CD\u547D\u540D"
|
|
924
|
+
};
|
|
925
|
+
}
|
|
926
|
+
if (pathname === "/__tnotes_sidebar_delete_group") {
|
|
927
|
+
const groupPath = normalizeGroupPath(data.groupPath);
|
|
928
|
+
const noteIndexes = await readmeService.deleteGroupFromReadme(
|
|
929
|
+
groupPath
|
|
930
|
+
);
|
|
931
|
+
for (const noteIndex of noteIndexes) {
|
|
932
|
+
await noteService.deleteNote(noteIndex);
|
|
933
|
+
}
|
|
934
|
+
await readmeService.refreshHomeReadmeAndSidebar();
|
|
935
|
+
return {
|
|
936
|
+
success: true,
|
|
937
|
+
sidebarChanged: true,
|
|
938
|
+
redirectUrl: "/",
|
|
939
|
+
deletedNoteIndexes: noteIndexes,
|
|
940
|
+
message: "\u76EE\u5F55\u5DF2\u5220\u9664"
|
|
941
|
+
};
|
|
942
|
+
}
|
|
943
|
+
if (pathname === "/__tnotes_sidebar_delete_note") {
|
|
944
|
+
const noteIndex = String(data.noteIndex || "");
|
|
945
|
+
if (!noteIndex) throw new Error("Missing noteIndex");
|
|
946
|
+
await readmeService.deleteNoteFromReadme(noteIndex);
|
|
947
|
+
await noteService.deleteNote(noteIndex);
|
|
948
|
+
await readmeService.refreshHomeReadmeAndSidebar();
|
|
949
|
+
return {
|
|
950
|
+
success: true,
|
|
951
|
+
sidebarChanged: true,
|
|
952
|
+
redirectUrl: "/",
|
|
953
|
+
deletedNoteIndexes: [noteIndex],
|
|
954
|
+
message: "\u7B14\u8BB0\u5DF2\u5220\u9664"
|
|
955
|
+
};
|
|
956
|
+
}
|
|
957
|
+
if (pathname === "/__tnotes_sidebar_reorder") {
|
|
958
|
+
if (data.dragType === "note") {
|
|
959
|
+
const noteIndex = String(data.noteIndex || "");
|
|
960
|
+
if (!noteIndex) throw new Error("Missing noteIndex");
|
|
961
|
+
if (data.targetType === "group") {
|
|
962
|
+
await readmeService.moveNoteInReadme(noteIndex, {
|
|
963
|
+
targetGroupPath: normalizeGroupPath(data.targetGroupPath)
|
|
964
|
+
});
|
|
965
|
+
} else {
|
|
966
|
+
await readmeService.moveNoteInReadme(noteIndex, {
|
|
967
|
+
targetNoteIndex: String(data.targetNoteIndex || ""),
|
|
968
|
+
placement: data.placement === "after" ? "after" : "before"
|
|
969
|
+
});
|
|
970
|
+
}
|
|
971
|
+
} else if (data.dragType === "group") {
|
|
972
|
+
await readmeService.moveGroupInReadme(
|
|
973
|
+
normalizeGroupPath(data.groupPath),
|
|
974
|
+
normalizeGroupPath(data.targetGroupPath),
|
|
975
|
+
data.placement === "after" ? "after" : "before"
|
|
976
|
+
);
|
|
977
|
+
} else {
|
|
978
|
+
throw new Error("Missing dragType");
|
|
979
|
+
}
|
|
980
|
+
await readmeService.refreshHomeReadmeAndSidebar();
|
|
981
|
+
return {
|
|
982
|
+
success: true,
|
|
983
|
+
sidebarChanged: true,
|
|
984
|
+
message: "\u6392\u5E8F\u5DF2\u66F4\u65B0"
|
|
985
|
+
};
|
|
986
|
+
}
|
|
987
|
+
const count = normalizeCount(data.count);
|
|
988
|
+
const notes = await createNotes(count);
|
|
989
|
+
if (data.targetNoteIndex) {
|
|
990
|
+
const placement = data.placement === "after" ? "after" : "before";
|
|
991
|
+
await readmeService.insertNotesAroundNote(
|
|
992
|
+
String(data.targetNoteIndex),
|
|
993
|
+
notes,
|
|
994
|
+
placement
|
|
995
|
+
);
|
|
996
|
+
} else {
|
|
997
|
+
const groupPath = normalizeGroupPath(data.groupPath);
|
|
998
|
+
await readmeService.insertNotesAtGroupStart(groupPath, notes);
|
|
999
|
+
}
|
|
1000
|
+
await readmeService.refreshHomeReadmeAndSidebar();
|
|
1001
|
+
return {
|
|
1002
|
+
success: true,
|
|
1003
|
+
sidebarChanged: true,
|
|
1004
|
+
createdNotes: getCreatedNotePayload(notes),
|
|
1005
|
+
message: "\u7B14\u8BB0\u5DF2\u521B\u5EFA"
|
|
1006
|
+
};
|
|
1007
|
+
});
|
|
1008
|
+
sendJson(res, 200, result);
|
|
1009
|
+
} catch (error) {
|
|
1010
|
+
console.error("\u4FA7\u8FB9\u680F\u7ED3\u6784\u64CD\u4F5C\u5931\u8D25:", error);
|
|
1011
|
+
sendJson(res, 500, {
|
|
1012
|
+
success: false,
|
|
1013
|
+
message: error instanceof Error ? error.message : String(error)
|
|
1014
|
+
});
|
|
1015
|
+
}
|
|
1016
|
+
});
|
|
1017
|
+
}
|
|
1018
|
+
};
|
|
1019
|
+
}
|
|
1020
|
+
|
|
814
1021
|
// vitepress/plugins/updateConfigPlugin.ts
|
|
815
1022
|
function updateConfigPlugin() {
|
|
816
1023
|
let updateCommand;
|
|
@@ -897,6 +1104,7 @@ function defineNotesConfig(overrides = {}) {
|
|
|
897
1104
|
buildProgressPlugin(),
|
|
898
1105
|
updateConfigPlugin(),
|
|
899
1106
|
renameNotePlugin(),
|
|
1107
|
+
sidebarStructurePlugin(),
|
|
900
1108
|
getNoteByConfigIdPlugin(),
|
|
901
1109
|
fileWatcherBridgePlugin(),
|
|
902
1110
|
...overrideVite?.plugins || []
|
package/package.json
CHANGED
package/types/config.ts
CHANGED
|
@@ -1,61 +1,61 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* .vitepress/tnotes/types/config.ts
|
|
3
|
-
*
|
|
4
|
-
* 配置相关类型定义
|
|
5
|
-
*/
|
|
6
|
-
|
|
7
|
-
/**
|
|
8
|
-
* 知识库的 .tnotes.json 配置文件类型
|
|
9
|
-
*/
|
|
10
|
-
export interface TNotesConfig {
|
|
11
|
-
id?: string
|
|
12
|
-
author: string
|
|
13
|
-
ignore_dirs: string[]
|
|
14
|
-
repoName: string
|
|
15
|
-
keywords: string[]
|
|
16
|
-
socialLinks: SocialLink[]
|
|
17
|
-
menuItems: MenuItem[]
|
|
18
|
-
sidebarShowNoteId: boolean
|
|
19
|
-
port?: number
|
|
20
|
-
packageManager?: 'pnpm' | 'npm' | 'yarn'
|
|
21
|
-
root_item: RootItem
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
/**
|
|
25
|
-
* 图标配置
|
|
26
|
-
*/
|
|
27
|
-
export interface IconConfig {
|
|
28
|
-
svg?: string
|
|
29
|
-
src?: string
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
/**
|
|
33
|
-
* 社交链接类型
|
|
34
|
-
*/
|
|
35
|
-
export interface SocialLink {
|
|
36
|
-
ariaLabel?: string
|
|
37
|
-
icon: string | IconConfig
|
|
38
|
-
link: string
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
/**
|
|
42
|
-
* 菜单项类型
|
|
43
|
-
*/
|
|
44
|
-
export interface MenuItem {
|
|
45
|
-
text: string
|
|
46
|
-
link: string
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
/**
|
|
50
|
-
* 根项目配置
|
|
51
|
-
*/
|
|
52
|
-
export interface RootItem {
|
|
53
|
-
icon?: IconConfig
|
|
54
|
-
title: string
|
|
55
|
-
completed_notes_count: Record<string, number>
|
|
56
|
-
details: string
|
|
57
|
-
link: string
|
|
58
|
-
created_at?: number
|
|
59
|
-
updated_at?: number
|
|
60
|
-
days_since_birth?: number
|
|
61
|
-
}
|
|
1
|
+
/**
|
|
2
|
+
* .vitepress/tnotes/types/config.ts
|
|
3
|
+
*
|
|
4
|
+
* 配置相关类型定义
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* 知识库的 .tnotes.json 配置文件类型
|
|
9
|
+
*/
|
|
10
|
+
export interface TNotesConfig {
|
|
11
|
+
id?: string
|
|
12
|
+
author: string
|
|
13
|
+
ignore_dirs: string[]
|
|
14
|
+
repoName: string
|
|
15
|
+
keywords: string[]
|
|
16
|
+
socialLinks: SocialLink[]
|
|
17
|
+
menuItems: MenuItem[]
|
|
18
|
+
sidebarShowNoteId: boolean
|
|
19
|
+
port?: number
|
|
20
|
+
packageManager?: 'pnpm' | 'npm' | 'yarn'
|
|
21
|
+
root_item: RootItem
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
/**
|
|
25
|
+
* 图标配置
|
|
26
|
+
*/
|
|
27
|
+
export interface IconConfig {
|
|
28
|
+
svg?: string
|
|
29
|
+
src?: string
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
/**
|
|
33
|
+
* 社交链接类型
|
|
34
|
+
*/
|
|
35
|
+
export interface SocialLink {
|
|
36
|
+
ariaLabel?: string
|
|
37
|
+
icon: string | IconConfig
|
|
38
|
+
link: string
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
/**
|
|
42
|
+
* 菜单项类型
|
|
43
|
+
*/
|
|
44
|
+
export interface MenuItem {
|
|
45
|
+
text: string
|
|
46
|
+
link: string
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
/**
|
|
50
|
+
* 根项目配置
|
|
51
|
+
*/
|
|
52
|
+
export interface RootItem {
|
|
53
|
+
icon?: IconConfig
|
|
54
|
+
title: string
|
|
55
|
+
completed_notes_count: Record<string, number>
|
|
56
|
+
details: string
|
|
57
|
+
link: string
|
|
58
|
+
created_at?: number
|
|
59
|
+
updated_at?: number
|
|
60
|
+
days_since_birth?: number
|
|
61
|
+
}
|
package/types/index.ts
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* .vitepress/tnotes/types/index.ts
|
|
3
|
-
*
|
|
4
|
-
* 类型定义统一导出
|
|
5
|
-
*/
|
|
6
|
-
|
|
7
|
-
// 配置相关类型
|
|
8
|
-
export type { TNotesConfig } from './config'
|
|
9
|
-
|
|
10
|
-
// 笔记相关类型
|
|
11
|
-
export type { NoteConfig, NoteInfo } from './note'
|
|
1
|
+
/**
|
|
2
|
+
* .vitepress/tnotes/types/index.ts
|
|
3
|
+
*
|
|
4
|
+
* 类型定义统一导出
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
// 配置相关类型
|
|
8
|
+
export type { TNotesConfig } from './config'
|
|
9
|
+
|
|
10
|
+
// 笔记相关类型
|
|
11
|
+
export type { NoteConfig, NoteInfo } from './note'
|
package/types/note.ts
CHANGED
|
@@ -1,33 +1,33 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* .vitepress/tnotes/types/note.ts
|
|
3
|
-
*
|
|
4
|
-
* 笔记相关类型定义
|
|
5
|
-
*/
|
|
6
|
-
|
|
7
|
-
/**
|
|
8
|
-
* 笔记的 .tnotes.json 配置类型
|
|
9
|
-
*/
|
|
10
|
-
export interface NoteConfig {
|
|
11
|
-
id: string
|
|
12
|
-
bilibili: string[]
|
|
13
|
-
tnotes: string[]
|
|
14
|
-
yuque: string[]
|
|
15
|
-
done: boolean
|
|
16
|
-
category?: string
|
|
17
|
-
enableDiscussions: boolean
|
|
18
|
-
description?: string // 笔记简介(一句话描述)
|
|
19
|
-
created_at?: number
|
|
20
|
-
updated_at?: number
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
/**
|
|
24
|
-
* 笔记信息
|
|
25
|
-
*/
|
|
26
|
-
export interface NoteInfo {
|
|
27
|
-
index: string
|
|
28
|
-
path: string
|
|
29
|
-
dirName: string
|
|
30
|
-
readmePath: string
|
|
31
|
-
configPath: string
|
|
32
|
-
config?: NoteConfig
|
|
33
|
-
}
|
|
1
|
+
/**
|
|
2
|
+
* .vitepress/tnotes/types/note.ts
|
|
3
|
+
*
|
|
4
|
+
* 笔记相关类型定义
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* 笔记的 .tnotes.json 配置类型
|
|
9
|
+
*/
|
|
10
|
+
export interface NoteConfig {
|
|
11
|
+
id: string
|
|
12
|
+
bilibili: string[]
|
|
13
|
+
tnotes: string[]
|
|
14
|
+
yuque: string[]
|
|
15
|
+
done: boolean
|
|
16
|
+
category?: string
|
|
17
|
+
enableDiscussions: boolean
|
|
18
|
+
description?: string // 笔记简介(一句话描述)
|
|
19
|
+
created_at?: number
|
|
20
|
+
updated_at?: number
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
/**
|
|
24
|
+
* 笔记信息
|
|
25
|
+
*/
|
|
26
|
+
export interface NoteInfo {
|
|
27
|
+
index: string
|
|
28
|
+
path: string
|
|
29
|
+
dirName: string
|
|
30
|
+
readmePath: string
|
|
31
|
+
configPath: string
|
|
32
|
+
config?: NoteConfig
|
|
33
|
+
}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
|
|
2
|
-
<polyline points="20 6 9 17 4 12"></polyline>
|
|
3
|
-
</svg>
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
|
|
2
|
+
<polyline points="20 6 9 17 4 12"></polyline>
|
|
3
|
+
</svg>
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
<svg t="1735090484450" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="4809"
|
|
2
|
-
width="1em" height="1em">
|
|
3
|
-
<path
|
|
4
|
-
d="M752 176V64c0-35.3-28.7-64-64-64H144c-35.3 0-64 28.7-64 64v704c0 35.3 28.7 64 64 64h112c8.8 0 16 7.2 16 16v112c0 35.3 28.7 64 64 64h544c35.3 0 64-28.7 64-64V256c0-35.3-28.7-64-64-64H768c-8.8 0-16-7.2-16-16zM256 768h-96c-8.8 0-16-7.2-16-16V80c0-8.8 7.2-16 16-16h512c8.8 0 16 7.2 16 16v96c0 8.8-7.2 16-16 16H336c-35.3 0-64 28.7-64 64v496c0 8.8-7.2 16-16 16z m608 192H352c-8.8 0-16-7.2-16-16V272c0-8.8 7.2-16 16-16h512c8.8 0 16 7.2 16 16v672c0 8.8-7.2 16-16 16z"
|
|
5
|
-
p-id="4810" fill="#646cff"></path>
|
|
6
|
-
<path d="M704 352H512c-17.7 0-32-14.3-32-32s14.3-32 32-32h192c17.7 0 32 14.3 32 32s-14.3 32-32 32z" p-id="4811"
|
|
7
|
-
fill="#646cff"></path>
|
|
1
|
+
<svg t="1735090484450" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="4809"
|
|
2
|
+
width="1em" height="1em">
|
|
3
|
+
<path
|
|
4
|
+
d="M752 176V64c0-35.3-28.7-64-64-64H144c-35.3 0-64 28.7-64 64v704c0 35.3 28.7 64 64 64h112c8.8 0 16 7.2 16 16v112c0 35.3 28.7 64 64 64h544c35.3 0 64-28.7 64-64V256c0-35.3-28.7-64-64-64H768c-8.8 0-16-7.2-16-16zM256 768h-96c-8.8 0-16-7.2-16-16V80c0-8.8 7.2-16 16-16h512c8.8 0 16 7.2 16 16v96c0 8.8-7.2 16-16 16H336c-35.3 0-64 28.7-64 64v496c0 8.8-7.2 16-16 16z m608 192H352c-8.8 0-16-7.2-16-16V272c0-8.8 7.2-16 16-16h512c8.8 0 16 7.2 16 16v672c0 8.8-7.2 16-16 16z"
|
|
5
|
+
p-id="4810" fill="#646cff"></path>
|
|
6
|
+
<path d="M704 352H512c-17.7 0-32-14.3-32-32s14.3-32 32-32h192c17.7 0 32 14.3 32 32s-14.3 32-32 32z" p-id="4811"
|
|
7
|
+
fill="#646cff"></path>
|
|
8
8
|
</svg>
|
|
@@ -1 +1 @@
|
|
|
1
|
-
<svg xmlns="http://www.w3.org/2000/svg" width="1em" height="1em" viewBox="0 0 24 24"><path fill="none" stroke="#646cff" stroke-width="2" d="m3 3l18 18M3 21L21 3"/></svg>
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="1em" height="1em" viewBox="0 0 24 24"><path fill="none" stroke="#646cff" stroke-width="2" d="m3 3l18 18M3 21L21 3"/></svg>
|
|
@@ -1 +1 @@
|
|
|
1
|
-
<svg xmlns="http://www.w3.org/2000/svg" width="48" height="48" viewBox="0 0 48 48"><path fill="#646cff" d="M17.1 5L14 8.1L29.9 24L14 39.9l3.1 3.1L36 24z"/></svg>
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="48" height="48" viewBox="0 0 48 48"><path fill="#646cff" d="M17.1 5L14 8.1L29.9 24L14 39.9l3.1 3.1L36 24z"/></svg>
|
|
@@ -1 +1 @@
|
|
|
1
|
-
<svg xmlns="http://www.w3.org/2000/svg" width="1em" height="1em" viewBox="0 0 24 24"><path fill="none" stroke="#646cff" stroke-dasharray="24" stroke-dashoffset="24" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M5 11l6 6l10 -10"><animate fill="freeze" attributeName="stroke-dashoffset" dur="0.4s" values="24;0"/></path></svg>
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="1em" height="1em" viewBox="0 0 24 24"><path fill="none" stroke="#646cff" stroke-dasharray="24" stroke-dashoffset="24" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M5 11l6 6l10 -10"><animate fill="freeze" attributeName="stroke-dashoffset" dur="0.4s" values="24;0"/></path></svg>
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
|
|
2
|
-
<rect x="9" y="9" width="13" height="13" rx="2" ry="2"></rect>
|
|
3
|
-
<path d="M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"></path>
|
|
4
|
-
</svg>
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
|
|
2
|
+
<rect x="9" y="9" width="13" height="13" rx="2" ry="2"></rect>
|
|
3
|
+
<path d="M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"></path>
|
|
4
|
+
</svg>
|
|
@@ -1 +1 @@
|
|
|
1
|
-
<svg xmlns="http://www.w3.org/2000/svg" width="1em" height="1em" viewBox="0 0 24 24"><g fill="none"><path d="M19 12a7 7 0 1 1-14 0a7 7 0 0 1 14 0"/><path stroke="#646cff" stroke-linecap="square" stroke-width="2" d="M19 12a7 7 0 0 1-7 7m7-7a7 7 0 0 0-7-7m7 7h3m-10 7a7 7 0 0 1-7-7m7 7v3M5 12a7 7 0 0 1 7-7m-7 7H2m10-7V2m1 10a1 1 0 1 1-2 0a1 1 0 0 1 2 0Z"/></g></svg>
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="1em" height="1em" viewBox="0 0 24 24"><g fill="none"><path d="M19 12a7 7 0 1 1-14 0a7 7 0 0 1 14 0"/><path stroke="#646cff" stroke-linecap="square" stroke-width="2" d="M19 12a7 7 0 0 1-7 7m7-7a7 7 0 0 0-7-7m7 7h3m-10 7a7 7 0 0 1-7-7m7 7v3M5 12a7 7 0 0 1 7-7m-7 7H2m10-7V2m1 10a1 1 0 1 1-2 0a1 1 0 0 1 2 0Z"/></g></svg>
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
|
|
2
|
-
<path fill="#5961ff" d="M2 4h20v2H2zm0 5.57L5.887 12L2 14.43zM7 11h15v2H7zm-5 7h20v2H2z" />
|
|
3
|
-
</svg>
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
|
|
2
|
+
<path fill="#5961ff" d="M2 4h20v2H2zm0 5.57L5.887 12L2 14.43zM7 11h15v2H7zm-5 7h20v2H2z" />
|
|
3
|
+
</svg>
|
|
@@ -1 +1 @@
|
|
|
1
|
-
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path fill="none" stroke="#5961ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5" d="M2 11V4.6a.6.6 0 0 1 .6-.6h6.178a.6.6 0 0 1 .39.144l3.164 2.712a.6.6 0 0 0 .39.144H21.4a.6.6 0 0 1 .6.6V11M2 11v8.4a.6.6 0 0 0 .6.6h18.8a.6.6 0 0 0 .6-.6V11M2 11h20"/></svg>
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path fill="none" stroke="#5961ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5" d="M2 11V4.6a.6.6 0 0 1 .6-.6h6.178a.6.6 0 0 1 .39.144l3.164 2.712a.6.6 0 0 0 .39.144H21.4a.6.6 0 0 1 .6.6V11M2 11v8.4a.6.6 0 0 0 .6.6h18.8a.6.6 0 0 0 .6-.6V11M2 11h20"/></svg>
|
|
@@ -1 +1 @@
|
|
|
1
|
-
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><g fill="none"><path d="M24 0v24H0V0zM12.593 23.258l-.011.002l-.071.035l-.02.004l-.014-.004l-.071-.035q-.016-.005-.024.005l-.004.01l-.017.428l.005.02l.01.013l.104.074l.015.004l.012-.004l.104-.074l.012-.016l.004-.017l-.017-.427q-.004-.016-.017-.018m.265-.113l-.013.002l-.185.093l-.01.01l-.003.011l.018.43l.005.012l.008.007l.201.093q.019.005.029-.008l.004-.014l-.034-.614q-.005-.019-.02-.022m-.715.002a.02.02 0 0 0-.027.006l-.006.014l-.034.614q.001.018.017.024l.015-.002l.201-.093l.01-.008l.004-.011l.017-.43l-.003-.012l-.01-.01z"/><path fill="#646cff" d="M9.793 12.793a1 1 0 0 1 1.497 1.32l-.083.094L6.414 19H9a1 1 0 0 1 .117 1.993L9 21H4a1 1 0 0 1-.993-.883L3 20v-5a1 1 0 0 1 1.993-.117L5 15v2.586zM20 3a1 1 0 0 1 .993.883L21 4v5a1 1 0 0 1-1.993.117L19 9V6.414l-4.793 4.793a1 1 0 0 1-1.497-1.32l.083-.094L17.586 5H15a1 1 0 0 1-.117-1.993L15 3z"/></g></svg>
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><g fill="none"><path d="M24 0v24H0V0zM12.593 23.258l-.011.002l-.071.035l-.02.004l-.014-.004l-.071-.035q-.016-.005-.024.005l-.004.01l-.017.428l.005.02l.01.013l.104.074l.015.004l.012-.004l.104-.074l.012-.016l.004-.017l-.017-.427q-.004-.016-.017-.018m.265-.113l-.013.002l-.185.093l-.01.01l-.003.011l.018.43l.005.012l.008.007l.201.093q.019.005.029-.008l.004-.014l-.034-.614q-.005-.019-.02-.022m-.715.002a.02.02 0 0 0-.027.006l-.006.014l-.034.614q.001.018.017.024l.015-.002l.201-.093l.01-.008l.004-.011l.017-.43l-.003-.012l-.01-.01z"/><path fill="#646cff" d="M9.793 12.793a1 1 0 0 1 1.497 1.32l-.083.094L6.414 19H9a1 1 0 0 1 .117 1.993L9 21H4a1 1 0 0 1-.993-.883L3 20v-5a1 1 0 0 1 1.993-.117L5 15v2.586zM20 3a1 1 0 0 1 .993.883L21 4v5a1 1 0 0 1-1.993.117L19 9V6.414l-4.793 4.793a1 1 0 0 1-1.497-1.32l.083-.094L17.586 5H15a1 1 0 0 1-.117-1.993L15 3z"/></g></svg>
|
|
@@ -1 +1 @@
|
|
|
1
|
-
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path fill="#646cff" d="m10 15.4l-5.9 5.9q-.275.275-.7.275t-.7-.275t-.275-.7t.275-.7L8.6 14H5q-.425 0-.712-.288T4 13t.288-.712T5 12h6q.425 0 .713.288T12 13v6q0 .425-.288.713T11 20t-.712-.288T10 19zm5.4-5.4H19q.425 0 .713.288T20 11t-.288.713T19 12h-6q-.425 0-.712-.288T12 11V5q0-.425.288-.712T13 4t.713.288T14 5v3.6l5.9-5.9q.275-.275.7-.275t.7.275t.275.7t-.275.7z"/></svg>
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path fill="#646cff" d="m10 15.4l-5.9 5.9q-.275.275-.7.275t-.7-.275t-.275-.7t.275-.7L8.6 14H5q-.425 0-.712-.288T4 13t.288-.712T5 12h6q.425 0 .713.288T12 13v6q0 .425-.288.713T11 20t-.712-.288T10 19zm5.4-5.4H19q.425 0 .713.288T20 11t-.288.713T19 12h-6q-.425 0-.712-.288T12 11V5q0-.425.288-.712T13 4t.713.288T14 5v3.6l5.9-5.9q.275-.275.7-.275t.7.275t.275.7t-.275.7z"/></svg>
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
<svg xmlns="http://www.w3.org/2000/svg" width="1em" height="1em" viewBox="0 0 24 24">
|
|
2
|
-
<path fill="#646cff"
|
|
3
|
-
d="M12 .297c-6.63 0-12 5.373-12 12c0 5.303 3.438 9.8 8.205 11.385c.6.113.82-.258.82-.577c0-.285-.01-1.04-.015-2.04c-3.338.724-4.042-1.61-4.042-1.61C4.422 18.07 3.633 17.7 3.633 17.7c-1.087-.744.084-.729.084-.729c1.205.084 1.838 1.236 1.838 1.236c1.07 1.835 2.809 1.305 3.495.998c.108-.776.417-1.305.76-1.605c-2.665-.3-5.466-1.332-5.466-5.93c0-1.31.465-2.38 1.235-3.22c-.135-.303-.54-1.523.105-3.176c0 0 1.005-.322 3.3 1.23c.96-.267 1.98-.399 3-.405c1.02.006 2.04.138 3 .405c2.28-1.552 3.285-1.23 3.285-1.23c.645 1.653.24 2.873.12 3.176c.765.84 1.23 1.91 1.23 3.22c0 4.61-2.805 5.625-5.475 5.92c.42.36.81 1.096.81 2.22c0 1.606-.015 2.896-.015 3.286c0 .315.21.69.825.57C20.565 22.092 24 17.592 24 12.297c0-6.627-5.373-12-12-12" />
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="1em" height="1em" viewBox="0 0 24 24">
|
|
2
|
+
<path fill="#646cff"
|
|
3
|
+
d="M12 .297c-6.63 0-12 5.373-12 12c0 5.303 3.438 9.8 8.205 11.385c.6.113.82-.258.82-.577c0-.285-.01-1.04-.015-2.04c-3.338.724-4.042-1.61-4.042-1.61C4.422 18.07 3.633 17.7 3.633 17.7c-1.087-.744.084-.729.084-.729c1.205.084 1.838 1.236 1.838 1.236c1.07 1.835 2.809 1.305 3.495.998c.108-.776.417-1.305.76-1.605c-2.665-.3-5.466-1.332-5.466-5.93c0-1.31.465-2.38 1.235-3.22c-.135-.303-.54-1.523.105-3.176c0 0 1.005-.322 3.3 1.23c.96-.267 1.98-.399 3-.405c1.02.006 2.04.138 3 .405c2.28-1.552 3.285-1.23 3.285-1.23c.645 1.653.24 2.873.12 3.176c.765.84 1.23 1.91 1.23 3.22c0 4.61-2.805 5.625-5.475 5.92c.42.36.81 1.096.81 2.22c0 1.606-.015 2.896-.015 3.286c0 .315.21.69.825.57C20.565 22.092 24 17.592 24 12.297c0-6.627-5.373-12-12-12" />
|
|
4
4
|
</svg>
|
|
@@ -1 +1 @@
|
|
|
1
|
-
<svg xmlns="http://www.w3.org/2000/svg" width="1em" height="1em" viewBox="0 0 48 48"><path fill="none" stroke="#646cff" stroke-linecap="round" stroke-linejoin="round" stroke-width="4" d="M26 24h16M26 38h16M26 10h16M18 24H6h4m8 14c-6-2-2-14-8-14m8-14c-6 2-2 14-8 14"/></svg>
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="1em" height="1em" viewBox="0 0 48 48"><path fill="none" stroke="#646cff" stroke-linecap="round" stroke-linejoin="round" stroke-width="4" d="M26 24h16M26 38h16M26 10h16M18 24H6h4m8 14c-6-2-2-14-8-14m8-14c-6 2-2 14-8 14"/></svg>
|
|
@@ -1 +1 @@
|
|
|
1
|
-
<svg xmlns="http://www.w3.org/2000/svg" width="1em" height="1em" viewBox="0 0 24 24"><path fill="none" stroke="#646cff" stroke-width="2" d="m9 6l6 6l-6 6"/></svg>
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="1em" height="1em" viewBox="0 0 24 24"><path fill="none" stroke="#646cff" stroke-width="2" d="m9 6l6 6l-6 6"/></svg>
|
|
@@ -1 +1 @@
|
|
|
1
|
-
<svg xmlns="http://www.w3.org/2000/svg" width="1em" height="1em" viewBox="0 0 24 24"><path fill="#98989f" d="M6.44 13.8q0 .26-.007.531q-.007.272-.007.545c0 .4-.325.726-.726.726h-.486a.726.726 0 0 1-.725-.726q0-.273-.007-.545a22 22 0 0 1-.006-.531v-1.504q0-.258.025-.647q.033-.396.059-.804q.032-.408.026-.713l-.052-1.931a4 4 0 0 1 .499-.065a8 8 0 0 1 .9 0c.296.016.506.279.506.575zm-3.254.985c.095 0 .89-.004 1.08 0c-.095 0 .19.004 0 0h2.16c.1 0 .337.004.54 0c-.095 0 .207-.004 0 0h.285c.466 0 .854.325.854.79c0 .488-.346.83-.833.83H3.018a.49.49 0 0 1-.493-.408a3.6 3.6 0 0 1-.019-.638c.023-.343.336-.574.68-.574m-.888-3.253c-.276-.38-.036-.863.342-1.142q.54-.4.928-.809c.406-.428.698-1.112.966-1.38c.093.035.203.227.307.464c.299.68.281 1.494-.21 2.05a4.8 4.8 0 0 1-1.151.943c-.392.236-.905.238-1.182-.126m7.547-.907c-.464-.171-.574-.73-.331-1.16a3 3 0 0 1 .247-.376A2.76 2.76 0 0 1 12.003 8q.83 0 1.446.324q.615.318.952.9q.345.578.344 1.362q0 .544-.214.985t-.564.816t-.771.733l-.927.725l-.486.409q-.26.221-.447.427c-.125.139-.045.005-.05.104l-.107.804a.94.94 0 0 1-.932.816a.88.88 0 0 1-.707-.337a7 7 0 0 1-.207-.285a1.2 1.2 0 0 1-.207-.674q0-.356.201-.72q.207-.362.544-.725q.345-.369.74-.726l1.405-1.212q.285-.246.48-.538q.195-.291.194-.66a.88.88 0 0 0-.233-.623q-.233-.26-.66-.259a.91.91 0 0 0-.753.363l-.034.044c-.293.384-.708.73-1.165.572m3.88 4.166c.74-.003 1.402.665.942 1.245q-.29.37-.979.37h-3.252a.76.76 0 0 1-.695-.451c-.182-.404.02-.877.454-.968q.189-.039.396-.072c.912-.155 1.845-.132 2.77-.125l.327.002h.038Zm6.208-1.004q0-.512-.337-.784a1.2 1.2 0 0 0-.81-.279q-.181 0-.357.04c-.222.049-.468.051-.628-.111a2 2 0 0 1-.195-.24c-.142-.212-.266-.29-.266-.616c.672-.149.776-.161 1.07-.226c.294-.07.473-.117.978-.117q.745 0 1.335.279q.59.271.934.81q.343.531.343 1.315a2.6 2.6 0 0 1-.253 1.167a2.5 2.5 0 0 1-.68.855q-.434.35-.998.532q-.564.18-1.193.181a4.6 4.6 0 0 1-1.613-.266a5 5 0 0 1-.519-.233c-.427-.227-.602-.749-.337-1.153c.265-.394.804-.375 1.235-.175l.055.025q.428.182.92.182q.403 0 .694-.143q.297-.149.46-.414q.162-.267.162-.629m.337-2.625a3.2 3.2 0 0 1-.616.486a5.5 5.5 0 0 1-.68.363c-.3.13-.165-.347-.49-.318l-1.144.104c.19-.343 1.2-1.173 1.2-1.173q.123-.123.285-.278a19 19 0 0 1 .564-.5a.05.05 0 0 0 .016-.062a.06.06 0 0 0-.063-.033a3 3 0 0 1-.45.027q-.045.001-.09.005c-.114.009-.214-.02-.352-.005c-.15.013-.274 0-.434 0h-.903c-.256 0-.668-.064-.693-.32a4 4 0 0 1-.02-.324q0-.188.033-.44c.04-.312.344-.493.657-.493h3.389c.478 0 .955.248 1.093.706q.084.272.085.48q0 .428-.39.836z"/></svg>
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="1em" height="1em" viewBox="0 0 24 24"><path fill="#98989f" d="M6.44 13.8q0 .26-.007.531q-.007.272-.007.545c0 .4-.325.726-.726.726h-.486a.726.726 0 0 1-.725-.726q0-.273-.007-.545a22 22 0 0 1-.006-.531v-1.504q0-.258.025-.647q.033-.396.059-.804q.032-.408.026-.713l-.052-1.931a4 4 0 0 1 .499-.065a8 8 0 0 1 .9 0c.296.016.506.279.506.575zm-3.254.985c.095 0 .89-.004 1.08 0c-.095 0 .19.004 0 0h2.16c.1 0 .337.004.54 0c-.095 0 .207-.004 0 0h.285c.466 0 .854.325.854.79c0 .488-.346.83-.833.83H3.018a.49.49 0 0 1-.493-.408a3.6 3.6 0 0 1-.019-.638c.023-.343.336-.574.68-.574m-.888-3.253c-.276-.38-.036-.863.342-1.142q.54-.4.928-.809c.406-.428.698-1.112.966-1.38c.093.035.203.227.307.464c.299.68.281 1.494-.21 2.05a4.8 4.8 0 0 1-1.151.943c-.392.236-.905.238-1.182-.126m7.547-.907c-.464-.171-.574-.73-.331-1.16a3 3 0 0 1 .247-.376A2.76 2.76 0 0 1 12.003 8q.83 0 1.446.324q.615.318.952.9q.345.578.344 1.362q0 .544-.214.985t-.564.816t-.771.733l-.927.725l-.486.409q-.26.221-.447.427c-.125.139-.045.005-.05.104l-.107.804a.94.94 0 0 1-.932.816a.88.88 0 0 1-.707-.337a7 7 0 0 1-.207-.285a1.2 1.2 0 0 1-.207-.674q0-.356.201-.72q.207-.362.544-.725q.345-.369.74-.726l1.405-1.212q.285-.246.48-.538q.195-.291.194-.66a.88.88 0 0 0-.233-.623q-.233-.26-.66-.259a.91.91 0 0 0-.753.363l-.034.044c-.293.384-.708.73-1.165.572m3.88 4.166c.74-.003 1.402.665.942 1.245q-.29.37-.979.37h-3.252a.76.76 0 0 1-.695-.451c-.182-.404.02-.877.454-.968q.189-.039.396-.072c.912-.155 1.845-.132 2.77-.125l.327.002h.038Zm6.208-1.004q0-.512-.337-.784a1.2 1.2 0 0 0-.81-.279q-.181 0-.357.04c-.222.049-.468.051-.628-.111a2 2 0 0 1-.195-.24c-.142-.212-.266-.29-.266-.616c.672-.149.776-.161 1.07-.226c.294-.07.473-.117.978-.117q.745 0 1.335.279q.59.271.934.81q.343.531.343 1.315a2.6 2.6 0 0 1-.253 1.167a2.5 2.5 0 0 1-.68.855q-.434.35-.998.532q-.564.18-1.193.181a4.6 4.6 0 0 1-1.613-.266a5 5 0 0 1-.519-.233c-.427-.227-.602-.749-.337-1.153c.265-.394.804-.375 1.235-.175l.055.025q.428.182.92.182q.403 0 .694-.143q.297-.149.46-.414q.162-.267.162-.629m.337-2.625a3.2 3.2 0 0 1-.616.486a5.5 5.5 0 0 1-.68.363c-.3.13-.165-.347-.49-.318l-1.144.104c.19-.343 1.2-1.173 1.2-1.173q.123-.123.285-.278a19 19 0 0 1 .564-.5a.05.05 0 0 0 .016-.062a.06.06 0 0 0-.063-.033a3 3 0 0 1-.45.027q-.045.001-.09.005c-.114.009-.214-.02-.352-.005c-.15.013-.274 0-.434 0h-.903c-.256 0-.668-.064-.693-.32a4 4 0 0 1-.02-.324q0-.188.033-.44c.04-.312.344-.493.657-.493h3.389c.478 0 .955.248 1.093.706q.084.272.085.48q0 .428-.39.836z"/></svg>
|
|
@@ -1 +1 @@
|
|
|
1
|
-
<svg xmlns="http://www.w3.org/2000/svg" width="1em" height="1em" viewBox="0 0 24 24"><path fill="#646cff" d="M6.44 13.8q0 .26-.007.531q-.007.272-.007.545c0 .4-.325.726-.726.726h-.486a.726.726 0 0 1-.725-.726q0-.273-.007-.545a22 22 0 0 1-.006-.531v-1.504q0-.258.025-.647q.033-.396.059-.804q.032-.408.026-.713l-.052-1.931a4 4 0 0 1 .499-.065a8 8 0 0 1 .9 0c.296.016.506.279.506.575zm-3.254.985c.095 0 .89-.004 1.08 0c-.095 0 .19.004 0 0h2.16c.1 0 .337.004.54 0c-.095 0 .207-.004 0 0h.285c.466 0 .854.325.854.79c0 .488-.346.83-.833.83H3.018a.49.49 0 0 1-.493-.408a3.6 3.6 0 0 1-.019-.638c.023-.343.336-.574.68-.574m-.888-3.253c-.276-.38-.036-.863.342-1.142q.54-.4.928-.809c.406-.428.698-1.112.966-1.38c.093.035.203.227.307.464c.299.68.281 1.494-.21 2.05a4.8 4.8 0 0 1-1.151.943c-.392.236-.905.238-1.182-.126m7.547-.907c-.464-.171-.574-.73-.331-1.16a3 3 0 0 1 .247-.376A2.76 2.76 0 0 1 12.003 8q.83 0 1.446.324q.615.318.952.9q.345.578.344 1.362q0 .544-.214.985t-.564.816t-.771.733l-.927.725l-.486.409q-.26.221-.447.427c-.125.139-.045.005-.05.104l-.107.804a.94.94 0 0 1-.932.816a.88.88 0 0 1-.707-.337a7 7 0 0 1-.207-.285a1.2 1.2 0 0 1-.207-.674q0-.356.201-.72q.207-.362.544-.725q.345-.369.74-.726l1.405-1.212q.285-.246.48-.538q.195-.291.194-.66a.88.88 0 0 0-.233-.623q-.233-.26-.66-.259a.91.91 0 0 0-.753.363l-.034.044c-.293.384-.708.73-1.165.572m3.88 4.166c.74-.003 1.402.665.942 1.245q-.29.37-.979.37h-3.252a.76.76 0 0 1-.695-.451c-.182-.404.02-.877.454-.968q.189-.039.396-.072c.912-.155 1.845-.132 2.77-.125l.327.002h.038Zm6.208-1.004q0-.512-.337-.784a1.2 1.2 0 0 0-.81-.279q-.181 0-.357.04c-.222.049-.468.051-.628-.111a2 2 0 0 1-.195-.24c-.142-.212-.266-.29-.266-.616c.672-.149.776-.161 1.07-.226c.294-.07.473-.117.978-.117q.745 0 1.335.279q.59.271.934.81q.343.531.343 1.315a2.6 2.6 0 0 1-.253 1.167a2.5 2.5 0 0 1-.68.855q-.434.35-.998.532q-.564.18-1.193.181a4.6 4.6 0 0 1-1.613-.266a5 5 0 0 1-.519-.233c-.427-.227-.602-.749-.337-1.153c.265-.394.804-.375 1.235-.175l.055.025q.428.182.92.182q.403 0 .694-.143q.297-.149.46-.414q.162-.267.162-.629m.337-2.625a3.2 3.2 0 0 1-.616.486a5.5 5.5 0 0 1-.68.363c-.3.13-.165-.347-.49-.318l-1.144.104c.19-.343 1.2-1.173 1.2-1.173q.123-.123.285-.278a19 19 0 0 1 .564-.5a.05.05 0 0 0 .016-.062a.06.06 0 0 0-.063-.033a3 3 0 0 1-.45.027q-.045.001-.09.005c-.114.009-.214-.02-.352-.005c-.15.013-.274 0-.434 0h-.903c-.256 0-.668-.064-.693-.32a4 4 0 0 1-.02-.324q0-.188.033-.44c.04-.312.344-.493.657-.493h3.389c.478 0 .955.248 1.093.706q.084.272.085.48q0 .428-.39.836z"/></svg>
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="1em" height="1em" viewBox="0 0 24 24"><path fill="#646cff" d="M6.44 13.8q0 .26-.007.531q-.007.272-.007.545c0 .4-.325.726-.726.726h-.486a.726.726 0 0 1-.725-.726q0-.273-.007-.545a22 22 0 0 1-.006-.531v-1.504q0-.258.025-.647q.033-.396.059-.804q.032-.408.026-.713l-.052-1.931a4 4 0 0 1 .499-.065a8 8 0 0 1 .9 0c.296.016.506.279.506.575zm-3.254.985c.095 0 .89-.004 1.08 0c-.095 0 .19.004 0 0h2.16c.1 0 .337.004.54 0c-.095 0 .207-.004 0 0h.285c.466 0 .854.325.854.79c0 .488-.346.83-.833.83H3.018a.49.49 0 0 1-.493-.408a3.6 3.6 0 0 1-.019-.638c.023-.343.336-.574.68-.574m-.888-3.253c-.276-.38-.036-.863.342-1.142q.54-.4.928-.809c.406-.428.698-1.112.966-1.38c.093.035.203.227.307.464c.299.68.281 1.494-.21 2.05a4.8 4.8 0 0 1-1.151.943c-.392.236-.905.238-1.182-.126m7.547-.907c-.464-.171-.574-.73-.331-1.16a3 3 0 0 1 .247-.376A2.76 2.76 0 0 1 12.003 8q.83 0 1.446.324q.615.318.952.9q.345.578.344 1.362q0 .544-.214.985t-.564.816t-.771.733l-.927.725l-.486.409q-.26.221-.447.427c-.125.139-.045.005-.05.104l-.107.804a.94.94 0 0 1-.932.816a.88.88 0 0 1-.707-.337a7 7 0 0 1-.207-.285a1.2 1.2 0 0 1-.207-.674q0-.356.201-.72q.207-.362.544-.725q.345-.369.74-.726l1.405-1.212q.285-.246.48-.538q.195-.291.194-.66a.88.88 0 0 0-.233-.623q-.233-.26-.66-.259a.91.91 0 0 0-.753.363l-.034.044c-.293.384-.708.73-1.165.572m3.88 4.166c.74-.003 1.402.665.942 1.245q-.29.37-.979.37h-3.252a.76.76 0 0 1-.695-.451c-.182-.404.02-.877.454-.968q.189-.039.396-.072c.912-.155 1.845-.132 2.77-.125l.327.002h.038Zm6.208-1.004q0-.512-.337-.784a1.2 1.2 0 0 0-.81-.279q-.181 0-.357.04c-.222.049-.468.051-.628-.111a2 2 0 0 1-.195-.24c-.142-.212-.266-.29-.266-.616c.672-.149.776-.161 1.07-.226c.294-.07.473-.117.978-.117q.745 0 1.335.279q.59.271.934.81q.343.531.343 1.315a2.6 2.6 0 0 1-.253 1.167a2.5 2.5 0 0 1-.68.855q-.434.35-.998.532q-.564.18-1.193.181a4.6 4.6 0 0 1-1.613-.266a5 5 0 0 1-.519-.233c-.427-.227-.602-.749-.337-1.153c.265-.394.804-.375 1.235-.175l.055.025q.428.182.92.182q.403 0 .694-.143q.297-.149.46-.414q.162-.267.162-.629m.337-2.625a3.2 3.2 0 0 1-.616.486a5.5 5.5 0 0 1-.68.363c-.3.13-.165-.347-.49-.318l-1.144.104c.19-.343 1.2-1.173 1.2-1.173q.123-.123.285-.278a19 19 0 0 1 .564-.5a.05.05 0 0 0 .016-.062a.06.06 0 0 0-.063-.033a3 3 0 0 1-.45.027q-.045.001-.09.005c-.114.009-.214-.02-.352-.005c-.15.013-.274 0-.434 0h-.903c-.256 0-.668-.064-.693-.32a4 4 0 0 1-.02-.324q0-.188.033-.44c.04-.312.344-.493.657-.493h3.389c.478 0 .955.248 1.093.706q.084.272.085.48q0 .428-.39.836z"/></svg>
|
|
@@ -1 +1 @@
|
|
|
1
|
-
<svg xmlns="http://www.w3.org/2000/svg" width="1em" height="1em" viewBox="0 0 24 24"><path fill="none" stroke="#646cff" stroke-width="2" d="m15 6l-6 6l6 6"/></svg>
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="1em" height="1em" viewBox="0 0 24 24"><path fill="none" stroke="#646cff" stroke-width="2" d="m15 6l-6 6l6 6"/></svg>
|
|
@@ -1 +1 @@
|
|
|
1
|
-
<svg xmlns="http://www.w3.org/2000/svg" width="1em" height="1em" viewBox="0 0 24 24"><path fill="none" stroke="#646cff" stroke-width="2" d="M17.333 9.333C16.398 7.36 14.358 6 12 6a6 6 0 1 0 6 6m.5-6v4h-4"/></svg>
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="1em" height="1em" viewBox="0 0 24 24"><path fill="none" stroke="#646cff" stroke-width="2" d="M17.333 9.333C16.398 7.36 14.358 6 12 6a6 6 0 1 0 6 6m.5-6v4h-4"/></svg>
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
|
|
2
|
-
<path d="M21 12a9 9 0 1 1-9-9c2.52 0 4.93 1 6.74 2.74L21 8"></path>
|
|
3
|
-
<path d="M21 3v5h-5"></path>
|
|
4
|
-
</svg>
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
|
|
2
|
+
<path d="M21 12a9 9 0 1 1-9-9c2.52 0 4.93 1 6.74 2.74L21 8"></path>
|
|
3
|
+
<path d="M21 3v5h-5"></path>
|
|
4
|
+
</svg>
|
|
@@ -1 +1 @@
|
|
|
1
|
-
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path fill="#646cff" d="M9.539 15.23q-2.398 0-4.065-1.666Q3.808 11.899 3.808 9.5t1.666-4.065T9.539 3.77t4.064 1.666T15.269 9.5q0 1.042-.369 2.017t-.97 1.668l5.909 5.907q.14.14.15.345q.009.203-.15.363q-.16.16-.354.16t-.354-.16l-5.908-5.908q-.75.639-1.725.989t-1.96.35m0-1q1.99 0 3.361-1.37q1.37-1.37 1.37-3.361T12.9 6.14T9.54 4.77q-1.991 0-3.361 1.37T4.808 9.5t1.37 3.36t3.36 1.37"/></svg>
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path fill="#646cff" d="M9.539 15.23q-2.398 0-4.065-1.666Q3.808 11.899 3.808 9.5t1.666-4.065T9.539 3.77t4.064 1.666T15.269 9.5q0 1.042-.369 2.017t-.97 1.668l5.909 5.907q.14.14.15.345q.009.203-.15.363q-.16.16-.354.16t-.354-.16l-5.908-5.908q-.75.639-1.725.989t-1.96.35m0-1q1.99 0 3.361-1.37q1.37-1.37 1.37-3.361T12.9 6.14T9.54 4.77q-1.991 0-3.361 1.37T4.808 9.5t1.37 3.36t3.36 1.37"/></svg>
|