extends ../layouts/basic

block variablesLang
    include ./_variablesLang.jade

block extra_head
    title Committers - Apache ECharts

block content
    nav(class='navbar navbar-default navbar-fixed-top')
        include ./nav

    .page-main
        .page-info
            h1 Thanks for Helping
            p The development of ECharts is associated with the outstanding contributions from the people in the community,<br>who have different skills and come from different backgrounds.
            p Thank you all your help!
            p.page-info-echarts Apache ECharts<sup>TM</sup>

        #about-page
            section.container.contributor
                h4.group.pmc PMC
                .row
                    .col-md-3.col-sm-4.col-xs-6
                        .about-person
                            a(href='https://github.com/pissang', target='_blank')
                                img(src='#{cdnPayRoot}/#{ecWWWLang}/images/people/沈毅.jpg?_v_=#{cdnPayVersion}')
                            h5.about-name Yi Shen
                            .about-desc Baidu
                            .about-desc Shanghai, China
                    .col-md-3.col-sm-4.col-xs-6
                        .about-person
                            a(href='https://github.com/100pah', target='_blank')
                                img(src='#{cdnPayRoot}/#{ecWWWLang}/images/people/宿爽.jpg?_v_=#{cdnPayVersion}')
                            h5.about-name Shuang Su
                            .about-desc Baidu
                            .about-desc Beijing, China
                    .col-md-3.col-sm-4.col-xs-6
                        .about-person
                            a(href='https://github.com/Ovilia', target='_blank')
                                img(src='#{cdnPayRoot}/#{ecWWWLang}/images/people/羡辙.jpg?_v_=#{cdnPayVersion}')
                            h5.about-name Ovilia
                            .about-desc Baidu
                            .about-desc Shanghai, China
                    .col-md-3.col-sm-4.col-xs-6
                        .about-person
                            a(href='https://www.behance.net/wjtjiayouac8aa', target='_blank')
                                img(src='#{cdnPayRoot}/#{ecWWWLang}/images/people/王俊婷.jpg?_v_=#{cdnPayVersion}')
                            h5.about-name Junting Wang
                            .about-desc Baidu
                            .about-desc Shanghai, China
                    .col-md-3.col-sm-4.col-xs-6
                        .about-person
                            a(href='https://github.com/plainheart', target='_blank')
                                img(src='#{cdnPayRoot}/#{ecWWWLang}/images/people/plainheart.jpg')
                            h5.about-name Zhongxiang Wang
                            .about-desc Henan, China
                    .col-md-3.col-sm-4.col-xs-6
                        .about-person
                            a(href='https://github.com/susiwen8', target='_blank')
                                img(src='#{cdnPayRoot}/#{ecWWWLang}/images/people/苏思文.jpg?_v_=#{cdnPayVersion}')
                            h5.about-name Siwen Su
                            .about-desc Ant Group
                            .about-desc Hangzhou, China
                    .col-md-3.col-sm-4.col-xs-6
                        .about-person
                            a(href='https://github.com/wf123537200', target='_blank')
                                img(src='#{cdnPayRoot}/#{ecWWWLang}/images/people/zakwu.jpg?_v_=#{cdnPayVersion}')
                            h5.about-name Zak Wu
                            .about-desc Tencent
                            .about-desc Shenzhen, China
                    .col-md-3.col-sm-4.col-xs-6
                        .about-person
                            a(href='https://github.com/kener', target='_blank')
                                img(src='#{cdnPayRoot}/#{ecWWWLang}/images/people/林峰.jpg?_v_=#{cdnPayVersion}')
                            h5.about-name Feng Lin
                            .about-desc Alibaba
                            .about-desc Hangzhou, China
                    .col-md-3.col-sm-4.col-xs-6
                        .about-person
                            a(href='https://github.com/deqingli', target='_blank')
                                img(src='#{cdnPayRoot}/#{ecWWWLang}/images/people/德清.jpg?_v_=#{cdnPayVersion}')
                            h5.about-name Deqing Li
                            .about-desc Alibaba
                            .about-desc Hangzhou, China
                    .col-md-3.col-sm-4.col-xs-6
                        .about-person
                            img(src='#{cdnPayRoot}/#{ecWWWLang}/images/people/dave.jpg?_v_=#{cdnPayVersion}')
                            h5.about-name Dave Fisher
                            .about-desc San Francisco, US
                    .col-md-3.col-sm-4.col-xs-6
                        .about-person
                            img(src='#{cdnPayRoot}/#{ecWWWLang}/images/people/kevin.jpg?_v_=#{cdnPayVersion}')
                            h5.about-name Kevin A. McGrail
                            .about-desc Washington, US
                    .col-md-3.col-sm-4.col-xs-6
                        .about-person
                            img(src='#{cdnPayRoot}/#{ecWWWLang}/images/people/shengwu.jpg?_v_=#{cdnPayVersion}')
                            h5.about-name Sheng Wu
                            .about-desc Beijing, China
                    .col-md-3.col-sm-4.col-xs-6
                        .about-person
                            a(href='https://github.com/erik168', target='_blank')
                                img(src='#{cdnPayRoot}/#{ecWWWLang}/images/people/erik.jpg?_v_=#{cdnPayVersion}')
                            h5.about-name Erik Dong
                            .about-desc Baidu
                            .about-desc Beijing, China
                    .col-md-3.col-sm-4.col-xs-6
                        .about-person
                            a(href='https://github.com/chriswong', target='_blank')
                                img(src='#{cdnPayRoot}/#{ecWWWLang}/images/people/大佛.jpg?_v_=#{cdnPayVersion}')
                            h5.about-name Houjin Huang
                            .about-desc GSX
                            .about-desc Beijing, China

                h4.group.committer Committers
                .row
                    .col-md-3.col-sm-4.col-xs-6
                        .about-person
                            a(href='https://github.com/yufeng04', target='_blank')
                                img(src='#{cdnPayRoot}/#{ecWWWLang}/images/people/禹峰.jpg?_v_=#{cdnPayVersion}')
                            h5.about-name Feng Yu
                            .about-desc Baidu
                            .about-desc Shanghai, China
                    .col-md-3.col-sm-4.col-xs-6
                        .about-person
                            a(href='https://github.com/cuijian-dexter', target='_blank')
                                img(src='#{cdnPayRoot}/#{ecWWWLang}/images/people/崔健.jpg?_v_=#{cdnPayVersion}')
                            h5.about-name Jian Cui
                            .about-desc Baidu
                            .about-desc Beijing, China
                    .col-md-3.col-sm-4.col-xs-6
                        .about-person
                            a(href='https://github.com/quillblue', target='_blank')
                                img(src='#{cdnPayRoot}/#{ecWWWLang}/images/people/qiansheng.jpg?_v_=#{cdnPayVersion}')
                            h5.about-name Sheng Qian
                            .about-desc Dow Inc.
                            .about-desc Shanghai, China
                    .col-md-3.col-sm-4.col-xs-6
                        .about-person
                            a(href='https://github.com/chfw', target='_blank')
                                img(src='#{cdnPayRoot}/#{ecWWWLang}/images/people/chfw.jpg?_v_=#{cdnPayVersion}')
                            h5.about-name chfw
                            .about-desc UK
                    .col-md-3.col-sm-4.col-xs-6
                        .about-person
                            a(href='https://github.com/alex2wong', target='_blank')
                                img(src='#{cdnPayRoot}/#{ecWWWLang}/images/people/黄益修.jpg?_v_=#{cdnPayVersion}')
                            h5.about-name Yixiu Huang
                            .about-desc ByteDance
                            .about-desc Shanghai, China
                    .col-md-3.col-sm-4.col-xs-6
                        .about-person
                            a(href='https://github.com/SnailSword', target='_blank')
                                img(src='#{cdnPayRoot}/#{ecWWWLang}/images/people/韩天.jpg?_v_=#{cdnPayVersion}')
                            h5.about-name Tian Han
                            .about-desc Merico
                            .about-desc Beijing, China
                    .col-md-3.col-sm-4.col-xs-6
                        .about-person
                            img(src='#{cdnPayRoot}/#{ecWWWLang}/images/people/nick.jpg?_v_=#{cdnPayVersion}')
                            h5.about-name Yaxiong He
                            .about-desc Shenzhen, China
                    .col-md-3.col-sm-4.col-xs-6
                        .about-person
                            a(href='https://github.com/ClemMakesApps', target='_blank')
                                img(src='#{cdnPayRoot}/#{ecWWWLang}/images/people/clement.jpg?_v_=#{cdnPayVersion}')
                            h5.about-name Clement Ho
                            .about-desc MURAL
                            .about-desc Texas, US
                    .col-md-3.col-sm-4.col-xs-6
                        .about-person
                            img(src='#{cdnPayRoot}/#{ecWWWLang}/images/people/tedliu.jpg?_v_=#{cdnPayVersion}')
                            h5.about-name Ted Liu
                            .about-desc Beijing, China

                h4.group.contributor Contributors
                .row
                    <p></p>
                    p Thanks to all the <a href="https://github.com/apache/echarts/graphs/contributors">CONTRIBUTORS</a> <br /> making their effort to help ECharts getting better.

        include ./footer

block extra_js

    script(type='text/javascript').
        document.getElementById('nav-contribute').className = 'active';
