Browse Source

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
changes/17/619117/3
David Moreau Simard 6 months ago
parent
commit
748da4067c
No account linked to committer's email address

+ 25
- 0
website/README.rst View File

@@ -0,0 +1,25 @@
1
+ARA's website
2
+=============
3
+
4
+Hosted at `ara.recordsansible.org <https://ara.recordsansible.org>`_, the
5
+website is built with `Hugo <https://gohugo.io/>`_ and installed with the
6
+``ara-website`` role from this project's repository.
7
+
8
+The website uses the Hugo theme called `future-imperfect <https://themes.gohugo.io/future-imperfect/>`_
9
+and it must be checked out as part of building the site.
10
+
11
+Development
12
+-----------
13
+
14
+Clone 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
+
21
+Install Hugo following instructions from their `documentation <https://gohugo.io/getting-started/installing/>`_.
22
+
23
+Run Hugo's standalone server::
24
+
25
+    hugo server --source /opt/ara-infra/website --themesDir /opt/hugo/themes

+ 117
- 0
website/config.toml View File

@@ -0,0 +1,117 @@
1
+# https://gohugo.io/getting-started/configuration/
2
+
3
+languageCode = "en-us"
4
+title = "ARA Records Ansible | ara.recordsansible.org"
5
+theme = "hugo-future-imperfect"
6
+preserveTaxonomyNames = true
7
+paginate = 5
8
+disqusShortname = ""
9
+googleAnalytics = "UA-119558821-1"
10
+pluralizeListTitles = false
11
+enableRobotsTXT = true
12
+canonifyURLs = true
13
+enableGitInfo = 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"

+ 77
- 0
website/content/_index.md View File

@@ -0,0 +1,77 @@
1
+---
2
+kind: home
3
+---
4
+
5
+# What's ARA ?
6
+
7
+ARA Records Ansible playbook runs and makes the recorded data available and intuitive for users and systems.
8
+
9
+It 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
+
17
+ARA is an [OpenStack](https://www.openstack.org) community project and all of it's [components](https://github.com/openstack?q=ara)
18
+are free and open source under the GPLv3 license.
19
+
20
+You can participate in [code reviews](https://review.openstack.org/#/q/project:%255Eopenstack/ara.*+OR+project:openstack/ansible-role-ara)
21
+and 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
+
27
+Simplicity is a core feature in ARA.
28
+It 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)
31
+to use it and your next playbook will be recorded. That's it !
32
+
33
+Read 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
+
39
+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)
40
+against different Linux distributions and versions of Ansible in order to prevent regressions.
41
+
42
+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.
43
+
44
+It works.
45
+<br>
46
+<br>
47
+
48
+### ARA is offline and decentralized by default
49
+
50
+Running Ansible from your laptop ? No problem.
51
+
52
+You can browse your ARA reports locally from a sqlite database without ever leaving the comfort of localhost.
53
+
54
+Need to scale with real [web and application servers](https://ara.readthedocs.io/en/stable/webserver.html) or use a
55
+database server like [MySQL or PostgreSQL](https://ara.readthedocs.io/en/stable/configuration.html#ara-database) ?
56
+
57
+You 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
+```

BIN
website/content/static/favicon.ico View File


BIN
website/content/static/logo.png View File


BIN
website/content/static/reports.png View File


+ 13
- 0
website/layouts/index.html View File

@@ -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" . }}

+ 4
- 0
website/layouts/partials/favicon.html View File

@@ -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 }}

+ 8
- 0
website/layouts/partials/gitinfo.html View File

@@ -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 }}

+ 146
- 0
website/layouts/partials/sidebar.html View File

@@ -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>

Loading…
Cancel
Save