Skip to content
Snippets Groups Projects
Unverified Commit d04834e5 authored by Georg Krause's avatar Georg Krause
Browse files

Add theme linter

parent 3a4c2963
No related branches found
No related tags found
No related merge requests found
Pipeline #19898 passed
......@@ -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 %}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment