From 6af01616482cb0aa6791e9b96099771a0f5a87be Mon Sep 17 00:00:00 2001 From: Arpan Mukherjee Date: Sat, 7 Mar 2026 00:29:46 +0530 Subject: [PATCH] Add Codeberg social link icon and URL pattern support Fixes #6813 --- .../images/social_link_icons/codeberg.svg | 164 ++++++++++++++++++ app/models/social_link.rb | 1 + test/models/social_link_test.rb | 7 + 3 files changed, 172 insertions(+) create mode 100644 app/assets/images/social_link_icons/codeberg.svg diff --git a/app/assets/images/social_link_icons/codeberg.svg b/app/assets/images/social_link_icons/codeberg.svg new file mode 100644 index 000000000..6b382b43b --- /dev/null +++ b/app/assets/images/social_link_icons/codeberg.svg @@ -0,0 +1,164 @@ + + + Codeberg logo + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + Codeberg logo + + + + Robert Martinez + + + + + Codeberg and the Codeberg Logo are trademarks of Codeberg e.V. + + + 2020-04-09 + + + Codeberg e.V. + + + codeberg.org + + + + + + + + + + + + + diff --git a/app/models/social_link.rb b/app/models/social_link.rb index 633d0ef9b..76d61644b 100644 --- a/app/models/social_link.rb +++ b/app/models/social_link.rb @@ -26,6 +26,7 @@ class SocialLink < ApplicationRecord URL_PATTERNS = { :bluesky => %r{\Ahttps?://(?:www\.)?bsky\.app/profile/([a-zA-Z0-9._-]+)}, + :codeberg => %r{\Ahttps?://(?:www\.)?codeberg\.org/([A-Za-z0-9_-]+)}, :discord => %r{\Ahttps?://(?:www\.)?discord\.com/users/(\d+)}, :facebook => %r{\Ahttps?://(?:www\.)?facebook\.com/([a-zA-Z0-9.]+)}, :flickr => %r{\Ahttps?://(?:www\.)?flickr\.com/people/([a-zA-Z0-9@._-]+)}, diff --git a/test/models/social_link_test.rb b/test/models/social_link_test.rb index dcca1994f..6dc2f2c5e 100644 --- a/test/models/social_link_test.rb +++ b/test/models/social_link_test.rb @@ -41,6 +41,13 @@ class SocialLinkTest < ActiveSupport::TestCase assert_equal "test", social_link.parsed[:name] end + def test_parsed_platform_codeberg + social_link = create(:social_link, :url => "https://codeberg.org/testuser") + + assert_equal "codeberg", social_link.parsed[:platform] + assert_equal "testuser", social_link.parsed[:name] + end + def test_parsed_platform_custom_name social_link = create(:social_link, :url => "https://discord.com/users/0") -- 2.47.3