From 1989a69926233fe2548a69ffc376c7db4b356bf9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ferdinand=20M=C3=BCtsch?= Date: Wed, 5 Oct 2022 23:36:57 +0200 Subject: [PATCH] feat: show users top languages feat: language icons --- config.default.yml | 11 +++++----- models/view/leaderboard.go | 32 +++++++++++++++++++++++++++++- routes/routes.go | 3 +++ scripts/bundle_icons.js | 18 ++++++++++++++++- static/assets/css/app.dist.css | 2 +- static/assets/css/app.dist.css.br | Bin 3277 -> 3279 bytes static/assets/js/icons.dist.js | 1 + static/assets/js/icons.dist.js.br | Bin 14946 -> 18492 bytes views/index.tpl.html | 1 + views/leaderboard.tpl.html | 24 +++++++++++++++------- 10 files changed, 77 insertions(+), 15 deletions(-) diff --git a/config.default.yml b/config.default.yml index 261a1d5..8285266 100644 --- a/config.default.yml +++ b/config.default.yml @@ -12,11 +12,12 @@ server: public_url: http://localhost:3000 # required for links (e.g. password reset) in e-mail app: - aggregation_time: '02:15' # time at which to run daily aggregation batch jobs - report_time_weekly: 'fri,18:00' # time at which to fan out weekly reports (format: ',') - inactive_days: 7 # time of previous days within a user must have logged in to be considered active - import_batch_size: 50 # maximum number of heartbeats to insert into the database within one transaction - heartbeat_max_age: '4320h' # maximum acceptable age of a heartbeat (see https://pkg.go.dev/time#ParseDuration) + aggregation_time: '02:15' # time at which to run daily aggregation batch jobs + leaderboard_generation_time: '06:00;18:00' # time at which to run daily aggregation batch jobs + report_time_weekly: 'fri,18:00' # time at which to fan out weekly reports (format: ',') + inactive_days: 7 # time of previous days within a user must have logged in to be considered active + import_batch_size: 50 # maximum number of heartbeats to insert into the database within one transaction + heartbeat_max_age: '4320h' # maximum acceptable age of a heartbeat (see https://pkg.go.dev/time#ParseDuration) custom_languages: vue: Vue jsx: JSX diff --git a/models/view/leaderboard.go b/models/view/leaderboard.go index eae8a11..61ae598 100644 --- a/models/view/leaderboard.go +++ b/models/view/leaderboard.go @@ -1,6 +1,9 @@ package view -import "github.com/muety/wakapi/models" +import ( + "github.com/muety/wakapi/models" + "strings" +) type LeaderboardViewModel struct { User *models.User @@ -39,3 +42,30 @@ func (s *LeaderboardViewModel) ColorModifier(item *models.LeaderboardItem, princ } return "default" } + +func (s *LeaderboardViewModel) LangIcon(lang string) string { + // https://icon-sets.iconify.design/mdi/ + langs := map[string]string{ + "c": "c", + "c++": "cpp", + "cpp": "cpp", + "go": "go", + "haskell": "haskell", + "html": "html5", + "java": "java", + "javascript": "javascript", + "kotlin": "kotlin", + "lua": "lua", + "php": "php", + "python": "python", + "r": "r", + "ruby": "ruby", + "rust": "rust", + "swift": "swift", + "typescript": "typescript", + } + if match, ok := langs[strings.ToLower(lang)]; ok { + return "mdi:language-" + match + } + return "" +} diff --git a/routes/routes.go b/routes/routes.go index baea80f..1a8d508 100644 --- a/routes/routes.go +++ b/routes/routes.go @@ -56,6 +56,9 @@ func DefaultTemplateFuncs() template.FuncMap { "htmlSafe": func(html string) template.HTML { return template.HTML(html) }, + "urlSafe": func(s string) template.URL { + return template.URL(s) + }, "avatarUrlTemplate": func() string { return config.Get().App.AvatarURLTemplate }, diff --git a/scripts/bundle_icons.js b/scripts/bundle_icons.js index 8214729..2c0bad1 100755 --- a/scripts/bundle_icons.js +++ b/scripts/bundle_icons.js @@ -53,7 +53,23 @@ let icons = [ 'ion:rocket', 'heroicons-solid:server', 'eva:checkmark-circle-2-fill', - 'fluent:key-24-filled' + 'fluent:key-24-filled', + 'mdi:language-c', + 'mdi:language-cpp', + 'mdi:language-go', + 'mdi:language-haskell', + 'mdi:language-html5', + 'mdi:language-java', + 'mdi:language-javascript', + 'mdi:language-kotlin', + 'mdi:language-lua', + 'mdi:language-php', + 'mdi:language-python', + 'mdi:language-r', + 'mdi:language-ruby', + 'mdi:language-rust', + 'mdi:language-swift', + 'mdi:language-typescript', ] const output = path.normalize(path.join(__dirname, '../static/assets/js/icons.dist.js')) diff --git a/static/assets/css/app.dist.css b/static/assets/css/app.dist.css index 449b3f5..54b5025 100644 --- a/static/assets/css/app.dist.css +++ b/static/assets/css/app.dist.css @@ -1 +1 @@ -/*! tailwindcss v2.2.19 | MIT License | https://tailwindcss.com*//*! modern-normalize v1.1.0 | MIT License | https://github.com/sindresorhus/modern-normalize */html{-moz-tab-size:4;-o-tab-size:4;tab-size:4;line-height:1.15;-webkit-text-size-adjust:100%}body{margin:0;font-family:system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji}hr{height:0;color:inherit}abbr[title]{-webkit-text-decoration:underline dotted;text-decoration:underline dotted}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:ui-monospace,SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:initial}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}button,select{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}::-moz-focus-inner{border-style:none;padding:0}legend{padding:0}progress{vertical-align:initial}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dd,dl,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}button{background-color:initial;background-image:none}fieldset,ol,ul{margin:0;padding:0}ol,ul{list-style:none}html{font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;line-height:1.5}body{font-family:inherit;line-height:inherit}*,:after,:before{box-sizing:border-box;border:0 solid}hr{border-top-width:1px}img{border-style:solid}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input:-ms-input-placeholder,textarea:-ms-input-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button{cursor:pointer}table{border-collapse:collapse}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}button,input,optgroup,select,textarea{padding:0;line-height:inherit;color:inherit}code,kbd,pre,samp{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]{display:none}*,:after,:before{--tw-border-opacity:1;border-color:rgba(229,231,235,var(--tw-border-opacity))}.absolute{position:absolute}.relative{position:relative}.top-0{top:0}.right-0{right:0}.z-10{z-index:10}.row-span-2{grid-row:span 2/span 2}.float-right{float:right}.m-0{margin:0}.mx-1{margin-left:.25rem;margin-right:.25rem}.mx-2{margin-left:.5rem;margin-right:.5rem}.mx-auto{margin-left:auto;margin-right:auto}.my-1{margin-top:.25rem;margin-bottom:.25rem}.my-2{margin-top:.5rem;margin-bottom:.5rem}.my-4{margin-top:1rem;margin-bottom:1rem}.my-8{margin-top:2rem;margin-bottom:2rem}.mt-1{margin-top:.25rem}.mt-2{margin-top:.5rem}.mt-4{margin-top:1rem}.mt-6{margin-top:1.5rem}.mt-8{margin-top:2rem}.mt-10{margin-top:2.5rem}.mt-12{margin-top:3rem}.mt-16{margin-top:4rem}.mt-20{margin-top:5rem}.-mt-4{margin-top:-1rem}.mr-1{margin-right:.25rem}.mr-2{margin-right:.5rem}.mr-4{margin-right:1rem}.mr-8{margin-right:2rem}.mb-2{margin-bottom:.5rem}.mb-4{margin-bottom:1rem}.mb-8{margin-bottom:2rem}.mb-10{margin-bottom:2.5rem}.mb-14{margin-bottom:3.5rem}.mb-16{margin-bottom:4rem}.-mb-1{margin-bottom:-.25rem}.ml-1{margin-left:.25rem}.ml-2{margin-left:.5rem}.ml-4{margin-left:1rem}.-ml-1{margin-left:-.25rem}.block{display:block}.inline-block{display:inline-block}.inline{display:inline}.flex{display:flex}.inline-flex{display:inline-flex}.table{display:table}.grid{display:grid}.hidden{display:none}.h-4{height:1rem}.h-full{height:100%}.min-h-screen{min-height:100vh}.w-4{width:1rem}.w-12{width:3rem}.w-40{width:10rem}.w-1\/2{width:50%}.w-1\/3{width:33.333333%}.w-2\/3{width:66.666667%}.w-1\/12{width:8.333333%}.w-3\/12{width:25%}.w-4\/12{width:33.333333%}.w-full{width:100%}.max-w-lg{max-width:32rem}.max-w-4xl{max-width:56rem}.max-w-screen-sm{max-width:640px}.max-w-screen-lg{max-width:1024px}.max-w-screen-xl{max-width:1280px}.flex-1{flex:1 1 0%}.flex-shrink-0{flex-shrink:0}.flex-shrink{flex-shrink:1}.flex-grow{flex-grow:1}@-webkit-keyframes spin{to{transform:rotate(1turn)}}@keyframes spin{to{transform:rotate(1turn)}}@-webkit-keyframes ping{75%,to{transform:scale(2);opacity:0}}@keyframes ping{75%,to{transform:scale(2);opacity:0}}@-webkit-keyframes pulse{50%{opacity:.5}}@keyframes pulse{50%{opacity:.5}}@-webkit-keyframes bounce{0%,to{transform:translateY(-25%);-webkit-animation-timing-function:cubic-bezier(.8,0,1,1);animation-timing-function:cubic-bezier(.8,0,1,1)}50%{transform:none;-webkit-animation-timing-function:cubic-bezier(0,0,.2,1);animation-timing-function:cubic-bezier(0,0,.2,1)}}@keyframes bounce{0%,to{transform:translateY(-25%);-webkit-animation-timing-function:cubic-bezier(.8,0,1,1);animation-timing-function:cubic-bezier(.8,0,1,1)}50%{transform:none;-webkit-animation-timing-function:cubic-bezier(0,0,.2,1);animation-timing-function:cubic-bezier(0,0,.2,1)}}.cursor-pointer{cursor:pointer}.cursor-not-allowed{cursor:not-allowed}.resize{resize:both}.appearance-none{-webkit-appearance:none;-moz-appearance:none;appearance:none}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.flex-nowrap{flex-wrap:nowrap}.items-center{align-items:center}.justify-start{justify-content:flex-start}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-2{gap:.5rem}.gap-x-4{-moz-column-gap:1rem;column-gap:1rem}.gap-x-6{-moz-column-gap:1.5rem;column-gap:1.5rem}.gap-y-6{row-gap:1.5rem}.space-x-1>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-right:calc(.25rem*var(--tw-space-x-reverse));margin-left:calc(.25rem*(1 - var(--tw-space-x-reverse)))}.space-x-2>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-right:calc(.5rem*var(--tw-space-x-reverse));margin-left:calc(.5rem*(1 - var(--tw-space-x-reverse)))}.space-x-4>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-right:calc(1rem*var(--tw-space-x-reverse));margin-left:calc(1rem*(1 - var(--tw-space-x-reverse)))}.space-x-8>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-right:calc(2rem*var(--tw-space-x-reverse));margin-left:calc(2rem*(1 - var(--tw-space-x-reverse)))}.space-y-1>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.25rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.25rem*var(--tw-space-y-reverse))}.space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.5rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.5rem*var(--tw-space-y-reverse))}.space-y-4>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(1rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1rem*var(--tw-space-y-reverse))}.space-y-8>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(2rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(2rem*var(--tw-space-y-reverse))}.overflow-hidden,.truncate{overflow:hidden}.truncate{text-overflow:ellipsis}.truncate,.whitespace-nowrap{white-space:nowrap}.rounded-sm{border-radius:.125rem}.rounded{border-radius:.25rem}.rounded-md{border-radius:.375rem}.rounded-full{border-radius:9999px}.border-2{border-width:2px}.border-4{border-width:4px}.border{border-width:1px}.border-t{border-top-width:1px}.border-l{border-left-width:1px}.border-gray-700{--tw-border-opacity:1;border-color:rgba(55,65,81,var(--tw-border-opacity))}.border-gray-800{--tw-border-opacity:1;border-color:rgba(31,41,55,var(--tw-border-opacity))}.border-green-700{--tw-border-opacity:1;border-color:rgba(4,120,87,var(--tw-border-opacity))}.bg-transparent{background-color:initial}.bg-gray-800{--tw-bg-opacity:1;background-color:rgba(31,41,55,var(--tw-bg-opacity))}.bg-gray-900{--tw-bg-opacity:1;background-color:rgba(17,24,39,var(--tw-bg-opacity))}.bg-red-500{--tw-bg-opacity:1;background-color:rgba(239,68,68,var(--tw-bg-opacity))}.bg-green-500{--tw-bg-opacity:1;background-color:rgba(16,185,129,var(--tw-bg-opacity))}.hover\:bg-gray-700:hover{--tw-bg-opacity:1;background-color:rgba(55,65,81,var(--tw-bg-opacity))}.focus\:bg-gray-800:focus,.hover\:bg-gray-800:hover{--tw-bg-opacity:1;background-color:rgba(31,41,55,var(--tw-bg-opacity))}.p-1{padding:.25rem}.p-2{padding:.5rem}.p-4{padding:1rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-4{padding-left:1rem;padding-right:1rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.px-8{padding-left:2rem;padding-right:2rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-4{padding-top:1rem;padding-bottom:1rem}.pt-10{padding-top:2.5rem}.pb-4{padding-bottom:1rem}.pb-10{padding-bottom:2.5rem}.text-left{text-align:left}.text-center{text-align:center}.text-right{text-align:right}.align-middle{vertical-align:middle}.font-mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.text-xs{font-size:.75rem;line-height:1rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-2xl{font-size:1.5rem;line-height:2rem}.text-3xl{font-size:1.875rem;line-height:2.25rem}.text-8xl{font-size:6rem;line-height:1}.font-semibold{font-weight:600}.capitalize{text-transform:capitalize}.leading-6{line-height:1.5rem}.leading-none{line-height:1}.leading-snug{line-height:1.375}.text-white{--tw-text-opacity:1;color:rgba(255,255,255,var(--tw-text-opacity))}.text-gray-300{--tw-text-opacity:1;color:rgba(209,213,219,var(--tw-text-opacity))}.text-gray-400{--tw-text-opacity:1;color:rgba(156,163,175,var(--tw-text-opacity))}.text-gray-500{--tw-text-opacity:1;color:rgba(107,114,128,var(--tw-text-opacity))}.text-gray-600{--tw-text-opacity:1;color:rgba(75,85,99,var(--tw-text-opacity))}.text-gray-700{--tw-text-opacity:1;color:rgba(55,65,81,var(--tw-text-opacity))}.text-red-600{--tw-text-opacity:1;color:rgba(220,38,38,var(--tw-text-opacity))}.text-green-700{--tw-text-opacity:1;color:rgba(4,120,87,var(--tw-text-opacity))}.hover\:text-gray-300:hover{--tw-text-opacity:1;color:rgba(209,213,219,var(--tw-text-opacity))}.hover\:text-gray-400:hover{--tw-text-opacity:1;color:rgba(156,163,175,var(--tw-text-opacity))}.hover\:text-gray-500:hover{--tw-text-opacity:1;color:rgba(107,114,128,var(--tw-text-opacity))}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*,:after,:before{--tw-shadow:0 0 #0000}.shadow{--tw-shadow:0 1px 3px 0 rgba(0,0,0,0.1),0 1px 2px 0 rgba(0,0,0,0.06)}.shadow,.shadow-md{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow-md{--tw-shadow:0 4px 6px -1px rgba(0,0,0,0.1),0 2px 4px -1px rgba(0,0,0,0.06)}.outline-none{outline:2px solid transparent;outline-offset:2px}*,:after,:before{--tw-ring-inset:var(--tw-empty,/*!*/ /*!*/);--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,0.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000}body{font-family:Source Sans\ 3,Roboto,Helvetica Neue,Helvetica,Arial,sans-serif}[v-cloak]{display:none}.bg-gray-850{background-color:#242b3a}.hover\:bg-gray-850:hover{--bg-opacity:1;background-color:#242b3a}.text-xxs{font-size:.65rem}.text-8xl{font-size:5rem;line-height:1.1}.imp\:cursor-not-allowed{cursor:not-allowed!important}.h1{margin:0;font-size:1.875rem;line-height:2.25rem;font-weight:600;--tw-text-opacity:1;color:rgba(255,255,255,var(--tw-text-opacity))}.h1-subcaption{--tw-text-opacity:1;color:rgba(75,85,99,var(--tw-text-opacity))}.btn-default,.h1-subcaption{font-size:.875rem;line-height:1.25rem}.btn-default{border-radius:.25rem;--tw-bg-opacity:1;background-color:rgba(31,41,55,var(--tw-bg-opacity));padding:.5rem 1rem;font-weight:600;--tw-text-opacity:1;color:rgba(255,255,255,var(--tw-text-opacity))}.btn-default:hover{--bg-opacity:1;background-color:#242b3a}.btn-disabled{border-radius:.25rem;--tw-bg-opacity:1;background-color:rgba(31,41,55,var(--tw-bg-opacity));padding:.5rem 1rem;font-size:.875rem;line-height:1.25rem;font-weight:600;--tw-text-opacity:1;color:rgba(75,85,99,var(--tw-text-opacity))}.btn-primary{border-radius:.25rem;--tw-bg-opacity:1;background-color:rgba(4,120,87,var(--tw-bg-opacity))}.btn-primary:hover{--tw-bg-opacity:1;background-color:rgba(6,95,70,var(--tw-bg-opacity))}.btn-primary{padding:.5rem 1rem;font-size:.875rem;line-height:1.25rem;font-weight:600;--tw-text-opacity:1;color:rgba(255,255,255,var(--tw-text-opacity))}.btn-danger{border-radius:.25rem;--tw-bg-opacity:1;background-color:rgba(220,38,38,var(--tw-bg-opacity))}.btn-danger:hover{--tw-bg-opacity:1;background-color:rgba(185,28,28,var(--tw-bg-opacity))}.btn-danger{padding:.5rem 1rem;font-size:.875rem;line-height:1.25rem;font-weight:600;--tw-text-opacity:1;color:rgba(255,255,255,var(--tw-text-opacity))}.btn-small{padding:.25rem .5rem}.input-default{width:100%;-webkit-appearance:none;-moz-appearance:none;appearance:none;border-radius:.25rem}.input-default:focus{--tw-bg-opacity:1;background-color:rgba(31,41,55,var(--tw-bg-opacity))}.input-default{padding:.5rem 1rem;--tw-text-opacity:1;color:rgba(209,213,219,var(--tw-text-opacity));outline:2px solid transparent;outline-offset:2px;background-color:#242b3a}.select-default{cursor:pointer;width:100%;-webkit-appearance:none;-moz-appearance:none;appearance:none;border-radius:.25rem}.select-default:focus{--tw-bg-opacity:1;background-color:rgba(31,41,55,var(--tw-bg-opacity))}.select-default{padding:.5rem 1rem;--tw-text-opacity:1;color:rgba(209,213,219,var(--tw-text-opacity));outline:2px solid transparent;outline-offset:2px;background-color:#242b3a}.menu-item{display:flex;cursor:pointer;align-items:center}.menu-item>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-right:calc(.5rem*var(--tw-space-x-reverse));margin-left:calc(.5rem*(1 - var(--tw-space-x-reverse)))}.menu-item{border-radius:.25rem;padding:.5rem 1rem;font-size:.875rem;line-height:1.25rem;font-weight:600}.menu-item:hover{--bg-opacity:1;background-color:#242b3a}.submenu-item{border-radius:.25rem}.submenu-item:hover{--tw-bg-opacity:1;background-color:rgba(31,41,55,var(--tw-bg-opacity))}.submenu-item{padding:.25rem;text-align:right}.chip{margin-bottom:.25rem;display:inline-block;border-radius:.25rem;border-radius:9999px;padding:.25rem .5rem;font-size:.75rem;line-height:1rem;background-color:#242b3a}.chip,.link{font-weight:600}.link{color:rgba(156,163,175,var(--tw-text-opacity))}.link,.link:hover{--tw-text-opacity:1}.link:hover{color:rgba(209,213,219,var(--tw-text-opacity))}.newsbox{border-radius:.375rem;border-width:2px;--tw-border-opacity:1;padding:.5rem 1rem;--tw-text-opacity:1;color:rgba(255,255,255,var(--tw-text-opacity));background-color:#242b3a}.newsbox,.newsbox-default{border-color:rgba(4,120,87,var(--tw-border-opacity))}.newsbox-default,.newsbox-warning{--tw-border-opacity:1}.newsbox-warning{border-color:rgba(217,119,6,var(--tw-border-opacity))}.newsbox-danger{--tw-border-opacity:1;border-color:rgba(185,28,28,var(--tw-border-opacity))}.leaderboard-default{--tw-border-opacity:1;border-color:rgba(55,65,81,var(--tw-border-opacity))}.leaderboard-self{margin-left:-10px;margin-right:-10px;padding-left:calc(1rem + 10px);padding-right:calc(1rem + 10px);--tw-border-opacity:1;border-color:rgba(4,120,87,var(--tw-border-opacity));--tw-bg-opacity:1;background-color:rgba(31,41,55,var(--tw-bg-opacity))}.leaderboard-gold{border-color:gold}.leaderboard-silver{border-color:silver}.leaderboard-bronze{border-color:#cd7f32}::-webkit-calendar-picker-indicator{filter:invert(1);cursor:pointer}@media (min-width:640px){.sm\:inline-block{display:inline-block}.sm\:flex{display:flex}}@media (min-width:768px){.md\:mb-0{margin-bottom:0}.md\:flex{display:flex}.md\:w-1\/2{width:50%}.md\:w-1\/3{width:33.333333%}.md\:w-2\/3{width:66.666667%}.md\:w-3\/4{width:75%}.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\:flex-nowrap{flex-wrap:nowrap}.md\:px-10{padding-left:2.5rem;padding-right:2.5rem}}@media (min-width:1024px){.lg\:inline-block{display:inline-block}.lg\:w-3\/4{width:75%}.lg\:px-24{padding-left:6rem;padding-right:6rem}} \ No newline at end of file +/*! tailwindcss v2.2.19 | MIT License | https://tailwindcss.com*//*! modern-normalize v1.1.0 | MIT License | https://github.com/sindresorhus/modern-normalize */html{-moz-tab-size:4;-o-tab-size:4;tab-size:4;line-height:1.15;-webkit-text-size-adjust:100%}body{margin:0;font-family:system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji}hr{height:0;color:inherit}abbr[title]{-webkit-text-decoration:underline dotted;text-decoration:underline dotted}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:ui-monospace,SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:initial}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}button,select{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}::-moz-focus-inner{border-style:none;padding:0}legend{padding:0}progress{vertical-align:initial}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dd,dl,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}button{background-color:initial;background-image:none}fieldset,ol,ul{margin:0;padding:0}ol,ul{list-style:none}html{font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;line-height:1.5}body{font-family:inherit;line-height:inherit}*,:after,:before{box-sizing:border-box;border:0 solid}hr{border-top-width:1px}img{border-style:solid}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input:-ms-input-placeholder,textarea:-ms-input-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button{cursor:pointer}table{border-collapse:collapse}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}button,input,optgroup,select,textarea{padding:0;line-height:inherit;color:inherit}code,kbd,pre,samp{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]{display:none}*,:after,:before{--tw-border-opacity:1;border-color:rgba(229,231,235,var(--tw-border-opacity))}.absolute{position:absolute}.relative{position:relative}.top-0{top:0}.right-0{right:0}.z-10{z-index:10}.row-span-2{grid-row:span 2/span 2}.float-right{float:right}.m-0{margin:0}.mx-1{margin-left:.25rem;margin-right:.25rem}.mx-2{margin-left:.5rem;margin-right:.5rem}.mx-auto{margin-left:auto;margin-right:auto}.my-1{margin-top:.25rem;margin-bottom:.25rem}.my-2{margin-top:.5rem;margin-bottom:.5rem}.my-4{margin-top:1rem;margin-bottom:1rem}.my-8{margin-top:2rem;margin-bottom:2rem}.mt-1{margin-top:.25rem}.mt-2{margin-top:.5rem}.mt-4{margin-top:1rem}.mt-6{margin-top:1.5rem}.mt-8{margin-top:2rem}.mt-10{margin-top:2.5rem}.mt-12{margin-top:3rem}.mt-16{margin-top:4rem}.mt-20{margin-top:5rem}.-mt-4{margin-top:-1rem}.mr-1{margin-right:.25rem}.mr-2{margin-right:.5rem}.mr-4{margin-right:1rem}.mr-8{margin-right:2rem}.mb-2{margin-bottom:.5rem}.mb-4{margin-bottom:1rem}.mb-8{margin-bottom:2rem}.mb-10{margin-bottom:2.5rem}.mb-14{margin-bottom:3.5rem}.mb-16{margin-bottom:4rem}.-mb-1{margin-bottom:-.25rem}.ml-1{margin-left:.25rem}.ml-2{margin-left:.5rem}.ml-4{margin-left:1rem}.-ml-1{margin-left:-.25rem}.block{display:block}.inline-block{display:inline-block}.inline{display:inline}.flex{display:flex}.inline-flex{display:inline-flex}.table{display:table}.grid{display:grid}.hidden{display:none}.h-4{height:1rem}.h-full{height:100%}.min-h-screen{min-height:100vh}.w-4{width:1rem}.w-12{width:3rem}.w-40{width:10rem}.w-1\/2{width:50%}.w-1\/3{width:33.333333%}.w-2\/3{width:66.666667%}.w-1\/12{width:8.333333%}.w-3\/12{width:25%}.w-5\/12{width:41.666667%}.w-full{width:100%}.max-w-lg{max-width:32rem}.max-w-4xl{max-width:56rem}.max-w-screen-sm{max-width:640px}.max-w-screen-lg{max-width:1024px}.max-w-screen-xl{max-width:1280px}.flex-1{flex:1 1 0%}.flex-shrink-0{flex-shrink:0}.flex-shrink{flex-shrink:1}.flex-grow{flex-grow:1}@-webkit-keyframes spin{to{transform:rotate(1turn)}}@keyframes spin{to{transform:rotate(1turn)}}@-webkit-keyframes ping{75%,to{transform:scale(2);opacity:0}}@keyframes ping{75%,to{transform:scale(2);opacity:0}}@-webkit-keyframes pulse{50%{opacity:.5}}@keyframes pulse{50%{opacity:.5}}@-webkit-keyframes bounce{0%,to{transform:translateY(-25%);-webkit-animation-timing-function:cubic-bezier(.8,0,1,1);animation-timing-function:cubic-bezier(.8,0,1,1)}50%{transform:none;-webkit-animation-timing-function:cubic-bezier(0,0,.2,1);animation-timing-function:cubic-bezier(0,0,.2,1)}}@keyframes bounce{0%,to{transform:translateY(-25%);-webkit-animation-timing-function:cubic-bezier(.8,0,1,1);animation-timing-function:cubic-bezier(.8,0,1,1)}50%{transform:none;-webkit-animation-timing-function:cubic-bezier(0,0,.2,1);animation-timing-function:cubic-bezier(0,0,.2,1)}}.cursor-pointer{cursor:pointer}.cursor-not-allowed{cursor:not-allowed}.resize{resize:both}.appearance-none{-webkit-appearance:none;-moz-appearance:none;appearance:none}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.flex-nowrap{flex-wrap:nowrap}.items-center{align-items:center}.justify-start{justify-content:flex-start}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-2{gap:.5rem}.gap-x-4{-moz-column-gap:1rem;column-gap:1rem}.gap-x-6{-moz-column-gap:1.5rem;column-gap:1.5rem}.gap-y-6{row-gap:1.5rem}.space-x-1>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-right:calc(.25rem*var(--tw-space-x-reverse));margin-left:calc(.25rem*(1 - var(--tw-space-x-reverse)))}.space-x-2>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-right:calc(.5rem*var(--tw-space-x-reverse));margin-left:calc(.5rem*(1 - var(--tw-space-x-reverse)))}.space-x-4>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-right:calc(1rem*var(--tw-space-x-reverse));margin-left:calc(1rem*(1 - var(--tw-space-x-reverse)))}.space-x-8>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-right:calc(2rem*var(--tw-space-x-reverse));margin-left:calc(2rem*(1 - var(--tw-space-x-reverse)))}.space-y-1>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.25rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.25rem*var(--tw-space-y-reverse))}.space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.5rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.5rem*var(--tw-space-y-reverse))}.space-y-4>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(1rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1rem*var(--tw-space-y-reverse))}.space-y-8>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(2rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(2rem*var(--tw-space-y-reverse))}.truncate{overflow:hidden;text-overflow:ellipsis}.truncate,.whitespace-nowrap{white-space:nowrap}.rounded-sm{border-radius:.125rem}.rounded{border-radius:.25rem}.rounded-md{border-radius:.375rem}.rounded-full{border-radius:9999px}.border-2{border-width:2px}.border-4{border-width:4px}.border{border-width:1px}.border-t{border-top-width:1px}.border-l{border-left-width:1px}.border-gray-700{--tw-border-opacity:1;border-color:rgba(55,65,81,var(--tw-border-opacity))}.border-gray-800{--tw-border-opacity:1;border-color:rgba(31,41,55,var(--tw-border-opacity))}.border-green-700{--tw-border-opacity:1;border-color:rgba(4,120,87,var(--tw-border-opacity))}.bg-transparent{background-color:initial}.bg-gray-800{--tw-bg-opacity:1;background-color:rgba(31,41,55,var(--tw-bg-opacity))}.bg-gray-900{--tw-bg-opacity:1;background-color:rgba(17,24,39,var(--tw-bg-opacity))}.bg-red-500{--tw-bg-opacity:1;background-color:rgba(239,68,68,var(--tw-bg-opacity))}.bg-green-500{--tw-bg-opacity:1;background-color:rgba(16,185,129,var(--tw-bg-opacity))}.hover\:bg-gray-700:hover{--tw-bg-opacity:1;background-color:rgba(55,65,81,var(--tw-bg-opacity))}.focus\:bg-gray-800:focus,.hover\:bg-gray-800:hover{--tw-bg-opacity:1;background-color:rgba(31,41,55,var(--tw-bg-opacity))}.p-1{padding:.25rem}.p-2{padding:.5rem}.p-4{padding:1rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-4{padding-left:1rem;padding-right:1rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.px-8{padding-left:2rem;padding-right:2rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-4{padding-top:1rem;padding-bottom:1rem}.pt-10{padding-top:2.5rem}.pb-4{padding-bottom:1rem}.pb-10{padding-bottom:2.5rem}.text-left{text-align:left}.text-center{text-align:center}.text-right{text-align:right}.align-middle{vertical-align:middle}.font-mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.text-xs{font-size:.75rem;line-height:1rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-base{font-size:1rem;line-height:1.5rem}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-2xl{font-size:1.5rem;line-height:2rem}.text-3xl{font-size:1.875rem;line-height:2.25rem}.text-8xl{font-size:6rem;line-height:1}.font-semibold{font-weight:600}.capitalize{text-transform:capitalize}.leading-6{line-height:1.5rem}.leading-none{line-height:1}.leading-snug{line-height:1.375}.text-white{--tw-text-opacity:1;color:rgba(255,255,255,var(--tw-text-opacity))}.text-gray-300{--tw-text-opacity:1;color:rgba(209,213,219,var(--tw-text-opacity))}.text-gray-400{--tw-text-opacity:1;color:rgba(156,163,175,var(--tw-text-opacity))}.text-gray-500{--tw-text-opacity:1;color:rgba(107,114,128,var(--tw-text-opacity))}.text-gray-600{--tw-text-opacity:1;color:rgba(75,85,99,var(--tw-text-opacity))}.text-gray-700{--tw-text-opacity:1;color:rgba(55,65,81,var(--tw-text-opacity))}.text-red-600{--tw-text-opacity:1;color:rgba(220,38,38,var(--tw-text-opacity))}.text-green-700{--tw-text-opacity:1;color:rgba(4,120,87,var(--tw-text-opacity))}.hover\:text-gray-300:hover{--tw-text-opacity:1;color:rgba(209,213,219,var(--tw-text-opacity))}.hover\:text-gray-400:hover{--tw-text-opacity:1;color:rgba(156,163,175,var(--tw-text-opacity))}.hover\:text-gray-500:hover{--tw-text-opacity:1;color:rgba(107,114,128,var(--tw-text-opacity))}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*,:after,:before{--tw-shadow:0 0 #0000}.shadow{--tw-shadow:0 1px 3px 0 rgba(0,0,0,0.1),0 1px 2px 0 rgba(0,0,0,0.06)}.shadow,.shadow-md{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow-md{--tw-shadow:0 4px 6px -1px rgba(0,0,0,0.1),0 2px 4px -1px rgba(0,0,0,0.06)}.outline-none{outline:2px solid transparent;outline-offset:2px}*,:after,:before{--tw-ring-inset:var(--tw-empty,/*!*/ /*!*/);--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,0.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000}body{font-family:Source Sans\ 3,Roboto,Helvetica Neue,Helvetica,Arial,sans-serif}[v-cloak]{display:none}.bg-gray-850{background-color:#242b3a}.hover\:bg-gray-850:hover{--bg-opacity:1;background-color:#242b3a}.text-xxs{font-size:.65rem}.text-8xl{font-size:5rem;line-height:1.1}.imp\:cursor-not-allowed{cursor:not-allowed!important}.h1{margin:0;font-size:1.875rem;line-height:2.25rem;font-weight:600;--tw-text-opacity:1;color:rgba(255,255,255,var(--tw-text-opacity))}.h1-subcaption{--tw-text-opacity:1;color:rgba(75,85,99,var(--tw-text-opacity))}.btn-default,.h1-subcaption{font-size:.875rem;line-height:1.25rem}.btn-default{border-radius:.25rem;--tw-bg-opacity:1;background-color:rgba(31,41,55,var(--tw-bg-opacity));padding:.5rem 1rem;font-weight:600;--tw-text-opacity:1;color:rgba(255,255,255,var(--tw-text-opacity))}.btn-default:hover{--bg-opacity:1;background-color:#242b3a}.btn-disabled{border-radius:.25rem;--tw-bg-opacity:1;background-color:rgba(31,41,55,var(--tw-bg-opacity));padding:.5rem 1rem;font-size:.875rem;line-height:1.25rem;font-weight:600;--tw-text-opacity:1;color:rgba(75,85,99,var(--tw-text-opacity))}.btn-primary{border-radius:.25rem;--tw-bg-opacity:1;background-color:rgba(4,120,87,var(--tw-bg-opacity))}.btn-primary:hover{--tw-bg-opacity:1;background-color:rgba(6,95,70,var(--tw-bg-opacity))}.btn-primary{padding:.5rem 1rem;font-size:.875rem;line-height:1.25rem;font-weight:600;--tw-text-opacity:1;color:rgba(255,255,255,var(--tw-text-opacity))}.btn-danger{border-radius:.25rem;--tw-bg-opacity:1;background-color:rgba(220,38,38,var(--tw-bg-opacity))}.btn-danger:hover{--tw-bg-opacity:1;background-color:rgba(185,28,28,var(--tw-bg-opacity))}.btn-danger{padding:.5rem 1rem;font-size:.875rem;line-height:1.25rem;font-weight:600;--tw-text-opacity:1;color:rgba(255,255,255,var(--tw-text-opacity))}.btn-small{padding:.25rem .5rem}.input-default{width:100%;-webkit-appearance:none;-moz-appearance:none;appearance:none;border-radius:.25rem}.input-default:focus{--tw-bg-opacity:1;background-color:rgba(31,41,55,var(--tw-bg-opacity))}.input-default{padding:.5rem 1rem;--tw-text-opacity:1;color:rgba(209,213,219,var(--tw-text-opacity));outline:2px solid transparent;outline-offset:2px;background-color:#242b3a}.select-default{cursor:pointer;width:100%;-webkit-appearance:none;-moz-appearance:none;appearance:none;border-radius:.25rem}.select-default:focus{--tw-bg-opacity:1;background-color:rgba(31,41,55,var(--tw-bg-opacity))}.select-default{padding:.5rem 1rem;--tw-text-opacity:1;color:rgba(209,213,219,var(--tw-text-opacity));outline:2px solid transparent;outline-offset:2px;background-color:#242b3a}.menu-item{display:flex;cursor:pointer;align-items:center}.menu-item>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-right:calc(.5rem*var(--tw-space-x-reverse));margin-left:calc(.5rem*(1 - var(--tw-space-x-reverse)))}.menu-item{border-radius:.25rem;padding:.5rem 1rem;font-size:.875rem;line-height:1.25rem;font-weight:600}.menu-item:hover{--bg-opacity:1;background-color:#242b3a}.submenu-item{border-radius:.25rem}.submenu-item:hover{--tw-bg-opacity:1;background-color:rgba(31,41,55,var(--tw-bg-opacity))}.submenu-item{padding:.25rem;text-align:right}.chip{margin-bottom:.25rem;display:inline-block;border-radius:.25rem;border-radius:9999px;padding:.25rem .5rem;font-size:.75rem;line-height:1rem;background-color:#242b3a}.chip,.link{font-weight:600}.link{color:rgba(156,163,175,var(--tw-text-opacity))}.link,.link:hover{--tw-text-opacity:1}.link:hover{color:rgba(209,213,219,var(--tw-text-opacity))}.newsbox{border-radius:.375rem;border-width:2px;--tw-border-opacity:1;padding:.5rem 1rem;--tw-text-opacity:1;color:rgba(255,255,255,var(--tw-text-opacity));background-color:#242b3a}.newsbox,.newsbox-default{border-color:rgba(4,120,87,var(--tw-border-opacity))}.newsbox-default,.newsbox-warning{--tw-border-opacity:1}.newsbox-warning{border-color:rgba(217,119,6,var(--tw-border-opacity))}.newsbox-danger{--tw-border-opacity:1;border-color:rgba(185,28,28,var(--tw-border-opacity))}.leaderboard-default{--tw-border-opacity:1;border-color:rgba(55,65,81,var(--tw-border-opacity))}.leaderboard-self{margin-left:-10px;margin-right:-10px;padding-left:calc(1rem + 10px);padding-right:calc(1rem + 10px);--tw-border-opacity:1;border-color:rgba(4,120,87,var(--tw-border-opacity));--tw-bg-opacity:1;background-color:rgba(31,41,55,var(--tw-bg-opacity))}.leaderboard-gold{border-color:gold}.leaderboard-silver{border-color:silver}.leaderboard-bronze{border-color:#cd7f32}::-webkit-calendar-picker-indicator{filter:invert(1);cursor:pointer}@media (min-width:640px){.sm\:inline-block{display:inline-block}.sm\:flex{display:flex}}@media (min-width:768px){.md\:mb-0{margin-bottom:0}.md\:flex{display:flex}.md\:w-1\/2{width:50%}.md\:w-1\/3{width:33.333333%}.md\:w-2\/3{width:66.666667%}.md\:w-3\/4{width:75%}.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\:flex-nowrap{flex-wrap:nowrap}.md\:px-10{padding-left:2.5rem;padding-right:2.5rem}}@media (min-width:1024px){.lg\:inline-block{display:inline-block}.lg\:w-3\/4{width:75%}.lg\:px-24{padding-left:6rem;padding-right:6rem}} \ No newline at end of file diff --git a/static/assets/css/app.dist.css.br b/static/assets/css/app.dist.css.br index 6de3bac8e08a6e15d2baf1149d66f2394c44a9d7..e8715fcc6e0738102d8c6fe9c77600304515d208 100644 GIT binary patch literal 3279 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 N3Wnz#m<#Oe+ZmtTVJH9q literal 3277 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 LXTzM~cfQ{Nq4-_{ diff --git a/static/assets/js/icons.dist.js b/static/assets/js/icons.dist.js index ba8b4a4..37b7024 100644 --- a/static/assets/js/icons.dist.js +++ b/static/assets/js/icons.dist.js @@ -20,3 +20,4 @@ Iconify.addCollection({"prefix":"fa-solid","icons":{"external-link-alt":{"body": Iconify.addCollection({"prefix":"simple-icons","icons":{"wakatime":{"body":""}},"width":24,"height":24}); Iconify.addCollection({"prefix":"heroicons-solid","icons":{"light-bulb":{"body":""},"server":{"body":""}},"width":20,"height":20}); Iconify.addCollection({"prefix":"ion","icons":{"rocket":{"body":""}},"width":512,"height":512}); +Iconify.addCollection({"prefix":"mdi","icons":{"language-c":{"body":""},"language-cpp":{"body":""},"language-go":{"body":""},"language-haskell":{"body":""},"language-html5":{"body":""},"language-java":{"body":""},"language-javascript":{"body":""},"language-kotlin":{"body":""},"language-lua":{"body":""},"language-php":{"body":""},"language-python":{"body":""},"language-r":{"body":""},"language-ruby":{"body":""},"language-rust":{"body":""},"language-swift":{"body":""},"language-typescript":{"body":""}},"width":24,"height":24}); diff --git a/static/assets/js/icons.dist.js.br b/static/assets/js/icons.dist.js.br index 8c7e85bd48ecd807181a21002af74d105a3088c9..3fd35dda0f7eefd19a9284b14836dd444bb8515d 100644 GIT binary patch literal 18492 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 literal 14946 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 diff --git a/views/index.tpl.html b/views/index.tpl.html index f03e0fe..f3debbd 100644 --- a/views/index.tpl.html +++ b/views/index.tpl.html @@ -69,6 +69,7 @@
  •   100 % free and open-source
  •   Built by developers for developers
  •   Fancy statistics and plots
  • +
  •   Public leaderboards
  •   Cool badges for readmes
  •   Weekly e-mail reports
  •   Intuitive REST API
  • diff --git a/views/leaderboard.tpl.html b/views/leaderboard.tpl.html index e3eaa6d..7848e5e 100644 --- a/views/leaderboard.tpl.html +++ b/views/leaderboard.tpl.html @@ -37,7 +37,12 @@ @@ -47,19 +52,24 @@
      {{ range $i, $item := .Items }}
    1. -
      # {{ $item.Rank }}
      -
      +
      # {{ $item.Rank }}
      +
      {{ if avatarUrlTemplate }} User Profile Avatar {{ else }} {{ end }} - @{{ $item.UserID }} + @{{ $item.UserID }}
      - - {{ join (index $.UserLanguages $item.UserID) ", " }} + + {{ range $i, $lang := (index $.UserLanguages $item.UserID) }} + {{ if $.LangIcon $lang }} + + {{ end }} + {{ $lang }}{{ if lt $i (add (len (index $.UserLanguages $item.UserID)) -1) }}, {{ end }} + {{ end }} -
      {{ $item.Total | duration }}
      +
      {{ $item.Total | duration }}
    2. {{ end }}