diff --git a/website/data/team.yml b/website/data/team.yml new file mode 100644 index 000000000..e1de5872a --- /dev/null +++ b/website/data/team.yml @@ -0,0 +1,84 @@ +admons: + - name: Trent Earl + github: trentearl + role: founder + - name: John Wilkinson + github: jmwilkinson + role: founder + - name: Juan Picado + github: juanpicado + twitter: jotadeveloper + role: admin/core + - name: Ayush Sharma + github: ayusharma + twitter: ayusharma_ + role: admin/core + - name: Sergio Hg + github: sergiohgz + role: core + - name: Meeeeow + github: Meeeeow + role: core +maintainers: + - name: Verdaccio + github: verdacciobot + twitter: verdaccio_npm + role: bot + - name: Roger Meier + github: bufferoverflow + active: true + - name: Cameron Little + github: apexskier + active: true + - name: Priscila + github: priscilawebdev + twitter: priscilawebdev + active: true + - name: Keli Grubb + github: kgrubb + active: true + - name: Lucius Gaitán + github: lgaitan + active: true + - name: Diego Louzán + github: dlouzan + active: true + - name: Dharmender-Singh + github: Dharmender-Singh + active: true +translators: + spanish: + - name: María Eugenia Lucena + crowdin: marugy99 + role: proofreader + - name: Samuel Miller + crowdin: SamuelLMiller + role: translator + - name: isabella394 + crowdin: isabella394 + role: translator + - name: Alejandro Estévez + crowdin: acrywhif + role: translator + chinese: + - name: sunray + crowdin: sunray + role: proofreader + - name: aafeng + crowdin: aafeng + role: proofreader + - name: susanli3769 + crowdin: emmali73 + role: translator + - name: Samuel Miller + crowdin: SamuelLMiller + role: translator + - name: Aaron Li + crowdin: AaronLi + role: translator + - name: victory + crowdin: victory622 + role: translator + - name: breathewind + crowdin: breathewind + role: translator diff --git a/website/i18n/en.json b/website/i18n/en.json index 386e5df7e..03553d103 100644 --- a/website/i18n/en.json +++ b/website/i18n/en.json @@ -35,9 +35,11 @@ "what-is-verdaccio": "What is Verdaccio?", "windows": "Installing As a Windows Service", "Docs": "Docs", - "Help": "Help", "Blog": "Blog", + "Help": "Help", "GitHub": "GitHub", + "Team": "Team", + "Donate": "Donate", "Introduction": "Introduction", "Configuration": "Configuration", "Server": "Server", diff --git a/website/package.json b/website/package.json index 9522f30b9..43c3c102a 100644 --- a/website/package.json +++ b/website/package.json @@ -11,6 +11,7 @@ }, "license": "MIT", "devDependencies": { - "docusaurus": "1.3.2" + "docusaurus": "1.3.2", + "js-yaml": "^3.12.0" } } diff --git a/website/pages/en/team.js b/website/pages/en/team.js new file mode 100644 index 000000000..7144130e9 --- /dev/null +++ b/website/pages/en/team.js @@ -0,0 +1,179 @@ +const React = require('react'); +const CompLibrary = require('../../core/CompLibrary.js'); +const Container = CompLibrary.Container; +const siteConfig = require(process.cwd() + '/siteConfig.js'); + +const NetworkLink = props => { + if (props.text) { + return ( +
+ {props.iconAlt} + + {props.text} + +
+ ); + } else return null; +}; + +const Member = ({ member, imageSize }) => { + const { github, twitter, name, crowdin, role, active } = member; + const avatarUrl = `https://avatars.githubusercontent.com/${github}`; + const twitterUrl = `https://twitter.com/${twitter}`; + const githubUrl = `https://github.com/${github}`; + const crowdinUrl = `https://crowdin.com/profile/${crowdin}`; + const size = imageSize || 100; + + // to disable an member it has to be strictly false + if (!active && active === false) { + return null; + } + + return ( +
+
+
+
+ {name} +
+
+ {role ? `${role}` : ''} +
+
+
+
+ {{name}} +
+
+ + + +
+
+ ); +}; + +const MemberSection = props => { + return ( +
+

{props.title}

+
+ {props.members.map(member => { + return ; + })} +
+
+ ); +}; + + + +const TranslatorMemberSections = props => { + return ( +
+

{props.title}

+
+
+
+ {props.translator.map(member => { + return ; + })} +
+
+
+
+ ); +}; + +const LanguagesGroups = props => { + const languages = Object.keys(props.languages); + + return ( +
+

{props.title}

+
+ {languages.map((function(language) { + const lang = props.languages[language]; + + return ; + }))} +
+
+ ); +}; + +const CrowdingTranslators = props => { + return ( +
+

+ Crowding Translators +

+
+ +
+
+ ); +}; + +const BannerTitle = () => { + return ( +

+ Team Members +

+ ); +}; + + +class Team extends React.Component { + render() { + const {admons, maintainers, translators} = siteConfig.team; + + return ( +
+ + +
+ + + +
+
+
+ ); + } +} + +module.exports = Team; diff --git a/website/pages/en/users.js b/website/pages/en/users.js index b4794d333..bb92f9b3c 100644 --- a/website/pages/en/users.js +++ b/website/pages/en/users.js @@ -1,12 +1,4 @@ -/** - * Copyright (c) 2017-present, Facebook, Inc. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */ - const React = require('react'); - const CompLibrary = require('../../core/CompLibrary.js'); const Container = CompLibrary.Container; const translate = require("../../server/translate.js").translate; diff --git a/website/siteConfig.js b/website/siteConfig.js index 185cb4cb9..c24171bb6 100644 --- a/website/siteConfig.js +++ b/website/siteConfig.js @@ -1,11 +1,7 @@ -/** - * Copyright (c) 2017-present, Facebook, Inc. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */ -/* List of projects/orgs using your project for the users page */ +const {loadYaml} = require('./utils'); + +const team = loadYaml("./data/team.yml"); const users = [ { caption: "Filiosoft", @@ -69,11 +65,15 @@ const siteConfig = { projectName: 'verdaccio', headerLinks: [ { doc: 'installation', label: 'Docs'}, - { page: 'help', label: 'Help'}, { href: "https://medium.com/verdaccio", label: 'Blog'}, - { href: "https://github.com/verdaccio", label: "GitHub" } + { page: 'help', label: 'Help'}, + { href: "https://github.com/verdaccio", label: "GitHub" }, + { search: true }, + { page: 'team', label: 'Team'}, + { href: "https://opencollective.com/verdaccio", label: "Donate" }, ], users, + team, headerIcon: 'img/verdaccio-tiny.png', footerIcon: 'img/verdaccio-blackwhite.png', favicon: 'img/favicon.ico', @@ -82,7 +82,6 @@ const siteConfig = { secondaryColor: '#205C3B', }, translationRecruitingLink: 'https://crowdin.com/project/verdaccio', - // This copyright info is used in /core/Footer.js and blog rss/atom feeds. copyright: 'Copyright © ' + new Date().getFullYear() + ' Verdaccio community', // organizationName: 'deltice', // or set an env variable ORGANIZATION_NAME @@ -105,7 +104,6 @@ const siteConfig = { stylesheets: [ '/css/code-blocks-buttons.css', ], - // You may provide arbitrary config keys to be used as needed by your template. repoUrl: 'https://github.com/verdaccio/verdaccio', cleanUrl: true, scrollToTop: true, diff --git a/website/static/css/custom.css b/website/static/css/custom.css index cf80d745b..83c79af5f 100644 --- a/website/static/css/custom.css +++ b/website/static/css/custom.css @@ -1,22 +1,13 @@ -/* your custom css */ - -/*.mainContainer .wrapper code {*/ - /*padding: 2px;*/ - /*font-family: inherit;*/ -/*}*/ - .mainContainer .wrapper a, .inner .projectIntro a { - background-color: rgba(10, 78, 31, 0.15); color: #1a1a1a; transition: all 0.25s ease-out; - text-decoration: underline; + text-decoration: none; } .mainContainer .wrapper a:hover, .inner .projectIntro a:hover { - background-color: rgba(10, 78, 31, 0.35); - text-decoration: none !important; + text-decoration: underline; } .feature-section .blockContent { @@ -47,17 +38,92 @@ margin: 0 auto !important; } -/*@media only screen and (min-device-width: 360px) and (max-device-width: 736px) {*/ -/*}*/ +/** team **/ -/*@media only screen and (min-width: 1024px) {*/ -/*}*/ +.banner_members_title { + margin-top: 0; +} -/*@media only screen and (max-width: 1023px) {*/ -/*}*/ +.team_container a, +.team_container a:hover { + font-size: 80%; + text-decoration: none; +} -/*@media only screen and (min-width: 1400px) {*/ -/*}*/ +.member_group { + display: flex; + flex-wrap: wrap; +} + +.member_media_object { + width: 15%; + box-sizing: border-box; + text-align: center; +} + + +.member_media_object .team_role { + font-size: 80%; +} + +@media (min-width: 1281px) { + .member_media_object { + width: 15% + } +} + +@media (min-width: 1025px) and (max-width:1280px) { + .member_media_object { + width: 33.3% + } +} + +@media (min-width: 768px) and (max-width:1024px) { + .member_media_object { + width: 50% + } +} + +@media (min-width: 768px) and (max-width:1024px) and (orientation:landscape) { + .member_media_object { + width: 50% + } +} + +@media (min-width: 481px) and (max-width:767px) { + .member_media_object { + width: 100% + } +} + +@media (min-width: 320px) and (max-width:480px) { + .member_media_object { + width: 100% + } +} + +.member_section { + width: 100%; +} + +.member_section .language_title { + text-transform: capitalize; + margin-bottom: 5px; + margin-top: 10px; +} + +.member_info { + line-height: 1.7; +} + +.member_info > div { + display: flex; + align-items: center; + justify-content: center; +} + +.member_avatar > img { + border-radius: 50px; + border: 1px solid #4b5e40; +} -/*@media only screen and (min-width: 1500px) {*/ -/*}*/ diff --git a/website/static/svg/social/crowdin.ico b/website/static/svg/social/crowdin.ico new file mode 100644 index 000000000..d5486c16b Binary files /dev/null and b/website/static/svg/social/crowdin.ico differ diff --git a/website/static/svg/social/crowdin.png b/website/static/svg/social/crowdin.png new file mode 100644 index 000000000..39e193c1d Binary files /dev/null and b/website/static/svg/social/crowdin.png differ diff --git a/website/static/svg/social/github.svg b/website/static/svg/social/github.svg new file mode 100644 index 000000000..146f66fcf --- /dev/null +++ b/website/static/svg/social/github.svg @@ -0,0 +1,3 @@ + + + diff --git a/website/static/svg/social/twitter.svg b/website/static/svg/social/twitter.svg new file mode 100644 index 000000000..6225a6c0b --- /dev/null +++ b/website/static/svg/social/twitter.svg @@ -0,0 +1,6 @@ + + + + \ No newline at end of file diff --git a/website/utils.js b/website/utils.js new file mode 100644 index 000000000..148850dfc --- /dev/null +++ b/website/utils.js @@ -0,0 +1,11 @@ +const path = require("path"); +const fs = require("fs"); +const parseYaml = require("js-yaml").safeLoad; + +function loadYaml(fsPath) { + return parseYaml(fs.readFileSync(path.join(__dirname, fsPath), "utf8")); +} + +module.exports = { + loadYaml +}; diff --git a/website/yarn.lock b/website/yarn.lock index 9cf75b4f0..1f62f5d9c 100644 Binary files a/website/yarn.lock and b/website/yarn.lock differ