blob: cf069fa769cf0bfbcee443eaeb044af302828298 [file] [log] [blame]
{{/*
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>
<h4 class="page-header principles-header">Principles</h4>
<div class="text-with-icon-list">
{{ partial "text-with-icon" (dict "logo_path" "icons/scalable-icon.svg" "header" "Scalable" "text" "Airflow pipelines are configuration as code (Python), allowing for dynamic pipeline generation. This allows for writing code that instantiates pipelines dynamically.") }}
{{ partial "text-with-icon" (dict "logo_path" "icons/dynamic-icon.svg" "header" "Dynamic" "text" "Airflow pipelines are configuration as code (Python), allowing for dynamic pipeline generation. This allows for writing code that instantiates pipelines dynamically.") }}
{{ partial "text-with-icon" (dict "logo_path" "icons/extensible-icon.svg" "header" "Extensible" "text" "Easily define your own operators, executors and extend the library so that it fits the level of abstraction that suits your environment.") }}
{{ partial "text-with-icon" (dict "logo_path" "icons/elegant-icon.svg" "header" "Elegant" "text" "Airflow pipelines are lean and explicit. Parametrizing your scripts is built into its core using the powerful Jinja templating engine.") }}
</div>
</div>
<div>
<h4 class="page-header">Features</h4>
<div class="features-list">
{{ partial "feature" (dict "logo_path" "icons/pure-python-icon.svg" "header" "Pure Python" "text" "No more command-line or XML black-magic! Use all Python features to create your workflows including date time formats for scheduling tasks and loops to dynamically generate tasks. This allows you to build your workflows as complicated as you wish.") }}
{{ partial "feature" (dict "logo_path" "icons/useful-ui-icon.svg" "header" "Useful UI" "text" "Monitor, schedule and manage your workflows using web app. No need to learn old, cron-like interfaces. You always have an insight into the status of completed and ongoing tasks along with insight into the logs.") }}
{{ partial "feature" (dict "logo_path" "icons/integrations-icon.svg" "header" "Plenty of integrations" "text" "Airflow provides many plug-and-play operators that are ready to handle your task on Google Cloud Platform, Amazon Web Services, Microsoft Azure and many other services. This makes Airflow easy to use with your current infrastructure.") }}
{{ partial "feature" (dict "logo_path" "icons/easy-use-icon.svg" "header" "Easy to use" "text" "Anyone with Python knowledge can deploy a workflow. Apache Airflow does not limit scopes of your pipelines. You can use it for building ML models, transferring data or managing your infrastructure.") }}
{{ partial "feature" (dict "logo_path" "icons/open-source-icon.svg" "header" "Open source" "text" "Wherever you want to share your improvement you can do this by opening a PR. It’s simple as that, no barriers, no prolonged procedures. Airflow has many active users who willingly share their experiences. Have any questions? Check our buzzing slack.") }}
</div>
</div>
<div>
<h4 class="page-header integrations-header">Integrations</h4>
<div id="integrations">
<script type="application/x-template" id="integration-template">
<a class="list-item" href="">
<div class="card">
<div class="box-event box-event__integration">
<span class="box-event__integration--name" data-name="name"></span>
</div>
</div>
</a>
</script>
<form class="search-form">
<input class="search-form__input" placeholder="Search" name="q" type="search"/>
<button class="search-form__button" type="submit">
{{ with resources.Get "icons/search-icon.svg" }}
{{ .Content | safeHTML }}
{{ end }}
</button>
</form>
<div id="integrations-container" class="list-items">
{{ range $elem_index, $elem_val := (shuffle .Site.Data.integrations) }}
{{ if lt $elem_index 8 }}
<a class="list-item" href="{{ $elem_val.url }}">
{{ partial "boxes/integration" $elem_val }}
</a>
{{ end}}
{{ end }}
</div>
<div class="loading" style="display: none">Loading..</div>
<div class="show-more-button">
{{ partial "buttons/button-filled" (dict "text" "Show more" "id" "show-more-integration")}}
</div>
</div>
</div>
{{ end }}