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.
@@ -1,11 +1,11 @@
1
1
  import {
2
2
  getClient,
3
3
  getUserId
4
- } from "../chunk-XGZKUOFI.js";
4
+ } from "../chunk-4TVWJ4LN.js";
5
5
  import "../chunk-PBF5EE4Y.js";
6
6
  import {
7
7
  createNote
8
- } from "../chunk-WM6QVD53.js";
8
+ } from "../chunk-AU5U4RDS.js";
9
9
 
10
10
  // src/commands/new.ts
11
11
  import { Command, Args } from "@oclif/core";
@@ -1,11 +1,11 @@
1
1
  import {
2
2
  getClient,
3
3
  getUserId
4
- } from "../chunk-XGZKUOFI.js";
4
+ } from "../chunk-4TVWJ4LN.js";
5
5
  import "../chunk-PBF5EE4Y.js";
6
6
  import {
7
7
  listNotes
8
- } from "../chunk-WM6QVD53.js";
8
+ } from "../chunk-AU5U4RDS.js";
9
9
 
10
10
  // src/commands/notes.ts
11
11
  import { Command } from "@oclif/core";
@@ -1,12 +1,12 @@
1
1
  import {
2
2
  getClient,
3
3
  getUserId
4
- } from "../chunk-XGZKUOFI.js";
4
+ } from "../chunk-4TVWJ4LN.js";
5
5
  import "../chunk-PBF5EE4Y.js";
6
6
  import {
7
7
  listNotes,
8
8
  restoreNote
9
- } from "../chunk-WM6QVD53.js";
9
+ } from "../chunk-AU5U4RDS.js";
10
10
 
11
11
  // src/commands/restore.ts
12
12
  import { Command, Args } from "@oclif/core";
@@ -1,11 +1,11 @@
1
1
  import {
2
2
  getClient,
3
3
  getUserId
4
- } from "../chunk-XGZKUOFI.js";
4
+ } from "../chunk-4TVWJ4LN.js";
5
5
  import "../chunk-PBF5EE4Y.js";
6
6
  import {
7
7
  executeQuery
8
- } from "../chunk-WM6QVD53.js";
8
+ } from "../chunk-AU5U4RDS.js";
9
9
 
10
10
  // src/commands/search.ts
11
11
  import { Command, Args } from "@oclif/core";
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  getClient,
3
3
  getUserId
4
- } from "../chunk-XGZKUOFI.js";
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-WM6QVD53.js";
13
+ } from "../chunk-AU5U4RDS.js";
14
14
 
15
15
  // src/commands/status.ts
16
16
  import { Command } from "@oclif/core";
@@ -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 BLOCK (LaTeX) \u2501\u2501\u2501${R}
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} ![alt text](https://example.com/image.png)${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} ![alt text](https://example.com/image.png)${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,11 +1,11 @@
1
1
  import {
2
2
  getClient,
3
3
  getUserId
4
- } from "../chunk-XGZKUOFI.js";
4
+ } from "../chunk-4TVWJ4LN.js";
5
5
  import "../chunk-PBF5EE4Y.js";
6
6
  import {
7
7
  getUserTags
8
- } from "../chunk-WM6QVD53.js";
8
+ } from "../chunk-AU5U4RDS.js";
9
9
 
10
10
  // src/commands/tags.ts
11
11
  import { Command } from "@oclif/core";
@@ -1,11 +1,11 @@
1
1
  import {
2
2
  getClient,
3
3
  getUserId
4
- } from "../chunk-XGZKUOFI.js";
4
+ } from "../chunk-4TVWJ4LN.js";
5
5
  import "../chunk-PBF5EE4Y.js";
6
6
  import {
7
7
  listNotes
8
- } from "../chunk-WM6QVD53.js";
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-XGZKUOFI.js";
4
+ } from "../../chunk-4TVWJ4LN.js";
5
5
  import "../../chunk-PBF5EE4Y.js";
6
6
  import {
7
7
  emptyTrash
8
- } from "../../chunk-WM6QVD53.js";
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-XGZKUOFI.js";
4
+ } from "../../chunk-4TVWJ4LN.js";
5
5
  import "../../chunk-PBF5EE4Y.js";
6
6
  import {
7
7
  listNotes
8
- } from "../../chunk-WM6QVD53.js";
8
+ } from "../../chunk-AU5U4RDS.js";
9
9
 
10
10
  // src/commands/trash/index.ts
11
11
  import { Command } from "@oclif/core";
