component Editor(url string, score int, scoreTitle string, scoreTypes map[string]int, user *arn.User)
	h1.mountable What would you like to edit?
	
	.feature-cards
		a.feature-card.mountable(href="/editor/anime/all" + user.Settings().Editor.Filter.Suffix())
			.feature-card-icon.feature-card-color-anime
				RawIcon("tv")
			.feature-card-text
				p Anime
				p.editor-score= stringutils.Plural(scoreTypes["Anime"], "contribution")
		
		a.feature-card.mountable(href="/characters")
			.feature-card-icon.feature-card-color-character
				RawIcon("child")
			.feature-card-text
				p Characters
				p.editor-score= stringutils.Plural(scoreTypes["Character"], "contribution")

		a.feature-card.mountable(href="/editor/soundtracks/links")
			.feature-card-icon.feature-card-color-soundtrack
				RawIcon("music")
			.feature-card-text
				p SoundTracks
				p.editor-score= stringutils.Plural(scoreTypes["SoundTrack"], "contribution")
		
		a.feature-card.mountable(href="/editor/companies/description")
			.feature-card-icon.feature-card-color-company
				RawIcon("building-o")
			.feature-card-text
				p Companies
				p.editor-score= stringutils.Plural(scoreTypes["Company"], "contribution")
	
	.footer.mountable
		a.footer-element(href="/editor/mal/diff/anime" + user.Settings().Editor.Filter.Suffix()) MALdiff
		a.footer-element(href="/editor/kitsu/new/anime") Kitsu
		a.footer-element(href="/editor/jobs") Jobs

		if user.Role == "admin"
			a.footer-element(href="/admin") Admin

component EditorTabs(url string, user *arn.User)
	.corner-buttons-left
		a.button(href="/editor")
			RawIcon("arrow-left")
	
	if strings.Contains(url, "/editor/anime/")
		.tabs
			Tab("All", "list", "/editor/anime/all" + user.Settings().Editor.Filter.Suffix())
			Tab("Mappings", "arrows-h", "/editor/anime/mapping/mal" + user.Settings().Editor.Filter.Suffix())
			Tab("Images", "image", "/editor/anime/image/lowres" + user.Settings().Editor.Filter.Suffix())
			Tab("Companies", "building", "/editor/anime/companies/studios" + user.Settings().Editor.Filter.Suffix())
			Tab("Connections", "exchange", "/editor/anime/connections/relations" + user.Settings().Editor.Filter.Suffix())
			Tab("Details", "search-plus", "/editor/anime/details/genres" + user.Settings().Editor.Filter.Suffix())
	
	if strings.Contains(url, "/editor/anime/connections")
		.tabs
			Tab("Relations", "exchange", "/editor/anime/connections/relations" + user.Settings().Editor.Filter.Suffix())
			Tab("Characters", "users", "/editor/anime/connections/characters" + user.Settings().Editor.Filter.Suffix())
	
	if strings.Contains(url, "/editor/anime/details")
		.tabs
			Tab("Genres", "clone", "/editor/anime/details/genres" + user.Settings().Editor.Filter.Suffix())
			Tab("Synopsis", "align-left", "/editor/anime/details/synopsis" + user.Settings().Editor.Filter.Suffix())
			Tab("Trailers", "youtube", "/editor/anime/details/trailers" + user.Settings().Editor.Filter.Suffix())
			Tab("Start date", "calendar", "/editor/anime/details/startdate" + user.Settings().Editor.Filter.Suffix())
			Tab("Ep. Length", "clock-o", "/editor/anime/details/episodelength" + user.Settings().Editor.Filter.Suffix())
			Tab("Source", "book", "/editor/anime/details/source" + user.Settings().Editor.Filter.Suffix())
	
	if strings.Contains(url, "/editor/anime/companies")
		.tabs
			Tab("Studios", "building", "/editor/anime/companies/studios" + user.Settings().Editor.Filter.Suffix())
			Tab("Producers", "building", "/editor/anime/companies/producers" + user.Settings().Editor.Filter.Suffix())
			Tab("Licensors", "building", "/editor/anime/companies/licensors" + user.Settings().Editor.Filter.Suffix())

	if strings.Contains(url, "/editor/anime/mapping/")
		.tabs
			Tab("MAL", "arrows-h", "/editor/anime/mapping/mal" + user.Settings().Editor.Filter.Suffix())
			Tab("Shoboi", "arrows-h", "/editor/anime/mapping/shoboi" + user.Settings().Editor.Filter.Suffix())
			Tab("AniList", "arrows-h", "/editor/anime/mapping/anilist" + user.Settings().Editor.Filter.Suffix())
			Tab("Duplicate", "exclamation-circle", "/editor/anime/mapping/duplicate" + user.Settings().Editor.Filter.Suffix())

	if strings.Contains(url, "/editor/anime/image/")
		.tabs
			Tab("Low-Res", "image", "/editor/anime/image/lowres" + user.Settings().Editor.Filter.Suffix())
			Tab("Ultra Low-Res", "image", "/editor/anime/image/ultralowres" + user.Settings().Editor.Filter.Suffix())
	
	if strings.Contains(url, "/editor/soundtracks/")
		.tabs
			Tab("Links", "external-link", "/editor/soundtracks/links")
			Tab("Lyrics", "font", "/editor/soundtracks/lyrics/missing")
			Tab("Tags", "tag", "/editor/soundtracks/tags")
			Tab("File", "volume-off", "/editor/soundtracks/file")
	
	if strings.Contains(url, "/editor/soundtracks/lyrics/")
		.tabs
			Tab("Missing", "times", "/editor/soundtracks/lyrics/missing")
			Tab("Unaligned", "align-left", "/editor/soundtracks/lyrics/unaligned")
	
	if strings.Contains(url, "/editor/anime/") || strings.Contains(url, "/editor/mal/diff/anime")
		.editor-filters
			#filter-root(data-url=url)
			ExploreFilters(user.Settings().Editor.Filter.Year, user.Settings().Editor.Filter.Season, user.Settings().Editor.Filter.Status, user.Settings().Editor.Filter.Type, true)