Function to upload site in ftp or sftp
This commit is contained in:
@@ -4,6 +4,8 @@ from werkzeug.utils import secure_filename
|
|||||||
from app.forms import *
|
from app.forms import *
|
||||||
from PIL import Image
|
from PIL import Image
|
||||||
from pathlib import Path, PurePath, PurePosixPath
|
from pathlib import Path, PurePath, PurePosixPath
|
||||||
|
from shutil import rmtree, copytree
|
||||||
|
import subprocess
|
||||||
|
|
||||||
class DataSite:
|
class DataSite:
|
||||||
user_folder = None
|
user_folder = None
|
||||||
@@ -170,12 +172,40 @@ class DataSite:
|
|||||||
print(f"Error removing directory (might not be empty): {e}")
|
print(f"Error removing directory (might not be empty): {e}")
|
||||||
|
|
||||||
|
|
||||||
def writeHTML(self, pageName :str, htmlExport :str):
|
def writeHTML(self, theme:str, pageName :str, htmlExport :str):
|
||||||
public_folder = Path(PurePosixPath(self.user_folder).joinpath('public'))
|
publicFolder = Path(PurePosixPath(self.user_folder).joinpath('public'))
|
||||||
pageName = pageName+'.html'
|
themesFolder = Path(PurePosixPath('app').joinpath('templates','themes', self.datas['config']['theme'],'static'))
|
||||||
page = Path(PurePosixPath(self.user_folder).joinpath('public', pageName))
|
publicStaticFolder = Path(PurePosixPath(self.user_folder).joinpath('public', 'static'))
|
||||||
page.write_text(htmlExport)
|
|
||||||
|
|
||||||
|
if pageName == '/':
|
||||||
|
pageIndex = publicFolder / 'index.html'
|
||||||
|
pageIndex.write_text(htmlExport)
|
||||||
|
else:
|
||||||
|
pageFolder = Path(PurePosixPath(self.user_folder).joinpath('public', pageName))
|
||||||
|
pageFolder.mkdir(exist_ok=True)
|
||||||
|
pageIndex = pageFolder / 'index.html'
|
||||||
|
pageIndex.write_text(htmlExport)
|
||||||
|
rmtree (publicStaticFolder, ignore_errors=True)
|
||||||
|
copytree(themesFolder, publicStaticFolder)
|
||||||
|
|
||||||
|
|
||||||
|
def publish(self, user:str, password:str, serverAddress:str, serverPort:int, folder:str):
|
||||||
|
remote_directory = "/remote/dir"
|
||||||
|
userDir = Path(PurePosixPath(self.user_folder))
|
||||||
|
|
||||||
|
|
||||||
|
command = "lftp -u \"{}\",\"{}\" -p {} {} -e ' mirror -R public {}; bye;'".format(user,
|
||||||
|
password,
|
||||||
|
serverPort,
|
||||||
|
serverAddress,
|
||||||
|
folder)
|
||||||
|
print(command)
|
||||||
|
try:
|
||||||
|
subprocess.call(command, shell=True, cwd=str(userDir))
|
||||||
|
except ChildProcessError:
|
||||||
|
return False
|
||||||
|
|
||||||
|
return True
|
||||||
|
|
||||||
def emptyTrash(self):
|
def emptyTrash(self):
|
||||||
for file in self.trash:
|
for file in self.trash:
|
||||||
|
|||||||
@@ -21,7 +21,7 @@ csrf = CSRFProtect(app)
|
|||||||
app.secret_key = 'your_secret_key'
|
app.secret_key = 'your_secret_key'
|
||||||
app.config.from_pyfile('config.py')
|
app.config.from_pyfile('config.py')
|
||||||
|
|
||||||
THEMES_FOLDER = './themes/'
|
THEMES_FOLDER = './templates/themes/'
|
||||||
USERS_FOLDER = app.config['USERS_FOLDER']
|
USERS_FOLDER = app.config['USERS_FOLDER']
|
||||||
bcrypt = Bcrypt(app)
|
bcrypt = Bcrypt(app)
|
||||||
|
|
||||||
@@ -110,7 +110,6 @@ def editPhoto(page, image, bloc):
|
|||||||
else:
|
else:
|
||||||
return render_template(THEMES_FOLDER+theme+'/blocs/edit/_image-edit'+'.html', form=form, image=myblocs[bloc][image], bloc=myblocs[bloc])
|
return render_template(THEMES_FOLDER+theme+'/blocs/edit/_image-edit'+'.html', form=form, image=myblocs[bloc][image], bloc=myblocs[bloc])
|
||||||
|
|
||||||
|
|
||||||
@app.route('/upload-gallery/<bloc>', methods=['POST'], defaults={'page': ''})
|
@app.route('/upload-gallery/<bloc>', methods=['POST'], defaults={'page': ''})
|
||||||
@app.route('/<page>/upload-gallery/<bloc>', methods=['POST'])
|
@app.route('/<page>/upload-gallery/<bloc>', methods=['POST'])
|
||||||
@login_required
|
@login_required
|
||||||
@@ -169,7 +168,6 @@ def delImage(page, bloc, image):
|
|||||||
|
|
||||||
return make_response(('Image removed', 200))
|
return make_response(('Image removed', 200))
|
||||||
|
|
||||||
|
|
||||||
@app.route('/imgs_list/<blocname>', methods=['GET'], defaults={'page': ''})
|
@app.route('/imgs_list/<blocname>', methods=['GET'], defaults={'page': ''})
|
||||||
@app.route('/<page>/imgs_list/<blocname>', methods=['GET'])
|
@app.route('/<page>/imgs_list/<blocname>', methods=['GET'])
|
||||||
@login_required
|
@login_required
|
||||||
@@ -186,7 +184,6 @@ def imagesList(page, blocname):
|
|||||||
return render_template(THEMES_FOLDER+theme+'/blocs/edit/images_list.html',page=page,
|
return render_template(THEMES_FOLDER+theme+'/blocs/edit/images_list.html',page=page,
|
||||||
bloc=bloc)
|
bloc=bloc)
|
||||||
|
|
||||||
|
|
||||||
@app.route('/edit/<blocname>', methods=['GET', 'POST'], defaults={'page': ''})
|
@app.route('/edit/<blocname>', methods=['GET', 'POST'], defaults={'page': ''})
|
||||||
@app.route('/<page>/edit/<blocname>', methods=['GET', 'POST'])
|
@app.route('/<page>/edit/<blocname>', methods=['GET', 'POST'])
|
||||||
@login_required
|
@login_required
|
||||||
@@ -298,7 +295,6 @@ def addBloc(page):
|
|||||||
else:
|
else:
|
||||||
return redirect(url_for('edit'))
|
return redirect(url_for('edit'))
|
||||||
|
|
||||||
|
|
||||||
@app.route('/addPage', methods=['POST'])
|
@app.route('/addPage', methods=['POST'])
|
||||||
@login_required
|
@login_required
|
||||||
def addPage():
|
def addPage():
|
||||||
@@ -341,10 +337,6 @@ def rmPage(pageName):
|
|||||||
|
|
||||||
return redirect(url_for('edit'))
|
return redirect(url_for('edit'))
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@app.route('/sortblocs', methods=['POST'], defaults={'page': ''})
|
@app.route('/sortblocs', methods=['POST'], defaults={'page': ''})
|
||||||
@app.route('/<page>/sortblocs', methods=['POST'])
|
@app.route('/<page>/sortblocs', methods=['POST'])
|
||||||
@login_required
|
@login_required
|
||||||
@@ -393,14 +385,14 @@ def editMenu():
|
|||||||
flash (u'Le menu a bien été modifier', 'success');
|
flash (u'Le menu a bien été modifier', 'success');
|
||||||
return redirect(url_for('edit'))
|
return redirect(url_for('edit'))
|
||||||
|
|
||||||
@app.route('/public/img/<filename>')
|
@app.route('/img/<filename>')
|
||||||
@login_required
|
@login_required
|
||||||
def myimgs(filename):
|
def myimgs(filename):
|
||||||
user = '%s' % escape(session['username'])
|
user = '%s' % escape(session['username'])
|
||||||
return send_from_directory(
|
return send_from_directory(
|
||||||
os.path.join(USERS_FOLDER, user, 'public', 'img'), filename )
|
os.path.join(USERS_FOLDER, user, 'public', 'img'), filename )
|
||||||
|
|
||||||
@app.route('/public/img/thumbnails/<filename>')
|
@app.route('/img/thumbnails/<filename>')
|
||||||
@login_required
|
@login_required
|
||||||
def mythumbnails(filename):
|
def mythumbnails(filename):
|
||||||
user = '%s' % escape(session['username'])
|
user = '%s' % escape(session['username'])
|
||||||
@@ -414,7 +406,7 @@ def favicon():
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
@app.route('/publish', methods=['GET'])
|
@app.route('/publish', methods=['POST'])
|
||||||
@login_required
|
@login_required
|
||||||
def publish():
|
def publish():
|
||||||
user = '%s' % escape(session['username'])
|
user = '%s' % escape(session['username'])
|
||||||
@@ -422,6 +414,15 @@ def publish():
|
|||||||
listPages = db.getPages()
|
listPages = db.getPages()
|
||||||
theme = db.datas['config']['theme']
|
theme = db.datas['config']['theme']
|
||||||
menu = db.datas['menu']
|
menu = db.datas['menu']
|
||||||
|
test_alphanum = "^[A-Za-z0-9/_-]*$"
|
||||||
|
|
||||||
|
|
||||||
|
serverAddress = str(request.form['serverAddress'])
|
||||||
|
serverPort = str(request.form['serverPort'])
|
||||||
|
username = str(request.form['username'])
|
||||||
|
password = str(request.form['password'])
|
||||||
|
folder = str(request.form['folder'])
|
||||||
|
|
||||||
|
|
||||||
for page in listPages:
|
for page in listPages:
|
||||||
myblocs = db.getBlocs(page)['blocs']
|
myblocs = db.getBlocs(page)['blocs']
|
||||||
@@ -442,6 +443,23 @@ def publish():
|
|||||||
page='/',
|
page='/',
|
||||||
myblocs=myblocs)
|
myblocs=myblocs)
|
||||||
|
|
||||||
db.writeHTML(theme, 'index', htmlExport)
|
db.writeHTML(theme, '/', htmlExport)
|
||||||
|
|
||||||
|
|
||||||
|
if serverPort == '' or serverPort.isdigit() == False :
|
||||||
|
serverPort = '22'
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
if folder == '' :
|
||||||
|
folder = '/'
|
||||||
|
elif(bool(re.match(test_alphanum, folder)) == False):
|
||||||
|
folder = '/'
|
||||||
|
|
||||||
|
|
||||||
|
if db.publish(username, password, serverAddress, serverPort, folder) == False:
|
||||||
|
return make_response(('Impossible de publier le site ', 500))
|
||||||
|
|
||||||
|
|
||||||
return redirect(url_for('edit'))
|
return redirect(url_for('edit'))
|
||||||
|
|
||||||
|
|||||||
70
app/templates/admin/_publish.html
Normal file
70
app/templates/admin/_publish.html
Normal file
@@ -0,0 +1,70 @@
|
|||||||
|
<div class="publish" id="publish">
|
||||||
|
<form action="/publish" id="publish" method="POST" class="" >
|
||||||
|
<input id="csrf_token" name="csrf_token" type="hidden" value="{{ csrf_token() }}">
|
||||||
|
<h3>Publier mon site </h3>
|
||||||
|
<p> Rentrez ici les identifiants de connexions fourni par votre hébergeur. </p>
|
||||||
|
<br/>
|
||||||
|
<label for="ServerAddress"> Adresse du serveur : </label>
|
||||||
|
<div class="input-group">
|
||||||
|
<input type="text"
|
||||||
|
name="serverAddress"
|
||||||
|
class="form-control"
|
||||||
|
id="serverAddress"
|
||||||
|
placeholder="sftp://mon_serveur.com, ou ftp://mon_serveur.com"
|
||||||
|
required>
|
||||||
|
<dd<div class="invalid-feedback">
|
||||||
|
L'upload a rencontrer n'a pas pu se faire.
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<br/>
|
||||||
|
<label for="serverPort"> port </label>
|
||||||
|
<br/>
|
||||||
|
<input type="number"
|
||||||
|
name="serverPort"
|
||||||
|
min="0"
|
||||||
|
max="65536"
|
||||||
|
class="form-control"
|
||||||
|
id="serverPort"
|
||||||
|
placeholder="Si vous ne savez pas ne mettez rien">
|
||||||
|
|
||||||
|
<br/>
|
||||||
|
|
||||||
|
<label for="serverPort"> Dossier </label>
|
||||||
|
<br/>
|
||||||
|
<input type="text"
|
||||||
|
name="folder"
|
||||||
|
class="form-control"
|
||||||
|
id="folder"
|
||||||
|
placeholder="Spécifier un dossier sinon ne mettez rien">
|
||||||
|
|
||||||
|
<br/>
|
||||||
|
|
||||||
|
<label for="User"> Nom d'utilisateur </label>
|
||||||
|
<br/>
|
||||||
|
<input type="text"
|
||||||
|
name="username"
|
||||||
|
class="form-control"
|
||||||
|
id="username"
|
||||||
|
placeholder="Nom d'utilisateur fourni par votre hébergeur"
|
||||||
|
required>
|
||||||
|
|
||||||
|
<br/>
|
||||||
|
|
||||||
|
<label for="Password"> Mot de passe </label>
|
||||||
|
<br/>
|
||||||
|
<input type="password"
|
||||||
|
name="password"
|
||||||
|
class="form-control"
|
||||||
|
id="password"
|
||||||
|
placeholder="Mot de passe fourni par votre hébergeur"
|
||||||
|
required>
|
||||||
|
|
||||||
|
<br/>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<button type="submit" class="btn btn-success"
|
||||||
|
onclick="valid_nameBloc()"> Publier le site </button>
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
|
||||||
@@ -5,9 +5,9 @@
|
|||||||
{% for image in bloc.values() %}
|
{% for image in bloc.values() %}
|
||||||
{% if image.file %}
|
{% if image.file %}
|
||||||
<div class="col-lg-4 col-sm-6 text-center">
|
<div class="col-lg-4 col-sm-6 text-center">
|
||||||
<a class="portfolio-box" href="/public/img/{{ image.file }}"
|
<a class="portfolio-box" href="/img/{{ image.file }}"
|
||||||
alt="{{ image.description }}">
|
alt="{{ image.description }}">
|
||||||
<img class="img-fluid" src="/public/img/thumbnails/{{ image.file }}"
|
<img class="img-fluid" src="/img/thumbnails/{{ image.file }}"
|
||||||
alt="{{ image.description }}">
|
alt="{{ image.description }}">
|
||||||
<div class="portfolio-box-caption">
|
<div class="portfolio-box-caption">
|
||||||
<div class="portfolio-box-caption-content">
|
<div class="portfolio-box-caption-content">
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
<header class="article-img text-center text-white d-flex" style="{% include '_print_colors.css' %} background-image: url('/public/img/{{ bloc.bg_img }}');" id="{{ bloc.name }}" >
|
<header class="article-img text-center text-white d-flex" style="{% include '_print_colors.css' %} background-image: url('/img/{{ bloc.bg_img }}');" id="{{ bloc.name }}" >
|
||||||
<div class="container my-auto">
|
<div class="container my-auto">
|
||||||
<div class="row" style="mix-blend-mode: hard-light;background-color: rgba(0,0,0,0.3);">
|
<div class="row" style="mix-blend-mode: hard-light;background-color: rgba(0,0,0,0.3);">
|
||||||
<div class="col-lg-10 mx-auto">
|
<div class="col-lg-10 mx-auto">
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
<header class="masthead text-center text-white d-flex" style="{% include '_print_colors.css' %} background-image: url('/public/img/{{ bloc.bg_img }}');" id="{{ bloc.name }}" >
|
<header class="masthead text-center text-white d-flex" style="{% include '_print_colors.css' %} background-image: url('/img/{{ bloc.bg_img }}');" id="{{ bloc.name }}" >
|
||||||
<div class="container my-auto">
|
<div class="container my-auto">
|
||||||
<div class="row" style="mix-blend-mode: hard-light;background-color: rgba(0,0,0,0.3);">
|
<div class="row" style="mix-blend-mode: hard-light;background-color: rgba(0,0,0,0.3);">
|
||||||
<div class="col-lg-10 mx-auto">
|
<div class="col-lg-10 mx-auto">
|
||||||
|
|||||||
@@ -1,347 +0,0 @@
|
|||||||
body {
|
|
||||||
font-family: 'Lora';
|
|
||||||
background: linear-gradient(rgba(47, 23, 15, 0.65), rgba(47, 23, 15, 0.65)), url("../img/background.jpg");
|
|
||||||
background-attachment: fixed;
|
|
||||||
background-position: center;
|
|
||||||
background-size: cover;
|
|
||||||
}
|
|
||||||
|
|
||||||
h1,
|
|
||||||
h2,
|
|
||||||
h3,
|
|
||||||
h4,
|
|
||||||
h5,
|
|
||||||
h6 {
|
|
||||||
font-family: 'Raleway';
|
|
||||||
}
|
|
||||||
|
|
||||||
p {
|
|
||||||
line-height: 1.75;
|
|
||||||
}
|
|
||||||
|
|
||||||
.text-faded {
|
|
||||||
color: rgba(255, 255, 255, 0.3);
|
|
||||||
}
|
|
||||||
|
|
||||||
.site-heading {
|
|
||||||
margin-top: 5rem;
|
|
||||||
margin-bottom: 5rem;
|
|
||||||
text-transform: uppercase;
|
|
||||||
line-height: 1;
|
|
||||||
font-family: 'Raleway';
|
|
||||||
}
|
|
||||||
|
|
||||||
.site-heading .site-heading-upper {
|
|
||||||
display: block;
|
|
||||||
font-size: 2rem;
|
|
||||||
font-weight: 800;
|
|
||||||
}
|
|
||||||
|
|
||||||
.site-heading .site-heading-lower {
|
|
||||||
font-size: 4rem;
|
|
||||||
font-weight: 100;
|
|
||||||
line-height: 4rem;
|
|
||||||
}
|
|
||||||
|
|
||||||
.page-section {
|
|
||||||
margin-top: 5rem;
|
|
||||||
margin-bottom: 5rem;
|
|
||||||
}
|
|
||||||
|
|
||||||
.section-heading {
|
|
||||||
text-transform: uppercase;
|
|
||||||
}
|
|
||||||
|
|
||||||
.section-heading .section-heading-upper {
|
|
||||||
display: block;
|
|
||||||
font-size: 1rem;
|
|
||||||
font-weight: 800;
|
|
||||||
}
|
|
||||||
|
|
||||||
.section-heading .section-heading-lower {
|
|
||||||
display: block;
|
|
||||||
font-size: 1.75rem;
|
|
||||||
font-weight: 100;
|
|
||||||
}
|
|
||||||
|
|
||||||
.bg-faded {
|
|
||||||
background-color: rgba(255, 255, 255, 0.85);
|
|
||||||
}
|
|
||||||
|
|
||||||
#mainNav {
|
|
||||||
background-color: rgba(47, 23, 15, 0.9);
|
|
||||||
font-family: 'Raleway';
|
|
||||||
}
|
|
||||||
|
|
||||||
#mainNav .navbar-brand {
|
|
||||||
color: #e6a756;
|
|
||||||
}
|
|
||||||
|
|
||||||
#mainNav .navbar-nav .nav-item .nav-link {
|
|
||||||
color: rgba(255, 255, 255, 0.7);
|
|
||||||
font-weight: 800;
|
|
||||||
}
|
|
||||||
|
|
||||||
#mainNav .navbar-nav .nav-item.active .nav-link {
|
|
||||||
color: #e6a756;
|
|
||||||
}
|
|
||||||
|
|
||||||
@media (min-width: 992px) {
|
|
||||||
|
|
||||||
|
|
||||||
#mainNav .navbar-nav .nav-item .nav-link {
|
|
||||||
font-size: 0.9rem;
|
|
||||||
}
|
|
||||||
#mainNav .navbar-nav .nav-item .nav-link:hover {
|
|
||||||
color: rgba(255, 255, 255, 0.4);
|
|
||||||
}
|
|
||||||
#mainNav .navbar-nav .nav-item.active .nav-link:hover {
|
|
||||||
color: #e6a756;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.btn-xl {
|
|
||||||
font-weight: 700;
|
|
||||||
font-size: 0.8rem;
|
|
||||||
padding-top: 1.5rem;
|
|
||||||
padding-bottom: 1.5rem;
|
|
||||||
padding-left: 2rem;
|
|
||||||
padding-right: 2rem;
|
|
||||||
}
|
|
||||||
|
|
||||||
.intro {
|
|
||||||
position: relative;
|
|
||||||
}
|
|
||||||
|
|
||||||
@media (min-width: 992px) {
|
|
||||||
.intro .intro-img {
|
|
||||||
width: 75%;
|
|
||||||
float: right;
|
|
||||||
}
|
|
||||||
.intro .intro-text {
|
|
||||||
left: 0;
|
|
||||||
width: 60%;
|
|
||||||
margin-top: 3rem;
|
|
||||||
position: absolute;
|
|
||||||
}
|
|
||||||
.intro .intro-text .intro-button {
|
|
||||||
width: 100%;
|
|
||||||
left: 0;
|
|
||||||
position: absolute;
|
|
||||||
bottom: -2rem;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@media (min-width: 1200px) {
|
|
||||||
|
|
||||||
.product-item .product-item-title {
|
|
||||||
position: relative;
|
|
||||||
z-index: 1;
|
|
||||||
margin-bottom: -3rem;
|
|
||||||
font-size: 3rem;
|
|
||||||
}
|
|
||||||
|
|
||||||
.product-item .product-item-img {
|
|
||||||
position: relative;
|
|
||||||
z-index: 0;
|
|
||||||
height: 50rem;
|
|
||||||
/*max-width: 80vw;*/
|
|
||||||
}
|
|
||||||
|
|
||||||
.product-item .product-item-description {
|
|
||||||
position: relative;
|
|
||||||
z-index: 1;
|
|
||||||
margin-top: -5rem;
|
|
||||||
}
|
|
||||||
|
|
||||||
.carousel-item {
|
|
||||||
height: 70rem;
|
|
||||||
width: 100%;
|
|
||||||
background-color: rgba(0, 0, 0, 0);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
.intro .intro-text {
|
|
||||||
width: 45%;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.cta {
|
|
||||||
padding-top: 5rem;
|
|
||||||
padding-bottom: 5rem;
|
|
||||||
background-color: rgba(230, 167, 86, 0.9);
|
|
||||||
}
|
|
||||||
|
|
||||||
.cta .cta-inner {
|
|
||||||
position: relative;
|
|
||||||
padding: 3rem;
|
|
||||||
margin: 0.5rem;
|
|
||||||
background-color: rgba(255, 255, 255, 0.85);
|
|
||||||
}
|
|
||||||
|
|
||||||
.cta .cta-inner:before {
|
|
||||||
border-radius: 0.5rem;
|
|
||||||
content: '';
|
|
||||||
position: absolute;
|
|
||||||
top: -0.5rem;
|
|
||||||
bottom: -0.5rem;
|
|
||||||
left: -0.5rem;
|
|
||||||
right: -0.5rem;
|
|
||||||
border: 0.25rem solid rgba(255, 255, 255, 0.85);
|
|
||||||
}
|
|
||||||
|
|
||||||
@media (min-width: 992px) {
|
|
||||||
.about-heading .about-heading-img {
|
|
||||||
position: relative;
|
|
||||||
z-index: 0;
|
|
||||||
}
|
|
||||||
.about-heading .about-heading-content {
|
|
||||||
margin-top: -5rem;
|
|
||||||
position: relative;
|
|
||||||
z-index: 1;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
@media (max-width: 768px) {
|
|
||||||
|
|
||||||
.section-heading .section-heading-upper {
|
|
||||||
font-size: 0.5rem;
|
|
||||||
}
|
|
||||||
|
|
||||||
.section-heading .section-heading-lower {
|
|
||||||
font-size: 1rem;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
.product-item .product-item-title {
|
|
||||||
position: relative;
|
|
||||||
z-index: 0;
|
|
||||||
margin-bottom: -1rem;
|
|
||||||
}
|
|
||||||
|
|
||||||
.product-item .product-item-img {
|
|
||||||
position: relative;
|
|
||||||
z-index: 1;
|
|
||||||
max-width: 60vw;
|
|
||||||
}
|
|
||||||
|
|
||||||
.product-item .product-item-description {
|
|
||||||
position: relative;
|
|
||||||
padding-top: 2rem;
|
|
||||||
z-index: 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
.carousel-item {
|
|
||||||
margin-top: -27rem;
|
|
||||||
height: 60rem;
|
|
||||||
width: 100%;
|
|
||||||
background-color: rgba(0, 0, 0, 0);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@media (min-width: 768px) {
|
|
||||||
|
|
||||||
.product-item .product-item-title {
|
|
||||||
position: relative;
|
|
||||||
z-index: 1;
|
|
||||||
margin-bottom: -3rem;
|
|
||||||
}
|
|
||||||
|
|
||||||
.product-item .product-item-img {
|
|
||||||
position: relative;
|
|
||||||
z-index: 0;
|
|
||||||
max-width: 80vw;
|
|
||||||
max-height: 30rem;
|
|
||||||
}
|
|
||||||
|
|
||||||
.product-item .product-item-description {
|
|
||||||
position: relative;
|
|
||||||
z-index: 1;
|
|
||||||
margin-left: 30%;
|
|
||||||
margin-top: -0.5rem;
|
|
||||||
width: 50vw;
|
|
||||||
}
|
|
||||||
|
|
||||||
.carousel-item {
|
|
||||||
margin-top: -10rem;
|
|
||||||
height: 50rem;
|
|
||||||
width: 100%;
|
|
||||||
background-color: rgba(0, 0, 0, 0);
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
.list-hours {
|
|
||||||
font-size: 0.9rem;
|
|
||||||
}
|
|
||||||
|
|
||||||
.list-hours .list-hours-item {
|
|
||||||
border-bottom: 1px solid rgba(230, 167, 86, 0.5);
|
|
||||||
padding-bottom: .25rem;
|
|
||||||
margin-bottom: 1rem;
|
|
||||||
font-style: italic;
|
|
||||||
}
|
|
||||||
|
|
||||||
.list-hours .list-hours-item.today {
|
|
||||||
font-weight: bold;
|
|
||||||
color: #e6a756;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
@media (min-width: 992px) {
|
|
||||||
|
|
||||||
.list-hours {
|
|
||||||
width: 50%;
|
|
||||||
font-size: 1.1rem;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
.address strong {
|
|
||||||
font-size: 1.2rem;
|
|
||||||
}
|
|
||||||
|
|
||||||
.footer {
|
|
||||||
background-color: rgba(47, 23, 15, 0.9);
|
|
||||||
}
|
|
||||||
|
|
||||||
.text-primary {
|
|
||||||
color: #e6a756 !important;
|
|
||||||
}
|
|
||||||
|
|
||||||
.carousel-caption {
|
|
||||||
color: rgba(47, 23, 15, 0.9);
|
|
||||||
}
|
|
||||||
|
|
||||||
.bg-primary {
|
|
||||||
background-color: #e6a756 !important;
|
|
||||||
}
|
|
||||||
|
|
||||||
.btn {
|
|
||||||
box-shadow: 0px 3px 3px 0px rgba(33, 37, 41, 0.1);
|
|
||||||
}
|
|
||||||
|
|
||||||
.btn-primary {
|
|
||||||
background-color: #e6a756;
|
|
||||||
border-color: #e6a756;
|
|
||||||
}
|
|
||||||
|
|
||||||
.btn-primary:hover, .btn-primary:focus, .btn-primary:active {
|
|
||||||
background-color: #df902a;
|
|
||||||
border-color: #df902a;
|
|
||||||
}
|
|
||||||
|
|
||||||
.font-weight-light {
|
|
||||||
font-weight: 100 !important;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
.carousel-item {
|
|
||||||
width: 100%;
|
|
||||||
background-color: rgba(0, 0, 0, 0);
|
|
||||||
}
|
|
||||||
|
|
||||||
.product-item .product-item-description {
|
|
||||||
margin-top: -5rem;
|
|
||||||
}
|
|
||||||
@@ -1,6 +0,0 @@
|
|||||||
#toolNav {
|
|
||||||
background-color: rgba(0, 0, 0, 0.3);
|
|
||||||
border-top: 67px;
|
|
||||||
border-top-color: currentcolor;
|
|
||||||
border-color: black;
|
|
||||||
}
|
|
||||||
@@ -1,283 +0,0 @@
|
|||||||
body {
|
|
||||||
font-family: 'Lora', 'Helvetica Neue', Helvetica, Arial, sans-serif;
|
|
||||||
position: relative;
|
|
||||||
width: 100%;
|
|
||||||
height: 100%;
|
|
||||||
color: white;
|
|
||||||
background-color: black;
|
|
||||||
}
|
|
||||||
|
|
||||||
html {
|
|
||||||
width: 100%;
|
|
||||||
height: 100%;
|
|
||||||
}
|
|
||||||
|
|
||||||
h1,
|
|
||||||
h2,
|
|
||||||
h3,
|
|
||||||
h4,
|
|
||||||
h5,
|
|
||||||
h6 {
|
|
||||||
font-family: 'Cabin', 'Helvetica Neue', Helvetica, Arial, sans-serif;
|
|
||||||
font-weight: 700;
|
|
||||||
margin: 0 0 35px;
|
|
||||||
letter-spacing: 1px;
|
|
||||||
text-transform: uppercase;
|
|
||||||
}
|
|
||||||
|
|
||||||
p {
|
|
||||||
font-size: 16px;
|
|
||||||
line-height: 1.5;
|
|
||||||
margin: 0 0 25px;
|
|
||||||
}
|
|
||||||
|
|
||||||
@media (min-width: 768px) {
|
|
||||||
p {
|
|
||||||
font-size: 18px;
|
|
||||||
line-height: 1.6;
|
|
||||||
margin: 0 0 35px;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
a {
|
|
||||||
-webkit-transition: all 0.2s ease-in-out;
|
|
||||||
-moz-transition: all 0.2s ease-in-out;
|
|
||||||
transition: all 0.2s ease-in-out;
|
|
||||||
color: #42DCA3;
|
|
||||||
}
|
|
||||||
|
|
||||||
a:focus, a:hover {
|
|
||||||
text-decoration: none;
|
|
||||||
color: #1d9b6c;
|
|
||||||
}
|
|
||||||
|
|
||||||
#mainNav {
|
|
||||||
font-family: 'Cabin', 'Helvetica Neue', Helvetica, Arial, sans-serif;
|
|
||||||
margin-bottom: 0;
|
|
||||||
text-transform: uppercase;
|
|
||||||
border-bottom: 1px solid rgba(255, 255, 255, 0.3);
|
|
||||||
background-color: black;
|
|
||||||
}
|
|
||||||
|
|
||||||
#mainNav .navbar-toggler {
|
|
||||||
font-size: 14px;
|
|
||||||
padding: 11px;
|
|
||||||
color: white;
|
|
||||||
border: 1px solid white;
|
|
||||||
}
|
|
||||||
|
|
||||||
#mainNav .navbar-brand {
|
|
||||||
font-weight: 700;
|
|
||||||
}
|
|
||||||
|
|
||||||
#mainNav a {
|
|
||||||
color: white;
|
|
||||||
}
|
|
||||||
|
|
||||||
#mainNav .navbar-nav .nav-item {
|
|
||||||
-webkit-transition: background 0.3s ease-in-out;
|
|
||||||
-moz-transition: background 0.3s ease-in-out;
|
|
||||||
transition: background 0.3s ease-in-out;
|
|
||||||
}
|
|
||||||
|
|
||||||
#mainNav .navbar-nav .nav-item:hover {
|
|
||||||
color: fade(white, 80%);
|
|
||||||
outline: none;
|
|
||||||
background-color: transparent;
|
|
||||||
}
|
|
||||||
|
|
||||||
#mainNav .navbar-nav .nav-item:active, #mainNav .navbar-nav .nav-item:focus {
|
|
||||||
outline: none;
|
|
||||||
background-color: transparent;
|
|
||||||
}
|
|
||||||
|
|
||||||
@media (min-width: 992px) {
|
|
||||||
#mainNav {
|
|
||||||
padding-top: 20px;
|
|
||||||
padding-bottom: 20px;
|
|
||||||
-webkit-transition: background 0.3s ease-in-out, padding-top 0.3s ease-in-out, padding-bottom 0.3s;
|
|
||||||
-moz-transition: background 0.3s ease-in-out, padding-top 0.3s ease-in-out, padding-bottom 0.3s;
|
|
||||||
transition: background 0.3s ease-in-out, padding-top 0.3s ease-in-out, padding-bottom 0.3s;
|
|
||||||
letter-spacing: 1px;
|
|
||||||
border-bottom: none;
|
|
||||||
background: transparent;
|
|
||||||
}
|
|
||||||
#mainNav.navbar-shrink {
|
|
||||||
padding-top: 10px;
|
|
||||||
padding-bottom: 10px;
|
|
||||||
border-bottom: 1px solid rgba(255, 255, 255, 0.3);
|
|
||||||
background: black;
|
|
||||||
}
|
|
||||||
#mainNav .nav-link.active {
|
|
||||||
outline: none;
|
|
||||||
background-color: rgba(255, 255, 255, 0.3);
|
|
||||||
}
|
|
||||||
#mainNav .nav-link.active:hover {
|
|
||||||
color: white;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.masthead {
|
|
||||||
display: table;
|
|
||||||
width: 100%;
|
|
||||||
height: auto;
|
|
||||||
padding: 200px 0;
|
|
||||||
text-align: center;
|
|
||||||
color: white;
|
|
||||||
background: url("../img/header.jpg") no-repeat bottom center scroll;
|
|
||||||
background-color: black;
|
|
||||||
-webkit-background-size: cover;
|
|
||||||
-moz-background-size: cover;
|
|
||||||
-o-background-size: cover;
|
|
||||||
background-size: cover;
|
|
||||||
}
|
|
||||||
|
|
||||||
.masthead .intro-body {
|
|
||||||
display: table-cell;
|
|
||||||
vertical-align: middle;
|
|
||||||
}
|
|
||||||
|
|
||||||
.masthead .intro-body .brand-heading {
|
|
||||||
font-size: 50px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.masthead .intro-body .intro-text {
|
|
||||||
font-size: 18px;
|
|
||||||
}
|
|
||||||
|
|
||||||
@media (min-width: 768px) {
|
|
||||||
.masthead {
|
|
||||||
height: 100%;
|
|
||||||
padding: 0;
|
|
||||||
}
|
|
||||||
.masthead .intro-body .brand-heading {
|
|
||||||
font-size: 100px;
|
|
||||||
}
|
|
||||||
.masthead .intro-body .intro-text {
|
|
||||||
font-size: 22px;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.btn-circle {
|
|
||||||
font-size: 26px;
|
|
||||||
width: 55px;
|
|
||||||
height: 55px;
|
|
||||||
margin-top: 15px;
|
|
||||||
line-height: 45px;
|
|
||||||
-webkit-transition: background 0.3s ease-in-out;
|
|
||||||
-moz-transition: background 0.3s ease-in-out;
|
|
||||||
transition: background 0.3s ease-in-out;
|
|
||||||
color: white;
|
|
||||||
border: 2px solid white;
|
|
||||||
border-radius: 100% !important;
|
|
||||||
background: transparent;
|
|
||||||
}
|
|
||||||
|
|
||||||
.btn-circle:focus, .btn-circle:hover {
|
|
||||||
color: white;
|
|
||||||
outline: none;
|
|
||||||
background: rgba(255, 255, 255, 0.1);
|
|
||||||
}
|
|
||||||
|
|
||||||
.content-section {
|
|
||||||
padding-top: 150px;
|
|
||||||
padding-bottom: 150px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.download-section {
|
|
||||||
color: white;
|
|
||||||
background: url("../img/background.jpg") no-repeat center center scroll;
|
|
||||||
background-color: black;
|
|
||||||
-webkit-background-size: cover;
|
|
||||||
-moz-background-size: cover;
|
|
||||||
-o-background-size: cover;
|
|
||||||
background-size: cover;
|
|
||||||
}
|
|
||||||
|
|
||||||
#map {
|
|
||||||
width: 100%;
|
|
||||||
height: 300px;
|
|
||||||
}
|
|
||||||
|
|
||||||
@media (min-width: 992px) {
|
|
||||||
.content-section {
|
|
||||||
padding-top: 200px;
|
|
||||||
padding-bottom: 200px;
|
|
||||||
}
|
|
||||||
#map {
|
|
||||||
height: 350px;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.btn {
|
|
||||||
font-family: 'Cabin', 'Helvetica Neue', Helvetica, Arial, sans-serif;
|
|
||||||
font-weight: 400;
|
|
||||||
-webkit-transition: all 0.3s ease-in-out;
|
|
||||||
-moz-transition: all 0.3s ease-in-out;
|
|
||||||
transition: all 0.3s ease-in-out;
|
|
||||||
text-transform: uppercase;
|
|
||||||
border-radius: 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
.btn-default {
|
|
||||||
color: #42DCA3;
|
|
||||||
border: 1px solid #42DCA3;
|
|
||||||
background-color: transparent;
|
|
||||||
}
|
|
||||||
|
|
||||||
.btn-default:focus, .btn-default:hover {
|
|
||||||
color: black;
|
|
||||||
border: 1px solid #42DCA3;
|
|
||||||
outline: none;
|
|
||||||
background-color: #42DCA3;
|
|
||||||
}
|
|
||||||
|
|
||||||
ul.banner-social-buttons {
|
|
||||||
margin-top: 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
@media (max-width: 1199px) {
|
|
||||||
ul.banner-social-buttons {
|
|
||||||
margin-top: 15px;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@media (max-width: 767px) {
|
|
||||||
ul.banner-social-buttons li {
|
|
||||||
display: block;
|
|
||||||
margin-bottom: 20px;
|
|
||||||
padding: 0;
|
|
||||||
}
|
|
||||||
ul.banner-social-buttons li:last-child {
|
|
||||||
margin-bottom: 0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
footer {
|
|
||||||
padding: 50px 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
footer p {
|
|
||||||
font-size: 14px;
|
|
||||||
margin: 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
::-moz-selection {
|
|
||||||
background: #fcfcfc;
|
|
||||||
background: rgba(255, 255, 255, 0.2);
|
|
||||||
text-shadow: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
::selection {
|
|
||||||
background: #fcfcfc;
|
|
||||||
background: rgba(255, 255, 255, 0.2);
|
|
||||||
text-shadow: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
img::selection {
|
|
||||||
background: transparent;
|
|
||||||
}
|
|
||||||
|
|
||||||
img::-moz-selection {
|
|
||||||
background: transparent;
|
|
||||||
}
|
|
||||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
Before Width: | Height: | Size: 1.9 MiB |
@@ -58,9 +58,9 @@
|
|||||||
</a>
|
</a>
|
||||||
<div class="dropdown-menu" aria-labelledby="Sous-menu">
|
<div class="dropdown-menu" aria-labelledby="Sous-menu">
|
||||||
|
|
||||||
<a class="dropdown-item" href="https://dede.Fr">Un lien</a>
|
<a class="dropdown-item" href="https://kitoy.me">Un lien</a>
|
||||||
|
|
||||||
<a class="dropdown-item" href="https://example.fr">Un autre truc</a>
|
<a class="dropdown-item" href="https://kitoy.eu">Un autre truc</a>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</li>
|
</li>
|
||||||
@@ -79,7 +79,7 @@
|
|||||||
|
|
||||||
|
|
||||||
<header class="masthead text-center text-white d-flex" style="
|
<header class="masthead text-center text-white d-flex" style="
|
||||||
background-image: url('/public/img/bg_custom_bloc0IMG_20140817_182202.jpg');" id="bloc0" >
|
background-image: url('/img/bg_custom_bloc0IMG_20140817_182202.jpg');" id="bloc0" >
|
||||||
<div class="container my-auto">
|
<div class="container my-auto">
|
||||||
<div class="row" style="mix-blend-mode: hard-light;background-color: rgba(0,0,0,0.3);">
|
<div class="row" style="mix-blend-mode: hard-light;background-color: rgba(0,0,0,0.3);">
|
||||||
<div class="col-lg-10 mx-auto">
|
<div class="col-lg-10 mx-auto">
|
||||||
@@ -150,9 +150,9 @@
|
|||||||
|
|
||||||
|
|
||||||
<div class="col-lg-4 col-sm-6 text-center">
|
<div class="col-lg-4 col-sm-6 text-center">
|
||||||
<a class="portfolio-box" href="/public/img/jhenning-poppy-9639559.jpg"
|
<a class="portfolio-box" href="/img/jhenning-poppy-9639559.jpg"
|
||||||
alt="Un coqelicot seul au milieu d'une pelouse">
|
alt="Un coqelicot seul au milieu d'une pelouse">
|
||||||
<img class="img-fluid" src="/public/img/thumbnails/jhenning-poppy-9639559.jpg"
|
<img class="img-fluid" src="/img/thumbnails/jhenning-poppy-9639559.jpg"
|
||||||
alt="Un coqelicot seul au milieu d'une pelouse">
|
alt="Un coqelicot seul au milieu d'une pelouse">
|
||||||
<div class="portfolio-box-caption">
|
<div class="portfolio-box-caption">
|
||||||
<div class="portfolio-box-caption-content">
|
<div class="portfolio-box-caption-content">
|
||||||
@@ -170,9 +170,9 @@
|
|||||||
|
|
||||||
|
|
||||||
<div class="col-lg-4 col-sm-6 text-center">
|
<div class="col-lg-4 col-sm-6 text-center">
|
||||||
<a class="portfolio-box" href="/public/img/namden-vietnam-9963155.png"
|
<a class="portfolio-box" href="/img/namden-vietnam-9963155.png"
|
||||||
alt="Des petites terrasses de fleurs formant des marchent faîtes pour decendre dans la vallé ">
|
alt="Des petites terrasses de fleurs formant des marchent faîtes pour decendre dans la vallé ">
|
||||||
<img class="img-fluid" src="/public/img/thumbnails/namden-vietnam-9963155.png"
|
<img class="img-fluid" src="/img/thumbnails/namden-vietnam-9963155.png"
|
||||||
alt="Des petites terrasses de fleurs formant des marchent faîtes pour decendre dans la vallé ">
|
alt="Des petites terrasses de fleurs formant des marchent faîtes pour decendre dans la vallé ">
|
||||||
<div class="portfolio-box-caption">
|
<div class="portfolio-box-caption">
|
||||||
<div class="portfolio-box-caption-content">
|
<div class="portfolio-box-caption-content">
|
||||||
@@ -190,9 +190,9 @@
|
|||||||
|
|
||||||
|
|
||||||
<div class="col-lg-4 col-sm-6 text-center">
|
<div class="col-lg-4 col-sm-6 text-center">
|
||||||
<a class="portfolio-box" href="/public/img/martinophuc-la-mure-village.jpg"
|
<a class="portfolio-box" href="/img/martinophuc-la-mure-village.jpg"
|
||||||
alt="Un champs de blé avec une montagne en arrière plan">
|
alt="Un champs de blé avec une montagne en arrière plan">
|
||||||
<img class="img-fluid" src="/public/img/thumbnails/martinophuc-la-mure-village.jpg"
|
<img class="img-fluid" src="/img/thumbnails/martinophuc-la-mure-village.jpg"
|
||||||
alt="Un champs de blé avec une montagne en arrière plan">
|
alt="Un champs de blé avec une montagne en arrière plan">
|
||||||
<div class="portfolio-box-caption">
|
<div class="portfolio-box-caption">
|
||||||
<div class="portfolio-box-caption-content">
|
<div class="portfolio-box-caption-content">
|
||||||
|
|||||||
1
users/testouni/public/js/grayscale.min.js
vendored
1
users/testouni/public/js/grayscale.min.js
vendored
@@ -1 +0,0 @@
|
|||||||
function init(){var e={zoom:15,center:new google.maps.LatLng(40.67,-73.94),disableDefaultUI:!0,scrollwheel:!1,draggable:!1,styles:[{featureType:"water",elementType:"geometry",stylers:[{color:"#000000"},{lightness:17}]},{featureType:"landscape",elementType:"geometry",stylers:[{color:"#000000"},{lightness:20}]},{featureType:"road.highway",elementType:"geometry.fill",stylers:[{color:"#000000"},{lightness:17}]},{featureType:"road.highway",elementType:"geometry.stroke",stylers:[{color:"#000000"},{lightness:29},{weight:.2}]},{featureType:"road.arterial",elementType:"geometry",stylers:[{color:"#000000"},{lightness:18}]},{featureType:"road.local",elementType:"geometry",stylers:[{color:"#000000"},{lightness:16}]},{featureType:"poi",elementType:"geometry",stylers:[{color:"#000000"},{lightness:21}]},{elementType:"labels.text.stroke",stylers:[{visibility:"on"},{color:"#000000"},{lightness:16}]},{elementType:"labels.text.fill",stylers:[{saturation:36},{color:"#000000"},{lightness:40}]},{elementType:"labels.icon",stylers:[{visibility:"off"}]},{featureType:"transit",elementType:"geometry",stylers:[{color:"#000000"},{lightness:19}]},{featureType:"administrative",elementType:"geometry.fill",stylers:[{color:"#000000"},{lightness:20}]},{featureType:"administrative",elementType:"geometry.stroke",stylers:[{color:"#000000"},{lightness:17},{weight:1.2}]}]},t=document.getElementById("map");map=new google.maps.Map(t,e);var l=new google.maps.LatLng(40.67,-73.94);new google.maps.Marker({position:l,map:map,icon:"img/map-marker.svg"})}!function(e){"use strict";e('a.js-scroll-trigger[href*="#"]:not([href="#"])').click(function(){if(location.pathname.replace(/^\//,"")==this.pathname.replace(/^\//,"")&&location.hostname==this.hostname){var t=e(this.hash);if((t=t.length?t:e("[name="+this.hash.slice(1)+"]")).length)return e("html, body").animate({scrollTop:t.offset().top-48},1e3,"easeInOutExpo"),!1}}),e(".js-scroll-trigger").click(function(){e(".navbar-collapse").collapse("hide")}),e("body").scrollspy({target:"#mainNav",offset:54});var t=function(){e("#mainNav").offset().top>100?e("#mainNav").addClass("navbar-shrink"):e("#mainNav").removeClass("navbar-shrink")};t(),e(window).scroll(t)}(jQuery);var map=null;google.maps.event.addDomListener(window,"load",init),google.maps.event.addDomListener(window,"resize",function(){map.setCenter(new google.maps.LatLng(40.67,-73.94))});
|
|
||||||
@@ -58,9 +58,9 @@
|
|||||||
</a>
|
</a>
|
||||||
<div class="dropdown-menu" aria-labelledby="Sous-menu">
|
<div class="dropdown-menu" aria-labelledby="Sous-menu">
|
||||||
|
|
||||||
<a class="dropdown-item" href="https://dede.Fr">Un lien</a>
|
<a class="dropdown-item" href="https://kitoy.me">Un lien</a>
|
||||||
|
|
||||||
<a class="dropdown-item" href="https://example.fr">Un autre truc</a>
|
<a class="dropdown-item" href="https://kitoy.eu">Un autre truc</a>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</li>
|
</li>
|
||||||
@@ -63,6 +63,92 @@ h6 {
|
|||||||
color: rgba(255, 255, 255, 0.7);
|
color: rgba(255, 255, 255, 0.7);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.ql-align-center {
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
.ql-align-left {
|
||||||
|
text-align: left;
|
||||||
|
}
|
||||||
|
|
||||||
|
.ql-align-right {
|
||||||
|
text-align: right;
|
||||||
|
}
|
||||||
|
|
||||||
|
blockquote {
|
||||||
|
padding: 60px 80px 40px;
|
||||||
|
position: relative;
|
||||||
|
}
|
||||||
|
blockquote p {
|
||||||
|
font-size: 35px;
|
||||||
|
font-weight: 700px;
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*blockquote p::before {
|
||||||
|
content: "\f095";
|
||||||
|
font-family: FontAwesome;
|
||||||
|
display: inline-block;
|
||||||
|
padding-right: 6px;
|
||||||
|
vertical-align: middle;
|
||||||
|
font-size: 180px;
|
||||||
|
}*/
|
||||||
|
|
||||||
|
blockquote:before {
|
||||||
|
position: absolute;
|
||||||
|
font-family: 'FontAwesome';
|
||||||
|
top: 0;
|
||||||
|
content:"\f10d";
|
||||||
|
font-size: 200px;
|
||||||
|
color: rgba(0,0,0,0.1);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
blockquote::after {
|
||||||
|
content: "";
|
||||||
|
top: 20px;
|
||||||
|
left: 50%;
|
||||||
|
margin-left: -100px;
|
||||||
|
position: absolute;
|
||||||
|
height: 3px;
|
||||||
|
width: 200px;
|
||||||
|
}
|
||||||
|
|
||||||
|
blockquote{
|
||||||
|
font-size: 1.4em;
|
||||||
|
width:60%;
|
||||||
|
margin:50px auto;
|
||||||
|
font-style:italic;
|
||||||
|
color: #555555;
|
||||||
|
padding:1.2em 30px 1.2em 75px;
|
||||||
|
border-left:8px solid #f05f40;
|
||||||
|
line-height:1.6;
|
||||||
|
position: relative;
|
||||||
|
background:#EDEDED;
|
||||||
|
}
|
||||||
|
|
||||||
|
blockquote::before{
|
||||||
|
font-family:Arial;
|
||||||
|
content: "\201C";
|
||||||
|
color:#f05f40;
|
||||||
|
font-size:4em;
|
||||||
|
position: absolute;
|
||||||
|
left: 10px;
|
||||||
|
top:-10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
blockquote::after{
|
||||||
|
content: '';
|
||||||
|
}
|
||||||
|
|
||||||
|
blockquote span{
|
||||||
|
display:block;
|
||||||
|
color:#333333;
|
||||||
|
font-style: normal;
|
||||||
|
font-weight: bold;
|
||||||
|
margin-top:1em;
|
||||||
|
}
|
||||||
|
|
||||||
section {
|
section {
|
||||||
padding: 8rem 0;
|
padding: 8rem 0;
|
||||||
z-index: -1;
|
z-index: -1;
|
||||||
@@ -141,7 +227,7 @@ img::-moz-selection {
|
|||||||
@media (min-width: 992px) {
|
@media (min-width: 992px) {
|
||||||
#mainNav {
|
#mainNav {
|
||||||
border-color: transparent;
|
border-color: transparent;
|
||||||
background-color: transparent;
|
background-color: rgba(0,0,0,0.7);
|
||||||
}
|
}
|
||||||
#mainNav .navbar-brand {
|
#mainNav .navbar-brand {
|
||||||
color: rgba(255, 255, 255, 0.7);
|
color: rgba(255, 255, 255, 0.7);
|
||||||
@@ -190,16 +276,27 @@ header.masthead {
|
|||||||
background-size: cover;
|
background-size: cover;
|
||||||
}
|
}
|
||||||
|
|
||||||
header.masthead hr {
|
header.article-img {
|
||||||
|
padding-top: 10rem;
|
||||||
|
padding-bottom: calc(10rem - 56px);
|
||||||
|
background-position: center center;
|
||||||
|
-webkit-background-size: cover;
|
||||||
|
-moz-background-size: cover;
|
||||||
|
-o-background-size: cover;
|
||||||
|
background-size: cover;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
header.article-img header.masthead hr {
|
||||||
margin-top: 30px;
|
margin-top: 30px;
|
||||||
margin-bottom: 30px;
|
margin-bottom: 30px;
|
||||||
}
|
}
|
||||||
|
|
||||||
header.masthead h1 {
|
header.article-img header.masthead h1 {
|
||||||
font-size: 2rem;
|
font-size: 2rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
header.masthead p {
|
header.article-img header.masthead p {
|
||||||
font-weight: 300;
|
font-weight: 300;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -210,19 +307,27 @@ header.masthead p {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@media (min-width: 992px) {
|
@media (min-width: 992px) {
|
||||||
|
header.article-img {
|
||||||
|
height: 50vh;
|
||||||
|
min-height: 300px;
|
||||||
|
padding-top: 0;
|
||||||
|
padding-bottom: 0;
|
||||||
|
}
|
||||||
|
|
||||||
header.masthead {
|
header.masthead {
|
||||||
height: 100vh;
|
height: 100vh;
|
||||||
min-height: 650px;
|
min-height: 650px;
|
||||||
padding-top: 0;
|
padding-top: 0;
|
||||||
padding-bottom: 0;
|
padding-bottom: 0;
|
||||||
}
|
}
|
||||||
header.masthead h1 {
|
|
||||||
|
header.article-img header.masthead h1 {
|
||||||
font-size: 3rem;
|
font-size: 3rem;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@media (min-width: 1200px) {
|
@media (min-width: 1200px) {
|
||||||
header.masthead h1 {
|
header.article-img header.masthead h1 {
|
||||||
font-size: 4rem;
|
font-size: 4rem;
|
||||||
}
|
}
|
||||||
.btn-success {
|
.btn-success {
|
||||||
3
users/testouni/public/static/css/prism.min.css
vendored
Normal file
3
users/testouni/public/static/css/prism.min.css
vendored
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
/* PrismJS 1.30.0
|
||||||
|
https://prismjs.com/download#themes=prism-okaidia&languages=markup+css+clike+javascript+bash+c+cpp+markdown+markup-templating+nginx+php+python */
|
||||||
|
code[class*=language-],pre[data-language*=language-]{color:#f8f8f2;background:0 0;text-shadow:0 1px rgba(0,0,0,.3);font-family:Consolas,Monaco,'Andale Mono','Ubuntu Mono',monospace;font-size:1em;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;line-height:1.5;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;-moz-hyphens:none;-ms-hyphens:none;hyphens:none}pre[class*=language-]{padding:1em;margin:.5em 0;overflow:auto;border-radius:.3em}:not(pre)>code[class*=language-],pre[class*=language-]{background:#272822}:not(pre)>code[class*=language-]{padding:.1em;border-radius:.3em;white-space:normal}.token.cdata,.token.comment,.token.doctype,.token.prolog{color:#8292a2}.token.punctuation{color:#f8f8f2}.token.namespace{opacity:.7}.token.constant,.token.deleted,.token.property,.token.symbol,.token.tag{color:#f92672}.token.boolean,.token.number{color:#ae81ff}.token.attr-name,.token.builtin,.token.char,.token.inserted,.token.selector,.token.string{color:#a6e22e}.language-css .token.string,.style .token.string,.token.entity,.token.operator,.token.url,.token.variable{color:#f8f8f2}.token.atrule,.token.attr-value,.token.class-name,.token.function{color:#e6db74}.token.keyword{color:#66d9ef}.token.important,.token.regex{color:#fd971f}.token.bold,.token.important{font-weight:700}.token.italic{font-style:italic}.token.entity{cursor:help}
|
||||||
15
users/testouni/public/static/js/prism.js
Normal file
15
users/testouni/public/static/js/prism.js
Normal file
File diff suppressed because one or more lines are too long
|
Before Width: | Height: | Size: 434 KiB After Width: | Height: | Size: 434 KiB |
@@ -58,9 +58,9 @@
|
|||||||
</a>
|
</a>
|
||||||
<div class="dropdown-menu" aria-labelledby="Sous-menu">
|
<div class="dropdown-menu" aria-labelledby="Sous-menu">
|
||||||
|
|
||||||
<a class="dropdown-item" href="https://dede.Fr">Un lien</a>
|
<a class="dropdown-item" href="https://kitoy.me">Un lien</a>
|
||||||
|
|
||||||
<a class="dropdown-item" href="https://example.fr">Un autre truc</a>
|
<a class="dropdown-item" href="https://kitoy.eu">Un autre truc</a>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</li>
|
</li>
|
||||||
@@ -79,7 +79,7 @@
|
|||||||
|
|
||||||
|
|
||||||
<header class="article-img text-center text-white d-flex" style="
|
<header class="article-img text-center text-white d-flex" style="
|
||||||
background-image: url('/public/img/bg_custom_bloc0image_entete_exemple.jpg');" id="bloc0" >
|
background-image: url('/img/bg_custom_bloc0image_entete_exemple.jpg');" id="bloc0" >
|
||||||
<div class="container my-auto">
|
<div class="container my-auto">
|
||||||
<div class="row" style="mix-blend-mode: hard-light;background-color: rgba(0,0,0,0.3);">
|
<div class="row" style="mix-blend-mode: hard-light;background-color: rgba(0,0,0,0.3);">
|
||||||
<div class="col-lg-10 mx-auto">
|
<div class="col-lg-10 mx-auto">
|
||||||
@@ -58,9 +58,9 @@
|
|||||||
</a>
|
</a>
|
||||||
<div class="dropdown-menu" aria-labelledby="Sous-menu">
|
<div class="dropdown-menu" aria-labelledby="Sous-menu">
|
||||||
|
|
||||||
<a class="dropdown-item" href="https://dede.Fr">Un lien</a>
|
<a class="dropdown-item" href="https://kitoy.me">Un lien</a>
|
||||||
|
|
||||||
<a class="dropdown-item" href="https://example.fr">Un autre truc</a>
|
<a class="dropdown-item" href="https://kitoy.eu">Un autre truc</a>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</li>
|
</li>
|
||||||
@@ -58,9 +58,9 @@
|
|||||||
</a>
|
</a>
|
||||||
<div class="dropdown-menu" aria-labelledby="Sous-menu">
|
<div class="dropdown-menu" aria-labelledby="Sous-menu">
|
||||||
|
|
||||||
<a class="dropdown-item" href="https://dede.Fr">Un lien</a>
|
<a class="dropdown-item" href="https://kitoy.me">Un lien</a>
|
||||||
|
|
||||||
<a class="dropdown-item" href="https://example.fr">Un autre truc</a>
|
<a class="dropdown-item" href="https://kitoy.eu">Un autre truc</a>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</li>
|
</li>
|
||||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user