Tool to export raw Logseq Markdown files (with public:: page property) into Markdown blog posts with front matter.

  • Takes Logseq page properties (title:: Hello world) and turns them into Front Matter properties title: Hello World.
  • Changes the Markdown syntax to remove the top-level bullet points.


  • Download the latest binary for your OS in the Releases page
  • go install github.com/viktomas/[email protected] if you have Go installed



  -blogFolder string
        [MANDATORY] Folder where all public pages are exported.
  -graphPath string
        [MANDATORY] Path to the root of your logseq graph containing /pages and /journals directories.
        relative path within blogFolder where the assets (images) should be stored (e.g. 'static/images/logseq'). Default is logseq-images (default "logseq-images")
    	  path that the images are going to be served on on the web (e.g. '/public/images/logseq'). Default is /logseq-images (default "/logseq-images")
  -unquotedProperties string
        comma-separated list of logseq page properties that won't be quoted in the markdown frontmatter, e.g. 'date,public,slug'

Command example

This is how I run the command on my machine:

logseq-export \
  --graphPath /Users/tomas/workspace/private/notes \
  --blogFolder /Users/tomas/workspace/private/blog \
  --unquotedProperties date,slug,public,tags \
  --assetsRelativePath static/images/logseq \
  --webAssetsPathPrefix /images/logseq

This will take my logseq notes and copies them to blog, it will also copy all the images to /Users/tomas/workspace/private/blog/static/images/logseq, but the image links themselves are going to have /images/logseq prefix (![alt](/images/logseq/image.png)).

Logseq page properties with a special meaning (all optional)

  • public – as soon as this page property is present (regardless of value), the page gets exported
  • slug used as a file name
  • date it’s used as a file name prefix
  • folder the page is going to be exported in this subfolder e.g. content/posts
    • the folder property always uses / (forward slash) but on Windows, it gets translated to \ in folder path
    • if the base export folder is a and the folder page property is b/c, then the resulting page will be in a/b/c folder


logseq test page


content/posts/2022-09-25-test-page.md :

date: 2022-09-25
categories: "category"
public: true
slug: test-page
folder: "content/posts"

This is an example paragraph

- Second level means bullet points

- `logseq-export` also supports multi-level bullet points

const v = "Hello world"

You can

Multi-line strings


View Github