mirror of
https://github.com/kevinveenbirkenbach/computer-playbook.git
synced 2025-08-29 15:06:26 +02:00
Optimized for portfolio, presentation and docs
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
# Portfolio 🚀
|
||||
# Portfolio
|
||||
|
||||
## Description
|
||||
|
||||
|
@@ -10,11 +10,11 @@ class LookupModule(LookupBase):
|
||||
Group the given cards into categorized and uncategorized lists
|
||||
based on the tags from menu_categories.
|
||||
"""
|
||||
if len(terms) < 1:
|
||||
raise AnsibleError("Missing required argument: cards")
|
||||
if len(terms) < 2:
|
||||
raise AnsibleError("Missing required arguments")
|
||||
|
||||
cards = terms[0]
|
||||
menu_categories = variables.get("menu_categories", {})
|
||||
menu_categories = terms[1]
|
||||
|
||||
categorized = {}
|
||||
uncategorized = []
|
||||
|
@@ -21,22 +21,26 @@
|
||||
become: false
|
||||
register: config_file
|
||||
|
||||
- name: Load menu categories
|
||||
include_vars:
|
||||
file: "menu_categories.yml"
|
||||
|
||||
- name: Load docker cards
|
||||
set_fact:
|
||||
portfolio_cards: "{{ lookup('docker_cards', 'roles') }}"
|
||||
|
||||
- name: Group docker cards
|
||||
set_fact:
|
||||
portfolio_menu_data: "{{ lookup('docker_cards_grouped', portfolio_cards) }}"
|
||||
portfolio_menu_data: "{{ lookup('docker_cards_grouped', portfolio_cards, portfolio_menu_categories) }}"
|
||||
|
||||
- name: Debug portfolio data
|
||||
debug:
|
||||
msg:
|
||||
cards: "{{ portfolio_cards }}"
|
||||
menu_data: "{{ portfolio_menu_data }}"
|
||||
portfolio_cards: "{{ portfolio_cards }}"
|
||||
portfolio_menu_categories: "{{ portfolio_menu_categories}}"
|
||||
portfolio_menu_data: "{{ portfolio_menu_data }}"
|
||||
when: enable_debug | bool
|
||||
|
||||
|
||||
- name: Copy host-specific config.yaml if it exists
|
||||
template:
|
||||
src: "{{ config_inventory_path }}"
|
||||
|
@@ -163,68 +163,4 @@ navigation:
|
||||
|
||||
{% endif %}
|
||||
|
||||
footer:
|
||||
children:
|
||||
- link: accounts
|
||||
- name: Solution Hub
|
||||
description: Curated collection of self hosted tools
|
||||
icon:
|
||||
class: fa-solid fa-network-wired
|
||||
children:
|
||||
|
||||
{% include 'footer_menu.yaml.j2' %}
|
||||
|
||||
- name: Support Us
|
||||
description: "Discover all the ways you can support our work."
|
||||
icon:
|
||||
class: fa-solid fa-hands-helping
|
||||
children:
|
||||
- name: Buy me a Coffee
|
||||
description: "Support our work with a coffee – every cup helps!"
|
||||
icon:
|
||||
class: fa-solid fa-mug-hot
|
||||
url: https://s.veen.world/buymeacoffee
|
||||
- name: Patreon
|
||||
description: "Become a member and support me monthly with exclusive content."
|
||||
icon:
|
||||
class: fa-brands fa-patreon
|
||||
url: https://s.veen.world/patreon
|
||||
- name: PayPal
|
||||
description: "Donate to our open source projects with a one-time or monthly PayPal contribution."
|
||||
icon:
|
||||
class: fa-brands fa-paypal
|
||||
url: https://s.veen.world/paypaldonate
|
||||
- name: GitHub Sponsors
|
||||
description: "Directly support our projects through GitHub Sponsors."
|
||||
icon:
|
||||
class: fa-brands fa-github
|
||||
url: https://s.veen.world/githubsponsors
|
||||
|
||||
{% if "sphinx" in group_names %}
|
||||
|
||||
- name: Documentation
|
||||
description: Access our comprehensive documentation and support resources to help you get the most out of the software.
|
||||
icon:
|
||||
class: fas fa-book
|
||||
url: https://{{domains.sphinx}}
|
||||
iframe: {{ applications | get_landingpage_iframe_enabled('sphinx') }}
|
||||
|
||||
{% endif %}
|
||||
|
||||
{% if "presentation" in group_names %}
|
||||
|
||||
- name: Slides
|
||||
description: Access our comprehensive documentation and support resources to help you get the most out of the software.
|
||||
icon:
|
||||
class: fas fa-book
|
||||
url: https://{{domains.sphinx}}
|
||||
iframe: {{ applications | get_landingpage_iframe_enabled('sphinx') }}
|
||||
|
||||
{% endif %}
|
||||
|
||||
- name: Imprint
|
||||
description: Check out the imprint information
|
||||
icon:
|
||||
class: fa-solid fa-scale-balanced
|
||||
url: "{{service_provider.legal.imprint}}"
|
||||
iframe: true
|
||||
{% include 'footer_menu.yaml.j2' %}
|
@@ -1,52 +1,136 @@
|
||||
{# Render all categories #}
|
||||
{% for category, apps in portfolio_menu_data.categorized %}
|
||||
- name: {{ category }}
|
||||
description: {{ category_data.menu_categories[category].description }}
|
||||
|
||||
footer:
|
||||
children:
|
||||
- link: accounts
|
||||
|
||||
{% if (portfolio_menu_data.categorized is mapping and portfolio_menu_data.categorized | length > 0)
|
||||
or (portfolio_menu_data.uncategorized is sequence and portfolio_menu_data.uncategorized | length > 0) %}
|
||||
|
||||
- name: Solution Hub
|
||||
description: Curated collection of self hosted tools
|
||||
icon:
|
||||
class: {{ category_data.menu_categories[category].icon }}
|
||||
class: fa-solid fa-network-wired
|
||||
children:
|
||||
{% for app in apps %}
|
||||
|
||||
{# Render all categories #}
|
||||
{% for category, apps in portfolio_menu_data.categorized.items() %}
|
||||
|
||||
- name: {{ category }}
|
||||
description: {{ portfolio_menu_categories[category].description }}
|
||||
icon:
|
||||
class: {{ portfolio_menu_categories[category].icon }}
|
||||
children:
|
||||
|
||||
{% for app in apps %}
|
||||
|
||||
- name: {{ app.title }}
|
||||
description: {{ app.text }}
|
||||
icon: {{ app.icon }}
|
||||
url: {{ app.url }}
|
||||
iframe: {{ app.iframe }}
|
||||
|
||||
{% if app.title == 'Keycloak' %}
|
||||
|
||||
children:
|
||||
- name: Administration
|
||||
description: Access the central admin console
|
||||
icon:
|
||||
class: fa-solid fa-shield-halved
|
||||
url: https://{{domains.keycloak}}/admin
|
||||
iframe: {{ applications | get_landingpage_iframe_enabled('keycloak') }}
|
||||
- name: Profile
|
||||
description: Update your personal admin settings
|
||||
icon:
|
||||
class: fa-solid fa-user-gear
|
||||
url: https://{{ domains.keycloak }}/realms/{{oidc.client.id}}/account
|
||||
iframe: {{ applications | get_landingpage_iframe_enabled('keycloak') }}
|
||||
- name: Logout
|
||||
description: End your admin session securely
|
||||
icon:
|
||||
class: fa-solid fa-right-from-bracket
|
||||
url: https://{{ domains.keycloak }}/realms/{{oidc.client.id}}/protocol/openid-connect/logout
|
||||
iframe: false
|
||||
|
||||
{% endif %}
|
||||
|
||||
{% endfor %}
|
||||
|
||||
{% endfor %}
|
||||
|
||||
{# Render Uncategorized #}
|
||||
{% if portfolio_menu_data.uncategorized %}
|
||||
|
||||
- name: Uncategorized
|
||||
description: Tools without a defined category
|
||||
icon:
|
||||
class: fa-solid fa-question
|
||||
children:
|
||||
|
||||
{% for app in portfolio_menu_data.uncategorized %}
|
||||
|
||||
- name: {{ app.title }}
|
||||
description: {{ app.text }}
|
||||
icon: {{ app.icon }}
|
||||
url: {{ app.url }}
|
||||
iframe: {{ app.iframe }}
|
||||
{% if app.title == 'Keycloak' %}
|
||||
children:
|
||||
- name: Administration
|
||||
description: Access the central admin console
|
||||
icon:
|
||||
class: fa-solid fa-shield-halved
|
||||
url: https://{{domains.keycloak}}/admin
|
||||
iframe: {{ applications | get_landingpage_iframe_enabled('keycloak') }}
|
||||
- name: Profile
|
||||
description: Update your personal admin settings
|
||||
icon:
|
||||
class: fa-solid fa-user-gear
|
||||
url: https://{{ domains.keycloak }}/realms/{{oidc.client.id}}/account
|
||||
iframe: {{ applications | get_landingpage_iframe_enabled('keycloak') }}
|
||||
- name: Logout
|
||||
description: End your admin session securely
|
||||
icon:
|
||||
class: fa-solid fa-right-from-bracket
|
||||
url: https://{{ domains.keycloak }}/realms/{{oidc.client.id}}/protocol/openid-connect/logout
|
||||
iframe: false
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
|
||||
{% endfor %}
|
||||
|
||||
{# Render Uncategorized
|
||||
{% if portfolio_menu_data.uncategorized %}
|
||||
- name: Uncategorized
|
||||
description: Tools without a defined category
|
||||
{% endif %}
|
||||
|
||||
{% endif %}
|
||||
|
||||
- name: Support Us
|
||||
description: "Discover all the ways you can support our work."
|
||||
icon:
|
||||
class: fa-solid fa-question
|
||||
class: fa-solid fa-hands-helping
|
||||
children:
|
||||
{% for app in portfolio_menu_data.uncategorized %}
|
||||
- name: {{ app.title }}
|
||||
description: {{ app.text }}
|
||||
icon: {{ app.icon }}
|
||||
url: {{ app.url }}
|
||||
iframe: {{ app.iframe }}
|
||||
{% endfor %}
|
||||
{% endif %} #}
|
||||
- name: Buy me a Coffee
|
||||
description: "Support our work with a coffee – every cup helps!"
|
||||
icon:
|
||||
class: fa-solid fa-mug-hot
|
||||
url: https://s.veen.world/buymeacoffee
|
||||
- name: Patreon
|
||||
description: "Become a member and support me monthly with exclusive content."
|
||||
icon:
|
||||
class: fa-brands fa-patreon
|
||||
url: https://s.veen.world/patreon
|
||||
- name: PayPal
|
||||
description: "Donate to our open source projects with a one-time or monthly PayPal contribution."
|
||||
icon:
|
||||
class: fa-brands fa-paypal
|
||||
url: https://s.veen.world/paypaldonate
|
||||
- name: GitHub Sponsors
|
||||
description: "Directly support our projects through GitHub Sponsors."
|
||||
icon:
|
||||
class: fa-brands fa-github
|
||||
url: https://s.veen.world/githubsponsors
|
||||
|
||||
{% if "sphinx" in group_names %}
|
||||
|
||||
- name: Documentation
|
||||
description: Access our comprehensive documentation and support resources to help you get the most out of the software.
|
||||
icon:
|
||||
class: fas fa-book
|
||||
url: https://{{domains.sphinx}}
|
||||
iframe: {{ applications | get_landingpage_iframe_enabled('sphinx') }}
|
||||
|
||||
{% endif %}
|
||||
|
||||
{% if "presentation" in group_names %}
|
||||
|
||||
- name: Slides
|
||||
description: Access our comprehensive documentation and support resources to help you get the most out of the software.
|
||||
icon:
|
||||
class: fas fa-book
|
||||
url: https://{{domains.sphinx}}
|
||||
iframe: {{ applications | get_landingpage_iframe_enabled('sphinx') }}
|
||||
|
||||
{% endif %}
|
||||
|
||||
- name: Imprint
|
||||
description: Check out the imprint information
|
||||
icon:
|
||||
class: fa-solid fa-scale-balanced
|
||||
url: "{{service_provider.legal.imprint}}"
|
||||
iframe: true
|
@@ -1,4 +1,5 @@
|
||||
menu_categories:
|
||||
portfolio_menu_categories:
|
||||
|
||||
Community:
|
||||
description: Tools to manage the community
|
||||
icon: fa-solid fa-users
|
||||
@@ -15,6 +16,18 @@ menu_categories:
|
||||
- project
|
||||
- kanban
|
||||
- management
|
||||
|
||||
Social Media:
|
||||
description: Social Media Tools
|
||||
icon: fa-solid fa-share-nodes
|
||||
tags:
|
||||
- microblog
|
||||
- blog
|
||||
- video platform
|
||||
- streaming platform
|
||||
- music platform
|
||||
- social network
|
||||
- portfolio
|
||||
|
||||
Communication:
|
||||
description: Tools for communication
|
||||
@@ -24,6 +37,7 @@ menu_categories:
|
||||
- communication
|
||||
- video
|
||||
- mail
|
||||
- email
|
||||
|
||||
Administration:
|
||||
description: Administration Tools
|
||||
|
Reference in New Issue
Block a user