<!--
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.
-->

{{- $alert := index .Site.Data.alerts (.Get 0) }}
<div class="alert alert-{{ default "info" (index $alert "type") }} alert-dismissible" role="alert">
  <button type="button" class="close" data-dismiss="alert" aria-label="Close">
    <span aria-hidden="true">&times;</span>
  </button>

  {{- if (index $alert "title") }}<h4 class="alert-heading">{{ index $alert "title"}}</h4>{{- end }}
  {{- if (index $alert "content") }}{{ (index $alert "content") | markdownify }}{{- end }}
  {{- if (index $alert "footer") }}
  <hr>
  <p class="mb-0">
    {{ index $alert "footer" }}
  </p>
  {{- end }}
</div>
