{{/*
Licensed to the Apache Software Foundation (ASF) under one
or more contributor license agreements.  See the NOTICE file
distributed with this work for additional information
regarding copyright ownership.  The ASF licenses this file
to you under the Apache License, Version 2.0 (the
"License"); you may not use this file except in compliance
with the License.  You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing,
software distributed under the License is distributed on an
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, either express or implied.  See the License for the
specific language governing permissions and limitations
under the License.
*/}}

{{ define "main" }}
<div class="community--header-container">
    <h2 class="page-header">Community</h2>
    <h5 class="page-subtitle">
        Apache Airflow was started at Airbnb as open source from the very first commit. The community has about 500 active members who support each other in solving problems
    </h5>

    <h5 class="community--header-join">Join the community!</h5>
    {{ with .Content }}
    <div class="no-width-restriction">
        {{ . }}
    </div>
    {{ end }}
</div>
<h5 class="community--committers-header large-margin">Project Management Committee</h5>
<div id="pmc-container" class="list-items">
    {{ range .Site.Data.pmc }}
    <div class="list-item">
        {{ partial "boxes/committer" . }}
    </div>
    {{ end }}
</div>
<div class="show-more-button">
    {{ partial "buttons/button-filled" (dict "text" "Show more" "id" "show-more-pmcs")}}
</div>

<h5 class="community--committers-header">Committers</h5>
<div id="committers-container" class="list-items">
    {{ range .Site.Data.committers }}
    <div class="list-item">
        {{ partial "boxes/committer" . }}
    </div>
    {{ end }}
</div>
<div class="show-more-button">
    {{ partial "buttons/button-filled" (dict "text" "Show more" "id" "show-more-committers")}}
</div>
{{ end }}
