Logseq markdown
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.From its SKILL.md
npx -y skills add jluo41/logseq-skills --skill logseq-markdownAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 1 stars1 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
SKILL.md
10.0 KB, as published. Nobody here has run it
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 injournals/directory
Text Formatting
| Format | Syntax | Result |
|---|---|---|
| Bold | **text** | bold |
| Italic | *text* | italic |
| Strikethrough | ~~text~~ | |
| 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 |