agentsclimarketplace

Logseq markdown

Skill jluo41/logseq-skills/skills/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

Install
npx -y skills add jluo41/logseq-skills --skill logseq-markdown

Assembled 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 in journals/ directory

Text Formatting

FormatSyntaxResult
Bold**text**bold
Italic*text*italic
Strikethrough~~text~~struck
Highlight^^text^^highlighted
Underline<ins>text</ins>underlined
Inline code`code`code
SuperscriptX^{2}X²
SubscriptH_{2}OH₂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
![alt text](../assets/image.png)         Local image
![alt text](https://example.com/img.png) 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)

PropertyScopeDescription
titlePageOverride page title (different from filename)
iconPageIcon identifier for the page
tagsBothTags listed in "Pages tagged with X"
aliasBothSynonyms for a page (comma-separated)
templateBothDesignates block as a template
template-including-parentBothInclude parent block when inserting template
filtersPageStore selected filters for linked references
publicPageInclude page in export (true/false)
exclude-from-graph-viewPageExclude from global graph

System Properties (Auto-managed)

PropertyScopeDescription
idBlockBlock's UUID
collapsedBlockWhether block is collapsed
created-atBlockCreation timestamp (Unix ms)
updated-atBlockModification timestamp (Unix ms)
query-tableBlockShow query results as table
query-propertiesBlockProperties shown in query table
query-sort-byBlockSort property for query table
query-sort-descBlockSort 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

FeatureLogSeqObsidian
StructureBlock-based outliner (every line is a bullet)Document-based (free-form markdown)
Propertieskey:: value (inline)YAML frontmatter (--- block)
Highlight^^text^^==text==
Daily notesBuilt-in journal systemOptional via plugin
QueriesNative Datalog queriesSearch + Datalog via plugin
IndentationTabs in .md filesSpaces or tabs
File formatMarkdown or Org-modeMarkdown only
CalloutsOrg-mode #+BEGIN_NOTE etc.> [!note] callout syntax

References

Keep looking

Skills are one crate of 627,801. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.