summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid Moreau Simard <dmsimard@redhat.com>2018-11-20 18:31:15 -0500
committerDavid Moreau Simard <dmsimard@redhat.com>2018-11-21 12:21:54 -0500
commit748da4067c6a225497dff5ed65e093d762276394 (patch)
treeb746713f1d20a9bf00ec5462a2a214e6595690d2
parent9de1f2f0be6d5a084c1e9cd447711e10728259f1 (diff)
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
Notes
Notes (review): Code-Review+2: David Moreau Simard <dmsimard@redhat.com> Workflow+1: David Moreau Simard <dmsimard@redhat.com> Verified+2: Zuul Submitted-by: Zuul Submitted-at: Wed, 21 Nov 2018 21:44:37 +0000 Reviewed-on: https://review.openstack.org/619117 Project: openstack/ara-infra Branch: refs/heads/master
-rw-r--r--website/README.rst25
-rw-r--r--website/config.toml117
-rw-r--r--website/content/_index.md77
-rw-r--r--website/content/static/favicon.icobin0 -> 5430 bytes
-rw-r--r--website/content/static/logo.pngbin0 -> 12752 bytes
-rw-r--r--website/content/static/reports.pngbin0 -> 68883 bytes
-rw-r--r--website/layouts/index.html13
-rw-r--r--website/layouts/partials/favicon.html4
-rw-r--r--website/layouts/partials/gitinfo.html8
-rw-r--r--website/layouts/partials/sidebar.html146
10 files changed, 390 insertions, 0 deletions
diff --git a/website/README.rst b/website/README.rst
new file mode 100644
index 0000000..c40f035
--- /dev/null
+++ b/website/README.rst
@@ -0,0 +1,25 @@
1ARA's website
2=============
3
4Hosted at `ara.recordsansible.org <https://ara.recordsansible.org>`_, the
5website is built with `Hugo <https://gohugo.io/>`_ and installed with the
6``ara-website`` role from this project's repository.
7
8The website uses the Hugo theme called `future-imperfect <https://themes.gohugo.io/future-imperfect/>`_
9and it must be checked out as part of building the site.
10
11Development
12-----------
13
14Clone repositories::
15
16 # This repo
17 git clone https://git.openstack.org/openstack/ara-infra /opt/ara-infra
18 # The Hugo theme (future-imperfect)
19 git clone https://github.com/jpescador/hugo-future-imperfect /opt/hugo/themes/hugo-future-imperfect
20
21Install Hugo following instructions from their `documentation <https://gohugo.io/getting-started/installing/>`_.
22
23Run Hugo's standalone server::
24
25 hugo server --source /opt/ara-infra/website --themesDir /opt/hugo/themes
diff --git a/website/config.toml b/website/config.toml
new file mode 100644
index 0000000..2619c81
--- /dev/null
+++ b/website/config.toml
@@ -0,0 +1,117 @@
1# https://gohugo.io/getting-started/configuration/
2
3languageCode = "en-us"
4title = "ARA Records Ansible | ara.recordsansible.org"
5theme = "hugo-future-imperfect"
6preserveTaxonomyNames = true
7paginate = 5
8disqusShortname = ""
9googleAnalytics = "UA-119558821-1"
10pluralizeListTitles = false
11enableRobotsTXT = true
12canonifyURLs = true
13enableGitInfo = true
14
15[params]
16 # Sets the meta tag description
17 description = "ARA Records Ansible playbook runs and makes the recorded data available and intuitive for users and systems."
18 # Sets the navbarTitle that appears in the top left of the navigation bar
19 navbarTitle = "ARA Records Ansible"
20 # Sets where "View More Posts" links
21 viewMorePostLink = "/blog/"
22
23# Optional Params
24 # Sets navbarTitle to match the section of the website
25 dynamicTitles = false
26 # Sets RSS icons to appear on the sidebar with the social media buttons
27 rssAppearAtTop = true
28 rssAppearAtBottom = true
29 # Sets Social Media icons to appear on the sidebar
30 socialAppearAtTop = true
31 socialAppearAtBottom = true
32 # Sets Categories to sort by number of posts instead of alphabetical
33 categoriesByCount = true
34 # set to show or to hide categories in the sidebar
35 showSidebarCategories = true
36 # Sets Estimated Reading Time to appear in post headers
37 includeReadingTime = true
38 # Sets the Favicon and Version for the site. Default support is for
39 # apple-touch-icon-precomposed.png, favicon.png, favicon.ico, and mstile.png.
40 # These are stored in the favicon folder. See the following for more information:
41 # https://github.com/audreyr/favicon-cheat-sheet
42 loadFavicon = true
43 faviconVersion = ""
44 # Sets Social Share links to appear on posts
45 socialShare = true
46 # Sets specific share to appear on posts (default behavior is to appear)
47 socialShareTwitter = true
48 socialShareGoogleplus = true
49 socialShareFacebook = true
50 socialShareReddit = true
51 socialShareLinkedin = true
52 socialShareStumbleupon = false
53 socialSharePinterest = false
54 socialShareEmail = true
55
56 # Load custom CSS or JavaScript files. The variable is an array so that you
57 # can load multiple files if necessary. You can also load the standard theme
58 # files by adding the value, "default".
59 # customCSS = ["default", "/path/to/file"]
60 # customJS = ["default", "/path/to/file"]
61 customCSS = ["default"]
62 customJS = ["default"]
63
64 # options for highlight.js (version, additional languages, and theme)
65 disable_highlight = false # set to true to disable Highlight
66 highlightjsVersion = "9.13.1"
67 highlightjsCDN = "//cdn.bootcss.com"
68 highlightjsLang = ["r", "yaml", "css"]
69 highlightjsTheme = "github"
70
71[permalinks]
72 blog = "/blog/:year/:month/:day/:slug/"
73
74[params.intro]
75 paragraph = "Making your Ansible playbooks easier to understand and troubleshoot."
76
77 # This appears at the top of the sidebar above params.intro.header.
78 # A width of less than 100px is recommended from a design perspective.
79 [params.intro.pic]
80 src = "static/logo.png"
81 # Sets Image to be a circle
82 circle = false
83 # Sets Image to be Future Imperfect's hexagon
84 imperfect = false
85 width = ""
86 alt = "ara.recordsansible.org"
87
88[params.postAmount]
89# Sets the number of recent posts to show in the sidebar. The default value is 5.
90 sidebar = 5
91
92# Sets the menu items in the navigation bar
93# Identifier prepends a Font Awesome icon to the menu item
94[[menu.main]]
95 name = "Home"
96 url = "/"
97 identifier = "fa fa-home"
98 weight = 1
99
100[[menu.main]]
101 name = "Blog"
102 url = "/blog/"
103 identifier = "fa fa-newspaper-o"
104 weight = 2
105
106[[menu.main]]
107 name = "Documentation"
108 url = "https://ara.readthedocs.io"
109 identifier = "fa fa-book"
110 weight = 3
111
112# Sets Social Media icons to appear and link to your account. Value should be your
113# username unless otherwise noted. These are the icons affected by socialAppearAtTop
114# and socialAppearAtBottom.
115[social]
116 github = "openstack/?q=ara"
117 twitter = "ARecordsAnsible"
diff --git a/website/content/_index.md b/website/content/_index.md
new file mode 100644
index 0000000..c5cf8ef
--- /dev/null
+++ b/website/content/_index.md
@@ -0,0 +1,77 @@
1---
2kind: home
3---
4
5# What's ARA ?
6
7ARA Records Ansible playbook runs and makes the recorded data available and intuitive for users and systems.
8
9It makes your Ansible playbooks easier to understand and troubleshoot.
10
11![reports](static/reports.png)
12<br>
13<br>
14
15### ARA is free and open source
16
17ARA is an [OpenStack](https://www.openstack.org) community project and all of it's [components](https://github.com/openstack?q=ara)
18are free and open source under the GPLv3 license.
19
20You can participate in [code reviews](https://review.openstack.org/#/q/project:%255Eopenstack/ara.*+OR+project:openstack/ansible-role-ara)
21and learn how you can contribute your first patch in the [contributors documentation](https://ara.readthedocs.io/en/latest/contributing.html).
22<br>
23<br>
24
25### ARA is simple and easy to use
26
27Simplicity is a core feature in ARA.
28It does one thing and it does it well: reporting on your Ansible playbooks.
29
30[Install ARA](http://ara.readthedocs.io/en/stable/installation.html), tell [Ansible](https://ara.readthedocs.io/en/latest/configuration.html)
31to use it and your next playbook will be recorded. That's it !
32
33Read more about the project's core values in the [manifesto](https://ara.readthedocs.io/en/stable/manifesto.html).
34<br>
35<br>
36
37### ARA is tested, stable and production ready
38
39Each new commit to ARA is gated against a series of [unit and integration tests](https://github.com/openstack/ara#contributing-testing-issues-and-bugs)
40against different Linux distributions and versions of Ansible in order to prevent regressions.
41
42ARA is used to record more than a [million playbooks a month](http://superuser.openstack.org/articles/scaling-ara-ansible/) from the OpenStack community alone.
43
44It works.
45<br>
46<br>
47
48### ARA is offline and decentralized by default
49
50Running Ansible from your laptop ? No problem.
51
52You can browse your ARA reports locally from a sqlite database without ever leaving the comfort of localhost.
53
54Need to scale with real [web and application servers](https://ara.readthedocs.io/en/stable/webserver.html) or use a
55database server like [MySQL or PostgreSQL](https://ara.readthedocs.io/en/stable/configuration.html#ara-database) ?
56
57You can do that too.
58<br>
59<br>
60
61# Getting started
62
63```
64# Install ARA from PyPi
65$ pip install ara
66
67# Set up Ansible to use ARA
68$ export ANSIBLE_CALLBACK_PLUGINS=$(python -m ara.setup.callback_plugins)
69
70# Run your Ansible playbook as usual
71$ ansible-playbook myplaybook.yml
72
73# Start the ARA standalone webserver
74$ ara-manage runserver
75
76# Browse http://127.0.0.1:9191
77```
diff --git a/website/content/static/favicon.ico b/website/content/static/favicon.ico
new file mode 100644
index 0000000..3755e79
--- /dev/null
+++ b/website/content/static/favicon.ico
Binary files differ
diff --git a/website/content/static/logo.png b/website/content/static/logo.png
new file mode 100644
index 0000000..1eda4d3
--- /dev/null
+++ b/website/content/static/logo.png
Binary files differ
diff --git a/website/content/static/reports.png b/website/content/static/reports.png
new file mode 100644
index 0000000..a99df45
--- /dev/null
+++ b/website/content/static/reports.png
Binary files differ
diff --git a/website/layouts/index.html b/website/layouts/index.html
new file mode 100644
index 0000000..338afea
--- /dev/null
+++ b/website/layouts/index.html
@@ -0,0 +1,13 @@
1{{ partial "header" . }}
2 {{ $.Scratch.Set "shareNav" true }}
3 {{ partial "navbar" . }}
4 <!-- Main -->
5 <div id="main">
6 <article class="post">
7 <div id="content">
8 {{ .Content }}
9 </div>
10 </article>
11 </div>
12 {{ partial "sidebar" . }}
13{{ partial "footer" . }}
diff --git a/website/layouts/partials/favicon.html b/website/layouts/partials/favicon.html
new file mode 100644
index 0000000..c6956d1
--- /dev/null
+++ b/website/layouts/partials/favicon.html
@@ -0,0 +1,4 @@
1{{ if .Site.Params.loadFavicon }}
2 <link rel="icon" href='static/favicon.ico'>
3 <meta name="application-name" content="{{ .Site.Title }}">
4{{ end }}
diff --git a/website/layouts/partials/gitinfo.html b/website/layouts/partials/gitinfo.html
new file mode 100644
index 0000000..175ad3a
--- /dev/null
+++ b/website/layouts/partials/gitinfo.html
@@ -0,0 +1,8 @@
1{{ with .GitInfo }}
2 <!-- Source -->
3 <section id="mini-bio">
4 <h3>Website source</h3>
5 <p>This website was last updated from source: {{ .AuthorDate }}</p>
6 <p>Git commit: <a href="https://git.openstack.org/cgit/openstack/ara-infra/commit/?id={{ .Hash }}">{{ .Hash }}</a></p>
7 </section>
8{{ end }}
diff --git a/website/layouts/partials/sidebar.html b/website/layouts/partials/sidebar.html
new file mode 100644
index 0000000..e924325
--- /dev/null
+++ b/website/layouts/partials/sidebar.html
@@ -0,0 +1,146 @@
1<!-- Sidebar -->
2<section id="sidebar">
3
4 <!-- Intro -->
5 <section id="intro">
6 {{ $pic := .Site.Params.intro.pic }}
7 {{ with $pic.src }}
8 {{ if $pic.circle }}
9 <a href='{{"/" | relURL}}'><img src="{{ . | relURL }}" class="intro-circle" width="{{ $pic.width }}" alt="{{ $pic.alt }}" /></a>
10 {{ else if $pic.imperfect }}
11 <a href='{{"/" | relURL}}' class="logo"><img src="{{ . | relURL }}" alt="{{ $pic.alt }}" /></a>
12 {{ else }}
13 <a href='{{"/" | relURL}}'><img src="{{ . | relURL }}" width="{{ $pic.width }}" alt="{{ $pic.alt }}" /></a>
14 {{ end }}
15 {{ end }}
16 {{ with .Site.Params.intro }}
17 <header>
18 <h2>{{ .header }}</h2>
19 <p>{{ .paragraph | safeHTML }}</p>
20 </header>
21 {{ end }}
22 {{ if .Site.Params.socialAppearAtTop }}
23 <ul class="icons">
24 {{ if .Site.Params.rssAppearAtTop }}
25 {{ partial "rss-icon" . }}
26 {{ end }}
27 {{ partial "social" . }}
28 </ul>
29 {{ end }}
30 <div style="text-align:left">
31 <h3>Community & Help</h3>
32 <p>
33 <b>IRC</b>: #ara on <a href="https://webchat.freenode.net/?channels=%23ara" target="_blank">freenode</a><br />
34 <b>Slack</b>: <a href="https://join.slack.com/t/arecordsansible/shared_invite/enQtMjMxNzI4ODAxMDQxLWU4MmZhZTI4ZjRjOTUwZTM2MzM3MzcwNDU1YzFmNzRlMzI0NTUzNDY1MWJlNThhM2I4ZTViZjUwZTRkNTBiM2I" target="_blank">ARecordsAnsible.slack.com</a>
35 </p>
36 </div>
37 </section>
38
39 <!-- Community -->
40
41 <!-- Posts List -->
42 <section class="recent-posts">
43 <div class="mini-posts">
44 <header>
45 <h3>Recent blog posts</h3>
46 </header>
47 <div class="posts-container">
48 {{ $.Scratch.Set "recentPosts" .Site.Pages }}
49
50 {{ with .Site.Params.postAmount.sidebar }}
51 {{ $.Scratch.Set "postLimit" . }}
52 {{ else }}
53 {{ $.Scratch.Set "postLimit" 5 }}
54 {{ end }}
55
56 {{ range first ($.Scratch.Get "postLimit") (where ($.Scratch.Get "recentPosts") "Type" "post") }}
57 <article class="mini-post">
58 <header>
59 <h3>
60 <a href="{{ .RelPermalink }}">{{ .Title }}</a>
61 </h3>
62 {{ $.Scratch.Set "dateType" .Date }}
63 <time class="published" datetime='{{ ($.Scratch.Get "dateType").Format "2006-01-02" }}'>
64 {{ ($.Scratch.Get "dateType").Format "January 2, 2006" }}
65 </time>
66 </header>
67 {{ .Render "featured" }}
68 </article>
69 {{ end }}
70 </div>
71
72 {{ if ge (len (where .Site.Pages "Type" "post")) ($.Scratch.Get "postLimit") }}
73 <a href=
74 {{ with .Site.Params.viewMorePostLink }}
75 {{ . }}
76 {{ else }}
77 "/post/"
78 {{ end }}
79 class="button">View more posts</a>
80 {{ end }}
81 </div>
82 </section>
83
84 <!-- This if statement only applies if someone goes to the /categories url -->
85 <!-- Otherwise this section is shown for all other links -->
86 {{ if .Site.Params.showSidebarCategories }}
87 {{ if ne ($.Scratch.Get "showCategories") false }}
88 <!-- Categories List -->
89 <section id="categories">
90 <header>
91 <h3>
92 <a href="/categories/">Blog categories</a>
93 </h3>
94 </header>
95 {{ if .Site.Params.categoriesByCount }}
96 {{ $.Scratch.Set "categories" .Site.Taxonomies.categories.ByCount }}
97 {{ else }}
98 {{ $.Scratch.Set "categories" .Site.Taxonomies.categories.Alphabetical }}
99 {{ end }}
100
101 {{ range $key, $value := $.Scratch.Get "categories" }}
102 <p>
103 <article>
104 <header>
105 {{ if ne $value.Name "" }}
106 <a href="/categories/{{ $value.Name | urlize }}/">{{ $value.Name }}</a>
107 <span style="float:right;">{{ $value.Count }}</span>
108 {{ else }}
109 Uncategorized
110 <span style="float:right;">{{ $value.Count }}</span>
111 {{ end }}
112 </header>
113 </article>
114 </p>
115 {{ end }}
116 </section>
117 {{ end }}
118 {{ end }}
119
120 {{ partial "gitinfo" . }}
121
122 <!-- Footer -->
123 <section id="footer">
124 {{ if .Site.Params.socialAppearAtBottom }}
125 <ul class="icons">
126 {{ if .Site.Params.rssAppearAtBottom }}
127 {{ partial "rss-icon" . }}
128 {{ end }}
129 {{ partial "social" . }}
130 </ul>
131 {{ end }}
132 <p class="copyright">
133 {{ with .Site.Copyright | safeHTML }}
134 {{ . }}
135 {{ else }}
136 &copy; {{ .Site.LastChange.Year }}
137 {{if isset .Site.Params "author" }}
138 {{ .Site.Params.author}}
139 {{ else }}
140 {{ .Site.Title }}
141 {{ end }}
142 {{end}}.
143 Powered by <a href="//gohugo.io" target="_blank">Hugo</a>
144 </p>
145 </section>
146</section>