added new_entry.sh script and template

new file:   content/2015-11-15-migrating-from-wordpress-to-pelican.rst
	new file:   new_entry.sh
	new file:   template_new_entry.rst
This commit is contained in:
Russell Ballestrini 2015-11-15 16:03:21 -05:00
parent 6353ffd34b
commit b722e82637
3 changed files with 96 additions and 0 deletions

View file

@ -0,0 +1,66 @@
Migrating from WordPress to Pelican
=========================================================
:author: Russell Ballestrini
:slug: migrating-from-wordpress-to-pelican
:date: 2015-11-15 15:39
:tags: Code, DevOps
:status: published
Its finally happening. I'm moving this blog from WordPress to Pelican.
This task has lived on my TODO list for over two years.
During the process of the move, I'm going to use this post to dump hints:
.. contents:: Hints:
Good luck!
WordPress XML to JSON
------------------------
I wrote `this tool to convert Wordpress XML dumps to JSON <https://github.com/russellballestrini/wordpress-xml-to-json>`_.
The tool is opinionated and removes lots of data.
Pelican-import
------------------------
A tool to convert WordPress .xml into .rst or .md files (ReStructuredText or MarkDown) is
`pelican-import <http://docs.getpelican.com/en/latest/importer.html>`_.
I suggest checking it out, even if you do not plan to use Pelican as your static site generator.
Add date to post filenames
---------------------------------
After using `pelican-import <http://docs.getpelican.com/en/latest/importer.html>`_ I had about 150 `.rst` files and I decided to put the date in the filename, so I wrote this short bash script tool to do the renames
.. code-block:: bash
files=`ls *.rst`
for file in $files:
do
the_date=`grep ':date:' "$file" | awk '{ print $2; }'`
mv "$file" "$the_date-$file"
done
Alter category to tags
-------------------------------
category and tags have different meanings and assumptions between wordpress and pelican. As a result I decided to change all my categories to tags using this command:
.. code-block:: bash
sed -i'' -e 's/:category:/:tags:/g' *.rst
Alter attachment and image paths
----------------------------------
fix paths to images / uploads to remove wp-content:
.. code-block:: bash
sed -i'' -e 's/\/wp-content//g' *.rst

22
new_entry.sh Normal file
View file

@ -0,0 +1,22 @@
#!/bin/bash
if [ "$1" = "" ]
then
echo "you need to pass a slug"
exit
fi
THESLUG=$1
THEDATE1=`date +%Y-%m-%d`
THEDATE2=`date +"%Y-%m-%d %H:%M"`
THEFILE="content/$THEDATE1-$THESLUG.rst"
# if the entry does not exist, make a copy from template
if [ ! -f $THEFILE ];
then
cp "template_new_entry.rst" "$THEFILE"
sed -i "s/THEDATE/$THEDATE2/g" "$THEFILE"
sed -i "s/THESLUG/$THESLUG/g" "$THEFILE"
fi
vim "$THEFILE"

8
template_new_entry.rst Normal file
View file

@ -0,0 +1,8 @@
THESLUG
=========================================================
:author: Russell Ballestrini
:slug: THESLUG
:date: THEDATE
:tags: Code, DevOps
:status: published