forked from Hostea/website
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 "./blog/main";
|
||||
@import "./tag/main";
|
||||
@import "./gitea-clinic/main";
|
||||
|
||||
.zola-anchor {
|
||||
margin-left: 5px;
|
||||
|
|
|
@ -4,6 +4,7 @@
|
|||
@import "./page/mobile";
|
||||
@import "./blog/mobile";
|
||||
@import "./tag/mobile";
|
||||
@import "./gitea-clinic/mobile.scss";
|
||||
|
||||
header {
|
||||
height: auto;
|
||||
|
|
|
@ -1,38 +1,38 @@
|
|||
@import '../components/_page.scss';
|
||||
@import '../components/_link.scss';
|
||||
@import "../components/_page.scss";
|
||||
@import "../components/_link.scss";
|
||||
|
||||
.page__container {
|
||||
width: 50%;
|
||||
margin: auto;
|
||||
padding: 50px 0;
|
||||
width: 50%;
|
||||
margin: auto;
|
||||
padding: 50px 0;
|
||||
}
|
||||
|
||||
.page__group {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
}
|
||||
|
||||
.page__group-title {
|
||||
margin: 20px auto;
|
||||
margin: 20px auto;
|
||||
}
|
||||
|
||||
.page__group-content {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
}
|
||||
|
||||
.page__group-content {
|
||||
@include md;
|
||||
@include md;
|
||||
}
|
||||
|
||||
.page__preview-banner {
|
||||
width: 10%;
|
||||
height: #{'min(250px, 50vh)'};
|
||||
margin: 20px auto;
|
||||
width: 10%;
|
||||
height: #{"min(250px, 50vh)"};
|
||||
margin: 20px auto;
|
||||
}
|
||||
|
||||
.page__banner {
|
||||
width: 100%;
|
||||
height: #{'max(450px, 50vh)'};
|
||||
margin: 20px auto;
|
||||
width: 100%;
|
||||
height: #{"max(450px, 50vh)"};
|
||||
margin: 20px auto;
|
||||
}
|
||||
|
|
|
@ -25,6 +25,7 @@
|
|||
{{ macros::nav_link(link="/about/", name="About") }}
|
||||
{{ macros::nav_link(link="/blog/", name="Blog") }}
|
||||
{{ macros::nav_link(link="/contact/", name="Contact") }}
|
||||
{{ macros::nav_link(link="/gitea-clinic/", name="Gitea Clinic") }}
|
||||
{{ macros::nav_link(link="/talks/", name="Talks") }}
|
||||
|
||||
</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