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 Baidu
                            .about-desc Beijing, 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
                            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';
