Repository: Liquipedia/Lua-Modules
Pull request #5591: feat(mainpage): new GeoGuessr main page
Author: login: steve020607
Labels: name: g: geoguessr
description: GeoGuessr
name: c: main_page
Created: 2025-03-10T09:12:17Z | Merged: 2025-05-06T14:53:38Z

## Summary
GeoGuessr New Main Page

## How did you test this change?
https://liquipedia.net/geoguessr/User:Steve23/Main_Page



Diff:
diff --git a/lua/wikis/geoguessr/FilterButtons/Config.lua b/lua/wikis/geoguessr/FilterButtons/Config.lua
new file mode 100644
index 00000000000..d96ee26d144
--- /dev/null
+++ b/lua/wikis/geoguessr/FilterButtons/Config.lua
@@ -0,0 +1,45 @@
+---
+-- @Liquipedia
+-- wiki=geoguessr
+-- page=Module:FilterButtons/Config
+--
+-- Please see https://github.com/Liquipedia/Lua-Modules to contribute
+--
+
+local Tier = require('Module:Tier/Utils')
+local Config = {}
+
+---@type FilterButtonCategory[]
+Config.categories = {
+	{
+		name = 'liquipediatier',
+		property = 'liquipediaTier',
+		load = function(category)
+			category.items = {}
+			for _, tier in Tier.iterate('tiers') do
+				table.insert(category.items, tier.value)
+			end
+		end,
+		defaultItems = {'1', '2', '3'},
+		transform = function(tier)
+			return Tier.toName(tier)
+		end,
+		expandKey = "liquipediatiertype",
+	},
+	{
+		name = 'liquipediatiertype',
+		property = 'liquipediaTierType',
+		expandable = true,
+		load = function(category)
+			category.items = {}
+			for _, tiertype in Tier.iterate('tierTypes') do
+				table.insert(category.items, Tier.toIdentifier(tiertype.value))
+			end
+		end,
+		transform = function(tiertype)
+			return select(2, Tier.toName(1, tiertype))
+		end,
+	},
+}
+
+return Config
diff --git a/lua/wikis/geoguessr/MainPageLayout/data.lua b/lua/wikis/geoguessr/MainPageLayout/data.lua
new file mode 100644
index 00000000000..e6d42596895
--- /dev/null
+++ b/lua/wikis/geoguessr/MainPageLayout/data.lua
@@ -0,0 +1,200 @@
+---
+-- @Liquipedia
+-- wiki=geoguessr
+-- page=Module:MainPageLayout/data
+--
+-- Please see https://github.com/Liquipedia/Lua-Modules to contribute
+--
+
+local Lua = require('Module:Lua')
+
+local FilterButtonsWidget = Lua.import('Module:Widget/FilterButtons')
+local TournamentsTicker = Lua.import('Module:Widget/Tournaments/Ticker')
+
+local HtmlWidgets = Lua.import('Module:Widget/Html/All')
+local Div = HtmlWidgets.Div
+local MatchTicker = Lua.import('Module:Widget/MainPage/MatchTicker')
+local ThisDayWidgets = Lua.import('Module:Widget/MainPage/ThisDay')
+local TransfersList = Lua.import('Module:Widget/MainPage/TransfersList')
+
+local CONTENT = {
+	usefulArticles = {
+		heading = 'Useful Articles',
+		body = '{{Liquipedia:Useful Articles}}',
+		padding = true,
+		boxid = 1503,
+	},
+	wantToHelp = {
+		heading = 'Want To Help?',
+		body = '{{Liquipedia:Want_to_help}}',
+		padding = true,
+		boxid = 1504,
+	},
+	transfers = {
+		heading = 'Transfers',
+		body = TransfersList{
+			transferPage = function ()
+				return 'Player Transfers/' .. os.date('%Y')
+			end
+		},
+		boxid = 1509,
+	},
+	thisDay = {
+		heading = ThisDayWidgets.Title(),
+		body = ThisDayWidgets.Content(),
+		padding = true,
+		boxid = 1510,
+	},
+	specialEvents = {
+		noPanel = true,
+		body = '{{Liquipedia:Special Event}}',
+		boxid = 1511,
+	},
+	filterButtons = {
+		noPanel = true,
+		body = Div{
+			css = { width = '100%', ['margin-bottom'] = '8px' },
+			children = { FilterButtonsWidget() }
+		}
+	},
+	matches = {
+		heading = 'Matches',
+		body = MatchTicker{},
+		padding = true,
+		boxid = 1507,
+		panelAttributes = {
+			['data-switch-group-container'] = 'countdown',
+		},
+	},
+	tournaments = {
+		heading = 'Tournaments',
+		body = TournamentsTicker{
+			upcomingDays = 60,
+			completedDays = 30
+		},
+		boxid = 1508,
+	},
+}
+
+return {
+	banner = {
+		lightmode = 'GeoGuessr full logo allmode.svg',
+		darkmode = 'GeoGuessr full logo allmode.svg',
+	},
+	metadesc = 'Comprehensive GeoGuessr wiki with articles covering everything from formats, to strategies,' ..
+	'to tournaments, to competitive players and teams',
+	title = 'GeoGuessr Wiki | Liquipedia',
+	navigation = {
+		{
+			file = 'GeoGuessr_World_Map_Icon.jpg',
+			title = 'Maps',
+			link = 'Portal:Maps',
+			count = {
+				method = 'CATEGORY',
+				category = 'Maps',
+			},
+		},
+		{
+			file = 'GeoGuessr Format Image.png',
+			title = 'Game Modes',
+			link = 'Portal:Modes',
+		},
+		{
+			file = 'Jake Lyons at GeoGuessr World Cup 2024.jpg',
+			title = 'Players',
+			link = 'Portal:Players',
+			count = {
+				method = 'LPDB',
+				table = 'player',
+			},
+		},
+		{
+			file = 'Hardecki at the ALGS Stockholm Playoffs.jpg',
+			title = 'Transfers',
+			link = 'Portal:Transfers',
+			count = {
+				method = 'LPDB',
+				table = 'transfer',
+			},
+		},
+		{
+			file = 'Blinky Geoguessr World Cup 2024 Champion.jpg',
+			title = 'Tournaments',
+			link = 'Portal:Tournaments',
+			count = {
+				method = 'LPDB',
+				table = 'tournament',
+			},
+		},
+		{
+			file = 'NRG hodsic at the ALGS Mannheim Split 2 Playoffs.jpg',
+			title = 'Statistics',
+			link = 'Portal:Statistics',
+		},
+	},
+	layouts = {
+		main = {
+			{ -- Left
+				size = 6,
+				children = {
+					{
+						mobileOrder = 1,
+						content = CONTENT.specialEvents,
+					},
+					{
+						mobileOrder = 3,
+						content = CONTENT.transfers,
+					},
+					{
+						mobileOrder = 6,
+						content = CONTENT.wantToHelp,
+					},
+				}
+			},
+			{ -- Right
+				size = 6,
+				children = {
+					{
+						mobileOrder = 2,
+						children = {
+							{
+								children = {
+									{
+										noPanel = true,
+										content = CONTENT.filterButtons,
+									},
+								},
+							},
+							{
+								size = 6,
+								children = {
+									{
+										noPanel = true,
+										content = CONTENT.matches,
+									},
+								},
+							},
+							{
+								size = 6,
+								children = {
+									{
+										noPanel = true,
+										content = CONTENT.tournaments,
+									},
+								},
+							},
+						},
+					},
+					{
+						mobileOrder = 4,
+						content = CONTENT.thisDay,
+					},
+					{
+						mobileOrder = 5,
+						content = CONTENT.usefulArticles,
+					},
+				},
+			},
+		},
+	},
+}
diff --git a/stylesheets/commons/Banner.less b/stylesheets/commons/Banner.less
index 8114217a7db..ad658d7c3a2 100644
--- a/stylesheets/commons/Banner.less
+++ b/stylesheets/commons/Banner.less
@@ -54,6 +54,12 @@
 		}
 	}
 
