Python Script for migrating from Wordpress to Hugo
Here’s a simple script that I wrote in python for helping to migrate from a wordpress blog to a static hugo site.
- It uses the jinja, slugify, and mysql.connector libraries.
- It connects directly to the Wordpress database and extracts the compiled HTML from Wordpress
- For simplicity, it does not handle tags
from dataclasses import dataclass
from datetime import datetime
import mysql.connector
from jinja2 import Template
from slugify import slugify
@dataclass
class Post:
date:datetime
title:str
content:str
filename:str
posts = []
try:
conn = mysql.connector.connect(
host='localhost',
port=3306,
database='wordpress',
user='wp_admin',
password='$YOUR_DB_PASSWORD'
)
cursor = conn.cursor()
query = """
select post_date, post_title, post_content from $YOUR_POSTS_TABLE
where post_type = 'post'
order by post_date
"""
cursor.execute(query)
rows = cursor.fetchall()
for row in rows:
posts.append(Post(row[0], row[1], row[2], slugify(row[1])))
template = Template("""+++
title = "{{title}}"
date = {{date}}
draft = false
tags = ['']
+++
{{content}}
""")
for post in posts:
path = f"import/{post.date.year}-{post.filename}.md"
with open(path, "w") as f:
f.write(
template.render(
title=post.title,
date=post.date.strftime('%Y-%m-%dT%H:%M:%S%z'),
content=post.content
)
)
print([post.filename for post in posts])
except mysql.connector.Error as e:
print(e)
finally:
cursor.close()
conn.close()
Thank you for reading! Share your thoughts with me on mastodon or via email.
Check out some more stuff to read down below.
Most popular posts this month
Recent Favorite Blog Posts
This is a collection of the last 8 posts that I bookmarked.
- Read this at my funeral from jwz
- The Raspberry Pi 5 is no match for a tini-mini-micro PC from Louwrentius
- Ubuntu Blog: Pair Programming: The Ubuntu Way from Planet Ubuntu
- Fedidevs dev update #2 from Anže’s Blog
- Saying thanks to open source maintainers from Tall, Snarky Canadian
- Switching to GNU/Linux: Mentally from Planet KDE | English
- Ed Crewe: Software Development with Generative AI - 2024 Update from Planet Python
- Silicon Valley’s Best Kept Secret: Founder Liquidity from Stefan Theard
Articles from blogs I follow around the net
"Modern web technologies"
Basecamp's web site on Safari 13.1.2, macOS 10.13.6: Are you curious about what those "modern web technologies" are? As far as I can tell, the technology in question is a recent innovation known as "drawing your checkboxes in the right pla…
via jwz July 1, 2024The State of Data Breaches, Part 2: The Trilogy of Players
Last week, I wrote about The State of Data Breaches and got loads of feedback. It was predominantly sympathetic to the position I find myself in running HIBP, and that post was mostly one of frustration: lack of disclosure, standoffish organisations, down…
via Troy Hunt June 30, 2024Tyan Thunder HX FT83B-B7149 Intel Xeon 6 PCIe GPU AI Server
We saw the Tyan Thunder HX FT83B-B7149 a 11x PCIe Gen5 slot system for GPUs and AI accelerators at Computex 2024 The post Tyan Thunder HX FT83B-B7149 Intel Xeon 6 PCIe GPU AI Server appeared first on ServeTheHome.
via ServeTheHome June 30, 2024Generated by openring