Migrate getara.org website source files to ara-infra

The files for getara.org were never put in a git repository.
In the process of moving the website to ara-infra, I changed
the theme and customized it to some extent.

Change-Id: I8c5cb386d8814b02f6c9bed5a281817ebd496ea7
This commit is contained in:
David Moreau Simard 2018-11-20 18:31:15 -05:00
parent 9de1f2f0be
commit 748da4067c
No known key found for this signature in database
GPG Key ID: CBEB466764A9E621
10 changed files with 390 additions and 0 deletions

25
website/README.rst Normal file
View File

@ -0,0 +1,25 @@
ARA's website
=============
Hosted at `ara.recordsansible.org <https://ara.recordsansible.org>`_, the
website is built with `Hugo <https://gohugo.io/>`_ and installed with the
``ara-website`` role from this project's repository.
The website uses the Hugo theme called `future-imperfect <https://themes.gohugo.io/future-imperfect/>`_
and it must be checked out as part of building the site.
Development
-----------
Clone repositories::
# This repo
git clone https://git.openstack.org/openstack/ara-infra /opt/ara-infra
# The Hugo theme (future-imperfect)
git clone https://github.com/jpescador/hugo-future-imperfect /opt/hugo/themes/hugo-future-imperfect
Install Hugo following instructions from their `documentation <https://gohugo.io/getting-started/installing/>`_.
Run Hugo's standalone server::
hugo server --source /opt/ara-infra/website --themesDir /opt/hugo/themes

117
website/config.toml Normal file
View File

@ -0,0 +1,117 @@
# https://gohugo.io/getting-started/configuration/
languageCode = "en-us"
title = "ARA Records Ansible | ara.recordsansible.org"
theme = "hugo-future-imperfect"
preserveTaxonomyNames = true
paginate = 5
disqusShortname = ""
googleAnalytics = "UA-119558821-1"
pluralizeListTitles = false
enableRobotsTXT = true
canonifyURLs = true
enableGitInfo = true
[params]
# Sets the meta tag description
description = "ARA Records Ansible playbook runs and makes the recorded data available and intuitive for users and systems."
# Sets the navbarTitle that appears in the top left of the navigation bar
navbarTitle = "ARA Records Ansible"
# Sets where "View More Posts" links
viewMorePostLink = "/blog/"
# Optional Params
# Sets navbarTitle to match the section of the website
dynamicTitles = false
# Sets RSS icons to appear on the sidebar with the social media buttons
rssAppearAtTop = true
rssAppearAtBottom = true
# Sets Social Media icons to appear on the sidebar
socialAppearAtTop = true
socialAppearAtBottom = true
# Sets Categories to sort by number of posts instead of alphabetical
categoriesByCount = true
# set to show or to hide categories in the sidebar
showSidebarCategories = true
# Sets Estimated Reading Time to appear in post headers
includeReadingTime = true
# Sets the Favicon and Version for the site. Default support is for
# apple-touch-icon-precomposed.png, favicon.png, favicon.ico, and mstile.png.
# These are stored in the favicon folder. See the following for more information:
# https://github.com/audreyr/favicon-cheat-sheet
loadFavicon = true
faviconVersion = ""
# Sets Social Share links to appear on posts
socialShare = true
# Sets specific share to appear on posts (default behavior is to appear)
socialShareTwitter = true
socialShareGoogleplus = true
socialShareFacebook = true
socialShareReddit = true
socialShareLinkedin = true
socialShareStumbleupon = false
socialSharePinterest = false
socialShareEmail = true
# Load custom CSS or JavaScript files. The variable is an array so that you
# can load multiple files if necessary. You can also load the standard theme
# files by adding the value, "default".
# customCSS = ["default", "/path/to/file"]
# customJS = ["default", "/path/to/file"]
customCSS = ["default"]
customJS = ["default"]
# options for highlight.js (version, additional languages, and theme)
disable_highlight = false # set to true to disable Highlight
highlightjsVersion = "9.13.1"
highlightjsCDN = "//cdn.bootcss.com"
highlightjsLang = ["r", "yaml", "css"]
highlightjsTheme = "github"
[permalinks]
blog = "/blog/:year/:month/:day/:slug/"
[params.intro]
paragraph = "Making your Ansible playbooks easier to understand and troubleshoot."
# This appears at the top of the sidebar above params.intro.header.
# A width of less than 100px is recommended from a design perspective.
[params.intro.pic]
src = "static/logo.png"
# Sets Image to be a circle
circle = false
# Sets Image to be Future Imperfect's hexagon
imperfect = false
width = ""
alt = "ara.recordsansible.org"
[params.postAmount]
# Sets the number of recent posts to show in the sidebar. The default value is 5.
sidebar = 5
# Sets the menu items in the navigation bar
# Identifier prepends a Font Awesome icon to the menu item
[[menu.main]]
name = "Home"
url = "/"
identifier = "fa fa-home"
weight = 1
[[menu.main]]
name = "Blog"
url = "/blog/"
identifier = "fa fa-newspaper-o"
weight = 2
[[menu.main]]
name = "Documentation"
url = "https://ara.readthedocs.io"
identifier = "fa fa-book"
weight = 3
# Sets Social Media icons to appear and link to your account. Value should be your
# username unless otherwise noted. These are the icons affected by socialAppearAtTop
# and socialAppearAtBottom.
[social]
github = "openstack/?q=ara"
twitter = "ARecordsAnsible"

