extends ../layouts/basic

block variablesLang
    include ./_variablesLang.jade

block variables
    - var pageTitle = 'Events - Apache ECharts'

block extra_head
    title Events - Apache ECharts

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

    .page-main
        .page-info
            .container
                h1 Events
                p.page-info-echarts Apache ECharts<sup>TM</sup>

        .page-content
            .container
                h2 Current Events
                a.event(href='./events/2021-07-05-apachecon.html')
                    picture
                        source.lazy(data-srcset="#{cdnPayRoot}/#{ecWWWLang}/images/event/20210705-apachecon-en.webp?_v_=#{cdnPayVersion}", type="image/webp")
                        source.lazy(data-srcset="#{cdnPayRoot}/#{ecWWWLang}/images/event/20210705-apachecon-en.jpeg?_v_=#{cdnPayVersion}", type="image/jpeg")
                        img.lazy(data-src="#{cdnPayRoot}/#{ecWWWLang}/images/event/20210705-apachecon-en.jpeg?_v_=#{cdnPayVersion}", alt="ApacheCon Asia 2021")

                h2 Previous Events
                a.event(href='./events/2021-05-13-iscas.html')
                    picture
                        source.lazy(data-srcset="#{cdnPayRoot}/#{ecWWWLang}/images/event/20210513-iscas-en.webp?_v_=#{cdnPayVersion}", type="image/webp")
                        source.lazy(data-srcset="#{cdnPayRoot}/#{ecWWWLang}/images/event/20210513-iscas-en.jpeg?_v_=#{cdnPayVersion}", type="image/jpeg")
                        img.lazy(data-src="#{cdnPayRoot}/#{ecWWWLang}/images/event/20210513-iscas-en.jpeg?_v_=#{cdnPayVersion}", alt="Summer 2021 of Open Source Promotion Plan")

        include ./footer
block extra_js
    script(type='text/javascript').
        window.lazyLoadOptions = {
            elements_selector: ".lazy"
        };
        document.getElementById('nav-contribute').className = 'active';
    script(src='https://cdn.jsdelivr.net/npm/vanilla-lazyload@12.0.0/dist/lazyload.min.js')
