Core Features
Intelligent Bullet Point Styling
Point Blank enhances standard markdown lists by applying custom styling directly to the bullet characters (*
, +
, -
, etc.). For convenience, the extension can be configured to automatically insert a default bullet point on a new line. However, once inserted, this character is treated just like any other text in the document. The rendering engine's job is only to style what is physically present in the file.
The following prefixes are recognized and styled:
*
(asterisk)+
(plus)-
(minus)1.
,1)
(numbered lists)>
(blockquote)@
(at-sign, for special mentions or commands)
Hierarchical Outlining & Folding
The core of the outliner is its ability to create a hierarchy based on indentation. Users can create nested lists simply by indenting lines. The extension uses this structure to provide robust, indentation-based code folding, allowing users to collapse and expand sections of their outline to easily navigate large documents.
Typed Nodes for Structured Data
A key feature of Point Blank is the concept of "typed nodes." By writing a line like (Book)
, users can create a structured data block. This block can contain key-value pairs (e.g., Author:: John Doe
) that are visually distinguished and can be navigated with custom keybindings, streamlining data entry.
Focus Mode
Focus Mode allows users to "hoist" a specific folding block, collapsing all other sections of the document. This provides a distraction-free environment for concentrating on a single part of a larger outline.
Templates
Point Blank's template system has been significantly refactored to provide a more robust and intuitive way to create structured data.
File-Based Templates
Templates are now defined as Markdown files (.md
) and stored
in a dedicated directory: .vscode/templates/
within your
workspace. Each template file must begin with a required
Type::
key-value pair, which defines the type of the node
this template will create.
For example, a template for a "Task" node would be saved as
.vscode/templates/Task.md
and start with:
Type:: Task
Status:: TODO
Due::
Tags::
Template files can optionally include YAML front matter
at the very top of the file, enclosed by triple-dashed lines (---
).
This front matter can be used for additional metadata about the template
itself (e.g., author, description), but it is *not* inserted into your
document when the template is expanded inline. It is primarily used for
features like the "Quick Open File Type Template" command.
Example with YAML front matter:
---
description: A template for creating new task items.
author: Your Name
---
Type:: Task
Status:: TODO
Due::
Tags::
Inline Template Expansion
The syntax for inline template expansion has been updated for clarity and
consistency. To insert a typed node using a template, simply type the
template's Type
name followed by ::
and a space.
For example, to insert a "Task" node, you would type:
Task::
Upon typing the space after Task::
, the extension will
automatically expand the template, inserting the key-value pairs defined
in your Task.md
file directly into your document. The
Type::
line you typed will be replaced by the template's
content.
For example, typing Task::
would expand to:
Type:: Task
Status:: TODO
Due::
Tags::
This new syntax ensures that the inserted content is always a clean list of key-value pairs, without an extra "node type title line" that was present in previous versions.