The Linker::link() function is deprecated as of 1.28, and the new LinkRenderer is preferred instead. This task is to migrate extensions to use the new code instead of the deprecated function.
Skills required: PHP, MediaWiki
A list of usages of Linker::link() from PhpStorm:
```
Directory | Usage count
extensions/AbuseFilter 2 (done)
extensions/AbuseFilter/special 2 (done)
extensions/AbuseFilter/Views 17 (done)
extensions/ApprovedRevs 2 (partially done)
extensions/ArticleFeedback 3 (done)
extensions/ArticleFeedbackv5 1 2 (done)
extensions/ArticleFeedbackv5/api 1 (done)
extensions/ArticleRatings 1 (done)
extensions/BibManager/includes 7 (done)
extensions/BibManager/includes/specials 2 (done)
extensions/BlockAndNuke 3 (done)
extensions/BlogPage 2 (done)
extensions/BlueSpiceExtensions/ArticleInfo 2 (in progress)
extensions/BlueSpiceExtensions/CountThings/views 1 (in progress)
extensions/BlueSpiceExtensions/ExtendedSearch/includes 1 (in progress)
extensions/BlueSpiceExtensions/ExtendedSearch/includes/SearchIndex 6 (in progress)
extensions/BlueSpiceExtensions/ExtensionInfo 1 (in progress)
extensions/BlueSpiceExtensions/PageAccess/includes/specials 1 (in progress)
extensions/BlueSpiceExtensions/PageAssignments/includes 3 (in progress)
extensions/BlueSpiceExtensions/PageAssignments/includes/api 1 (in progress)
extensions/BlueSpiceExtensions/Readers/includes/api 4 (in progress)
extensions/BlueSpiceExtensions/Review 6 (in progress)
extensions/BlueSpiceExtensions/RSSStandards 1 (in progress)
extensions/BlueSpiceExtensions/ShoutBox 1 (in progress)
extensions/BlueSpiceExtensions/SmartList 1 (in progress)
extensions/BlueSpiceExtensions/UserSidebar 1 (in progress)
extensions/BlueSpiceExtensions/WhoIsOnline/views 1 (in progress)
extensions/BlueSpiceExtensions/WidgetBar/views 1 (in progress)
extensions/BlueSpiceFoundation/includes/api 2 (in progress)
extensions/BlueSpiceFoundation/includes/skins 1 (in progress)
extensions/BlueSpiceFoundation/includes/utility 1 (in progress)
extensions/BookManagerv2 9
extensions/BreadCrumbs 2 (done)
extensions/Cargo 2 (partially done)
extensions/Cargo/drilldown 1 (done)
extensions/Cargo/specials 2 (done)
extensions/CentralAuth/includes 3
extensions/CentralAuth/includes/GlobalRename 1
extensions/CentralAuth/includes/specials 5 (done)
extensions/CentralNotice/includes 3
extensions/CentralNotice/includes/HtmlFormElements 2
extensions/CentralNotice/special 9 (in progress)
extensions/Challenge 10
extensions/Challenge/templates 9
extensions/CheckUser
extensions/CheckUser/specials 1 (done)
extensions/CleanChanges 2
extensions/CodeReview/backend 1 (done)
extensions/CodeReview/ui 25 (done)
extensions/CommentStreams/includes 2
extensions/CommunityApplications 1
extensions/Configure/specials 4
extensions/ContributionsList 1
extensions/DataTransfer/specials 1
extensions/Disambiguator/specials 1 (done)
extensions/DiscussionThreading 4
extensions/DPLforum 7 (done)
extensions/DumpHTML 1
extensions/Echo 1
extensions/EducationProgram/includes 5
extensions/EducationProgram/includes/actions 4
extensions/EducationProgram/includes/pagers 1
extensions/EducationProgram/includes/specials 1 (done)
extensions/EventLogging/includes 1
extensions/FanBoxes 5
extensions/Favorites 12
extensions/FlaggedRevs/frontend 5
extensions/FlaggedRevs/frontend/specialpages/reports 12 (done)
extensions/Flow 1
extensions/Flow/includes 2
extensions/Flow/includes/Block 3
extensions/Flow/includes/Formatter 4
extensions/Flow/includes/Parsoid/Fixer 1
extensions/Gadgets 4 (done)
extensions/GeoCrumbs 1
extensions/GlobalBlocking/includes/specials 1
extensions/GlobalCssJs 1
extensions/GlobalPreferences 1
extensions/GlobalUsage 5 (done)
extensions/GoogleMaps 1
extensions/GWToolset/includes/Forms 5 (done)
extensions/GWToolset/includes/Handlers/Forms 1 (done)
extensions/GWToolset/includes/Models 1 (done)
extensions/GWToolset/includes/Specials 1 (done)
extensions/HitCounters/includes 1
extensions/ImageTagging 3
extensions/ImportFreeImages 1
extensions/IndexFunction 5
extensions/Interlanguage 2
extensions/intersection 1
extensions/Interwiki 1
extensions/LastUserLogin 1
extensions/LifeWeb 1 (done)
extensions/LightweightRDFa 1
extensions/LinkFilter 3
extensions/LiquidThreads/api 2 (done)
extensions/LiquidThreads/classes 16 (done)
extensions/LiquidThreads/pages 16 (done)
extensions/Maintenance 4
extensions/MassEditRegex 1
extensions/MassMessage/includes/content 1
extensions/MassMessage/includes/logging 2
extensions/MiniInvite 4
extensions/MobileFrontend/includes/skins 1 (done)
extensions/MobileFrontend/includes/specials 4 (done)
extensions/MoodBar 6
extensions/Newsletter/includes/logging 1 (done)
extensions/Newsletter/includes/specials 1 (done)
extensions/Nuke 1 (done)
extensions/NukeDPL 1
extensions/OATHAuth 1
extensions/OAuthAuthentication/utils 2
extensions/OpenID 6
extensions/OpenStackManager/nova 2
extensions/OpenStackManager/special 37
extensions/PageBlock 3
extensions/PageForms/includes 4
extensions/PageForms/specials 2
extensions/PageSchemas/specials 1
extensions/Patroller 1
extensions/Petition 1
extensions/Phalanx 2
extensions/PictureGame 3
extensions/PollNY 9 (done)
extensions/PrefStats 1
extensions/Premoderation 3
extensions/ProofreadPage 4
extensions/QuizGame 10 (done)
extensions/ReaderFeedback/specialpages 1
extensions/RecentActivityFeed 1
extensions/Renameuser 2 (in progress)
extensions/Renameuser/specials 2 (in progress)
extensions/ReplaceText 6
extensions/RevisionCommentSupplement/special 3
extensions/Scribunto/engines/LuaSandbox 1
extensions/SecurePoll/includes/pages 2
extensions/SelectCategory 1
extensions/SemanticDrilldown/includes 2
extensions/SemanticDrilldown/specials 1
extensions/SemanticForms/includes 4
extensions/SemanticForms/specials 2
extensions/SemanticMaps/src/queryprinters1
extensions/SemanticMediaWiki/includes 3
extensions/SemanticMediaWiki/includes/datavalues 1
extensions/SemanticMediaWiki/src/Query 1
extensions/SemanticPageMaker/includes/widgets/datatype 1
extensions/SemanticPageMaker/specials/WidgetAssembler 5
extensions/SemanticResultFormats/formats/calendar 1
extensions/SemanticSifter/src/main/parserfunction 1
extensions/SideBarMenu/src 1
extensions/SiteScout 1
extensions/SmiteSpam 3 (done)
extensions/SmiteSpam/api 2 (done)
extensions/SmoothGallery 1
extensions/SocialProfile/SystemGifts 4 (done)
extensions/SocialProfile/UserActivity 1 (done)
extensions/SocialProfile/UserBoard 3 (done)
extensions/SocialProfile/UserGifts 6 (done)
extensions/SocialProfile/UserProfile 2 (done)
extensions/SocialProfile/UserRelationship 7 (done)
extensions/SocialProfile/UserStats 3 (done)
extensions/SpamDiffTool 1
extensions/SpecialNamespaces 3
extensions/SpellingDictionary/includes 2
extensions/SportsTeams 25
extensions/SSLClientAuthentication 1
extensions/Sudo 5
extensions/TimedMediaHandler 3
extensions/TitleIcon 1
extensions/Translate/specials 8 (done)
extensions/Translate/tag 5
extensions/Translate/utils 5
extensions/TwoFactorAuthentication 2
extensions/UnusedRedirects 2
extensions/UserMerge 2 (done)
extensions/UserPageViewTracker 2
extensions/UserStatus 4
extensions/Video 1
extensions/VisualEditor 2 (done)
extensions/VoteNY 1
extensions/WantedPagesFromNS 2
extensions/WatchSubpages 2
extensions/Wikibase/client/includes/RecentChanges 1
extensions/Wikibase/client/includes/Specials 1 (done)
extensions/WikiForum 3
extensions/WikiLexicalData/OmegaWiki 5
extensions/Wikilog 20
extensions/WikimediaIncubator 4 (partially done)
extensions/WYSIWYG/WYSIWYG 1
includes 27
includes/actions 12 (done)
includes/cache 1 (done)
includes/changetags 1 (done)
includes/logging 6 (done)
includes/page 1
includes/revisiondelete 5 (done)
includes/skins 3
includes/specialpage 6 (done)
includes/specials 32 (done)
includes/specials/pagers 6 (done)
includes/user 1
tests/phpunit/includes 2
tests/phpunit/includes/logging 4
```
Example conversion (simple): https://gerrit.wikimedia.org/r/#/c/303075/
Documentation: https://www.mediawiki.org/wiki/Manual:LinkRenderer
Note: By default LinkRenderer does HTML escaping, so whatever is being passed in as the text may need to be adjusted to avoid double escaping.