Forráskód Böngészése

Started Implementing Sitemaps

Yoginth 7 éve
szülő
commit
5ea598191d

+ 6 - 0
cmd/web.go

@@ -14,6 +14,7 @@ import (
 	"gitote/gitote/routes/admin"
 	apiv1 "gitote/gitote/routes/api/v1"
 	"gitote/gitote/routes/dev"
+	"gitote/gitote/routes/misc"
 	"gitote/gitote/routes/org"
 	"gitote/gitote/routes/pages"
 	"gitote/gitote/routes/repo"
@@ -305,6 +306,11 @@ func runWeb(c *cli.Context) error {
 
 	// ***** END: Pages *****
 
+	// ***** START: Misc *****
+	m.Get("/sitemap.xml", ignSignIn, misc.Sitemap)
+
+	// ***** END: Misc *****
+
 	// ***** START: Embed *****
 	m.Get("/embed/user/:username", ignSignIn, user.Embed)
 	// ***** END: Embed *****

+ 62 - 0
log/gitote.log

@@ -0,0 +1,62 @@
+2018/11/06 13:14:05 [TRACE] Log Mode: File (Trace)
+2018/11/06 13:14:05 [ INFO] Gitote 1.0.0-prod-rc.1
+2018/11/06 13:14:05 [ INFO] Cache Service Enabled
+2018/11/06 13:14:05 [ INFO] Session Service Enabled
+2018/11/06 13:14:05 [ INFO] Git Version: 2.17.1
+2018/11/06 13:14:05 [ INFO] Run Mode: Development
+2018/11/06 13:14:05 [TRACE] Doing: CheckRepoStats
+2018/11/06 13:14:06 [ INFO] Listen: http://0.0.0.0:8080
+2018/11/06 13:14:14 [TRACE] Session ID: 4f6ba9ab392e5655
+2018/11/06 13:14:14 [TRACE] CSRF Token: lgUyKg8X-UaMG2Gdv7VwbG9dXLE6MTU0MTQ5MDI1NDIyOTYyNzE3MA==
+2018/11/06 13:14:14 [TRACE] Session ID: 4f6ba9ab392e5655
+2018/11/06 13:14:14 [TRACE] CSRF Token: lgUyKg8X-UaMG2Gdv7VwbG9dXLE6MTU0MTQ5MDI1NDIyOTYyNzE3MA==
+2018/11/06 13:14:14 [TRACE] Session ID: 4f6ba9ab392e5655
+2018/11/06 13:14:14 [TRACE] CSRF Token: P0-vs7hvq0gAdpbbA-y4h8UYggc6MTU0MTQ5MDI1NDI1MjQ1MzQ4OA==
+2018/11/06 13:14:14 [TRACE] Template: user/dashboard/dashboard
+2018/11/06 13:14:15 [TRACE] Session ID: 4f6ba9ab392e5655
+2018/11/06 13:14:15 [TRACE] CSRF Token: P0-vs7hvq0gAdpbbA-y4h8UYggc6MTU0MTQ5MDI1NDI1MjQ1MzQ4OA==
+2018/11/06 13:14:15 [TRACE] Template: pages/sitemap
+2018/11/06 13:16:14 [TRACE] Log Mode: File (Trace)
+2018/11/06 13:16:14 [ INFO] Gitote 1.0.0-prod-rc.1
+2018/11/06 13:16:14 [ INFO] Cache Service Enabled
+2018/11/06 13:16:14 [ INFO] Session Service Enabled
+2018/11/06 13:16:15 [ INFO] Git Version: 2.17.1
+2018/11/06 13:16:15 [ INFO] Run Mode: Development
+2018/11/06 13:16:15 [TRACE] Doing: CheckRepoStats
+2018/11/06 13:16:15 [ INFO] Listen: http://0.0.0.0:8080
+2018/11/06 13:16:16 [TRACE] Session ID: 4f6ba9ab392e5655
+2018/11/06 13:16:16 [TRACE] CSRF Token: P0-vs7hvq0gAdpbbA-y4h8UYggc6MTU0MTQ5MDI1NDI1MjQ1MzQ4OA==
+2018/11/06 13:16:16 [TRACE] Template: misc/sitemap
+2018/11/06 13:16:28 [TRACE] Log Mode: File (Trace)
+2018/11/06 13:16:28 [ INFO] Gitote 1.0.0-prod-rc.1
+2018/11/06 13:16:28 [ INFO] Cache Service Enabled
+2018/11/06 13:16:28 [ INFO] Session Service Enabled
+2018/11/06 13:16:29 [ INFO] Git Version: 2.17.1
+2018/11/06 13:16:29 [ INFO] Run Mode: Development
+2018/11/06 13:16:29 [TRACE] Doing: CheckRepoStats
+2018/11/06 13:16:29 [ INFO] Listen: http://0.0.0.0:8080
+2018/11/06 13:16:29 [TRACE] Session ID: 4f6ba9ab392e5655
+2018/11/06 13:16:29 [TRACE] CSRF Token: P0-vs7hvq0gAdpbbA-y4h8UYggc6MTU0MTQ5MDI1NDI1MjQ1MzQ4OA==
+2018/11/06 13:16:52 [TRACE] Log Mode: File (Trace)
+2018/11/06 13:16:52 [ INFO] Gitote 1.0.0-prod-rc.1
+2018/11/06 13:16:52 [ INFO] Cache Service Enabled
+2018/11/06 13:16:52 [ INFO] Session Service Enabled
+2018/11/06 13:16:52 [ INFO] Git Version: 2.17.1
+2018/11/06 13:16:52 [ INFO] Run Mode: Development
+2018/11/06 13:16:52 [TRACE] Doing: CheckRepoStats
+2018/11/06 13:16:53 [ INFO] Listen: http://0.0.0.0:8080
+2018/11/06 13:16:53 [TRACE] Session ID: 4f6ba9ab392e5655
+2018/11/06 13:16:53 [TRACE] CSRF Token: P0-vs7hvq0gAdpbbA-y4h8UYggc6MTU0MTQ5MDI1NDI1MjQ1MzQ4OA==
+2018/11/06 13:16:57 [TRACE] Session ID: 4f6ba9ab392e5655
+2018/11/06 13:16:57 [TRACE] CSRF Token: P0-vs7hvq0gAdpbbA-y4h8UYggc6MTU0MTQ5MDI1NDI1MjQ1MzQ4OA==
+2018/11/06 13:16:57 [TRACE] Template: status/404
+2018/11/06 13:17:09 [TRACE] Log Mode: File (Trace)
+2018/11/06 13:17:09 [ INFO] Gitote 1.0.0-prod-rc.1
+2018/11/06 13:17:09 [ INFO] Cache Service Enabled
+2018/11/06 13:17:09 [ INFO] Session Service Enabled
+2018/11/06 13:17:10 [ INFO] Git Version: 2.17.1
+2018/11/06 13:17:10 [ INFO] Run Mode: Development
+2018/11/06 13:17:10 [TRACE] Doing: CheckRepoStats
+2018/11/06 13:17:10 [ INFO] Listen: http://0.0.0.0:8080
+2018/11/06 13:17:10 [TRACE] Session ID: 4f6ba9ab392e5655
+2018/11/06 13:17:10 [TRACE] CSRF Token: P0-vs7hvq0gAdpbbA-y4h8UYggc6MTU0MTQ5MDI1NDI1MjQ1MzQ4OA==

+ 121 - 0
log/gitote.log.2018-11-04

@@ -0,0 +1,121 @@
+2018/11/04 20:43:22 [TRACE] Log Mode: File (Trace)
+2018/11/04 20:43:22 [ INFO] Gitote 1.0.0-prod-rc.1
+2018/11/04 20:43:22 [ INFO] Cache Service Enabled
+2018/11/04 20:43:22 [ INFO] Session Service Enabled
+2018/11/04 20:43:22 [ INFO] Git Version: 2.17.1
+2018/11/04 20:43:22 [ INFO] Run Mode: Production
+2018/11/04 20:43:22 [TRACE] Doing: CheckRepoStats
+2018/11/04 20:43:22 [ INFO] Admin account already exist
+2018/11/04 20:43:22 [ INFO] First-time run install finished!
+2018/11/04 20:43:22 [TRACE] Session ID: f9d86b242a7901a8
+2018/11/04 20:43:22 [TRACE] CSRF Token: PR7FbDO8eSVTQGNSHVkwN44nX4c6MTU0MTM0NDQwMjc4NzIwMDEwOQ==
+2018/11/04 20:43:22 [TRACE] Session ID: f9d86b242a7901a8
+2018/11/04 20:43:22 [TRACE] CSRF Token: PR7FbDO8eSVTQGNSHVkwN44nX4c6MTU0MTM0NDQwMjc4NzIwMDEwOQ==
+2018/11/04 20:43:22 [TRACE] Template: user/dashboard/dashboard
+2018/11/04 20:43:30 [TRACE] Session ID: f9d86b242a7901a8
+2018/11/04 20:43:30 [TRACE] CSRF Token: PR7FbDO8eSVTQGNSHVkwN44nX4c6MTU0MTM0NDQwMjc4NzIwMDEwOQ==
+2018/11/04 20:43:30 [TRACE] Template: user/profile
+2018/11/04 20:43:32 [TRACE] Session ID: f9d86b242a7901a8
+2018/11/04 20:43:32 [TRACE] CSRF Token: PR7FbDO8eSVTQGNSHVkwN44nX4c6MTU0MTM0NDQwMjc4NzIwMDEwOQ==
+2018/11/04 20:43:32 [TRACE] Template: user/dashboard/dashboard
+2018/11/04 20:43:43 [TRACE] Session ID: f9d86b242a7901a8
+2018/11/04 20:43:43 [TRACE] CSRF Token: PR7FbDO8eSVTQGNSHVkwN44nX4c6MTU0MTM0NDQwMjc4NzIwMDEwOQ==
+2018/11/04 20:43:43 [TRACE] Template: user/dashboard/dashboard
+2018/11/04 20:44:15 [TRACE] Session ID: f9d86b242a7901a8
+2018/11/04 20:44:15 [TRACE] CSRF Token: PR7FbDO8eSVTQGNSHVkwN44nX4c6MTU0MTM0NDQwMjc4NzIwMDEwOQ==
+2018/11/04 20:44:15 [TRACE] Template: user/dashboard/dashboard
+2018/11/04 20:45:30 [TRACE] Session ID: f9d86b242a7901a8
+2018/11/04 20:45:30 [TRACE] CSRF Token: PR7FbDO8eSVTQGNSHVkwN44nX4c6MTU0MTM0NDQwMjc4NzIwMDEwOQ==
+2018/11/04 20:45:30 [TRACE] Template: user/dashboard/dashboard
+2018/11/04 20:53:22 [TRACE] Doing: MirrorUpdate
+2018/11/04 20:53:22 [TRACE] SyncMirrors [repo_id: 11]
+2018/11/04 20:53:29 [TRACE] SyncMirrors [repo_id: 11]: no commits fetched
+2018/11/04 21:00:11 [TRACE] Session ID: f9d86b242a7901a8
+2018/11/04 21:00:11 [TRACE] CSRF Token: PR7FbDO8eSVTQGNSHVkwN44nX4c6MTU0MTM0NDQwMjc4NzIwMDEwOQ==
+2018/11/04 21:00:11 [TRACE] Template: user/dashboard/dashboard
+2018/11/04 21:00:37 [TRACE] Log Mode: File (Trace)
+2018/11/04 21:00:37 [ INFO] Gitote 1.0.0-prod-rc.1
+2018/11/04 21:00:37 [ INFO] Cache Service Enabled
+2018/11/04 21:00:37 [ INFO] Session Service Enabled
+2018/11/04 21:00:38 [ INFO] Git Version: 2.17.1
+2018/11/04 21:00:38 [ INFO] Run Mode: Development
+2018/11/04 21:00:38 [TRACE] Doing: CheckRepoStats
+2018/11/04 21:00:38 [ INFO] Listen: http://0.0.0.0:8080
+2018/11/04 21:00:40 [TRACE] Session ID: 503ecf930ea5aca3
+2018/11/04 21:00:40 [TRACE] CSRF Token: oxVK0srzbH5rEW5xCHiOjzSst-Y6MTU0MTM0NTQ0MDc5MTA2MjYxMA==
+2018/11/04 21:00:40 [TRACE] Session ID: 503ecf930ea5aca3
+2018/11/04 21:00:40 [TRACE] CSRF Token: oxVK0srzbH5rEW5xCHiOjzSst-Y6MTU0MTM0NTQ0MDc5MTA2MjYxMA==
+2018/11/04 21:00:40 [TRACE] Session ID: 503ecf930ea5aca3
+2018/11/04 21:00:40 [TRACE] CSRF Token: -6PmcV86bwlRTtmtGzQErZqHBho6MTU0MTM0NTQ0MDgzMzU4NTA1MQ==
+2018/11/04 21:00:40 [TRACE] Template: user/dashboard/dashboard
+2018/11/04 21:01:05 [TRACE] Session ID: 503ecf930ea5aca3
+2018/11/04 21:01:05 [TRACE] CSRF Token: -6PmcV86bwlRTtmtGzQErZqHBho6MTU0MTM0NTQ0MDgzMzU4NTA1MQ==
+2018/11/04 21:01:05 [TRACE] Template: user/settings/profile
+2018/11/04 21:01:07 [TRACE] Session ID: 503ecf930ea5aca3
+2018/11/04 21:01:07 [TRACE] CSRF Token: -6PmcV86bwlRTtmtGzQErZqHBho6MTU0MTM0NTQ0MDgzMzU4NTA1MQ==
+2018/11/04 21:01:07 [TRACE] Template: user/settings/repositories
+2018/11/04 21:03:40 [TRACE] Session ID: 503ecf930ea5aca3
+2018/11/04 21:03:40 [TRACE] CSRF Token: -6PmcV86bwlRTtmtGzQErZqHBho6MTU0MTM0NTQ0MDgzMzU4NTA1MQ==
+2018/11/04 21:03:43 [TRACE] Template: repo/home
+2018/11/04 21:03:51 [TRACE] Session ID: 503ecf930ea5aca3
+2018/11/04 21:03:51 [TRACE] CSRF Token: -6PmcV86bwlRTtmtGzQErZqHBho6MTU0MTM0NTQ0MDgzMzU4NTA1MQ==
+2018/11/04 21:03:51 [TRACE] Template: repo/home
+2018/11/04 21:03:59 [TRACE] Session ID: 503ecf930ea5aca3
+2018/11/04 21:03:59 [TRACE] CSRF Token: -6PmcV86bwlRTtmtGzQErZqHBho6MTU0MTM0NTQ0MDgzMzU4NTA1MQ==
+2018/11/04 21:03:59 [TRACE] Template: repo/home
+2018/11/04 21:04:58 [TRACE] Session ID: 503ecf930ea5aca3
+2018/11/04 21:04:58 [TRACE] CSRF Token: -6PmcV86bwlRTtmtGzQErZqHBho6MTU0MTM0NTQ0MDgzMzU4NTA1MQ==
+2018/11/04 21:05:03 [TRACE] Template: repo/home
+2018/11/04 21:06:08 [TRACE] Session ID: 503ecf930ea5aca3
+2018/11/04 21:06:08 [TRACE] CSRF Token: -6PmcV86bwlRTtmtGzQErZqHBho6MTU0MTM0NTQ0MDgzMzU4NTA1MQ==
+2018/11/04 21:06:09 [TRACE] Template: repo/home
+2018/11/04 21:06:33 [TRACE] Session ID: 503ecf930ea5aca3
+2018/11/04 21:06:33 [TRACE] CSRF Token: -6PmcV86bwlRTtmtGzQErZqHBho6MTU0MTM0NTQ0MDgzMzU4NTA1MQ==
+2018/11/04 21:06:33 [TRACE] Template: repo/home
+2018/11/04 21:07:08 [TRACE] Session ID: 503ecf930ea5aca3
+2018/11/04 21:07:08 [TRACE] CSRF Token: -6PmcV86bwlRTtmtGzQErZqHBho6MTU0MTM0NTQ0MDgzMzU4NTA1MQ==
+2018/11/04 21:07:09 [TRACE] Template: repo/home
+2018/11/04 21:07:50 [TRACE] Session ID: 503ecf930ea5aca3
+2018/11/04 21:07:50 [TRACE] CSRF Token: -6PmcV86bwlRTtmtGzQErZqHBho6MTU0MTM0NTQ0MDgzMzU4NTA1MQ==
+2018/11/04 21:07:51 [TRACE] Template: repo/home
+2018/11/04 21:08:01 [TRACE] Session ID: 503ecf930ea5aca3
+2018/11/04 21:08:01 [TRACE] CSRF Token: -6PmcV86bwlRTtmtGzQErZqHBho6MTU0MTM0NTQ0MDgzMzU4NTA1MQ==
+2018/11/04 21:08:01 [TRACE] Template: repo/home
+2018/11/04 21:08:17 [TRACE] Session ID: 503ecf930ea5aca3
+2018/11/04 21:08:17 [TRACE] CSRF Token: -6PmcV86bwlRTtmtGzQErZqHBho6MTU0MTM0NTQ0MDgzMzU4NTA1MQ==
+2018/11/04 21:08:18 [TRACE] Template: repo/home
+2018/11/04 21:08:49 [TRACE] Session ID: 503ecf930ea5aca3
+2018/11/04 21:08:49 [TRACE] CSRF Token: -6PmcV86bwlRTtmtGzQErZqHBho6MTU0MTM0NTQ0MDgzMzU4NTA1MQ==
+2018/11/04 21:08:49 [TRACE] Template: repo/home
+2018/11/04 21:09:20 [TRACE] Session ID: 503ecf930ea5aca3
+2018/11/04 21:09:20 [TRACE] CSRF Token: -6PmcV86bwlRTtmtGzQErZqHBho6MTU0MTM0NTQ0MDgzMzU4NTA1MQ==
+2018/11/04 21:09:20 [TRACE] Template: repo/home
+2018/11/04 21:09:29 [TRACE] Session ID: 503ecf930ea5aca3
+2018/11/04 21:09:29 [TRACE] CSRF Token: -6PmcV86bwlRTtmtGzQErZqHBho6MTU0MTM0NTQ0MDgzMzU4NTA1MQ==
+2018/11/04 21:09:30 [TRACE] Template: repo/home
+2018/11/04 21:09:35 [TRACE] Session ID: 503ecf930ea5aca3
+2018/11/04 21:09:35 [TRACE] CSRF Token: -6PmcV86bwlRTtmtGzQErZqHBho6MTU0MTM0NTQ0MDgzMzU4NTA1MQ==
+2018/11/04 21:09:35 [TRACE] Template: repo/home
+2018/11/04 21:10:38 [TRACE] Doing: MirrorUpdate
+2018/11/04 21:17:09 [TRACE] Session ID: 503ecf930ea5aca3
+2018/11/04 21:17:09 [TRACE] CSRF Token: -6PmcV86bwlRTtmtGzQErZqHBho6MTU0MTM0NTQ0MDgzMzU4NTA1MQ==
+2018/11/04 21:17:09 [TRACE] Template: user/dashboard/dashboard
+2018/11/04 21:17:11 [TRACE] Session ID: 503ecf930ea5aca3
+2018/11/04 21:17:11 [TRACE] CSRF Token: -6PmcV86bwlRTtmtGzQErZqHBho6MTU0MTM0NTQ0MDgzMzU4NTA1MQ==
+2018/11/04 21:17:12 [TRACE] Template: repo/home
+2018/11/04 21:18:40 [TRACE] Session ID: 503ecf930ea5aca3
+2018/11/04 21:18:40 [TRACE] CSRF Token: -6PmcV86bwlRTtmtGzQErZqHBho6MTU0MTM0NTQ0MDgzMzU4NTA1MQ==
+2018/11/04 21:18:40 [TRACE] Template: user/profile
+2018/11/04 21:18:42 [TRACE] Session ID: 503ecf930ea5aca3
+2018/11/04 21:18:42 [TRACE] CSRF Token: -6PmcV86bwlRTtmtGzQErZqHBho6MTU0MTM0NTQ0MDgzMzU4NTA1MQ==
+2018/11/04 21:18:43 [TRACE] Template: admin/dashboard
+2018/11/04 21:18:46 [TRACE] Session ID: 503ecf930ea5aca3
+2018/11/04 21:18:46 [TRACE] CSRF Token: -6PmcV86bwlRTtmtGzQErZqHBho6MTU0MTM0NTQ0MDgzMzU4NTA1MQ==
+2018/11/04 21:18:46 [TRACE] Template: admin/user/list
+2018/11/04 21:19:35 [TRACE] Session ID: 503ecf930ea5aca3
+2018/11/04 21:19:35 [TRACE] CSRF Token: -6PmcV86bwlRTtmtGzQErZqHBho6MTU0MTM0NTQ0MDgzMzU4NTA1MQ==
+2018/11/04 21:19:35 [TRACE] Template: user/profile
+2018/11/04 21:20:38 [TRACE] Doing: MirrorUpdate
+2018/11/04 21:30:38 [TRACE] Doing: MirrorUpdate
+2018/11/04 21:40:38 [TRACE] Doing: MirrorUpdate
+2018/11/05 12:34:31 [TRACE] Doing: MirrorUpdate

+ 28 - 0
log/gitote.log.2018-11-05

@@ -0,0 +1,28 @@
+2018/11/05 12:34:32 [TRACE] SyncMirrors [repo_id: 24]
+2018/11/05 12:34:32 [TRACE] SyncMirrors [repo_id: 11]
+2018/11/05 12:44:31 [TRACE] Doing: MirrorUpdate
+2018/11/05 12:44:31 [TRACE] SyncMirrors [repo_id: 24]
+2018/11/05 12:44:39 [ WARN] parseRemoteUpdateOutput: unexpected update line " + 3c3e758d...15b672f1 refs/pull/1873/merge -> refs/pull/1873/merge  (forced update)"
+2018/11/05 12:44:39 [TRACE] SyncMirrors [repo_id: 24]: no commits fetched
+2018/11/05 12:44:39 [TRACE] SyncMirrors [repo_id: 11]
+2018/11/05 12:44:46 [TRACE] SyncMirrors [repo_id: 11]: no commits fetched
+2018/11/05 12:54:31 [TRACE] Doing: MirrorUpdate
+2018/11/05 13:04:31 [TRACE] Doing: MirrorUpdate
+2018/11/05 13:14:31 [TRACE] Doing: MirrorUpdate
+2018/11/05 20:31:19 [TRACE] Doing: MirrorUpdate
+2018/11/05 20:31:19 [TRACE] SyncMirrors [repo_id: 11]
+2018/11/05 20:31:23 [TRACE] SyncMirrors [repo_id: 11]: no commits fetched
+2018/11/05 20:41:19 [TRACE] Doing: MirrorUpdate
+2018/11/05 20:51:19 [TRACE] Doing: MirrorUpdate
+2018/11/05 20:51:19 [TRACE] SyncMirrors [repo_id: 24]
+2018/11/05 20:51:24 [TRACE] SyncMirrors [repo_id: 24]: no commits fetched
+2018/11/05 21:00:38 [TRACE] Doing: DeleteOldRepositoryArchives
+2018/11/05 21:00:38 [TRACE] Doing: CheckRepoStats
+2018/11/05 21:00:38 [TRACE] Doing: GitFsck
+2018/11/05 21:01:19 [TRACE] Doing: MirrorUpdate
+2018/11/05 21:11:19 [TRACE] Doing: MirrorUpdate
+2018/11/05 21:21:19 [TRACE] Doing: MirrorUpdate
+2018/11/05 21:41:25 [TRACE] Doing: MirrorUpdate
+2018/11/05 21:41:25 [TRACE] SyncMirrors [repo_id: 11]
+2018/11/05 21:41:32 [TRACE] SyncMirrors [repo_id: 11]: no commits fetched
+2018/11/05 21:51:25 [TRACE] Doing: MirrorUpdate

A különbségek nem kerülnek megjelenítésre, a fájl túl nagy
+ 2318 - 0
log/xorm.log


A különbségek nem kerülnek megjelenítésre, a fájl túl nagy
+ 725 - 0
log/xorm.log.2018-11-04


A különbségek nem kerülnek megjelenítésre, a fájl túl nagy
+ 124 - 0
log/xorm.log.2018-11-05


+ 2 - 0
public/robots.txt

@@ -91,3 +91,5 @@ Disallow: /*/*/forks
 Disallow: /*/*/stars
 Disallow: /*/*/archive/
 Disallow: /*/*/raw/*
+
+Sitemap: https://gitote.in/sitemap.xml

+ 11 - 0
routes/misc/sitemap.go

@@ -0,0 +1,11 @@
+package misc
+
+import (
+	"gitote/gitote/pkg/context"
+)
+
+func Sitemap(c *context.Context) {
+	c.Data["Title"] = "Sitemap"
+
+	c.XML(200, "Yoginth")
+}

+ 7 - 0
routes/pages/pages.go

@@ -20,6 +20,7 @@ const (
 	FEATURES       = "pages/features"
 	FEATUREREQUEST = "pages/request"
 	SPONSORSHIP    = "pages/sponsorship"
+	SITEMAP        = "pages/sitemap"
 )
 
 func About(c *context.Context) {
@@ -114,3 +115,9 @@ func Sponsorship(c *context.Context) {
 
 	c.HTML(200, SPONSORSHIP)
 }
+
+func Sitemap(c *context.Context) {
+	c.Data["Title"] = "Sitemap"
+
+	c.HTML(200, SITEMAP)
+}

+ 1 - 0
templates/misc/sitemap.tmpl

@@ -0,0 +1 @@
+Hello