mastodon_wordpress_autopost icon indicating copy to clipboard operation
mastodon_wordpress_autopost copied to clipboard

CamelCase in tags should work with hyphens

Open jikamens opened this issue 1 year ago • 1 comments

When a tag has hyphens in it the words separated by hyphens should be capitalized. Patch:

From 6186667dd20aa4f01e608d809894d4d4d42429dd Mon Sep 17 00:00:00 2001
From: Jonathan Kamens <[email protected]>
Date: Tue, 13 Jun 2023 11:13:20 -0400
Subject: [PATCH] Treat do CamelCase properly for words tags with hyphens in
 them

When we encounter a tag with hyphens in it, convert the hyphens to
spaces before doing the CamelCase conversion on the tag, so that words
separated by hyphens are properly capitalized.
---
 trunk/mastodon_autopost.php | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/trunk/mastodon_autopost.php b/trunk/mastodon_autopost.php
index be85606..02f93a5 100644
--- a/trunk/mastodon_autopost.php
+++ b/trunk/mastodon_autopost.php
@@ -552,6 +552,12 @@ class autopostToMastodon
     private function fixHashTag($tag)
     {
         $tag = html_entity_decode($tag, ENT_COMPAT, 'UTF-8');
+        // Treat hyphens as spaces for purposes of CamelCase capitalization.
+        // \u{2013} is en dash. \u{2014} is em dash.
+        // I tried putting the three characters inside [] instead of using |
+        // and it gave weird results, presumably because Unicode characters
+        // inside [] behaves weirdly, so that's why I'm using | here.
+        $tag = preg_replace("/-|\u{2013}|\u{2014}/", ' ', $tag);
         if (preg_match('/\s/', $tag)) {
            $tag = ucwords($tag);
         }
-- 
2.40.1

jikamens avatar Jun 13 '23 15:06 jikamens