Generate slug from post filenames

Rather than having Pandoc generate the id, which has the potential to change
over time and cause 404s, let's just generate the slug from the filename so
that the ids will never change.  This also solves the awkward question of
what the filename should be, since it was previously something arbitrary.

This mass rename was accomplished via this simple shell script:

  for p in *.meta; do
    slug=$( recsel -P slug "$p" | xargs basename )
    mv -v "${p/.meta/.md}" "${p:0:10}-$slug.md"
  done

with minor manual tweaks where I saw fit.  Of course, now I have some pretty
long filenames, which is undesirable.

The next step is to compare it with the slugs currently on mikegerwitz.com
and make them match.  That's the next commit, and should be pretty simple.
master
Mike Gerwitz 2019-01-08 01:07:25 -05:00
parent b182ea79b3
commit 9916ad55dc
Signed by: mikegerwitz
GPG Key ID: 8C917B7F5DC51BA2
84 changed files with 16 additions and 11 deletions

View File

@ -1,4 +1,7 @@
# The use of trademarks in free software has always been a curious and unclear concept to me, primarily due to my ignorance on the topic # Trademarks in Free Software
The use of trademarks in free software has always been a curious and unclear
concept to me, primarily due to my ignorance on the topic.
Trademarks, unless abused, are intended to protect consumers' interests---are Trademarks, unless abused, are intended to protect consumers' interests---are
they getting the brand that they think they're getting? If you download Firefox, they getting the brand that they think they're getting? If you download Firefox,

View File

@ -1,6 +1,6 @@
id: git-horror-story id: git-horror-story
type: post type: post
ref: 2012-05-22-git-horror-story ref: 2012-05-22-a-git-horror-story-repository-integrity-with-signed-commits
id: coope id: coope
type: latex type: latex
@ -14,7 +14,7 @@ pubdate: 2013-05-13
id: national-uproar id: national-uproar
type: post type: post
ref: 2013-06-10-national-uproar ref: 2013-06-10-national-uproar-a-comprehensive-overview-of-the-nsa-leaks-and-revelations
id: gnu-kwindows id: gnu-kwindows
type: post type: post
@ -22,20 +22,20 @@ ref: 2016-04-06-gnu-kwindows
id: gitlab-gitorious-freesw id: gitlab-gitorious-freesw
type: post type: post
ref: 2015-05-20-gitlab-gitorious-freesw ref: 2015-05-20-gitlab-gitorious-and-free-software
id: copyleft-vs-community id: copyleft-vs-community
type: post type: post
ref: 2013-08-13-copyleft-vs-community ref: 2013-08-13-freebsd-clang-and-gcc-copyleft-vs-community
id: re-fsf-waste-away id: re-fsf-waste-away
type: post type: post
ref: 2013-01-26-re-fsf-waste-high-priority ref: 2013-01-26-re-fsf-wastes-away-another-high-priority-project
id: vlc-lgpl id: vlc-lgpl
type: post type: post
ref: 2012-11-17-vlc-lgpl ref: 2012-11-17-vlcs-move-to-lgpl
id: re-skype-let-spy id: re-skype-let-spy
type: post type: post
ref: 2013-01-30-re-skype-let-spy ref: 2013-01-30-re-who-does-skype-let-spy

View File

@ -50,9 +50,11 @@ main && /^<h1 / {
# Grab the generated id from the header and use it to # Grab the generated id from the header and use it to
# generate a complete slug. # generate a complete slug.
printf "slug: %s/%s\n", \ printf "slug: %s\n", \
gensub( /^([0-9]+)-([0-9]+).*$/, "\\1/\\2", "", name[0] ), \ gensub( /^([0-9]+)-([0-9]+)-[0-9]+-(.*)\.[a-z]+$/,
gensub( /^<h[^>]+ id="([^"]+)".*$/, "\\1", "" ) "\\1/\\2/\\3",
"",
name[0] )
# Skip the date line immediately following the header and grab the first # Skip the date line immediately following the header and grab the first
# line of the abstract. # line of the abstract.