Unverified Commit d04834e5 authored by Georg Krause's avatar Georg Krause
Browse files

Add theme linter

parent 3a4c2963
Pipeline #19898 passed with stages
in 4 minutes and 42 seconds
......@@ -7,7 +7,7 @@ stages:
variables:
PIP_CACHE_DIR: "$CI_PROJECT_DIR/pip-cache"
lint:
lint-black:
stage: lint
image: python:3.10
before_script:
......@@ -17,6 +17,16 @@ lint:
script:
- poetry run black --check --exclude pelican-plugins .
lint-djlint:
stage: lint
image: python:3.10
before_script:
- apt-get update && apt-get install -y make git
- pip install poetry
- poetry install
script:
- poetry run djlint --check theme
test_jsonld_ns:
stage: test
image: python:3
......
This diff is collapsed.
......@@ -12,7 +12,11 @@ Babel = "^2.9.1"
[tool.poetry.dev-dependencies]
black = "^22.1.0"
djlint = "^0.7.6"
[build-system]
requires = ["poetry-core>=1.0.0"]
build-backend = "poetry.core.masonry.api"
[tool.djlint]
indent=2
......@@ -4,16 +4,18 @@
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Funkwhale</title>
<link rel="stylesheet" href="https://ui.funkwhale.audio/v0.1.2/css/funkwhale.css">
<link rel="stylesheet" href="{{ main_siteurl }}/theme/css/fork-awesome.min.css">
<link rel="stylesheet" href="{{ main_siteurl
}}/theme/css/funkwhale.css">
<link rel="icon" type="image/x-icon" href="{{ main_siteurl }}/theme/favicon.ico">
<link rel="stylesheet"
href="https://ui.funkwhale.audio/v0.1.2/css/funkwhale.css">
<link rel="stylesheet"
href="{{ main_siteurl }}/theme/css/fork-awesome.min.css">
<link rel="stylesheet" href="{{ main_siteurl }}/theme/css/funkwhale.css">
<link rel="icon"
type="image/x-icon"
href="{{ main_siteurl }}/theme/favicon.ico">
<script src="{{ main_siteurl }}/theme/js/navbar-burger.js"></script>
</head>
<body>
{% include "inc/menu.html" %}
{% block content %}{% endblock %}
</body>
</html>
<section class="section has-background-light">
{% for article in BLOG_ARTICLES[:5] %}
<article class="message">
<div class="message-header">
<p>
<span class="tag is-info is-light">{{ article.category }}</span>
<span class="ml-3">{{ article.title }}</span>
</p>
<a href="{{ article.link }}">Read more...</a>
</div>
<div class="message-body">{{ article.summary }}</div>
</article>
{% endfor %}
<article class="message">
<div class="message-header">
<p>
<span class="tag is-info is-light">{{ article.category }}</span>
<span class="ml-3">{{ article.title }}</span>
</p>
<a href="{{ article.link }}">Read more...</a>
</div>
<div class="message-body">{{ article.summary }}</div>
</article>
{% endfor %}
</section>
......@@ -2,28 +2,44 @@
<h1 class="title">Funkwhale is based on open standards and free software and built...</h1>
<div class="columns">
<div class="column feature">
<h2 class="title"><i class="fa fa-music" aria-hidden="true"></i> For music lovers</h2>
<h3 class="subtitle">Listen to your music</h3>
<p>Upload your personal music collection and listen to it, any time and everywhere!</p>
<button class="button mt-4">Learn more...</button>
</div>
<div class="column feature">
<h2 class="title"><i class="fa fa-podcast" aria-hidden="true"></i> For podcast lovers</h2>
<h3 class="subtitle">Subscribe to any podcast</h3>
<p>Listen to your favorite podcasts and discover new podcasts from our network!</p>
<button class="button mt-4">Learn more...</button>
</div>
<div class="column feature">
<h2 class="title"><i class="fa fa-upload" aria-hidden="true"></i> For publishers</h2>
<h3 class="subtitle">Publish your music or podcast</h3>
<p>Make your audio content available to the hole Funkwhale network and beyond!</p>
<button class="button mt-4">Learn more...</button>
</div>
<div class="column feature">
<h2 class="title"><i class="fa fa-users" aria-hidden="true"></i> By a friendly community</h2>
<h3 class="subtitle">Take part in shaping our software</h3>
<p>Funkwhale belongs to the Community, become a member and participate in the development of an independend platform!</p>
<button class="button mt-4">Become a contributor</button>
</div>
<h2 class="title">
<i class="fa fa-music" aria-hidden="true"></i> For music lovers
</h2>
<h3 class="subtitle">Listen to your music</h3>
<p>
Upload your personal music collection and listen to it, any time and everywhere!
</p>
<button class="button mt-4">Learn more...</button>
</div>
<div class="column feature">
<h2 class="title">
<i class="fa fa-podcast" aria-hidden="true"></i> For podcast lovers
</h2>
<h3 class="subtitle">Subscribe to any podcast</h3>
<p>
Listen to your favorite podcasts and discover new podcasts from our network!
</p>
<button class="button mt-4">Learn more...</button>
</div>
<div class="column feature">
<h2 class="title">
<i class="fa fa-upload" aria-hidden="true"></i> For publishers
</h2>
<h3 class="subtitle">Publish your music or podcast</h3>
<p>
Make your audio content available to the hole Funkwhale network and beyond!
</p>
<button class="button mt-4">Learn more...</button>
</div>
<div class="column feature">
<h2 class="title">
<i class="fa fa-users" aria-hidden="true"></i> By a friendly community
</h2>
<h3 class="subtitle">Take part in shaping our software</h3>
<p>
Funkwhale belongs to the Community, become a member and participate in the development of an independend platform!
</p>
<button class="button mt-4">Become a contributor</button>
</div>
</div>
</section>
<section class="hero is-fullheight-with-navbar">
<div class="hero-body">
<div class="container">
<div class="columns is-8">
<div class="column">
<div id="hero-content" class="is-flex is-flex-direction-column
is-justify-content-space-between" style="height: 100%;">
<p class="title is-size-4-tablet is-size-3-desktop
is-size-2-widescreen is-size-1-fullhd has-text-weight-bold">{% trans %}A platform for all your audio{% endtrans %}</p>
<p class="subtitle has-text-weight-bold">{% trans %}Your music. Your podcasts.<br />
Enjoy anywhere, share with anyone.{% endtrans %}</p>
<button class="button is-primary is-fullwidth">Get started</button>
</div>
</div>
<div class="column">
<img src="{{ main_siteurl }}/theme/images/screenshot.jpg">
</div>
</div>
</div>
</section>
<div class="hero-body">
<div class="container">
<div class="columns is-8">
<div class="column">
<div id="hero-content"
class="is-flex is-flex-direction-column is-justify-content-space-between"
style="height: 100%;">
<p class="title is-size-4-tablet is-size-3-desktop is-size-2-widescreen is-size-1-fullhd has-text-weight-bold">
{% trans %}A platform for all your audio{% endtrans %}
</p>
<p class="subtitle has-text-weight-bold">
{% trans %}Your music. Your podcasts.
<br />
Enjoy anywhere, share with anyone.{% endtrans %}
</p>
<button class="button is-primary is-fullwidth">Get started</button>
</div>
</div>
<div class="column">
<img src="{{ main_siteurl }}/theme/images/screenshot.jpg">
</div>
</div>
</div>
</section>
<section class="section">
<div class="columns is-multiline">
{% for instance in INSTANCES %}
<div class="column is-half">
<div class="card m-4">
<div class="card-content">
<div class="content">
<h1>{{ instance.node_name }}</h1>
<a href="https://{{ instance.name }}">{{ instance.name }}</a> |
<div class="column is-half">
<div class="card m-4">
<div class="card-content">
<div class="content">
<h1>{{ instance.node_name }}</h1>
<a href="https://{{ instance.name }}">{{ instance.name }}</a> |
<span class="content">
Version: {{ instance.version }}
{% if instance.version == LAST_RELEASE %}
<i class="fa fa-check-circle has-text-success" aria-hidden="true"> Up-to-date</i>
<i class="fa fa-check-circle has-text-success" aria-hidden="true"> Up-to-date</i>
{% endif %}
</span>
<nav class="level mt-4">
<div class="level-item has-text-centered">
<div>
<p class="heading">Active users</p>
<p class="title"><i class="fa fa-users" aria-hidden="true"></i> {{ instance.lastCheck.usage_users_active_month }}</p>
</div>
<p class="heading">
Active users
</p>
<p class="title">
<i class="fa fa-users" aria-hidden="true"></i> {{ instance.lastCheck.usage_users_active_month }}
</p>
</div>
<div class="level-item has-text-centered">
<div>
<p class="heading">Hours of music</p>
<p class="title"><i class="fa fa-clock-o" aria-hidden="true"></i> {{ instance.lastCheck.library_music_hours }}</p>
</div>
</div>
<div class="level-item has-text-centered">
<div>
<p class="heading">Available tracks</p>
<p class="title"><i class="fa fa-file-audio-o" aria-hidden="true"></i> {{ instance.lastCheck.library_tracks_total }}</p>
</div>
</div>
<div class="level-item has-text-centered">
<div>
<p class="heading">Serving since</p>
<p class="title"><i class="fa fa-calendar" aria-hidden="true"></i> {{ instance.first_seen_date|strftime('%d.%m.%Y') }}</p>
</div>
</div>
</nav>
</div>
<div class="level-item has-text-centered">
<div>
<p class="heading">
Hours of music
</p>
<p class="title">
<i class="fa fa-clock-o" aria-hidden="true"></i> {{ instance.lastCheck.library_music_hours }}
</p>
</div>
</div>
<div class="level-item has-text-centered">
<div>
<p class="heading">
Available tracks
</p>
<p class="title">
<i class="fa fa-file-audio-o" aria-hidden="true"></i> {{ instance.lastCheck.library_tracks_total }}
</p>
</div>
</div>
<div class="level-item has-text-centered">
<div>
<p class="heading">
Serving since
</p>
<p class="title">
<i class="fa fa-calendar" aria-hidden="true"></i> {{ instance.first_seen_date|strftime('%d.%m.%Y') }}
</p>
</div>
<footer class="card-footer">
<a href="https://{{ instance.name }}/about" class="card-footer-item">About this Pod</a>
<a href="https://{{ instance.name }}/signup" class="card-footer-item has-text-weight-bold has-text-white has-background-primary">Join</a>
</footer>
</div>
</div>
{% endfor %}
</nav>
</div>
</div>
<footer class="card-footer">
<a href="https://{{ instance.name }}/about" class="card-footer-item">About this Pod</a>
<a href="https://{{ instance.name }}/signup"
class="card-footer-item has-text-weight-bold has-text-white has-background-primary">Join</a>
</footer>
</div>
</div>
{% endfor %}
</div>
</section>
<nav class="navbar has-shadow" role="navigation" aria-label="main navigation">
<nav class="navbar has-shadow"
role="navigation"
aria-label="main navigation">
<div class="navbar-brand">
<a class="navbar-item" href="{{ main_siteurl }}">
<img src="{{ main_siteurl }}/theme/images/logo-white-bg.svg">
</a>
<a role="button" class="navbar-burger" aria-label="menu" aria-expanded="false" data-target="navbarBasicExample">
<a role="button"
class="navbar-burger"
aria-label="menu"
aria-expanded="false"
data-target="navbarBasicExample">
<span aria-hidden="true"></span>
<span aria-hidden="true"></span>
<span aria-hidden="true"></span>
</a>
</div>
<div id="navbarBasicExample" class="navbar-menu">
<div class="navbar-start">
<a class="navbar-item">
Apps
</a>
<a class="navbar-item">
Community
</a>
<a href="{{ SITEURL }}/faqs" class="navbar-item">
FAQs
</a>
<a class="navbar-item">Apps</a>
<a class="navbar-item">Community</a>
<a href="{{ SITEURL }}/faqs" class="navbar-item">FAQs</a>
<div class="navbar-item has-dropdown is-hoverable">
<a class="navbar-link">
Resources
</a>
<a class="navbar-link">Resources</a>
<div class="navbar-dropdown">
<a href="{{ SITEURL }}/collective" class="navbar-item">
Collective and Statutes
</a>
<a href="{{ SITEURL }}/code-of-conduct" class="navbar-item">
Code of Conduct
</a>
<a class="navbar-item">
Forum
</a>
<a href="{{ SITEURL }}/collective" class="navbar-item">Collective and Statutes</a>
<a href="{{ SITEURL }}/code-of-conduct" class="navbar-item">Code of Conduct</a>
<a class="navbar-item">Forum</a>
<hr class="navbar-divider">
<a class="navbar-item">
Documentation
</a>
<a class="navbar-item">Documentation</a>
</div>
</div>
</div>
<div class="navbar-end"></div>
<div class="navbar-item has-dropdown is-hoverable">
<a class="navbar-link">
{% trans %}Language{% endtrans %}
</a>
<a class="navbar-link">{% trans %}Language{% endtrans %}</a>
<div class="navbar-dropdown is-right">
{% for lang, url in lang_siteurls.items() %}
<a class="navbar-item" href="{{ url }}/">{{ lang }}</a>
<a class="navbar-item" href="{{ url }}/">{{ lang }}</a>
{% endfor %}
</div>
</div>
......
{% extends "base.html" %}
{% block content %}
{% include "inc/hero.html" %}
{% include "inc/features.html" %}
<section class="section">
<div class="container is-max-desktop">
<div class="columns">
<div class="column is-three-fifths">
<div class="section">
<p class="subtitle is-3 is-spaced">
{% include "inc/hero.html" %}
{% include "inc/features.html" %}
<section class="section">
<div class="container is-max-desktop">
<div class="columns">
<div class="column is-three-fifths">
<div class="section">
<p class="subtitle is-3 is-spaced">
Listen to your music, everywhere
</p>
<p class="title is-5">
Upload your personal library to your pod, share it with friends and family, and discover talented
creators.</p>
<p>Funkwhale gives you access to your playlists, favorite tracks, and artists everywhere, from our
web interface or the wide range of compatible apps for every platform.</p>
<a class="button is-text mt-4 is-fullwidth">Get started!</a>
</div>
</p>
<p class="title is-5">
Upload your personal library to your pod, share it with friends and family, and discover talented
creators.
</p>
<p>
Funkwhale gives you access to your playlists, favorite tracks, and artists everywhere, from our
web interface or the wide range of compatible apps for every platform.
</p>
<a class="button is-text mt-4 is-fullwidth">Get started!</a>
</div>
<div class="column">
<div class="block has-text-centered">
<figure class="image is-inline-block">
<img style="max-height: 440px" src="{{ main_siteurl }}/theme/images/mobile.jpg" \>
</figure>
</div>
</div>
<div class="column">
<div class="block has-text-centered">
<figure class="image is-inline-block">
<img style="max-height: 440px"
src="{{ main_siteurl }}/theme/images/mobile.jpg">
</figure>
</div>
</div>
</div>
<div class="container is-max-desktop">
<div class="columns">
<div class="column">
<div class="block has-text-centered">
<figure class="image is-inline-block">
<img style="max-height: 440px" src="{{ main_siteurl }}/theme/images/network.jpg" \>
</figure>
</div>
</div>
<div class="container is-max-desktop">
<div class="columns">
<div class="column">
<div class="block has-text-centered">
<figure class="image is-inline-block">
<img style="max-height: 440px"
src="{{ main_siteurl }}/theme/images/network.jpg">
</figure>
</div>
<div class="column is-three-fifths">
<div class="section">
<p class="subtitle is-3 is-spaced">A decentralized and open platform</p>
<p class="title is-5">Funkwhale consists of many independent pods which can communicate together.</p>
<p>This is based on open standards and free and open source technology. The network is not tied to any corporation or entity, which gives you independence and choice.</p>
<a class="button is-text mt-4 is-fullwidth">Find or start your pod</a>
</div>
</div>
<div class="column is-three-fifths">
<div class="section">
<p class="subtitle is-3 is-spaced">
A decentralized and open platform
</p>
<p class="title is-5">
Funkwhale consists of many independent pods which can communicate together.
</p>
<p>
This is based on open standards and free and open source technology. The network is not tied to any corporation or entity, which gives you independence and choice.
</p>
<a class="button is-text mt-4 is-fullwidth">Find or start your pod</a>
</div>
</div>
</div>
</section>
{% include "inc/instances.html" %}
{% include "inc/blogposts.html" %}
{% endblock %}
</div>
</section>
{% include "inc/instances.html" %}
{% include "inc/blogposts.html" %}
{% endblock %}
{% extends "base.html" %}
{% block content %}
<section class="section">
<div class="container is-max-desktop content">
{{ page.content }}
</div>
</section>
{% endblock %}
<section class="section">
<div class="container is-max-desktop content">{{ page.content }}</div>
</section>
{% endblock %}
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment