vertex-notes 0.2.0 → 0.3.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/dist/{chunk-XGZKUOFI.js → chunk-4TVWJ4LN.js} +2 -2
- package/dist/{chunk-WM6QVD53.js → chunk-AU5U4RDS.js} +21 -13
- package/dist/chunk-AU5U4RDS.js.map +1 -0
- package/dist/commands/capture.js +2 -2
- package/dist/commands/daily.js +2 -2
- package/dist/commands/delete.js +2 -2
- package/dist/commands/edit.js +2 -2
- package/dist/commands/export.js +2 -2
- package/dist/commands/hello.js +1 -1
- package/dist/commands/help.js +1 -1
- package/dist/commands/howto.js +7 -1
- package/dist/commands/howto.js.map +1 -1
- package/dist/commands/import.js +2 -2
- package/dist/commands/interactive.js +2 -2
- package/dist/commands/login.js +1 -1
- package/dist/commands/new.js +2 -2
- package/dist/commands/notes.js +2 -2
- package/dist/commands/restore.js +2 -2
- package/dist/commands/search.js +2 -2
- package/dist/commands/status.js +2 -2
- package/dist/commands/syntax.js +7 -1
- package/dist/commands/syntax.js.map +1 -1
- package/dist/commands/tags.js +2 -2
- package/dist/commands/today.js +2 -2
- package/dist/commands/trash/empty.js +2 -2
- package/dist/commands/trash/index.js +2 -2
- package/dist/commands/view.js +2 -2
- package/dist/lib/client.js +2 -2
- package/dist/lib/md-to-tiptap.js +14 -11
- package/dist/lib/md-to-tiptap.js.map +1 -1
- package/package.json +1 -1
- package/dist/chunk-WM6QVD53.js.map +0 -1
- /package/dist/{chunk-XGZKUOFI.js.map → chunk-4TVWJ4LN.js.map} +0 -0
package/dist/commands/new.js
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import {
|
|
2
2
|
getClient,
|
|
3
3
|
getUserId
|
|
4
|
-
} from "../chunk-
|
|
4
|
+
} from "../chunk-4TVWJ4LN.js";
|
|
5
5
|
import "../chunk-PBF5EE4Y.js";
|
|
6
6
|
import {
|
|
7
7
|
createNote
|
|
8
|
-
} from "../chunk-
|
|
8
|
+
} from "../chunk-AU5U4RDS.js";
|
|
9
9
|
|
|
10
10
|
// src/commands/new.ts
|
|
11
11
|
import { Command, Args } from "@oclif/core";
|
package/dist/commands/notes.js
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import {
|
|
2
2
|
getClient,
|
|
3
3
|
getUserId
|
|
4
|
-
} from "../chunk-
|
|
4
|
+
} from "../chunk-4TVWJ4LN.js";
|
|
5
5
|
import "../chunk-PBF5EE4Y.js";
|
|
6
6
|
import {
|
|
7
7
|
listNotes
|
|
8
|
-
} from "../chunk-
|
|
8
|
+
} from "../chunk-AU5U4RDS.js";
|
|
9
9
|
|
|
10
10
|
// src/commands/notes.ts
|
|
11
11
|
import { Command } from "@oclif/core";
|
package/dist/commands/restore.js
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import {
|
|
2
2
|
getClient,
|
|
3
3
|
getUserId
|
|
4
|
-
} from "../chunk-
|
|
4
|
+
} from "../chunk-4TVWJ4LN.js";
|
|
5
5
|
import "../chunk-PBF5EE4Y.js";
|
|
6
6
|
import {
|
|
7
7
|
listNotes,
|
|
8
8
|
restoreNote
|
|
9
|
-
} from "../chunk-
|
|
9
|
+
} from "../chunk-AU5U4RDS.js";
|
|
10
10
|
|
|
11
11
|
// src/commands/restore.ts
|
|
12
12
|
import { Command, Args } from "@oclif/core";
|
package/dist/commands/search.js
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import {
|
|
2
2
|
getClient,
|
|
3
3
|
getUserId
|
|
4
|
-
} from "../chunk-
|
|
4
|
+
} from "../chunk-4TVWJ4LN.js";
|
|
5
5
|
import "../chunk-PBF5EE4Y.js";
|
|
6
6
|
import {
|
|
7
7
|
executeQuery
|
|
8
|
-
} from "../chunk-
|
|
8
|
+
} from "../chunk-AU5U4RDS.js";
|
|
9
9
|
|
|
10
10
|
// src/commands/search.ts
|
|
11
11
|
import { Command, Args } from "@oclif/core";
|
package/dist/commands/status.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import {
|
|
2
2
|
getClient,
|
|
3
3
|
getUserId
|
|
4
|
-
} from "../chunk-
|
|
4
|
+
} from "../chunk-4TVWJ4LN.js";
|
|
5
5
|
import {
|
|
6
6
|
loadConfig
|
|
7
7
|
} from "../chunk-PBF5EE4Y.js";
|
|
@@ -10,7 +10,7 @@ import {
|
|
|
10
10
|
formatFileSize,
|
|
11
11
|
getStorageInfo,
|
|
12
12
|
listNotes
|
|
13
|
-
} from "../chunk-
|
|
13
|
+
} from "../chunk-AU5U4RDS.js";
|
|
14
14
|
|
|
15
15
|
// src/commands/status.ts
|
|
16
16
|
import { Command } from "@oclif/core";
|
package/dist/commands/syntax.js
CHANGED
|
@@ -120,7 +120,13 @@ ${Y} \`\`\`${R}
|
|
|
120
120
|
|
|
121
121
|
${D} Also: gantt, pie, stateDiagram, flowchart, gitGraph, mindmap${R}
|
|
122
122
|
|
|
123
|
-
${C}${B} \u2501\u2501\u2501 MATH
|
|
123
|
+
${C}${B} \u2501\u2501\u2501 MATH (LaTeX) \u2501\u2501\u2501${R}
|
|
124
|
+
|
|
125
|
+
${C} Inline math (within text):${R}
|
|
126
|
+
${Y} The formula $E = mc^2$ is famous.${R}
|
|
127
|
+
${Y} Solve for $x$ where $ax^2 + bx + c = 0$.${R}
|
|
128
|
+
|
|
129
|
+
${C} Block math (standalone):${R}
|
|
124
130
|
${D} Use $$ on its own line to open and close. KaTeX syntax.${R}
|
|
125
131
|
|
|
126
132
|
${Y} $$${R}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/commands/syntax.ts"],"sourcesContent":["import { Command } from \"@oclif/core\";\n\nconst D = \"\\x1b[90m\";\nconst B = \"\\x1b[1m\";\nconst C = \"\\x1b[36m\";\nconst Y = \"\\x1b[33m\";\nconst G = \"\\x1b[32m\";\nconst P = \"\\x1b[35m\";\nconst R = \"\\x1b[0m\";\n\nexport default class Syntax extends Command {\n static override description = \"Show all Vertex markdown syntax for writing notes\";\n\n async run(): Promise<void> {\n this.log(`\n${B}${P} Vertex Markdown Syntax — Complete Reference${R}\n${D} For AI agents and humans writing Vertex notes from the terminal.${R}\n${D} ──────────────────────────────────────────────────────────${R}\n\n${C}${B} RULES${R}\n${D} • Each block must be separated by a blank line${R}\n${D} • First # Heading 1 in a note becomes the note title${R}\n${D} • Tags must start with a letter: #valid #123invalid${R}\n${D} • Wiki links are case-insensitive: [[My Note]] matches \"my note\"${R}\n${D} • Indent with spaces, not tabs${R}\n\n${C}${B} ━━━ TEXT & HEADINGS ━━━${R}\n\n${Y} # Heading 1${R} ${D}← note title${R}\n${Y} ## Heading 2${R} ${D}← section${R}\n${Y} ### Heading 3${R} ${D}← subsection${R}\n${Y} #### Heading 4${R} ${D}← minor heading${R}\n\n${Y} Plain paragraph text.${R} ${D}← just text on a line${R}\n${Y} **bold** *italic* \\`code\\` ~~strike~~${R}\n\n${C}${B} ━━━ LINKS & TAGS ━━━${R}\n\n${Y} [[Note Title]]${R} ${D}← wiki link (navigates to note)${R}\n${Y} #tagname${R} ${D}← tag (auto-created, purple pill)${R}\n${Y} #parent/child${R} ${D}← scoped tag (creates hierarchy)${R}\n${Y} #work/frontend${R} ${D}← example: parent=work, child=frontend${R}\n\n${C}${B} ━━━ LISTS ━━━${R}\n\n${Y} - Bullet item one${R}\n${Y} - Bullet item two${R}\n${Y} - Bullet item three${R}\n\n${Y} 1. Numbered item one${R}\n${Y} 2. Numbered item two${R}\n${Y} 3. Numbered item three${R}\n\n${Y} - [ ] Open todo task${R}\n${Y} - [x] Completed todo task${R}\n${Y} - [ ] Another open task #work${R} ${D}← tags work inside tasks${R}\n\n${C}${B} ━━━ BLOCKQUOTE ━━━${R}\n\n${Y} > Single line quote${R}\n\n${Y} > Multi-line quote${R}\n${Y} > continues with > prefix${R}\n${Y} > on each line${R}\n\n${C}${B} ━━━ DIVIDER ━━━${R}\n\n${Y} ---${R} ${D}← horizontal rule${R}\n\n${C}${B} ━━━ CODE BLOCK ━━━${R}\n\n${Y} \\`\\`\\`javascript${R}\n${Y} function greet(name) {${R}\n${Y} return \\`Hello, \\${name}!\\`;${R}\n${Y} }${R}\n${Y} \\`\\`\\`${R}\n\n${D} Languages: python, javascript, typescript, rust, go, java,${R}\n${D} c, cpp, csharp, ruby, php, swift, kotlin, sql, html, css,${R}\n${D} json, yaml, xml, markdown, bash, shell, dockerfile, graphql${R}\n\n${C}${B} ━━━ MERMAID DIAGRAM ━━━${R}\n${D} Use \\`\\`\\`mermaid to open, \\`\\`\\` to close. All Mermaid syntax works.${R}\n\n${D} Flowchart:${R}\n${Y} \\`\\`\\`mermaid${R}\n${Y} graph TD;${R}\n${Y} A[Start] --> B{Decision};${R}\n${Y} B -->|Yes| C[Do X];${R}\n${Y} B -->|No| D[Do Y];${R}\n${Y} C --> E[End];${R}\n${Y} D --> E;${R}\n${Y} \\`\\`\\`${R}\n\n${D} Sequence diagram:${R}\n${Y} \\`\\`\\`mermaid${R}\n${Y} sequenceDiagram${R}\n${Y} Client->>Server: Request${R}\n${Y} Server->>DB: Query${R}\n${Y} DB-->>Server: Result${R}\n${Y} Server-->>Client: Response${R}\n${Y} \\`\\`\\`${R}\n\n${D} ER diagram:${R}\n${Y} \\`\\`\\`mermaid${R}\n${Y} erDiagram${R}\n${Y} USER ||--o{ POST : writes${R}\n${Y} POST ||--o{ COMMENT : has${R}\n${Y} USER ||--o{ COMMENT : writes${R}\n${Y} \\`\\`\\`${R}\n\n${D} Class diagram:${R}\n${Y} \\`\\`\\`mermaid${R}\n${Y} classDiagram${R}\n${Y} class Animal {${R}\n${Y} +String name${R}\n${Y} +eat() void${R}\n${Y} }${R}\n${Y} Animal <|-- Dog${R}\n${Y} Animal <|-- Cat${R}\n${Y} \\`\\`\\`${R}\n\n${D} Also: gantt, pie, stateDiagram, flowchart, gitGraph, mindmap${R}\n\n${C}${B} ━━━ MATH BLOCK (LaTeX) ━━━${R}\n${D} Use $$ on its own line to open and close. KaTeX syntax.${R}\n\n${Y} $$${R}\n${Y} E = mc^2${R}\n${Y} $$${R}\n\n${Y} $$${R}\n${Y} \\\\frac{-b \\\\pm \\\\sqrt{b^2 - 4ac}}{2a}${R}\n${Y} $$${R}\n\n${Y} $$${R}\n${Y} \\\\sum_{i=1}^{n} i = \\\\frac{n(n+1)}{2}${R}\n${Y} $$${R}\n\n${Y} $$${R}\n${Y} \\\\int_0^\\\\infty e^{-x^2} dx = \\\\frac{\\\\sqrt{\\\\pi}}{2}${R}\n${Y} $$${R}\n\n${D} Common LaTeX: \\\\frac{a}{b} \\\\sqrt{x} x^{2} x_{i}${R}\n${D} \\\\sum \\\\prod \\\\int \\\\lim \\\\infty \\\\alpha \\\\beta \\\\pi${R}\n${D} \\\\text{label} \\\\mathbb{R} \\\\vec{v} \\\\hat{x} \\\\bar{x}${R}\n${D} Matrices: \\\\begin{pmatrix} a & b \\\\\\\\ c & d \\\\end{pmatrix}${R}\n\n${C}${B} ━━━ CALLOUT BLOCKS ━━━${R}\n${D} 4 variants: info, warning, error, tip${R}\n\n${Y} > [!info]${R}\n${Y} > This is an informational note.${R}\n\n${Y} > [!warning]${R}\n${Y} > Be careful about this.${R}\n\n${Y} > [!error]${R}\n${Y} > Something went wrong.${R}\n\n${Y} > [!tip]${R}\n${Y} > Helpful suggestion here.${R}\n\n${D} Multi-line callout:${R}\n${Y} > [!info]${R}\n${Y} > Line one of the callout.${R}\n${Y} > Line two continues here.${R}\n${Y} > Each line needs the > prefix.${R}\n\n${C}${B} ━━━ QUERY BLOCK (live search) ━━━${R}\n\n${Y} > [!query]${R}\n${Y} > type:todo status:open${R}\n\n${Y} > [!query]${R}\n${Y} > #work type:todo${R}\n\n${D} Queries: keyword, #tag, type:todo/code/heading, status:open/done${R}\n\n${C}${B} ━━━ INLINE LINK ━━━${R}\n\n${Y} [Link Text](https://example.com)${R}\n${D} Opens in new tab. Works in paragraphs, lists, todos, callouts.${R}\n\n${C}${B} ━━━ EMBED (link preview) ━━━${R}\n\n${Y} > [!embed]${R}\n${Y} > https://www.youtube.com/watch?v=VIDEO_ID${R}\n\n${Y} > [!embed]${R}\n${Y} > https://github.com/user/repo${R}\n${D} YouTube → embedded video player${R}\n${D} Other URLs → preview card with title, description, image${R}\n\n${C}${B} ━━━ IMAGE ━━━${R}\n\n${Y} ${R}\n\n${C}${B} ━━━ FILE ATTACHMENT ━━━${R}\n\n${Y} > [!file]${R}\n${Y} > [document.pdf](https://example.com/file.pdf)${R}\n${Y} > application/pdf 149780${R}\n\n${D} Format: > [filename](url) then > mimetype size_in_bytes${R}\n\n${D} ──────────────────────────────────────────────────────────${R}\n\n${C}${B} COMMANDS${R}\n ${G}vertex new \"Title\"${R} ${D}← create empty note${R}\n ${G}vertex edit \"Title\"${R} ${D}← edit in $EDITOR${R}\n ${G}vertex import file.md${R} ${D}← import markdown as new note${R}\n ${G}vertex import file.md -t \"T\"${R} ${D}← import with custom title${R}\n ${G}vertex export \"Title\"${R} ${D}← print as markdown${R}\n ${G}vertex export \"Title\" -o out.md${R} ${D}← save to file${R}\n ${G}vertex view \"Title\"${R} ${D}← quick view (same as export)${R}\n ${G}vertex syntax${R} ${D}← this reference${R}\n\n${C}${B} AI USAGE${R}\n${D} Any AI can create Vertex notes. Write a .md file using${R}\n${D} the syntax above, then:${R}\n\n ${G}vertex import note.md -t \"My Note\"${R}\n\n${D} Or edit an existing note directly:${R}\n\n ${G}vertex edit \"My Note\"${R}\n\n${D} The note will render with rich blocks (mermaid diagrams,${R}\n${D} LaTeX math, syntax-highlighted code, callouts, etc.)${R}\n${D} in the Vertex web app at ${P}https://vertex-alu.pages.dev${R}\n\n${C}${B} FULL EXAMPLE${R}\n${D} ──────────────────────────────────────────────────────────${R}\n${Y} # Project Notes${R}\n${Y} ${R}\n${Y} Overview of the #project with [[Related Note]] link.${R}\n${Y} ${R}\n${Y} ## Architecture${R}\n${Y} ${R}\n${Y} \\`\\`\\`mermaid${R}\n${Y} graph LR;${R}\n${Y} Client --> API --> DB;${R}\n${Y} \\`\\`\\`${R}\n${Y} ${R}\n${Y} ## Key Formula${R}\n${Y} ${R}\n${Y} $$${R}\n${Y} O(n \\\\log n)${R}\n${Y} $$${R}\n${Y} ${R}\n${Y} ## Code${R}\n${Y} ${R}\n${Y} \\`\\`\\`python${R}\n${Y} print(\"hello\")${R}\n${Y} \\`\\`\\`${R}\n${Y} ${R}\n${Y} > [!tip]${R}\n${Y} > Remember to test edge cases.${R}\n${Y} ${R}\n${Y} ## Tasks${R}\n${Y} ${R}\n${Y} - [x] Design complete${R}\n${Y} - [ ] Implementation pending #work${R}\n${D} ──────────────────────────────────────────────────────────${R}\n`);\n }\n}\n"],"mappings":"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","names":[]}
|
|
1
|
+
{"version":3,"sources":["../../src/commands/syntax.ts"],"sourcesContent":["import { Command } from \"@oclif/core\";\n\nconst D = \"\\x1b[90m\";\nconst B = \"\\x1b[1m\";\nconst C = \"\\x1b[36m\";\nconst Y = \"\\x1b[33m\";\nconst G = \"\\x1b[32m\";\nconst P = \"\\x1b[35m\";\nconst R = \"\\x1b[0m\";\n\nexport default class Syntax extends Command {\n static override description = \"Show all Vertex markdown syntax for writing notes\";\n\n async run(): Promise<void> {\n this.log(`\n${B}${P} Vertex Markdown Syntax — Complete Reference${R}\n${D} For AI agents and humans writing Vertex notes from the terminal.${R}\n${D} ──────────────────────────────────────────────────────────${R}\n\n${C}${B} RULES${R}\n${D} • Each block must be separated by a blank line${R}\n${D} • First # Heading 1 in a note becomes the note title${R}\n${D} • Tags must start with a letter: #valid #123invalid${R}\n${D} • Wiki links are case-insensitive: [[My Note]] matches \"my note\"${R}\n${D} • Indent with spaces, not tabs${R}\n\n${C}${B} ━━━ TEXT & HEADINGS ━━━${R}\n\n${Y} # Heading 1${R} ${D}← note title${R}\n${Y} ## Heading 2${R} ${D}← section${R}\n${Y} ### Heading 3${R} ${D}← subsection${R}\n${Y} #### Heading 4${R} ${D}← minor heading${R}\n\n${Y} Plain paragraph text.${R} ${D}← just text on a line${R}\n${Y} **bold** *italic* \\`code\\` ~~strike~~${R}\n\n${C}${B} ━━━ LINKS & TAGS ━━━${R}\n\n${Y} [[Note Title]]${R} ${D}← wiki link (navigates to note)${R}\n${Y} #tagname${R} ${D}← tag (auto-created, purple pill)${R}\n${Y} #parent/child${R} ${D}← scoped tag (creates hierarchy)${R}\n${Y} #work/frontend${R} ${D}← example: parent=work, child=frontend${R}\n\n${C}${B} ━━━ LISTS ━━━${R}\n\n${Y} - Bullet item one${R}\n${Y} - Bullet item two${R}\n${Y} - Bullet item three${R}\n\n${Y} 1. Numbered item one${R}\n${Y} 2. Numbered item two${R}\n${Y} 3. Numbered item three${R}\n\n${Y} - [ ] Open todo task${R}\n${Y} - [x] Completed todo task${R}\n${Y} - [ ] Another open task #work${R} ${D}← tags work inside tasks${R}\n\n${C}${B} ━━━ BLOCKQUOTE ━━━${R}\n\n${Y} > Single line quote${R}\n\n${Y} > Multi-line quote${R}\n${Y} > continues with > prefix${R}\n${Y} > on each line${R}\n\n${C}${B} ━━━ DIVIDER ━━━${R}\n\n${Y} ---${R} ${D}← horizontal rule${R}\n\n${C}${B} ━━━ CODE BLOCK ━━━${R}\n\n${Y} \\`\\`\\`javascript${R}\n${Y} function greet(name) {${R}\n${Y} return \\`Hello, \\${name}!\\`;${R}\n${Y} }${R}\n${Y} \\`\\`\\`${R}\n\n${D} Languages: python, javascript, typescript, rust, go, java,${R}\n${D} c, cpp, csharp, ruby, php, swift, kotlin, sql, html, css,${R}\n${D} json, yaml, xml, markdown, bash, shell, dockerfile, graphql${R}\n\n${C}${B} ━━━ MERMAID DIAGRAM ━━━${R}\n${D} Use \\`\\`\\`mermaid to open, \\`\\`\\` to close. All Mermaid syntax works.${R}\n\n${D} Flowchart:${R}\n${Y} \\`\\`\\`mermaid${R}\n${Y} graph TD;${R}\n${Y} A[Start] --> B{Decision};${R}\n${Y} B -->|Yes| C[Do X];${R}\n${Y} B -->|No| D[Do Y];${R}\n${Y} C --> E[End];${R}\n${Y} D --> E;${R}\n${Y} \\`\\`\\`${R}\n\n${D} Sequence diagram:${R}\n${Y} \\`\\`\\`mermaid${R}\n${Y} sequenceDiagram${R}\n${Y} Client->>Server: Request${R}\n${Y} Server->>DB: Query${R}\n${Y} DB-->>Server: Result${R}\n${Y} Server-->>Client: Response${R}\n${Y} \\`\\`\\`${R}\n\n${D} ER diagram:${R}\n${Y} \\`\\`\\`mermaid${R}\n${Y} erDiagram${R}\n${Y} USER ||--o{ POST : writes${R}\n${Y} POST ||--o{ COMMENT : has${R}\n${Y} USER ||--o{ COMMENT : writes${R}\n${Y} \\`\\`\\`${R}\n\n${D} Class diagram:${R}\n${Y} \\`\\`\\`mermaid${R}\n${Y} classDiagram${R}\n${Y} class Animal {${R}\n${Y} +String name${R}\n${Y} +eat() void${R}\n${Y} }${R}\n${Y} Animal <|-- Dog${R}\n${Y} Animal <|-- Cat${R}\n${Y} \\`\\`\\`${R}\n\n${D} Also: gantt, pie, stateDiagram, flowchart, gitGraph, mindmap${R}\n\n${C}${B} ━━━ MATH (LaTeX) ━━━${R}\n\n${C} Inline math (within text):${R}\n${Y} The formula $E = mc^2$ is famous.${R}\n${Y} Solve for $x$ where $ax^2 + bx + c = 0$.${R}\n\n${C} Block math (standalone):${R}\n${D} Use $$ on its own line to open and close. KaTeX syntax.${R}\n\n${Y} $$${R}\n${Y} E = mc^2${R}\n${Y} $$${R}\n\n${Y} $$${R}\n${Y} \\\\frac{-b \\\\pm \\\\sqrt{b^2 - 4ac}}{2a}${R}\n${Y} $$${R}\n\n${Y} $$${R}\n${Y} \\\\sum_{i=1}^{n} i = \\\\frac{n(n+1)}{2}${R}\n${Y} $$${R}\n\n${Y} $$${R}\n${Y} \\\\int_0^\\\\infty e^{-x^2} dx = \\\\frac{\\\\sqrt{\\\\pi}}{2}${R}\n${Y} $$${R}\n\n${D} Common LaTeX: \\\\frac{a}{b} \\\\sqrt{x} x^{2} x_{i}${R}\n${D} \\\\sum \\\\prod \\\\int \\\\lim \\\\infty \\\\alpha \\\\beta \\\\pi${R}\n${D} \\\\text{label} \\\\mathbb{R} \\\\vec{v} \\\\hat{x} \\\\bar{x}${R}\n${D} Matrices: \\\\begin{pmatrix} a & b \\\\\\\\ c & d \\\\end{pmatrix}${R}\n\n${C}${B} ━━━ CALLOUT BLOCKS ━━━${R}\n${D} 4 variants: info, warning, error, tip${R}\n\n${Y} > [!info]${R}\n${Y} > This is an informational note.${R}\n\n${Y} > [!warning]${R}\n${Y} > Be careful about this.${R}\n\n${Y} > [!error]${R}\n${Y} > Something went wrong.${R}\n\n${Y} > [!tip]${R}\n${Y} > Helpful suggestion here.${R}\n\n${D} Multi-line callout:${R}\n${Y} > [!info]${R}\n${Y} > Line one of the callout.${R}\n${Y} > Line two continues here.${R}\n${Y} > Each line needs the > prefix.${R}\n\n${C}${B} ━━━ QUERY BLOCK (live search) ━━━${R}\n\n${Y} > [!query]${R}\n${Y} > type:todo status:open${R}\n\n${Y} > [!query]${R}\n${Y} > #work type:todo${R}\n\n${D} Queries: keyword, #tag, type:todo/code/heading, status:open/done${R}\n\n${C}${B} ━━━ INLINE LINK ━━━${R}\n\n${Y} [Link Text](https://example.com)${R}\n${D} Opens in new tab. Works in paragraphs, lists, todos, callouts.${R}\n\n${C}${B} ━━━ EMBED (link preview) ━━━${R}\n\n${Y} > [!embed]${R}\n${Y} > https://www.youtube.com/watch?v=VIDEO_ID${R}\n\n${Y} > [!embed]${R}\n${Y} > https://github.com/user/repo${R}\n${D} YouTube → embedded video player${R}\n${D} Other URLs → preview card with title, description, image${R}\n\n${C}${B} ━━━ IMAGE ━━━${R}\n\n${Y} ${R}\n\n${C}${B} ━━━ FILE ATTACHMENT ━━━${R}\n\n${Y} > [!file]${R}\n${Y} > [document.pdf](https://example.com/file.pdf)${R}\n${Y} > application/pdf 149780${R}\n\n${D} Format: > [filename](url) then > mimetype size_in_bytes${R}\n\n${D} ──────────────────────────────────────────────────────────${R}\n\n${C}${B} COMMANDS${R}\n ${G}vertex new \"Title\"${R} ${D}← create empty note${R}\n ${G}vertex edit \"Title\"${R} ${D}← edit in $EDITOR${R}\n ${G}vertex import file.md${R} ${D}← import markdown as new note${R}\n ${G}vertex import file.md -t \"T\"${R} ${D}← import with custom title${R}\n ${G}vertex export \"Title\"${R} ${D}← print as markdown${R}\n ${G}vertex export \"Title\" -o out.md${R} ${D}← save to file${R}\n ${G}vertex view \"Title\"${R} ${D}← quick view (same as export)${R}\n ${G}vertex syntax${R} ${D}← this reference${R}\n\n${C}${B} AI USAGE${R}\n${D} Any AI can create Vertex notes. Write a .md file using${R}\n${D} the syntax above, then:${R}\n\n ${G}vertex import note.md -t \"My Note\"${R}\n\n${D} Or edit an existing note directly:${R}\n\n ${G}vertex edit \"My Note\"${R}\n\n${D} The note will render with rich blocks (mermaid diagrams,${R}\n${D} LaTeX math, syntax-highlighted code, callouts, etc.)${R}\n${D} in the Vertex web app at ${P}https://vertex-alu.pages.dev${R}\n\n${C}${B} FULL EXAMPLE${R}\n${D} ──────────────────────────────────────────────────────────${R}\n${Y} # Project Notes${R}\n${Y} ${R}\n${Y} Overview of the #project with [[Related Note]] link.${R}\n${Y} ${R}\n${Y} ## Architecture${R}\n${Y} ${R}\n${Y} \\`\\`\\`mermaid${R}\n${Y} graph LR;${R}\n${Y} Client --> API --> DB;${R}\n${Y} \\`\\`\\`${R}\n${Y} ${R}\n${Y} ## Key Formula${R}\n${Y} ${R}\n${Y} $$${R}\n${Y} O(n \\\\log n)${R}\n${Y} $$${R}\n${Y} ${R}\n${Y} ## Code${R}\n${Y} ${R}\n${Y} \\`\\`\\`python${R}\n${Y} print(\"hello\")${R}\n${Y} \\`\\`\\`${R}\n${Y} ${R}\n${Y} > [!tip]${R}\n${Y} > Remember to test edge cases.${R}\n${Y} ${R}\n${Y} ## Tasks${R}\n${Y} ${R}\n${Y} - [x] Design complete${R}\n${Y} - [ ] Implementation pending #work${R}\n${D} ──────────────────────────────────────────────────────────${R}\n`);\n }\n}\n"],"mappings":"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","names":[]}
|
package/dist/commands/tags.js
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import {
|
|
2
2
|
getClient,
|
|
3
3
|
getUserId
|
|
4
|
-
} from "../chunk-
|
|
4
|
+
} from "../chunk-4TVWJ4LN.js";
|
|
5
5
|
import "../chunk-PBF5EE4Y.js";
|
|
6
6
|
import {
|
|
7
7
|
getUserTags
|
|
8
|
-
} from "../chunk-
|
|
8
|
+
} from "../chunk-AU5U4RDS.js";
|
|
9
9
|
|
|
10
10
|
// src/commands/tags.ts
|
|
11
11
|
import { Command } from "@oclif/core";
|
package/dist/commands/today.js
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import {
|
|
2
2
|
getClient,
|
|
3
3
|
getUserId
|
|
4
|
-
} from "../chunk-
|
|
4
|
+
} from "../chunk-4TVWJ4LN.js";
|
|
5
5
|
import "../chunk-PBF5EE4Y.js";
|
|
6
6
|
import {
|
|
7
7
|
listNotes
|
|
8
|
-
} from "../chunk-
|
|
8
|
+
} from "../chunk-AU5U4RDS.js";
|
|
9
9
|
|
|
10
10
|
// src/commands/today.ts
|
|
11
11
|
import { Command } from "@oclif/core";
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import {
|
|
2
2
|
getClient,
|
|
3
3
|
getUserId
|
|
4
|
-
} from "../../chunk-
|
|
4
|
+
} from "../../chunk-4TVWJ4LN.js";
|
|
5
5
|
import "../../chunk-PBF5EE4Y.js";
|
|
6
6
|
import {
|
|
7
7
|
emptyTrash
|
|
8
|
-
} from "../../chunk-
|
|
8
|
+
} from "../../chunk-AU5U4RDS.js";
|
|
9
9
|
|
|
10
10
|
// src/commands/trash/empty.ts
|
|
11
11
|
import { Command } from "@oclif/core";
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import {
|
|
2
2
|
getClient,
|
|
3
3
|
getUserId
|
|
4
|
-
} from "../../chunk-
|
|
4
|
+
} from "../../chunk-4TVWJ4LN.js";
|
|
5
5
|
import "../../chunk-PBF5EE4Y.js";
|
|
6
6
|
import {
|
|
7
7
|
listNotes
|
|
8
|
-
} from "../../chunk-
|
|
8
|
+
} from "../../chunk-AU5U4RDS.js";
|
|
9
9
|
|
|
10
10
|
// src/commands/trash/index.ts
|
|
11
11
|
import { Command } from "@oclif/core";
|
package/dist/commands/view.js
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import {
|
|
2
2
|
getClient,
|
|
3
3
|
getUserId
|
|
4
|
-
} from "../chunk-
|
|
4
|
+
} from "../chunk-4TVWJ4LN.js";
|
|
5
5
|
import "../chunk-PBF5EE4Y.js";
|
|
6
6
|
import {
|
|
7
7
|
exportNoteAsMarkdown,
|
|
8
8
|
listNotes
|
|
9
|
-
} from "../chunk-
|
|
9
|
+
} from "../chunk-AU5U4RDS.js";
|
|
10
10
|
|
|
11
11
|
// src/commands/view.ts
|
|
12
12
|
import { Command, Args } from "@oclif/core";
|
package/dist/lib/client.js
CHANGED
package/dist/lib/md-to-tiptap.js
CHANGED
|
@@ -17,30 +17,30 @@ function markdownToTiptap(md) {
|
|
|
17
17
|
i++;
|
|
18
18
|
continue;
|
|
19
19
|
}
|
|
20
|
-
if (line.match(/^```mermaid
|
|
20
|
+
if (line.match(/^```mermaid/)) {
|
|
21
21
|
const mermaidLines = [];
|
|
22
22
|
i++;
|
|
23
|
-
while (i < lines.length && !lines[i].
|
|
23
|
+
while (i < lines.length && !lines[i].startsWith("```")) {
|
|
24
24
|
mermaidLines.push(lines[i]);
|
|
25
25
|
i++;
|
|
26
26
|
}
|
|
27
|
-
i++;
|
|
27
|
+
if (i < lines.length) i++;
|
|
28
28
|
nodes.push({
|
|
29
29
|
type: "mermaidBlock",
|
|
30
30
|
content: [{ type: "text", text: mermaidLines.join("\n") }]
|
|
31
31
|
});
|
|
32
32
|
continue;
|
|
33
33
|
}
|
|
34
|
-
if (line.
|
|
35
|
-
const langMatch = line.match(/^```(\w*)
|
|
34
|
+
if (line.startsWith("```")) {
|
|
35
|
+
const langMatch = line.match(/^```(\w*)/);
|
|
36
36
|
const language = langMatch?.[1] || "plaintext";
|
|
37
37
|
const codeLines = [];
|
|
38
38
|
i++;
|
|
39
|
-
while (i < lines.length && !lines[i].
|
|
39
|
+
while (i < lines.length && !lines[i].startsWith("```")) {
|
|
40
40
|
codeLines.push(lines[i]);
|
|
41
41
|
i++;
|
|
42
42
|
}
|
|
43
|
-
i++;
|
|
43
|
+
if (i < lines.length) i++;
|
|
44
44
|
nodes.push({
|
|
45
45
|
type: "codeBlock",
|
|
46
46
|
attrs: { language },
|
|
@@ -48,14 +48,14 @@ function markdownToTiptap(md) {
|
|
|
48
48
|
});
|
|
49
49
|
continue;
|
|
50
50
|
}
|
|
51
|
-
if (line.
|
|
51
|
+
if (line.startsWith("$$")) {
|
|
52
52
|
const mathLines = [];
|
|
53
53
|
i++;
|
|
54
|
-
while (i < lines.length && !lines[i].
|
|
54
|
+
while (i < lines.length && !lines[i].startsWith("$$")) {
|
|
55
55
|
mathLines.push(lines[i]);
|
|
56
56
|
i++;
|
|
57
57
|
}
|
|
58
|
-
i++;
|
|
58
|
+
if (i < lines.length) i++;
|
|
59
59
|
nodes.push({
|
|
60
60
|
type: "mathBlock",
|
|
61
61
|
content: [{ type: "text", text: mathLines.join("\n") }]
|
|
@@ -211,8 +211,9 @@ function markdownToTiptap(md) {
|
|
|
211
211
|
}
|
|
212
212
|
function parseInline(text) {
|
|
213
213
|
if (!text) return [];
|
|
214
|
+
if (text.length > 1e4) return [{ type: "text", text }];
|
|
214
215
|
const nodes = [];
|
|
215
|
-
const regex = /(\*\*(
|
|
216
|
+
const regex = /(\*\*([^*]+)\*\*|\*([^*]+)\*|`([^`]+)`|~~([^~]+)~~|\[\[([^\]]+)\]\]|#([a-zA-Z][a-zA-Z0-9_/-]*)|\[([^\]]+)\]\(([^)]+)\)|(?<!\$)\$([^\$\n]+)\$(?!\$))/g;
|
|
216
217
|
let lastIndex = 0;
|
|
217
218
|
let match;
|
|
218
219
|
while ((match = regex.exec(text)) !== null) {
|
|
@@ -233,6 +234,8 @@ function parseInline(text) {
|
|
|
233
234
|
nodes.push({ type: "text", text: `#${match[7]}` });
|
|
234
235
|
} else if (match[8] && match[9]) {
|
|
235
236
|
nodes.push({ type: "text", text: match[8], marks: [{ type: "link", attrs: { href: match[9], target: "_blank" } }] });
|
|
237
|
+
} else if (match[10]) {
|
|
238
|
+
nodes.push({ type: "inlineMath", attrs: { formula: match[10] } });
|
|
236
239
|
}
|
|
237
240
|
lastIndex = match.index + match[0].length;
|
|
238
241
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/lib/md-to-tiptap.ts"],"sourcesContent":["interface TiptapNode {\n type: string;\n attrs?: Record<string, unknown>;\n content?: TiptapNode[];\n text?: string;\n marks?: Array<{ type: string; attrs?: Record<string, unknown> }>;\n}\n\nexport function markdownToTiptap(md: string): Record<string, unknown> {\n const lines = md.split(\"\\n\");\n const nodes: TiptapNode[] = [];\n let i = 0;\n\n while (i < lines.length) {\n const line = lines[i];\n\n if (line.match(/^#{1,4}\\s/)) {\n const match = line.match(/^(#{1,4})\\s(.*)$/);\n if (match) {\n nodes.push({\n type: \"heading\",\n attrs: { level: match[1].length },\n content: parseInline(match[2]),\n });\n }\n i++;\n continue;\n }\n\n if (line.match(/^```mermaid\\s*$/)) {\n const mermaidLines: string[] = [];\n i++;\n while (i < lines.length && !lines[i].match(/^```\\s*$/)) {\n mermaidLines.push(lines[i]);\n i++;\n }\n i++;\n nodes.push({\n type: \"mermaidBlock\",\n content: [{ type: \"text\", text: mermaidLines.join(\"\\n\") }],\n });\n continue;\n }\n\n if (line.match(/^```/)) {\n const langMatch = line.match(/^```(\\w*)$/);\n const language = langMatch?.[1] || \"plaintext\";\n const codeLines: string[] = [];\n i++;\n while (i < lines.length && !lines[i].match(/^```\\s*$/)) {\n codeLines.push(lines[i]);\n i++;\n }\n i++;\n nodes.push({\n type: \"codeBlock\",\n attrs: { language },\n content: [{ type: \"text\", text: codeLines.join(\"\\n\") }],\n });\n continue;\n }\n\n if (line.match(/^\\$\\$\\s*$/)) {\n const mathLines: string[] = [];\n i++;\n while (i < lines.length && !lines[i].match(/^\\$\\$\\s*$/)) {\n mathLines.push(lines[i]);\n i++;\n }\n i++;\n nodes.push({\n type: \"mathBlock\",\n content: [{ type: \"text\", text: mathLines.join(\"\\n\") }],\n });\n continue;\n }\n\n if (line.match(/^>\\s*\\[!(\\w+)\\]\\s*$/)) {\n const variantMatch = line.match(/^>\\s*\\[!(\\w+)\\]\\s*$/);\n const variant = variantMatch?.[1] ?? \"info\";\n\n if (variant === \"query\") {\n const queryLines: string[] = [];\n i++;\n while (i < lines.length && lines[i].match(/^>\\s/)) {\n queryLines.push(lines[i].replace(/^>\\s?/, \"\"));\n i++;\n }\n nodes.push({\n type: \"queryBlock\",\n content: [{ type: \"text\", text: queryLines.join(\"\\n\") }],\n });\n continue;\n }\n\n if (variant === \"embed\") {\n i++;\n const embedUrl = lines[i]?.replace(/^>\\s?/, \"\").trim() ?? \"\";\n i++;\n nodes.push({\n type: \"linkPreview\",\n attrs: { url: embedUrl },\n });\n continue;\n }\n\n if (variant === \"file\") {\n i++;\n const linkLine = lines[i]?.replace(/^>\\s?/, \"\") ?? \"\";\n const linkMatch = linkLine.match(/^\\[(.+?)\\]\\((.+?)\\)$/);\n i++;\n const metaLine = lines[i]?.replace(/^>\\s?/, \"\") ?? \"\";\n const metaParts = metaLine.split(\" \");\n i++;\n nodes.push({\n type: \"fileBlock\",\n attrs: {\n filename: linkMatch?.[1] ?? \"file\",\n src: linkMatch?.[2] ?? \"\",\n filetype: metaParts[0] ?? \"\",\n filesize: parseInt(metaParts[1] ?? \"0\", 10) || 0,\n },\n });\n continue;\n }\n\n const calloutLines: string[] = [];\n i++;\n while (i < lines.length && lines[i].match(/^>\\s/)) {\n calloutLines.push(lines[i].replace(/^>\\s?/, \"\"));\n i++;\n }\n nodes.push({\n type: \"calloutBlock\",\n attrs: { variant },\n content: [{ type: \"paragraph\", content: parseInline(calloutLines.join(\"\\n\")) }],\n });\n continue;\n }\n\n if (line.match(/^>\\s/)) {\n const quoteLines: string[] = [];\n while (i < lines.length && lines[i].match(/^>\\s?/)) {\n quoteLines.push(lines[i].replace(/^>\\s?/, \"\"));\n i++;\n }\n nodes.push({\n type: \"blockquote\",\n content: [{ type: \"paragraph\", content: parseInline(quoteLines.join(\"\\n\")) }],\n });\n continue;\n }\n\n if (line.match(/^---\\s*$/)) {\n nodes.push({ type: \"horizontalRule\" });\n i++;\n continue;\n }\n\n if (line.match(/^!\\[.*?\\]\\(.*?\\)$/)) {\n const imgMatch = line.match(/^!\\[(.*?)\\]\\((.*?)\\)$/);\n if (imgMatch) {\n nodes.push({\n type: \"image\",\n attrs: { src: imgMatch[2], alt: imgMatch[1] },\n });\n }\n i++;\n continue;\n }\n\n if (line.match(/^[-*]\\s\\[[ x]\\]\\s/)) {\n const taskItems: TiptapNode[] = [];\n while (i < lines.length && lines[i].match(/^[-*]\\s\\[[ x]\\]\\s/)) {\n const m = lines[i].match(/^[-*]\\s\\[([ x])\\]\\s(.*)$/);\n if (m) {\n taskItems.push({\n type: \"taskItem\",\n attrs: { checked: m[1] === \"x\" },\n content: [{ type: \"paragraph\", content: parseInline(m[2]) }],\n });\n }\n i++;\n }\n nodes.push({ type: \"taskList\", content: taskItems });\n continue;\n }\n\n if (line.match(/^[-*]\\s/)) {\n const items: TiptapNode[] = [];\n while (i < lines.length && lines[i].match(/^[-*]\\s/)) {\n const text = lines[i].replace(/^[-*]\\s/, \"\");\n items.push({\n type: \"listItem\",\n content: [{ type: \"paragraph\", content: parseInline(text) }],\n });\n i++;\n }\n nodes.push({ type: \"bulletList\", content: items });\n continue;\n }\n\n if (line.match(/^\\d+\\.\\s/)) {\n const items: TiptapNode[] = [];\n while (i < lines.length && lines[i].match(/^\\d+\\.\\s/)) {\n const text = lines[i].replace(/^\\d+\\.\\s/, \"\");\n items.push({\n type: \"listItem\",\n content: [{ type: \"paragraph\", content: parseInline(text) }],\n });\n i++;\n }\n nodes.push({ type: \"orderedList\", content: items });\n continue;\n }\n\n if (line.trim() === \"\") {\n i++;\n continue;\n }\n\n const paraLines: string[] = [];\n while (\n i < lines.length &&\n lines[i].trim() !== \"\" &&\n !lines[i].match(/^#{1,4}\\s/) &&\n !lines[i].match(/^```/) &&\n !lines[i].match(/^\\$\\$/) &&\n !lines[i].match(/^---\\s*$/) &&\n !lines[i].match(/^[-*]\\s/) &&\n !lines[i].match(/^\\d+\\.\\s/) &&\n !lines[i].match(/^>\\s/) &&\n !lines[i].match(/^!\\[/)\n ) {\n paraLines.push(lines[i]);\n i++;\n }\n nodes.push({\n type: \"paragraph\",\n content: parseInline(paraLines.join(\"\\n\")),\n });\n }\n\n if (nodes.length === 0) {\n nodes.push({ type: \"paragraph\" });\n }\n\n return { type: \"doc\", content: nodes };\n}\n\nfunction parseInline(text: string): TiptapNode[] {\n if (!text) return [];\n\n const nodes: TiptapNode[] = [];\n const regex = /(\\*\\*(.+?)\\*\\*|\\*(.+?)\\*|`(.+?)`|~~(.+?)~~|\\[\\[(.+?)\\]\\]|#([a-zA-Z][a-zA-Z0-9_/-]*)|\\[([^\\]]+?)\\]\\(([^)]+?)\\))/g;\n let lastIndex = 0;\n let match: RegExpExecArray | null;\n\n while ((match = regex.exec(text)) !== null) {\n if (match.index > lastIndex) {\n nodes.push({ type: \"text\", text: text.slice(lastIndex, match.index) });\n }\n\n if (match[2]) {\n nodes.push({ type: \"text\", text: match[2], marks: [{ type: \"bold\" }] });\n } else if (match[3]) {\n nodes.push({ type: \"text\", text: match[3], marks: [{ type: \"italic\" }] });\n } else if (match[4]) {\n nodes.push({ type: \"text\", text: match[4], marks: [{ type: \"code\" }] });\n } else if (match[5]) {\n nodes.push({ type: \"text\", text: match[5], marks: [{ type: \"strike\" }] });\n } else if (match[6]) {\n nodes.push({ type: \"text\", text: `[[${match[6]}]]` });\n } else if (match[7]) {\n nodes.push({ type: \"text\", text: `#${match[7]}` });\n } else if (match[8] && match[9]) {\n nodes.push({ type: \"text\", text: match[8], marks: [{ type: \"link\", attrs: { href: match[9], target: \"_blank\" } }] });\n }\n\n lastIndex = match.index + match[0].length;\n }\n\n if (lastIndex < text.length) {\n nodes.push({ type: \"text\", text: text.slice(lastIndex) });\n }\n\n return nodes.length > 0 ? nodes : [{ type: \"text\", text: text || \" \" }];\n}\n"],"mappings":"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","names":[]}
|
|
1
|
+
{"version":3,"sources":["../../src/lib/md-to-tiptap.ts"],"sourcesContent":["interface TiptapNode {\n type: string;\n attrs?: Record<string, unknown>;\n content?: TiptapNode[];\n text?: string;\n marks?: Array<{ type: string; attrs?: Record<string, unknown> }>;\n}\n\nexport function markdownToTiptap(md: string): Record<string, unknown> {\n const lines = md.split(\"\\n\");\n const nodes: TiptapNode[] = [];\n let i = 0;\n\n while (i < lines.length) {\n const line = lines[i];\n\n if (line.match(/^#{1,4}\\s/)) {\n const match = line.match(/^(#{1,4})\\s(.*)$/);\n if (match) {\n nodes.push({\n type: \"heading\",\n attrs: { level: match[1].length },\n content: parseInline(match[2]),\n });\n }\n i++;\n continue;\n }\n\n if (line.match(/^```mermaid/)) {\n const mermaidLines: string[] = [];\n i++;\n while (i < lines.length && !lines[i].startsWith(\"```\")) {\n mermaidLines.push(lines[i]);\n i++;\n }\n if (i < lines.length) i++;\n nodes.push({\n type: \"mermaidBlock\",\n content: [{ type: \"text\", text: mermaidLines.join(\"\\n\") }],\n });\n continue;\n }\n\n if (line.startsWith(\"```\")) {\n const langMatch = line.match(/^```(\\w*)/);\n const language = langMatch?.[1] || \"plaintext\";\n const codeLines: string[] = [];\n i++;\n while (i < lines.length && !lines[i].startsWith(\"```\")) {\n codeLines.push(lines[i]);\n i++;\n }\n if (i < lines.length) i++;\n nodes.push({\n type: \"codeBlock\",\n attrs: { language },\n content: [{ type: \"text\", text: codeLines.join(\"\\n\") }],\n });\n continue;\n }\n\n if (line.startsWith(\"$$\")) {\n const mathLines: string[] = [];\n i++;\n while (i < lines.length && !lines[i].startsWith(\"$$\")) {\n mathLines.push(lines[i]);\n i++;\n }\n if (i < lines.length) i++;\n nodes.push({\n type: \"mathBlock\",\n content: [{ type: \"text\", text: mathLines.join(\"\\n\") }],\n });\n continue;\n }\n\n if (line.match(/^>\\s*\\[!(\\w+)\\]\\s*$/)) {\n const variantMatch = line.match(/^>\\s*\\[!(\\w+)\\]\\s*$/);\n const variant = variantMatch?.[1] ?? \"info\";\n\n if (variant === \"query\") {\n const queryLines: string[] = [];\n i++;\n while (i < lines.length && lines[i].match(/^>\\s/)) {\n queryLines.push(lines[i].replace(/^>\\s?/, \"\"));\n i++;\n }\n nodes.push({\n type: \"queryBlock\",\n content: [{ type: \"text\", text: queryLines.join(\"\\n\") }],\n });\n continue;\n }\n\n if (variant === \"embed\") {\n i++;\n const embedUrl = lines[i]?.replace(/^>\\s?/, \"\").trim() ?? \"\";\n i++;\n nodes.push({\n type: \"linkPreview\",\n attrs: { url: embedUrl },\n });\n continue;\n }\n\n if (variant === \"file\") {\n i++;\n const linkLine = lines[i]?.replace(/^>\\s?/, \"\") ?? \"\";\n const linkMatch = linkLine.match(/^\\[(.+?)\\]\\((.+?)\\)$/);\n i++;\n const metaLine = lines[i]?.replace(/^>\\s?/, \"\") ?? \"\";\n const metaParts = metaLine.split(\" \");\n i++;\n nodes.push({\n type: \"fileBlock\",\n attrs: {\n filename: linkMatch?.[1] ?? \"file\",\n src: linkMatch?.[2] ?? \"\",\n filetype: metaParts[0] ?? \"\",\n filesize: parseInt(metaParts[1] ?? \"0\", 10) || 0,\n },\n });\n continue;\n }\n\n const calloutLines: string[] = [];\n i++;\n while (i < lines.length && lines[i].match(/^>\\s/)) {\n calloutLines.push(lines[i].replace(/^>\\s?/, \"\"));\n i++;\n }\n nodes.push({\n type: \"calloutBlock\",\n attrs: { variant },\n content: [{ type: \"paragraph\", content: parseInline(calloutLines.join(\"\\n\")) }],\n });\n continue;\n }\n\n if (line.match(/^>\\s/)) {\n const quoteLines: string[] = [];\n while (i < lines.length && lines[i].match(/^>\\s?/)) {\n quoteLines.push(lines[i].replace(/^>\\s?/, \"\"));\n i++;\n }\n nodes.push({\n type: \"blockquote\",\n content: [{ type: \"paragraph\", content: parseInline(quoteLines.join(\"\\n\")) }],\n });\n continue;\n }\n\n if (line.match(/^---\\s*$/)) {\n nodes.push({ type: \"horizontalRule\" });\n i++;\n continue;\n }\n\n if (line.match(/^!\\[.*?\\]\\(.*?\\)$/)) {\n const imgMatch = line.match(/^!\\[(.*?)\\]\\((.*?)\\)$/);\n if (imgMatch) {\n nodes.push({\n type: \"image\",\n attrs: { src: imgMatch[2], alt: imgMatch[1] },\n });\n }\n i++;\n continue;\n }\n\n if (line.match(/^[-*]\\s\\[[ x]\\]\\s/)) {\n const taskItems: TiptapNode[] = [];\n while (i < lines.length && lines[i].match(/^[-*]\\s\\[[ x]\\]\\s/)) {\n const m = lines[i].match(/^[-*]\\s\\[([ x])\\]\\s(.*)$/);\n if (m) {\n taskItems.push({\n type: \"taskItem\",\n attrs: { checked: m[1] === \"x\" },\n content: [{ type: \"paragraph\", content: parseInline(m[2]) }],\n });\n }\n i++;\n }\n nodes.push({ type: \"taskList\", content: taskItems });\n continue;\n }\n\n if (line.match(/^[-*]\\s/)) {\n const items: TiptapNode[] = [];\n while (i < lines.length && lines[i].match(/^[-*]\\s/)) {\n const text = lines[i].replace(/^[-*]\\s/, \"\");\n items.push({\n type: \"listItem\",\n content: [{ type: \"paragraph\", content: parseInline(text) }],\n });\n i++;\n }\n nodes.push({ type: \"bulletList\", content: items });\n continue;\n }\n\n if (line.match(/^\\d+\\.\\s/)) {\n const items: TiptapNode[] = [];\n while (i < lines.length && lines[i].match(/^\\d+\\.\\s/)) {\n const text = lines[i].replace(/^\\d+\\.\\s/, \"\");\n items.push({\n type: \"listItem\",\n content: [{ type: \"paragraph\", content: parseInline(text) }],\n });\n i++;\n }\n nodes.push({ type: \"orderedList\", content: items });\n continue;\n }\n\n if (line.trim() === \"\") {\n i++;\n continue;\n }\n\n const paraLines: string[] = [];\n while (\n i < lines.length &&\n lines[i].trim() !== \"\" &&\n !lines[i].match(/^#{1,4}\\s/) &&\n !lines[i].match(/^```/) &&\n !lines[i].match(/^\\$\\$/) &&\n !lines[i].match(/^---\\s*$/) &&\n !lines[i].match(/^[-*]\\s/) &&\n !lines[i].match(/^\\d+\\.\\s/) &&\n !lines[i].match(/^>\\s/) &&\n !lines[i].match(/^!\\[/)\n ) {\n paraLines.push(lines[i]);\n i++;\n }\n nodes.push({\n type: \"paragraph\",\n content: parseInline(paraLines.join(\"\\n\")),\n });\n }\n\n if (nodes.length === 0) {\n nodes.push({ type: \"paragraph\" });\n }\n\n return { type: \"doc\", content: nodes };\n}\n\nfunction parseInline(text: string): TiptapNode[] {\n if (!text) return [];\n if (text.length > 10000) return [{ type: \"text\", text }];\n\n const nodes: TiptapNode[] = [];\n const regex = /(\\*\\*([^*]+)\\*\\*|\\*([^*]+)\\*|`([^`]+)`|~~([^~]+)~~|\\[\\[([^\\]]+)\\]\\]|#([a-zA-Z][a-zA-Z0-9_/-]*)|\\[([^\\]]+)\\]\\(([^)]+)\\)|(?<!\\$)\\$([^\\$\\n]+)\\$(?!\\$))/g;\n let lastIndex = 0;\n let match: RegExpExecArray | null;\n\n while ((match = regex.exec(text)) !== null) {\n if (match.index > lastIndex) {\n nodes.push({ type: \"text\", text: text.slice(lastIndex, match.index) });\n }\n\n if (match[2]) {\n nodes.push({ type: \"text\", text: match[2], marks: [{ type: \"bold\" }] });\n } else if (match[3]) {\n nodes.push({ type: \"text\", text: match[3], marks: [{ type: \"italic\" }] });\n } else if (match[4]) {\n nodes.push({ type: \"text\", text: match[4], marks: [{ type: \"code\" }] });\n } else if (match[5]) {\n nodes.push({ type: \"text\", text: match[5], marks: [{ type: \"strike\" }] });\n } else if (match[6]) {\n nodes.push({ type: \"text\", text: `[[${match[6]}]]` });\n } else if (match[7]) {\n nodes.push({ type: \"text\", text: `#${match[7]}` });\n } else if (match[8] && match[9]) {\n nodes.push({ type: \"text\", text: match[8], marks: [{ type: \"link\", attrs: { href: match[9], target: \"_blank\" } }] });\n } else if (match[10]) {\n nodes.push({ type: \"inlineMath\", attrs: { formula: match[10] } });\n }\n\n lastIndex = match.index + match[0].length;\n }\n\n if (lastIndex < text.length) {\n nodes.push({ type: \"text\", text: text.slice(lastIndex) });\n }\n\n return nodes.length > 0 ? nodes : [{ type: \"text\", text: text || \" \" }];\n}\n"],"mappings":"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","names":[]}
|