forked from Hostea/website
Merge pull request 'Gitea Clinic page, typo fixes and docs' (#11) from realaravinth/hostea-website:master into master
Reviewed-on: https://gitea.hostea.org/Hostea/website/pulls/11master
commit
93087e33dd
2
Makefile
2
Makefile
|
@ -17,7 +17,7 @@ ci-deploy: ## Deploy from CI/CD. Only call from within CI
|
|||
./scripts/ci.sh --deploy ${PAGES_DEPLOY_SECRET} pages
|
||||
./scripts/ci.sh --clean
|
||||
|
||||
env: ## Download build dependencies and setup dev environement
|
||||
env: ## Download build dependencies and setup dev environment
|
||||
./scripts/zola.sh install
|
||||
|
||||
help: ## Prints help for targets with comments
|
||||
|
|
|
@ -187,7 +187,7 @@ exist, this is a significant undertaking and effectively a blocker.
|
|||
|
||||
# Federated online services and durability
|
||||
|
||||
All self-hosted services are in danger of loosing the data they contain.
|
||||
All self-hosted services are in danger of losing the data they contain.
|
||||
When a Wordpress service is hosted in a home and the machine dies, it
|
||||
must be restored from backups... when there are backups. Hosting
|
||||
companies ensure the durability of the data with their own backup
|
||||
|
|
|
@ -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() }}
|
|
@ -35,10 +35,10 @@ We will make a good faith effort to:
|
|||
|
||||
## What about my data?
|
||||
|
||||
Users of Hoteas services can ask contact@hostea.org to:
|
||||
Users of Hotea's services can ask contact@hostea.org to:
|
||||
|
||||
* Delete their account on a service when it is not a feature available to the user (for instance Nextcloud)
|
||||
* Retreive data associated with their account on a service that does not already provide full access
|
||||
* Retrieve data associated with their account on a service that does not already provide full access
|
||||
|
||||
## Do we use cookies?
|
||||
|
||||
|
|
|
@ -0,0 +1,49 @@
|
|||
## ------------- start dachary ---------
|
||||
|
||||
[[ doctors ]]
|
||||
nick = "dachary"
|
||||
name ="Loïc Dachary"
|
||||
website = "https://dachary.org"
|
||||
|
||||
[[ doctors.reviews ]]
|
||||
name = "Rob B"
|
||||
rating = 5
|
||||
remarks = "Nice"
|
||||
## ------------- end dachary ---------
|
||||
|
||||
## ------------- start realaravinth ---------
|
||||
|
||||
[[ doctors ]]
|
||||
nick = "realaravinth"
|
||||
name ="Aravinth Manivannan"
|
||||
website = "https://batsense.net"
|
||||
picture = "/people/realaravinth.jpg"
|
||||
|
||||
[[ doctors.reviews ]]
|
||||
name = "Lisa V"
|
||||
rating = 5
|
||||
remarks = "Timely response, very satisfied."
|
||||
|
||||
|
||||
[[ doctors.reviews ]]
|
||||
name = "Bob C"
|
||||
rating = 4.7
|
||||
remarks = "Nice"
|
||||
|
||||
|
||||
|
||||
## ------------- end realaravinth ---------
|
||||
|
||||
## ------------- start easter-eggs ---------
|
||||
|
||||
[[ doctors ]]
|
||||
nick = "easter-eggs"
|
||||
name ="Easter-eggs"
|
||||
website = "https://easter-eggs.com/"
|
||||
|
||||
[[ doctors.reviews ]]
|
||||
name = "Ken G"
|
||||
rating = 5
|
||||
remarks = "Very reliable!"
|
||||
|
||||
## ------------- end easter-eggs ---------
|
|
@ -0,0 +1,43 @@
|
|||
# Add new Hostea Doctor to Gitea Clinic section:
|
||||
|
||||
1. Add the following template to
|
||||
[`clinic-doctors.toml`](../data/clinic-doctors.toml) and fill in the
|
||||
Doctor details:
|
||||
|
||||
```toml
|
||||
## ------------- batman ---------
|
||||
[[ doctors ]]
|
||||
nick = "batman"
|
||||
name ="Bruce Wayne"
|
||||
website = "https://bat.example.com"
|
||||
|
||||
## ------------- start batman ---------
|
||||
```
|
||||
|
||||
2. Optionally, add Doctor's photo:
|
||||
|
||||
i. Add photo to [`../static/people`](../static/people)
|
||||
|
||||
ii. Add photo filename to Doctor's section created in step 1:
|
||||
|
||||
```toml
|
||||
## ------------- batman ---------
|
||||
[[ doctors ]]
|
||||
nick = "batman"
|
||||
name ="Bruce Wayne"
|
||||
# <-----ADD BELOW LINE TO ADD PHOTO ---->
|
||||
photo = "static/people/batman.jpg"
|
||||
# <--------->
|
||||
website = "https://bat.example.com"
|
||||
|
||||
## ------------- start batman ---------
|
||||
```
|
||||
|
||||
## Style Guide
|
||||
|
||||
Please start and end doctor details with the following delimiters:
|
||||
|
||||
```toml
|
||||
## ------------- start doctor-nick-name ---------
|
||||
## ------------- start doctor-nick-name ---------
|
||||
```
|
|
@ -0,0 +1,33 @@
|
|||
# Add ratings to Hostea Doctor
|
||||
|
||||
1. To rate Doctor `batman` from
|
||||
[./gitea-clinic-new-doctor.md](./gitea-clinic-new-doctor.md) guide,
|
||||
add the following section to `batman` section:
|
||||
|
||||
```toml
|
||||
[[ doctors.reviews ]]
|
||||
name = "Joker Hahaha"
|
||||
rating = 0
|
||||
remarks = "Hahaha"
|
||||
```
|
||||
|
||||
**Note: Only add reviews between doctor-specific section delimited by
|
||||
comment format mentioned in style guide**
|
||||
|
||||
The end result must look like the following:
|
||||
|
||||
```toml
|
||||
## ------------- batman ---------
|
||||
[[ doctors ]]
|
||||
nick = "batman"
|
||||
name ="Bruce Wayne"
|
||||
photo = "static/people/batman.jpg"
|
||||
website = "https://bat.example.com"
|
||||
|
||||
[[ doctors.reviews ]]
|
||||
name = "Joker Hahaha"
|
||||
rating = 0
|
||||
remarks = "Hahaha"
|
||||
|
||||
## ------------- start batman ---------
|
||||
```
|
|
@ -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;
|
||||
}
|
||||
|
|
Binary file not shown.
After Width: | Height: | Size: 88 KiB |
|
@ -4,7 +4,7 @@
|
|||
<div class="service-card__conatiner">
|
||||
<div class="service-card__text-container">
|
||||
<p class="service-card__service-name">Gitea Hosting</p>
|
||||
<h2 class="service-card__title">Run indepandent software forge</h2>
|
||||
<h2 class="service-card__title">Run independent software forge</h2>
|
||||
<p class="service-card__text">Dedicated Gitea hosting with Woodpecker, flat monthly price, unlimited bandwidth and users. All upgrades included. Fully self-hostable. ETA July 1st, 2022.</p>
|
||||
<ul class="index-banner__features-list">
|
||||
<li class="index-banner__features">Tested software releases</li>
|
||||
|
|
|
@ -14,7 +14,7 @@ endblock meta %} {% block content %}
|
|||
<div class="page__group-content">
|
||||
<div class="action-call__container">
|
||||
<div class="action-call__margin-container">
|
||||
<p class="action-call__prompt">Need an indepandent forge? Talk to an expert!</p>
|
||||
<p class="action-call__prompt">Need an independent forge? Talk to an expert!</p>
|
||||
<button class="action-call__button"><a href="/contact" class="action-call_link">Contact Us</a></button>
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
@ -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,10 @@
|
|||
</div>
|
||||
</div>
|
||||
<div class="action-call__container">
|
||||
<div class="action-call__margin-container">
|
||||
<p class="action-call__prompt">{{ prompt }}</p>
|
||||
<button class="action-call__button"><a href="{{ link }}" class="action-call_link">{{ action }}</a></button>
|
||||
</div>
|
||||
</div>
|
||||
<div class="page__container">
|
||||
<div class="page__group-content">
|
|
@ -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