Skip to content

Commit ec7f658

Browse files
feat(notes): add planned links and note inspector
1 parent 2380c98 commit ec7f658

84 files changed

Lines changed: 5338 additions & 272 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

‎README.md‎

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -98,11 +98,13 @@ Write longer markdown documents right next to your snippets: project docs, draft
9898
- Dashboard with activity overview, recent notes, top linked notes, and a notes graph preview
9999
- Editor, Live Preview, and Preview modes
100100
- Editable markdown tables with row and column controls
101+
- Internal links to notes, snippets, and HTTP requests, with placeholders for items you plan to create later
102+
- Note inspector with section navigation and reordering, link filters, and grouped callouts
101103
- Fullscreen notes graph for exploring internal links between notes
102104
- Integrated [Mermaid](https://mermaid-js.github.io/mermaid/#) diagrams
103105
- Mind maps generated from markdown heading structure
104106
- Fullscreen presentation mode for demos and meetings
105-
- Callout blocks and image embedding
107+
- Callout blocks, including TODOs for unfinished writing, and image embedding
106108

107109
### HTTP Client
108110

‎docs/website/.vitepress/components/features/TheFeatures.vue‎

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,12 @@ import FeaturesItem from './FeaturesItem.vue'
2222
Write in Markdown with live preview, add status, priority, and due dates
2323
to task notes, organize with folders and tags, and use Mermaid diagrams,
2424
mindmaps, or fullscreen presentation mode when you need more structure.
25+
Plan linked notes, snippets, and requests while writing, then create them
26+
when ready. Use the
27+
<AppLink href="/documentation/notes/inspector">
28+
Note inspector
29+
</AppLink>
30+
to reorder sections, inspect links, and find callouts.
2531
</FeaturesItem>
2632
<FeaturesItem title="HTTP Client">
2733
Build and test HTTP, GraphQL, and WebSocket APIs. Organize collections

‎docs/website/.vitepress/config.mts‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -204,6 +204,7 @@ export default defineConfig({
204204
{ text: 'Folders', link: '/documentation/notes/folders' },
205205
{ text: 'Tags', link: '/documentation/notes/tags' },
206206
{ text: 'Internal Links', link: '/documentation/notes/internal-links' },
207+
{ text: 'Note Inspector', link: '/documentation/notes/inspector' },
207208
{ text: 'Images', link: '/documentation/notes/images' },
208209
{ text: 'Callouts', link: '/documentation/notes/callouts' },
209210
{ text: 'Mermaid', link: '/documentation/notes/mermaid' },

‎docs/website/documentation/index.md‎

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,8 @@ Use [Code](/documentation/code/) to build a reusable snippet library across proj
2121

2222
Use [Notes](/documentation/notes/) for longer markdown documents that do not fit well into snippets: project notes, [task notes](/documentation/notes/tasks) with status, priority, due dates, cleanup controls, drafts, technical docs, meeting notes, and personal knowledge bases. It uses the same three-column layout as Code and adds a Notes Dashboard, live preview with editable tables, a notes graph, mindmaps, and fullscreen presentation mode.
2323

24+
Use [Note inspector](/documentation/notes/inspector) to navigate and reorder sections, inspect links, and find callouts. [Planned links](/documentation/notes/internal-links#plan-notes-snippets-and-requests) let you leave placeholders for notes, snippets, and HTTP requests, then create them when ready. <AppVersion text=">=5.12" />
25+
2426
## HTTP
2527

2628
Use [HTTP](/documentation/http/) as a lightweight API client inside massCode. Store requests in folders, import collections from OpenAPI, Postman, or Bruno, switch environments, preview the outgoing request as raw HTTP or cURL, send it from the editor, and inspect the response body and headers without leaving your workspace.

‎docs/website/documentation/notes/callouts.md‎

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ Start a blockquote with one of the supported markers:
2222
> Use warnings for risks, destructive actions, or anything that needs extra care.
2323
```
2424

25-
Supported callout types are `NOTE`, `IMPORTANT`, and `WARNING`. The marker is case-insensitive, so `> [!note]` works the same as `> [!NOTE]`.
25+
Supported callout types are `NOTE`, `IMPORTANT`, and `WARNING`. [`TODO`](#authoring-todos-and-annotations) is available starting with 5.12. The marker is case-insensitive, so `> [!note]` works the same as `> [!NOTE]`.
2626

2727
## Multi-line Callouts
2828

@@ -36,3 +36,16 @@ Keep each line inside the same blockquote:
3636
```
3737

3838
Callouts are shown with dedicated styling in **Live Preview** and **Preview** modes. In editable modes, the marker stays visible while the cursor is on the callout line, so the markdown remains easy to edit.
39+
40+
## Authoring TODOs and Annotations
41+
42+
<AppVersion text=">=5.12" />
43+
44+
Use a TODO callout to mark unfinished work in the current note:
45+
46+
```md
47+
> [!TODO]
48+
> Add an example of error handling.
49+
```
50+
51+
Open [Note inspector → Annotations](/documentation/notes/inspector#annotations) to find all callouts in the note, grouped and filtered by type. These are ordinary Markdown blocks, not separate tasks.

‎docs/website/documentation/notes/index.md‎

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
---
22
title: Markdown Notes
3-
description: "Write markdown notes in massCode with a Notes Dashboard, tasks, live preview, a three-column layout, and features for diagrams, mind maps, and presentations."
3+
description: "Write markdown notes in massCode with a Notes Dashboard, tasks, live preview, planned links, a Note inspector, diagrams, mind maps, and presentations."
44
---
55

66
# Notes
@@ -23,6 +23,12 @@ Use Notes when you want to keep markdown documents close to your snippets and da
2323
- prepare presentations from markdown
2424
- turn note outlines into mind maps
2525

26+
## Note Inspector
27+
28+
<AppVersion text=">=5.12" />
29+
30+
Use [Note inspector](/documentation/notes/inspector) to navigate and reorder sections, inspect links, and find callouts while writing. [Planned links](/documentation/notes/internal-links#plan-notes-snippets-and-requests) let you leave placeholders for notes, snippets, and HTTP requests, then create them when you are ready.
31+
2632
## Creating a Note
2733

2834
- Select **"File"** > **"New Note"** from the menu bar.
@@ -66,7 +72,7 @@ The editor is built on CodeMirror 6 and includes:
6672
- Editable markdown tables in Live Preview
6773
- One-click copying for fenced code blocks in Live Preview and Preview <AppVersion text=">=5.9" />
6874
- Line break normalization for hard-wrapped terminal text from **Editor** > **Normalize Line Breaks** <AppVersion text=">=5.9" />
69-
- [Internal links](/documentation/notes/internal-links) to notes and snippets
75+
- [Internal links](/documentation/notes/internal-links) to notes, snippets, and HTTP requests
7076
- [Task notes](/documentation/notes/tasks) with status, priority, due dates, and smart views
7177
- [Mermaid diagram](/documentation/notes/mermaid) support
7278
- [Image embedding](/documentation/notes/images)
Lines changed: 66 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,66 @@
1+
---
2+
title: Note Inspector
3+
description: "Navigate and reorder note sections, inspect links and planned items, and find callouts in massCode."
4+
---
5+
6+
# Note Inspector
7+
8+
<AppVersion text=">=5.12" />
9+
10+
The Note inspector keeps a note’s structure, linked items, and callouts within reach while you write. Open **View → Note inspector** or click the right-panel button at the end of the editor toolbar.
11+
12+
<img :src="withBase('/notes-inspector.png')" alt="Note inspector showing linked notes, snippets, HTTP requests, external links, and planned items beside an API integration checklist">
13+
14+
Choose **Outline**, **Links**, or **Annotations**. Drag the inspector’s left edge to resize it. The selected tab, panel visibility, and width are remembered. The **?** button at the bottom explains the actions in the current tab.
15+
16+
## Outline
17+
18+
Use **Outline** to navigate a long note. Headings H1–H6 appear in a tree; expand or collapse sections to focus on the structure you need. Click a heading to jump to it. The current section is highlighted as you move the cursor in the editor.
19+
20+
In Raw and Live Preview, drag a heading:
21+
22+
- **Above or below another heading** to move the section to the same level.
23+
- **Onto a heading** to nest the section inside it.
24+
25+
The entire section moves with its content and nested headings. Preview supports navigation only. Headings inside code blocks, quotes, and lists are excluded.
26+
27+
## Links
28+
29+
Use **Links** to see which items a note uses and what is still planned or missing.
30+
31+
- **Note, Snippet, and HTTP request** groups contain existing linked items.
32+
- **External** contains web addresses.
33+
- **Planned** contains placeholders for items you intend to create.
34+
- **Missing** contains internal links whose targets cannot be found.
35+
36+
Each row shows the target’s name and location. Custom labels used in the note are shown alongside the target name. Repeated references share a row with an occurrence count. The summary counts unique targets and addresses across the whole note.
37+
38+
Filter by **status** and **space** to narrow the list, for example to planned snippets. The list updates as you edit.
39+
40+
### Find a link in the note
41+
42+
Click the locate button (the target icon) to jump to a link. The cursor moves to the link text without selecting it; Live Preview reveals its Markdown for editing. Click again to cycle through repeated occurrences.
43+
44+
### Create a planned item
45+
46+
In Raw or Live Preview, hold <kbd>Cmd</kbd> on macOS or <kbd>Ctrl</kbd> on Windows/Linux and click the locate button beside a planned item. This creates the item and opens its usual space, just like clicking the placeholder in the editor with the same modifier. Use **Back** to return to your note.
47+
48+
See [Plan Notes, Snippets, and Requests](/documentation/notes/internal-links#plan-notes-snippets-and-requests) for inserting placeholders and choosing the item type.
49+
50+
### Open an external link
51+
52+
Click the external-link button beside a web address to open it in your browser. The locate button takes you to its occurrence in the note instead.
53+
54+
External links include HTTP and HTTPS Markdown links, reference links, autolinks, and plain URLs. Code examples and image sources are excluded. massCode does not check website availability or classify external addresses as missing.
55+
56+
## Annotations
57+
58+
Use **Annotations** to find callouts throughout the note. All supported types appear in groups: **Todo**, **Note**, **Important**, and **Warning**. Filter by type to focus on a group, then click the locate button to jump to a callout in the editor.
59+
60+
The list and counts update as you edit. Each callout has its own row, even when its text matches another callout. Deleting a callout from the note removes it from the inspector.
61+
62+
Use a [Todo callout](/documentation/notes/callouts#authoring-todos-and-annotations) to mark unfinished writing, such as an example to add or a fact to check. Callouts remain ordinary Markdown in the note.
63+
64+
<script setup>
65+
import { withBase } from 'vitepress'
66+
</script>

‎docs/website/documentation/notes/internal-links.md‎

Lines changed: 49 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ description: "Link notes, snippets, and HTTP requests together inside massCode N
77

88
<AppVersion text=">=5.1" />
99

10-
Internal Links let you connect notes, snippets, and HTTP requests with wiki-style links directly inside Notes. Use them to build lightweight documentation, link reference snippets or saved API requests from prose, and move through related material without leaving massCode.
10+
Internal Links let you connect notes, snippets, and HTTP requests with wiki-style links directly inside Notes. Use them to build lightweight documentation, link reference snippets or saved API requests from prose, and move through related item without leaving massCode.
1111

1212
<img :src="withBase('/notes-internal-links.png')">
1313

@@ -47,6 +47,48 @@ Start typing `[[` in the Notes editor to open the internal links picker.
4747

4848
The picker inserts the shortest unambiguous form: just the name when it is unique, or a folder path when another item shares the same name.
4949

50+
## Plan Notes, Snippets, and Requests
51+
52+
<AppVersion text=">=5.12" />
53+
54+
Plan a note, snippet, or HTTP request right where you need it in your writing. Insert a placeholder, continue the note, and create the item later without losing your place.
55+
56+
<img :src="withBase('/notes-planned.png')" alt="Internal link picker with Plan Note, Plan Snippet, and Plan HTTP request actions below existing results">
57+
58+
### Insert a placeholder
59+
60+
1. Type `[[` followed by the title you have in mind.
61+
2. Choose **Plan Note**, **Plan Snippet**, or **Plan HTTP request** with the arrow keys and <kbd>Enter</kbd>, or click the action.
62+
3. Continue writing. The placeholder has a dashed border in Live Preview; the actual item does not exist yet.
63+
64+
The **Plan…** action stays pinned below the search results. To reach it without stepping through matching items, press <kbd>Cmd</kbd>+<kbd>Enter</kbd> on macOS or <kbd>Ctrl</kbd>+<kbd>Enter</kbd> on Windows/Linux. This selects **Plan Note**; press <kbd>Enter</kbd> to insert it, or use the arrow keys to choose another type. <kbd>Tab</kbd> keeps its usual indentation behavior.
65+
66+
### Create the planned item
67+
68+
Hold <kbd>Cmd</kbd> on macOS or <kbd>Ctrl</kbd> on Windows/Linux and click the placeholder. massCode creates the item, replaces the placeholder with its link, and opens the usual Notes, Code, or HTTP space with the title selected for renaming.
69+
70+
Fill in the item normally, then use **Back** to return to your note through the existing navigation history. The placeholder is now a regular link to the created item.
71+
72+
Notes and snippets are created in **Inbox**. HTTP requests are created in the **Inbox** collection, which is created on demand. Names are checked when you activate the placeholder: if the name is taken, a numeric suffix is added, such as `Example 1` or `Example 2`.
73+
74+
Find all placeholders in [Note inspector → Links](/documentation/notes/inspector#links) by choosing the **Planned** status filter.
75+
76+
### Markdown syntax
77+
78+
Placeholders are stored as Markdown:
79+
80+
```md
81+
[[masscode:planned:note|Authentication guide]]
82+
[[masscode:planned:snippet|Token refresh helper]]
83+
[[masscode:planned:http-request|Refresh access token]]
84+
```
85+
86+
Only the clicked placeholder is replaced. A planned item has no backlinks or export link until it is created. Repeated clicks while creation is in progress do not create another object. If a step fails, an error notification offers a retry when it is safe to continue.
87+
88+
::: warning Reserved link targets
89+
The three exact targets above are reserved for placeholders. Existing links using them change meaning; your notes are not rewritten automatically. To link to an imported or older item with one of these names, select it in the picker, which writes an explicit ID link.
90+
:::
91+
5092
## Opening Links
5193

5294
Hold <kbd>Cmd</kbd> on macOS or <kbd>Ctrl</kbd> on Windows or Linux, then click the link.
@@ -67,6 +109,12 @@ Hover an internal link while holding <kbd>Cmd</kbd> on macOS or <kbd>Ctrl</kbd>
67109

68110
This helps you confirm the target before you navigate away from the current note.
69111

112+
## Note Inspector
113+
114+
<AppVersion text=">=5.12" />
115+
116+
Open the **Links** tab in [Note inspector](/documentation/notes/inspector#links) to inspect linked items, planned placeholders, missing targets, and external addresses. Filter by status or space and use the locate button to find each occurrence in your note.
117+
70118
## Navigation History
71119

72120
When you follow internal links, massCode keeps a small link navigation history for that session.
93.8 KB
Loading
92.4 KB
Loading

0 commit comments

Comments
 (0)