mirror of
https://github.com/tanrax/notion-to-joplin.git
synced 2024-11-21 20:45:41 +01:00
Add README
This commit is contained in:
parent
503016694a
commit
2d528c2c87
31
README.md
Normal file
31
README.md
Normal file
@ -0,0 +1,31 @@
|
||||
# This script is used to convert a Notion export to a Joplin import (MD - Markdown directory).
|
||||
|
||||
## Requirements
|
||||
|
||||
- Python 3.6+
|
||||
|
||||
## Usage
|
||||
|
||||
1. Export your Notion workspace as Markdown & CSV (with subpages) and unzip the archive.
|
||||
|
||||
2. Download script.
|
||||
|
||||
```bash
|
||||
curl -O https://github.com/tanrax/notion-to-joplin/raw/main/notion-to-joplin.py
|
||||
```
|
||||
|
||||
3. Run the script:
|
||||
|
||||
```bash
|
||||
python3 notion-to-joplin.py -f <path/to/your/export>
|
||||
```
|
||||
|
||||
Example:
|
||||
|
||||
```bash
|
||||
python3 notion-to-joplin.py -f b25c8352-f87b-4b5b-ce0a-61d09c5bd81b_Export-9e0c6ec4-762b-4d70-b30e-045ece8b4722.zip
|
||||
```
|
||||
|
||||
4. Import the generated folder into Joplin.
|
||||
|
||||
You can now import the folder `import to joplin` to Joplin (File > Import > MD - Markdown directory).
|
@ -1,4 +1,10 @@
|
||||
#!/usr/bin/env python3
|
||||
# This script is used to convert a Notion export to a Joplin import (MD - Markdown directory).
|
||||
# Step 1: Get the notion export zip file
|
||||
# Step 2: Unzip the notion export zip file
|
||||
# Step 3: Rename every file with a .md extension with the heading of the file and fix all the links
|
||||
# Step 4: Rename all folder. Remove the "hash" from the ending of the folder name and fix all the links
|
||||
|
||||
from argparse import ArgumentParser
|
||||
import sys
|
||||
import zipfile
|
||||
@ -8,12 +14,6 @@ from os import path
|
||||
import ntpath
|
||||
import urllib.parse
|
||||
|
||||
|
||||
# Step 1: Get the notion export zip file
|
||||
# Step 2: Unzip the notion export zip file
|
||||
# Step 3: Rename every file with a .md extension with the heading of the file and fix all the links
|
||||
# Step 4: Rename all folder. Remove the "hash" from the ending of the folder name
|
||||
|
||||
# VARIABLES
|
||||
FOLDER_EXTRACTION = "import to joplin"
|
||||
MARKDOWN_EXTENSION = "md"
|
||||
@ -73,3 +73,26 @@ for filename in glob.iglob(path_to_files, recursive=True):
|
||||
old_filename_encoded, heading_encoded
|
||||
)
|
||||
file.write(text_to_write)
|
||||
print("Renaming files and fixing links done.")
|
||||
|
||||
## Step 4: Rename all folder. Remove the "hash" from the ending of the folder name
|
||||
print("Renaming folders...")
|
||||
path_of_folders = path.join(FOLDER_EXTRACTION, '**/*')
|
||||
for folder in glob.iglob(path_of_folders, recursive=True):
|
||||
if path.isdir(folder):
|
||||
current_folder_name = path.basename(folder)
|
||||
new_folder_name = " ".join(current_folder_name.split(" ")[:-1])
|
||||
shutil.move(folder, path.join(path.dirname(folder), new_folder_name))
|
||||
# Fix all the links
|
||||
old_folder_name_encoded = urllib.parse.quote(current_folder_name)
|
||||
new_folder_name_encoded = urllib.parse.quote(new_folder_name)
|
||||
for filename_to_fix in glob.iglob(path_to_files, recursive=True):
|
||||
with open(filename_to_fix, "r") as file:
|
||||
lines_to_fix = file.readlines()
|
||||
with open(filename_to_fix, "w") as file:
|
||||
text_to_write = "".join(lines_to_fix).replace(
|
||||
old_folder_name_encoded, new_folder_name_encoded
|
||||
)
|
||||
file.write(text_to_write)
|
||||
print("Renaming folders done.")
|
||||
print("All done. You can now import the folder \"" + FOLDER_EXTRACTION + "\" to Joplin (File > Import > MD - Markdown directory)")
|
||||
|
Loading…
Reference in New Issue
Block a user