| name | logseq-markdown |
| description | Create and edit LogSeq block-based markdown with properties, wikilinks, block references, embeds, tasks, and namespaces. Use when working with .md files in a LogSeq graph, or when the user mentions LogSeq blocks, properties, namespaces, or journal pages. |
LogSeq Block-Based Markdown
LogSeq uses a block-based outliner approach to markdown. Every piece of content is a block (a bullet point), and indentation creates parent-child relationships. This is fundamentally different from document-based editors like Obsidian.
Block Structure
Every line in a LogSeq markdown file is a block, prefixed with - :
- This is a top-level block
- This is a child block (indented with tab)
- This is a grandchild block
- Another child block
Critical rules:
- Use tabs (not spaces) for indentation in LogSeq markdown files
- Every block gets a unique UUID automatically assigned by LogSeq
- Pages are root-level containers; every block belongs to a page
- Journal pages use date-based filenames (e.g.,
2026_02_12.md)
- Date links use ISO format:
[[2026-02-12]] (configured via :journal/page-title-format "yyyy-MM-dd")
- Page files go in
pages/ directory, journal files in journals/ directory
Text Formatting
| Format | Syntax | Result |
|---|
| Bold | **text** | bold |
| Italic | *text* | italic |
| Strikethrough | ~~text~~ | struck |
| Highlight | ^^text^^ | highlighted |
| Underline | <ins>text</ins> | underlined |
| Inline code | `code` | code |
| Superscript | X^{2} | X² |
| Subscript | H_{2}O | H₂O |
Headings
Standard markdown headings work within blocks:
- # Heading 1
- ## Heading 2
- ### Heading 3
- #### Heading 4
- ##### Heading 5
- ###### Heading 6
Note: Headings are less commonly used in LogSeq since the outliner structure provides hierarchy naturally.
Page References
[[page name]] Basic page reference (creates page if missing)
#tag Single-word tag (equivalent to [[tag]])
#[[multi word tag]] Multi-word tag
[display text]([[page name]]) Labeled page reference
Tags and page references are functionally identical in LogSeq — #project and [[project]] both create/link to the same page.
Block References
((block-uuid)) Reference a block by its UUID
[display text](((block-uuid))) Labeled block reference
Block references render the referenced block's content inline. Type (( to trigger autocomplete search.
Embeds
{{embed [[page name]]}} Embed entire page content
{{embed ((block-uuid))}} Embed a single block and its children
Embeds render the full content inline (editable in place), unlike references which are read-only links.
Links and Images
[link text](https://example.com) External link
 Local image
 Remote image
Bare URLs are automatically converted to clickable links.
Properties
Properties use key:: value syntax (note the double colon).
Page Properties
Must be in the first block of the page. They annotate the entire page:
- title:: My Project
tags:: [[project]], [[active]]
alias:: My Proj, MP
type:: documentation
status:: in-progress
Block Properties
Can be on any block. They annotate only that block:
- Buy groceries
priority:: A
due-date:: [[2025-01-15]]
estimated-time:: 30min
Built-in Properties (Editable)
| Property | Scope | Description |
|---|
title | Page | Override page title (different from filename) |
icon | Page | Icon identifier for the page |
tags | Both | Tags listed in "Pages tagged with X" |
alias | Both | Synonyms for a page (comma-separated) |
template | Both | Designates block as a template |
template-including-parent | Both | Include parent block when inserting template |
filters | Page | Store selected filters for linked references |
public | Page | Include page in export (true/false) |
exclude-from-graph-view | Page | Exclude from global graph |
System Properties (Auto-managed)
| Property | Scope | Description |
|---|
id | Block | Block's UUID |
collapsed | Block | Whether block is collapsed |
created-at | Block | Creation timestamp (Unix ms) |
updated-at | Block | Modification timestamp (Unix ms) |
query-table | Block | Show query results as table |
query-properties | Block | Properties shown in query table |
query-sort-by | Block | Sort property for query table |
query-sort-desc | Block | Sort direction (true = descending) |
Property Value Types
- Plain text:
status:: active
- Page references:
tags:: [[project]], [[important]]
- Numbers:
rating:: 8
- Dates:
due:: [[Jan 15th, 2025]]
- Multiple values: Comma-separated —
tags:: value1, value2, value3
Important: Commas separate multiple values. A value containing a literal comma will be split.
Task Management
Task Keywords
LogSeq supports two configurable workflows (Settings > Editor > Preferred workflow):
Workflow 1 (default): TODO → DOING → DONE
Workflow 2: LATER → NOW → DONE
Additional markers: WAITING, CANCELED
- TODO Buy groceries
- DOING Write report
- DONE Send email
- LATER Read paper
- NOW Fix critical bug
- WAITING Response from client
- CANCELED Deprecated feature
DONE items display with strikethrough. Use /TODO or click the checkbox to cycle states.
Priority
- TODO [#A] Urgent task
- TODO [#B] Normal priority
- TODO [#C] Low priority
Deadlines and Scheduled Dates
- TODO Submit report
DEADLINE: <2025-01-15 Wed>
SCHEDULED: <2025-01-10 Mon>
Use /Deadline or /Scheduled slash commands to insert these with a date picker.
Namespaces
Namespaces create hierarchical page organization using /:
[[Projects/WebApp]]
[[Projects/WebApp/Frontend]]
[[Projects/WebApp/Backend]]
This creates a navigable hierarchy:
Projects (parent page)
Projects/WebApp (child page)
Projects/WebApp/Frontend (grandchild)
Projects/WebApp/Backend (grandchild)
Each namespace level is a separate page with breadcrumb navigation.
Aliases
Allow a page to be referenced by multiple names:
- title:: Artificial Intelligence
alias:: AI, Machine Intelligence
Referencing [[AI]] links to the Artificial Intelligence page.
Code Blocks
Inline code: `code`
Fenced code blocks with syntax highlighting:
- ```javascript
console.log("hello");
```
Org-mode style:
- #+BEGIN_SRC javascript
console.log("hello");
#+END_SRC
Math (KaTeX)
$E = mc^2$ Inline math
$$\int_0^\infty e^{-x} dx = 1$$ Block/display math
LogSeq uses KaTeX for rendering LaTeX expressions.
Tables
Standard markdown pipe-delimited tables:
- | Header 1 | Header 2 | Header 3 |
|----------|:--------:|---------:|
| Left | Center | Right |
| Cell | Cell | Cell |
Blockquotes
Markdown style:
- > This is a blockquote
> Second line
Org-mode style:
- #+BEGIN_QUOTE
This is a blockquote
#+END_QUOTE
Advanced Commands (Admonition Blocks)
Type < in a block to access these org-mode style commands:
- #+BEGIN_NOTE
This is a note
#+END_NOTE
- #+BEGIN_TIP
This is a tip
#+END_TIP
- #+BEGIN_IMPORTANT
This is important
#+END_IMPORTANT
- #+BEGIN_CAUTION
Exercise caution
#+END_CAUTION
- #+BEGIN_WARNING
This is a warning
#+END_WARNING
- #+BEGIN_PINNED
Pinned content
#+END_PINNED
Macros
Define custom macros in logseq/config.edn under :macros:
:macros {
"docs-url" "https://docs.logseq.com/#/page/$1"
"highlight" "[:mark \"$1\"]"
"iframe" "<iframe src=\"$1\" style=\"width:100%; height:600px;\"></iframe>"
}
Usage: {{docs-url getting-started}} — $1, $2, $3 are positional arguments.
Comments
- #+BEGIN_COMMENT
This is only visible in edit mode
#+END_COMMENT
Horizontal Rules
---
Complete Example
A realistic LogSeq page combining multiple features:
- title:: Project Alpha
tags:: [[project]], [[active]]
alias:: Alpha, PA
status:: in-progress
start-date:: [[Jan 10th, 2025]]
- ## Overview
- This project aims to build a new [[API Gateway]] for the [[Projects/WebApp/Backend]].
- Key requirements documented in ((block-uuid-here))
- ## Tasks
- TODO [#A] Design API schema
DEADLINE: <2025-01-20 Mon>
- Reference the [[OpenAPI]] specification
- Include authentication endpoints
- DOING [#B] Set up CI/CD pipeline
SCHEDULED: <2025-01-15 Wed>
- Using [[GitHub Actions]]
- DONE [#C] Initial project setup
- ## Notes
- #+BEGIN_TIP
Use `^^highlight^^` for important terms in documentation
#+END_TIP
- Meeting notes from <% today %>:
- Discussed timeline with [[John]]
- Action items tagged with #action
- ## References
- {{embed [[API Design Principles]]}}
Key Differences from Obsidian
| Feature | LogSeq | Obsidian |
|---|
| Structure | Block-based outliner (every line is a bullet) | Document-based (free-form markdown) |
| Properties | key:: value (inline) | YAML frontmatter (--- block) |
| Highlight | ^^text^^ | ==text== |
| Daily notes | Built-in journal system | Optional via plugin |
| Queries | Native Datalog queries | Search + Datalog via plugin |
| Indentation | Tabs in .md files | Spaces or tabs |
| File format | Markdown or Org-mode | Markdown only |
| Callouts | Org-mode #+BEGIN_NOTE etc. | > [!note] callout syntax |
References