Point Blank Documentation

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.