feat: add gitea clinic page
parent
a83fb1164d
commit
18a90334ce
|
@ -0,0 +1,27 @@
|
||||||
|
+++
|
||||||
|
title = "Gitea Clinic"
|
||||||
|
description = "Debug and Recover broken Gitea instances"
|
||||||
|
+++
|
||||||
|
|
||||||
|
## How does it work?
|
||||||
|
|
||||||
|
1. Get in touch with the doctor of your choice
|
||||||
|
2. Upload your sick Gitea
|
||||||
|
3. Once it gets better bring it back home (or decide it should get a
|
||||||
|
permanent residence at hostea)
|
||||||
|
4. Pay the doctor
|
||||||
|
|
||||||
|
## How much does it cost?
|
||||||
|
|
||||||
|
All Hostea doctors charge a flat hourly rate for consultations held in public
|
||||||
|
(private information is never revealed, even if the consultation is held
|
||||||
|
in public) Private consultations fees depend on the Hostea doctor
|
||||||
|
|
||||||
|
Sounds good, I want to get an appointment!
|
||||||
|
{{ call_to_action_banner(prompt="Sounds good, I want to get an appointment!", link="/contanct", action="Contact Us") }}
|
||||||
|
|
||||||
|
The doctor name links to their resume. Stars are awarded when someone is
|
||||||
|
happy about a public consultation (not for private consulations).
|
||||||
|
|
||||||
|
## Hostea Doctors
|
||||||
|
{{ gitea_clinic_doc_reviews() }}
|
|
@ -0,0 +1,32 @@
|
||||||
|
.clinic__doctors-container {
|
||||||
|
display: flex;
|
||||||
|
}
|
||||||
|
|
||||||
|
.doctor__profile_photo {
|
||||||
|
width: 100px;
|
||||||
|
height: 100px;
|
||||||
|
border-radius: 100px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.doctor__container {
|
||||||
|
background-color: #eee;
|
||||||
|
margin: 10px 30px;
|
||||||
|
padding: 10px;
|
||||||
|
height: 250px;
|
||||||
|
border-radius: 5px;
|
||||||
|
width: 30%;
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: space-around;
|
||||||
|
}
|
||||||
|
|
||||||
|
.doctor__name {
|
||||||
|
text-align: center;
|
||||||
|
margin: 0 auto !important;
|
||||||
|
}
|
||||||
|
.doctor_rating-stars,
|
||||||
|
.doctor_rating-value {
|
||||||
|
margin: 0 auto !important;
|
||||||
|
text-align: center;
|
||||||
|
}
|
|
@ -0,0 +1,10 @@
|
||||||
|
.clinic__doctors-container {
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
align-items: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
.doctor__container {
|
||||||
|
width: 80%;
|
||||||
|
}
|
|
@ -5,6 +5,7 @@
|
||||||
@import "./page/main";
|
@import "./page/main";
|
||||||
@import "./blog/main";
|
@import "./blog/main";
|
||||||
@import "./tag/main";
|
@import "./tag/main";
|
||||||
|
@import "./gitea-clinic/main";
|
||||||
|
|
||||||
.zola-anchor {
|
.zola-anchor {
|
||||||
margin-left: 5px;
|
margin-left: 5px;
|
||||||
|
|
|
@ -4,6 +4,7 @@
|
||||||
@import "./page/mobile";
|
@import "./page/mobile";
|
||||||
@import "./blog/mobile";
|
@import "./blog/mobile";
|
||||||
@import "./tag/mobile";
|
@import "./tag/mobile";
|
||||||
|
@import "./gitea-clinic/mobile.scss";
|
||||||
|
|
||||||
header {
|
header {
|
||||||
height: auto;
|
height: auto;
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
@import '../components/_page.scss';
|
@import "../components/_page.scss";
|
||||||
@import '../components/_link.scss';
|
@import "../components/_link.scss";
|
||||||
|
|
||||||
.page__container {
|
.page__container {
|
||||||
width: 50%;
|
width: 50%;
|
||||||
|
@ -27,12 +27,12 @@
|
||||||
|
|
||||||
.page__preview-banner {
|
.page__preview-banner {
|
||||||
width: 10%;
|
width: 10%;
|
||||||
height: #{'min(250px, 50vh)'};
|
height: #{"min(250px, 50vh)"};
|
||||||
margin: 20px auto;
|
margin: 20px auto;
|
||||||
}
|
}
|
||||||
|
|
||||||
.page__banner {
|
.page__banner {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
height: #{'max(450px, 50vh)'};
|
height: #{"max(450px, 50vh)"};
|
||||||
margin: 20px auto;
|
margin: 20px auto;
|
||||||
}
|
}
|
||||||
|
|
|
@ -25,6 +25,7 @@
|
||||||
{{ macros::nav_link(link="/about/", name="About") }}
|
{{ macros::nav_link(link="/about/", name="About") }}
|
||||||
{{ macros::nav_link(link="/blog/", name="Blog") }}
|
{{ macros::nav_link(link="/blog/", name="Blog") }}
|
||||||
{{ macros::nav_link(link="/contact/", name="Contact") }}
|
{{ macros::nav_link(link="/contact/", name="Contact") }}
|
||||||
|
{{ macros::nav_link(link="/gitea-clinic/", name="Gitea Clinic") }}
|
||||||
{{ macros::nav_link(link="/talks/", name="Talks") }}
|
{{ macros::nav_link(link="/talks/", name="Talks") }}
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -0,0 +1,48 @@
|
||||||
|
{% set data_doctors = load_data(path="data/clinic-doctors.toml") %}
|
||||||
|
{% set full_star = "★" %}
|
||||||
|
{% set empty_star = "☆" %}
|
||||||
|
|
||||||
|
<div class="clinic__doctors-container">
|
||||||
|
{# sorted by name #}
|
||||||
|
{% set data_doctors = data_doctors["doctors"] | sort(attribute="name") %}
|
||||||
|
{% for doctor in data_doctors %}
|
||||||
|
<div class="doctor__container">
|
||||||
|
{% set_global rating = 0 %}
|
||||||
|
{% set reviews_length = doctor["reviews"] | length %}
|
||||||
|
{% for review in doctor["reviews"] %}
|
||||||
|
{% set_global rating = rating + review["rating"] %}
|
||||||
|
{% endfor %}
|
||||||
|
|
||||||
|
{% set rating_fraction = rating % 1 %}
|
||||||
|
|
||||||
|
{% if rating == 5 %}
|
||||||
|
{% set_global rating_str = full_star ~ full_star ~ full_star ~ full_star ~ full_star %}
|
||||||
|
{% elif rating > 4 %}
|
||||||
|
{% set_global rating_str = full_star ~ full_star ~ full_star ~ full_star ~ empty_star %}
|
||||||
|
{% elif rating > 3 %}
|
||||||
|
{% set_global rating_str = full_star ~ full_star ~ full_star ~ empty_star ~ empty_star %}
|
||||||
|
{% elif rating > 2 %}
|
||||||
|
{% set_global rating_str = full_star ~ full_star ~ empty_star ~ empty_star ~ empty_star %}
|
||||||
|
{% elif rating > 1 %}
|
||||||
|
{% set_global rating_str = full_star ~ empty_star ~ empty_star ~ empty_star ~ empty_star %}
|
||||||
|
{% else %}
|
||||||
|
{% set_global rating_str = empty_star ~ empty_star ~ empty_star ~ empty_star %}
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
{% if doctor["picture"] %}
|
||||||
|
{% set picture = doctor["picture"] %}
|
||||||
|
{% else %}
|
||||||
|
{% set picture = "/tmp-logo.png" %}
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
{% set rating = rating / reviews_length %}
|
||||||
|
<img src="{{ get_url(path=picture, cachebust=true) }}" alt="" class="doctor__profile_photo">
|
||||||
|
<h3 class="doctor__name">{{ doctor["name"] }}</h3>
|
||||||
|
<div class="docutr__rating-container">
|
||||||
|
<p class="doctor_rating-stars">{{ rating_str }}</p>
|
||||||
|
<!--<p class="doctor_rating-value">{{ rating }}</p> -->
|
||||||
|
</div>
|
||||||
|
<a href='{{ doctor["website"] }}' class="doctor__contact">Learn More</a>
|
||||||
|
</div>
|
||||||
|
{% endfor %}
|
||||||
|
</div>
|
Loading…
Reference in New Issue