Welcome to Notion markdown export, a tool that allows you to export your Notion documents as Markdown files. With this program, you can easily convert your notes, project plans, and other documents from Notion into a format that is compatible with Hugo, a popular static site generator.
By using GitHub Actions to automate the export process, you can quickly and easily publish your Notion content on GitHub Pages. Whether you are a blogger, developer, or content creator, notion-md-export can help you streamline your workflow and share your ideas with the world.
name: Notion to Markdown
on:
workflow_dispatch:
jobs:
export_markdown:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
with:
fetch-depth: 0
- uses: lounge-n/notion-md-export@main
with:
notion_auth_token: ${{ secrets.NOTION_AUTH_TOKEN }}
notion_database_id: ${{ secrets.NOTION_DATABASE_ID }}
- name: Diff
id: diff
run: |
git add -N .
git diff --name-only --quiet
continue-on-error: true
- name: Commit & Push
run: |
set -x
git config user.name github-actions[bot]
git config user.email 41898282+github-actions[bot]@users.noreply.github.com
git add .
git commit --author=. -m 'update contents'
git push
if: steps.diff.outcome == 'failure'| Name | ||
|---|---|---|
| notion_auth_token | required | Auth token of the Notion. |
| notion_database_id | required | ID of the Notion database to be exorted. |
None.
| Property Type | Required | |
|---|---|---|
| Title | Title | Yes |
| Date | Date | Yes |
| Slug | Text | Yes |
| Publish | Checkbox | Yes |
| Tags | MutliSelect | (Optional) |
| Categories | MutliSelect | (Optional) |
| Description | Text | (Optional) |
| Keywords | MutliSelect | (Optional) |
| Draft | Boolean | (Optional) |
| Aliases | Text or MutliSelect | (Optional) |
If you set the page cover, it will be set as the "thumbnail" of Front Matter.
| Date | Slug | Export path | |
|---|---|---|---|
| 1 | 2022-12-24 | About | ./content/post/2022/12/24/about/ |
| 2 | 2022-12-24 | /About | ./content/about/ |
| 3 | 2022-12-24 | (None) | ./content/post/2022/12/24/ |
| 4 | (None) | About | ./content/about/ |
| 5 | (None) | /About | ./content/about/ |
| 6 | (None) | (None) | ./content/default/ |
This script can also be used on the command line. Requires Kotlin.
$ ./notion-md-export.kts <Notion auth token> <Notion database id>- Text paragraph
- Embed page
- ToDo list
- Heading 1, 2, 3
- Simple table(Column list)
- Bulleted list & Numbered list
- Toggle list
- Quote
- Divider
- Call out
- Mention page, user
- Date
- Emoticon
- Equation (but requires MathJax)
- Image (Embed and Linked)
- Bookmark
- Embed audio
- Linked audio (SDK unsupported)
- Embed video (SDK unsupported)
- Linked video
- Embed file
- Linked file
- Code