Improve responsive, icons, refactor search, update readme
43
README.md
|
@ -1,6 +1,6 @@
|
|||
# Garage Website
|
||||
|
||||
¡ Work in progress !
|
||||
¡ Work in progress (almost done) !
|
||||
|
||||
---
|
||||
|
||||
|
@ -12,3 +12,44 @@
|
|||
- Run `zola build` to get the public directory
|
||||
- Run `npm start` to compile styles and scripts
|
||||
- Run `zola serve`
|
||||
|
||||
## Build
|
||||
|
||||
CSS : `28.4 kB`
|
||||
|
||||
JS : `6.8 kB (app)` + `1.2 MB (search)`*
|
||||
|
||||
*<em>The search index in loaded only when the user opens the search modal</em>
|
||||
|
||||
Images + Icons : `1.1 MB`
|
||||
|
||||
## Fonctions & utilities
|
||||
|
||||
JavaScript can be disabled and the website will still run nicely.
|
||||
It only brings QoL advantages for the user.
|
||||
|
||||
The function is [x] if it still runs <u>without</u> JavaScript enabled.
|
||||
|
||||
- [x] Responsive main navigation menu (toggle)
|
||||
- [x] Documentation : user can deploy or reploy ToC submenus
|
||||
- [ ] Documentation : deploy only the current ToC submenu after a page change
|
||||
- [ ] Documentation : sidebar focus effect on current section anchor when user scrolls
|
||||
- [ ] Documentation : ToC that follows the user's scroll
|
||||
- [ ] Global search
|
||||
|
||||
## Screenshots
|
||||
|
||||
<div style="display:grid;grid-template-columns: repeat(3, 1fr);grid-gap: 10px;grid-auto-rows: minmax(100px, auto);">
|
||||
<p style="text-align:center;margin-bottom:5rem;">
|
||||
<span>480px</span>
|
||||
<img src="static/screenshots/screenshot-480.png" />
|
||||
</p>
|
||||
<p style="text-align:center;margin-bottom:5rem;">
|
||||
<span>768px</span>
|
||||
<img src="static/screenshots/screenshot-768.png" />
|
||||
</p>
|
||||
<p style="text-align:center;margin-bottom:5rem;">
|
||||
<span>1280px</span>
|
||||
<img src="static/screenshots/screenshot-1280.png" />
|
||||
</p>
|
||||
</div>
|
12
config.toml
|
@ -9,10 +9,6 @@ ignored_content = []
|
|||
generate_feed = true
|
||||
feed_filename = "rss.xml"
|
||||
hard_link_static = false
|
||||
# taxonomies = [
|
||||
# { name = "categories", feed = true, paginate_by = 10 },
|
||||
# { name = "tags", feed = true, paginate_by = 10 }
|
||||
# ]
|
||||
build_search_index = true
|
||||
|
||||
[markdown]
|
||||
|
@ -61,7 +57,6 @@ navbar_items = [
|
|||
favicon_16x16 = "/icons/favicon-16x16.png"
|
||||
favicon_32x32 = "/icons/favicon-32x32.png"
|
||||
apple_touch_icon = "/icons/apple-touch-icon.png"
|
||||
safari_pinned_tab = "/icons/safari-pinned-tab.svg"
|
||||
webmanifest = "/icons/site.webmanifest"
|
||||
|
||||
[extra.organization]
|
||||
|
@ -78,10 +73,3 @@ avatar = "/images/garage-logo.svg"
|
|||
[extra.social]
|
||||
git = "https://git.deuxfleurs.fr/Deuxfleurs/garage"
|
||||
email = "contact@garagehq.com"
|
||||
|
||||
[extra.analytics]
|
||||
google = "UA-176984489-2"
|
||||
|
||||
[extra.mapbox]
|
||||
enabled = true
|
||||
access_token = "pk.eyJ1IjoicmF0YW5zaHJlc2h0aGEiLCJhIjoiY2tla2s2NmM3MDd0ZzJzbXFtc3Y2YmU0NyJ9.0RhUnJPKbxHWw3xGPnnBlA"
|
||||
|
|
133
src/input.css
|
@ -2,10 +2,10 @@
|
|||
@tailwind components;
|
||||
@tailwind utilities;
|
||||
|
||||
/* ARTICLES BASIC ELEMENTS */
|
||||
/* POST BASIC ELEMENTS */
|
||||
|
||||
article .page-content {
|
||||
@apply text-lg;
|
||||
@apply text-base md:text-lg;
|
||||
}
|
||||
|
||||
/** Pre */
|
||||
|
@ -104,18 +104,47 @@ p > code, p > strong > code, li > code, li > strong > code {
|
|||
|
||||
@layer utilities {
|
||||
|
||||
/** Main nav */
|
||||
|
||||
#navMenuToggleBtn {
|
||||
position: absolute;
|
||||
left: -100vw;
|
||||
}
|
||||
|
||||
#navMenuToggleBtn:checked + label {
|
||||
background: white;
|
||||
padding: 0.375rem;
|
||||
border-radius: 0.5rem;
|
||||
--tw-shadow: 0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1);
|
||||
--tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color);
|
||||
box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
|
||||
}
|
||||
|
||||
#navMenuToggleBtn:checked ~ #navMenu {
|
||||
display: block;
|
||||
}
|
||||
|
||||
/** Home map */
|
||||
|
||||
#map-container {
|
||||
background-image: url('/images/map.svg');
|
||||
background-repeat: no-repeat;
|
||||
background-position: center;
|
||||
background-position: left;
|
||||
background-size: cover;
|
||||
background-attachment: fixed;
|
||||
height: 70vh;
|
||||
}
|
||||
|
||||
/** Global ToC */
|
||||
@media screen and (max-width: 768px) {
|
||||
#map-container {
|
||||
background-position: 25%;
|
||||
background-size: auto;
|
||||
background-attachment: scroll;
|
||||
height: 50vh;
|
||||
}
|
||||
}
|
||||
|
||||
/** Documentation */
|
||||
#global_toc .deploySubMenu {
|
||||
position: absolute;
|
||||
left: -100vw;
|
||||
|
@ -129,4 +158,100 @@ p > code, p > strong > code, li > code, li > strong > code {
|
|||
transform: rotate(0deg);
|
||||
}
|
||||
|
||||
#documentation-section .page-content {
|
||||
line-height: 1.9rem;
|
||||
}
|
||||
|
||||
#documentation-section .page-content p + p {
|
||||
margin-top: 1.15rem;
|
||||
}
|
||||
|
||||
#documentation-section .page-content h1,
|
||||
#documentation-section .page-content h2,
|
||||
#documentation-section .page-content h3 {
|
||||
margin-top: 2.85rem;
|
||||
}
|
||||
#documentation-section .page-content h4,
|
||||
#documentation-section .page-content h5,
|
||||
#documentation-section .page-content h6 {
|
||||
margin-top: 2rem;
|
||||
font-weight: 600;
|
||||
}
|
||||
|
||||
#documentation-section .page-content ul {
|
||||
list-style-type: "➡";
|
||||
padding-left: 1.25rem;
|
||||
}
|
||||
|
||||
#documentation-section .page-content ol {
|
||||
padding-left: 1.25rem;
|
||||
}
|
||||
|
||||
#documentation-section .page-content ul li,
|
||||
#documentation-section .page-content ol li {
|
||||
padding-left: 0.95rem;
|
||||
}
|
||||
#documentation-section .page-content ul li ul,
|
||||
#documentation-section .page-content ul li ol,
|
||||
#documentation-section .page-content ol li ul,
|
||||
#documentation-section .page-content ol li ol {
|
||||
padding-left: 0rem;
|
||||
}
|
||||
|
||||
#documentation-section .page-content ul li ul,
|
||||
#documentation-section .page-content ol li ul {
|
||||
list-style-type: "➜";
|
||||
}
|
||||
|
||||
@media screen and (max-width: 768px) {
|
||||
#documentation-section .page-content p {
|
||||
font-size: 0.95rem;
|
||||
}
|
||||
#documentation-section .page-content p + p {
|
||||
margin-top: 0.75rem;
|
||||
}
|
||||
#documentation-section .page-content code {
|
||||
font-size: 0.9rem;
|
||||
}
|
||||
#documentation-section .page-content pre {
|
||||
overflow-x: scroll;
|
||||
font-size: 0.95rem;
|
||||
}
|
||||
#documentation-section .page-content ul {
|
||||
padding-left: 0.25rem;
|
||||
}
|
||||
#documentation-section .page-content ul li {
|
||||
font-size: 0.95rem;
|
||||
padding-left: 0.75rem;
|
||||
}
|
||||
#documentation-section .page-content ul li a {
|
||||
font-size: 0.95rem;
|
||||
}
|
||||
}
|
||||
|
||||
/** Blog */
|
||||
|
||||
#blogpost-section .page-content p + p,
|
||||
#blogpost-section .page-content p + #continue-reading + p {
|
||||
margin-top: 2rem;
|
||||
}
|
||||
#blogpost-section .page-content #continue-reading {
|
||||
margin: 2rem 0;
|
||||
}
|
||||
|
||||
#blogpost-section .page-content ul {
|
||||
list-style-type: "➡";
|
||||
padding-left: 1.25rem;
|
||||
margin: 2rem 0;
|
||||
}
|
||||
|
||||
#blogpost-section .page-content ul li {
|
||||
padding-left: 0.95rem;
|
||||
}
|
||||
|
||||
#blogpost-section img {
|
||||
display: inline-block;
|
||||
margin: 2.75rem 0;
|
||||
}
|
||||
|
||||
}
|
BIN
static/icons/android-chrome-192x192.png
Executable file → Normal file
Before Width: | Height: | Size: 40 KiB After Width: | Height: | Size: 7.3 KiB |
BIN
static/icons/android-chrome-384x384.png
Executable file → Normal file
Before Width: | Height: | Size: 154 KiB After Width: | Height: | Size: 15 KiB |
BIN
static/icons/apple-touch-icon.png
Executable file → Normal file
Before Width: | Height: | Size: 36 KiB After Width: | Height: | Size: 6.8 KiB |
96
static/icons/contact.svg
Normal file
|
@ -0,0 +1,96 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
width="32mm"
|
||||
height="32mm"
|
||||
viewBox="0 0 32 32"
|
||||
version="1.1"
|
||||
id="svg5"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:svg="http://www.w3.org/2000/svg">
|
||||
<defs
|
||||
id="defs2" />
|
||||
<style
|
||||
type="text/css"
|
||||
id="style2346">
|
||||
.st0{fill:#4E4E4E;}
|
||||
.st1{fill:#FFD952;}
|
||||
.st2{fill:#49C8FA;}
|
||||
.st3{fill:#45C8FF;}
|
||||
.st4{fill:#FF9329;}
|
||||
.st5{fill:#3B2100;}
|
||||
.st6{fill:#C3C3C3;}
|
||||
</style>
|
||||
<g
|
||||
id="g1314"
|
||||
transform="matrix(0.45983054,0,0,0.45983054,2.5100707,3.2593744)">
|
||||
<g
|
||||
id="g1245">
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<path
|
||||
d="m 60.764965,27.712142 c 0,0.153336 -0.0037,0.305868 -0.0059,0.458712 -0.102126,4.309716 -1.703065,9.213027 -8.456869,9.213027 -6.994656,0 -8.462771,-5.259423 -8.462771,-9.671739 V 15.622468 a 2.417935,2.417935 0 0 0 -4.83587,0 v 1.287852 a 14.506149,14.506149 0 1 0 2.03423,19.358237 11.960844,11.960844 0 0 0 1.020952,1.501985 c 1.622189,2.029802 4.716328,4.449212 10.243459,4.449212 a 14.885985,14.885985 0 0 0 5.374237,-0.925948 31.428228,31.428228 0 1 1 3.088535,-13.581664 z m -41.104892,0 a 9.6717392,9.6717392 0 1 0 9.67174,-9.671739 9.6828226,9.6828226 0 0 0 -9.67174,9.671739 z"
|
||||
id="path1901"
|
||||
style="stroke-width:0.302242;fill:#ff6600" />
|
||||
</g>
|
||||
<g
|
||||
id="g1247">
|
||||
</g>
|
||||
<g
|
||||
id="g1249">
|
||||
</g>
|
||||
<g
|
||||
id="g1251">
|
||||
</g>
|
||||
<g
|
||||
id="g1253">
|
||||
</g>
|
||||
<g
|
||||
id="g1255">
|
||||
</g>
|
||||
<g
|
||||
id="g1257">
|
||||
</g>
|
||||
<g
|
||||
id="g1259">
|
||||
</g>
|
||||
<g
|
||||
id="g1261">
|
||||
</g>
|
||||
<g
|
||||
id="g1263">
|
||||
</g>
|
||||
<g
|
||||
id="g1265">
|
||||
</g>
|
||||
<g
|
||||
id="g1267">
|
||||
</g>
|
||||
<g
|
||||
id="g1269">
|
||||
</g>
|
||||
<g
|
||||
id="g1271">
|
||||
</g>
|
||||
<g
|
||||
id="g1273">
|
||||
</g>
|
||||
<g
|
||||
id="g1275">
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 1.8 KiB |
BIN
static/icons/favicon-16x16.png
Executable file → Normal file
Before Width: | Height: | Size: 1.4 KiB After Width: | Height: | Size: 645 B |
BIN
static/icons/favicon-32x32.png
Executable file → Normal file
Before Width: | Height: | Size: 2.4 KiB After Width: | Height: | Size: 1.3 KiB |
BIN
static/icons/favicon.ico
Executable file → Normal file
Before Width: | Height: | Size: 15 KiB After Width: | Height: | Size: 2.5 KiB |
8
static/icons/git.svg
Normal file
|
@ -0,0 +1,8 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!-- Generator: Adobe Illustrator 16.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="97px" height="97px" viewBox="0 0 97 97" enable-background="new 0 0 97 97" xml:space="preserve">
|
||||
<g>
|
||||
<path fill="#F05133" d="M92.71,44.408L52.591,4.291c-2.31-2.311-6.057-2.311-8.369,0l-8.33,8.332L46.459,23.19 c2.456-0.83,5.272-0.273,7.229,1.685c1.969,1.97,2.521,4.81,1.67,7.275l10.186,10.185c2.465-0.85,5.307-0.3,7.275,1.671 c2.75,2.75,2.75,7.206,0,9.958c-2.752,2.751-7.208,2.751-9.961,0c-2.068-2.07-2.58-5.11-1.531-7.658l-9.5-9.499v24.997 c0.67,0.332,1.303,0.774,1.861,1.332c2.75,2.75,2.75,7.206,0,9.959c-2.75,2.749-7.209,2.749-9.957,0c-2.75-2.754-2.75-7.21,0-9.959 c0.68-0.679,1.467-1.193,2.307-1.537V36.369c-0.84-0.344-1.625-0.853-2.307-1.537c-2.083-2.082-2.584-5.14-1.516-7.698 L31.798,16.715L4.288,44.222c-2.311,2.313-2.311,6.06,0,8.371l40.121,40.118c2.31,2.311,6.056,2.311,8.369,0L92.71,52.779 C95.021,50.468,95.021,46.719,92.71,44.408z"/>
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 1.2 KiB |
Before Width: | Height: | Size: 20 KiB After Width: | Height: | Size: 5.7 KiB |
62
static/icons/rss.svg
Normal file
|
@ -0,0 +1,62 @@
|
|||
<?xml version="1.0" encoding="iso-8859-1"?>
|
||||
<!-- Generator: Adobe Illustrator 19.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
||||
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
|
||||
viewBox="0 0 492 492" style="enable-background:new 0 0 492 492;" xml:space="preserve">
|
||||
<circle style="fill:#FA9826;" cx="73.728" cy="418.296" r="69.704"/>
|
||||
<g>
|
||||
<path style="fill:#EF8114;" d="M0,162.664v92.976C136,255.632,236.384,356,236.384,492h92.952C329.336,308,184,162.664,0,162.664z"
|
||||
/>
|
||||
<path style="fill:#EF8114;" d="M8,0v92.944C224,92.944,399.064,268,399.064,492H492C492,220,272,0,8,0z"/>
|
||||
</g>
|
||||
<g>
|
||||
<circle style="fill:#FA9826;" cx="73.728" cy="418.296" r="69.704"/>
|
||||
<path style="fill:#FA9826;" d="M0,162.664v92.976c120,0,221.8,90.008,234.672,206.008c31.864-9.2,61.2-21.456,88.248-35.672
|
||||
C294.168,275.776,160,162.664,0,162.664z"/>
|
||||
<path style="fill:#FA9826;" d="M456.168,306.848C383.624,126.624,208,0,8,0v92.944c176,0,331.84,122.304,376.88,290.928
|
||||
C414.8,359.664,439.888,337.16,456.168,306.848z"/>
|
||||
<path style="fill:#FA9826;" d="M73.728,348.584c-38.496,0-69.72,31.2-69.72,69.696c0,22.352,10.576,42.216,26.928,54.968
|
||||
c37.744-13.584,75.72-33.032,112.352-58.008C141.672,378.16,111.184,348.584,73.728,348.584z"/>
|
||||
<path style="fill:#FA9826;" d="M0,162.664v92.976c88,0,161.696,45.192,202.408,112.624c7.92-7.088,15.408-14.4,23.072-22.04
|
||||
c15.176-15.192,28.808-32.128,41.784-48.224C208.176,215.432,112,162.664,0,162.664z"/>
|
||||
<path style="fill:#FA9826;" d="M8,0v92.944c120,0,232.248,57.184,304.752,146.472c18.184-29.872,33.056-57.24,43.816-87.6
|
||||
C267.8,60.24,144,0,8,0z"/>
|
||||
</g>
|
||||
<g>
|
||||
<path style="fill:#F9BD28;" d="M106.512,356.776c-9.792-5.224-20.936-8.184-32.792-8.184c-38.496,0-69.72,31.2-69.72,69.696
|
||||
c0,13.384,3.84,25.84,10.376,36.472C49.632,431.704,80.976,398.184,106.512,356.776z"/>
|
||||
<path style="fill:#F9BD28;" d="M163.344,204.976C115.8,177.736,64,162.664,0,162.664v92.976c54.872,0.496,96,16.864,134.24,41.456
|
||||
C146.184,268.6,156.496,237.576,163.344,204.976z"/>
|
||||
<path style="fill:#F9BD28;" d="M8,92.944c56,0,117.504,14.64,169.4,39.752c1.128-14.736,0.84-30.216,0.84-45.392
|
||||
c0-19.192,0.528-38.04-1.256-56.504C123.888,10.928,64,0,8,0V92.944z"/>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 2.4 KiB |
|
@ -1,15 +0,0 @@
|
|||
<?xml version="1.0" standalone="no"?>
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 20010904//EN"
|
||||
"http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">
|
||||
<svg version="1.0" xmlns="http://www.w3.org/2000/svg"
|
||||
width="450.000000pt" height="450.000000pt" viewBox="0 0 450.000000 450.000000"
|
||||
preserveAspectRatio="xMidYMid meet">
|
||||
<metadata>
|
||||
Created by potrace 1.11, written by Peter Selinger 2001-2013
|
||||
</metadata>
|
||||
<g transform="translate(0.000000,450.000000) scale(0.100000,-0.100000)"
|
||||
fill="#000000" stroke="none">
|
||||
<path d="M750 2250 l0 -2250 1500 0 1500 0 0 2250 0 2250 -1500 0 -1500 0 0
|
||||
-2250z"/>
|
||||
</g>
|
||||
</svg>
|
Before Width: | Height: | Size: 605 B |
BIN
static/screenshots/screenshot-1280.png
Normal file
After Width: | Height: | Size: 466 KiB |
BIN
static/screenshots/screenshot-480.png
Normal file
After Width: | Height: | Size: 375 KiB |
BIN
static/screenshots/screenshot-768.png
Normal file
After Width: | Height: | Size: 386 KiB |
|
@ -13,36 +13,10 @@
|
|||
|
||||
{% include "partials/shared/nav.html" %}
|
||||
|
||||
<div>
|
||||
{% block content %}{% endblock %}
|
||||
</div>
|
||||
|
||||
{% block search %}
|
||||
<section id="search-modal" class="modal hidden bg-gradient-to-b from-gray-50 to-gray-100 w-5/6 md:w-4/5 lg:w-3/4 xl:w-2/3 2xl:w-1/2 absolute top-20 left-1/2 transform -translate-x-1/2 shadow-2xl rounded-lg">
|
||||
<div class="p-2 md:p-4 xl:p-8 border-8 border-gray-300 rounded-lg shadow-inner" style="min-height:30vh;">
|
||||
<section class="relative flex flex-col items-center justify-center">
|
||||
<div class="flexs items-center justify-center">
|
||||
<span class="text-xl inline-block font-thin">Search</span>
|
||||
<span class="font-normal inline-block text-xs text-gray-500">(alt + S)</span>
|
||||
</div>
|
||||
<div class="field mt-8 md:mt-0 mb-2">
|
||||
<div class="control">
|
||||
<input
|
||||
id="search"
|
||||
class="p-2 md:p-4 shadow rounded-lg outline-2 focus:outline outline-garage-orange"
|
||||
placeholder="Search on Garage..." type="search" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="search-results hidden mt-8 p-2 md:p-4 w-full bg-white rounded shadow">
|
||||
<div class="search-results__items max-h-96 overflow-y-scroll p-2 md:p-4 focus:outline outline-garage-orange"></div>
|
||||
</div>
|
||||
</section>
|
||||
<button aria-label="close" id="close-modal-btn" class="absolute top-4 right-4 flex items-center group rounded-full shadow-inner bg-gray-300 border border-transparent hover:border-gray-500 bg-opacity-50 p-2">
|
||||
<svg id="close-modal-btn-icon" class="w-6 h-6 text-gray-400" fill="none" stroke="currentColor" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M6 18L18 6M6 6l12 12"></path></svg>
|
||||
<small class="text-xs text-gray-400">(Esc)</small>
|
||||
</button>
|
||||
</div>
|
||||
</section>
|
||||
{% include "partials/shared/search.html" %}
|
||||
{% endblock %}
|
||||
|
||||
{% block pagination %}
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
|
||||
{% block content %}
|
||||
{% set section = get_section(path="documentation/_index.md") %}
|
||||
<section class="section overflow-x-hidden">
|
||||
<section id="documentation-section" class="section overflow-x-hidden">
|
||||
<div class="grid grid-cols-1 xl:grid-cols-5">
|
||||
{% include "partials/doc/global_toc.html" %}
|
||||
<div class="col-span-full xl:col-span-3" style="min-height:85vh;">
|
||||
|
|
|
@ -11,26 +11,26 @@
|
|||
<div class="max-w-7xl mx-auto grid grid-cols-1 md:grid-cols-3 gap-x-32 py-12">
|
||||
<div class="group flex flex-col items-center justify-center p-2">
|
||||
<img src="{{ get_url(path='images/host.png') }}" class="transform group-hover:translate-y-2 transition duration-500">
|
||||
<span class="text-xl text-gray-700 font-semibold mt-4 transform group-hover:-translate-y-1 transition duration-500">Host a Website</span>
|
||||
<span class="text-xl text-gray-700 font-semibold mt-4 transform group-hover:-translate-y-1 transition duration-500 whitespace-nowrap">Host a Website</span>
|
||||
</div>
|
||||
<div class="group flex flex-col items-center justify-center p-2">
|
||||
<img src="{{ get_url(path='images/store.png') }}" class="transform group-hover:translate-y-2 transition duration-500">
|
||||
<span class="text-xl text-gray-700 font-semibold mt-4 transform group-hover:-translate-y-1 transition duration-500">Store Media</span>
|
||||
<span class="text-xl text-gray-700 font-semibold mt-4 transform group-hover:-translate-y-1 transition duration-500 whitespace-nowrap">Store Media</span>
|
||||
</div>
|
||||
<div class="group flex flex-col items-center justify-center p-2">
|
||||
<img src="{{ get_url(path='images/backup.png') }}" class="transform group-hover:translate-y-2 transition duration-500">
|
||||
<span class="text-xl text-gray-700 font-semibold mt-4 transform group-hover:-translate-y-1 transition duration-500">Backup Target</span>
|
||||
<span class="text-xl text-gray-700 font-semibold mt-4 transform group-hover:-translate-y-1 transition duration-500 whitespace-nowrap">Backup Target</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="w-full flex flex-col items-center justify-center border-b">
|
||||
<div id="map-container" class="relative w-full shadow-inner border-t border-b">
|
||||
<span class="absolute top-1/2 left-1/2 transform -translate-y-1/2 text-2xl text-white font-light select-none px-2 py-1.5 rounded shadow" style="background:#999999;">
|
||||
<span class="hidden md:inline-block absolute top-1/2 left-1/2 transform -translate-y-1/2 text-2xl text-white font-light select-none px-2 py-1.5 rounded shadow" style="background:#999999;">
|
||||
Made for redundancy
|
||||
</span>
|
||||
</div>
|
||||
<div id="map-legend-container" class="max-w-7xl mx-auto flex items-center justify-around space-x-12 py-2 text-sm text-gray-700">
|
||||
<div id="map-legend-container" class="max-w-7xl mx-auto flex flex-col lg:flex-row items-center justify-around lg:space-x-12 py-2 text-sm text-gray-700">
|
||||
<div>
|
||||
<p class="text-base text-gray-600">Each chunk of data is replicated in 3 zones</p>
|
||||
</div>
|
||||
|
@ -45,9 +45,9 @@
|
|||
</div>
|
||||
</div>
|
||||
|
||||
<div class="grid grid-cols-1 xl:grid-cols-2 gap-x-0 xl:gap-x-12 gap-y-24 text-garage-gray font-light bg-gray-100 py-12 w-full shadow-inner">
|
||||
<div class="grid grid-cols-1 xl:grid-cols-2 gap-x-0 xl:gap-x-12 gap-y-24 text-garage-gray font-light bg-gray-100 py-12 px-4 md:px-0 w-full shadow-inner">
|
||||
<div class="flex flex-col items-center justify-start space-y-2">
|
||||
<h2 class="mb-2 text-2xl font-bold text-garage-orange leading-5">Our Goals</h2>
|
||||
<h2 class="mb-2 text-xl text-center md:text-2xl font-bold text-garage-orange leading-5">Our Goals</h2>
|
||||
<div class="w-8 h-1 bg-garage-orange"></div>
|
||||
<p class="text-center leading-5 italic">We made it lightweight and kept the efficiency in mind.</p>
|
||||
<ul class="list-style-none font-semibold flex flex-col items-center justify-center py-4">
|
||||
|
@ -80,7 +80,7 @@
|
|||
</div>
|
||||
|
||||
<div class="flex flex-col items-center justify-start space-y-2">
|
||||
<h2 class="mb-2 text-2xl font-bold text-garage-orange leading-5">Keeping requirements low</h2>
|
||||
<h2 class="mb-2 text-xl text-center md:text-2xl font-bold text-garage-orange leading-5">Keeping requirements low</h2>
|
||||
<div class="w-8 h-1 bg-garage-orange"></div>
|
||||
<p class="text-center leading-5 italic">
|
||||
We worked hard to keep requirements as low as possible<br>as we target the largest possible public.
|
||||
|
@ -125,7 +125,7 @@
|
|||
</div>
|
||||
|
||||
<div class="flex flex-col items-center justify-start space-y-2 px-6 xl:px-0">
|
||||
<h2 class="mb-2 text-2xl font-bold text-garage-orange leading-5">Data resiliency for everyone</h2>
|
||||
<h2 class="mb-2 text-xl text-center md:text-2xl font-bold text-garage-orange leading-5">Data resiliency for everyone</h2>
|
||||
<div class="w-8 h-1 bg-garage-orange"></div>
|
||||
<p class="text-center leading-5 italic pb-4">
|
||||
Lorem ipsum dolor sit amet consectetur adipisicing elit.
|
||||
|
@ -168,7 +168,7 @@
|
|||
</div>
|
||||
|
||||
<div class="flex flex-col items-center justify-start space-y-2 px-6 xl:px-0">
|
||||
<h2 class="mb-2 text-2xl font-bold text-garage-orange leading-5">Standing on the shoulders of giants</h2>
|
||||
<h2 class="mb-2 text-xl text-center md:text-2xl font-bold text-garage-orange leading-5">Standing on the shoulders of giants</h2>
|
||||
<div class="w-8 h-1 bg-garage-orange"></div>
|
||||
<p class="text-center leading-5 italic">
|
||||
Lorem ipsum dolor sit amet consectetur adipisicing elit.
|
||||
|
@ -191,7 +191,7 @@
|
|||
</div>
|
||||
|
||||
<div class="w-full flex flex-col items-center justify-center shadow-inner"></div>
|
||||
<div class="py-24 space-y-8 text-garage-gray max-w-4xl mx-auto">
|
||||
<div class="px-8 py-24 space-y-8 text-garage-gray max-w-4xl mx-auto">
|
||||
<h2 class="text-2xl text-garage-orange font-semibold">Sponsors and funding</h2>
|
||||
<p>
|
||||
The Deuxfleurs association has received a grant from <a class="text-garage-orange underline" href="https://pointer.ngi.eu/" target="_blank">NGI POINTER</a>,
|
||||
|
|
|
@ -2,24 +2,24 @@
|
|||
<p class="flex items-center justify-center space-x-2">
|
||||
{% if social_config.git %}
|
||||
<a href="{{ social_config.git }}" target="_blank">
|
||||
<span class="icon is-large" title="Git">
|
||||
<i class="fab fa-git fa-lg text-garage-gray h-8 w-8 bg-white hover:bg-garage-orange hover:text-white rounded-full shadow flex items-center justify-center"></i>
|
||||
<span class="h-10 w-10 bg-white hover:shadow-xl rounded-full shadow flex items-center justify-center" title="Git">
|
||||
<img src="{{get_url(path='icons/git.svg')}}" width="24px" alt="">
|
||||
</span>
|
||||
</a>
|
||||
{% endif %}
|
||||
|
||||
{% if social_config.email %}
|
||||
<a href="mailto:{{ social_config.email }}" target="_blank">
|
||||
<span class="icon is-large" title="Email">
|
||||
<i class="far fa-envelope fa-lg text-garage-gray h-8 w-8 bg-white hover:bg-garage-orange hover:text-white rounded-full shadow flex items-center justify-center"></i>
|
||||
<span class="h-10 w-10 bg-white hover:shadow-xl rounded-full shadow flex items-center justify-center" title="Contact">
|
||||
<img src="{{get_url(path='icons/contact.svg')}}" width="24px" alt="">
|
||||
</span>
|
||||
</a>
|
||||
{% endif %}
|
||||
|
||||
{% if config.generate_feed %}
|
||||
<a href="{{ config.base_url }}/{{ config.feed_filename }}" target="_blank">
|
||||
<span class="icon is-large" title="RSS Feed">
|
||||
<i class="fas fa-rss fa-lg text-garage-gray h-8 w-8 bg-white hover:bg-garage-orange hover:text-white rounded-full shadow flex items-center justify-center"></i>
|
||||
<span class="h-10 w-10 bg-white hover:shadow-xl rounded-full shadow flex items-center justify-center" title="RSS Feed">
|
||||
<img src="{{get_url(path='icons/rss.svg')}}" width="24px" alt="">
|
||||
</span>
|
||||
</a>
|
||||
{% endif %}
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
{% endblock %}
|
||||
|
||||
{% block content %}
|
||||
<section class="section">
|
||||
<section id="blogpost-section" class="section">
|
||||
<div class="mx-auto max-w-7xl">
|
||||
<div class="grid grid-cols-5 gap-x-12">
|
||||
<div class="{% if page.extra.toc %}col-span-4{% else %}col-span-full{% endif %}">
|
||||
|
@ -24,11 +24,11 @@
|
|||
</div>
|
||||
</a>
|
||||
</div>
|
||||
<div class="w-full text-garage-gray text-sm grid grid-cols-2 bg-gradient-to-r from-gray-100 to-transparent p-3 border-l-4 border-gray-300">
|
||||
<div class="flex items-center justify-start">
|
||||
<div class="w-full text-garage-gray text-sm grid grid-cols-1 md:grid-cols-2 bg-gradient-to-r from-gray-100 to-transparent p-3 border-l-4 border-gray-300">
|
||||
<div class="flex items-center justify-start md:justify-start">
|
||||
{{ macros::page_publish_metadata(page=page) }}
|
||||
</div>
|
||||
<div class="flex items-center justify-end">
|
||||
<div class="flex items-center justify-start md:justify-end">
|
||||
{{ macros::page_content_metadata(page=page) }}
|
||||
</div>
|
||||
<div>
|
||||
|
@ -43,7 +43,7 @@
|
|||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="page-content max-w-4xl text-justify mt-12">
|
||||
<div class="page-content max-w-4xl text-justify mt-12 px-5 md:px-12">
|
||||
{{ page.content | safe }}
|
||||
</div>
|
||||
</article>
|
||||
|
|
|
@ -11,12 +11,14 @@ const navSections = new Array(tocItems.length);
|
|||
*/
|
||||
|
||||
window.addEventListener('scroll', function() {
|
||||
if (window.screen.width >= 1280) {
|
||||
if (window.scrollY >= menuBarHeight) {
|
||||
document.getElementById('main-toc-menu').classList.add('fixed', 'top-0', 'left-0');
|
||||
document.getElementById('main-toc-menu').style.width = mainTocMenuWidth + 'px';
|
||||
} else {
|
||||
document.getElementById('main-toc-menu').classList.remove('fixed', 'top-0', 'left-0');
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
// Page content
|
||||
|
|
|
@ -1,9 +1,6 @@
|
|||
{% if config.extra.favicon.webmanifest %}
|
||||
<link href='{{ config.extra.favicon.webmanifest }}' rel="manifest" />
|
||||
{% endif %}
|
||||
{% if config.extra.favicon.safari_pinned_tab %}
|
||||
<link color="#5bbad5" href='{{ config.extra.favicon.safari_pinned_tab }}' rel="mask-icon" />
|
||||
{% endif %}
|
||||
{% if config.extra.favicon.favicon_16x16 %}
|
||||
<link href='{{ config.extra.favicon.favicon_16x16 }}' rel="icon" sizes="16x16" type="image/png" />
|
||||
{% endif %}
|
||||
|
@ -14,21 +11,13 @@
|
|||
<link href='{{ config.extra.favicon.apple_touch_icon }}' rel="apple-touch-icon" sizes="180x180" />
|
||||
{% endif %}
|
||||
|
||||
{% if config.extra.galleria.enabled %}
|
||||
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/galleria@1.6.1/dist/themes/folio/galleria.folio.min.css"
|
||||
integrity="sha384-+rY0QD+LRnTOquDMzGa9lXU6jIwdiQuwCJQ2cdcW0qeP/0UbjQCZlXnRsUMA+9pH" crossorigin="anonymous">
|
||||
{% endif %}
|
||||
|
||||
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@fortawesome/fontawesome-free@5.15.4/css/all.min.css"
|
||||
integrity="sha384-DyZ88mC6Up2uqS4h/KRgHuoeGwBcD4Ng9SiP4dIRy0EXTlnuz47vAwmeGwVChigm" crossorigin="anonymous">
|
||||
|
||||
<link href="{{ get_url(path='style.css') }}" rel="stylesheet" />
|
||||
|
||||
{% block user_custom_stylesheet %}{% endblock %}
|
||||
|
||||
<title>
|
||||
{% block title %}
|
||||
{{ config.title }}
|
||||
{{ config.title }} - An open-source distributed storage service
|
||||
{% endblock title %}
|
||||
</title>
|
||||
|
||||
|
|
|
@ -1,12 +1,16 @@
|
|||
<nav aria-label="section navigation" class="navbar w-full" role="navigation">
|
||||
<div class="w-full flex flex-col space-y-2 md:space-y-0 md:flex-row items-center justify-between py-1.5 px-8 text-garage-gray bg-garage-orange bg-opacity-20">
|
||||
<nav aria-label="navigation-section" class="navbar w-full relative" role="navigation">
|
||||
<div class="w-full flex flex-row items-center justify-between py-1.5 px-8 text-garage-gray bg-garage-orange bg-opacity-20">
|
||||
<div class="navbar-brand">
|
||||
<a class="hover:rounded-full hover:bg-white" href="{{config.base_url}}">
|
||||
<img class="px-2 transform duration-150 focus:bg-white hover:bg-white hover:shadow rounded-lg"
|
||||
src="{{ config.extra.organization.logo_horizontal }}" width="120px">
|
||||
</a>
|
||||
</div>
|
||||
<div class="navbar-menu" id="navMenu">
|
||||
<input type="checkbox" id="navMenuToggleBtn" value="0"/>
|
||||
<label for="navMenuToggleBtn" class="md:hidden p-1.5 hover:bg-white rounded-lg hover:shadow cursor-pointer" style="margin-top:0.08rem;">
|
||||
<svg class="w-6 h-6" fill="none" stroke="currentColor" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M4 6h16M4 12h16M4 18h7"></path></svg>
|
||||
</label>
|
||||
<div class="hidden py-4 md:py-0 z-40 md:block absolute md:static top-12 left-0 right-0 navbar-menu bg-gray-100 shadow-md md:shadow-none md:bg-transparent" id="navMenu">
|
||||
<div class="flex items-center justify-center space-x-2">
|
||||
{% for item in config.extra.navbar_items %}
|
||||
{% if lang == item.code %}
|
||||
|
@ -29,7 +33,7 @@
|
|||
href="https://garagehq.deuxfleurs.fr/_releases.html"
|
||||
class="group flex items-center justify-center space-x-1 font-semibold shadow hover:shadow px-2 py-1.5 rounded text-white transition-all duration-500 bg-gradient-to-tl from-garage-orange via-orange-500 to-orange-300 bg-size-200 bg-pos-0 hover:bg-pos-100">
|
||||
<svg class="w-6 h-6 animate-pulse" fill="none" stroke="currentColor" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M7 16a4 4 0 01-.88-7.903A5 5 0 1115.9 6L16 6a5 5 0 011 9.9M9 19l3 3m0 0l3-3m-3 3V10"></path></svg>
|
||||
<span>Download</span>
|
||||
<span class="hidden md:inline">Download</span>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
|
|
25
templates/partials/shared/search.html
Normal file
|
@ -0,0 +1,25 @@
|
|||
<section id="search-modal" class="modal hidden z-50 bg-gradient-to-b from-gray-50 to-gray-100 w-5/6 md:w-4/5 lg:w-3/4 xl:w-2/3 2xl:w-1/2 absolute top-20 left-1/2 transform -translate-x-1/2 shadow-2xl rounded-lg">
|
||||
<div class="p-2 md:p-4 xl:p-8 border-8 border-gray-300 rounded-lg shadow-inner" style="min-height:30vh;">
|
||||
<section class="relative flex flex-col items-center justify-center">
|
||||
<div class="flexs items-center justify-center">
|
||||
<span class="text-xl inline-block font-thin">Search</span>
|
||||
<span class="font-normal inline-block text-xs text-gray-500">(alt + S)</span>
|
||||
</div>
|
||||
<div class="field mt-8 md:mt-0 mb-2">
|
||||
<div class="control">
|
||||
<input
|
||||
id="search"
|
||||
class="p-2 md:p-4 shadow rounded-lg outline-2 focus:outline outline-garage-orange"
|
||||
placeholder="Search on Garage..." type="search" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="search-results hidden mt-8 p-2 md:p-4 w-full bg-white rounded shadow">
|
||||
<div class="search-results__items max-h-96 overflow-y-scroll p-2 md:p-4 focus:outline outline-garage-orange"></div>
|
||||
</div>
|
||||
</section>
|
||||
<button aria-label="close" id="close-modal-btn" class="absolute top-4 right-4 flex items-center group rounded-full shadow-inner bg-gray-300 border border-transparent hover:border-gray-500 bg-opacity-50 p-2">
|
||||
<svg id="close-modal-btn-icon" class="w-6 h-6 text-gray-400" fill="none" stroke="currentColor" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M6 18L18 6M6 6l12 12"></path></svg>
|
||||
<small class="text-xs text-gray-400">(Esc)</small>
|
||||
</button>
|
||||
</div>
|
||||
</section>
|
|
@ -14,7 +14,7 @@
|
|||
<div class="content">
|
||||
{{ section.content | safe }}
|
||||
</div>
|
||||
<div class="columns is-centered">
|
||||
<div class="px-0 md:px-8 xl:px-4 2xl:px-0">
|
||||
<div class="space-y-20">
|
||||
{% if paginator %}
|
||||
{% set pages = paginator.pages %}
|
||||
|
@ -23,7 +23,7 @@
|
|||
{% endif %}
|
||||
|
||||
{% for page in pages %}
|
||||
<article class="border-l-4 border-garage-gray pl-4">
|
||||
<article class="border-l-4 border-garage-gray pl-4 max-w-5xl">
|
||||
<h2 class="text-garage-gray hover:text-garage-orange text-2xl pb-3">
|
||||
<a class="w-full block" href='{{ page.permalink }}'>
|
||||
{{ page.title }}
|
||||
|
@ -41,8 +41,10 @@
|
|||
</div>
|
||||
</div>
|
||||
<div class="content mt-2">
|
||||
<div class="text-gray-700">
|
||||
{{ page.summary | safe }}
|
||||
<a class="group py-4 font-semibold px-4 py-2 flex items-center space-x-1 text-garage-orange" href='{{ page.permalink }}'>
|
||||
</div>
|
||||
<a class="group font-semibold p-4 flex items-center space-x-1 text-garage-orange" href='{{ page.permalink }}'>
|
||||
<div class="h-0.5 mt-0.5 w-4 group-hover:w-8 group-hover:bg-garage-gray transition-all bg-garage-orange"></div>
|
||||
<span>Read</span>
|
||||
<span class="text-garage-orange group-hover:text-garage-gray transition-all">
|
||||
|
|