Embedding Discourse comments in another site does not support case-sensitive URLs.
Using the standard embedding instructions provided in the admin interface, under Customize > Embedding, the host site provides the discourseEmbedURL value. If providing case-sensitive URL paths, such as http://site.com/AAA and http://site.com/aaa, the same comment thread will be embedded in both pages.
The root of this issue is in the normalizeURL function in Discourse’s public/javascript/embed.js file, which currently reads:
function normalizeUrl(url) {
return url.toLowerCase().replace(/^https?(\:\/\/)?/, '');
}
I would argue there is no reason to lower case the URL provided. The URL is provided by the host application, which should be able to make decisions about what is considered a unique URL. Removing toLowerCase() should be a non-breaking change that will allow case-sensitive URLs to be supported properly.
function normalizeUrl(url) {
return url.replace(/^https?(\:\/\/)?/, '');
}
Yes, it is. I have case-sensitive identifiers in the URLs in the action directory site I run for my app (example).
In retrospect, I should probably not have used case-senstive IDs, but that’s water under the bridge - would be hard to change now. Used a generator similar to those used for URLs shorteners like bitly (which are also case-sensitive).
I’d agree this could be a problem if it were a case that the user had to enter these URLs, but since the embedding is done programmatically, it doesn’t seem necessary to downcast.
The W3 standards say that except for machine names URLs should be case sensitive. While it may be confusing I think it makes most sense to adhere to the standards out there.
Yeah. I’m generally a hard-liner when it comes to case-sensitive filenames. I’ve been indignant about operating systems that lazily ignore case in filenames and cause people to do stupid stuff for at almost three decades (or at least since about 1995 when I started developing web apps and the stupid Mac had a case-insensitive file system). I’m not sure what happened. It was at 9:43 AM, so I should have been wide awake and even had coffee. Maybe someone hacked my account and wrote that?
But now it’s been too long for me to delete the post to remove the record of this.
It looks like this is one of those situations where one user previously had issues due to it being case insensitive, and now the opposite! What a fun world software development is!
@techAPJ I hate to do this, but could you revert the case insensitive part? It is technically allowed and I think we should stick to the standards here now.