diff --git a/buildTable.js b/buildTable.js index f1aa296..8af0504 100644 --- a/buildTable.js +++ b/buildTable.js @@ -27,6 +27,47 @@ const valueNames = [ 'author', ]; +const icons = { + C: + '', + Go: + '', + Ruby: + '', + CSS: + '', + 'C#': + '', + 'C++': + '', + Clojure: '', + 'Emacs Lisp': '', + Groovy: '', + Haskell: '', + HTML: + '', + Java: + '', + JavaScript: + '', + Lua: '', + Makefile: '', + Nginx: + '', + Perl: '', + PHP: + '', + Python: + '', + Roff: '', + Rust: '', + Scala: '', + Shell: '', + Vue: + '', + XSLT: '', +}; + const getLastUpdate = updated => { const updt = Number(dayjs(updated).diff(dayjs(), 'days')); if (updt < 0) { @@ -54,25 +95,30 @@ const formatEntry = ( `
  • `, `${name}`, `

    ${description || '-'}

    `, + `

    Last update: ${getLastUpdate( + updated, + )}

    `, (homepage && `🔗 website`) || '

    ', `

    ⭐️${stargazers}

    `, - `

    ${getLastUpdate(updated)}

    `, - (language && `

    💻${language}

    `) || '

    ', + (language && + `

    ${icons[language] || + '💻'}${language}

    `) || + '

    ', (license && - `📃${ + `📃 ${ license.name }`) || '

    ', owner && - `Made by ${ - owner.login - }`, + `

    Made by

    ${owner.login}`, '
  • ', ].join(''); diff --git a/website/style.css b/website/style.css index 9ce60ed..4d2ca60 100644 --- a/website/style.css +++ b/website/style.css @@ -1,321 +1,88 @@ -/*! normalize.css v3.0.2 | MIT License | git.io/normalize */ -/** 1. Set default font family to sans-serif. 2. Prevent iOS text size adjust after orientation change, without disabling user zoom. */ -html { font-family: sans-serif; /* 1 */ -ms-text-size-adjust: 100%; /* 2 */ -webkit-text-size-adjust: 100%; /* 2 */ } - -/** Remove default margin. */ -body { margin: 0; } - -/* HTML5 display definitions ========================================================================== */ -/** Correct `block` display not defined for any HTML5 element in IE 8/9. Correct `block` display not defined for `details` or `summary` in IE 10/11 and Firefox. Correct `block` display not defined for `main` in IE 11. */ -article, aside, details, figcaption, figure, footer, header, hgroup, main, menu, nav, section, summary { display: block; } - -/** 1. Correct `inline-block` display not defined in IE 8/9. 2. Normalize vertical alignment of `progress` in Chrome, Firefox, and Opera. */ -audio, canvas, progress, video { display: inline-block; /* 1 */ vertical-align: baseline; /* 2 */ } - -/** Prevent modern browsers from displaying `audio` without controls. Remove excess height in iOS 5 devices. */ -audio:not([controls]) { display: none; height: 0; } - -/** Address `[hidden]` styling not present in IE 8/9/10. Hide the `template` element in IE 8/9/11, Safari, and Firefox < 22. */ -[hidden], template { display: none; } - -/* Links ========================================================================== */ -/** Remove the gray background color from active links in IE 10. */ -a { background-color: transparent; } - -/** Improve readability when focused and also mouse hovered in all browsers. */ -a:active, a:hover { outline: 0; } - -/* Text-level semantics ========================================================================== */ -/** Address styling not present in IE 8/9/10/11, Safari, and Chrome. */ -abbr[title] { border-bottom: 1px dotted; } - -/** Address style set to `bolder` in Firefox 4+, Safari, and Chrome. */ -b, strong { font-weight: bold; } - -/** Address styling not present in Safari and Chrome. */ -dfn { font-style: italic; } - -/** Address variable `h1` font-size and margin within `section` and `article` contexts in Firefox 4+, Safari, and Chrome. */ -h1 { font-size: 2em; margin: 0.67em 0; } - -/** Address styling not present in IE 8/9. */ -mark { background: #ff0; color: #000; } - -/** Address inconsistent and variable font size in all browsers. */ -small { font-size: 80%; } - -/** Prevent `sub` and `sup` affecting `line-height` in all browsers. */ -sub, sup { font-size: 75%; line-height: 0; position: relative; vertical-align: baseline; } - -sup { top: -0.5em; } - -sub { bottom: -0.25em; } - -/* Embedded content ========================================================================== */ -/** Remove border when inside `a` element in IE 8/9/10. */ -img { border: 0; } - -img.emojione { height: 20px; } - -/** Correct overflow not hidden in IE 9/10/11. */ -svg:not(:root) { overflow: hidden; } - -/* Grouping content ========================================================================== */ -/** Address margin not present in IE 8/9 and Safari. */ -figure { margin: 1em 40px; } - -/** Address differences between Firefox and other browsers. */ -hr { box-sizing: content-box; height: 0; } - -/** Contain overflow in all browsers. */ -pre { overflow: auto; } - -/** Address odd `em`-unit font size rendering in all browsers. */ -code, kbd, pre, samp { font-family: monospace, monospace; font-size: 1em; } - -/* Forms ========================================================================== */ -/** Known limitation: by default, Chrome and Safari on OS X allow very limited styling of `select`, unless a `border` property is set. */ -/** 1. Correct color not being inherited. Known issue: affects color of disabled elements. 2. Correct font properties not being inherited. 3. Address margins set differently in Firefox 4+, Safari, and Chrome. */ -button, input, optgroup, select, textarea { color: inherit; /* 1 */ font: inherit; /* 2 */ margin: 0; /* 3 */ } - -/** Address `overflow` set to `hidden` in IE 8/9/10/11. */ -button { overflow: visible; } - -/** Address inconsistent `text-transform` inheritance for `button` and `select`. All other form control elements do not inherit `text-transform` values. Correct `button` style inheritance in Firefox, IE 8/9/10/11, and Opera. Correct `select` style inheritance in Firefox. */ -button, select { text-transform: none; } - -/** 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio` and `video` controls. 2. Correct inability to style clickable `input` types in iOS. 3. Improve usability and consistency of cursor style between image-type `input` and others. */ -button, html input[type="button"], input[type="reset"], input[type="submit"] { -webkit-appearance: button; /* 2 */ cursor: pointer; /* 3 */ } - -/** Re-set default cursor for disabled elements. */ -button[disabled], html input[disabled] { cursor: default; } - -/** Remove inner padding and border in Firefox 4+. */ -button::-moz-focus-inner, input::-moz-focus-inner { border: 0; padding: 0; } - -/** Address Firefox 4+ setting `line-height` on `input` using `!important` in the UA stylesheet. */ -input { line-height: normal; } - -/** It's recommended that you don't attempt to style these elements. Firefox's implementation doesn't respect box-sizing, padding, or width. 1. Address box sizing set to `content-box` in IE 8/9/10. 2. Remove excess padding in IE 8/9/10. */ -input[type="checkbox"], input[type="radio"] { box-sizing: border-box; /* 1 */ padding: 0; /* 2 */ } - -/** Fix the cursor style for Chrome's increment/decrement buttons. For certain `font-size` values of the `input`, it causes the cursor style of the decrement button to change from `default` to `text`. */ -input[type="number"]::-webkit-inner-spin-button, input[type="number"]::-webkit-outer-spin-button { height: auto; } - -/** 1. Address `appearance` set to `searchfield` in Safari and Chrome. 2. Address `box-sizing` set to `border-box` in Safari and Chrome (include `-moz` to future-proof). */ -input[type="search"] { -webkit-appearance: textfield; /* 1 */ /* 2 */ box-sizing: content-box; } - -/** Remove inner padding and search cancel button in Safari and Chrome on OS X. Safari (but not Chrome) clips the cancel button when the search input has padding (and `textfield` appearance). */ -input[type="search"]::-webkit-search-cancel-button, input[type="search"]::-webkit-search-decoration { -webkit-appearance: none; } - -/** Define consistent border, margin, and padding. */ -fieldset { border: 1px solid #c0c0c0; margin: 0 2px; padding: 0.35em 0.625em 0.75em; } - -/** 1. Correct `color` not being inherited in IE 8/9/10/11. 2. Remove padding so people aren't caught out if they zero out fieldsets. */ -legend { border: 0; /* 1 */ padding: 0; /* 2 */ } - -/** Remove default vertical scrollbar in IE 8/9/10/11. */ -textarea { overflow: auto; } - -/** Don't inherit the `font-weight` (applied by a rule above). NOTE: the default cannot safely be changed in Chrome and Safari on OS X. */ -optgroup { font-weight: bold; } - -/* Tables ========================================================================== */ -/** Remove most spacing between table cells. */ -table { border-collapse: collapse; border-spacing: 0; } - -td, th { padding: 0; } - -.highlight table td { padding: 5px; } - -.highlight table pre { margin: 0; } - -.highlight .cm { color: #999988; font-style: italic; } - -.highlight .cp { color: #999999; font-weight: bold; } - -.highlight .c1 { color: #999988; font-style: italic; } - -.highlight .cs { color: #999999; font-weight: bold; font-style: italic; } - -.highlight .c, .highlight .cd { color: #999988; font-style: italic; } - -.highlight .err { color: #a61717; background-color: #e3d2d2; } - -.highlight .gd { color: #000000; background-color: #ffdddd; } - -.highlight .ge { color: #000000; font-style: italic; } - -.highlight .gr { color: #aa0000; } - -.highlight .gh { color: #999999; } - -.highlight .gi { color: #000000; background-color: #ddffdd; } - -.highlight .go { color: #888888; } - -.highlight .gp { color: #555555; } - -.highlight .gs { font-weight: bold; } - -.highlight .gu { color: #aaaaaa; } - -.highlight .gt { color: #aa0000; } - -.highlight .kc { color: #000000; font-weight: bold; } - -.highlight .kd { color: #000000; font-weight: bold; } - -.highlight .kn { color: #000000; font-weight: bold; } - -.highlight .kp { color: #000000; font-weight: bold; } - -.highlight .kr { color: #000000; font-weight: bold; } - -.highlight .kt { color: #445588; font-weight: bold; } - -.highlight .k, .highlight .kv { color: #000000; font-weight: bold; } - -.highlight .mf { color: #009999; } - -.highlight .mh { color: #009999; } - -.highlight .il { color: #009999; } - -.highlight .mi { color: #009999; } - -.highlight .mo { color: #009999; } - -.highlight .m, .highlight .mb, .highlight .mx { color: #009999; } - -.highlight .sb { color: #d14; } - -.highlight .sc { color: #d14; } - -.highlight .sd { color: #d14; } - -.highlight .s2 { color: #d14; } - -.highlight .se { color: #d14; } - -.highlight .sh { color: #d14; } - -.highlight .si { color: #d14; } - -.highlight .sx { color: #d14; } - -.highlight .sr { color: #009926; } - -.highlight .s1 { color: #d14; } - -.highlight .ss { color: #990073; } - -.highlight .s { color: #d14; } - -.highlight .na { color: #008080; } - -.highlight .bp { color: #999999; } - -.highlight .nb { color: #0086B3; } - -.highlight .nc { color: #445588; font-weight: bold; } - -.highlight .no { color: #008080; } - -.highlight .nd { color: #3c5d5d; font-weight: bold; } - -.highlight .ni { color: #800080; } - -.highlight .ne { color: #990000; font-weight: bold; } - -.highlight .nf { color: #990000; font-weight: bold; } - -.highlight .nl { color: #990000; font-weight: bold; } - -.highlight .nn { color: #555555; } - -.highlight .nt { color: #000080; } - -.highlight .vc { color: #008080; } - -.highlight .vg { color: #008080; } - -.highlight .vi { color: #008080; } - -.highlight .nv { color: #008080; } - -.highlight .ow { color: #000000; font-weight: bold; } - -.highlight .o { color: #000000; font-weight: bold; } - -.highlight .w { color: #bbbbbb; } - -.highlight { background-color: #f8f8f8; } - -* { box-sizing: border-box; } - -body { padding: 0; margin: 0; font-family: "Open Sans", "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 16px; line-height: 1.5; color: #606c71; } - -a { color: #1e6bb8; text-decoration: none; } -a:hover { text-decoration: underline; } - -.btn { display: inline-block; margin-bottom: 1rem; color: rgba(255, 255, 255, 0.7); background-color: rgba(255, 255, 255, 0.08); border-color: rgba(255, 255, 255, 0.2); border-style: solid; border-width: 1px; border-radius: 0.3rem; transition: color 0.2s, background-color 0.2s, border-color 0.2s; } -.btn:hover { color: rgba(255, 255, 255, 0.8); text-decoration: none; background-color: rgba(255, 255, 255, 0.2); border-color: rgba(255, 255, 255, 0.3); } -.btn + .btn { margin-left: 1rem; } -@media screen and (min-width: 64em) { .btn { padding: 0.75rem 1rem; } } -@media screen and (min-width: 42em) and (max-width: 64em) { .btn { padding: 0.6rem 0.9rem; font-size: 0.9rem; } } -@media screen and (max-width: 42em) { .btn { display: block; width: 100%; padding: 0.75rem; font-size: 0.9rem; } - .btn + .btn { margin-top: 1rem; margin-left: 0; } } - -.page-header { color: #fff; text-align: center; background-color: #159957; background-image: linear-gradient(120deg, #155799, #159957); } -@media screen and (min-width: 64em) { .page-header { padding: 5rem 6rem; } } -@media screen and (min-width: 42em) and (max-width: 64em) { .page-header { padding: 3rem 4rem; } } -@media screen and (max-width: 42em) { .page-header { padding: 2rem 1rem; } } - -.project-name { margin-top: 0; margin-bottom: 0.1rem; } -@media screen and (min-width: 64em) { .project-name { font-size: 3.25rem; } } -@media screen and (min-width: 42em) and (max-width: 64em) { .project-name { font-size: 2.25rem; } } -@media screen and (max-width: 42em) { .project-name { font-size: 1.75rem; } } - -.project-tagline { margin-bottom: 2rem; font-weight: normal; opacity: 0.7; } -@media screen and (min-width: 64em) { .project-tagline { font-size: 1.25rem; } } -@media screen and (min-width: 42em) and (max-width: 64em) { .project-tagline { font-size: 1.15rem; } } -@media screen and (max-width: 42em) { .project-tagline { font-size: 1rem; } } - -.main-content { word-wrap: break-word; } -.main-content :first-child { margin-top: 0; } -@media screen and (min-width: 64em) { .main-content { max-width: 64rem; padding: 2rem 6rem; margin: 0 auto; font-size: 1.1rem; } } -@media screen and (min-width: 42em) and (max-width: 64em) { .main-content { padding: 2rem 4rem; font-size: 1.1rem; } } -@media screen and (max-width: 42em) { .main-content { padding: 2rem 1rem; font-size: 1rem; } } -.main-content img { max-width: 100%; } -.main-content h1, .main-content h2, .main-content h3, .main-content h4, .main-content h5, .main-content h6 { margin-top: 2rem; margin-bottom: 1rem; font-weight: normal; color: #159957; } -.main-content p { margin-bottom: 1em; } -.main-content code { padding: 2px 4px; font-family: Consolas, "Liberation Mono", Menlo, Courier, monospace; font-size: 0.9rem; color: #567482; background-color: #f3f6fa; border-radius: 0.3rem; } -.main-content pre { padding: 0.8rem; margin-top: 0; margin-bottom: 1rem; font: 1rem Consolas, "Liberation Mono", Menlo, Courier, monospace; color: #567482; word-wrap: normal; background-color: #f3f6fa; border: solid 1px #dce6f0; border-radius: 0.3rem; } -.main-content pre > code { padding: 0; margin: 0; font-size: 0.9rem; color: #567482; word-break: normal; white-space: pre; background: transparent; border: 0; } -.main-content .highlight { margin-bottom: 1rem; } -.main-content .highlight pre { margin-bottom: 0; word-break: normal; } -.main-content .highlight pre, .main-content pre { padding: 0.8rem; overflow: auto; font-size: 0.9rem; line-height: 1.45; border-radius: 0.3rem; -webkit-overflow-scrolling: touch; } -.main-content pre code, .main-content pre tt { display: inline; max-width: initial; padding: 0; margin: 0; overflow: initial; line-height: inherit; word-wrap: normal; background-color: transparent; border: 0; } -.main-content pre code:before, .main-content pre code:after, .main-content pre tt:before, .main-content pre tt:after { content: normal; } -.main-content ul, .main-content ol { margin-top: 0; } -.main-content blockquote { padding: 0 1rem; margin-left: 0; color: #819198; border-left: 0.3rem solid #dce6f0; } -.main-content blockquote > :first-child { margin-top: 0; } -.main-content blockquote > :last-child { margin-bottom: 0; } -.main-content table { display: block; width: 100%; overflow: auto; word-break: normal; word-break: keep-all; -webkit-overflow-scrolling: touch; } -.main-content table th { font-weight: bold; } -.main-content table th, .main-content table td { padding: 0.5rem 1rem; border: 1px solid #e9ebec; } -.main-content dl { padding: 0; } -.main-content dl dt { padding: 0; margin-top: 1rem; font-size: 1rem; font-weight: bold; } -.main-content dl dd { padding: 0; margin-bottom: 1rem; } -.main-content hr { height: 2px; padding: 0; margin: 1rem 0; background-color: #eff0f1; border: 0; } - -.site-footer { padding-top: 2rem; margin-top: 2rem; border-top: solid 1px #eff0f1; } -@media screen and (min-width: 64em) { .site-footer { font-size: 1rem; } } -@media screen and (min-width: 42em) and (max-width: 64em) { .site-footer { font-size: 1rem; } } -@media screen and (max-width: 42em) { .site-footer { font-size: 0.9rem; } } - -.site-footer-owner { display: block; font-weight: bold; } - -.site-footer-credits { color: #819198; } - +:root { + --main-list-header: #5DBCD2; + --main-list-footer: #5DBCD2; +} +ul { + display: grid; +grid-gap: 20px; +grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); +line-height: 1; +padding: 20px; +margin: 0; +} + +li { +display: grid; +grid-template-rows: 40px 1fr 30px; +grid-template-columns: 1fr 1fr; +list-style: none; +box-shadow: 2px 2px 6px 0px rgba(0, 0, 0, 0.3); +border: 1px solid #ccc; +border-radius: 20px; +text-align: center; +} + +li > .description, li> .name, li> .updated { + grid-column: span 2; +} + +li > * { +margin: 0; +padding-top: 5px; +padding-bottom: 5px; +} + +.language > svg { + height: 20px; +} + +li > :first-child { + color: white; + background-color: var(--main-list-header); + border-radius: 20px 20px 0 0; + padding-top: 10px; + +} +li > .description { + border-bottom: 1px solid black; +} + +li > :last-child { + color: white; + background-color: var(--main-list-footer); + border-radius: 0 0 20px 0; + padding: 10px 0 10px 0; +} +li > :nth-last-child(2) { + color: white; + background-color: var(--main-list-footer); + border-radius: 0 0 0 20px; + padding: 10px 0 10px 0; +} + + +/* +.main-content>ul { + display: grid; + grid-template-columns: repeat(auto-fill, minmax(250px, 2fr)); + grid-gap: 20px; + align-items: stretch; + line-height: 1; + padding: 20px; + margin: 0; +} + +.main-content>ul>li { + display: grid; + list-style: none; + box-shadow: 2px 2px 6px 0px rgba(0,0,0,0.3); + border: 1px solid #ccc; + grid-template-rows: 40px 1fr 30px 30px 30px 30px 30px; + border-radius: 20px; + padding: 10px; + text-align: center; +} + +.main-content img { + max-width: 100% +} */ \ No newline at end of file diff --git a/website/table.tmpl.html b/website/table.tmpl.html index 8b0843e..8aed0cc 100644 --- a/website/table.tmpl.html +++ b/website/table.tmpl.html @@ -86,42 +86,6 @@ svg:not(:root) { opacity: .7 } -.main-content>ul { - display: grid; - grid-template-columns: repeat(auto-fill, minmax(250px, 2fr)); - grid-gap: 20px; - align-items: stretch; - line-height: 1; - padding: 20px; -} - -.main-content>ul>li { - display: grid; - /* width: 300px; */ - /* max-width: 100%; */ - box-shadow: 2px 2px 6px 0px rgba(0,0,0,0.3); - border: 1px solid #ccc; - /* height: 300px; */ - /* grid-template-columns: 280px; */ - border-radius: 20px; - padding: 10px; - text-align: center; -} - -.main-content>ul>li>* { - margin: 0 0 0 0; -} - -.main-content img { - max-width: 100% -} - -.list li { - list-style: none; - padding: 5px 10px; - border: 1px solid #eee; -} - .sort { border-radius: 6px; border: none; @@ -191,7 +155,6 @@ svg:not(:root) { font-size: 1.25rem } .main-content { - margin: 0 auto; font-size: 1.1rem } } @@ -236,6 +199,7 @@ svg:not(:root) { } } +