+	.wiki-geoguessr & {
+		@media ( min-width: 768px ) {
+			background: url( https://liquipedia.net/commons/images/7/74/GeoGuessr_Banner.jpg ) no-repeat center / cover;
+		}
+	}
+
 	.wiki-hearthstone & {
 		@media ( min-width: 768px ) {
 			background: url( https://liquipedia.net/commons/images/4/4d/Hearthstone_banner_bg.png ) no-repeat center / cover;


Reviews:
user: login: hjpalpha
body: linter:
state: COMMENTED
author_association: COLLABORATOR
submitted_at: 2025-03-10T09:18:15Z
user: login: ElectricalBoy
body: lua files need to be moved to the new directories
see #5596 
state: COMMENTED
author_association: COLLABORATOR
submitted_at: 2025-03-10T16:02:08Z
user: login: SlothyMan
body: missing content
state: COMMENTED
author_association: COLLABORATOR
submitted_at: 2025-04-10T10:32:38Z
user: login: SlothyMan
body: ~~liquipedia app content~~
state: COMMENTED
author_association: COLLABORATOR
submitted_at: 2025-04-10T10:50:48Z
user: login: ElectricalBoy
body: files should be renamed so that they match names on wiki (see #5600)
state: CHANGES_REQUESTED
author_association: COLLABORATOR
submitted_at: 2025-05-03T12:17:22Z
user: login: steve020607
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-05-03T12:36:10Z
user: login: ElectricalBoy
body: - `lua/wikis/geoguessr/filter_buttons/filter_buttons_config.lua` should be `lua/wikis/geoguessr/FilterButtons/Config.lua`
- `lua/wikis/geoguessr/main_page/data.lua` should be `lua/wikis/geoguessr/MainPageLayout/data.lua`
state: CHANGES_REQUESTED
author_association: COLLABORATOR
submitted_at: 2025-05-04T02:38:54Z
user: login: steve020607
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-05-04T04:29:13Z
user: login: ElectricalBoy
state: APPROVED
author_association: COLLABORATOR
submitted_at: 2025-05-04T04:37:55Z
user: login: hjpalpha
body: seems okay on phone
state: APPROVED
author_association: COLLABORATOR
submitted_at: 2025-05-04T05:07:59Z
user: login: Rathoz
state: APPROVED
author_association: COLLABORATOR
submitted_at: 2025-05-06T14:53:23Z

Review comments:
diff_hunk: @@ -0,0 +1,215 @@
+---
+-- @Liquipedia
+-- wiki=geoguessr
+-- page=Module:MainPageLayout/data
+--
+-- Please see https://github.com/Liquipedia/Lua-Modules to contribute
+--
+
+local Lua = require('Module:Lua')
+
+local FilterButtonsWidget = Lua.import('Module:Widget/FilterButtons')
+local MatchTickerContainer = Lua.import('Module:Widget/Match/Ticker/Container')
+local TournamentsTicker = Lua.import('Module:Widget/Tournaments/Ticker')
+
+local HtmlWidgets = Lua.import('Module:Widget/Html/All')
+local Div = HtmlWidgets.Div
+local Link = Lua.import('Module:Widget/Basic/Link')
+local ThisDayWidgets = Lua.import('Module:Widget/MainPage/ThisDay')
+local TransfersList = Lua.import('Module:Widget/MainPage/TransfersList')
+local WidgetUtil = Lua.import('Module:Widget/Util')
+
+local CONTENT = {
+	wantToHelp = {
+		heading = 'Want To Help?',
+		body = '{{Liquipedia:Want_to_help}}',
+		padding = true,
+		boxid = 1504,
+	},
+	transfers = {
+		heading = 'Transfers',
+		body = TransfersList{
+			transferPage = function ()
+				return 'Player Transfers/' .. os.date('%Y')
+			end
+		},
+		boxid = 1509,
+	},
+	thisDay = {
+		heading = ThisDayWidgets.Title(),
+		body = ThisDayWidgets.Content(),
+		padding = true,
+		boxid = 1510,
+	},
+	specialEvents = {
+		noPanel = true,
+		body = '{{Liquipedia:Special Event}}',
+		boxid = 1511,
+	},
+	filterButtons = {
+		noPanel = true,
+		body = Div{
+			css = { width = '100%', ['margin-bottom'] = '8px' },
+			children = { FilterButtonsWidget() }
+		}
+	},
+	matches = {
+		heading = 'Matches',
+		body = WidgetUtil.collect(
+			MatchTickerContainer{},
+			Div{
+				css = {
+					['white-space'] = 'nowrap',
+					display = 'block',
+					margin = '0 10px',
+					['font-size'] = '15px',
+					['font-style'] = 'italic',
+					['text-align'] = 'center',
+				},
+				children = { Link{ children = 'See more matches', link = 'Liquipedia:Matches'} }
+			}
+		),
+		padding = true,
+		boxid = 1507,
+	},
+	tournaments = {
+		heading = 'Tournaments',
+		body = TournamentsTicker{
+			upcomingDays = 60,
+			completedDays = 30
+		},
+		boxid = 1508,
+	},
+}
+
+return {
+	banner = {
+		lightmode = 'GeoGuessr full logo allmode.svg',
+		darkmode = 'GeoGuessr full logo allmode.svg',
+	},
+	metadesc = 'Comprehensive GeoGuessr wiki with articles covering everything from formats, to strategies,' .. 
path: components/main_page/wikis/geoguessr/main_page_layout_data.lua
user: login: hjpalpha
body: ```suggestion
	metadesc = 'Comprehensive GeoGuessr wiki with articles covering everything from formats, to strategies,' ..
```
created_at: 2025-03-10T09:18:07Z
author_association: COLLABORATOR
diff_hunk: @@ -0,0 +1,215 @@
+---
+-- @Liquipedia
+-- wiki=geoguessr
+-- page=Module:MainPageLayout/data
+--
+-- Please see https://github.com/Liquipedia/Lua-Modules to contribute
+--
+
+local Lua = require('Module:Lua')
+
+local FilterButtonsWidget = Lua.import('Module:Widget/FilterButtons')
+local MatchTickerContainer = Lua.import('Module:Widget/Match/Ticker/Container')
+local TournamentsTicker = Lua.import('Module:Widget/Tournaments/Ticker')
+
+local HtmlWidgets = Lua.import('Module:Widget/Html/All')
+local Div = HtmlWidgets.Div
+local Link = Lua.import('Module:Widget/Basic/Link')
+local ThisDayWidgets = Lua.import('Module:Widget/MainPage/ThisDay')
+local TransfersList = Lua.import('Module:Widget/MainPage/TransfersList')
+local WidgetUtil = Lua.import('Module:Widget/Util')
+
+local CONTENT = {
path: lua/wikis/geoguessr/main_page/main_page_layout_data.lua
user: login: SlothyMan
body: ```suggestion
local CONTENT = {
	usefulArticles = {
		heading = 'Useful Articles',
		body = '{{Liquipedia:Useful Articles}}',
		padding = true,
		boxid = 1503,
	},
```
created_at: 2025-04-10T10:32:22Z
author_association: COLLABORATOR
diff_hunk: @@ -0,0 +1,216 @@
+---
+-- @Liquipedia
+-- wiki=geoguessr
+-- page=Module:MainPageLayout/data
+--
+-- Please see https://github.com/Liquipedia/Lua-Modules to contribute
+--
+
+local Lua = require('Module:Lua')
+
+local FilterButtonsWidget = Lua.import('Module:Widget/FilterButtons')
+local MatchTickerContainer = Lua.import('Module:Widget/Match/Ticker/Container')
+local TournamentsTicker = Lua.import('Module:Widget/Tournaments/Ticker')
+
+local HtmlWidgets = Lua.import('Module:Widget/Html/All')
+local Div = HtmlWidgets.Div
+local Link = Lua.import('Module:Widget/Basic/Link')
+local ThisDayWidgets = Lua.import('Module:Widget/MainPage/ThisDay')
+local TransfersList = Lua.import('Module:Widget/MainPage/TransfersList')
+local WidgetUtil = Lua.import('Module:Widget/Util')
+
+local CONTENT = {
+	usefulArticles = {
+		heading = 'Useful Articles',
+		body = '{{Liquipedia:Useful Articles}}',
+		padding = true,
+		boxid = 1503,
+	},
+	wantToHelp = {
+		heading = 'Want To Help?',
+		body = '{{Liquipedia:Want_to_help}}',
+		padding = true,
+		boxid = 1504,
+	},
path: lua/wikis/geoguessr/main_page/main_page_layout_data.lua
user: login: SlothyMan
body: ```suggestion
	},
	liquipediaApp = {
		heading = 'Download the Liquipedia App',
		padding = true,
		body = '{{Liquipedia:App}}',
		boxid = 1505,
	},
```
created_at: 2025-04-10T10:49:55Z
author_association: COLLABORATOR
diff_hunk: @@ -0,0 +1,216 @@
+---
+-- @Liquipedia
+-- wiki=geoguessr
+-- page=Module:MainPageLayout/data
+--
+-- Please see https://github.com/Liquipedia/Lua-Modules to contribute
+--
+
+local Lua = require('Module:Lua')
+
+local FilterButtonsWidget = Lua.import('Module:Widget/FilterButtons')
+local MatchTickerContainer = Lua.import('Module:Widget/Match/Ticker/Container')
+local TournamentsTicker = Lua.import('Module:Widget/Tournaments/Ticker')
+
+local HtmlWidgets = Lua.import('Module:Widget/Html/All')
+local Div = HtmlWidgets.Div
+local Link = Lua.import('Module:Widget/Basic/Link')
+local ThisDayWidgets = Lua.import('Module:Widget/MainPage/ThisDay')
+local TransfersList = Lua.import('Module:Widget/MainPage/TransfersList')
+local WidgetUtil = Lua.import('Module:Widget/Util')
+
+local CONTENT = {
+	usefulArticles = {
+		heading = 'Useful Articles',
+		body = '{{Liquipedia:Useful Articles}}',
+		padding = true,
+		boxid = 1503,
+	},
+	wantToHelp = {
+		heading = 'Want To Help?',
+		body = '{{Liquipedia:Want_to_help}}',
+		padding = true,
+		boxid = 1504,
+	},
+	transfers = {
+		heading = 'Transfers',
+		body = TransfersList{
+			transferPage = function ()
+				return 'Player Transfers/' .. os.date('%Y')
+			end
+		},
+		boxid = 1509,
+	},
+	thisDay = {
+		heading = ThisDayWidgets.Title(),
+		body = ThisDayWidgets.Content(),
+		padding = true,
+		boxid = 1510,
+	},
+	specialEvents = {
+		noPanel = true,
+		body = '{{Liquipedia:Special Event}}',
+		boxid = 1511,
+	},
+	filterButtons = {
+		noPanel = true,
+		body = Div{
+			css = { width = '100%', ['margin-bottom'] = '8px' },
+			children = { FilterButtonsWidget() }
+		}
+	},
+	matches = {
+		heading = 'Matches',
+		body = WidgetUtil.collect(
+			MatchTickerContainer{},
+			Div{
+				css = {
+					['white-space'] = 'nowrap',
+					display = 'block',
+					margin = '0 10px',
+					['font-size'] = '15px',
+					['font-style'] = 'italic',
+					['text-align'] = 'center',
+				},
+				children = { Link{ children = 'See more matches', link = 'Liquipedia:Matches'} }
+			}
+		),
+		padding = true,
+		boxid = 1507,
+	},
+	tournaments = {
+		heading = 'Tournaments',
+		body = TournamentsTicker{
+			upcomingDays = 60,
+			completedDays = 30
+		},
+		boxid = 1508,
+	},
+}
+
+return {
+	banner = {
+		lightmode = 'GeoGuessr full logo allmode.svg',
+		darkmode = 'GeoGuessr full logo allmode.svg',
+	},
+	metadesc = 'Comprehensive GeoGuessr wiki with articles covering everything from formats, to strategies,' ..
+	'to tournaments, to competitive players and teams',
+	title = 'GeoGuessr Wiki | Liquipedia',
+	navigation = {
+		{
+			file = 'GeoGuessr_World_Map_Icon.jpg',
+			title = 'Maps',
+			link = 'Portal:Maps',
+			count = {
+				method = 'CATEGORY',
+				category = 'Maps',
+			},
+		},
+		{
+			file = 'GeoGuessr Format Image.png',
+			title = 'Formats',
+			link = 'Portal:Formats',
+		},
+		{
+			file = 'Consus at GeoGuessr World Cup 2024.jpg',
+			title = 'Players',
+			link = 'Portal:Players',
+			count = {
+				method = 'LPDB',
+				table = 'player',
+			},
+		},
+		{
+			file = 'Hardecki at the ALGS Stockholm Playoffs.jpg',
+			title = 'Transfers',
+			link = 'Portal:Transfers',
+			count = {
+				method = 'LPDB',
+				table = 'transfer',
+			},
+		},
+		{
+			file = 'Blinky Geoguessr World Cup 2024 Champion.jpg',
+			title = 'Tournaments',
+			link = 'Portal:Tournaments',
+			count = {
+				method = 'LPDB',
+				table = 'tournament',
+			},
+		},
+		{
+			file = 'NRG hodsic at the ALGS Mannheim Split 2 Playoffs.jpg',
+			title = 'Statistics',
+			link = 'Portal:Statistics',
+		},
+	},
+	layouts = {
+		main = {
+			{ -- Left
+				size = 6,
+				children = {
+					{
+						mobileOrder = 1,
+						content = CONTENT.specialEvents,
+					},
+					{
+						mobileOrder = 4,
+						content = CONTENT.transfers,
+					},
+					{
+						mobileOrder = 8,
+						content = CONTENT.wantToHelp,
+					},
path: lua/wikis/geoguessr/main_page/main_page_layout_data.lua
user: login: SlothyMan
body: ```suggestion
					},
					{
						mobileOrder = 9,
						content = CONTENT.liquipediaApp,
					},
```
created_at: 2025-04-10T10:50:31Z
author_association: COLLABORATOR
diff_hunk: @@ -0,0 +1,212 @@
+---
+-- @Liquipedia
+-- wiki=geoguessr
+-- page=Module:MainPageLayout/data
+--
+-- Please see https://github.com/Liquipedia/Lua-Modules to contribute
+--
+
+local Lua = require('Module:Lua')
+
+local FilterButtonsWidget = Lua.import('Module:Widget/FilterButtons')
+local MatchTickerContainer = Lua.import('Module:Widget/Match/Ticker/Container')
+local TournamentsTicker = Lua.import('Module:Widget/Tournaments/Ticker')
+
+local HtmlWidgets = Lua.import('Module:Widget/Html/All')
+local Div = HtmlWidgets.Div
+local Link = Lua.import('Module:Widget/Basic/Link')
+local ThisDayWidgets = Lua.import('Module:Widget/MainPage/ThisDay')
+local TransfersList = Lua.import('Module:Widget/MainPage/TransfersList')
+local WidgetUtil = Lua.import('Module:Widget/Util')
+
+local CONTENT = {
+	usefulArticles = {
+		heading = 'Useful Articles',
+		body = '{{Liquipedia:Useful Articles}}',
+		padding = true,
+		boxid = 1503,
+	},
+	wantToHelp = {
+		heading = 'Want To Help?',
+		body = '{{Liquipedia:Want_to_help}}',
+		padding = true,
+		boxid = 1504,
+	},
+	transfers = {
+		heading = 'Transfers',
+		body = TransfersList{
+			transferPage = function ()
+				return 'Player Transfers/' .. os.date('%Y')
+			end
+		},
+		boxid = 1509,
+	},
+	thisDay = {
+		heading = ThisDayWidgets.Title(),
+		body = ThisDayWidgets.Content(),
+		padding = true,
+		boxid = 1510,
+	},
+	specialEvents = {
+		noPanel = true,
+		body = '{{Liquipedia:Special Event}}',
+		boxid = 1511,
+	},
+	filterButtons = {
+		noPanel = true,
+		body = Div{
+			css = { width = '100%', ['margin-bottom'] = '8px' },
+			children = { FilterButtonsWidget() }
+		}
+	},
+	matches = {
+		heading = 'Matches',
+		body = WidgetUtil.collect(
+			MatchTickerContainer{},
+			Div{
+				css = {
+					['white-space'] = 'nowrap',
+					display = 'block',
+					margin = '0 10px',
+					['font-size'] = '15px',
+					['font-style'] = 'italic',
+					['text-align'] = 'center',
+				},
+				children = { Link{ children = 'See more matches', link = 'Liquipedia:Matches'} }
+			}
+		),
path: lua/wikis/geoguessr/main_page/main_page_layout_data.lua
user: login: ElectricalBoy
body: should use `Module:Widget/MainPage/MatchTicker` instead (see #5674)
created_at: 2025-05-03T12:14:46Z
author_association: COLLABORATOR
diff_hunk: @@ -0,0 +1,212 @@
+---
+-- @Liquipedia
+-- wiki=geoguessr
+-- page=Module:MainPageLayout/data
+--
+-- Please see https://github.com/Liquipedia/Lua-Modules to contribute
+--
+
+local Lua = require('Module:Lua')
+
+local FilterButtonsWidget = Lua.import('Module:Widget/FilterButtons')
+local MatchTickerContainer = Lua.import('Module:Widget/Match/Ticker/Container')
+local TournamentsTicker = Lua.import('Module:Widget/Tournaments/Ticker')
+
+local HtmlWidgets = Lua.import('Module:Widget/Html/All')
+local Div = HtmlWidgets.Div
+local Link = Lua.import('Module:Widget/Basic/Link')
+local ThisDayWidgets = Lua.import('Module:Widget/MainPage/ThisDay')
+local TransfersList = Lua.import('Module:Widget/MainPage/TransfersList')
+local WidgetUtil = Lua.import('Module:Widget/Util')
+
+local CONTENT = {
+	usefulArticles = {
+		heading = 'Useful Articles',
+		body = '{{Liquipedia:Useful Articles}}',
+		padding = true,
+		boxid = 1503,
+	},
+	wantToHelp = {
+		heading = 'Want To Help?',
+		body = '{{Liquipedia:Want_to_help}}',
+		padding = true,
+		boxid = 1504,
+	},
+	transfers = {
+		heading = 'Transfers',
+		body = TransfersList{
+			transferPage = function ()
+				return 'Player Transfers/' .. os.date('%Y')
+			end
+		},
+		boxid = 1509,
+	},
+	thisDay = {
+		heading = ThisDayWidgets.Title(),
+		body = ThisDayWidgets.Content(),
+		padding = true,
+		boxid = 1510,
+	},
+	specialEvents = {
+		noPanel = true,
+		body = '{{Liquipedia:Special Event}}',
+		boxid = 1511,
+	},
+	filterButtons = {
+		noPanel = true,
+		body = Div{
+			css = { width = '100%', ['margin-bottom'] = '8px' },
+			children = { FilterButtonsWidget() }
+		}
+	},
+	matches = {
+		heading = 'Matches',
+		body = WidgetUtil.collect(
+			MatchTickerContainer{},
+			Div{
+				css = {
+					['white-space'] = 'nowrap',
+					display = 'block',
+					margin = '0 10px',
+					['font-size'] = '15px',
+					['font-style'] = 'italic',
+					['text-align'] = 'center',
+				},
+				children = { Link{ children = 'See more matches', link = 'Liquipedia:Matches'} }
+			}
+		),
path: lua/wikis/geoguessr/main_page/main_page_layout_data.lua
user: login: steve020607
body: [1d8f303](https://github.com/Liquipedia/Lua-Modules/pull/5591/commits/1d8f3039b1882e47f0488c6b50868b132448e9ac)
done

created_at: 2025-05-03T12:36:10Z
author_association: CONTRIBUTOR
diff_hunk: @@ -0,0 +1,197 @@
+---
+-- @Liquipedia
+-- wiki=geoguessr
+-- page=Module:MainPageLayout/data
+--
+-- Please see https://github.com/Liquipedia/Lua-Modules to contribute
+--
+
+local Lua = require('Module:Lua')
+
+local FilterButtonsWidget = Lua.import('Module:Widget/FilterButtons')
+local TournamentsTicker = Lua.import('Module:Widget/Tournaments/Ticker')
+
+local HtmlWidgets = Lua.import('Module:Widget/Html/All')
+local Div = HtmlWidgets.Div
+local MatchTicker = Lua.import('Module:Widget/MainPage/MatchTicker')
+local ThisDayWidgets = Lua.import('Module:Widget/MainPage/ThisDay')
+local TransfersList = Lua.import('Module:Widget/MainPage/TransfersList')
+
+local CONTENT = {
+	usefulArticles = {
+		heading = 'Useful Articles',
+		body = '{{Liquipedia:Useful Articles}}',
+		padding = true,
+		boxid = 1503,
+	},
+	wantToHelp = {
+		heading = 'Want To Help?',
+		body = '{{Liquipedia:Want_to_help}}',
+		padding = true,
+		boxid = 1504,
+	},
+	transfers = {
+		heading = 'Transfers',
+		body = TransfersList{
+			transferPage = function ()
+				return 'Player Transfers/' .. os.date('%Y')
+			end
+		},
+		boxid = 1509,
+	},
+	thisDay = {
+		heading = ThisDayWidgets.Title(),
+		body = ThisDayWidgets.Content(),
+		padding = true,
+		boxid = 1510,
+	},
+	specialEvents = {
+		noPanel = true,
+		body = '{{Liquipedia:Special Event}}',
+		boxid = 1511,
+	},
+	filterButtons = {
+		noPanel = true,
+		body = Div{
+			css = { width = '100%', ['margin-bottom'] = '8px' },
+			children = { FilterButtonsWidget() }
+		}
+	},
+	matches = {
+		heading = 'Matches',
+		body = MatchTicker{},
+		padding = true,
+		boxid = 1507,
+	},
path: lua/wikis/geoguessr/main_page/data.lua
user: login: ElectricalBoy
body: ```suggestion
		padding = true,
		boxid = 1507,
		panelAttributes = {
			['data-switch-group-container'] = 'countdown',
		},
	},
```
see #5518
created_at: 2025-05-04T02:38:10Z
author_association: COLLABORATOR
diff_hunk: @@ -0,0 +1,197 @@
+---
+-- @Liquipedia
+-- wiki=geoguessr
+-- page=Module:MainPageLayout/data
+--
+-- Please see https://github.com/Liquipedia/Lua-Modules to contribute
+--
+
+local Lua = require('Module:Lua')
+
+local FilterButtonsWidget = Lua.import('Module:Widget/FilterButtons')
+local TournamentsTicker = Lua.import('Module:Widget/Tournaments/Ticker')
+
+local HtmlWidgets = Lua.import('Module:Widget/Html/All')
+local Div = HtmlWidgets.Div
+local MatchTicker = Lua.import('Module:Widget/MainPage/MatchTicker')
+local ThisDayWidgets = Lua.import('Module:Widget/MainPage/ThisDay')
+local TransfersList = Lua.import('Module:Widget/MainPage/TransfersList')
+
+local CONTENT = {
+	usefulArticles = {
+		heading = 'Useful Articles',
+		body = '{{Liquipedia:Useful Articles}}',
+		padding = true,
+		boxid = 1503,
+	},
+	wantToHelp = {
+		heading = 'Want To Help?',
+		body = '{{Liquipedia:Want_to_help}}',
+		padding = true,
+		boxid = 1504,
+	},
+	transfers = {
+		heading = 'Transfers',
+		body = TransfersList{
+			transferPage = function ()
+				return 'Player Transfers/' .. os.date('%Y')
+			end
+		},
+		boxid = 1509,
+	},
+	thisDay = {
+		heading = ThisDayWidgets.Title(),
+		body = ThisDayWidgets.Content(),
+		padding = true,
+		boxid = 1510,
+	},
+	specialEvents = {
+		noPanel = true,
+		body = '{{Liquipedia:Special Event}}',
+		boxid = 1511,
+	},
+	filterButtons = {
+		noPanel = true,
+		body = Div{
+			css = { width = '100%', ['margin-bottom'] = '8px' },
+			children = { FilterButtonsWidget() }
+		}
+	},
+	matches = {
+		heading = 'Matches',
+		body = MatchTicker{},
+		padding = true,
+		boxid = 1507,
+	},
path: lua/wikis/geoguessr/main_page/data.lua
user: login: steve020607
body: [1b2e49d](https://github.com/Liquipedia/Lua-Modules/pull/5591/commits/1b2e49d32914113c5abfdd6d89765f53c65887ee) [d906a3c](https://github.com/Liquipedia/Lua-Modules/pull/5591/commits/d906a3c492b35c0580111571bed372bf8e390018) (rename)
[6afc594](https://github.com/Liquipedia/Lua-Modules/pull/5591/commits/6afc5945aa132a76852717bc6f72a07247ee94f9) (add panelAttributes)
created_at: 2025-05-04T04:29:12Z
author_association: CONTRIBUTOR

PR comments:
user: login: steve020607
created_at: 2025-03-11T05:38:59Z
body: > lua files need to be moved to the new directories see #5596

did you mean that i have to moved the New Main Page file to what folder? i'm not understand 
author_association: CONTRIBUTOR
user: login: ElectricalBoy
created_at: 2025-03-11T05:45:07Z
body: > > lua files need to be moved to the new directories see #5596
>
> did you mean that i have to moved the New Main Page file to what folder? i'm not understand

`components/filter_buttons/wikis/geoguessr/filter_buttons_config.lua` needs to go to `lua/wikis/geoguessr/filter_buttons/filter_buttons_config.lua`, and similar story applies to `components/main_page/wikis/geoguessr/main_page_layout_data.lua` too
imo it may be better to wait until #5600 gets merged
author_association: COLLABORATOR
user: login: steve020607
created_at: 2025-03-11T05:47:51Z
body: > > > lua files need to be moved to the new directories see #5596
> > 
> > 
> > did you mean that i have to moved the New Main Page file to what folder? i'm not understand
> 
> `components/filter_buttons/wikis/geoguessr/filter_buttons_config.lua` needs to go to `lua/wikis/geoguessr/filter_buttons/filter_buttons_config.lua`, and similar story applies to `components/main_page/wikis/geoguessr/main_page_layout_data.lua` too imo it may be better to wait until #5600 gets merged

did i have to change all the folder on my lua modules or i can just rename the file for main page?(since i see that my lua modules still using an old folder system)

https://github.com/steve020607/Lua-Modules/tree/patch-6
author_association: CONTRIBUTOR
user: login: ElectricalBoy
created_at: 2025-03-11T06:03:31Z
body: > did i have to change all the folder on my lua modules or i can just rename the file for main page?(since i see that my lua modules still using an old folder system)
> 
> https://github.com/steve020607/Lua-Modules/tree/patch-6

rebased commits and force pushed
should be good... for now
author_association: COLLABORATOR
user: login: steve020607
created_at: 2025-05-03T12:30:40Z
body: > files should be renamed so that they match names on wiki (see #5600)

make sure a little bit, moved it to this?
lua/wikis/geoguessr/MainPageLayout/data.lua
author_association: CONTRIBUTOR
user: login: steve020607
created_at: 2025-05-03T12:32:27Z
body: and how the checker doesn't like the commit 

Edit: Found it [0eae48c](https://github.com/Liquipedia/Lua-Modules/pull/5591/commits/0eae48ced907ee4876c19e1107f6ba2d0134c2ed)
author_association: CONTRIBUTOR