@@ -1,12 +1,12 @@
1
1
  import {
2
2
  getClient,
3
3
  getUserId
4
- } from "../chunk-XGZKUOFI.js";
4
+ } from "../chunk-4TVWJ4LN.js";
5
5
  import "../chunk-PBF5EE4Y.js";
6
6
  import {
7
7
  exportNoteAsMarkdown,
8
8
  listNotes
9
- } from "../chunk-WM6QVD53.js";
9
+ } from "../chunk-AU5U4RDS.js";
10
10
 
11
11
  // src/commands/view.ts
12
12
  import { Command, Args } from "@oclif/core";
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  getClient,
3
3
  getUserId
4
- } from "../chunk-XGZKUOFI.js";
4
+ } from "../chunk-4TVWJ4LN.js";
5
5
  import "../chunk-PBF5EE4Y.js";
6
- import "../chunk-WM6QVD53.js";
6
+ import "../chunk-AU5U4RDS.js";
7
7
  export {
8
8
  getClient,
9
9
  getUserId
@@ -17,30 +17,30 @@ function markdownToTiptap(md) {
17
17
  i++;
18
18
  continue;
19
19
  }
20
- if (line.match(/^```mermaid\s*$/)) {
20
+ if (line.match(/^```mermaid/)) {
21
21
  const mermaidLines = [];
22
22
  i++;
23
- while (i < lines.length && !lines[i].match(/^```\s*$/)) {
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.match(/^```/)) {
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].match(/^```\s*$/)) {
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.match(/^\$\$\s*$/)) {
51
+ if (line.startsWith("$$")) {
52
52
  const mathLines = [];
53
53
  i++;
54
- while (i < lines.length && !lines[i].match(/^\$\$\s*$/)) {
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 = /(\*\*(.+?)\*\*|\*(.+?)\*|`(.+?)`|~~(.+?)~~|\[\[(.+?)\]\]|#([a-zA-Z][a-zA-Z0-9_/-]*)|\[([^\]]+?)\]\(([^)]+?)\))/g;
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":";AAQO,SAAS,iBAAiB,IAAqC;AACpE,QAAM,QAAQ,GAAG,MAAM,IAAI;AAC3B,QAAM,QAAsB,CAAC;AAC7B,MAAI,IAAI;AAER,SAAO,IAAI,MAAM,QAAQ;AACvB,UAAM,OAAO,MAAM,CAAC;AAEpB,QAAI,KAAK,MAAM,WAAW,GAAG;AAC3B,YAAM,QAAQ,KAAK,MAAM,kBAAkB;AAC3C,UAAI,OAAO;AACT,cAAM,KAAK;AAAA,UACT,MAAM;AAAA,UACN,OAAO,EAAE,OAAO,MAAM,CAAC,EAAE,OAAO;AAAA,UAChC,SAAS,YAAY,MAAM,CAAC,CAAC;AAAA,QAC/B,CAAC;AAAA,MACH;AACA;AACA;AAAA,IACF;AAEA,QAAI,KAAK,MAAM,aAAa,GAAG;AAC7B,YAAM,eAAyB,CAAC;AAChC;AACA,aAAO,IAAI,MAAM,UAAU,CAAC,MAAM,CAAC,EAAE,WAAW,KAAK,GAAG;AACtD,qBAAa,KAAK,MAAM,CAAC,CAAC;AAC1B;AAAA,MACF;AACA,UAAI,IAAI,MAAM,OAAQ;AACtB,YAAM,KAAK;AAAA,QACT,MAAM;AAAA,QACN,SAAS,CAAC,EAAE,MAAM,QAAQ,MAAM,aAAa,KAAK,IAAI,EAAE,CAAC;AAAA,MAC3D,CAAC;AACD;AAAA,IACF;AAEA,QAAI,KAAK,WAAW,KAAK,GAAG;AAC1B,YAAM,YAAY,KAAK,MAAM,WAAW;AACxC,YAAM,WAAW,YAAY,CAAC,KAAK;AACnC,YAAM,YAAsB,CAAC;AAC7B;AACA,aAAO,IAAI,MAAM,UAAU,CAAC,MAAM,CAAC,EAAE,WAAW,KAAK,GAAG;AACtD,kBAAU,KAAK,MAAM,CAAC,CAAC;AACvB;AAAA,MACF;AACA,UAAI,IAAI,MAAM,OAAQ;AACtB,YAAM,KAAK;AAAA,QACT,MAAM;AAAA,QACN,OAAO,EAAE,SAAS;AAAA,QAClB,SAAS,CAAC,EAAE,MAAM,QAAQ,MAAM,UAAU,KAAK,IAAI,EAAE,CAAC;AAAA,MACxD,CAAC;AACD;AAAA,IACF;AAEA,QAAI,KAAK,WAAW,IAAI,GAAG;AACzB,YAAM,YAAsB,CAAC;AAC7B;AACA,aAAO,IAAI,MAAM,UAAU,CAAC,MAAM,CAAC,EAAE,WAAW,IAAI,GAAG;AACrD,kBAAU,KAAK,MAAM,CAAC,CAAC;AACvB;AAAA,MACF;AACA,UAAI,IAAI,MAAM,OAAQ;AACtB,YAAM,KAAK;AAAA,QACT,MAAM;AAAA,QACN,SAAS,CAAC,EAAE,MAAM,QAAQ,MAAM,UAAU,KAAK,IAAI,EAAE,CAAC;AAAA,MACxD,CAAC;AACD;AAAA,IACF;AAEA,QAAI,KAAK,MAAM,qBAAqB,GAAG;AACrC,YAAM,eAAe,KAAK,MAAM,qBAAqB;AACrD,YAAM,UAAU,eAAe,CAAC,KAAK;AAErC,UAAI,YAAY,SAAS;AACvB,cAAM,aAAuB,CAAC;AAC9B;AACA,eAAO,IAAI,MAAM,UAAU,MAAM,CAAC,EAAE,MAAM,MAAM,GAAG;AACjD,qBAAW,KAAK,MAAM,CAAC,EAAE,QAAQ,SAAS,EAAE,CAAC;AAC7C;AAAA,QACF;AACA,cAAM,KAAK;AAAA,UACT,MAAM;AAAA,UACN,SAAS,CAAC,EAAE,MAAM,QAAQ,MAAM,WAAW,KAAK,IAAI,EAAE,CAAC;AAAA,QACzD,CAAC;AACD;AAAA,MACF;AAEA,UAAI,YAAY,SAAS;AACvB;AACA,cAAM,WAAW,MAAM,CAAC,GAAG,QAAQ,SAAS,EAAE,EAAE,KAAK,KAAK;AAC1D;AACA,cAAM,KAAK;AAAA,UACT,MAAM;AAAA,UACN,OAAO,EAAE,KAAK,SAAS;AAAA,QACzB,CAAC;AACD;AAAA,MACF;AAEA,UAAI,YAAY,QAAQ;AACtB;AACA,cAAM,WAAW,MAAM,CAAC,GAAG,QAAQ,SAAS,EAAE,KAAK;AACnD,cAAM,YAAY,SAAS,MAAM,sBAAsB;AACvD;AACA,cAAM,WAAW,MAAM,CAAC,GAAG,QAAQ,SAAS,EAAE,KAAK;AACnD,cAAM,YAAY,SAAS,MAAM,GAAG;AACpC;AACA,cAAM,KAAK;AAAA,UACT,MAAM;AAAA,UACN,OAAO;AAAA,YACL,UAAU,YAAY,CAAC,KAAK;AAAA,YAC5B,KAAK,YAAY,CAAC,KAAK;AAAA,YACvB,UAAU,UAAU,CAAC,KAAK;AAAA,YAC1B,UAAU,SAAS,UAAU,CAAC,KAAK,KAAK,EAAE,KAAK;AAAA,UACjD;AAAA,QACF,CAAC;AACD;AAAA,MACF;AAEA,YAAM,eAAyB,CAAC;AAChC;AACA,aAAO,IAAI,MAAM,UAAU,MAAM,CAAC,EAAE,MAAM,MAAM,GAAG;AACjD,qBAAa,KAAK,MAAM,CAAC,EAAE,QAAQ,SAAS,EAAE,CAAC;AAC/C;AAAA,MACF;AACA,YAAM,KAAK;AAAA,QACT,MAAM;AAAA,QACN,OAAO,EAAE,QAAQ;AAAA,QACjB,SAAS,CAAC,EAAE,MAAM,aAAa,SAAS,YAAY,aAAa,KAAK,IAAI,CAAC,EAAE,CAAC;AAAA,MAChF,CAAC;AACD;AAAA,IACF;AAEA,QAAI,KAAK,MAAM,MAAM,GAAG;AACtB,YAAM,aAAuB,CAAC;AAC9B,aAAO,IAAI,MAAM,UAAU,MAAM,CAAC,EAAE,MAAM,OAAO,GAAG;AAClD,mBAAW,KAAK,MAAM,CAAC,EAAE,QAAQ,SAAS,EAAE,CAAC;AAC7C;AAAA,MACF;AACA,YAAM,KAAK;AAAA,QACT,MAAM;AAAA,QACN,SAAS,CAAC,EAAE,MAAM,aAAa,SAAS,YAAY,WAAW,KAAK,IAAI,CAAC,EAAE,CAAC;AAAA,MAC9E,CAAC;AACD;AAAA,IACF;AAEA,QAAI,KAAK,MAAM,UAAU,GAAG;AAC1B,YAAM,KAAK,EAAE,MAAM,iBAAiB,CAAC;AACrC;AACA;AAAA,IACF;AAEA,QAAI,KAAK,MAAM,mBAAmB,GAAG;AACnC,YAAM,WAAW,KAAK,MAAM,uBAAuB;AACnD,UAAI,UAAU;AACZ,cAAM,KAAK;AAAA,UACT,MAAM;AAAA,UACN,OAAO,EAAE,KAAK,SAAS,CAAC,GAAG,KAAK,SAAS,CAAC,EAAE;AAAA,QAC9C,CAAC;AAAA,MACH;AACA;AACA;AAAA,IACF;AAEA,QAAI,KAAK,MAAM,mBAAmB,GAAG;AACnC,YAAM,YAA0B,CAAC;AACjC,aAAO,IAAI,MAAM,UAAU,MAAM,CAAC,EAAE,MAAM,mBAAmB,GAAG;AAC9D,cAAM,IAAI,MAAM,CAAC,EAAE,MAAM,0BAA0B;AACnD,YAAI,GAAG;AACL,oBAAU,KAAK;AAAA,YACb,MAAM;AAAA,YACN,OAAO,EAAE,SAAS,EAAE,CAAC,MAAM,IAAI;AAAA,YAC/B,SAAS,CAAC,EAAE,MAAM,aAAa,SAAS,YAAY,EAAE,CAAC,CAAC,EAAE,CAAC;AAAA,UAC7D,CAAC;AAAA,QACH;AACA;AAAA,MACF;AACA,YAAM,KAAK,EAAE,MAAM,YAAY,SAAS,UAAU,CAAC;AACnD;AAAA,IACF;AAEA,QAAI,KAAK,MAAM,SAAS,GAAG;AACzB,YAAM,QAAsB,CAAC;AAC7B,aAAO,IAAI,MAAM,UAAU,MAAM,CAAC,EAAE,MAAM,SAAS,GAAG;AACpD,cAAM,OAAO,MAAM,CAAC,EAAE,QAAQ,WAAW,EAAE;AAC3C,cAAM,KAAK;AAAA,UACT,MAAM;AAAA,UACN,SAAS,CAAC,EAAE,MAAM,aAAa,SAAS,YAAY,IAAI,EAAE,CAAC;AAAA,QAC7D,CAAC;AACD;AAAA,MACF;AACA,YAAM,KAAK,EAAE,MAAM,cAAc,SAAS,MAAM,CAAC;AACjD;AAAA,IACF;AAEA,QAAI,KAAK,MAAM,UAAU,GAAG;AAC1B,YAAM,QAAsB,CAAC;AAC7B,aAAO,IAAI,MAAM,UAAU,MAAM,CAAC,EAAE,MAAM,UAAU,GAAG;AACrD,cAAM,OAAO,MAAM,CAAC,EAAE,QAAQ,YAAY,EAAE;AAC5C,cAAM,KAAK;AAAA,UACT,MAAM;AAAA,UACN,SAAS,CAAC,EAAE,MAAM,aAAa,SAAS,YAAY,IAAI,EAAE,CAAC;AAAA,QAC7D,CAAC;AACD;AAAA,MACF;AACA,YAAM,KAAK,EAAE,MAAM,eAAe,SAAS,MAAM,CAAC;AAClD;AAAA,IACF;AAEA,QAAI,KAAK,KAAK,MAAM,IAAI;AACtB;AACA;AAAA,IACF;AAEA,UAAM,YAAsB,CAAC;AAC7B,WACE,IAAI,MAAM,UACV,MAAM,CAAC,EAAE,KAAK,MAAM,MACpB,CAAC,MAAM,CAAC,EAAE,MAAM,WAAW,KAC3B,CAAC,MAAM,CAAC,EAAE,MAAM,MAAM,KACtB,CAAC,MAAM,CAAC,EAAE,MAAM,OAAO,KACvB,CAAC,MAAM,CAAC,EAAE,MAAM,UAAU,KAC1B,CAAC,MAAM,CAAC,EAAE,MAAM,SAAS,KACzB,CAAC,MAAM,CAAC,EAAE,MAAM,UAAU,KAC1B,CAAC,MAAM,CAAC,EAAE,MAAM,MAAM,KACtB,CAAC,MAAM,CAAC,EAAE,MAAM,MAAM,GACtB;AACA,gBAAU,KAAK,MAAM,CAAC,CAAC;AACvB;AAAA,IACF;AACA,UAAM,KAAK;AAAA,MACT,MAAM;AAAA,MACN,SAAS,YAAY,UAAU,KAAK,IAAI,CAAC;AAAA,IAC3C,CAAC;AAAA,EACH;AAEA,MAAI,MAAM,WAAW,GAAG;AACtB,UAAM,KAAK,EAAE,MAAM,YAAY,CAAC;AAAA,EAClC;AAEA,SAAO,EAAE,MAAM,OAAO,SAAS,MAAM;AACvC;AAEA,SAAS,YAAY,MAA4B;AAC/C,MAAI,CAAC,KAAM,QAAO,CAAC;AACnB,MAAI,KAAK,SAAS,IAAO,QAAO,CAAC,EAAE,MAAM,QAAQ,KAAK,CAAC;AAEvD,QAAM,QAAsB,CAAC;AAC7B,QAAM,QAAQ;AACd,MAAI,YAAY;AAChB,MAAI;AAEJ,UAAQ,QAAQ,MAAM,KAAK,IAAI,OAAO,MAAM;AAC1C,QAAI,MAAM,QAAQ,WAAW;AAC3B,YAAM,KAAK,EAAE,MAAM,QAAQ,MAAM,KAAK,MAAM,WAAW,MAAM,KAAK,EAAE,CAAC;AAAA,IACvE;AAEA,QAAI,MAAM,CAAC,GAAG;AACZ,YAAM,KAAK,EAAE,MAAM,QAAQ,MAAM,MAAM,CAAC,GAAG,OAAO,CAAC,EAAE,MAAM,OAAO,CAAC,EAAE,CAAC;AAAA,IACxE,WAAW,MAAM,CAAC,GAAG;AACnB,YAAM,KAAK,EAAE,MAAM,QAAQ,MAAM,MAAM,CAAC,GAAG,OAAO,CAAC,EAAE,MAAM,SAAS,CAAC,EAAE,CAAC;AAAA,IAC1E,WAAW,MAAM,CAAC,GAAG;AACnB,YAAM,KAAK,EAAE,MAAM,QAAQ,MAAM,MAAM,CAAC,GAAG,OAAO,CAAC,EAAE,MAAM,OAAO,CAAC,EAAE,CAAC;AAAA,IACxE,WAAW,MAAM,CAAC,GAAG;AACnB,YAAM,KAAK,EAAE,MAAM,QAAQ,MAAM,MAAM,CAAC,GAAG,OAAO,CAAC,EAAE,MAAM,SAAS,CAAC,EAAE,CAAC;AAAA,IAC1E,WAAW,MAAM,CAAC,GAAG;AACnB,YAAM,KAAK,EAAE,MAAM,QAAQ,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,CAAC;AAAA,IACtD,WAAW,MAAM,CAAC,GAAG;AACnB,YAAM,KAAK,EAAE,MAAM,QAAQ,MAAM,IAAI,MAAM,CAAC,CAAC,GAAG,CAAC;AAAA,IACnD,WAAW,MAAM,CAAC,KAAK,MAAM,CAAC,GAAG;AAC/B,YAAM,KAAK,EAAE,MAAM,QAAQ,MAAM,MAAM,CAAC,GAAG,OAAO,CAAC,EAAE,MAAM,QAAQ,OAAO,EAAE,MAAM,MAAM,CAAC,GAAG,QAAQ,SAAS,EAAE,CAAC,EAAE,CAAC;AAAA,IACrH,WAAW,MAAM,EAAE,GAAG;AACpB,YAAM,KAAK,EAAE,MAAM,cAAc,OAAO,EAAE,SAAS,MAAM,EAAE,EAAE,EAAE,CAAC;AAAA,IAClE;AAEA,gBAAY,MAAM,QAAQ,MAAM,CAAC,EAAE;AAAA,EACrC;AAEA,MAAI,YAAY,KAAK,QAAQ;AAC3B,UAAM,KAAK,EAAE,MAAM,QAAQ,MAAM,KAAK,MAAM,SAAS,EAAE,CAAC;AAAA,EAC1D;AAEA,SAAO,MAAM,SAAS,IAAI,QAAQ,CAAC,EAAE,MAAM,QAAQ,MAAM,QAAQ,IAAI,CAAC;AACxE;","names":[]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "vertex-notes",
3
- "version": "0.2.0",
3
+ "version": "0.3.0",
4
4
  "description": "Vertex — keyboard-first knowledge workspace CLI",
5
5
  "type": "module",
6
6
  "bin": {