Commit Graph

32 Commits

Author SHA1 Message Date
6417173082 DEV: Apply syntax_tree formatting to lib/* 2023-01-09 12:10:19 +00:00
ec0212e56b FIX: Make category slugs lowercase (#11277)
Admins could specify category slug with upper case characters and same slug,
but with different cases could be used simultaneously.
2021-01-12 17:28:33 +02:00
6ab12ed96b FIX: If a prettified slug is a number, return defaultt (#8554)
Meta thread: https://meta.discourse.org/t/sending-a-pm-with-the-following-title-causes-an-error/135654/3

We had an issue where if someone sent a PM with crazy
characters that are stripped and we end up with only
a number, the topic redirect errored because the slug was
a number. so instead we return the default as well if
the slug is a number after prettification
2019-12-17 10:34:20 +10:00
226fc07a17 FIX: Don't allow category slugs to be entirely digits 2019-12-04 01:22:29 +00:00
2304dcf993 FIX: Do not truncate encoded slugs
Trying to truncate encoded slugs will mean that we have to keep the URL
valid, which can be tricky as you have to be aware of multibyte
characters.

Since we already have upper bounds for the title, the slug won't grow
for more than title*6 in the worst case. The slug column in the topic
table can store that just fine.

Added a test to ensure that a generated slug is a valid URL too, so we
don't introduce regressions in the future.
2019-10-17 13:38:31 -03:00
76ab0350f1 FIX: Properly encoded slugs when configured to (#8158)
When an admin changes the site setting slug_generation_method to
encoded, we weren't really encoding the slug, but just allowing non-ascii
characters in the slug (unicode).

That brings problems when a user posts a link to topic without the slug, as
our topic controller tries to redirect the user to the correct URL that contains
the slug with unicode characters. Having unicode in the Location header in a
response is a RFC violation and some browsers end up in a redirection loop.

Bug report: https://meta.discourse.org/t/-/125371?u=falco

This commit also checks if a site uses encoded slugs and clear all saved slugs
in the db so they can be regenerated using an onceoff job.
2019-10-11 12:38:16 -03:00
30990006a9 DEV: enable frozen string literal on all files
This reduces chances of errors where consumers of strings mutate inputs
and reduces memory usage of the app.

Test suite passes now, but there may be some stuff left, so we will run
a few sites on a branch prior to merging
2019-05-13 09:31:32 +08:00
56f6065393 FIX: Generate ASCII slug with default locale 2019-04-29 18:29:58 +02:00
3566c6f02b FIX: strip emoji string from slug 2018-04-18 11:32:32 +05:30
401fbdbfe7 FIX: Topic#title were being parameterized when encoded slug is
enabled.
2017-10-27 11:02:47 +08:00
f30366744a Fix the build. 2017-10-26 17:09:00 +08:00
7c3123a2dd Downcase encoded slug by default and more specs 2017-10-26 16:50:29 +08:00
5012d46cbd Add rubocop to our build. (#5004) 2017-07-28 10:20:09 +09:00
0328141e05 FIX: prevent creation of tags with invalid characters 2016-10-12 15:44:36 -04:00
c0e25b5a9a Replace certain uses of 'gsub' with 'tr' or 'chomp' for a speed
improvement
2016-06-10 22:08:37 -05:00
4c00eef8b5 FIX: category custom slug can't be set when generation method is none 2015-05-13 16:54:19 +08:00
2139a6208b FIX: multisite migration fails when adding a new site because SiteSetting.slug_generation_method is nil 2015-05-05 18:50:54 -04:00
a48dd1cc28 store the slug as the title is, only sanitize the slug
and prettify code
2015-05-05 18:33:16 +08:00
b772ff6e13 FEATURE: add slug geneartion options 2015-05-05 18:08:30 +08:00
8a236c06e2 FEATURE: Adds transliteration of German umlauts in slugs
- Moves the already existing transliteration rules into `transliterations.en.yml` (there's no need to translate this for every language). The same goes for the stringex configuration.
- Doesn't calculate the default slug for *zh_CN* and *ja* anymore. It hasn't been used anyway since stringex is used instead.
- Removes a wrong comment from the Russion transliteration file (I hate wrong comments)
2015-02-27 23:53:58 +01:00
Sam
e668d770ac FEATURE: remove english korean slugs 2014-11-18 11:52:10 +11:00
667758ff40 Add stringex for Chinese slug generation 2014-11-11 21:12:07 +08:00
Sam
da22c0f359 omit single quotes from slug 2013-06-03 09:08:34 +10:00
b82a5dfd56 Move logic to reject slugs that are just numbers into the slug module 2013-05-30 11:54:02 -04:00
dc62136642 various typos in comments 2013-03-06 08:52:24 +01:00
cafc75b238 remove trailing whitespaces ❤️ 2013-02-26 07:31:35 +03:00
44642d4d0c slug should replace underscores 2013-02-14 17:04:30 -06:00
4a390bc562 remove reinvention of #parameterize 2013-02-12 17:53:06 -06:00
50cf8cd4d5 Set up slug.rb for obvious method extractions. 2013-02-11 20:36:54 -06:00
9daf53df73 lean on Inflector transliteration 2013-02-11 20:34:38 -06:00
ee8d68842e Strip leading and trailing slug punctuation. 2013-02-06 19:52:14 -06:00
21b5628528 Initial release of Discourse 2013-02-05 14:16:51 -05:00