@ -0,0 +1,73 @@ |
||||
from flask import Flask |
||||
from flask import render_template, request |
||||
from flaskext.markdown import Markdown |
||||
from flask_flatpages import FlatPages |
||||
import markdown2, os |
||||
|
||||
app = Flask(__name__) |
||||
application = app |
||||
|
||||
FLATPAGES_EXTENSION = '.md' |
||||
FLATPAGES_MARKDOWN_EXTENSIONS = ['extra'] |
||||
FLATPAGES_AUTO_RELOAD = True |
||||
|
||||
BASE_DIR = os.path.abspath(os.path.dirname(__file__)) |
||||
app.config.from_object(__name__) |
||||
|
||||
Markdown(app) |
||||
pages = FlatPages(app) |
||||
pages.get('foo') |
||||
|
||||
def Liste_cat(): |
||||
articles = (p for p in pages if 'date' in p.meta and 'type' in p.meta and p.meta['type']=='blog') |
||||
catList = [] |
||||
for a in articles: |
||||
catList.append(a.meta['category']) |
||||
catList = list(dict.fromkeys(catList)) |
||||
return catList |
||||
|
||||
def imagelist(articlename): |
||||
dir_path = os.path.dirname(os.path.realpath(articlename))+'/pages/blog/' |
||||
gallery_path = os.path.join(dir_path, articlename) |
||||
if os.path.exists(gallery_path): |
||||
images = [f for f in os.listdir(gallery_path) if f.endswith('.jpg') or f.endswith('.jpeg') or f.endswith('.png') or f.endswith('.gif')] |
||||
return gallery_path ,images |
||||
else: |
||||
return None, None |
||||
|
||||
@app.route('/') |
||||
@app.route('/home/') |
||||
def index(): |
||||
infobox = pages.get('info-box') |
||||
page = pages.get_or_404('home') |
||||
return render_template('home.html' , page=page , infobox=infobox ) |
||||
|
||||
@app.route('/<path:path>/') |
||||
def pageStat(path): |
||||
page = pages.get_or_404(path) |
||||
return render_template('home.html' , page=page ) |
||||
|
||||
|
||||
@app.route('/pages/<path:path>') |
||||
def serve_pages(path): |
||||
return send_from_directory('pages', path) |
||||
|
||||
@app.route('/blog/') |
||||
def blog(): |
||||
articles = (p for p in pages if 'date' in p.meta and 'type' in p.meta and p.meta['type']=='blog') |
||||
latest = sorted(articles, reverse=True, |
||||
key=lambda p: p.meta['date']) |
||||
catList = Liste_cat() |
||||
return render_template('archive.html', articles=latest , catList=catList ) |
||||
|
||||
@app.route('/actu/') |
||||
def actu(): |
||||
articles = (p for p in pages if 'date' in p.meta and 'type' in p.meta and p.meta['type']=='actu') |
||||
latest = sorted(articles, reverse=True, |
||||
key=lambda p: p.meta['date']) |
||||
catList = Liste_cat() |
||||
return render_template('archive.html', articles=latest , catList=catList ) |
||||
|
||||
if __name__ == '__main__': |
||||
app.run(host='0.0.0.0') |
||||
|
||||
@ -0,0 +1,71 @@ |
||||
--- |
||||
title: VIM basics |
||||
author: zvevqx |
||||
date: 2025-11-22 |
||||
category: linux |
||||
desc: ws |
||||
type: actu |
||||
--- |
||||
|
||||
|
||||
# Vim Editor |
||||
|
||||
Vim is a powerful and popular text editor that runs in the command-line interface. It is known for its efficient and customizable editing features that allow users to edit text with speed and precision. |
||||
|
||||
## Basic Vim Commands |
||||
|
||||
Here are some of the basic Vim commands you should know: |
||||
|
||||
* `i`: Enters insert mode, allowing you to insert text. |
||||
* `Esc`: Exits insert mode and returns to command mode. |
||||
* `:w`: Writes the file to disk. |
||||
* `:q`: Quits Vim. |
||||
* `:q!`: Quits Vim without saving changes. |
||||
* `:wq`: Writes the file to disk and quits Vim. |
||||
* `yy`: Copies the current line to the clipboard. |
||||
* `dd`: Deletes the current line. |
||||
* `p`: Pastes the clipboard contents after the cursor. |
||||
* `/`: Searches for a pattern in the text. |
||||
* `n`: Jumps to the next occurrence of the pattern. |
||||
* `N`: Jumps to the previous occurrence of the pattern. |
||||
|
||||
## Advanced Vim Commands |
||||
|
||||
Here are some of the advanced Vim commands you can use to improve your editing workflow: |
||||
|
||||
* `u`: Undoes the last change. |
||||
* `Ctrl + r`: Redoes the last change. |
||||
* `o`: Inserts a new line below the cursor and enters insert mode. |
||||
* `O`: Inserts a new line above the cursor and enters insert mode. |
||||
* `:s/pattern/replacement/g`: Replaces all occurrences of a pattern with a replacement string. |
||||
* `:%s/pattern/replacement/g`: Replaces all occurrences of a pattern with a replacement string in the entire file. |
||||
* `:w !sudo tee %`: Writes the current file with sudo privileges. |
||||
|
||||
## Vim Cheat Sheet |
||||
|
||||
Here's a cheat sheet of common Vim commands: |
||||
|
||||
| Command | Description | |
||||
| --- | --- | |
||||
| `i` | Enter insert mode | |
||||
| `Esc` | Exit insert mode | |
||||
| `:w` | Write file | |
||||
| `:q` | Quit Vim | |
||||
| `:q!` | Quit Vim without saving | |
||||
| `:wq` | Write file and quit | |
||||
| `yy` | Copy current line | |
||||
| `dd` | Delete current line | |
||||
| `p` | Paste clipboard contents after cursor | |
||||
| `/pattern` | Search for pattern | |
||||
| `n` | Jump to next occurrence of pattern | |
||||
| `N` | Jump to previous occurrence of pattern | |
||||
| `u` | Undo last change | |
||||
| `Ctrl + r` | Redo last change | |
||||
| `o` | Insert new line below cursor | |
||||
| `O` | Insert new line above cursor | |
||||
| `:s/pattern/replacement/g` | Replace all occurrences of pattern with replacement | |
||||
| `:%s/pattern/replacement/g` | Replace all occurrences of pattern with replacement in entire file | |
||||
| `:w !sudo tee %` | Write file with sudo privileges | |
||||
|
||||
Use this cheat sheet as a reference as you become more familiar with Vim. With practice, you'll be able to use Vim to edit text with speed and efficiency. |
||||
|
||||
|
After Width: | Height: | Size: 122 KiB |
|
After Width: | Height: | Size: 698 KiB |
|
After Width: | Height: | Size: 280 KiB |
|
After Width: | Height: | Size: 940 KiB |
|
After Width: | Height: | Size: 966 KiB |
|
After Width: | Height: | Size: 760 KiB |
|
After Width: | Height: | Size: 824 KiB |
|
After Width: | Height: | Size: 1.0 MiB |
|
After Width: | Height: | Size: 120 KiB |
|
After Width: | Height: | Size: 6.9 KiB |
|
After Width: | Height: | Size: 9.0 KiB |
|
After Width: | Height: | Size: 12 KiB |
|
After Width: | Height: | Size: 6.0 KiB |
|
After Width: | Height: | Size: 362 KiB |
|
After Width: | Height: | Size: 33 KiB |
@ -0,0 +1,23 @@ |
||||
CairoSVG==2.4.2 |
||||
cffi==1.14.0 |
||||
Click==7.0 |
||||
cssselect2==0.2.2 |
||||
defusedxml==0.6.0 |
||||
Flask==1.1.1 |
||||
Flask-FlatPages==0.7.1 |
||||
Flask-Markdown==0.3 |
||||
html5lib==1.0.1 |
||||
itsdangerous==1.1.0 |
||||
Jinja2==2.11.1 |
||||
Markdown==3.1.1 |
||||
markdown2==2.4.0 |
||||
MarkupSafe==1.1.1 |
||||
Pillow==7.0.0 |
||||
pycparser==2.19 |
||||
Pygments==2.9.0 |
||||
Pyphen==0.9.5 |
||||
PyYAML==5.3 |
||||
six==1.14.0 |
||||
tinycss2==1.0.2 |
||||
webencodings==0.5.1 |
||||
Werkzeug==0.16.1 |
||||
@ -0,0 +1,24 @@ |
||||
CairoSVG==2.4.2 |
||||
cffi==1.14.0 |
||||
Click==7.0 |
||||
cssselect2==0.2.2 |
||||
defusedxml==0.6.0 |
||||
Flask==1.1.1 |
||||
Flask-FlatPages==0.7.1 |
||||
Flask-Markdown==0.3 |
||||
html5lib==1.0.1 |
||||
itsdangerous==1.1.0 |
||||
Jinja2==2.11.1 |
||||
Markdown==3.1.1 |
||||
markdown2==2.4.0 |
||||
MarkupSafe==1.1.1 |
||||
Pillow==7.0.0 |
||||
pycparser==2.19 |
||||
Pygments==2.9.0 |
||||
Pyphen==0.9.5 |
||||
PyYAML==5.3 |
||||
six==1.14.0 |
||||
tinycss2==1.0.2 |
||||
WeasyPrint==51 |
||||
webencodings==0.5.1 |
||||
Werkzeug==0.16.1 |
||||
|
After Width: | Height: | Size: 724 B |
|
After Width: | Height: | Size: 9.4 KiB |
|
After Width: | Height: | Size: 5.0 KiB |
|
After Width: | Height: | Size: 5.4 KiB |
|
After Width: | Height: | Size: 6.6 KiB |
|
After Width: | Height: | Size: 7.0 KiB |
|
After Width: | Height: | Size: 8.7 KiB |
|
After Width: | Height: | Size: 2.4 KiB |
|
After Width: | Height: | Size: 2.6 KiB |
|
After Width: | Height: | Size: 3.0 KiB |
|
After Width: | Height: | Size: 3.3 KiB |
|
After Width: | Height: | Size: 719 B |
|
After Width: | Height: | Size: 12 KiB |
|
After Width: | Height: | Size: 1.4 KiB |
|
After Width: | Height: | Size: 4.2 KiB |
|
After Width: | Height: | Size: 1.1 KiB |
|
After Width: | Height: | Size: 1.9 KiB |
|
After Width: | Height: | Size: 1.3 KiB |
|
After Width: | Height: | Size: 1.1 KiB |
@ -0,0 +1,381 @@ |
||||
/* http://meyerweb.com/eric/tools/css/reset/ |
||||
v2.0 | 20110126 |
||||
License: none (public domain) |
||||
*/ |
||||
@import url('https://fonts.googleapis.com/css2?family=Fira+Code:wght@400;600&display=swap'); |
||||
|
||||
|
||||
html, body, div, span, applet, object, iframe, |
||||
h1, h2, h3, h4, h5, h6, p, blockquote, pre, |
||||
a, abbr, acronym, address, big, cite, code, |
||||
del, dfn, em, img, ins, kbd, q, s, samp, |
||||
small, strike, strong, sub, sup, tt, var, |
||||
b, u, i, center, |
||||
dl, dt, dd, ol, ul, li, |
||||
fieldset, form, label, legend, |
||||
table, caption, tbody, tfoot, thead, tr, th, td, |
||||
article, aside, canvas, details, embed, |
||||
figure, figcaption, footer, header, hgroup, |
||||
menu, nav, output, ruby, section, summary, |
||||
time, mark, audio, video { |
||||
margin: 0; |
||||
padding: 0; |
||||
border: 0; |
||||
font-size: 100%; |
||||
font: inherit; |
||||
vertical-align: baseline; |
||||
} |
||||
/* HTML5 display-role reset for older browsers */ |
||||
article, aside, details, figcaption, figure, |
||||
footer, header, hgroup, menu, nav, section { |
||||
display: block; |
||||
} |
||||
|
||||
body { |
||||
line-height: 1,2; |
||||
font-family: 'Fira Code', monospace; |
||||
} |
||||
|
||||
ol, ul { |
||||
list-style: none; |
||||
} |
||||
|
||||
blockquote, q { |
||||
quotes: none; |
||||
} |
||||
|
||||
blockquote:before, blockquote:after, |
||||
q:before, q:after { |
||||
content: ''; |
||||
content: none; |
||||
} |
||||
|
||||
table { |
||||
border-collapse: collapse; |
||||
border-spacing: 0; |
||||
} |
||||
|
||||
@font-face { |
||||
font-weight: normal; |
||||
font-style: normal; |
||||
} |
||||
|
||||
@keyframes menu_color { |
||||
0% {color: #ffe609;} |
||||
30% {color: #e2b1aa;} |
||||
60% {color: #f1885f;} |
||||
90% {color: #70ba89;} |
||||
100% {color: #ffe609;} |
||||
} |
||||
|
||||
html{ |
||||
font-size:16pt; |
||||
scroll-behavior: smooth; |
||||
} |
||||
|
||||
.page_data a { |
||||
text-decoration: none; |
||||
color: #0000; |
||||
animation-name: menu_color; |
||||
animation-iteration-count: infinite; |
||||
-moz-animation-iteration-count: infinite; |
||||
-webkit-animation-iteration-count: infinite; |
||||
-o-animation-iteration-count: infinite; |
||||
animation-duration: 6s; |
||||
font-size:1em; |
||||
} |
||||
|
||||
::selection { |
||||
color:rgba(255,230,9,1); |
||||
} |
||||
|
||||
|
||||
nav{ |
||||
z-index:1000; |
||||
height:70px; |
||||
background:rgba(255,255,255,0.9); |
||||
position: fixed; |
||||
top: 0; |
||||
width: 100%; |
||||
} |
||||
|
||||
nav #top_nav ul li{ |
||||
display:inline-block; |
||||
margin: 15px 0 0 15px; |
||||
padding-bottom: 5px; |
||||
} |
||||
|
||||
nav #top_nav ul li:hover{ |
||||
|
||||
} |
||||
|
||||
nav #top_nav ul li a { |
||||
color: black; |
||||
font-size : 1em; |
||||
text-decoration: none; |
||||
} |
||||
|
||||
|
||||
nav #burger_nav , #burger_btn{ |
||||
display : none; |
||||
} |
||||
|
||||
#intro{ |
||||
font-size : 50pt; |
||||
min-height: 100vh; |
||||
min-width: 100hw; |
||||
text-align:center; |
||||
background:url('../img/photoAccueil.jpg') center center no-repeat; |
||||
background-size:cover; |
||||
} |
||||
|
||||
#intro #intro_title { |
||||
display : block; |
||||
width:300px; |
||||
height:300px; |
||||
background:#fff; |
||||
border-radius:50%; |
||||
position:absolute; |
||||
top:calc(50% - 150px); |
||||
left:calc(50% - 150px); |
||||
line-height:84px; |
||||
} |
||||
|
||||
.page_data { |
||||
/*! top:25px; */ |
||||
padding : 150px 50px 50px 50px ; |
||||
width:85%; |
||||
background: #fff; |
||||
min-height: calc(100vh - 200px); |
||||
} |
||||
|
||||
.page_data h1{ |
||||
font-size: 2em; |
||||
line-height: 1; |
||||
//text-align: center; |
||||
} |
||||
|
||||
.page_data p{ |
||||
margin: 20px 0; |
||||
} |
||||
|
||||
.page_data p img{ |
||||
max-width:100%; |
||||
} |
||||
|
||||
#infobox{ |
||||
width: 150%; |
||||
background: rgba(255, 255, 255,0.9); |
||||
font-size:2.5em; |
||||
position: absolute; |
||||
top: 20%; |
||||
left: 15%; |
||||
padding: 5%; |
||||
z-index: 10000; |
||||
border-top: silver 1px solid; |
||||
border-bottom: silver 1px solid ; |
||||
vertical-align: bottom; |
||||
display: table-cell; |
||||
display: inline-block; |
||||
height: auto; |
||||
text-align: center; |
||||
} |
||||
|
||||
#infobox::before { |
||||
content: ""; |
||||
background: url(menu_burger_close.svg); |
||||
width: 50px; |
||||
height: 50px; |
||||
position: absolute; |
||||
top: -20px; |
||||
right: -20px; |
||||
border-radius: 25px; |
||||
} |
||||
|
||||
#soc_med{ |
||||
position:fixed; |
||||
width: 110px; |
||||
bottom:10px; |
||||
right:20px; |
||||
} |
||||
|
||||
#soc_med ul li { |
||||
display:inline-block; |
||||
width: 40px; |
||||
height:40px; |
||||
} |
||||
|
||||
#soc_med ul li a img { |
||||
width: 100%; |
||||
} |
||||
|
||||
.content_wrapper { |
||||
display: grid; |
||||
grid-template-columns: 1fr 1fr; |
||||
z-index : 1000; |
||||
/*! background:rgba(255,255,255,0.9); */ |
||||
} |
||||
|
||||
.content_wrapper.wide_content { |
||||
grid-template-columns: 2fr 1fr; |
||||
} |
||||
.page_data article{ |
||||
margin-bottom: 20px; |
||||
} |
||||
|
||||
.page_data article .a_content{ |
||||
border-bottom:1px solid #000; |
||||
} |
||||
|
||||
.img_container{ |
||||
background:url('../img/bg.jpg') center center no-repeat; |
||||
background-size:cover; |
||||
width:100%; |
||||
min-height:100vh; |
||||
|
||||
} |
||||
|
||||
|
||||
|
||||
|
||||
|
||||
/*###############################################################################*/ |
||||
|
||||
/* On screens that are 800px or less, set the background color to olive */ |
||||
@media only screen and (max-width: 1024px) { |
||||
html{ |
||||
font-size : 24pt; |
||||
} |
||||
|
||||
.content_wrapper { |
||||
width:80%; |
||||
padding:10%; |
||||
padding-top : 220px; |
||||
} |
||||
|
||||
.page_data{ |
||||
width:80%; |
||||
margin:auto; |
||||
} |
||||
|
||||
|
||||
nav { |
||||
height: 100px; |
||||
position: relative ; |
||||
z-index: 1222; |
||||
text-align: center; |
||||
} |
||||
|
||||
nav #top_nav{ |
||||
display: none; |
||||
} |
||||
|
||||
nav #burger_btn { |
||||
display : block ; |
||||
width: 100%; |
||||
height:100px; |
||||
background: url('menu_burger_open.svg') left center no-repeat ; |
||||
background-size: auto 100%; |
||||
margin-left : 50px; |
||||
margin-top: 30px; |
||||
z-index: 1201; |
||||
position:fixed; |
||||
} |
||||
|
||||
nav #burger_btn.close { |
||||
background: url('menu_burger_close.svg') left center no-repeat !important; |
||||
background-size: auto 100% !important; |
||||
} |
||||
|
||||
nav #burger_nav { |
||||
display : block; |
||||
padding : 20px ; |
||||
background : rgba(255, 255, 255,0.8); |
||||
height: 0vh; |
||||
width : 100vw; |
||||
margin-top:-40px; |
||||
z-index: 1200; |
||||
overflow:hidden; |
||||
position:fixed; |
||||
top:0; |
||||
transition :0.2s linear; |
||||
} |
||||
|
||||
nav #burger_nav.open { |
||||
height: auto; |
||||
width : 100vw; |
||||
min-height : 100vh; |
||||
transition :0.2s linear; |
||||
} |
||||
|
||||
nav #burger_nav ul li:first-child { |
||||
padding-top : 300px; |
||||
} |
||||
|
||||
nav #burger_nav ul li a{ |
||||
display : block ; |
||||
padding : 20px; |
||||
text-decoration:none; |
||||
color :#000; |
||||
font-size: 3em; |
||||
} |
||||
|
||||
#intro{ |
||||
font-size : 150pt; |
||||
min-height: 100vh; |
||||
min-width: 100hw; |
||||
text-align:center; |
||||
} |
||||
|
||||
#intro #intro_title { |
||||
display : inline-block; |
||||
padding-top: 20%; |
||||
} |
||||
|
||||
img.logo { |
||||
height: 100px; |
||||
} |
||||
#infobox{ |
||||
width: 60%; |
||||
background: rgba(255, 255, 255,0.9); |
||||
font-size:1em; |
||||
position: absolute; |
||||
top: 20%; |
||||
left: 15%; |
||||
padding: 5%; |
||||
z-index: 10000; |
||||
border: solid 1px rgba(200, 200, 200,0.5); |
||||
border-radius: 5%; |
||||
vertical-align: bottom; |
||||
display: table-cell; |
||||
display: inline-block; |
||||
height: auto; |
||||
text-align: center; |
||||
} |
||||
|
||||
#infobox::before { |
||||
content: ""; |
||||
background: url(menu_burger_close.svg); |
||||
width: 50px; |
||||
height: 50px; |
||||
position: absolute; |
||||
top: -20px; |
||||
right: -20px; |
||||
border-radius: 25px; |
||||
} |
||||
|
||||
#soc_med{ |
||||
position:fixed; |
||||
width: 200px; |
||||
height:50px; |
||||
bottom:70px; |
||||
right:15px; |
||||
} |
||||
|
||||
#soc_med ul li { |
||||
display:inline-block; |
||||
width: 70px; |
||||
height:70px; |
||||
} |
||||
|
||||
} |
||||
|
After Width: | Height: | Size: 129 KiB |
|
After Width: | Height: | Size: 361 KiB |
@ -0,0 +1,8 @@ |
||||
$(document).ready(function(){ |
||||
|
||||
$('#infobox').click(function(){$(this).hide();}); |
||||
|
||||
$('#burger_btn').click(function(){$(this).next('#burger_nav').toggleClass('open');}); |
||||
$('#burger_btn').click(function(){$(this).toggleClass('close');}); |
||||
|
||||
}) |
||||
|
After Width: | Height: | Size: 1.7 KiB |
|
After Width: | Height: | Size: 1.8 KiB |
|
After Width: | Height: | Size: 1.7 KiB |
|
After Width: | Height: | Size: 1.9 KiB |
|
After Width: | Height: | Size: 1.5 KiB |
|
After Width: | Height: | Size: 808 B |
|
After Width: | Height: | Size: 790 B |
|
After Width: | Height: | Size: 1.7 KiB |
|
After Width: | Height: | Size: 1.8 KiB |
|
After Width: | Height: | Size: 1.7 KiB |
|
After Width: | Height: | Size: 1.9 KiB |
|
After Width: | Height: | Size: 1.5 KiB |
|
After Width: | Height: | Size: 797 B |
|
After Width: | Height: | Size: 717 B |
@ -0,0 +1,41 @@ |
||||
{% extends 'base.html' %} |
||||
|
||||
{% block head %} |
||||
<!-- LAOD MAIN CSS FILE --> |
||||
<link href="{{ url_for('static', filename='css/style.css')}}" rel="stylesheet" media="screen"> |
||||
{% endblock %} |
||||
|
||||
{% block nav %} |
||||
{% include 'menu.html'%} |
||||
{% endblock nav %} |
||||
|
||||
{% block content %} |
||||
|
||||
|
||||
|
||||
<div class="content_wrapper wide_content"> |
||||
<div class="page_data"> |
||||
{% for a in articles %} |
||||
<article> |
||||
<div class="{{a.category}}"> |
||||
<span class ="a_title">{{a.title}}</span>, |
||||
<span class ="a_meta">{{a.category}}</span>, |
||||
<span class ="a_meta">{{a.date}}</span>, |
||||
</div> |
||||
<div class="a_content"> |
||||
{{a}} |
||||
</div> |
||||
</article> |
||||
{% endfor %} |
||||
</div> |
||||
<div class="img_container"> |
||||
|
||||
</div> |
||||
</div> |
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
{% endblock %} |
||||
@ -0,0 +1,33 @@ |
||||
<!DOCTYPE html> |
||||
<html lang="fr"> |
||||
<head> |
||||
<meta charset="UTF-8"> |
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0"> |
||||
<meta http-equiv="X-UA-Compatible" content="ie=edge"> |
||||
<title>to do this - do that </title> |
||||
<link rel="stylesheet" type="text/css" href="{{url_for('static', filename='style.css')}}"> |
||||
</head> |
||||
<body> |
||||
|
||||
{% include 'menu.html' %} |
||||
|
||||
<div id="articles"> |
||||
<ul> |
||||
|
||||
{% for article in articles %} |
||||
<li> |
||||
<a href="{{ url_for('index', _external=False) }}{{ article.path }}"> |
||||
<h2 class="{{article.cat}}">{{article.title}}</h2> |
||||
</a> |
||||
<span class="categorie"><a href="{{ url_for('index', _external=False) }}cat/{{article.cat}}">{{article.cat}}</a></span> |
||||
<span class="author"><a href="{{ url_for('index', _external=False) }}author/{{article.author}}">{{ article.author }}</a></span> |
||||
<span class="date">{{ article.published }}</span> |
||||
</li> |
||||
{% endfor %} |
||||
|
||||
</ul> |
||||
</div> |
||||
|
||||
<script src="index.js"></script> |
||||
</body> |
||||
</html> |
||||
@ -0,0 +1,43 @@ |
||||
<!DOCTYPE html> |
||||
<head> |
||||
{% block head %} |
||||
|
||||
<title>{% block title %}{% endblock title %}</title> |
||||
<!-- <meta charset="utf-8"> --> |
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> |
||||
<meta name="viewport" content="width=device-width,initial-scale=1.0"> |
||||
{% endblock head %} |
||||
|
||||
</head> |
||||
|
||||
<body> |
||||
{% block intro %} |
||||
{% endblock intro %} |
||||
|
||||
{% block nav %} |
||||
{% endblock nav %} |
||||
|
||||
{% block content %} |
||||
{% endblock content %} |
||||
|
||||
|
||||
<script src="{{ url_for('static', filename='js/jquery.min.js')}}"></script> |
||||
<script src="{{ url_for('static', filename='js/script.js')}}"></script> |
||||
{% block script %} |
||||
{% endblock script %} |
||||
<div id="soc_med"> |
||||
<ul> |
||||
<li> |
||||
<a href="https://www.facebook.com/LAile-1396378200629387" target="_blank"><img src="{{ url_for('static', filename='css/facebook.svg')}}"></a> |
||||
</li> |
||||
<li> |
||||
<a href="https://www.instagram.com/asblaile/" target="_blank"><img src="{{ url_for('static', filename='css/instagram.svg')}}"></a> |
||||
</li> |
||||
</ul> |
||||
</div> |
||||
</body> |
||||
|
||||
|
||||
</html> |
||||
|
||||
|
||||
@ -0,0 +1,47 @@ |
||||
{% extends "base.html" %} |
||||
{% block head %} |
||||
<!-- LAOD MAIN CSS FILE --> |
||||
<link href="{{ url_for('static', filename='css/style.css')}}" rel="stylesheet" media="screen"> |
||||
{% endblock head%} |
||||
|
||||
{% block intro %} |
||||
{% if request.path == "/" %} |
||||
<div id="intro"> |
||||
<span id="intro_title"> |
||||
la <BR>petite<BR>ecole |
||||
</span> |
||||
</div> |
||||
{% endif %} |
||||
{% endblock %} |
||||
|
||||
{% block nav %} |
||||
{% include 'menu.html'%} |
||||
{% endblock nav %} |
||||
|
||||
{% block content %} |
||||
|
||||
|
||||
|
||||
<div class="content_wrapper "> |
||||
<div class="page_data"> |
||||
{% if request.path == "/" %} |
||||
{% if infobox is not none %} |
||||
<div id="infobox"> |
||||
{{ infobox }} |
||||
</div> |
||||
{% endif %} |
||||
{% else %} |
||||
{% endif %} |
||||
|
||||
{{page}} |
||||
</div> |
||||
<div class="img_container"> |
||||
|
||||
</div> |
||||
</div> |
||||
{% endblock %} |
||||
|
||||
|
||||
{% block script %} |
||||
{% endblock %} |
||||
|
||||
@ -0,0 +1,26 @@ |
||||
<!doctype html> |
||||
|
||||
<html lang="en"> |
||||
<head> |
||||
<meta charset="utf-8"> |
||||
|
||||
<title>L'aile</title> |
||||
<meta name="description" content=""> |
||||
<meta name="author" content="zvevqx"> |
||||
|
||||
<link rel="stylesheet" href="css/style.css"> |
||||
|
||||
</head> |
||||
|
||||
<body> |
||||
|
||||
<div id="shape_container" > |
||||
<div id="shape_1"><img alt="shape_1" src="shape/hot/1.svg"/></div> |
||||
<div id="shape_2"><img alt="shape_2" src="shape/cold/1.svg"/></div> |
||||
</div> |
||||
|
||||
<h1 id="logo"><img alt="logo" src="logo/1.svg"/></h1> |
||||
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script> |
||||
<script src="js/script.js"></script> |
||||
</body> |
||||
</html> |
||||
@ -0,0 +1,24 @@ |
||||
<nav> |
||||
<div id="top_nav"> |
||||
<ul> |
||||
<li><a class='ovrly' href="/home/">la PE</a></li> |
||||
<li><a class='ovrly' href="/actu/">Actualites</a></li> |
||||
<li><a class='ovrly' href="/blog/">blog</a></li> |
||||
<li><a class='ovrly' href="/a-propos">À propos</a></li> |
||||
<li><a class='ovrly' href="/contact/">Contact</a></li> |
||||
<li><a class='ovrly' href="/aider">Nous aider</a></li> |
||||
</ul> |
||||
</div> |
||||
<div id="burger_btn"></div> |
||||
<div id="burger_nav"> |
||||
<ul> |
||||
<li><a class='ovrly' href="/home/">la PE</a></li> |
||||
<li><a class='ovrly' href="/actu/">Actualites</a></li> |
||||
<li><a class='ovrly' href="/blog/">blog</a></li> |
||||
<li><a class='ovrly' href="/a-propos">À propos</a></li> |
||||
<li><a class='ovrly' href="/contact/">Contact</a></li> |
||||
<li><a class='ovrly' href="/aider">Nous aider</a></li> |
||||
</ul> |
||||
</div> |
||||
</nav> |
||||
|
||||
@ -0,0 +1,27 @@ |
||||
{% extends 'base.html' %} |
||||
|
||||
{% block head %} |
||||
<!-- LAOD MAIN CSS FILE --> |
||||
<link href="{{ url_for('static', filename='css/style.css')}}" rel="stylesheet" media="screen"> |
||||
<style>#bottom_nav{display:none}</style> |
||||
{% endblock %} |
||||
|
||||
{% block nav %} |
||||
{% include 'menu.html'%} |
||||
{% endblock nav %} |
||||
|
||||
{% block content %} |
||||
|
||||
|
||||
<a id="button">haut de page <b>↑</b></a> |
||||
|
||||
|
||||
|
||||
<div id="vert_bar" class="left"></div> |
||||
<div class="content_wrapper"> |
||||
<article class="{{page.category}}"> |
||||
{{ page }} |
||||
</article> |
||||
</div> |
||||
|
||||
{% endblock %} |
||||
@ -0,0 +1,34 @@ |
||||
{% extends 'base.html' %} |
||||
|
||||
{% block head %} |
||||
<!-- LAOD MAIN CSS FILE --> |
||||
<link href="{{ url_for('static', filename='css/style.css')}}" rel="stylesheet" media="screen"> |
||||
<style>#bottom_nav{display:none}</style> |
||||
|
||||
{% endblock %} |
||||
|
||||
{% block nav %} |
||||
{% include 'menu.html'%} |
||||
{% endblock nav %} |
||||
|
||||
{% block content %} |
||||
|
||||
<a id="button">haut de page <b>↑</b></a> |
||||
|
||||
<div class='article_gallery'> |
||||
{% for img_w in img_web %} |
||||
<div class="printBg"style='background : rgb( 255,127,95) ; position:fixed ; width:{{ range(2, 5) | random }}%;left:{{ range(-11, 105) | random }}%; top:{{ range(1, 100) | random }}vh; z-index : -1;' ><img class='home_picture' style="mix-blend-mode: screen; filter:grayscale(100%) brightness(0.7) contrast(2); "src={{'/static/md_files/home/'+img_w}} /></div> |
||||
{% endfor %} |
||||
</div> |
||||
|
||||
|
||||
<div id="vert_bar" class="left"></div> |
||||
<div class="content_wrapper"> |
||||
<article class="{{page.category}}"> |
||||
{{ page }} |
||||
</article> |
||||
</div> |
||||
|
||||
|
||||
|
||||
{% endblock %} |
||||