77
website/content/_index.md Normal file
View File

@ -0,0 +1,77 @@
---
kind: home
---
# What's ARA ?
ARA Records Ansible playbook runs and makes the recorded data available and intuitive for users and systems.
It makes your Ansible playbooks easier to understand and troubleshoot.
![reports](static/reports.png)
<br>
<br>
### ARA is free and open source
ARA is an [OpenStack](https://www.openstack.org) community project and all of it's [components](https://github.com/openstack?q=ara)
are free and open source under the GPLv3 license.
You can participate in [code reviews](https://review.openstack.org/#/q/project:%255Eopenstack/ara.*+OR+project:openstack/ansible-role-ara)
and learn how you can contribute your first patch in the [contributors documentation](https://ara.readthedocs.io/en/latest/contributing.html).
<br>
<br>
### ARA is simple and easy to use
Simplicity is a core feature in ARA.
It does one thing and it does it well: reporting on your Ansible playbooks.
[Install ARA](http://ara.readthedocs.io/en/stable/installation.html), tell [Ansible](https://ara.readthedocs.io/en/latest/configuration.html)
to use it and your next playbook will be recorded. That's it !
Read more about the project's core values in the [manifesto](https://ara.readthedocs.io/en/stable/manifesto.html).
<br>
<br>
### ARA is tested, stable and production ready
Each new commit to ARA is gated against a series of [unit and integration tests](https://github.com/openstack/ara#contributing-testing-issues-and-bugs)
against different Linux distributions and versions of Ansible in order to prevent regressions.
ARA is used to record more than a [million playbooks a month](http://superuser.openstack.org/articles/scaling-ara-ansible/) from the OpenStack community alone.
It works.
<br>
<br>
### ARA is offline and decentralized by default
Running Ansible from your laptop ? No problem.
You can browse your ARA reports locally from a sqlite database without ever leaving the comfort of localhost.
Need to scale with real [web and application servers](https://ara.readthedocs.io/en/stable/webserver.html) or use a
database server like [MySQL or PostgreSQL](https://ara.readthedocs.io/en/stable/configuration.html#ara-database) ?
You can do that too.
<br>
<br>
# Getting started
```
# Install ARA from PyPi
$ pip install ara
# Set up Ansible to use ARA
$ export ANSIBLE_CALLBACK_PLUGINS=$(python -m ara.setup.callback_plugins)
# Run your Ansible playbook as usual
$ ansible-playbook myplaybook.yml
# Start the ARA standalone webserver
$ ara-manage runserver
# Browse http://127.0.0.1:9191
```

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 67 KiB

View File

@ -0,0 +1,13 @@
{{ partial "header" . }}
{{ $.Scratch.Set "shareNav" true }}
{{ partial "navbar" . }}
<!-- Main -->
<div id="main">
<article class="post">
<div id="content">
{{ .Content }}
</div>
</article>
</div>
{{ partial "sidebar" . }}
{{ partial "footer" . }}

View File

@ -0,0 +1,4 @@
{{ if .Site.Params.loadFavicon }}
<link rel="icon" href='static/favicon.ico'>
<meta name="application-name" content="{{ .Site.Title }}">
{{ end }}

View File

@ -0,0 +1,8 @@
{{ with .GitInfo }}
<!-- Source -->
<section id="mini-bio">
<h3>Website source</h3>
<p>This website was last updated from source: {{ .AuthorDate }}</p>
<p>Git commit: <a href="https://git.openstack.org/cgit/openstack/ara-infra/commit/?id={{ .Hash }}">{{ .Hash }}</a></p>
</section>
{{ end }}

View File

@ -0,0 +1,146 @@
<!-- Sidebar -->
<section id="sidebar">
<!-- Intro -->
<section id="intro">
{{ $pic := .Site.Params.intro.pic }}
{{ with $pic.src }}
{{ if $pic.circle }}
<a href='{{"/" | relURL}}'><img src="{{ . | relURL }}" class="intro-circle" width="{{ $pic.width }}" alt="{{ $pic.alt }}" /></a>
{{ else if $pic.imperfect }}
<a href='{{"/" | relURL}}' class="logo"><img src="{{ . | relURL }}" alt="{{ $pic.alt }}" /></a>
{{ else }}
<a href='{{"/" | relURL}}'><img src="{{ . | relURL }}" width="{{ $pic.width }}" alt="{{ $pic.alt }}" /></a>
{{ end }}
{{ end }}
{{ with .Site.Params.intro }}
<header>
<h2>{{ .header }}</h2>
<p>{{ .paragraph | safeHTML }}</p>
</header>
{{ end }}
{{ if .Site.Params.socialAppearAtTop }}
<ul class="icons">
{{ if .Site.Params.rssAppearAtTop }}
{{ partial "rss-icon" . }}
{{ end }}
{{ partial "social" . }}
</ul>
{{ end }}
<div style="text-align:left">
<h3>Community & Help</h3>
<p>
<b>IRC</b>: #ara on <a href="https://webchat.freenode.net/?channels=%23ara" target="_blank">freenode</a><br />
<b>Slack</b>: <a href="https://join.slack.com/t/arecordsansible/shared_invite/enQtMjMxNzI4ODAxMDQxLWU4MmZhZTI4ZjRjOTUwZTM2MzM3MzcwNDU1YzFmNzRlMzI0NTUzNDY1MWJlNThhM2I4ZTViZjUwZTRkNTBiM2I" target="_blank">ARecordsAnsible.slack.com</a>
</p>
</div>
</section>
<!-- Community -->
<!-- Posts List -->
<section class="recent-posts">
<div class="mini-posts">
<header>
<h3>Recent blog posts</h3>
</header>
<div class="posts-container">
{{ $.Scratch.Set "recentPosts" .Site.Pages }}
{{ with .Site.Params.postAmount.sidebar }}
{{ $.Scratch.Set "postLimit" . }}
{{ else }}
{{ $.Scratch.Set "postLimit" 5 }}
{{ end }}
{{ range first ($.Scratch.Get "postLimit") (where ($.Scratch.Get "recentPosts") "Type" "post") }}
<article class="mini-post">
<header>
<h3>
<a href="{{ .RelPermalink }}">{{ .Title }}</a>
</h3>
{{ $.Scratch.Set "dateType" .Date }}
<time class="published" datetime='{{ ($.Scratch.Get "dateType").Format "2006-01-02" }}'>
{{ ($.Scratch.Get "dateType").Format "January 2, 2006" }}
</time>
</header>
{{ .Render "featured" }}
</article>
{{ end }}
</div>
{{ if ge (len (where .Site.Pages "Type" "post")) ($.Scratch.Get "postLimit") }}
<a href=
{{ with .Site.Params.viewMorePostLink }}
{{ . }}
{{ else }}
"/post/"
{{ end }}
class="button">View more posts</a>
{{ end }}
</div>
</section>
<!-- This if statement only applies if someone goes to the /categories url -->
<!-- Otherwise this section is shown for all other links -->
{{ if .Site.Params.showSidebarCategories }}
{{ if ne ($.Scratch.Get "showCategories") false }}
<!-- Categories List -->
<section id="categories">
<header>
<h3>
<a href="/categories/">Blog categories</a>
</h3>
</header>
{{ if .Site.Params.categoriesByCount }}
{{ $.Scratch.Set "categories" .Site.Taxonomies.categories.ByCount }}
{{ else }}
{{ $.Scratch.Set "categories" .Site.Taxonomies.categories.Alphabetical }}
{{ end }}
{{ range $key, $value := $.Scratch.Get "categories" }}
<p>
<article>
<header>
{{ if ne $value.Name "" }}
<a href="/categories/{{ $value.Name | urlize }}/">{{ $value.Name }}</a>
<span style="float:right;">{{ $value.Count }}</span>
{{ else }}
Uncategorized
<span style="float:right;">{{ $value.Count }}</span>
{{ end }}
</header>
</article>
</p>
{{ end }}
</section>
{{ end }}
{{ end }}
{{ partial "gitinfo" . }}
<!-- Footer -->
<section id="footer">
{{ if .Site.Params.socialAppearAtBottom }}
<ul class="icons">
{{ if .Site.Params.rssAppearAtBottom }}
{{ partial "rss-icon" . }}
{{ end }}
{{ partial "social" . }}
</ul>
{{ end }}
<p class="copyright">
{{ with .Site.Copyright | safeHTML }}
{{ . }}
{{ else }}
&copy; {{ .Site.LastChange.Year }}
{{if isset .Site.Params "author" }}
{{ .Site.Params.author}}
{{ else }}
{{ .Site.Title }}
{{ end }}
{{end}}.
Powered by <a href="//gohugo.io" target="_blank">Hugo</a>
</p>
</section>
</section>