0
0
Fork 0
mirror of https://github.com/discourse/discourse.git synced 2026-08-11 02:59:07 +08:00
discourse/script
Régis Hanol 8b03a42cd7
DEV: Linkify site setting references in descriptions (#40338)
Site setting descriptions frequently mention other settings, but the
YAML had no consistent convention. The same reference appeared in at
least four styles -- `foo` in backticks, 'foo' in single quotes,
'humanized name' in single quotes, or just `bare_snake_case` -- and none
of them rendered as a link the admin could click to jump to the
referenced setting.

Introduce a compact marker, `{{setting:foo}}`, and expand it in
`SiteSettings::LabelFormatter.description`. The marker resolves to a
linkified anchor pointing at
`/admin/site_settings/category/all_results?filter=foo`, with the
humanized setting name as the visible label. Wiring the expansion at the
description seam (rather than in the I18n freedom patch) keeps the
change surgical: no impact on `I18n.t` for unrelated translations, no
`html_safe` plumbing changes in the JSON error pipeline.

Migrate ~67 references in `config/locales/server.en.yml` to the new
marker, covering every flavour of inconsistency found by two sweeps
(snake_case identifiers and quoted humanized names). The sweep also
turned up a stale reference: `enable_linkedin_oidc_logins` described
`linkedin_client_id`/`linkedin_client_secret`, which were renamed to
`linkedin_oidc_client_id`/`linkedin_oidc_client_secret` years ago.

Teach `script/i18n_lint.rb` to whitelist the new marker -- previously
any `{{...}}` was flagged as an accidental Handlebars-style mistake.
Reset the `label a` margin inherited from `discourse.scss` inside
`.setting-value`, so the linkified anchors sit flush against surrounding
text in checkbox-label descriptions.

Ref - t/148687

**BEFORE**

<img width="1594" height="1279" alt="2026-05-27 @ 14 27 33"
src="https://github.com/user-attachments/assets/aeaf2ee3-ce8c-484c-805d-cec9298f068b"
/>

**AFTER**

<img width="1594" height="1279" alt="2026-05-27 @ 14 25 32"
src="https://github.com/user-attachments/assets/bbead088-6f80-4903-b320-31b87d821428"
/>
2026-06-01 10:31:18 +02:00
..
benchmarks DEV: Update rubocop-discourse to 3.6.0 (#24945) 2023-12-18 13:44:36 +01:00
bulk_import DEV: Allow multiple solutions in solved plugin (#39806) 2026-05-28 07:12:28 -05:00
demon_test
import_scripts DEV: Enable Style/RedundantSelf rubocop rule (#40098) 2026-05-19 19:27:45 +02:00
.gitignore
alice.txt
analyse_message_bus.rb
analyze_sidekiq_queues.rb
assemble_ember_build.rb DEV: Replace JS build system with Rolldown (#35963) 2026-05-29 11:11:55 +01:00
backport.rb DEV: Fixup script/backport.rb for unmerged PRs (#39794) 2026-05-06 16:27:57 +01:00
bench.rb DEV: Remove Unicorn web server in favor of Pitchfork (#39032) 2026-04-01 15:04:59 +02:00
biggest_objects.rb DEV: Enable Style/RedundantBegin rubocop rule (#40096) 2026-05-19 18:44:54 +02:00
boot_mem.rb DEV: Enable Style/RedundantBegin rubocop rule (#40096) 2026-05-19 18:44:54 +02:00
cache_critical_dns DEV: Enable Style/RedundantBegin rubocop rule (#40096) 2026-05-19 18:44:54 +02:00
check_forking.rb
check_reproducible_assets.rb DEV: Prepare for rename of app/assets/javascripts/ -> frontend/ 2025-10-22 16:24:11 +01:00
copyright-deposit
db_timestamps_mover.rb DEV: Enable Style/RedundantBegin rubocop rule (#40096) 2026-05-19 18:44:54 +02:00
diff_heaps.rb DEV: Update to lastest rubocop-discourse 2024-05-27 18:06:14 +02:00
discourse DEV: Enable Style/RedundantBegin rubocop rule (#40096) 2026-05-19 18:44:54 +02:00
docker_test.rb
i18n_lint.rb DEV: Linkify site setting references in descriptions (#40338) 2026-06-01 10:31:18 +02:00
install_minio_binaries.rb Revert "DEV: Skip MinioRunner until min.io renews their cert (#25137)" (#25138) 2024-01-05 14:08:27 +08:00
list_bundled_plugins DEV: Update core lint commands to only affect bundled plugins (#29824) 2024-11-19 18:56:14 +00:00
local_minio_s3.rb DEV: Enable Style/RedundantBegin rubocop rule (#40096) 2026-05-19 18:44:54 +02:00
memory-analysis DEV: Enable Style/RedundantBegin rubocop rule (#40096) 2026-05-19 18:44:54 +02:00
memstats.rb DEV: Enable Style/RedundantSelf rubocop rule (#40098) 2026-05-19 19:27:45 +02:00
micro_bench.rb
mwrap_sidekiq DEV: Enable Style/RedundantBegin rubocop rule (#40096) 2026-05-19 18:44:54 +02:00
profile_db_generator.rb DEV: Enable Style/RedundantBegin rubocop rule (#40096) 2026-05-19 18:44:54 +02:00
promote_migrations DEV: Promote old post-deploy migrations to pre-deploy (#38595) 2026-03-13 19:09:30 +00:00
publish_built_assets.rb DEV: Remove (again) the old non-rollup plugin compiler (#39419) 2026-04-21 21:07:46 +02:00
rails
redis_memory.rb
require_profiler.rb DEV: Enable Style/RedundantBegin rubocop rule (#40096) 2026-05-19 18:44:54 +02:00
silence_successful_output
spawn_backup_restore.rb DEV: Rename Backuper to Creator 2026-01-22 18:46:02 +00:00
start_test_db.rb DEV: Improve db_structure tasks (#40067) 2026-05-15 11:40:07 +01:00
switch_container_ruby
test_email_settings.rb
test_mem.rb DEV: Enable Style/RedundantBegin rubocop rule (#40096) 2026-05-19 18:44:54 +02:00
test_memory_leak.rb DEV: Enable Style/RedundantParentheses rubocop rule (#40095) 2026-05-19 15:48:09 +02:00
test_pretty_text.rb
thread_detective.rb DEV: Enable Style/RedundantSelf rubocop rule (#40098) 2026-05-19 19:27:45 +02:00
user_simulator.rb DEV: Clean up requires (#34946) 2025-09-24 12:00:22 +02:00