aboutsummaryrefslogtreecommitdiff
path: root/md/postDeployWSL.sh
blob: b8a85708b3ed07f14b972048b63e40a419dde8c8 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
#!/bin/sh
# converts md to .tmpl.html with pandoc
# Usage: ./postDeploy.sh title_of_post.md type
# type can be 'blog' or 'projects' in my case

if [ -z $3 ]
then
  base_dir="/home/ascerba/go/alexscerba.com"
else
  base_dir="$3"
fi

readonly posts_dir="$base_dir/html/$2"
readonly post_temp="$base_dir/md/POST_TEMPLATE.tmpl.html"

post=$(basename "$1" .md) 
echo "converting $1 to HTML"
echo "Outputting at '$posts_dir/$post.tmpl.html'"

# pandoc for md to html
pandoc -f markdown-auto_identifiers -t html --template=$post_temp --wrap=none -o "$posts_dir/$post.tmpl.html" "$1"

# # adds in filename to path no longer needed
sed -i "s;src=\";src=\"/static/media/$post/;" "$posts_dir/$post.tmpl.html"

# Pull images from <p> tags
sed -i "s;<p><img;<img;" "$posts_dir/$post.tmpl.html"
sed -i "s;/></p>;/>;" "$posts_dir/$post.tmpl.html"

# Same but for video
sed -i "s;<p><video;<video;" "$posts_dir/$post.tmpl.html"
sed -i "s;</video></p>;</video>;" "$posts_dir/$post.tmpl.html"

# makes http & https links have target _blank and rel noopener noreferrer
perl -i -0pe 's/(<\W*a\W*[^>]*href=)(["'"'"']http[s]?:\/\/[^"'"'"'>]*["'"'"'])([^>]*>)/$1$2 target="_blank" rel="noopener noreferrer"$3/g' "$posts_dir/$post.tmpl.html"

media_dir="$base_dir/static/media/$post"

if [ -d "$base_dir/md/staged/images" ]
then
  echo "Converting and deploying images:"
  if [ ! -d "$base_dir/static/media/$post" ]
  then
    mkdir "$base_dir/static/media/$post"
  fi
  for image in $(ls "$base_dir/md/staged/images")
  do
    echo "Converting $image and deploying at $media_dir/$image"
    convert $base_dir/md/staged/images/$image -resize 1000x1000\> "$media_dir/$image"
    /home/ascerba/.local/bin/cwebp -q 70 "$media_dir/$image" "$media_dir/${image%.*}.webp"
  done
fi

if [ -d "$base_dir/md/staged/videos" ]
then
  echo "Deploying videos:"
  if [ ! -d "$base_dir/static/media/$post" ]
  then
    mkdir "$base_dir/static/media/$post"
  fi
  for video in $(ls "$base_dir/md/staged/videos")
  do
    echo "Copying $video to $media_dir/$video"
    cp $base_dir/md/staged/videos/$video $media_dir/$video
  done
fi

#echo "Contents of 'staged' will not be moved or deleted"
echo "Moving staged contents to 'deployed' folder"
mv -vT "$base_dir/md/staged" "$base_dir/md/deployed/$post"
mkdir "$base_dir/md/staged"
cp "$base_dir/md/template.md" "$base_dir/md/staged/NewPost.md"
echo "Post deploy complete!"
echo "Dont forget to edit $post_dir/$post.tmpl.html if any videos were added...!"