repocitorio iniciado desde cero
15
.gitignore
vendored
Normal file
@ -0,0 +1,15 @@
|
||||
.venv
|
||||
venv
|
||||
|
||||
# # Ignorar todo en /static/uploads
|
||||
# /static/uploads/*
|
||||
# /cache/*
|
||||
|
||||
# # ¡Pero no ignores el archivo .gitkeep!
|
||||
# !/static/uploads/.gitkeep
|
||||
# !/cache/.gitkeep
|
||||
|
||||
|
||||
# Ignorar caché de Python
|
||||
__pycache__/
|
||||
*.pyc
|
195
db_xala_dev/01_create_db.py
Normal file
@ -0,0 +1,195 @@
|
||||
import sqlite3
|
||||
import os
|
||||
import pandas as pd
|
||||
from tqdm import tqdm
|
||||
|
||||
# Nombre del archivo de la base de datos
|
||||
db_name = "xala_dev.db"
|
||||
|
||||
# Verificar si la base de datos ya existe
|
||||
if os.path.exists(db_name):
|
||||
os.remove(db_name)
|
||||
print(f"Se elimina la base de datos pre existente.")
|
||||
|
||||
|
||||
# Conectar a SQLite (si no existe, se crea automáticamente)
|
||||
conn = sqlite3.connect(db_name)
|
||||
cursor = conn.cursor()
|
||||
|
||||
# ######################################################
|
||||
# [1/5] CREAR LA TABLA "home"
|
||||
# ######################################################
|
||||
cursor.execute('''
|
||||
CREATE TABLE home (
|
||||
pk TEXT PRIMARY KEY,
|
||||
label TEXT,
|
||||
icon TEXT,
|
||||
description TEXT,
|
||||
svg_data TEXT
|
||||
);
|
||||
''')
|
||||
|
||||
xlsx_path = lambda x: f'Files/xlsx_n_xlsx/{x}'
|
||||
html_path = lambda x: f'Files/html_template/{x}'
|
||||
svg_path = lambda x: f'Files/svg/{x}'
|
||||
|
||||
f_home = xlsx_path("a_home.xlsx")
|
||||
|
||||
df_home = pd.read_excel(f_home)
|
||||
df_home = pd.DataFrame(df_home)
|
||||
lst_home = []
|
||||
|
||||
for row in tqdm(range(df_home.shape[0])):
|
||||
pk = df_home['pk'].iloc[row]
|
||||
label = df_home['software'].iloc[row]
|
||||
icon = df_home['icon'].iloc[row]
|
||||
description = df_home['short_desc'].iloc[row]
|
||||
with open(f"{svg_path(df_home['svg_file'].iloc[row])}", "r", encoding="utf-8") as f:
|
||||
svg_data = f.read()
|
||||
|
||||
lst_home.append(tuple([pk, label, icon, description, svg_data]))
|
||||
|
||||
cursor.executemany('INSERT INTO home (pk, label, icon, description, svg_data) VALUES (?, ?, ?, ?, ?)', lst_home)
|
||||
del df_home
|
||||
print("✔️ home")
|
||||
|
||||
# ######################################################
|
||||
# [2/5] CREAR LA TABLA "all_posts"
|
||||
# ######################################################
|
||||
cursor.execute('''
|
||||
CREATE TABLE all_posts (
|
||||
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
||||
pk TEXT,
|
||||
date TEXT,
|
||||
status TEXT,
|
||||
titulo_tema TEXT,
|
||||
sintesis TEXT,
|
||||
html_alert TEXT,
|
||||
lst_glosary TEXT,
|
||||
lst_post_related TEXT
|
||||
);
|
||||
''')
|
||||
|
||||
f_all_posts = xlsx_path("b_all_posts.xlsx")
|
||||
df_all_posts = pd.read_excel(f_all_posts)
|
||||
df_all_posts = pd.DataFrame(df_all_posts)
|
||||
lst_all_posts = []
|
||||
|
||||
for row in tqdm(range(df_all_posts.shape[0])):
|
||||
id = int(df_all_posts['index'].iloc[row])
|
||||
pk = df_all_posts['pk'].iloc[row]
|
||||
date = str(df_all_posts['date'].iloc[row])
|
||||
status = df_all_posts['status'].iloc[row]
|
||||
titulo_tema = df_all_posts['titulo_tema'].iloc[row]
|
||||
sintesis = df_all_posts['sintesis'].iloc[row]
|
||||
# file_html_template = f'{str(df_all_posts["index"].iloc[row])}.html'
|
||||
# with open(f"{html_path(file_html_template)}", mode='r', encoding='utf-8') as html_temp:
|
||||
# html_template = html_temp.read()
|
||||
|
||||
html_alert = f'{str(df_all_posts["html_alert"].iloc[row])}'
|
||||
lst_glosary = str(df_all_posts['lst_glosary'].iloc[row]) # Convertir la lista a una representación de cadena
|
||||
lst_post_related = df_all_posts['lst_post_related'].iloc[row] # Convertir la lista a una representación de cadena
|
||||
|
||||
lst_all_posts.append(tuple([id, pk, date, status, titulo_tema, sintesis, html_alert, lst_glosary, lst_post_related]))
|
||||
|
||||
cursor.executemany('''
|
||||
INSERT INTO all_posts (id, pk, date, status, titulo_tema, sintesis, html_alert, lst_glosary, lst_post_related)
|
||||
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)
|
||||
''', lst_all_posts)
|
||||
|
||||
del df_all_posts
|
||||
print("✔️ All_Posts")
|
||||
|
||||
# ######################################################
|
||||
# [3/5] CREAR LA TABLA DE GLOSARIO.
|
||||
# ######################################################
|
||||
|
||||
cursor.execute('''
|
||||
CREATE TABLE glosary (
|
||||
pk TEXT,
|
||||
word TEXT,
|
||||
desc_html TEXT
|
||||
);
|
||||
''')
|
||||
|
||||
f_glosary = xlsx_path("d_glorary.xlsx")
|
||||
df_glosary = pd.read_excel(f_glosary)
|
||||
df_glosary = pd.DataFrame(df_glosary)
|
||||
lst_glosary = []
|
||||
|
||||
for row in tqdm(range(df_glosary.shape[0])):
|
||||
pk = df_glosary['id_key_word'].iloc[row]
|
||||
word = df_glosary['word'].iloc[row]
|
||||
html_template = str(df_glosary['desc_html'].iloc[row])
|
||||
|
||||
lst_glosary.append(tuple([pk, word, html_template]))
|
||||
|
||||
cursor.executemany('INSERT INTO glosary (pk, word, desc_html) VALUES (?, ?, ?)', lst_glosary)
|
||||
del df_glosary
|
||||
print("✔️ glosary")
|
||||
|
||||
|
||||
# ######################################################
|
||||
# [4/5] CREAR LA TABLA DE about_me
|
||||
# ######################################################
|
||||
cursor.execute(
|
||||
'''
|
||||
CREATE TABLE about_me (
|
||||
about_me_html TEXT,
|
||||
lst_glosary TEXT
|
||||
);
|
||||
'''
|
||||
)
|
||||
|
||||
f_about_me = xlsx_path("c_about_me.xlsx")
|
||||
df_about_me = pd.read_excel(f_about_me)
|
||||
df_about_me = pd.DataFrame(df_about_me)
|
||||
lst_about_me = []
|
||||
|
||||
for index, row in tqdm(df_about_me.iterrows(), total=df_about_me.shape[0]):
|
||||
about_me_html = str(row['about_me_html'])
|
||||
lst_glosary = row['lst_glosary']
|
||||
lst_about_me.append(tuple([about_me_html,lst_glosary]))
|
||||
|
||||
cursor.executemany("INSERT INTO about_me (about_me_html, lst_glosary) VALUES (?, ?);", lst_about_me)
|
||||
|
||||
del df_about_me
|
||||
print("✔️ about_me")
|
||||
|
||||
# ######################################################
|
||||
# [5/5] CREAR TABLA DE EXTENSIONES
|
||||
# ######################################################
|
||||
cursor.execute(
|
||||
'''
|
||||
CREATE TABLE exts (
|
||||
pk TEXT,
|
||||
ext TEXT,
|
||||
name TEXT
|
||||
)
|
||||
'''
|
||||
)
|
||||
|
||||
f_exts = xlsx_path("e_ext.xlsx")
|
||||
df_exts = pd.read_excel(f_exts)
|
||||
df_exts = pd.DataFrame(df_exts)
|
||||
lst_exts = []
|
||||
|
||||
for row in tqdm(range(df_exts.shape[0])):
|
||||
pk = df_exts['pk'].iloc[row]
|
||||
ext = df_exts['ext'].iloc[row]
|
||||
name = str(df_exts['name'].iloc[row])
|
||||
|
||||
lst_exts.append(tuple([pk, ext, name]))
|
||||
|
||||
cursor.executemany("INSERT INTO exts (pk, ext, name) VALUES (?, ?, ?);", lst_exts)
|
||||
|
||||
del df_exts
|
||||
print("✔️ ext")
|
||||
|
||||
# ######################################################
|
||||
# Confirmar cambios y cerrar conexión
|
||||
# ######################################################
|
||||
conn.commit()
|
||||
conn.close()
|
||||
|
||||
print(f"DB '{db_name}' creada exitosamente.")
|
1
db_xala_dev/Files/svg/apache.svg
Normal file
After Width: | Height: | Size: 7.1 KiB |
28
db_xala_dev/Files/svg/data analytics.svg
Normal file
@ -0,0 +1,28 @@
|
||||
<?xml version="1.0" encoding="iso-8859-1"?>
|
||||
<!-- Uploaded to: SVG Repo, www.svgrepo.com, Generator: SVG Repo Mixer Tools -->
|
||||
<svg height="800px" width="800px" version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||
viewBox="0 0 512 512" xml:space="preserve">
|
||||
<path style="fill:#EDEDED;" d="M467.478,489.739H66.782c-24.588,0-44.522-19.934-44.522-44.522V44.522
|
||||
c0-12.295,9.966-22.261,22.261-22.261h422.956c12.295,0,22.261,9.966,22.261,22.261v422.957
|
||||
C489.739,479.773,479.773,489.739,467.478,489.739z"/>
|
||||
<path style="fill:#777777;" d="M509.555,487.294l-22.261,22.261c-1.631,1.629-3.768,2.445-5.904,2.445
|
||||
c-2.136,0-4.273-0.815-5.904-2.445c-3.26-3.26-3.26-8.546,0-11.805l8.011-8.011H52.869c-16.877,0-30.609-13.731-30.609-30.609
|
||||
V28.501l-8.009,8.011c-3.261,3.26-8.546,3.26-11.806,0s-3.26-8.546,0-11.805L24.706,2.445c3.261-3.26,8.546-3.26,11.806,0
|
||||
l22.261,22.261c3.26,3.26,3.26,8.546,0,11.805c-1.631,1.629-3.768,2.445-5.904,2.445s-4.273-0.815-5.904-2.445l-8.009-8.011v430.63
|
||||
c0,7.672,6.241,13.913,13.913,13.913h430.629l-8.011-8.011c-3.26-3.26-3.26-8.546,0-11.805c3.261-3.26,8.546-3.26,11.806,0
|
||||
l22.261,22.261C512.815,478.748,512.815,484.035,509.555,487.294z"/>
|
||||
<path style="fill:#B7441C;" d="M289.391,256c12.295,0,22.261,9.966,22.261,22.261c0,12.295-9.966,22.261-22.261,22.261
|
||||
s-22.261-9.966-22.261-22.261C267.13,265.966,277.096,256,289.391,256z M356.174,66.783c0,12.295,9.966,22.261,22.261,22.261
|
||||
c12.295,0,22.261-9.966,22.261-22.261s-9.966-22.261-22.261-22.261C366.14,44.522,356.174,54.488,356.174,66.783z"/>
|
||||
<path style="fill:#FF6029;" d="M400.695,122.435c12.295,0,22.261,9.966,22.261,22.261c0,12.295-9.966,22.261-22.261,22.261
|
||||
s-22.261-9.966-22.261-22.261C378.435,132.401,388.401,122.435,400.695,122.435z M467.478,22.261
|
||||
c0,12.295,9.966,22.261,22.261,22.261c12.295,0,22.261-9.966,22.261-22.261S502.034,0,489.739,0
|
||||
C477.444,0,467.478,9.966,467.478,22.261z"/>
|
||||
<path style="fill:#73A4BC;" d="M256,144.696c12.295,0,22.261,9.966,22.261,22.261s-9.966,22.261-22.261,22.261
|
||||
s-22.261-9.966-22.261-22.261S243.705,144.696,256,144.696z M155.826,367.304c0,12.295,9.966,22.261,22.261,22.261
|
||||
c12.295,0,22.261-9.966,22.261-22.261c0-12.295-9.966-22.261-22.261-22.261C165.792,345.043,155.826,355.01,155.826,367.304z"/>
|
||||
<path style="fill:#56889B;" d="M178.087,267.13c12.295,0,22.261,9.966,22.261,22.261c0,12.295-9.966,22.261-22.261,22.261
|
||||
c-12.295,0-22.261-9.966-22.261-22.261C155.826,277.097,165.792,267.13,178.087,267.13z M66.782,422.957
|
||||
c0,12.295,9.966,22.261,22.261,22.261s22.261-9.966,22.261-22.261c0-12.295-9.966-22.261-22.261-22.261
|
||||
S66.782,410.662,66.782,422.957z"/>
|
||||
</svg>
|
After Width: | Height: | Size: 2.6 KiB |
18
db_xala_dev/Files/svg/excel.svg
Normal file
@ -0,0 +1,18 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" x="0px" y="0px" width="100" height="100" viewBox="0 0 48 48">
|
||||
<path fill="#169154" d="M29,6H15.744C14.781,6,14,6.781,14,7.744v7.259h15V6z"></path>
|
||||
<path fill="#18482a" d="M14,33.054v7.202C14,41.219,14.781,42,15.743,42H29v-8.946H14z"></path>
|
||||
<path fill="#0c8045" d="M14 15.003H29V24.005000000000003H14z"></path>
|
||||
<path fill="#17472a" d="M14 24.005H29V33.055H14z"></path>
|
||||
<g>
|
||||
<path fill="#29c27f" d="M42.256,6H29v9.003h15V7.744C44,6.781,43.219,6,42.256,6z"></path>
|
||||
<path fill="#27663f" d="M29,33.054V42h13.257C43.219,42,44,41.219,44,40.257v-7.202H29z"></path>
|
||||
<path fill="#19ac65" d="M29 15.003H44V24.005000000000003H29z"></path>
|
||||
<path fill="#129652" d="M29 24.005H44V33.055H29z"></path>
|
||||
</g>
|
||||
<path fill="#0c7238"
|
||||
d="M22.319,34H5.681C4.753,34,4,33.247,4,32.319V15.681C4,14.753,4.753,14,5.681,14h16.638 C23.247,14,24,14.753,24,15.681v16.638C24,33.247,23.247,34,22.319,34z">
|
||||
</path>
|
||||
<path fill="#fff"
|
||||
d="M9.807 19L12.193 19 14.129 22.754 16.175 19 18.404 19 15.333 24 18.474 29 16.123 29 14.013 25.07 11.912 29 9.526 29 12.719 23.982z">
|
||||
</path>
|
||||
</svg>
|
After Width: | Height: | Size: 1.2 KiB |
5
db_xala_dev/Files/svg/git.svg
Normal file
@ -0,0 +1,5 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" x="0px" y="0px" width="100" height="100" viewBox="0 0 48 48">
|
||||
<path fill="#F4511E"
|
||||
d="M42.2,22.1L25.9,5.8C25.4,5.3,24.7,5,24,5c0,0,0,0,0,0c-0.7,0-1.4,0.3-1.9,0.8l-3.5,3.5l4.1,4.1c0.4-0.2,0.8-0.3,1.3-0.3c1.7,0,3,1.3,3,3c0,0.5-0.1,0.9-0.3,1.3l4,4c0.4-0.2,0.8-0.3,1.3-0.3c1.7,0,3,1.3,3,3s-1.3,3-3,3c-1.7,0-3-1.3-3-3c0-0.5,0.1-0.9,0.3-1.3l-4-4c-0.1,0-0.2,0.1-0.3,0.1v10.4c1.2,0.4,2,1.5,2,2.8c0,1.7-1.3,3-3,3s-3-1.3-3-3c0-1.3,0.8-2.4,2-2.8V18.8c-1.2-0.4-2-1.5-2-2.8c0-0.5,0.1-0.9,0.3-1.3l-4.1-4.1L5.8,22.1C5.3,22.6,5,23.3,5,24c0,0.7,0.3,1.4,0.8,1.9l16.3,16.3c0,0,0,0,0,0c0.5,0.5,1.2,0.8,1.9,0.8s1.4-0.3,1.9-0.8l16.3-16.3c0.5-0.5,0.8-1.2,0.8-1.9C43,23.3,42.7,22.6,42.2,22.1z">
|
||||
</path>
|
||||
</svg>
|
After Width: | Height: | Size: 748 B |
23
db_xala_dev/Files/svg/haproxy.svg
Normal file
@ -0,0 +1,23 @@
|
||||
<svg width="100" height="100" xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg" xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" id="svg2"
|
||||
sodipodi:docname="Load-Balancer-Yellow.svg" version="1.0" inkscape:version="0.92.2 (5c3e80d, 2017-08-06)"
|
||||
viewBox="0 0 500.000000 500.000000"
|
||||
inkscape:export-filename="/Users/duda/Creative Cloud Files/SOCKS-Proxy/Proxy-Yellow-Icon.png"
|
||||
inkscape:export-xdpi="24.576" inkscape:export-ydpi="24.576">
|
||||
|
||||
<g inkscape:groupmode="layer" id="layer1" inkscape:label="Layer 1">
|
||||
<rect
|
||||
style="display:inline;fill:#d69e19;fill-opacity:1;stroke:#000000;stroke-width:40.74585724;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
|
||||
id="rect4755" width="459.25415" height="459.25415" x="20.85112" y="19.89472" rx="5.4972277"
|
||||
ry="5.4972277" />
|
||||
<path
|
||||
style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
|
||||
d="m 233.86846,429.84856 c -7.51363,-3.7546 -14.16282,-10.4587 -17.89792,-18.0458 -2.85788,-5.8052 -2.95575,-6.3927 -2.61734,-15.711 0.28231,-7.7734 0.78362,-10.5621 2.54475,-14.1561 2.8645,-5.8455 9.20811,-12.8306 15.06661,-16.59 l 4.68393,-3.0056 v -16.6715 -16.6715 l -7.09525,-2.3856 c -24.40652,-8.206 -43.43389,-29.682 -47.75449,-53.90021 -0.69518,-3.8967 -1.28049,-8.7702 -1.3007,-10.8301 l -0.0367,-3.7453 -21.29715,-7.7171 c -32.04919,-11.6131 -43.3962,-15.4392 -43.99947,-14.8359 -0.30024,0.3002 1.67331,5.4944 4.38565,11.5427 5.91426,13.1881 6.43653,15.7721 4.3122,21.3345 -4.46151,11.68241 -20.37532,13.11681 -27.112792,2.444 -2.27035,-3.5965 -21.89442,-44.9284 -26.4429,-55.6936 -4.24172,-10.0392 -3.04754,-16.0768 4.14487,-20.9558 7.50377,-5.0902 52.739112,-26.023 62.142532,-28.7567 6.01281,-1.7479 8.93625,-1.0783 13.29437,3.0451 6.02171,5.6975 7.24447,13.53 3.09182,19.8051 -1.8767,2.8359 -4.38632,4.5579 -12.16562,8.3478 -5.39064,2.6261 -10.89255,5.1897 -12.22648,5.6969 -3.66013,1.3916 -2.96815,2.5011 2.9585,4.7438 14.10108,5.3359 51.59027,18.5552 54.18738,19.1074 2.73849,0.5823 3.23203,0.2346 7.77857,-5.4791 10.18211,-12.796 25.05508,-23.4526 37.28368,-26.714 l 3.97935,-1.0613 v -33.2032 c 0,-18.2617 -0.27116,-33.2031 -0.60257,-33.2031 -0.33142,0 -4.12286,3.3796 -8.42543,7.5102 -13.64812,13.1027 -19.21075,15.3598 -26.99253,10.9524 -5.60572,-3.175 -7.98638,-7.3247 -7.98638,-13.9211 v -5.4809 l 7.91106,-8.7593 c 10.85157,-12.0149 39.15032,-39.286499 44.4208,-42.808399 5.18234,-3.463 9.50186,-3.3263 14.98626,0.4744 1.93144,1.3385 14.05868,13.0667 26.94941,26.062699 25.46058,25.6685 26.57711,27.2206 24.67187,34.2961 -1.34142,4.9816 -6.11885,9.9059 -11.04134,11.3807 -6.66309,1.9964 -9.9223,0.3618 -21.60947,-10.8373 -5.62828,-5.3932 -10.49199,-9.8059 -10.80823,-9.8059 -0.31624,0 -0.57499,15.1521 -0.57499,33.6714 v 33.6713 l 3.97935,1.0613 c 2.18864,0.5837 7.77143,3.0141 12.4062,5.4008 9.26233,4.7697 20.33525,14.4559 25.89304,22.6502 1.72304,2.5405 3.57169,4.6299 4.1081,4.6431 1.33171,0.033 21.86773,-6.959 41.15897,-14.0136 8.75457,-3.2014 17.07609,-6.2392 18.49227,-6.7507 1.41618,-0.5115 2.57487,-1.2412 2.57487,-1.6217 0,-0.3804 -4.47344,-2.7381 -9.94098,-5.2393 -5.46753,-2.5012 -11.53022,-5.6989 -13.47264,-7.106 -4.26967,-3.0929 -7.09609,-9.5567 -6.18056,-14.1343 0.9286,-4.643 4.83484,-9.8484 8.97573,-11.9609 5.85053,-2.9847 9.44593,-1.8348 43.09007,13.7812 20.6097,9.566 30.32726,14.8259 33.14726,17.942 1.01739,1.1242 1.95382,3.8732 2.20308,6.4673 0.51366,5.3458 -1.86571,11.2942 -18.5607,46.4021 -12.46461,26.2117 -13.37,27.28741 -22.96824,27.28741 -4.45443,0 -6.47513,-0.46211 -8.44189,-1.93051 -4.2419,-3.167 -6.21387,-6.5532 -6.68763,-11.4838 -0.39727,-4.1345 0.14795,-6.0002 4.84492,-16.5788 2.91092,-6.556 5.09083,-12.1217 4.84423,-12.3683 -0.57336,-0.5733 -6.31706,1.3649 -38.60249,13.0267 l -26.34536,9.5162 -0.64386,6.6321 c -1.8265,18.81441 -8.33265,32.66061 -21.36204,45.46231 -7.34595,7.2175 -15.1869,12.1387 -25.70891,16.1355 l -7.7391,2.9397 0.002,16.9269 0.002,16.9269 4.1898,2.6469 c 5.35322,3.382 11.8974,10.6562 14.69252,16.3316 1.90117,3.8603 2.18147,5.8129 2.18147,15.197 0,10.2077 -0.14609,11.0326 -2.80895,15.8625 -3.82949,6.9459 -10.43148,13.3177 -17.41448,16.8071 -5.37243,2.6844 -6.56512,2.9105 -15.35702,2.9105 -8.7919,0 -9.98459,-0.2261 -15.35663,-2.9105 z m 32.9265,-131.7813 c 12.26536,-5.9173 20.82032,-17.2616 23.37447,-30.99571 3.15287,-16.9537 -6.77876,-35.5774 -23.33674,-43.7608 -6.1093,-3.0194 -8.06845,-3.5141 -15.28423,-3.859 -14.35901,-0.6866 -26.3247,4.5599 -35.17442,15.4226 -6.36041,7.8071 -8.30462,13.8937 -8.32753,26.0705 -0.0182,9.6661 0.16496,10.6886 2.97819,16.6276 4.13617,8.73181 11.18064,15.93661 19.42808,19.87021 8.26528,3.9422 9.20591,4.1188 20.64494,3.8777 8.43632,-0.1778 9.99019,-0.4999 15.69724,-3.2531 z"
|
||||
id="path4757" inkscape:connector-curvature="0" inkscape:export-xdpi="4.7399998"
|
||||
inkscape:export-ydpi="4.7399998" />
|
||||
</g>
|
||||
|
||||
</svg>
|
After Width: | Height: | Size: 5.2 KiB |
3
db_xala_dev/Files/svg/js.svg
Normal file
@ -0,0 +1,3 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" x="0px" y="0px" width="100" height="100" viewBox="0 0 48 48">
|
||||
<path fill="#ffd600" d="M6,42V6h36v36H6z"></path><path fill="#000001" d="M29.538 32.947c.692 1.124 1.444 2.201 3.037 2.201 1.338 0 2.04-.665 2.04-1.585 0-1.101-.726-1.492-2.198-2.133l-.807-.344c-2.329-.988-3.878-2.226-3.878-4.841 0-2.41 1.845-4.244 4.728-4.244 2.053 0 3.528.711 4.592 2.573l-2.514 1.607c-.553-.988-1.151-1.377-2.078-1.377-.946 0-1.545.597-1.545 1.377 0 .964.6 1.354 1.985 1.951l.807.344C36.452 29.645 38 30.839 38 33.523 38 36.415 35.716 38 32.65 38c-2.999 0-4.702-1.505-5.65-3.368L29.538 32.947zM17.952 33.029c.506.906 1.275 1.603 2.381 1.603 1.058 0 1.667-.418 1.667-2.043V22h3.333v11.101c0 3.367-1.953 4.899-4.805 4.899-2.577 0-4.437-1.746-5.195-3.368L17.952 33.029z"></path>
|
||||
</svg>
|
After Width: | Height: | Size: 806 B |
486
db_xala_dev/Files/svg/linux.svg
Normal file
@ -0,0 +1,486 @@
|
||||
<svg height="100" width="100" version="1.1" viewBox="0 0 216 256" xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<title>Tux</title>
|
||||
<defs id="tux_fx">
|
||||
<linearGradient id="gradient_belly_shadow">
|
||||
<stop offset="0" stop-color="#000000" />
|
||||
<stop offset="1" stop-color="#000000" stop-opacity="0.25" />
|
||||
</linearGradient>
|
||||
<linearGradient id="gradient_wing_tip_right_shadow">
|
||||
<stop offset="0" stop-color="#110800" />
|
||||
<stop offset="0.59" stop-color="#a65a00" stop-opacity="0.8" />
|
||||
<stop offset="1" stop-color="#ff921e" stop-opacity="0" />
|
||||
</linearGradient>
|
||||
<linearGradient id="gradient_wing_tip_right_glare_1">
|
||||
<stop offset="0" stop-color="#7c7c7c" />
|
||||
<stop offset="1" stop-color="#7c7c7c" stop-opacity="0.33" />
|
||||
</linearGradient>
|
||||
<linearGradient id="gradient_wing_tip_right_glare_2">
|
||||
<stop offset="0" stop-color="#7c7c7c" />
|
||||
<stop offset="1" stop-color="#7c7c7c" stop-opacity="0.33" />
|
||||
</linearGradient>
|
||||
<linearGradient id="gradient_foot_left_layer_1">
|
||||
<stop offset="0" stop-color="#b98309" />
|
||||
<stop offset="1" stop-color="#382605" />
|
||||
</linearGradient>
|
||||
<linearGradient id="gradient_foot_left_glare">
|
||||
<stop offset="0" stop-color="#ebc40c" />
|
||||
<stop offset="1" stop-color="#ebc40c" stop-opacity="0" />
|
||||
</linearGradient>
|
||||
<linearGradient id="gradient_foot_right_shadow">
|
||||
<stop offset="0" stop-color="#000000" />
|
||||
<stop offset="1" stop-color="#000000" stop-opacity="0" />
|
||||
</linearGradient>
|
||||
<linearGradient id="gradient_foot_right_layer_1">
|
||||
<stop offset="0" stop-color="#3e2a06" />
|
||||
<stop offset="1" stop-color="#ad780a" />
|
||||
</linearGradient>
|
||||
<linearGradient id="gradient_foot_right_glare">
|
||||
<stop offset="0" stop-color="#f3cd0c" />
|
||||
<stop offset="1" stop-color="#f3cd0c" stop-opacity="0" />
|
||||
</linearGradient>
|
||||
<linearGradient id="gradient_eyeball">
|
||||
<stop offset="0" stop-color="#fefefc" />
|
||||
<stop offset="0.75" stop-color="#fefefc" />
|
||||
<stop offset="1" stop-color="#d4d4d4" />
|
||||
</linearGradient>
|
||||
<linearGradient id="gradient_pupil_left_glare">
|
||||
<stop offset="0" stop-color="#757574" stop-opacity="0" />
|
||||
<stop offset="0.25" stop-color="#757574" />
|
||||
<stop offset="0.5" stop-color="#757574" />
|
||||
<stop offset="1" stop-color="#757574" stop-opacity="0" />
|
||||
</linearGradient>
|
||||
<linearGradient id="gradient_pupil_right_glare_2">
|
||||
<stop offset="0" stop-color="#949494" stop-opacity="0.39" />
|
||||
<stop offset="0.5" stop-color="#949494" />
|
||||
<stop offset="1" stop-color="#949494" stop-opacity="0.39" />
|
||||
</linearGradient>
|
||||
<linearGradient id="gradient_eyelid_left">
|
||||
<stop offset="0" stop-color="#c8c8c8" />
|
||||
<stop offset="1" stop-color="#797978" />
|
||||
</linearGradient>
|
||||
<linearGradient id="gradient_eyelid_right">
|
||||
<stop offset="0" stop-color="#747474" />
|
||||
<stop offset="0.13" stop-color="#8c8c8c" />
|
||||
<stop offset="0.25" stop-color="#a4a4a4" />
|
||||
<stop offset="0.5" stop-color="#d4d4d4" />
|
||||
<stop offset="0.62" stop-color="#d4d4d4" />
|
||||
<stop offset="1" stop-color="#7c7c7c" />
|
||||
</linearGradient>
|
||||
<linearGradient id="gradient_eyebrow">
|
||||
<stop offset="0" stop-color="#646464" stop-opacity="0" />
|
||||
<stop offset="0.31" stop-color="#646464" stop-opacity="0.58" />
|
||||
<stop offset="0.47" stop-color="#646464" />
|
||||
<stop offset="0.73" stop-color="#646464" stop-opacity="0.26" />
|
||||
<stop offset="1" stop-color="#646464" stop-opacity="0" />
|
||||
</linearGradient>
|
||||
<linearGradient id="gradient_beak_base">
|
||||
<stop offset="0" stop-color="#020204" />
|
||||
<stop offset="0.73" stop-color="#020204" />
|
||||
<stop offset="1" stop-color="#5c5c5c" />
|
||||
</linearGradient>
|
||||
<linearGradient id="gradient_mandible_lower">
|
||||
<stop offset="0" stop-color="#d2940a" />
|
||||
<stop offset="0.75" stop-color="#d89c08" />
|
||||
<stop offset="0.87" stop-color="#b67e07" />
|
||||
<stop offset="1" stop-color="#946106" />
|
||||
</linearGradient>
|
||||
<linearGradient id="gradient_mandible_upper">
|
||||
<stop offset="0" stop-color="#ad780a" />
|
||||
<stop offset="0.12" stop-color="#d89e08" />
|
||||
<stop offset="0.25" stop-color="#edb80b" />
|
||||
<stop offset="0.39" stop-color="#ebc80d" />
|
||||
<stop offset="0.53" stop-color="#f5d838" />
|
||||
<stop offset="0.77" stop-color="#f6d811" />
|
||||
<stop offset="1" stop-color="#f5cd31" />
|
||||
</linearGradient>
|
||||
<linearGradient id="gradient_nares">
|
||||
<stop offset="0" stop-color="#3a2903" />
|
||||
<stop offset="0.55" stop-color="#735208" />
|
||||
<stop offset="1" stop-color="#ac8c04" />
|
||||
</linearGradient>
|
||||
<linearGradient id="gradient_beak_corner">
|
||||
<stop offset="0" stop-color="#f5ce2d" />
|
||||
<stop offset="1" stop-color="#d79b08" />
|
||||
</linearGradient>
|
||||
<radialGradient id="fill_belly_shadow_left" href="#gradient_belly_shadow" xlink:href="#gradient_belly_shadow"
|
||||
gradientUnits="userSpaceOnUse" cx="0" cy="0" r="1"
|
||||
gradientTransform="translate(61.18,121.19) scale(19,18)" />
|
||||
<radialGradient id="fill_belly_shadow_right" href="#gradient_belly_shadow" xlink:href="#gradient_belly_shadow"
|
||||
gradientUnits="userSpaceOnUse" cx="0" cy="0" r="1"
|
||||
gradientTransform="translate(125.74,131.6) scale(23.6,18)" />
|
||||
<radialGradient id="fill_belly_shadow_middle" href="#gradient_belly_shadow"
|
||||
xlink:href="#gradient_belly_shadow" gradientUnits="userSpaceOnUse" cx="0" cy="0" r="1"
|
||||
gradientTransform="translate(94.21,127.47) scale(9.35,10)" />
|
||||
<linearGradient id="fill_foot_left_base" href="#gradient_foot_left_layer_1"
|
||||
xlink:href="#gradient_foot_left_layer_1" gradientUnits="userSpaceOnUse" x1="23.18" y1="193.01" x2="64.31"
|
||||
y2="262.02" />
|
||||
<linearGradient id="fill_foot_left_glare" href="#gradient_foot_left_glare"
|
||||
xlink:href="#gradient_foot_left_glare" gradientUnits="userSpaceOnUse" x1="64.47" y1="210.83" x2="77.41"
|
||||
y2="235.21" />
|
||||
<linearGradient id="fill_foot_right_shadow" href="#gradient_foot_right_shadow"
|
||||
xlink:href="#gradient_foot_right_shadow" gradientUnits="userSpaceOnUse" x1="146.93" y1="211.96" x2="150.2"
|
||||
y2="235.73" />
|
||||
<linearGradient id="fill_foot_right_base" href="#gradient_foot_right_layer_1"
|
||||
xlink:href="#gradient_foot_right_layer_1" gradientUnits="userSpaceOnUse" x1="151.5" y1="253.02" x2="192.94"
|
||||
y2="185.84" />
|
||||
<linearGradient id="fill_foot_right_glare" href="#gradient_foot_right_glare"
|
||||
xlink:href="#gradient_foot_right_glare" gradientUnits="userSpaceOnUse" x1="162.81" y1="180.67" x2="161.59"
|
||||
y2="191.64" />
|
||||
<radialGradient id="fill_wing_tip_right_shadow_lower" href="#gradient_wing_tip_right_shadow"
|
||||
xlink:href="#gradient_wing_tip_right_shadow" gradientUnits="userSpaceOnUse" cx="0" cy="0" r="1"
|
||||
gradientTransform="translate(169.71,194.53) rotate(15) scale(19.66,20.64)" />
|
||||
<radialGradient id="fill_wing_tip_right_shadow_upper" href="#gradient_wing_tip_right_shadow"
|
||||
xlink:href="#gradient_wing_tip_right_shadow" gradientUnits="userSpaceOnUse" cx="0" cy="0" r="1"
|
||||
gradientTransform="translate(169.71,189.89) rotate(-2.42) scale(19.74,14.86)" />
|
||||
<radialGradient id="fill_wing_tip_right_glare_1" href="#gradient_wing_tip_right_glare_1"
|
||||
xlink:href="#gradient_wing_tip_right_glare_1" gradientUnits="userSpaceOnUse" cx="0" cy="0" r="1"
|
||||
gradientTransform="translate(184.65,176.62) rotate(23.5) scale(6.95,3.21)" />
|
||||
<linearGradient id="fill_wing_tip_right_glare_2" href="#gradient_wing_tip_right_glare_2"
|
||||
xlink:href="#gradient_wing_tip_right_glare_2" gradientUnits="userSpaceOnUse" x1="165.69" y1="173.58"
|
||||
x2="168.27" y2="173.47" />
|
||||
<radialGradient id="fill_eyeball_left" href="#gradient_eyeball" xlink:href="#gradient_eyeball"
|
||||
gradientUnits="userSpaceOnUse" cx="0" cy="0" r="1"
|
||||
gradientTransform="translate(86.49,51.41) rotate(-0.6) scale(10.24,15.68)" />
|
||||
<linearGradient id="fill_pupil_left_glare" href="#gradient_pupil_left_glare"
|
||||
xlink:href="#gradient_pupil_left_glare" gradientUnits="userSpaceOnUse" x1="84.29" y1="46.64" x2="89.32"
|
||||
y2="55.63" />
|
||||
<radialGradient id="fill_eyelid_left" href="#gradient_eyelid_left" xlink:href="#gradient_eyelid_left"
|
||||
gradientUnits="userSpaceOnUse" cx="0" cy="0" r="1"
|
||||
gradientTransform="translate(84.89,43.74) rotate(-9.35) scale(6.25,5.77)" />
|
||||
<linearGradient id="fill_eyebrow_left" href="#gradient_eyebrow" xlink:href="#gradient_eyebrow"
|
||||
gradientUnits="userSpaceOnUse" x1="83.59" y1="32.51" x2="94.48" y2="43.63" />
|
||||
<radialGradient id="fill_eyeball_right" href="#gradient_eyeball" xlink:href="#gradient_eyeball"
|
||||
gradientUnits="userSpaceOnUse" cx="0" cy="0" r="1"
|
||||
gradientTransform="translate(118.06,51.41) rotate(-1.8) scale(13.64,15.68)" />
|
||||
<linearGradient id="fill_pupil_right_glare" href="#gradient_pupil_right_glare_2"
|
||||
xlink:href="#gradient_pupil_right_glare_2" gradientUnits="userSpaceOnUse" x1="117.87" y1="47.25" x2="123.66"
|
||||
y2="54.11" />
|
||||
<linearGradient id="fill_eyelid_right" href="#gradient_eyelid_right" xlink:href="#gradient_eyelid_right"
|
||||
gradientUnits="userSpaceOnUse" x1="112.9" y1="36.23" x2="131.32" y2="47.01" />
|
||||
<linearGradient id="fill_eyebrow_right" href="#gradient_eyebrow" xlink:href="#gradient_eyebrow"
|
||||
gradientUnits="userSpaceOnUse" x1="119.16" y1="31.56" x2="131.42" y2="43.14" />
|
||||
<radialGradient id="fill_beak_base" href="#gradient_beak_base" xlink:href="#gradient_beak_base"
|
||||
gradientUnits="userSpaceOnUse" cx="0" cy="0" r="1"
|
||||
gradientTransform="translate(97.64,60.12) rotate(-36) scale(11.44,10.38)" />
|
||||
<radialGradient id="fill_mandible_lower_base" href="#gradient_mandible_lower"
|
||||
xlink:href="#gradient_mandible_lower" gradientUnits="userSpaceOnUse" cx="0" cy="0" r="1"
|
||||
gradientTransform="translate(109.77,70.61) rotate(-22.4) scale(27.15,19.07)" />
|
||||
<linearGradient id="fill_mandible_upper_base" href="#gradient_mandible_upper"
|
||||
xlink:href="#gradient_mandible_upper" gradientUnits="userSpaceOnUse" x1="78.09" y1="69.26" x2="126.77"
|
||||
y2="68.88" />
|
||||
<radialGradient id="fill_naris_left" href="#gradient_nares" xlink:href="#gradient_nares"
|
||||
gradientUnits="userSpaceOnUse" cx="0" cy="0" r="1"
|
||||
gradientTransform="translate(92.11,59.88) scale(1.32,1.42)" />
|
||||
<radialGradient id="fill_naris_right" href="#gradient_nares" xlink:href="#gradient_nares"
|
||||
gradientUnits="userSpaceOnUse" cx="0" cy="0" r="1"
|
||||
gradientTransform="translate(104.65,59.7) scale(2.78,1.62)" />
|
||||
<linearGradient id="fill_beak_corner" href="#gradient_beak_corner" xlink:href="#gradient_beak_corner"
|
||||
gradientUnits="userSpaceOnUse" x1="126.74" y1="67.49" x2="126.74" y2="71.09" />
|
||||
<filter id="blur_belly_shadow_left">
|
||||
<feGaussianBlur stdDeviation="0.64 0.55" />
|
||||
</filter>
|
||||
<filter id="blur_belly_shadow_right">
|
||||
<feGaussianBlur stdDeviation="0.98" />
|
||||
</filter>
|
||||
<filter id="blur_belly_shadow_middle">
|
||||
<feGaussianBlur stdDeviation="0.68" />
|
||||
</filter>
|
||||
<filter id="blur_belly_shadow_lower" x="-0.8" width="2.6" y="-0.2" height="1.4">
|
||||
<feGaussianBlur stdDeviation="1.25" />
|
||||
</filter>
|
||||
<filter id="blur_belly_glare" x="-0.8" width="2.6" y="-0.5" height="2">
|
||||
<feGaussianBlur stdDeviation="1.78 2.19" />
|
||||
</filter>
|
||||
<filter id="blur_head_glare" x="-0.3" width="1.6" y="-0.3" height="1.6">
|
||||
<feGaussianBlur stdDeviation="1.73" />
|
||||
</filter>
|
||||
<filter id="blur_neck_glare" x="-0.2" width="1.4" y="-0.2" height="1.4">
|
||||
<feGaussianBlur stdDeviation="0.78" />
|
||||
</filter>
|
||||
<filter id="blur_wing_left_glare" x="-0.2" width="1.4" y="-0.2" height="1.4">
|
||||
<feGaussianBlur stdDeviation="0.98" />
|
||||
</filter>
|
||||
<filter id="blur_wing_right_glare" x="-0.2" width="1.4" y="-0.2" height="1.4">
|
||||
<feGaussianBlur stdDeviation="1.19 1.17" />
|
||||
</filter>
|
||||
<filter id="blur_foot_left_layer_1" x="-0.2" width="1.4" y="-0.2" height="1.4">
|
||||
<feGaussianBlur stdDeviation="3.38" />
|
||||
</filter>
|
||||
<filter id="blur_foot_left_layer_2">
|
||||
<feGaussianBlur stdDeviation="2.1 2.06" />
|
||||
</filter>
|
||||
<filter id="blur_foot_left_glare">
|
||||
<feGaussianBlur stdDeviation="0.32" />
|
||||
</filter>
|
||||
<filter id="blur_foot_right_shadow">
|
||||
<feGaussianBlur stdDeviation="1.95 1.9" />
|
||||
</filter>
|
||||
<filter id="blur_foot_right_layer_1" x="-0.2" width="1.4" y="-0.2" height="1.4">
|
||||
<feGaussianBlur stdDeviation="4.12" />
|
||||
</filter>
|
||||
<filter id="blur_foot_right_layer_2" x="-0.2" width="1.4" y="-0.2" height="1.4">
|
||||
<feGaussianBlur stdDeviation="3.12 3.37" />
|
||||
</filter>
|
||||
<filter id="blur_foot_right_glare" x="-0.2" width="1.4" y="-0.2" height="1.4">
|
||||
<feGaussianBlur stdDeviation="0.41" />
|
||||
</filter>
|
||||
<filter id="blur_wing_tip_right_shadow_lower" x="-0.3" width="1.6" y="-0.3" height="1.6">
|
||||
<feGaussianBlur stdDeviation="2.45" />
|
||||
</filter>
|
||||
<filter id="blur_wing_tip_right_shadow_upper" x="-0.2" width="1.4" y="-0.2" height="1.4">
|
||||
<feGaussianBlur stdDeviation="1.12 0.81" />
|
||||
</filter>
|
||||
<filter id="blur_wing_tip_right_glare" x="-0.2" width="1.4" y="-0.2" height="1.4">
|
||||
<feGaussianBlur stdDeviation="0.88" />
|
||||
</filter>
|
||||
<filter id="blur_pupil_left_glare" x="-0.3" width="1.6" y="-0.3" height="1.6">
|
||||
<feGaussianBlur stdDeviation="0.44" />
|
||||
</filter>
|
||||
<filter id="blur_eyebrow_left">
|
||||
<feGaussianBlur stdDeviation="0.12" />
|
||||
</filter>
|
||||
<filter id="blur_pupil_right_glare" x="-0.2" width="1.4" y="-0.2" height="1.4">
|
||||
<feGaussianBlur stdDeviation="0.45" />
|
||||
</filter>
|
||||
<filter id="blur_eyebrow_right">
|
||||
<feGaussianBlur stdDeviation="0.13" />
|
||||
</filter>
|
||||
<filter id="blur_beak_shadow_lower" x="-0.2" width="1.4" y="-0.2" height="1.4">
|
||||
<feGaussianBlur stdDeviation="1.75" />
|
||||
</filter>
|
||||
<filter id="blur_beak_shadow_upper">
|
||||
<feGaussianBlur stdDeviation="0.8 0.74" />
|
||||
</filter>
|
||||
<filter id="blur_mandible_lower_glare" x="-0.2" width="1.4" y="-0.2" height="1.4">
|
||||
<feGaussianBlur stdDeviation="0.77" />
|
||||
</filter>
|
||||
<filter id="blur_mandible_upper_shadow">
|
||||
<feGaussianBlur stdDeviation="0.65" />
|
||||
</filter>
|
||||
<filter id="blur_mandible_upper_glare" x="-0.2" width="1.4" y="-0.2" height="1.4">
|
||||
<feGaussianBlur stdDeviation="0.73" />
|
||||
</filter>
|
||||
<filter id="blur_naris_left" x="-0.2" width="1.4" y="-0.2" height="1.4">
|
||||
<feGaussianBlur stdDeviation="0.1" />
|
||||
</filter>
|
||||
<filter id="blur_naris_right">
|
||||
<feGaussianBlur stdDeviation="0.1" />
|
||||
</filter>
|
||||
<filter id="blur_beak_corner" x="-0.2" width="1.4" y="-0.2" height="1.4">
|
||||
<feGaussianBlur stdDeviation="0.23" />
|
||||
</filter>
|
||||
<clipPath id="clip_body">
|
||||
<use href="#body_base" xlink:href="#body_base" />
|
||||
</clipPath>
|
||||
<clipPath id="clip_wing_left">
|
||||
<use href="#wing_left_base" xlink:href="#wing_left_base" />
|
||||
</clipPath>
|
||||
<clipPath id="clip_wing_right">
|
||||
<use href="#wing_right_base" xlink:href="#wing_right_base" />
|
||||
</clipPath>
|
||||
<clipPath id="clip_foot_left">
|
||||
<use href="#foot_left_base" xlink:href="#foot_left_base" />
|
||||
</clipPath>
|
||||
<clipPath id="clip_foot_right">
|
||||
<use href="#foot_right_base" xlink:href="#foot_right_base" />
|
||||
</clipPath>
|
||||
<clipPath id="clip_wing_tip_right">
|
||||
<use href="#wing_tip_right_base" xlink:href="#wing_tip_right_base" />
|
||||
</clipPath>
|
||||
<clipPath id="clip_eye_left">
|
||||
<use href="#eyeball_left" xlink:href="#eyeball_left" />
|
||||
</clipPath>
|
||||
<clipPath id="clip_pupil_left">
|
||||
<use href="#pupil_left_base" xlink:href="#pupil_left_base" />
|
||||
</clipPath>
|
||||
<clipPath id="clip_eye_right">
|
||||
<use href="#eyeball_right" xlink:href="#eyeball_right" />
|
||||
</clipPath>
|
||||
<clipPath id="clip_pupil_right">
|
||||
<use href="#pupil_right_base" xlink:href="#pupil_right_base" />
|
||||
</clipPath>
|
||||
<clipPath id="clip_mandible_lower">
|
||||
<use href="#mandible_lower_base" xlink:href="#mandible_lower_base" />
|
||||
</clipPath>
|
||||
<clipPath id="clip_mandible_upper">
|
||||
<use href="#mandible_upper_base" xlink:href="#mandible_upper_base" />
|
||||
</clipPath>
|
||||
<clipPath id="clip_beak">
|
||||
<use href="#mandible_lower_base" xlink:href="#mandible_lower_base" />
|
||||
<use href="#mandible_upper_base" xlink:href="#mandible_upper_base" />
|
||||
</clipPath>
|
||||
</defs>
|
||||
<g id="tux">
|
||||
<g id="body">
|
||||
<path id="body_base" fill="#020204"
|
||||
d="m 106.95,0 c -6,0 -12.02,1.18 -17.46,4.12 -5.78,3.11 -10.52,8.09 -13.43,13.97 -2.92,5.88 -4.06,12.16 -4.24,19.08 -0.33,13.14 0.3,26.92 1.29,39.41 0.26,3.8 0.74,6.02 0.25,9.93 -1.62,8.3 -8.88,13.88 -12.76,21.17 -4.27,8.04 -6.07,17.13 -9.29,25.65 -2.95,7.79 -7.09,15.1 -9.88,22.95 -3.91,10.97 -5.08,23.03 -2.5,34.39 1.97,8.66 6.08,16.78 11.62,23.73 -0.8,1.44 -1.58,2.91 -2.4,4.34 -2.57,4.43 -5.71,8.64 -7.17,13.55 -0.73,2.45 -1.02,5.07 -0.55,7.59 0.47,2.52 1.75,4.93 3.75,6.53 1.31,1.04 2.9,1.72 4.53,2.1 1.63,0.37 3.32,0.46 5,0.43 6.37,-0.14 12.55,-2.07 18.71,-3.69 3.66,-0.96 7.34,-1.81 11.03,-2.58 13.14,-2.69 27.8,-1.61 39.99,0.15 4.13,0.63 8.23,1.44 12.29,2.43 6.36,1.54 12.69,3.5 19.23,3.69 1.72,0.05 3.46,-0.03 5.14,-0.4 1.68,-0.38 3.31,-1.06 4.65,-2.13 2.01,-1.6 3.29,-4.02 3.76,-6.54 0.47,-2.52 0.18,-5.15 -0.56,-7.61 -1.48,-4.92 -4.65,-9.11 -7.27,-13.52 -1.04,-1.75 -2,-3.53 -3.03,-5.28 7.9,-8.87 14.26,-19.13 17.94,-30.4 4.01,-12.3 4.75,-25.55 3.06,-38.38 -1.69,-12.83 -5.76,-25.27 -11.11,-37.05 -6.72,-14.76 -12.37,-20.1 -16.47,-33.07 -4.42,-14.02 -0.77,-30.61 -4.06,-43.32 -1.17,-4.32 -3.04,-8.45 -5.45,-12.23 -2.82,-4.43 -6.4,-8.39 -10.65,-11.47 -6.78,-4.92 -15.3,-7.54 -23.96,-7.54 z" />
|
||||
<path id="belly" fill="#fdfdfb"
|
||||
d="m 83.13,74 c -0.9,1.13 -1.48,2.49 -1.84,3.89 -0.35,1.4 -0.48,2.85 -0.54,4.3 -0.11,2.89 0.07,5.83 -0.7,8.62 -0.82,2.98 -2.65,5.57 -4.44,8.08 -3.11,4.36 -6.25,8.84 -7.78,13.97 -0.93,3.1 -1.24,6.39 -0.91,9.62 -3.47,5.1 -6.48,10.53 -8.98,16.18 -3.78,8.57 -6.37,17.69 -7.28,27.01 -1.12,11.41 0.34,23.15 4.85,33.69 3.25,7.63 8.11,14.6 14.38,20.04 3.18,2.76 6.72,5.11 10.5,6.97 13.11,6.45 29.31,6.46 42.2,-0.41 6.74,-3.59 12.43,-8.84 17.91,-14.15 3.3,-3.2 6.59,-6.48 9.11,-10.32 4.85,-7.41 6.54,-16.41 7.59,-25.2 1.83,-15.36 1.89,-31.6 -4.85,-45.53 -2.32,-4.8 -5.41,-9.22 -9.12,-13.05 -0.98,-6.7 -2.93,-13.27 -5.76,-19.42 -2.05,-4.45 -4.54,-8.68 -6.44,-13.18 -0.78,-1.85 -1.46,-3.75 -2.32,-5.56 -0.87,-1.81 -1.93,-3.55 -3.39,-4.94 -1.48,-1.42 -3.33,-2.43 -5.28,-3.07 -1.95,-0.65 -4.01,-0.94 -6.06,-1.04 -4.11,-0.21 -8.22,0.33 -12.33,0.16 -3.27,-0.13 -6.53,-0.7 -9.8,-0.51 -1.63,0.1 -3.26,0.39 -4.78,1.01 -1.52,0.61 -2.92,1.56 -3.94,2.84 z" />
|
||||
<g id="body_self_shadows">
|
||||
<path id="belly_shadow_left" opacity="0.25" fill="url(#fill_belly_shadow_left)"
|
||||
filter="url(#blur_belly_shadow_left)" clip-path="url(#clip_body)"
|
||||
d="m 68.67,115.18 c 0.87,1.31 -0.55,5.84 19.86,2.94 0,0 -3.59,0.39 -7.12,1.21 -5.49,1.84 -10.27,3.89 -13.97,6.61 -3.65,2.7 -6.33,6.21 -9.68,9.22 0,0 5.43,-9.92 6.78,-12.91 1.36,-2.99 -0.22,-2.85 0.85,-7.25 1.07,-4.4 3.69,-8.63 3.69,-8.63 0,0 -2.14,6.22 -0.41,8.81 z" />
|
||||
<path id="belly_shadow_right" opacity="0.42" fill="url(#fill_belly_shadow_right)"
|
||||
filter="url(#blur_belly_shadow_right)" clip-path="url(#clip_body)"
|
||||
d="m 134.28,113.99 c -4.16,2.9 -6.6,2.56 -11.64,3.12 -5.05,0.57 -18.7,0.36 -18.7,0.36 0,0 1.97,-0.03 6.36,0.78 4.38,0.82 13.31,1.6 18.34,3.51 5.04,1.92 6.87,2.47 9.93,4.4 4.35,2.75 7.55,7.06 11.71,10.08 0,0 0.2,-4 -1.48,-6.99 -1.68,-2.99 -6.2,-7.7 -7.53,-12.1 -1.32,-4.4 -1.96,-13.04 -1.96,-13.04 0,0 -0.88,6.99 -5.03,9.88 z" />
|
||||
<path id="belly_shadow_middle" opacity="0.2" fill="url(#fill_belly_shadow_middle)"
|
||||
filter="url(#blur_belly_shadow_middle)" clip-path="url(#clip_body)"
|
||||
d="m 95.17,107.81 c -0.16,1.25 -0.36,2.5 -0.6,3.74 -0.12,0.61 -0.26,1.22 -0.48,1.8 -0.23,0.58 -0.56,1.14 -1.02,1.55 -0.41,0.37 -0.9,0.62 -1.4,0.85 -1.94,0.88 -4.01,1.47 -6.12,1.74 0.84,0.06 1.68,0.14 2.53,0.23 0.53,0.06 1.06,0.12 1.57,0.25 0.52,0.14 1.03,0.34 1.46,0.65 0.47,0.35 0.84,0.82 1.12,1.34 0.55,1.02 0.73,2.2 0.83,3.37 0.13,1.48 0.14,2.98 0.03,4.46 0.1,-0.99 0.31,-1.98 0.62,-2.92 0.57,-1.72 1.47,-3.32 2.69,-4.65 0.49,-0.52 1.02,-1.01 1.6,-1.42 1.79,-1.26 4.07,-1.81 6.24,-1.51 -2.21,0.09 -4.44,-0.6 -6.2,-1.93 -0.9,-0.68 -1.68,-1.52 -2.22,-2.5 -0.84,-1.52 -1.08,-3.37 -0.65,-5.05 z" />
|
||||
<path id="belly_shadow_lower" opacity="0.11" fill="#000000" filter="url(#blur_belly_shadow_lower)"
|
||||
clip-path="url(#clip_body)"
|
||||
d="m 89.85,137.14 c -1.06,4.03 -1.79,8.15 -2.17,12.31 -0.55,5.87 -0.42,11.78 -0.74,17.67 -0.26,4.99 -0.85,10.04 0.02,14.97 0.41,2.35 1.15,4.64 2.2,6.78 0.16,-0.82 0.29,-1.64 0.36,-2.47 0.37,-4 -0.3,-8.01 -0.53,-12.01 -0.4,-7.02 0.57,-14.04 0.97,-21.06 0.3,-5.39 0.27,-10.8 -0.11,-16.19 z" />
|
||||
</g>
|
||||
<g id="body_glare">
|
||||
<path id="belly_glare" opacity="0.75" fill="#7c7c7c" filter="url(#blur_belly_glare)"
|
||||
clip-path="url(#clip_body)"
|
||||
d="m 160.08,131.23 c 1.03,-0.16 7.34,5.21 6.48,7.21 -0.86,1.99 -2.49,0.79 -3.65,0.8 -1.16,0.02 -4.33,1.46 -4.86,0.55 -0.54,-0.91 1.4,-3.03 2.41,-4.81 0.82,-1.43 -1.4,-3.59 -0.38,-3.75 z" />
|
||||
<path id="head_glare" fill="#7c7c7c" filter="url(#blur_head_glare)" clip-path="url(#clip_body)"
|
||||
d="m 121.52,11.12 c -2.21,1.56 -1.25,3.51 -0.3,5.46 0.95,1.96 -2.09,7.59 -2.12,7.83 -0.03,0.24 5.98,-2.85 7.62,-4.87 1.94,-2.37 6.83,3.22 6.56,2.37 0.01,-1.52 -9.55,-12.34 -11.76,-10.79 z" />
|
||||
<path id="neck_glare" fill="#838384" filter="url(#blur_neck_glare)" clip-path="url(#clip_body)"
|
||||
d="m 138.27,76.63 c -1.86,1.7 0.88,4.25 2.17,7.24 0.81,1.86 3.04,4.49 5.2,4.07 1.63,-0.32 2.63,-2.66 2.48,-4.3 -0.3,-3.18 -2.98,-3.93 -4.93,-5.02 -1.54,-0.86 -3.61,-3.18 -4.92,-1.99 z" />
|
||||
</g>
|
||||
</g>
|
||||
<g id="wings">
|
||||
<g id="wing_left">
|
||||
<path id="wing_left_base" fill="#020204"
|
||||
d="m 63.98,100.91 c -6.1,6.92 -12.37,13.63 -15.81,21.12 -1.71,3.8 -2.51,7.93 -3.68,11.93 -1.32,4.54 -3.12,8.94 -5.14,13.22 -1.87,3.95 -3.93,7.81 -5.98,11.66 -1.5,2.81 -3.02,5.67 -3.54,8.81 -0.41,2.48 -0.18,5.04 0.46,7.47 0.63,2.43 1.64,4.75 2.79,6.98 4.88,9.55 12.21,17.77 20.89,24.07 3.94,2.85 8.15,5.32 12.58,7.35 2.4,1.09 4.92,2.07 7.56,2.11 1.32,0.03 2.65,-0.19 3.86,-0.72 1.2,-0.53 2.28,-1.38 3,-2.49 0.88,-1.36 1.18,-3.05 1,-4.66 -0.18,-1.61 -0.81,-3.15 -1.65,-4.53 -2.06,-3.38 -5.31,-5.83 -8.44,-8.25 -6.76,-5.23 -13.29,-10.76 -19.55,-16.58 -1.76,-1.65 -3.53,-3.34 -4.76,-5.42 -1.2,-2.02 -1.85,-4.32 -2.29,-6.63 -1.21,-6.33 -0.9,-12.99 1.25,-19.07 0.85,-2.38 1.96,-4.65 3.04,-6.93 1.86,-3.95 3.62,-7.98 6.07,-11.6 3.05,-4.51 7.13,-8.33 9.61,-13.17 2.1,-4.09 2.95,-8.68 3.76,-13.2 0.64,-3.54 1.85,-7 2.47,-10.54 -1.21,2.3 -5.11,6.07 -7.5,9.07 z" />
|
||||
<path id="wing_left_glare" opacity="0.95" fill="#7c7c7c" filter="url(#blur_wing_left_glare)"
|
||||
clip-path="url(#clip_wing_left)"
|
||||
d="m 56.96,126.1 c -2,1.84 -3.73,3.97 -5.13,6.31 -2.3,3.84 -3.65,8.16 -5.33,12.31 -1.24,3.09 -2.69,6.2 -2.86,9.53 -0.09,1.71 0.16,3.42 0.22,5.13 0.06,1.71 -0.1,3.49 -0.94,4.98 -0.7,1.25 -1.87,2.23 -3.22,2.71 1.83,0.61 3.45,1.79 4.6,3.33 0.96,1.3 1.58,2.81 2.41,4.18 0.68,1.12 1.51,2.16 2.54,2.97 1.02,0.82 2.25,1.4 3.54,1.56 1.79,0.23 3.65,-0.36 4.97,-1.58 -1.66,-15.55 -0.14,-31.42 4.44,-46.37 0.29,-0.94 0.59,-1.89 0.67,-2.87 0.07,-0.99 -0.12,-2.03 -0.72,-2.81 -0.31,-0.42 -0.74,-0.75 -1.23,-0.96 -0.48,-0.2 -1.02,-0.28 -1.54,-0.21 -0.52,0.06 -1.03,0.26 -1.45,0.57 -0.42,0.32 -0.76,0.74 -0.97,1.22 z" />
|
||||
</g>
|
||||
<g id="wing_right">
|
||||
<path id="wing_right_base" fill="#020204"
|
||||
d="m 162.76,127.12 c 5.24,4.22 8.57,10.59 9.6,17.24 0.8,5.18 0.28,10.51 -0.89,15.62 -1.17,5.12 -2.97,10.06 -4.77,15 -0.71,1.96 -1.43,3.95 -1.71,6.02 -0.29,2.08 -0.11,4.27 0.89,6.11 1.15,2.11 3.29,3.56 5.59,4.24 2.27,0.68 4.72,0.66 7.02,0.09 2.3,-0.57 6.17,-1.31 8.04,-2.77 4.75,-3.69 5.88,-10.1 7.01,-15.72 1.17,-5.87 0.6,-12.02 -0.43,-17.95 -1.41,-8.09 -3.78,-15.99 -6.79,-23.62 -2.22,-5.62 -5.06,-10.98 -8.44,-15.96 -3.32,-4.89 -8.02,-8.7 -11.5,-13.48 -1.21,-1.66 -2.66,-3.38 -3.84,-5.06 -2.56,-3.62 -1.98,-2.94 -3.57,-5.29 -1.15,-1.7 -2.97,-2.28 -4.88,-3.02 -1.92,-0.74 -4.06,-0.96 -6.04,-0.41 -2.6,0.73 -4.73,2.79 -5.86,5.24 -1.13,2.46 -1.33,5.28 -0.89,7.95 0.57,3.44 2.14,6.64 3.92,9.64 2,3.39 4.32,6.66 7.35,9.18 3.16,2.63 6.98,4.37 10.19,6.95 z" />
|
||||
<path id="wing_right_glare" fill="#838384" filter="url(#blur_wing_right_glare)"
|
||||
clip-path="url(#clip_wing_right)"
|
||||
d="m 150.42,118.99 c 0.42,0.4 0.86,0.81 1.31,1.19 3.22,2.63 4.93,5.58 8.2,8.16 5.34,4.22 10.75,11.5 11.8,18.15 0.82,5.19 -0.26,8.01 -1.58,14.12 -1.32,6.12 -5.06,14.78 -7.09,20.68 -0.8,2.35 1.64,1.38 1.32,3.86 -0.16,1.22 -0.18,2.45 -0.03,3.67 0.02,-0.23 0.03,-0.48 0.06,-0.71 0.39,-3.38 1.42,-6.63 2.55,-9.82 2.17,-6.13 4.66,-12.15 6.38,-18.45 1.72,-6.29 1.53,-10.82 0.63,-16.23 -1.13,-6.81 -5.09,-13.09 -10.69,-17.24 -3.97,-2.93 -8.64,-4.81 -12.86,-7.38 z" />
|
||||
</g>
|
||||
</g>
|
||||
<g id="feet">
|
||||
<g id="foot_left">
|
||||
<path id="foot_left_base" fill="url(#fill_foot_left_base)"
|
||||
d="m 34.98,175.33 c 1.38,-0.57 2.93,-0.68 4.39,-0.41 1.47,0.27 2.86,0.91 4.09,1.74 2.47,1.68 4.3,4.12 6.05,6.54 4.03,5.54 7.9,11.2 11.42,17.08 2.85,4.78 5.46,9.71 8.76,14.18 2.15,2.93 4.57,5.64 6.73,8.55 2.16,2.92 4.07,6.08 5.03,9.58 1.25,4.55 0.76,9.56 -1.4,13.75 -1.52,2.95 -3.86,5.48 -6.7,7.19 -2.84,1.71 -5.83,2.47 -9.15,2.47 -5.27,0 -10.42,-2.83 -15.32,-4.78 -9.98,-3.98 -20.82,-5.22 -31.11,-8.32 -3.16,-0.95 -6.27,-2.08 -9.45,-2.95 -1.42,-0.39 -2.85,-0.73 -4.19,-1.34 -1.34,-0.6 -2.59,-1.51 -3.33,-2.77 -0.57,-0.98 -0.8,-2.13 -0.8,-3.26 0,-1.14 0.28,-2.26 0.67,-3.32 0.77,-2.13 2.02,-4.06 2.86,-6.17 1.37,-3.44 1.62,-7.23 1.43,-10.93 -0.18,-3.69 -0.78,-7.36 -1.03,-11.05 -0.12,-1.65 -0.16,-3.32 0.16,-4.95 0.31,-1.62 1.01,-3.21 2.2,-4.35 1.1,-1.06 2.55,-1.69 4.05,-2 1.49,-0.31 3.03,-0.32 4.55,-0.29 1.52,0.03 3.05,0.12 4.57,-0.01 1.52,-0.12 3.05,-0.46 4.37,-1.22 1.26,-0.72 2.29,-1.79 3.14,-2.96 0.85,-1.17 1.54,-2.45 2.25,-3.72 0.7,-1.26 1.43,-2.52 2.36,-3.64 0.92,-1.12 2.06,-2.09 3.4,-2.64 z" />
|
||||
<path id="foot_left_layer_1" fill="#d99a03" filter="url(#blur_foot_left_layer_1)"
|
||||
clip-path="url(#clip_foot_left)"
|
||||
d="m 37.16,177.7 c 1.25,-0.5 2.67,-0.56 3.98,-0.26 1.32,0.3 2.55,0.94 3.61,1.77 2.14,1.65 3.62,3.97 5.05,6.26 3.42,5.54 6.76,11.15 9.92,16.86 2.4,4.31 4.68,8.7 7.62,12.65 1.95,2.62 4.18,5.03 6.17,7.62 1.99,2.59 3.76,5.41 4.64,8.56 1.14,4.05 0.68,8.54 -1.28,12.26 -1.42,2.68 -3.58,4.96 -6.2,6.48 -2.61,1.52 -5.67,2.28 -8.69,2.14 -4.82,-0.22 -9.23,-2.63 -13.77,-4.26 -8.71,-3.16 -18.14,-3.59 -27.08,-6.05 -3.2,-0.87 -6.32,-2.03 -9.53,-2.84 -1.43,-0.36 -2.88,-0.66 -4.23,-1.23 -1.35,-0.57 -2.62,-1.45 -3.36,-2.72 -0.54,-0.95 -0.76,-2.06 -0.73,-3.15 0.04,-1.09 0.31,-2.17 0.7,-3.19 0.78,-2.04 2,-3.88 2.78,-5.92 1.19,-3.08 1.34,-6.47 1.12,-9.76 -0.22,-3.29 -0.8,-6.56 -1,-9.85 -0.08,-1.48 -0.1,-2.97 0.2,-4.41 0.3,-1.45 0.93,-2.85 1.98,-3.89 1.14,-1.13 2.7,-1.74 4.29,-1.99 1.58,-0.24 3.19,-0.13 4.78,0.01 1.6,0.14 3.2,0.32 4.8,0.23 1.6,-0.1 3.22,-0.49 4.54,-1.39 1.2,-0.81 2.1,-2 2.79,-3.27 0.69,-1.27 1.18,-2.64 1.71,-3.98 0.52,-1.35 1.09,-2.69 1.91,-3.89 0.82,-1.19 1.93,-2.24 3.28,-2.79 z" />
|
||||
<path id="foot_left_layer_2" fill="#f5bd0c" filter="url(#blur_foot_left_layer_2)"
|
||||
clip-path="url(#clip_foot_left)"
|
||||
d="m 35.99,174.57 c 1.22,-0.6 2.65,-0.72 3.98,-0.45 1.33,0.27 2.57,0.92 3.62,1.77 2.09,1.7 3.43,4.13 4.67,6.51 2.84,5.46 5.5,11.04 8.9,16.19 2.48,3.73 5.33,7.2 7.83,10.92 3.39,5.03 6.15,10.57 7.29,16.5 0.76,4 0.74,8.31 -1.18,11.9 -1.27,2.37 -3.32,4.31 -5.75,5.52 -2.42,1.22 -5.21,1.71 -7.92,1.47 -4.27,-0.37 -8.14,-2.47 -12.16,-3.94 -7.13,-2.59 -14.84,-3.22 -22.18,-5.18 -3.09,-0.82 -6.13,-1.89 -9.26,-2.54 -1.39,-0.29 -2.8,-0.5 -4.12,-1 -1.32,-0.5 -2.57,-1.33 -3.25,-2.55 -0.47,-0.86 -0.63,-1.86 -0.56,-2.84 0.07,-0.97 0.36,-1.92 0.74,-2.83 0.77,-1.8 1.9,-3.46 2.49,-5.32 0.88,-2.75 0.52,-5.72 -0.14,-8.53 -0.65,-2.8 -1.6,-5.55 -1.89,-8.41 -0.13,-1.27 -0.13,-2.57 0.17,-3.82 0.29,-1.25 0.88,-2.45 1.81,-3.34 1.2,-1.15 2.88,-1.73 4.56,-1.89 1.67,-0.16 3.35,0.06 5.01,0.3 1.66,0.24 3.34,0.5 5.01,0.42 1.68,-0.07 3.39,-0.51 4.7,-1.54 1.3,-1.02 2.12,-2.53 2.59,-4.09 0.47,-1.57 0.62,-3.2 0.81,-4.82 0.19,-1.62 0.43,-3.26 1.06,-4.77 0.63,-1.51 1.69,-2.9 3.17,-3.64 z" />
|
||||
<path id="foot_left_glare" fill="url(#fill_foot_left_glare)" filter="url(#blur_foot_left_glare)"
|
||||
clip-path="url(#clip_foot_left)"
|
||||
d="m 51.2,188.21 c 2.25,4.06 3.62,8.72 5.85,12.82 2.05,3.77 4.38,7.65 6.46,11.12 0.93,1.55 3.09,3.93 5.27,7.62 1.98,3.34 3.98,8.01 5.1,9.58 -0.64,-1.84 -1.96,-6.77 -3.54,-10.28 -1.47,-3.28 -3.19,-5.15 -4.24,-6.92 -2.08,-3.47 -4.33,-6.6 -6.47,-9.91 -2.95,-4.57 -5.2,-9.68 -8.43,-14.03 z" />
|
||||
</g>
|
||||
<g id="foot_right">
|
||||
<path id="foot_right_shadow" opacity="0.2" fill="url(#fill_foot_right_shadow)"
|
||||
filter="url(#blur_foot_right_shadow)" clip-path="url(#clip_body)"
|
||||
d="m 198.7,215.61 c -0.4,1.33 -1.02,2.62 -1.81,3.8 -1.75,2.59 -4.3,4.55 -6.84,6.35 -4.33,3.07 -8.85,5.89 -12.89,9.38 -2.7,2.34 -5.17,4.97 -7.45,7.73 -1.95,2.36 -3.79,4.84 -6.02,6.94 -2.25,2.12 -4.89,3.84 -7.74,4.77 -3.47,1.13 -7.13,1.08 -10.47,0.22 -2.34,-0.6 -4.63,-1.64 -6.08,-3.53 -1.45,-1.89 -1.92,-4.44 -2.09,-6.94 -0.3,-4.42 0.23,-8.93 0.71,-13.42 0.4,-3.73 0.77,-7.46 0.92,-11.18 0.27,-6.77 -0.18,-13.47 -1.09,-20.05 -0.16,-1.11 -0.32,-2.22 -0.23,-3.35 0.09,-1.14 0.47,-2.32 1.27,-3.2 0.74,-0.81 1.77,-1.29 2.79,-1.52 1.02,-0.24 2.06,-0.25 3.09,-0.28 2.43,-0.06 4.86,-0.21 7.25,0.01 1.51,0.13 2.99,0.41 4.49,0.55 2.51,0.24 5.12,0.12 7.64,-0.62 2.71,-0.8 5.29,-2.29 8.05,-2.7 1.13,-0.17 2.26,-0.15 3.36,0.01 1.12,0.15 2.24,0.46 3.1,1.15 0.66,0.52 1.14,1.23 1.51,1.99 0.56,1.14 0.9,2.39 1.1,3.68 0.17,1.14 0.24,2.31 0.53,3.41 0.48,1.81 1.58,3.35 2.89,4.6 1.32,1.25 2.85,2.24 4.39,3.22 1.53,0.97 3.07,1.93 4.7,2.73 0.77,0.38 1.56,0.72 2.29,1.15 0.74,0.44 1.42,0.97 1.91,1.67 0.66,0.95 0.92,2.2 0.72,3.43 z" />
|
||||
<path id="foot_right_base" fill="url(#fill_foot_right_base)"
|
||||
d="m 213.47,222.92 c -2.26,2.68 -5.4,4.45 -8.53,6.05 -5.33,2.71 -10.86,5.1 -15.87,8.37 -3.36,2.19 -6.46,4.76 -9.36,7.53 -2.48,2.37 -4.83,4.9 -7.61,6.91 -2.81,2.03 -6.05,3.5 -9.48,4.01 -0.95,0.14 -1.9,0.21 -2.86,0.21 -3.24,0 -6.48,-0.78 -9.46,-2.08 -2.7,-1.17 -5.3,-2.86 -6.86,-5.36 -1.56,-2.52 -1.92,-5.59 -1.92,-8.56 -0.01,-5.23 0.96,-10.41 1.87,-15.57 0.76,-4.29 1.48,-8.58 1.95,-12.91 0.85,-7.86 0.84,-15.81 0.28,-23.71 -0.1,-1.32 -0.21,-2.65 -0.01,-3.96 0.2,-1.31 0.74,-2.62 1.74,-3.48 0.93,-0.8 2.17,-1.16 3.4,-1.22 1.22,-0.07 2.44,0.12 3.65,0.3 2.85,0.42 5.73,0.74 8.52,1.48 1.76,0.46 3.48,1.08 5.23,1.56 2.94,0.79 6.01,1.17 9.02,0.82 3.25,-0.38 6.41,-1.6 9.68,-1.52 1.34,0.03 2.67,0.28 3.95,0.69 1.3,0.41 2.59,1 3.55,1.98 0.73,0.74 1.24,1.67 1.62,2.64 0.57,1.44 0.88,2.98 1.01,4.52 0.11,1.37 0.09,2.76 0.35,4.11 0.43,2.21 1.6,4.24 3.04,5.97 1.45,1.74 3.18,3.21 4.91,4.66 1.73,1.45 3.46,2.89 5.32,4.16 0.87,0.6 1.77,1.16 2.6,1.81 0.83,0.66 1.59,1.42 2.11,2.34 0.45,0.81 0.69,1.72 0.69,2.65 0,0.52 -0.07,1.04 -0.23,1.56 -0.45,1.43 -1.28,2.82 -2.3,4.04 z" />
|
||||
<path id="foot_right_layer_1" fill="#cd8907" filter="url(#blur_foot_right_layer_1)"
|
||||
clip-path="url(#clip_foot_right)"
|
||||
d="m 213.21,216.12 c -0.53,1.33 -1.28,2.58 -2.22,3.67 -2.07,2.42 -4.93,4.01 -7.78,5.44 -4.88,2.44 -9.92,4.58 -14.5,7.52 -3.06,1.97 -5.9,4.28 -8.55,6.78 -2.26,2.13 -4.41,4.41 -6.95,6.21 -2.57,1.83 -5.53,3.14 -8.65,3.6 -3.8,0.56 -7.72,-0.16 -11.25,-1.67 -2.46,-1.06 -4.84,-2.56 -6.27,-4.83 -1.42,-2.26 -1.75,-5.02 -1.75,-7.69 -0.02,-4.71 0.87,-9.37 1.71,-14 0.7,-3.85 1.36,-7.71 1.78,-11.6 0.76,-7.08 0.73,-14.22 0.25,-21.32 -0.08,-1.19 -0.17,-2.39 0.01,-3.57 0.18,-1.18 0.67,-2.35 1.57,-3.13 0.85,-0.73 1.99,-1.05 3.11,-1.1 1.11,-0.06 2.22,0.12 3.33,0.28 2.61,0.38 5.23,0.67 7.78,1.33 1.61,0.42 3.18,0.98 4.78,1.4 2.68,0.72 5.49,1.06 8.24,0.74 2.97,-0.34 5.85,-1.44 8.83,-1.37 1.23,0.03 2.44,0.26 3.61,0.62 1.19,0.37 2.37,0.9 3.25,1.78 0.66,0.67 1.11,1.51 1.48,2.38 0.53,1.29 0.89,2.67 0.91,4.07 0.03,1.46 -0.28,2.92 -0.09,4.37 0.16,1.17 0.66,2.28 1.3,3.28 0.63,1 1.4,1.91 2.17,2.81 1.48,1.75 2.96,3.53 4.82,4.87 2.11,1.53 4.62,2.43 6.8,3.85 0.65,0.43 1.28,0.91 1.74,1.54 0.78,1.06 0.98,2.5 0.54,3.74 z" />
|
||||
<path id="foot_right_layer_2" fill="#f5c021" filter="url(#blur_foot_right_layer_2)"
|
||||
clip-path="url(#clip_foot_right)"
|
||||
d="m 212.91,214.61 c -0.6,1.35 -1.37,2.6 -2.28,3.71 -2.12,2.58 -4.99,4.35 -8,5.49 -4.97,1.88 -10.39,2.13 -15.26,4.27 -2.97,1.3 -5.65,3.26 -8.36,5.12 -2.18,1.49 -4.42,2.94 -6.82,3.98 -2.72,1.19 -5.6,1.85 -8.5,2.32 -1.84,0.29 -3.71,0.51 -5.57,0.41 -1.86,-0.1 -3.72,-0.54 -5.37,-1.49 -1.24,-0.72 -2.36,-1.75 -3.03,-3.1 -0.73,-1.49 -0.86,-3.24 -0.85,-4.94 0.05,-4.5 1.02,-8.96 0.99,-13.47 -0.03,-3.93 -0.81,-7.8 -1.03,-11.72 -0.43,-7.54 1.19,-15.2 -0.24,-22.59 -0.22,-1.19 -0.53,-2.37 -0.52,-3.58 0.01,-0.6 0.1,-1.21 0.31,-1.77 0.22,-0.55 0.56,-1.06 1.01,-1.42 0.39,-0.29 0.84,-0.47 1.31,-0.56 0.46,-0.08 0.94,-0.06 1.41,0.01 0.93,0.15 1.82,0.51 2.73,0.78 2.6,0.78 5.35,0.76 8,1.35 1.66,0.36 3.26,0.97 4.91,1.41 2.75,0.76 5.63,1.08 8.46,0.75 3.04,-0.36 6.01,-1.46 9.07,-1.38 1.26,0.03 2.5,0.26 3.71,0.62 1.21,0.36 2.42,0.87 3.34,1.8 0.65,0.67 1.13,1.52 1.51,2.4 0.57,1.29 0.96,2.69 0.95,4.11 -0.01,0.74 -0.12,1.47 -0.19,2.21 -0.06,0.74 -0.08,1.49 0.09,2.2 0.18,0.72 0.55,1.37 0.97,1.96 0.42,0.59 0.9,1.12 1.34,1.7 1.22,1.61 2.1,3.49 3.05,5.3 0.95,1.81 2.02,3.6 3.53,4.91 2.05,1.77 4.7,2.48 6.99,3.89 0.67,0.41 1.31,0.89 1.78,1.55 0.38,0.52 0.63,1.15 0.73,1.81 0.09,0.65 0.03,1.34 -0.17,1.96 z" />
|
||||
<path id="foot_right_glare" fill="url(#fill_foot_right_glare)" filter="url(#blur_foot_right_glare)"
|
||||
clip-path="url(#clip_foot_right)"
|
||||
d="m 148.08,181.58 c 2.82,-0.76 5.22,1.38 7.27,2.99 1.32,1.13 3.24,0.85 4.86,0.9 2.69,-0.09 5.36,0.45 8.05,0.12 5.3,-0.45 10.49,-1.75 15.81,-1.97 2.54,-0.16 5.4,-0.31 7.59,1.17 0.89,0.62 2.2,3.23 3.07,2.25 -0.36,-2.74 -2.39,-5.39 -5.11,-6.12 -2.14,-0.34 -4.3,0.25 -6.46,0.06 -6.39,-0.15 -12.75,-1.34 -19.16,-1 -4.46,0.04 -8.91,-0.17 -13.37,-0.34 -1.75,-0.36 -2.37,1.19 -3.32,1.79 0.25,0.19 0.34,0.25 0.77,0.15 z" />
|
||||
</g>
|
||||
</g>
|
||||
<g id="wing_tip_right">
|
||||
<g id="wing_tip_right_shadow">
|
||||
<path id="wing_tip_right_shadow_lower" opacity="0.35" fill="url(#fill_wing_tip_right_shadow_lower)"
|
||||
filter="url(#blur_wing_tip_right_shadow_lower)" clip-path="url(#clip_foot_right)"
|
||||
d="m 185.49,187.61 c -0.48,-0.95 -1.36,-1.66 -2.35,-2.07 -0.98,-0.41 -2.06,-0.55 -3.13,-0.54 -2.13,0.02 -4.25,0.57 -6.38,0.39 -1.79,-0.16 -3.49,-0.83 -5.24,-1.26 -1.81,-0.44 -3.73,-0.61 -5.52,-0.12 -1.92,0.52 -3.61,1.81 -4.67,3.49 -0.94,1.48 -1.38,3.23 -1.52,4.98 -0.14,1.75 0.01,3.5 0.19,5.25 0.12,1.26 0.27,2.52 0.57,3.75 0.31,1.23 0.78,2.43 1.52,3.46 1.07,1.48 2.66,2.54 4.37,3.17 2.8,1.03 5.98,0.98 8.73,-0.15 4.88,-2.12 9.01,-5.92 11.52,-10.6 0.91,-1.68 1.61,-3.47 2.06,-5.31 0.18,-0.74 0.32,-1.49 0.32,-2.25 0.01,-0.75 -0.12,-1.52 -0.47,-2.19 z" />
|
||||
<path id="wing_tip_right_shadow_upper" opacity="0.35" fill="url(#fill_wing_tip_right_shadow_upper)"
|
||||
filter="url(#blur_wing_tip_right_shadow_upper)" clip-path="url(#clip_foot_right)"
|
||||
d="m 185.49,184.89 c -0.48,-0.69 -1.36,-1.2 -2.35,-1.5 -0.98,-0.3 -2.06,-0.39 -3.13,-0.39 -2.13,0.02 -4.25,0.42 -6.38,0.28 -1.79,-0.11 -3.49,-0.6 -5.24,-0.9 -1.81,-0.32 -3.73,-0.45 -5.52,-0.09 -1.92,0.37 -3.61,1.3 -4.67,2.52 -0.94,1.07 -1.38,2.34 -1.52,3.6 -0.14,1.26 0.01,2.53 0.19,3.79 0.12,0.91 0.27,1.83 0.57,2.72 0.31,0.89 0.78,1.76 1.52,2.5 1.07,1.07 2.66,1.83 4.37,2.29 2.8,0.75 5.98,0.71 8.73,-0.11 4.88,-1.53 9.01,-4.28 11.52,-7.66 0.91,-1.22 1.61,-2.51 2.06,-3.84 0.18,-0.54 0.32,-1.08 0.32,-1.62 0.01,-0.55 -0.12,-1.11 -0.47,-1.59 z" />
|
||||
</g>
|
||||
<path id="wing_tip_right_base" fill="#020204"
|
||||
d="m 189.55,178.72 c -0.35,-0.95 -0.97,-1.79 -1.72,-2.47 -0.75,-0.68 -1.64,-1.2 -2.57,-1.6 -1.86,-0.79 -3.89,-1.09 -5.89,-1.46 -1.87,-0.35 -3.74,-0.78 -5.62,-1.1 -1.96,-0.33 -3.98,-0.55 -5.92,-0.11 -1.69,0.38 -3.26,1.26 -4.54,2.43 -1.28,1.17 -2.28,2.63 -3,4.21 -1.27,2.79 -1.67,5.92 -1.43,8.97 0.18,2.27 0.76,4.61 2.25,6.32 1.21,1.39 2.92,2.26 4.68,2.78 3.04,0.9 6.35,0.85 9.36,-0.13 4.97,-1.67 9.37,-4.98 12.35,-9.29 0.98,-1.43 1.82,-2.98 2.2,-4.66 0.29,-1.28 0.3,-2.66 -0.15,-3.89 z" />
|
||||
<g id="wing_tip_right_glare">
|
||||
<defs>
|
||||
<path id="path_wing_tip_right_glare"
|
||||
d="m 168.89,171.07 c -0.47,0.03 -0.93,0.08 -1.4,0.17 -2.99,0.53 -5.73,2.42 -7.27,5.03 -1.09,1.85 -1.58,4.03 -1.43,6.17 0.07,-1.5 0.46,-2.97 1.19,-4.28 1.23,-2.23 3.47,-3.91 5.98,-4.37 1.54,-0.28 3.13,-0.11 4.68,0.08 1.5,0.19 3,0.39 4.47,0.7 2.28,0.5 4.53,1.26 6.44,2.59 0.44,0.31 0.86,0.66 1.21,1.08 0.35,0.41 0.62,0.89 0.73,1.42 0.15,0.78 -0.07,1.6 -0.46,2.29 -0.39,0.7 -0.92,1.3 -1.48,1.86 -0.46,0.46 -0.94,0.89 -1.43,1.32 2.21,-0.43 4.44,-1.03 6.28,-2.31 0.77,-0.55 1.48,-1.2 1.94,-2.02 0.46,-0.83 0.65,-1.83 0.43,-2.75 -0.16,-0.62 -0.5,-1.19 -0.92,-1.67 -0.42,-0.48 -0.93,-0.87 -1.45,-1.24 -2.31,-1.62 -5.01,-2.65 -7.81,-2.99 -1.8,-0.33 -3.61,-0.61 -5.42,-0.83 -1.41,-0.18 -2.86,-0.33 -4.28,-0.25 z" />
|
||||
</defs>
|
||||
<use id="wing_tip_right_glare_1" href="#path_wing_tip_right_glare" xlink:href="#path_wing_tip_right_glare"
|
||||
fill="url(#fill_wing_tip_right_glare_1)" filter="url(#blur_wing_tip_right_glare)"
|
||||
clip-path="url(#clip_wing_tip_right)" />
|
||||
<use id="wing_tip_right_glare_2" href="#path_wing_tip_right_glare" xlink:href="#path_wing_tip_right_glare"
|
||||
fill="url(#fill_wing_tip_right_glare_2)" filter="url(#blur_wing_tip_right_glare)"
|
||||
clip-path="url(#clip_wing_tip_right)" />
|
||||
</g>
|
||||
</g>
|
||||
<g id="face">
|
||||
<g id="eyes">
|
||||
<g id="eye_left">
|
||||
<path id="eyeball_left" fill="url(#fill_eyeball_left)"
|
||||
d="m 84.45,38.28 c -1.53,0.08 -3,0.79 -4.12,1.84 -1.13,1.05 -1.92,2.43 -2.41,3.88 -0.97,2.92 -0.75,6.08 -0.53,9.15 0.2,2.77 0.41,5.6 1.45,8.18 0.52,1.3 1.25,2.51 2.22,3.51 0.97,0.99 2.2,1.76 3.55,2.09 1.26,0.32 2.62,0.26 3.86,-0.13 1.25,-0.4 2.38,-1.11 3.32,-2.02 1.36,-1.33 2.27,-3.07 2.8,-4.9 0.53,-1.83 0.68,-3.75 0.65,-5.66 -0.04,-2.38 -0.35,-4.77 -1.09,-7.03 -0.75,-2.26 -1.94,-4.4 -3.6,-6.11 -0.8,-0.83 -1.72,-1.55 -2.75,-2.06 -1.04,-0.51 -2.2,-0.8 -3.35,-0.74 z" />
|
||||
<g id="pupil_left">
|
||||
<path id="pupil_left_base" fill="#020204"
|
||||
d="m 80.75,50.99 c -0.32,1.94 -0.33,3.97 0.33,5.81 0.44,1.22 1.17,2.33 2.05,3.28 0.57,0.62 1.23,1.18 1.99,1.55 0.77,0.37 1.65,0.52 2.48,0.32 0.76,-0.19 1.42,-0.68 1.91,-1.29 0.49,-0.61 0.82,-1.34 1.05,-2.09 0.69,-2.21 0.58,-4.62 -0.11,-6.83 -0.49,-1.61 -1.32,-3.16 -2.6,-4.24 -0.62,-0.52 -1.34,-0.93 -2.12,-1.11 -0.78,-0.19 -1.63,-0.14 -2.36,0.19 -0.81,0.37 -1.44,1.07 -1.85,1.86 -0.41,0.79 -0.62,1.67 -0.77,2.55 z" />
|
||||
<path id="pupil_left_glare" fill="url(#fill_pupil_left_glare)" filter="url(#blur_pupil_left_glare)"
|
||||
clip-path="url(#clip_pupil_left)"
|
||||
d="m 84.84,49.59 c 0.21,0.55 0.91,0.75 1.3,1.19 0.37,0.42 0.76,0.87 0.97,1.4 0.39,1.01 -0.39,2.51 0.43,3.23 0.25,0.22 0.77,0.23 1.02,0 0.99,-0.9 0.77,-2.71 0.38,-3.99 -0.36,-1.15 -1.23,-2.25 -2.31,-2.8 -0.5,-0.26 -1.25,-0.47 -1.68,-0.11 -0.27,0.24 -0.24,0.74 -0.11,1.08 z" />
|
||||
</g>
|
||||
<path id="eyelid_left" fill="url(#fill_eyelid_left)" clip-path="url(#clip_eye_left)"
|
||||
d="m 81.14,44.46 c 2.32,-1.38 5.13,-1.7 7.82,-1.45 2.68,0.26 5.27,1.04 7.87,1.75 1.91,0.52 3.84,1 5.63,1.84 1.78,0.84 3.44,2.08 4.43,3.8 0.16,0.27 0.29,0.56 0.46,0.83 0.17,0.27 0.37,0.52 0.62,0.71 0.25,0.19 0.57,0.32 0.88,0.3 0.16,-0.01 0.32,-0.05 0.45,-0.13 0.14,-0.08 0.26,-0.2 0.33,-0.34 0.08,-0.16 0.11,-0.35 0.1,-0.53 -0.01,-0.18 -0.05,-0.36 -0.1,-0.54 -0.65,-2.37 -2.19,-4.38 -3.35,-6.55 -0.7,-1.3 -1.28,-2.66 -1.98,-3.96 -2.43,-4.45 -6.42,-7.94 -10.95,-10.21 -4.53,-2.27 -9.59,-3.36 -14.65,-3.65 -5.86,-0.35 -11.73,0.35 -17.51,1.37 -2.51,0.44 -5.06,0.96 -7.27,2.21 -1.11,0.62 -2.13,1.42 -2.92,2.42 -0.8,0.99 -1.36,2.18 -1.55,3.44 -0.17,1.22 0.01,2.47 0.44,3.62 0.42,1.15 1.08,2.2 1.86,3.15 1.54,1.91 3.53,3.39 5.36,5.03 1.83,1.63 3.52,3.44 5.57,4.79 1.02,0.68 2.13,1.24 3.31,1.57 1.18,0.33 2.44,0.42 3.64,0.17 1.24,-0.25 2.4,-0.86 3.41,-1.64 1.01,-0.77 1.88,-1.7 2.71,-2.66 1.66,-1.93 3.21,-4.04 5.39,-5.34 z" />
|
||||
<path id="eyebrow_left" fill="url(#fill_eyebrow_left)" filter="url(#blur_eyebrow_left)"
|
||||
d="m 90.77,36.57 c 2.16,2.02 3.76,4.52 4.85,7.16 -0.48,-2.91 -1.23,-5.26 -3.13,-7.16 -1.16,-1.09 -2.49,-2.05 -3.98,-2.72 -1.32,-0.59 -2.77,-0.96 -3.61,-0.97 -0.83,-0.02 -1.03,0 -1.2,0.01 -0.18,0.01 -0.31,0.01 0.23,0.08 0.54,0.06 1.75,0.39 3.05,0.97 1.3,0.58 2.62,1.54 3.79,2.63 z" />
|
||||
</g>
|
||||
<g id="eye_right">
|
||||
<path id="eyeball_right" fill="url(#fill_eyeball_right)"
|
||||
d="m 111.61,38.28 c -2.39,1.65 -4.4,3.94 -5.38,6.68 -1.24,3.45 -0.77,7.31 0.43,10.77 1.22,3.55 3.27,6.93 6.36,9.06 1.54,1.07 3.33,1.8 5.19,2.02 1.87,0.22 3.8,-0.09 5.47,-0.95 2.02,-1.06 3.57,-2.91 4.53,-4.98 0.96,-2.08 1.37,-4.37 1.5,-6.66 0.16,-2.9 -0.12,-5.86 -1.08,-8.61 -1.04,-2.99 -2.92,-5.75 -5.58,-7.47 -1.32,-0.86 -2.83,-1.45 -4.4,-1.67 -1.57,-0.22 -3.19,-0.05 -4.67,0.52 -0.84,0.33 -1.62,0.78 -2.37,1.29 z" />
|
||||
<g id="pupil_right">
|
||||
<path id="pupil_right_base" fill="#020204"
|
||||
d="m 117.14,45.52 c -0.9,0.06 -1.78,0.37 -2.55,0.85 -0.76,0.48 -1.41,1.13 -1.92,1.88 -1.03,1.49 -1.48,3.31 -1.55,5.12 -0.05,1.35 0.1,2.72 0.55,4 0.45,1.28 1.2,2.47 2.25,3.33 1.07,0.89 2.42,1.42 3.81,1.49 1.39,0.06 2.79,-0.34 3.93,-1.13 0.91,-0.63 1.64,-1.5 2.16,-2.48 0.52,-0.97 0.84,-2.05 0.98,-3.15 0.25,-1.93 -0.03,-3.95 -0.93,-5.69 -0.89,-1.74 -2.41,-3.17 -4.24,-3.84 -0.8,-0.29 -1.65,-0.44 -2.49,-0.38 z" />
|
||||
<path id="pupil_right_glare" fill="url(#fill_pupil_right_glare)" filter="url(#blur_pupil_right_glare)"
|
||||
clip-path="url(#clip_pupil_right)"
|
||||
d="m 122.71,53.36 c 1,-1 -0.71,-3.65 -2.05,-4.74 -0.97,-0.78 -3.78,-1.61 -3.66,-0.75 0.12,0.85 1.39,1.95 2.23,2.79 1.05,1.03 3,3.18 3.48,2.7 z" />
|
||||
</g>
|
||||
<path id="eyelid_right" fill="url(#fill_eyelid_right)" clip-path="url(#clip_eye_right)"
|
||||
d="m 102.56,47.01 c 2.06,-1.71 4.45,-3.01 7,-3.8 5.25,-1.62 11.2,-0.98 15.84,1.97 1.6,1.01 3.03,2.27 4.52,3.45 1.48,1.17 3.06,2.27 4.85,2.9 0.97,0.34 2,0.54 3.02,0.43 0.92,-0.09 1.81,-0.44 2.57,-0.96 0.76,-0.53 1.4,-1.23 1.88,-2.02 0.96,-1.58 1.27,-3.5 1.1,-5.34 -0.33,-3.69 -2.41,-6.94 -4.15,-10.21 -0.55,-1.02 -1.07,-2.06 -1.73,-3.01 -2.01,-2.93 -5.23,-4.86 -8.6,-5.99 -3.37,-1.13 -6.93,-1.54 -10.46,-1.98 -1.58,-0.2 -3.17,-0.41 -4.74,-0.22 -1.81,0.22 -3.51,0.95 -5.28,1.4 -0.84,0.22 -1.69,0.37 -2.52,0.61 -0.83,0.24 -1.65,0.57 -2.33,1.11 -0.98,0.79 -1.6,1.98 -1.87,3.21 -0.27,1.24 -0.21,2.52 -0.01,3.77 0.39,2.5 1.33,4.93 1.24,7.46 -0.06,1.73 -0.61,3.44 -0.54,5.17 0.02,0.51 0.12,1.55 0.21,2.05 z" />
|
||||
<path id="eyebrow_right" fill="url(#fill_eyebrow_right)" filter="url(#blur_eyebrow_right)"
|
||||
d="m 119.93,31.18 c -0.41,0.52 -0.78,1.08 -1.07,1.7 1.85,0.4 3.61,1.16 5.19,2.21 3.06,2.03 5.38,4.99 7.01,8.29 0.38,-0.42 0.72,-0.87 1.02,-1.37 -1.64,-3.44 -4,-6.55 -7.16,-8.65 -1.52,-1 -3.21,-1.77 -4.99,-2.18 z" />
|
||||
</g>
|
||||
</g>
|
||||
<g id="beak">
|
||||
<g id="beak_shadow">
|
||||
<path id="beak_shadow_lower" fill="#000000" fill-opacity="0.258824"
|
||||
filter="url(#blur_beak_shadow_lower)" clip-path="url(#clip_body)"
|
||||
d="m 81.12,89.33 c 1.47,4.26 4.42,7.89 7.92,10.72 1.16,0.95 2.39,1.82 3.76,2.43 1.36,0.62 2.87,0.97 4.36,0.84 1.46,-0.12 2.85,-0.7 4.13,-1.42 1.28,-0.72 2.46,-1.59 3.7,-2.37 2.12,-1.35 4.39,-2.44 6.6,-3.64 2.65,-1.45 5.23,-3.1 7.46,-5.14 1.03,-0.93 1.98,-1.95 3.11,-2.75 1.13,-0.81 2.49,-1.39 3.87,-1.29 1.04,0.07 2.01,0.51 3.03,0.73 0.51,0.11 1.03,0.16 1.55,0.08 0.51,-0.08 1.01,-0.29 1.37,-0.67 0.44,-0.46 0.64,-1.12 0.61,-1.76 -0.02,-0.63 -0.24,-1.25 -0.54,-1.81 -0.59,-1.13 -1.49,-2.1 -1.89,-3.31 -0.36,-1.08 -0.29,-2.24 -0.26,-3.37 0.03,-1.14 0.01,-2.32 -0.51,-3.33 -0.4,-0.76 -1.07,-1.37 -1.83,-1.77 -0.76,-0.41 -1.62,-0.62 -2.48,-0.7 -1.72,-0.16 -3.44,0.18 -5.17,0.27 -2.28,0.13 -4.58,-0.15 -6.87,-0.02 -2.85,0.18 -5.65,1 -8.51,1.01 -3.26,0.01 -6.52,-1.06 -9.74,-0.55 -1.39,0.22 -2.71,0.72 -4.03,1.16 -1.33,0.45 -2.7,0.84 -4.1,0.82 -1.59,-0.03 -3.13,-0.58 -4.72,-0.69 -0.79,-0.06 -1.6,0 -2.35,0.28 -0.74,0.28 -1.41,0.79 -1.78,1.5 -0.21,0.4 -0.31,0.86 -0.33,1.31 -0.02,0.46 0.04,0.91 0.15,1.36 0.22,0.88 0.63,1.71 0.96,2.55 1.2,3.07 1.46,6.42 2.53,9.53 z" />
|
||||
<path id="beak_shadow_upper" opacity="0.3" fill="#000000" filter="url(#blur_beak_shadow_upper)"
|
||||
clip-path="url(#clip_body)"
|
||||
d="m 77.03,77.2 c 2.85,1.76 5.41,3.93 7.56,6.39 1.99,2.29 3.68,4.89 6.29,6.58 1.83,1.2 4.04,1.87 6.28,2.08 2.63,0.24 5.29,-0.15 7.83,-0.84 2.35,-0.63 4.62,-1.53 6.7,-2.71 3.97,-2.25 7.28,-5.55 11.65,-7.03 0.95,-0.33 1.94,-0.56 2.86,-0.96 0.92,-0.39 1.79,-0.99 2.23,-1.83 0.42,-0.82 0.4,-1.75 0.54,-2.64 0.15,-0.96 0.48,-1.88 0.66,-2.83 0.18,-0.95 0.2,-1.96 -0.24,-2.83 -0.37,-0.72 -1.04,-1.29 -1.81,-1.66 -0.77,-0.36 -1.64,-0.52 -2.51,-0.56 -1.72,-0.08 -3.43,0.33 -5.16,0.47 -2.28,0.19 -4.58,-0.08 -6.87,-0.01 -2.85,0.08 -5.66,0.67 -8.51,0.8 -3.25,0.14 -6.49,-0.34 -9.74,-0.44 -1.41,-0.05 -2.83,-0.03 -4.21,0.2 -1.39,0.22 -2.75,0.65 -3.92,1.37 -1.14,0.69 -2.07,1.64 -3.11,2.45 -0.52,0.41 -1.08,0.78 -1.68,1.07 -0.61,0.28 -1.28,0.48 -1.96,0.51 -0.35,0.01 -0.71,-0.01 -1.05,0.04 -0.59,0.08 -1.13,0.39 -1.47,0.83 -0.34,0.45 -0.47,1.02 -0.36,1.55 z" />
|
||||
</g>
|
||||
<path id="beak_base" fill="url(#fill_beak_base)"
|
||||
d="m 91.66,58.53 c 1.53,-1.71 2.57,-3.8 4.03,-5.56 0.73,-0.88 1.58,-1.69 2.57,-2.26 0.99,-0.57 2.15,-0.89 3.29,-0.79 1.27,0.11 2.46,0.74 3.39,1.61 0.93,0.87 1.62,1.97 2.17,3.12 0.53,1.11 0.95,2.28 1.71,3.24 0.81,1.02 1.94,1.71 2.97,2.52 0.51,0.4 1.01,0.83 1.41,1.34 0.41,0.51 0.72,1.1 0.86,1.74 0.13,0.65 0.06,1.33 -0.16,1.95 -0.23,0.62 -0.61,1.18 -1.09,1.64 -0.95,0.92 -2.25,1.42 -3.56,1.6 -2.62,0.37 -5.27,-0.41 -7.92,-0.34 -2.67,0.08 -5.29,1.02 -7.97,0.93 -1.33,-0.05 -2.69,-0.38 -3.79,-1.14 -0.55,-0.39 -1.03,-0.88 -1.38,-1.45 -0.34,-0.57 -0.55,-1.23 -0.58,-1.9 -0.02,-0.64 0.13,-1.28 0.39,-1.86 0.25,-0.59 0.61,-1.12 1.01,-1.62 0.81,-0.99 1.8,-1.81 2.65,-2.77 z" />
|
||||
<g id="mandible_lower">
|
||||
<path id="mandible_lower_base" fill="url(#fill_mandible_lower_base)"
|
||||
d="m 77.14,75.05 c 0.06,0.26 0.15,0.5 0.28,0.73 0.23,0.38 0.57,0.69 0.93,0.95 0.36,0.27 0.75,0.49 1.13,0.72 2.01,1.27 3.65,3.04 5.11,4.92 1.95,2.52 3.68,5.31 6.29,7.14 1.84,1.3 4.04,2.03 6.28,2.26 2.63,0.26 5.29,-0.16 7.83,-0.91 2.35,-0.69 4.62,-1.66 6.7,-2.95 3.97,-2.44 7.28,-6.02 11.65,-7.63 0.95,-0.35 1.94,-0.6 2.86,-1.03 0.92,-0.44 1.79,-1.08 2.23,-2 0.42,-0.88 0.4,-1.9 0.54,-2.87 0.15,-1.03 0.48,-2.03 0.66,-3.06 0.18,-1.03 0.2,-2.13 -0.24,-3.08 -0.37,-0.78 -1.04,-1.4 -1.81,-1.79 -0.77,-0.4 -1.64,-0.58 -2.51,-0.62 -1.72,-0.08 -3.43,0.36 -5.16,0.52 -2.28,0.21 -4.58,-0.09 -6.87,-0.02 -2.85,0.09 -5.66,0.73 -8.51,0.87 -3.25,0.15 -6.49,-0.35 -9.74,-0.48 -1.41,-0.06 -2.83,-0.04 -4.22,0.2 -1.39,0.23 -2.75,0.71 -3.91,1.51 -1.13,0.78 -2.03,1.84 -3.07,2.74 -0.52,0.45 -1.08,0.86 -1.7,1.16 -0.61,0.3 -1.29,0.49 -1.98,0.47 -0.35,-0.01 -0.72,-0.06 -1.05,0.04 -0.21,0.07 -0.4,0.2 -0.56,0.35 -0.16,0.16 -0.29,0.34 -0.41,0.52 -0.29,0.42 -0.54,0.87 -0.75,1.34 z" />
|
||||
<path id="mandible_lower_glare" fill="#d9b30d" filter="url(#blur_mandible_lower_glare)"
|
||||
clip-path="url(#clip_mandible_lower)"
|
||||
d="m 89.9,78.56 c -0.33,1.37 -0.13,2.87 0.56,4.11 0.68,1.24 1.84,2.2 3.19,2.65 1.7,0.57 3.62,0.29 5.21,-0.54 0.93,-0.48 1.77,-1.16 2.3,-2.06 0.27,-0.44 0.46,-0.94 0.53,-1.46 0.06,-0.51 0.02,-1.05 -0.16,-1.54 -0.2,-0.53 -0.56,-1 -0.99,-1.37 -0.44,-0.37 -0.95,-0.64 -1.5,-0.82 -1.08,-0.36 -2.77,-0.66 -3.91,-0.68 -2.02,-0.04 -4.9,0.34 -5.23,1.71 z" />
|
||||
</g>
|
||||
<g id="mandible_upper">
|
||||
<path id="mandible_upper_shadow" fill="#604405" filter="url(#blur_mandible_upper_shadow)"
|
||||
clip-path="url(#clip_mandible_lower)"
|
||||
d="m 84.31,67.86 c -1.16,0.68 -2.27,1.43 -3.36,2.2 -0.57,0.41 -1.15,0.84 -1.45,1.47 -0.21,0.44 -0.26,0.94 -0.27,1.43 0,0.5 0.03,0.99 -0.04,1.48 -0.04,0.33 -0.13,0.66 -0.14,0.99 -0.01,0.17 0,0.34 0.04,0.5 0.05,0.16 0.13,0.32 0.24,0.44 0.15,0.16 0.35,0.26 0.56,0.32 0.21,0.06 0.42,0.09 0.64,0.14 1.01,0.24 1.89,0.86 2.66,1.56 0.77,0.69 1.47,1.48 2.28,2.13 2.18,1.78 5.07,2.52 7.89,2.56 2.82,0.05 5.61,-0.54 8.36,-1.16 2.16,-0.49 4.32,-0.99 6.39,-1.76 3.2,-1.18 6.16,-2.96 8.72,-5.19 1.17,-1.01 2.26,-2.12 3.57,-2.94 1.15,-0.73 2.44,-1.21 3.62,-1.9 0.11,-0.06 0.21,-0.13 0.3,-0.2 0.1,-0.08 0.18,-0.18 0.24,-0.28 0.09,-0.19 0.09,-0.42 0.03,-0.62 -0.06,-0.2 -0.18,-0.38 -0.31,-0.55 -0.15,-0.18 -0.31,-0.34 -0.49,-0.5 -1.23,-1.05 -2.89,-1.43 -4.51,-1.56 -1.61,-0.12 -3.24,-0.03 -4.83,-0.3 -1.5,-0.25 -2.92,-0.81 -4.37,-1.27 -1.52,-0.49 -3.07,-0.87 -4.64,-1.13 -3.71,-0.61 -7.52,-0.49 -11.19,0.27 -3.49,0.73 -6.87,2.05 -9.94,3.87 z" />
|
||||
<path id="mandible_upper_base" fill="url(#fill_mandible_upper_base)"
|
||||
d="m 83.94,63.95 c -1.66,1.12 -3.16,2.49 -4.43,4.04 -0.72,0.89 -1.38,1.86 -1.74,2.94 -0.29,0.86 -0.39,1.76 -0.57,2.65 -0.07,0.33 -0.15,0.66 -0.14,1 0,0.16 0.02,0.33 0.07,0.5 0.05,0.16 0.14,0.31 0.25,0.43 0.2,0.2 0.47,0.31 0.74,0.37 0.28,0.05 0.56,0.06 0.84,0.09 1.25,0.15 2.4,0.75 3.44,1.47 1.04,0.71 2,1.55 3.07,2.22 2.35,1.49 5.16,2.15 7.95,2.26 2.78,0.11 5.56,-0.31 8.3,-0.86 2.17,-0.43 4.33,-0.95 6.39,-1.76 3.16,-1.25 6.01,-3.16 8.72,-5.19 1.24,-0.92 2.46,-1.87 3.57,-2.94 0.37,-0.37 0.74,-0.74 1.14,-1.08 0.4,-0.33 0.85,-0.62 1.35,-0.78 0.76,-0.24 1.58,-0.17 2.37,-0.04 0.59,0.1 1.18,0.23 1.78,0.21 0.3,-0.02 0.6,-0.07 0.88,-0.18 0.28,-0.11 0.54,-0.28 0.73,-0.52 0.25,-0.3 0.38,-0.7 0.38,-1.09 0,-0.4 -0.12,-0.79 -0.32,-1.13 -0.4,-0.68 -1.09,-1.14 -1.81,-1.46 -0.99,-0.44 -2.06,-0.65 -3.11,-0.91 -3.23,-0.78 -6.37,-1.93 -9.34,-3.41 -1.48,-0.73 -2.92,-1.54 -4.37,-2.32 -1.5,-0.8 -3.02,-1.57 -4.64,-2.07 -3.64,-1.1 -7.6,-0.74 -11.19,0.51 -3.98,1.38 -7.58,3.84 -10.31,7.05 z" />
|
||||
<path id="mandible_upper_glare" fill="#f6da4a" filter="url(#blur_mandible_upper_glare)"
|
||||
clip-path="url(#clip_mandible_upper)"
|
||||
d="m 109.45,64.75 c -0.2,-0.24 -0.48,-0.42 -0.78,-0.51 -0.3,-0.09 -0.62,-0.09 -0.93,-0.04 -0.62,0.11 -1.18,0.44 -1.7,0.8 -1.47,1.01 -2.77,2.26 -3.91,3.64 -1.5,1.83 -2.74,3.94 -3.16,6.27 -0.07,0.39 -0.11,0.8 -0.07,1.19 0.05,0.4 0.2,0.79 0.49,1.07 0.24,0.25 0.58,0.4 0.92,0.45 0.35,0.05 0.71,0 1.04,-0.11 0.66,-0.22 1.21,-0.69 1.74,-1.15 2.87,-2.58 5.47,-5.66 6.51,-9.38 0.1,-0.37 0.19,-0.75 0.19,-1.14 0,-0.39 -0.1,-0.78 -0.34,-1.09 z" />
|
||||
<path id="naris_left" opacity="0.8" fill="url(#fill_naris_left)" filter="url(#blur_naris_left)"
|
||||
d="m 92.72,59.06 c -0.77,-0.25 -2.03,1.1 -1.62,1.79 0.11,0.19 0.46,0.43 0.7,0.3 0.35,-0.19 0.64,-0.89 1.02,-1.16 0.25,-0.18 0.2,-0.84 -0.1,-0.93 z" />
|
||||
<path id="naris_right" opacity="0.8" fill="url(#fill_naris_right)" filter="url(#blur_naris_right)"
|
||||
d="m 102.56,59.42 c 0.2,0.64 1.23,0.53 1.83,0.84 0.52,0.27 0.94,0.86 1.53,0.88 0.56,0.01 1.44,-0.2 1.51,-0.76 0.09,-0.73 -0.98,-1.2 -1.67,-1.47 -0.89,-0.34 -2.03,-0.52 -2.86,-0.06 -0.19,0.11 -0.4,0.36 -0.34,0.57 z" />
|
||||
</g>
|
||||
<path id="beak_corner" fill="url(#fill_beak_corner)" filter="url(#blur_beak_corner)"
|
||||
clip-path="url(#clip_beak)"
|
||||
d="m 129.27,69.15 a 2.42,3.1 16.94 0 1 -2.81,3.04 2.42,3.1 16.94 0 1 -2.12,-3.04 2.42,3.1 16.94 0 1 2.81,-3.05 2.42,3.1 16.94 0 1 2.12,3.05 z" />
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 51 KiB |
41
db_xala_dev/Files/svg/notebook.svg
Normal file
@ -0,0 +1,41 @@
|
||||
<?xml version="1.0" encoding="iso-8859-1"?>
|
||||
<!-- Uploaded to: SVG Repo, www.svgrepo.com, Generator: SVG Repo Mixer Tools -->
|
||||
<svg height="100" width="100" version="1.1" id="Capa_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||
viewBox="0 0 470 470" xml:space="preserve">
|
||||
<g>
|
||||
<path style="fill:#F53635;" d="M418.776,435v12.5c0,4.136,3.364,7.5,7.5,7.5h10c4.136,0,7.5-3.364,7.5-7.5V435H418.776z"/>
|
||||
<rect x="418.776" y="135.813" style="fill:#FAB43E;" width="25" height="284.188"/>
|
||||
<polygon style="fill:#FDF3C2;" points="422.517,120.813 440.036,120.813 431.276,99.742 "/>
|
||||
<path style="fill:#FDF3C2;" d="M136.224,160h155.105V85H136.224V160z M158.724,100h110.105c4.142,0,7.5,3.357,7.5,7.5
|
||||
s-3.358,7.5-7.5,7.5H158.724c-4.142,0-7.5-3.357-7.5-7.5S154.582,100,158.724,100z M158.724,130h110.105c4.142,0,7.5,3.357,7.5,7.5
|
||||
s-3.358,7.5-7.5,7.5H158.724c-4.142,0-7.5-3.357-7.5-7.5S154.582,130,158.724,130z"/>
|
||||
<path style="fill:#C40200;" d="M58.724,440c-4.142,0-7.5-3.357-7.5-7.5v-60c0-4.143,3.358-7.5,7.5-7.5c0.003,0,0.003-15,0.003-15
|
||||
c-4.145,0-7.503-3.357-7.503-7.5v-305c0-4.143,3.358-7.5,7.5-7.5c0.003,0,0.003-15,0.003-15H26.224v440h32.503
|
||||
C58.726,455,58.726,440,58.724,440z"/>
|
||||
<path style="fill:#F53635;" d="M338.829,15H58.726v15c4.141,0.002,7.497,3.358,7.497,7.5v305c0,4.142-3.356,7.498-7.497,7.5v15
|
||||
c4.141,0.002,7.497,3.358,7.497,7.5v60c0,4.142-3.356,7.498-7.497,7.5v15h280.103c12.407,0,22.5-10.094,22.5-22.5v-395
|
||||
C361.329,25.094,351.236,15,338.829,15z M306.329,167.5c0,4.143-3.358,7.5-7.5,7.5H128.724c-4.142,0-7.5-3.357-7.5-7.5v-90
|
||||
c0-4.143,3.358-7.5,7.5-7.5h170.105c4.142,0,7.5,3.357,7.5,7.5V167.5z"/>
|
||||
<path style="fill:#570100;" d="M338.829,0H18.724c-4.142,0-7.5,3.357-7.5,7.5v455c0,4.143,3.358,7.5,7.5,7.5h320.105
|
||||
c20.678,0,37.5-16.822,37.5-37.5v-395C376.329,16.822,359.507,0,338.829,0z M361.329,432.5c0,12.406-10.093,22.5-22.5,22.5H26.224
|
||||
V15h312.605c12.407,0,22.5,10.094,22.5,22.5V432.5z"/>
|
||||
<path style="fill:#570100;" d="M51.224,37.5v305c0,4.143,3.358,7.5,7.5,7.5c4.144-0.002,7.5-3.358,7.5-7.5v-305
|
||||
c0-4.142-3.356-7.498-7.497-7.5C54.582,30,51.224,33.357,51.224,37.5z"/>
|
||||
<path style="fill:#570100;" d="M51.224,372.5v60c0,4.143,3.358,7.5,7.5,7.5c4.144-0.002,7.5-3.358,7.5-7.5v-60
|
||||
c0-4.142-3.356-7.498-7.497-7.5C54.582,365,51.224,368.357,51.224,372.5z"/>
|
||||
<path style="fill:#570100;" d="M298.829,70H128.724c-4.142,0-7.5,3.357-7.5,7.5v90c0,4.143,3.358,7.5,7.5,7.5h170.105
|
||||
c4.142,0,7.5-3.357,7.5-7.5v-90C306.329,73.357,302.971,70,298.829,70z M291.329,160H136.224V85h155.105V160z"/>
|
||||
<path style="fill:#570100;" d="M158.724,115h110.105c4.142,0,7.5-3.357,7.5-7.5s-3.358-7.5-7.5-7.5H158.724
|
||||
c-4.142,0-7.5,3.357-7.5,7.5S154.582,115,158.724,115z"/>
|
||||
<path style="fill:#570100;" d="M158.724,145h110.105c4.142,0,7.5-3.357,7.5-7.5s-3.358-7.5-7.5-7.5H158.724
|
||||
c-4.142,0-7.5,3.357-7.5,7.5S154.582,145,158.724,145z"/>
|
||||
<path style="fill:#570100;" d="M458.739,127.566c-0.018-0.184-0.05-0.365-0.081-0.545c-0.011-0.061-0.016-0.122-0.028-0.183
|
||||
c-0.045-0.225-0.102-0.445-0.166-0.662c-0.005-0.017-0.008-0.033-0.013-0.05c-0.08-0.262-0.173-0.518-0.28-0.767l-19.969-48.034
|
||||
c-1.163-2.798-3.896-4.621-6.925-4.621s-5.762,1.823-6.925,4.621l-19.969,48.034c-0.107,0.249-0.2,0.505-0.28,0.767
|
||||
c-0.005,0.017-0.008,0.033-0.013,0.05c-0.064,0.217-0.121,0.437-0.166,0.662c-0.012,0.061-0.017,0.122-0.028,0.183
|
||||
c-0.031,0.18-0.063,0.361-0.081,0.545c-0.025,0.248-0.038,0.497-0.038,0.747V447.5c0,12.406,10.093,22.5,22.5,22.5h10
|
||||
c12.407,0,22.5-10.094,22.5-22.5V128.313C458.776,128.063,458.763,127.813,458.739,127.566z M436.276,455h-10
|
||||
c-4.136,0-7.5-3.364-7.5-7.5V435h25v12.5C443.776,451.636,440.412,455,436.276,455z M443.776,135.813V420h-25V135.813H443.776z
|
||||
M422.517,120.813l8.76-21.07l8.76,21.07H422.517z"/>
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 3.7 KiB |
14
db_xala_dev/Files/svg/postgresql.svg
Normal file
@ -0,0 +1,14 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" x="0px" y="0px" width="100" height="100" viewBox="0 0 48 48">
|
||||
<path fill="#fff"
|
||||
d="M44.083,29.79c-0.183-0.829-0.935-1.796-2.452-1.796c-0.31,0-0.649,0.039-1.035,0.119c-0.708,0.146-1.311,0.217-1.842,0.241c4.133-7.04,6.816-16.819,4.159-20.214c-3.501-4.473-8.214-5.141-10.711-5.141L31.967,3c-0.929,0.015-1.893,0.129-2.863,0.339l-3.583,0.774C25.033,4.052,24.536,4.009,24.018,4l-0.03,0l-0.016,0l-0.152-0.001c-1.593,0-3.046,0.338-4.341,0.973l-1.251-0.493c-1.72-0.678-4.308-1.485-6.868-1.485c-0.144,0-0.287,0.003-0.431,0.008C8.407,3.093,6.241,4.05,4.664,5.769C2.696,7.915,1.8,11.054,2.003,15.1C2.013,15.309,4.461,36,11.4,36h0.025l0.064-0.001c0.901-0.022,1.76-0.384,2.563-1.077c0.613,0.46,1.406,0.732,2.145,0.84c0.488,0.115,1.366,0.278,2.418,0.278c1.284,0,2.442-0.263,3.44-0.738c-0.001,0.88-0.006,1.994-0.016,3.418l-0.001,0.075l0.005,0.075c0.097,1.419,0.342,2.698,0.711,3.701c1.051,2.859,2.866,4.434,5.111,4.434c0.093,0,0.188-0.003,0.284-0.009c1.846-0.114,3.717-1.151,5.004-2.772c1.393-1.755,1.715-3.607,1.839-5.026L35,39.111v-0.088v-4.079l0.103,0.01l0.436,0.038l0.042,0.004l0.042,0.002c0.124,0.006,0.252,0.008,0.381,0.008c1.507,0,3.362-0.391,4.616-0.974C41.819,33.476,44.559,31.948,44.083,29.79z">
|
||||
</path>
|
||||
<path fill="#0277bd"
|
||||
d="M33,34c0-0.205,0.012-0.376,0.018-0.565C33.008,33.184,33,33,33,33s0.012-0.009,0.032-0.022c0.149-2.673,0.886-3.703,1.675-4.29c-0.11-0.153-0.237-0.318-0.356-0.475c-0.333-0.437-0.748-0.979-1.192-1.674l-0.082-0.158c-0.067-0.164-0.229-0.447-0.435-0.819c-1.183-2.14-3.645-6.592-1.96-9.404c0.738-1.232,2.122-1.942,4.121-2.117C33.986,11.718,30.925,6.115,23.985,6c-0.002,0-0.004,0-0.006,0c-6.041-0.098-8.026,5.392-8.672,8.672c0.89-0.377,1.906-0.606,2.836-0.606c0.014,0,0.029,0,0.043,0c2.29,0.017,3.865,1.239,4.323,3.354c0.335,1.552,0.496,2.91,0.492,4.153c-0.01,2.719-0.558,4.149-1.042,5.411l-0.154,0.408c-0.124,0.334-0.255,0.645-0.379,0.937c-0.126,0.298-0.237,0.563-0.318,0.802c0.484,0.11,0.864,0.265,1.125,0.38l0.151,0.066c0.047,0.02,0.094,0.043,0.137,0.069c0.848,0.516,1.376,1.309,1.489,2.233c0.061,0.498,0.051,3.893,0.03,6.855c0.087,1.285,0.305,2.364,0.593,3.146c0.409,1.114,1.431,3.241,3.394,3.119c1.37-0.085,2.687-0.919,3.561-2.019c0.938-1.181,1.284-2.487,1.414-3.958V34z">
|
||||
</path>
|
||||
<path fill="#0277bd"
|
||||
d="M15.114 28.917c-1.613-1.683-2.399-3.947-2.104-6.056.285-2.035.124-4.027.037-5.098-.029-.357-.048-.623-.047-.77 0-.008.002-.015.003-.023 0-.004-.002-.007-.002-.011.121-3.021 1.286-7.787 4.493-10.62C15.932 5.724 13.388 4.913 11 5 7.258 5.136 3.636 7.724 4 15c.137 2.73 3.222 19.103 7.44 19 .603-.015 1.229-.402 1.872-1.176 1.017-1.223 2.005-2.332 2.708-3.104C15.705 29.481 15.401 29.217 15.114 28.917zM37.023 14.731c.015.154.002.286-.022.408.031.92-.068 1.813-.169 2.677-.074.636-.15 1.293-.171 1.952-.021.645.07 1.282.166 1.956.225 1.578.459 3.359-.765 5.437.225.296.423.571.581.837 4.61-7.475 6.468-16.361 4.695-18.626C38.655 5.944 34.941 4.952 31.999 5c-.921.015-1.758.139-2.473.294C34.602 7.754 36.863 13.026 37.023 14.731zM41 30.071c-2.665.55-3.947.257-4.569-.126-.1.072-.2.133-.293.19-.372.225-.961.583-1.105 2.782.083.016.156.025.246.044L35.714 33c1.32.06 3.049-.31 4.063-.781C41.962 31.205 43.153 29.627 41 30.071zM22.023 32.119c-.037-.298-.198-.539-.492-.732l-.108-.047C21.062 31.181 20.653 31 20 31h-.004c-.127.01-.253.019-.38.019-.052 0-.103-.007-.155-.009-.474.365-1.148.647-2.816.99-2.98.759-1.221 1.655-.078 1.794 1.106.277 3.735.614 5.481-.809C22.043 32.537 22.035 32.229 22.023 32.119z">
|
||||
</path>
|
||||
<path fill="#0277bd"
|
||||
d="M20.681 18.501c-.292.302-.753.566-1.262.484-.828-.134-1.463-1.133-1.417-1.508h0c.044-.374.751-.569 1.578-.435.287.047.548.128.768.228-.32-.688-.899-1.085-1.782-1.182-1.565-.174-3.226.644-3.56 1.097.007.11.02.251.033.417.093 1.147.265 3.284-.05 5.537-.208 1.485.393 3.169 1.567 4.395.757.79 1.641 1.29 2.513 1.438.111-.478.309-.944.513-1.425.113-.265.233-.547.346-.852l.162-.427c.443-1.155.9-2.35.909-4.703C21.003 20.66 20.892 19.627 20.681 18.501zM34.847 22.007c-.104-.729-.211-1.484-.185-2.303.023-.742.105-1.442.184-2.119.062-.533.11-1.045.138-1.55-1.289.107-2.145.479-2.551 1.108.168-.057.358-.102.568-.129.892-.116 1.543.141 1.618.637.055.363-.253.705-.388.836-.277.269-.626.442-.981.488-.064.008-.129.012-.192.012-.353 0-.69-.121-.949-.3.112 1.973 1.567 4.612 2.283 5.907.153.277.271.498.369.688C35.154 24.163 35.009 23.143 34.847 22.007z">
|
||||
</path>
|
||||
</svg>
|
After Width: | Height: | Size: 4.3 KiB |
19
db_xala_dev/Files/svg/powershell.svg
Normal file
@ -0,0 +1,19 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" x="0px" y="0px" width="100" height="100" viewBox="0 0 48 48">
|
||||
<linearGradient id="CpX24D3hTlJw-sNITM5NDa_FwaVI1qCE7hQ_gr1" x1="23.1" x2="24.819" y1="6.086" y2="40.569"
|
||||
gradientUnits="userSpaceOnUse">
|
||||
<stop offset=".003" stop-color="#008ded"></stop>
|
||||
<stop offset="1" stop-color="#0061a7"></stop>
|
||||
</linearGradient>
|
||||
<path fill="url(#CpX24D3hTlJw-sNITM5NDa_FwaVI1qCE7hQ_gr1)"
|
||||
d="M19.847,41.956c-5.629-0.002-11.259,0.024-16.888-0.013c-2.855-0.019-3.374-0.7-2.731-3.525 c2.178-9.58,4.427-19.143,6.557-28.734C7.356,7.112,8.588,5.975,11.312,6C22.57,6.106,33.829,6.034,45.088,6.046 c2.824,0.003,3.298,0.614,2.664,3.511c-2.058,9.406-4.129,18.809-6.236,28.203c-0.789,3.516-1.697,4.187-5.353,4.195 C30.724,41.966,25.285,41.958,19.847,41.956z">
|
||||
</path>
|
||||
<path fill="none" stroke="#1d1d1b" stroke-width="2"
|
||||
d="M25.057,23.922c-0.608-0.687-1.114-1.267-1.531-1.732 c-2.43-2.728-4.656-5.27-7.063-7.869c-1.102-1.189-1.453-2.344-0.13-3.518c1.307-1.16,2.592-1.058,3.791,0.277 c3.34,3.717,6.676,7.438,10.071,11.104c1.268,1.369,0.972,2.3-0.424,3.315c-5.359,3.895-10.687,7.833-16.01,11.778 c-1.196,0.887-2.337,1.109-3.304-0.201c-1.066-1.445-0.08-2.305,1.026-3.114c3.955-2.893,7.903-5.798,11.834-8.725 C23.865,24.83,24.595,24.267,25.057,23.922z M21.75,37C20.625,37,20,36,20,35s0.625-2,1.75-2c4.224,0,6.112,0,9.5,0 c1.125,0,1.75,1,1.75,2s-0.625,2-1.75,2C29.125,37,25,37,21.75,37z"
|
||||
opacity=".05"></path>
|
||||
<path fill="none" stroke="#000"
|
||||
d="M25.057,23.922c-0.608-0.687-1.114-1.267-1.531-1.732 c-2.43-2.728-4.656-5.27-7.063-7.869c-1.102-1.189-1.453-2.344-0.13-3.518c1.307-1.16,2.592-1.058,3.791,0.277 c3.34,3.717,6.676,7.438,10.071,11.104c1.268,1.369,0.972,2.3-0.424,3.315c-5.359,3.895-10.687,7.833-16.01,11.778 c-1.196,0.887-2.337,1.109-3.304-0.201c-1.066-1.445-0.08-2.305,1.026-3.114c3.955-2.893,7.903-5.798,11.834-8.725 C23.865,24.83,24.595,24.267,25.057,23.922z M21.75,37C20.625,37,20,36,20,35s0.625-2,1.75-2c4.224,0,6.112,0,9.5,0 c1.125,0,1.75,1,1.75,2s-0.625,2-1.75,2C29.125,37,25,37,21.75,37z"
|
||||
opacity=".07"></path>
|
||||
<path fill="#fafafa"
|
||||
d="M25.057,23.922c-0.608-0.687-1.114-1.267-1.531-1.732c-2.43-2.728-4.656-5.27-7.063-7.869 c-1.102-1.189-1.453-2.344-0.13-3.518c1.307-1.16,2.592-1.058,3.791,0.277c3.34,3.717,6.676,7.438,10.071,11.104 c1.268,1.369,0.972,2.3-0.424,3.315c-5.359,3.895-10.687,7.833-16.01,11.778c-1.196,0.887-2.337,1.109-3.304-0.201 c-1.066-1.445-0.08-2.305,1.026-3.114c3.955-2.893,7.903-5.798,11.834-8.725C23.865,24.83,24.595,24.267,25.057,23.922z M21.75,37 C20.625,37,20,36,20,35s0.625-2,1.75-2c4.224,0,6.112,0,9.5,0c1.125,0,1.75,1,1.75,2s-0.625,2-1.75,2C29.125,37,25,37,21.75,37z">
|
||||
</path>
|
||||
</svg>
|
After Width: | Height: | Size: 2.7 KiB |
8
db_xala_dev/Files/svg/python.svg
Normal file
@ -0,0 +1,8 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" x="0px" y="0px" width="100" height="100" viewBox="0 0 48 48">
|
||||
<path fill="#0277BD"
|
||||
d="M24.047,5c-1.555,0.005-2.633,0.142-3.936,0.367c-3.848,0.67-4.549,2.077-4.549,4.67V14h9v2H15.22h-4.35c-2.636,0-4.943,1.242-5.674,4.219c-0.826,3.417-0.863,5.557,0,9.125C5.851,32.005,7.294,34,9.931,34h3.632v-5.104c0-2.966,2.686-5.896,5.764-5.896h7.236c2.523,0,5-1.862,5-4.377v-8.586c0-2.439-1.759-4.263-4.218-4.672C27.406,5.359,25.589,4.994,24.047,5z M19.063,9c0.821,0,1.5,0.677,1.5,1.502c0,0.833-0.679,1.498-1.5,1.498c-0.837,0-1.5-0.664-1.5-1.498C17.563,9.68,18.226,9,19.063,9z">
|
||||
</path>
|
||||
<path fill="#FFC107"
|
||||
d="M23.078,43c1.555-0.005,2.633-0.142,3.936-0.367c3.848-0.67,4.549-2.077,4.549-4.67V34h-9v-2h9.343h4.35c2.636,0,4.943-1.242,5.674-4.219c0.826-3.417,0.863-5.557,0-9.125C41.274,15.995,39.831,14,37.194,14h-3.632v5.104c0,2.966-2.686,5.896-5.764,5.896h-7.236c-2.523,0-5,1.862-5,4.377v8.586c0,2.439,1.759,4.263,4.218,4.672C19.719,42.641,21.536,43.006,23.078,43z M28.063,39c-0.821,0-1.5-0.677-1.5-1.502c0-0.833,0.679-1.498,1.5-1.498c0.837,0,1.5,0.664,1.5,1.498C29.563,38.32,28.899,39,28.063,39z">
|
||||
</path>
|
||||
</svg>
|
After Width: | Height: | Size: 1.1 KiB |
3
db_xala_dev/Files/svg/raspberry_pi.svg
Normal file
After Width: | Height: | Size: 5.2 KiB |
2
db_xala_dev/Files/svg/readme.md
Normal file
@ -0,0 +1,2 @@
|
||||
Las imagenes las encuentro en el sitio:
|
||||
[[ https://www.svgrepo.com/ | SVG ]]
|
BIN
db_xala_dev/Files/xlsx_n_xlsx/a_home.xlsx
Normal file
BIN
db_xala_dev/Files/xlsx_n_xlsx/b_all_posts.xlsx
Normal file
BIN
db_xala_dev/Files/xlsx_n_xlsx/c_about_me.xlsx
Normal file
BIN
db_xala_dev/Files/xlsx_n_xlsx/d_glorary.xlsx
Normal file
BIN
db_xala_dev/Files/xlsx_n_xlsx/e_ext.xlsx
Normal file
57
db_xala_dev/db_sqlite.py
Normal file
@ -0,0 +1,57 @@
|
||||
# sudo chmod 664 /var/www/xala.dev/db_xala_dev/xala_dev.db
|
||||
# sudo chown -R www-data:www-data /var/www/xala.dev/db_xala_dev
|
||||
# sudo chmod -R 775 /var/www/xala.dev/db_xala_dev
|
||||
# sudo chmod 755 /var/www/xala.dev/db_xala_dev
|
||||
# sudo chmod 750 /var/www/xala.dev/db_xala_dev
|
||||
|
||||
|
||||
# sudo chown www-data:www-data /var/www/xala.dev/db_xala_dev/xala_dev.db
|
||||
# sudo chmod 660 /var/www/xala.dev/db_xala_dev/xala_dev.db
|
||||
# sudo chown www-data:www-data /var/www/xala.dev/db_xala_dev
|
||||
# sudo chmod 770 /var/www/xala.dev/db_xala_dev
|
||||
|
||||
import sqlite3
|
||||
|
||||
class DBSQLite:
|
||||
def __init__(self, db_path):
|
||||
self.db_path = db_path
|
||||
|
||||
def _connect(self):
|
||||
"""Crea y retorna una conexión a la base de datos."""
|
||||
try:
|
||||
return sqlite3.connect(self.db_path)
|
||||
except sqlite3.Error as e:
|
||||
print(f"Error al conectar con la base de datos: {e}")
|
||||
return None
|
||||
|
||||
def get_data(self, query):
|
||||
"""Ejecuta una consulta SELECT y retorna los resultados."""
|
||||
conn = self._connect()
|
||||
if not conn:
|
||||
return None
|
||||
try:
|
||||
with conn:
|
||||
cursor = conn.cursor()
|
||||
cursor.execute(query)
|
||||
return cursor.fetchall()
|
||||
except sqlite3.Error as e:
|
||||
print(f"Error en la consulta: {e}")
|
||||
return None
|
||||
finally:
|
||||
conn.close()
|
||||
|
||||
def execute_query(self, query, params=()):
|
||||
"""Ejecuta una consulta INSERT, UPDATE o DELETE."""
|
||||
conn = self._connect()
|
||||
if not conn:
|
||||
return False
|
||||
try:
|
||||
with conn:
|
||||
cursor = conn.cursor()
|
||||
cursor.execute(query, params)
|
||||
return True
|
||||
except sqlite3.Error as e:
|
||||
print(f"Error al ejecutar la consulta: {e}")
|
||||
return False
|
||||
finally:
|
||||
conn.close()
|
12
db_xala_dev/views.py
Normal file
@ -0,0 +1,12 @@
|
||||
v = {
|
||||
'home': 'home.html',
|
||||
'seccion': 'seccion/a_seccion.html',
|
||||
'tema': 'seccion/b_tema.html',
|
||||
'test': 'ayuda_template.html',
|
||||
'm.i.': {
|
||||
'me': 'more_info/about_me.html',
|
||||
'np': 'new_posts.html',
|
||||
'pjs': 'more_info/personal_projects.html',
|
||||
'cv': 'static/source_imgs/cv/CV_David_Itehua_Xalamihua.pdf'
|
||||
}
|
||||
}
|
BIN
db_xala_dev/xala_dev.db
Normal file
0
log/access.log
Normal file
0
log/error.log
Normal file
147
main.py
Normal file
@ -0,0 +1,147 @@
|
||||
|
||||
from flask import Flask, render_template, jsonify, send_file, url_for
|
||||
import os
|
||||
from pprint import pprint
|
||||
|
||||
# from py_funcs.db_connect import DB # esta la debes de eliminar
|
||||
from db_xala_dev.db_sqlite import DBSQLite
|
||||
from db_xala_dev.views import v
|
||||
|
||||
# INTEGRAR EL USO DE CACHE
|
||||
from flask_caching import Cache
|
||||
|
||||
# from py_funcs.confs import ext
|
||||
|
||||
# export n_server="Servidor No. X";
|
||||
n_server = os.getenv("n_server")
|
||||
|
||||
app = Flask(__name__)
|
||||
|
||||
import platform
|
||||
|
||||
|
||||
db_path = None
|
||||
|
||||
if 'microsoft' in platform.uname().release.lower():
|
||||
db_path = os.path.join(os.getcwd(), "db_xala_dev/xala_dev.db")
|
||||
elif platform.system() == "Linux":
|
||||
db_path = "/var/www/xala.dev/db_xala_dev/xala_dev.db"
|
||||
|
||||
DB = DBSQLite(db_path)
|
||||
|
||||
@app.route('/')
|
||||
def home():
|
||||
q_dataHome = "SELECT pk, label, svg_data FROM home;"
|
||||
dataHome = DB.get_data(q_dataHome)
|
||||
|
||||
return render_template(v['home'], dataHome=dataHome, n_server=n_server)
|
||||
|
||||
@app.route('/latest-posts')
|
||||
def latest_posts():
|
||||
q_last_data = "SELECT id, pk, titulo_tema FROM ALL_POSTS ORDER BY id DESC LIMIT 7;"
|
||||
last_data = DB.get_data(q_last_data)
|
||||
return jsonify(last_data)
|
||||
|
||||
|
||||
@app.route('/section/<subseccion_name>')
|
||||
def subseccion(subseccion_name):
|
||||
|
||||
q_cur_ext = f"SELECT ext FROM exts WHERE pk = '{subseccion_name}';"
|
||||
cur_ext = DB.get_data(q_cur_ext)[0][0]
|
||||
|
||||
q_dataHome = f"SELECT * FROM home WHERE pk = '{subseccion_name}';"
|
||||
dataHome = DB.get_data(q_dataHome)
|
||||
|
||||
q_db_subtemas = f"SELECT id, pk, titulo_tema, sintesis FROM all_posts WHERE pk = '{subseccion_name}';"
|
||||
db_subtemas = DB.get_data(q_db_subtemas)
|
||||
|
||||
return render_template(v['seccion'], dataHome=dataHome, db_subtemas=db_subtemas, cur_ext=cur_ext, subseccion_name=subseccion_name)
|
||||
|
||||
@app.route('/section/<subseccion_name>/tema/<index_tema>')
|
||||
def subseccion_tema(subseccion_name, index_tema):
|
||||
|
||||
# retorna la extensión para ruta actual del usuario (eje. cat file.txt)
|
||||
q_cur_ext = f"SELECT ext FROM exts WHERE pk = '{subseccion_name}';"
|
||||
cur_ext_base = DB.get_data(q_cur_ext)[0][0]
|
||||
|
||||
# obtener solo la información necesaria de la base de datos
|
||||
# me quede en esta línea, debes de borrar la columna html_template
|
||||
q_data = f"SELECT date, status, titulo_tema, html_alert, lst_glosary, lst_post_related FROM all_posts WHERE pk = '{subseccion_name}' AND id = {index_tema};"
|
||||
data = DB.get_data(q_data)
|
||||
|
||||
# información del glosario
|
||||
lst_glosary = [str(ele).strip() for ele in data[0][4].split(',')]
|
||||
|
||||
# el alerta, para que tipo de sistema es aplicable la nota
|
||||
alert= 'no_template' if f'{data[0][3]}' == 'nan' else f'{data[0][3]}'
|
||||
|
||||
# notas relacionadas
|
||||
f_lst_glosary = [DB.get_data(f"SELECT * FROM glosary WHERE pk = '{str(ele).strip()}'") for ele in lst_glosary]
|
||||
|
||||
links_related = f'{data[0][5]}'.split(',')
|
||||
if links_related[0] != 'None':
|
||||
links_lambda = lambda x: f"SELECT pk, id, titulo_tema FROM all_posts WHERE id = {int(f'{x}'.strip())};"
|
||||
f_lst_data_links = [DB.get_data(links_lambda(id))[0] for id in links_related]
|
||||
else:
|
||||
f_lst_data_links = []
|
||||
|
||||
cat_file = f'cat f_{subseccion_name}_{index_tema}'
|
||||
|
||||
template_path=f'html_template/{index_tema}.html'
|
||||
|
||||
return render_template(v['tema'], data=data, cur_ext_base=cur_ext_base, subseccion_name=subseccion_name, f_lst_glosary=f_lst_glosary, f_lst_data_links=f_lst_data_links, cat_file=cat_file, alert=alert, template_path=template_path)
|
||||
|
||||
|
||||
|
||||
@app.route('/more-info/about-me')
|
||||
def about_me():
|
||||
data = DB.get_data('SELECT * FROM about_me;')
|
||||
lst_glosary = data[0][1].split(", ")
|
||||
f_lst_glosary = [DB.get_data(f"SELECT * FROM glosary WHERE pk = '{str(ele).strip()}'") for ele in lst_glosary]
|
||||
|
||||
return render_template(v['m.i.']['me'], data=data, f_lst_glosary=f_lst_glosary)
|
||||
|
||||
|
||||
@app.route('/more-info/all-posts')
|
||||
def all_posts():
|
||||
|
||||
q_final = '''
|
||||
SELECT DISTINCT a.pk, e.name FROM all_posts a
|
||||
INNER JOIN exts e ON e.pk = a.pk ;
|
||||
'''
|
||||
final = DB.get_data(q_final)
|
||||
|
||||
q = '''
|
||||
SELECT AP.id, AP.pk, AP.date, AP.titulo_tema, AP.sintesis, H.icon
|
||||
FROM ALL_POSTS AP
|
||||
INNER JOIN home H ON AP.PK = H.PK;
|
||||
'''
|
||||
db_newPosts = DB.get_data(q)
|
||||
return render_template(v['m.i.']['np'], db_newPosts=db_newPosts, db_mainSections=final)
|
||||
|
||||
|
||||
|
||||
@app.route('/more-info/projects')
|
||||
def projects():
|
||||
return render_template(v['m.i.']['pjs'])
|
||||
|
||||
@app.route('/more-info/cv')
|
||||
def cv():
|
||||
filePath=v['m.i.']['cv']
|
||||
return send_file(filePath, as_attachment=True)
|
||||
|
||||
# solo ayuda dix template
|
||||
@app.route('/ayuda-template')
|
||||
def ayuda_template():
|
||||
data_links = [("ps-wt", 2, "¿Cómo crear una variable de entorno en Windows?")]
|
||||
return render_template(v['test'], data_links=data_links)
|
||||
|
||||
|
||||
# # Manejo del error 404
|
||||
# @app.errorhandler(404)
|
||||
# def page_not_found(error):
|
||||
# return render_template('404.html'), 404
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
app.run(debug=True, port=8088, host='0.0.0.0')
|
16
requirements.txt
Normal file
@ -0,0 +1,16 @@
|
||||
blinker==1.9.0
|
||||
click==8.1.8
|
||||
et_xmlfile==2.0.0
|
||||
Flask==3.1.0
|
||||
itsdangerous==2.2.0
|
||||
Jinja2==3.1.5
|
||||
MarkupSafe==3.0.2
|
||||
numpy==2.2.3
|
||||
openpyxl==3.1.5
|
||||
pandas==2.2.3
|
||||
python-dateutil==2.9.0.post0
|
||||
pytz==2025.1
|
||||
six==1.17.0
|
||||
tqdm==4.67.1
|
||||
tzdata==2025.1
|
||||
Werkzeug==3.1.3
|
33
static/a.1_new_posts/btn_sear_note.js
Normal file
@ -0,0 +1,33 @@
|
||||
//
|
||||
|
||||
(() => {
|
||||
|
||||
let search = document.getElementById("search_all_posts");
|
||||
|
||||
let whole_data = document.querySelectorAll("div.card-cont");
|
||||
|
||||
let filtered_data = Array.from(whole_data).filter(element => {
|
||||
return element.style.display === 'block';
|
||||
});
|
||||
|
||||
|
||||
search.addEventListener("input", () => {
|
||||
let value = search.value.toLowerCase();
|
||||
whole_data.forEach(ele => {
|
||||
|
||||
// if (ele.style.display == 'block') {
|
||||
|
||||
let title = ele.querySelector("span.title-card").innerText.toLowerCase();
|
||||
let desc = ele.querySelector("div.card-body-text").innerText.toLowerCase();
|
||||
|
||||
if (!title.includes(value) && !desc.includes(value)) {
|
||||
ele.style.display = 'none';
|
||||
} else {
|
||||
ele.style.display = 'block';
|
||||
}
|
||||
// }
|
||||
});
|
||||
// console.log(value)
|
||||
});
|
||||
|
||||
})();
|
70
static/a.1_new_posts/new_posts.css
Normal file
@ -0,0 +1,70 @@
|
||||
|
||||
#section_topics {
|
||||
display: grid;
|
||||
border: 3px solid rgb(255, 255, 255);
|
||||
border-radius: 5px;
|
||||
margin-top: 1em;
|
||||
margin-bottom: 1em;
|
||||
padding: 0.5em;
|
||||
font-size: 1.25em;
|
||||
}
|
||||
|
||||
.all_new_posts {
|
||||
display: grid;
|
||||
column-gap: 0.5em;
|
||||
row-gap: 1em;
|
||||
}
|
||||
|
||||
/* media querys */
|
||||
|
||||
@media only screen and (max-width: 767px) {
|
||||
/* Reglas CSS para pantallas de celulares */
|
||||
/* red */
|
||||
#section_topics {
|
||||
grid-template-columns: repeat(2, 1fr);
|
||||
}
|
||||
|
||||
.all_new_posts {
|
||||
grid-template-columns: repeat(2, 1fr);
|
||||
grid-template-rows: repeat(auto, 1fr);
|
||||
}
|
||||
}
|
||||
|
||||
@media only screen and (min-width: 768px) and (max-width: 991px) {
|
||||
/* Reglas CSS para tablets */
|
||||
/* purple */
|
||||
#section_topics {
|
||||
grid-template-columns: repeat(3, 1fr);
|
||||
}
|
||||
|
||||
.all_new_posts {
|
||||
grid-template-columns: repeat(3, 1fr);
|
||||
grid-template-rows: repeat(auto, 1fr);
|
||||
}
|
||||
}
|
||||
|
||||
@media only screen and (min-width: 992px) and (max-width: 1199px) {
|
||||
/* Reglas CSS para laptops */
|
||||
/* green */
|
||||
#section_topics {
|
||||
grid-template-columns: repeat(4, 1fr);
|
||||
}
|
||||
|
||||
.all_new_posts {
|
||||
grid-template-columns: repeat(3, 1fr);
|
||||
grid-template-rows: repeat(auto, 1fr);
|
||||
}
|
||||
}
|
||||
|
||||
@media only screen and (min-width: 1200px) {
|
||||
/* Reglas CSS para monitores ultra wide */
|
||||
/* yellow */
|
||||
#section_topics {
|
||||
grid-template-columns: repeat(5, 1fr);
|
||||
}
|
||||
|
||||
.all_new_posts {
|
||||
grid-template-columns: repeat(4, 1fr);
|
||||
grid-template-rows: repeat(auto, 1fr);
|
||||
}
|
||||
}
|
59
static/a.1_new_posts/new_posts.js
Normal file
@ -0,0 +1,59 @@
|
||||
// 1.- que al cargar la página todos los checkbox esten es su modo uncheck y las tarjetas esten en modo display none
|
||||
|
||||
let checkBox = document.querySelectorAll("input.form-check-input");
|
||||
|
||||
function btn_checkBox(keySelector) {
|
||||
|
||||
let btn = document.getElementById(`${keySelector}`);
|
||||
let lst_cards = document.querySelectorAll(`div.${keySelector}`);
|
||||
|
||||
btn.addEventListener("click", () => {
|
||||
if (btn.checked) {
|
||||
lst_cards.forEach(card => {
|
||||
card.style.display = "inline";
|
||||
new_posts_localStorage(keySelector, "checked")
|
||||
});
|
||||
} else {
|
||||
lst_cards.forEach(card => {
|
||||
card.style.display = "none";
|
||||
new_posts_localStorage(keySelector, "unchecked")
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
for (let i = 0; i < checkBox.length; i++) {
|
||||
btn_checkBox(checkBox[i].id);
|
||||
}
|
||||
|
||||
function new_posts_localStorage(id, status) {
|
||||
if (localStorage != null) {
|
||||
localStorage.setItem(id, status);
|
||||
}
|
||||
}
|
||||
|
||||
// autoseleccionado o deseleccionado de los elementos
|
||||
(() => {
|
||||
if (localStorage != null) {
|
||||
// deseleccionar los checkbox
|
||||
for (let i = 0; i < localStorage.length; i++) {
|
||||
let key = localStorage.key(i);
|
||||
let value = localStorage.getItem(key);
|
||||
let chkbox = document.getElementById(key);
|
||||
if (value == 'unchecked') {
|
||||
chkbox.checked = false;
|
||||
let lst_cards = document.querySelectorAll(`div.${key}`);
|
||||
lst_cards.forEach(card => {
|
||||
card.style.display = "none";
|
||||
});
|
||||
} else if (value == "checked") {
|
||||
chkbox.checked = true;
|
||||
let lst_cards = document.querySelectorAll(`div.${key}`);
|
||||
lst_cards.forEach(card => {
|
||||
card.style.display = "inline";
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
})();
|
||||
|
72
static/a_home/home.css
Normal file
@ -0,0 +1,72 @@
|
||||
.cards_container {
|
||||
display: grid;
|
||||
row-gap: 1em;
|
||||
column-gap: 1em;
|
||||
/* grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); */
|
||||
}
|
||||
|
||||
.card-body {
|
||||
text-align: center;
|
||||
width: 10px;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/* media querys */
|
||||
|
||||
@media only screen and (max-width: 767px) {
|
||||
|
||||
/* red */
|
||||
svg {
|
||||
height: 50px;
|
||||
width: auto;
|
||||
}
|
||||
|
||||
.cards_container {
|
||||
grid-template-columns: repeat(2, 1fr);
|
||||
}
|
||||
}
|
||||
|
||||
@media only screen and (min-width: 768px) and (max-width: 991px) {
|
||||
|
||||
/* purple */
|
||||
svg {
|
||||
height: 50px;
|
||||
width: auto;
|
||||
}
|
||||
|
||||
.cards_container {
|
||||
grid-template-columns: repeat(3, 1fr);
|
||||
}
|
||||
}
|
||||
|
||||
@media only screen and (min-width: 992px) and (max-width: 1199px) {
|
||||
|
||||
/* green */
|
||||
svg {
|
||||
height: 100px;
|
||||
width: auto;
|
||||
}
|
||||
|
||||
.cards_container {
|
||||
grid-template-columns: repeat(4, 1fr);
|
||||
}
|
||||
}
|
||||
|
||||
@media only screen and (min-width: 1200px) {
|
||||
|
||||
/* yellow */
|
||||
svg {
|
||||
height: 150px;
|
||||
width: auto;
|
||||
}
|
||||
|
||||
.cards_container {
|
||||
grid-template-columns: repeat(5, 1fr);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
24
static/b_tema_subseccion/tema/btn-toggle.js
Normal file
@ -0,0 +1,24 @@
|
||||
(() => {
|
||||
let btnCode = document.getElementById("btn-code");
|
||||
btnCode.addEventListener("change", () => {
|
||||
let lst_ele = ['p', 'img', 'ol.lst', 'ul.lst'];
|
||||
if (btnCode.checked) {
|
||||
lst_ele.forEach(selector => {
|
||||
document.querySelectorAll(selector).forEach(element => {
|
||||
element.style.display = 'none';
|
||||
});
|
||||
});
|
||||
} else {
|
||||
lst_ele.forEach(selector => {
|
||||
document.querySelectorAll(selector).forEach(element => {
|
||||
if (element.tagName == 'IMG'){
|
||||
element.style.display = 'inline'
|
||||
}else{
|
||||
element.style.display = 'block';
|
||||
}
|
||||
|
||||
});
|
||||
});
|
||||
}
|
||||
});
|
||||
})();
|
419
static/b_tema_subseccion/tema/tema.css
Normal file
@ -0,0 +1,419 @@
|
||||
|
||||
/* inicio estilo imagen zoom */
|
||||
/* Estilo para el modal */
|
||||
.modal-img {
|
||||
position: fixed;
|
||||
top: 0;
|
||||
left: 0;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
background: rgba(0, 0, 0, 0.8); /* Fondo oscuro con opacidad */
|
||||
display: none; /* Ocultarlo por defecto */
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
backdrop-filter: blur(10px); /* Efecto borroso */
|
||||
z-index: 1000;
|
||||
}
|
||||
|
||||
/* Contenido del modal */
|
||||
.modal-img-content {
|
||||
position: relative;
|
||||
max-width: 90%; /* Limita el tamaño de la imagen */
|
||||
max-height: 90%;
|
||||
}
|
||||
|
||||
/* Imagen ampliada */
|
||||
.modal-img-content img {
|
||||
width: 100%;
|
||||
height: auto;
|
||||
border-radius: 8px;
|
||||
}
|
||||
|
||||
/* Clase activa para mostrar el modal */
|
||||
.modal-img.active {
|
||||
display: flex;
|
||||
}
|
||||
|
||||
/* Cursor de la imagen zoomable */
|
||||
.zoomable img {
|
||||
cursor: zoom-in;
|
||||
}
|
||||
|
||||
/* Botón de cierre */
|
||||
.close-btn {
|
||||
position: absolute;
|
||||
top: 10px;
|
||||
right: 10px;
|
||||
background: none;
|
||||
border: none;
|
||||
color: #fb8500;
|
||||
font-size: 40px;
|
||||
cursor: pointer;
|
||||
z-index: 1001;
|
||||
}
|
||||
|
||||
.close-btn:hover {
|
||||
color: red;
|
||||
}
|
||||
|
||||
/* final estilo imagen zoom */
|
||||
|
||||
|
||||
div.img{
|
||||
/* border: 2px solid red; */
|
||||
text-align: center;
|
||||
& img{
|
||||
/* width: 100vw !important; */
|
||||
height: auto;
|
||||
border-radius: 10px;
|
||||
margin-top: 1em;
|
||||
margin-bottom: 1em;
|
||||
}
|
||||
}
|
||||
|
||||
a.link {
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.lst{
|
||||
& li{
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
#accordionExample{
|
||||
margin-top: 1em;
|
||||
}
|
||||
|
||||
.subtitle {
|
||||
margin-top: 0.5em;
|
||||
margin-bottom: 1em;
|
||||
}
|
||||
|
||||
.alert-primary {
|
||||
margin-top: 0.5em;
|
||||
margin-bottom: 0.5em;
|
||||
display: none;
|
||||
}
|
||||
|
||||
/* inicio estilo sección de código */
|
||||
i.bi-copy {
|
||||
font-size: 0.95em;
|
||||
cursor: pointer;
|
||||
/* padding-left: 0.5em; */
|
||||
}
|
||||
|
||||
/* final estilo sección de código */
|
||||
|
||||
.a_noStyle {
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
.tema_imgs_div {
|
||||
display: grid;
|
||||
row-gap: 2em;
|
||||
}
|
||||
|
||||
.sng_img {
|
||||
margin-top: 1.5em;
|
||||
margin-bottom: 1.5em;
|
||||
border-radius: 6px;
|
||||
}
|
||||
|
||||
li {
|
||||
margin-top: 0.5em;
|
||||
margin-bottom: 0.5em;
|
||||
}
|
||||
|
||||
/* inicio pre>code */
|
||||
|
||||
/* inicio otro test */
|
||||
/*
|
||||
|
||||
Atom One Light by Daniel Gamage
|
||||
Original One Light Syntax theme from https://github.com/atom/one-light-syntax
|
||||
|
||||
base: #fafafa
|
||||
mono-1: #383a42
|
||||
mono-2: #686b77
|
||||
mono-3: #a0a1a7
|
||||
hue-1: #0184bb
|
||||
hue-2: #4078f2
|
||||
hue-3: #a626a4
|
||||
hue-4: #50a14f
|
||||
hue-5: #e45649
|
||||
hue-5-2: #c91243
|
||||
hue-6: #986801
|
||||
hue-6-2: #c18401
|
||||
|
||||
*/
|
||||
|
||||
|
||||
pre {
|
||||
margin-top: 1em;
|
||||
margin-bottom: 1em;
|
||||
}
|
||||
|
||||
|
||||
|
||||
.code_lightMode {
|
||||
&.hljs {
|
||||
border: 2px solid black !important;
|
||||
}
|
||||
|
||||
&.hljs {
|
||||
color: #383a42 !important;
|
||||
background: #fafafa !important;
|
||||
border-radius: 6px !important;
|
||||
}
|
||||
|
||||
.hljs-quote,
|
||||
.hljs-comment {
|
||||
color: #a0a1a7 !important;
|
||||
font-style: italic !important;
|
||||
}
|
||||
|
||||
.hljs-doctag,
|
||||
.hljs-keyword,
|
||||
.hljs-formula {
|
||||
color: #a626a4 !important;
|
||||
}
|
||||
|
||||
.hljs-section,
|
||||
.hljs-name,
|
||||
.hljs-selector-tag,
|
||||
.hljs-deletion,
|
||||
.hljs-subst {
|
||||
color: #e45649 !important;
|
||||
}
|
||||
|
||||
.hljs-literal {
|
||||
color: #0184bb !important;
|
||||
}
|
||||
|
||||
.hljs-string,
|
||||
.hljs-regexp,
|
||||
.hljs-addition,
|
||||
.hljs-attribute,
|
||||
.hljs-meta .hljs-string {
|
||||
color: #50a14f !important;
|
||||
}
|
||||
|
||||
.hljs-attr,
|
||||
.hljs-variable,
|
||||
.hljs-template-variable,
|
||||
.hljs-type,
|
||||
.hljs-selector-class,
|
||||
.hljs-selector-attr,
|
||||
.hljs-selector-pseudo,
|
||||
.hljs-number {
|
||||
color: #986801 !important;
|
||||
}
|
||||
|
||||
.hljs-symbol,
|
||||
.hljs-bullet,
|
||||
.hljs-link,
|
||||
.hljs-meta,
|
||||
.hljs-selector-id,
|
||||
.hljs-title {
|
||||
color: #4078f2 !important;
|
||||
}
|
||||
|
||||
.hljs-built_in,
|
||||
.hljs-title.class_,
|
||||
.hljs-class,
|
||||
.hljs-title {
|
||||
color: #c18401 !important;
|
||||
}
|
||||
|
||||
.hljs-emphasis {
|
||||
font-style: italic !important;
|
||||
}
|
||||
|
||||
.hljs-strong {
|
||||
font-weight: bold !important;
|
||||
}
|
||||
|
||||
.hljs-link {
|
||||
text-decoration: underline !important;
|
||||
}
|
||||
}
|
||||
|
||||
/* inicio tema dos */
|
||||
/*
|
||||
|
||||
Atom One Dark by Daniel Gamage
|
||||
Original One Dark Syntax theme from https://github.com/atom/one-dark-syntax
|
||||
|
||||
base: #282c34
|
||||
mono-1: #abb2bf
|
||||
mono-2: #818896
|
||||
mono-3: #5c6370
|
||||
hue-1: #56b6c2
|
||||
hue-2: #61aeee
|
||||
hue-3: #c678dd
|
||||
hue-4: #98c379
|
||||
hue-5: #e06c75
|
||||
hue-5-2: #be5046
|
||||
hue-6: #d19a66
|
||||
hue-6-2: #e6c07b
|
||||
|
||||
*/
|
||||
|
||||
.code_darktMode {
|
||||
&.hljs {
|
||||
color: #abb2bf;
|
||||
background: #282c34;
|
||||
border: 2px solid white;
|
||||
border-radius: 6px;
|
||||
}
|
||||
|
||||
.hljs-comment,
|
||||
.hljs-quote {
|
||||
color: #5c6370;
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
.hljs-doctag,
|
||||
.hljs-keyword,
|
||||
.hljs-formula {
|
||||
color: #c678dd;
|
||||
}
|
||||
|
||||
.hljs-section,
|
||||
.hljs-name,
|
||||
.hljs-selector-tag,
|
||||
.hljs-deletion,
|
||||
.hljs-subst {
|
||||
color: #e06c75;
|
||||
}
|
||||
|
||||
.hljs-literal {
|
||||
color: #56b6c2;
|
||||
}
|
||||
|
||||
.hljs-string,
|
||||
.hljs-regexp,
|
||||
.hljs-addition,
|
||||
.hljs-attribute,
|
||||
.hljs-meta .hljs-string {
|
||||
color: #98c379;
|
||||
}
|
||||
|
||||
.hljs-attr,
|
||||
.hljs-variable,
|
||||
.hljs-template-variable,
|
||||
.hljs-type,
|
||||
.hljs-selector-class,
|
||||
.hljs-selector-attr,
|
||||
.hljs-selector-pseudo,
|
||||
.hljs-number {
|
||||
color: #d19a66;
|
||||
}
|
||||
|
||||
.hljs-symbol,
|
||||
.hljs-bullet,
|
||||
.hljs-link,
|
||||
.hljs-meta,
|
||||
.hljs-selector-id,
|
||||
.hljs-title {
|
||||
color: #61aeee;
|
||||
}
|
||||
|
||||
.hljs-built_in,
|
||||
.hljs-title.class_,
|
||||
.hljs-class .hljs-title {
|
||||
color: #e6c07b;
|
||||
}
|
||||
|
||||
.hljs-emphasis {
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
.hljs-strong {
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.hljs-link {
|
||||
text-decoration: underline;
|
||||
}
|
||||
}
|
||||
|
||||
/* fin otro test */
|
||||
|
||||
/* :root {
|
||||
--selection: rgba(224, 146, 58, 0.35);
|
||||
--background: #242424;
|
||||
--text: #000000;
|
||||
--string: #67b26d;
|
||||
--number: #e78c45;
|
||||
--title: #9e4ee8;
|
||||
--built_in: #d54e53;
|
||||
--keyword: #e5b742;
|
||||
--function: #e0923a;
|
||||
--params: #508be5;
|
||||
--comment: green;
|
||||
--attribute: #e7c547;
|
||||
}
|
||||
|
||||
.hljs-comment,
|
||||
.hljs-quote {
|
||||
color: var(--comment);
|
||||
}
|
||||
|
||||
/* media querys */
|
||||
@media only screen and (max-width: 767px) {
|
||||
/* Reglas CSS para pantallas de celulares */
|
||||
/* red */
|
||||
/* .navbar-brand {
|
||||
background-color: red;
|
||||
} */
|
||||
div.img{
|
||||
|
||||
& img{
|
||||
width: 75vw;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@media only screen and (min-width: 768px) and (max-width: 991px) {
|
||||
/* Reglas CSS para tablets */
|
||||
/* purple */
|
||||
/* .navbar-brand {
|
||||
background-color: purple;
|
||||
} */
|
||||
div.img{
|
||||
& img{
|
||||
width: 65vw;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@media only screen and (min-width: 992px) and (max-width: 1199px) {
|
||||
/* Reglas CSS para laptops */
|
||||
/* green */
|
||||
/* .navbar-brand {
|
||||
background-color: green;
|
||||
} */
|
||||
div.img{
|
||||
|
||||
& img{
|
||||
width: 60vw;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@media only screen and (min-width: 1200px) {
|
||||
/* Reglas CSS para monitores ultra wide */
|
||||
/* yellow */
|
||||
/* .navbar-brand {
|
||||
background-color: yellow;
|
||||
} */
|
||||
div.img{
|
||||
& img{
|
||||
width: 50vw;
|
||||
}
|
||||
}
|
||||
}
|
41
static/b_tema_subseccion/tema/tema.js
Normal file
@ -0,0 +1,41 @@
|
||||
// https://www.freecodecamp.org/news/copy-text-to-clipboard-javascript/
|
||||
// function copy_code(id_btnCopy, id_CodeField) {
|
||||
// let btn_Copy = document.getElementById(id_btnCopy);
|
||||
// btn_Copy.addEventListener("click", () => {
|
||||
// let fieldCode = document.getElementById(id_CodeField).innerText.trim();
|
||||
// const copyContent = async () => {
|
||||
// try {
|
||||
// await navigator.clipboard.writeText(fieldCode);
|
||||
// btn_Copy.innerText = ' ¡Copiado!';
|
||||
// setTimeout(() => {
|
||||
// btn_Copy.innerText = " Copiar código";
|
||||
// }, "5000");
|
||||
// } catch (err) {
|
||||
// console.error('No se pudo copiar: ', err);
|
||||
// }
|
||||
// };
|
||||
// copyContent();
|
||||
// });
|
||||
// }
|
||||
|
||||
|
||||
let buttons = document.querySelectorAll("pre i.bi-copy");
|
||||
buttons.forEach(btn => {
|
||||
btn.addEventListener("click", async () => {
|
||||
let fieldCode = btn.parentElement.querySelector("code")?.innerText.trim();
|
||||
|
||||
if (!fieldCode) {
|
||||
console.error("No se encontró código para copiar.");
|
||||
return;
|
||||
}
|
||||
try {
|
||||
await navigator.clipboard.writeText(fieldCode);
|
||||
btn.innerText = ' ¡Copiado!';
|
||||
setTimeout(() => {
|
||||
btn.innerText = " Copiar código";
|
||||
}, 5000);
|
||||
} catch (err) {
|
||||
console.error('No se pudo copiar: ', err);
|
||||
}
|
||||
});
|
||||
});
|
33
static/b_tema_subseccion/tema/zoomable.js
Normal file
@ -0,0 +1,33 @@
|
||||
document.addEventListener('DOMContentLoaded', () => {
|
||||
const zoomables = document.querySelectorAll('.zoomable img');
|
||||
const modal = document.getElementById('zoomModal');
|
||||
const zoomedImage = document.getElementById('zoomedImage');
|
||||
const closeModal = document.getElementById('closeModal');
|
||||
|
||||
// Abrir el modal al hacer clic en una imagen
|
||||
zoomables.forEach(img => {
|
||||
img.addEventListener('click', () => {
|
||||
zoomedImage.src = img.src; // Poner la imagen seleccionada en el modal
|
||||
modal.classList.add('active'); // Mostrar el modal
|
||||
});
|
||||
});
|
||||
|
||||
// Cerrar el modal al hacer clic en el botón de cierre
|
||||
closeModal.addEventListener('click', () => {
|
||||
modal.classList.remove('active');
|
||||
});
|
||||
|
||||
// Cerrar el modal al hacer clic fuera de la imagen
|
||||
modal.addEventListener('click', (e) => {
|
||||
if (e.target === modal) {
|
||||
modal.classList.remove('active');
|
||||
}
|
||||
});
|
||||
|
||||
// Cerrar el modal con la tecla Escape
|
||||
document.addEventListener('keydown', (e) => {
|
||||
if (e.key === 'Escape' && modal.classList.contains('active')) {
|
||||
modal.classList.remove('active');
|
||||
}
|
||||
});
|
||||
});
|
99
static/b_tema_subseccion/tema_subseccion.css
Normal file
@ -0,0 +1,99 @@
|
||||
#subseccion_intro {
|
||||
display: grid;
|
||||
margin-bottom: 1em;
|
||||
margin-top: 1em;
|
||||
text-align: justify;
|
||||
}
|
||||
|
||||
|
||||
|
||||
svg {
|
||||
float: left;
|
||||
}
|
||||
|
||||
#icon {
|
||||
grid-area: a;
|
||||
}
|
||||
|
||||
#resume {
|
||||
grid-area: b;
|
||||
}
|
||||
|
||||
.accordion-header {
|
||||
display: grid;
|
||||
}
|
||||
|
||||
.accordion-header > span {
|
||||
display: grid;
|
||||
place-items: center;
|
||||
}
|
||||
|
||||
.accordion-header > a {
|
||||
text-decoration: none;
|
||||
font-size: 1rem;
|
||||
|
||||
align-self: center;
|
||||
justify-self: center;
|
||||
}
|
||||
|
||||
/* media querys */
|
||||
|
||||
@media only screen and (max-width: 767px) {
|
||||
/* Reglas CSS para pantallas de celulares */
|
||||
/* red */
|
||||
|
||||
#subseccion_intro {
|
||||
display: inline-table;
|
||||
}
|
||||
|
||||
.accordion-header {
|
||||
grid-template-columns: 15% 1% 84%;
|
||||
grid-template-rows: 1fr;
|
||||
}
|
||||
}
|
||||
|
||||
@media only screen and (min-width: 768px) and (max-width: 991px) {
|
||||
/* Reglas CSS para tablets */
|
||||
/* purple */
|
||||
#subseccion_intro {
|
||||
display: inline-table;
|
||||
}
|
||||
|
||||
.accordion-header {
|
||||
grid-template-columns: 15% 1% 84%;
|
||||
grid-template-rows: 1fr;
|
||||
}
|
||||
}
|
||||
|
||||
@media only screen and (min-width: 992px) and (max-width: 1199px) {
|
||||
/* Reglas CSS para laptops */
|
||||
/* green */
|
||||
#subseccion_intro {
|
||||
display: inline-table;
|
||||
}
|
||||
|
||||
.accordion-header {
|
||||
grid-template-columns: 15% 1% 84%;
|
||||
grid-template-rows: 1fr;
|
||||
}
|
||||
}
|
||||
|
||||
@media only screen and (min-width: 1200px) {
|
||||
/* Reglas CSS para monitores ultra wide */
|
||||
/* yellow */
|
||||
|
||||
#subseccion_intro {
|
||||
grid-template-columns: repeat(10, 1fr);
|
||||
grid-template-rows: repeat(2, 1fr);
|
||||
grid-template-areas:
|
||||
"a b b b b b b b b b"
|
||||
"a b b b b b b b b b";
|
||||
/* margin-top: 1em;
|
||||
margin-bottom: 1em; */
|
||||
}
|
||||
|
||||
.accordion-header {
|
||||
grid-template-columns: 9% 1% 90%;
|
||||
grid-template-rows: 1fr;
|
||||
}
|
||||
}
|
53
static/c_more_info/about_me.css
Normal file
@ -0,0 +1,53 @@
|
||||
#img_am {
|
||||
/* width: 50%;
|
||||
height: 350px; */
|
||||
margin: 0 auto; /* Centrar el contenedor horizontalmente */
|
||||
background-image: url("../source_imgs/about_me/img.gif");
|
||||
background-repeat: no-repeat; /* Evita que la imagen se repita */
|
||||
background-size: cover; /* Ajusta la imagen para que cubra el área del contenedor */
|
||||
background-position: center; /* Centra la imagen dentro del contenedor */
|
||||
display: block; /* Asegura que se comporte como un bloque */
|
||||
}
|
||||
|
||||
|
||||
/* media querys */
|
||||
@media only screen and (max-width: 767px) {
|
||||
/* Reglas CSS para pantallas de celulares */
|
||||
/* red */
|
||||
#img_am {
|
||||
width: 100%;
|
||||
height: 250px;
|
||||
}
|
||||
}
|
||||
|
||||
@media only screen and (min-width: 768px) and (max-width: 991px) {
|
||||
/* Reglas CSS para tablets */
|
||||
/* purple */
|
||||
#img_am {
|
||||
width: 80%;
|
||||
height: 450px;
|
||||
}
|
||||
}
|
||||
|
||||
@media only screen and (min-width: 992px) and (max-width: 1199px) {
|
||||
/* Reglas CSS para laptops */
|
||||
/* green */
|
||||
#img_am {
|
||||
width: 50%;
|
||||
height: 350px;
|
||||
}
|
||||
}
|
||||
|
||||
@media only screen and (min-width: 1200px) {
|
||||
/* Reglas CSS para monitores ultra wide */
|
||||
/* yellow */
|
||||
#img_am {
|
||||
width: 45%;
|
||||
height: 350px;
|
||||
}
|
||||
#about_me {
|
||||
width: 65%;
|
||||
margin-left: auto;
|
||||
margin-right: auto;
|
||||
}
|
||||
}
|
BIN
static/favicon/favicon.ico
Normal file
After Width: | Height: | Size: 5.6 KiB |
100
static/javascript.js
Normal file
@ -0,0 +1,100 @@
|
||||
// Obtén el elemento <html>
|
||||
const htmlElement = document.querySelector('html');
|
||||
let btnMode = document.getElementById("mode");
|
||||
let cont_svg_icon_theme = document.getElementsByClassName('icon_theme')[0];
|
||||
let ico_home = document.getElementsByClassName("bi-house-fill")[0];
|
||||
let cursor = document.getElementById("cursor");
|
||||
let codeTag = document.getElementsByTagName("code");
|
||||
let news_banner = document.querySelector('div.ticker-wrapper-h');
|
||||
|
||||
btnMode.addEventListener("click", () => {
|
||||
// light mode
|
||||
// bi bi-moon-stars-fill
|
||||
// bi bi-sun-fill
|
||||
if (btnMode.className == 'bi bi-sun-fill') {
|
||||
btnMode.setAttribute('class', 'bi bi-moon-stars-fill');
|
||||
news_banner.classList.toggle("nb_darkmode");
|
||||
htmlElement.setAttribute('data-bs-theme', 'light');
|
||||
set_theme_site("light");
|
||||
cont_svg_icon_theme.setAttribute("id", 'theme_icon_sun');
|
||||
ico_home.style.color = 'black';
|
||||
color_path("black");
|
||||
// code_lightMode
|
||||
tagCodeTheme('code_lightMode');
|
||||
// dark mode
|
||||
} else {
|
||||
btnMode.setAttribute('class', 'bi bi-sun-fill');
|
||||
news_banner.classList.toggle("nb_lightmode");
|
||||
htmlElement.setAttribute('data-bs-theme', 'dark');
|
||||
set_theme_site("dark");
|
||||
cont_svg_icon_theme.setAttribute("id", 'theme_icon_moon');
|
||||
ico_home.style.color = 'white';
|
||||
color_path("white");
|
||||
|
||||
tagCodeTheme('code_darkMode');
|
||||
}
|
||||
});
|
||||
|
||||
function set_theme_site(theme_mode) {
|
||||
if (localStorage != null) {
|
||||
localStorage.setItem("theme", theme_mode);
|
||||
}
|
||||
}
|
||||
|
||||
function get_theme_site() {
|
||||
if (localStorage != null) {
|
||||
let mode = localStorage.getItem("theme");
|
||||
return mode;
|
||||
}
|
||||
}
|
||||
// switchCodeTheme
|
||||
function tagCodeTheme(classNameTheme) {
|
||||
// code_lightMode | code_darktMode
|
||||
len_elements = codeTag.length;
|
||||
let c = 0;
|
||||
for (; c < len_elements; c++) {
|
||||
codeTag[c].setAttribute('class', classNameTheme);
|
||||
}
|
||||
}
|
||||
|
||||
function color_path(color_elements) {
|
||||
let pth = document.querySelectorAll("li.breadcrumb-item");
|
||||
pth.forEach(ele => {
|
||||
if (ele.children[0].nodeName == 'A') {
|
||||
ele.children[0].style.color = color_elements;
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
// establecer el tema guardado en la base de datos
|
||||
(() => {
|
||||
if (localStorage != null) {
|
||||
if (localStorage.getItem('theme')) {
|
||||
// establecer en el html el tema
|
||||
htmlElement.setAttribute('data-bs-theme', get_theme_site());
|
||||
let current_theme = get_theme_site();
|
||||
// dark mode
|
||||
if (current_theme == 'dark') {
|
||||
btnMode.setAttribute('class', 'bi bi-sun-fill');
|
||||
cont_svg_icon_theme.setAttribute("id", 'theme_icon_moon');
|
||||
ico_home.style.color = 'white';
|
||||
cursor.style.backgroundColor = 'white';
|
||||
color_path("white");
|
||||
news_banner.classList.toggle("nb_darkmode");
|
||||
tagCodeTheme("code_darktMode");
|
||||
|
||||
// light mode
|
||||
} else {
|
||||
btnMode.setAttribute('class', 'bi bi-moon-stars-fill');
|
||||
cont_svg_icon_theme.setAttribute("id", 'theme_icon_sun');
|
||||
ico_home.style.color = 'black';
|
||||
color_path("black");
|
||||
news_banner.classList.toggle("nb_lightmode");
|
||||
tagCodeTheme("code_lightMode");
|
||||
}
|
||||
}
|
||||
}
|
||||
})();
|
||||
|
||||
|
||||
|
103
static/news_banner.css
Normal file
@ -0,0 +1,103 @@
|
||||
/*****************************
|
||||
* horizontal news ticker
|
||||
******************************/
|
||||
|
||||
.nb_darkmode {
|
||||
background-color: #212529 ;
|
||||
color: white;
|
||||
border: 2px solid white;
|
||||
& .heading{
|
||||
background-color: #212529;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
.nb_lightmode{
|
||||
background-color: white;
|
||||
color: black;
|
||||
border: 2px solid #f8f4fa;
|
||||
|
||||
& .heading{
|
||||
background-color: #FFFFFF;
|
||||
}
|
||||
}
|
||||
|
||||
.ticker-wrapper-h {
|
||||
display: flex;
|
||||
position: relative;
|
||||
overflow: hidden;
|
||||
/* border: 2px solid #1c6547; */
|
||||
border-radius: 5px;
|
||||
width: 90%;
|
||||
margin-left: auto;
|
||||
margin-right: auto;
|
||||
margin-top: 0.5em;
|
||||
/* height: 4em; */
|
||||
}
|
||||
|
||||
|
||||
.heading {
|
||||
/* background-color: white; */
|
||||
border-radius: 5px;
|
||||
& svg {
|
||||
height: 2em;
|
||||
}
|
||||
}
|
||||
|
||||
.ticker-wrapper-h .heading {
|
||||
/* background-color: #1c6547; */
|
||||
/* color: #fff; */
|
||||
padding: 5px 5px;
|
||||
flex: 0 0 auto;
|
||||
z-index: 1000;
|
||||
}
|
||||
|
||||
.news-ticker-h {
|
||||
display: flex;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
/* padding-left: 10%; */
|
||||
z-index: 999;
|
||||
|
||||
animation-iteration-count: infinite;
|
||||
animation-timing-function: linear;
|
||||
animation-name: tic-h;
|
||||
animation-duration: 40s;
|
||||
|
||||
& a {
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
|
||||
& li a {
|
||||
/* color: #212529; */
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
& li {
|
||||
display: flex;
|
||||
width: 100%;
|
||||
align-items: center;
|
||||
white-space: nowrap;
|
||||
padding-left: 20px;
|
||||
margin-right: 5em;
|
||||
}
|
||||
}
|
||||
|
||||
.news-ticker-h:hover {
|
||||
animation-play-state: paused;
|
||||
}
|
||||
|
||||
|
||||
@keyframes tic-h {
|
||||
0% {
|
||||
-webkit-transform: translate3d(0, 0, 0);
|
||||
transform: translate3d(0, 0, 0);
|
||||
visibility: visible;
|
||||
}
|
||||
|
||||
100% {
|
||||
-webkit-transform: translate3d(-100%, 0, 0);
|
||||
transform: translate3d(-100%, 0, 0);
|
||||
}
|
||||
}
|
BIN
static/source_imgs/about_me/img.gif
Normal file
After Width: | Height: | Size: 87 KiB |
BIN
static/source_imgs/apache/pst_1/apache.webp
Normal file
After Width: | Height: | Size: 494 KiB |
BIN
static/source_imgs/apache/pst_1/pst1_a.png
Normal file
After Width: | Height: | Size: 155 KiB |
BIN
static/source_imgs/apache/pst_1/pst1_b.png
Normal file
After Width: | Height: | Size: 145 KiB |
BIN
static/source_imgs/apache/pst_1/pst1_c.png
Normal file
After Width: | Height: | Size: 627 KiB |
BIN
static/source_imgs/apache/pst_1/pst1_d.png
Normal file
After Width: | Height: | Size: 88 KiB |
BIN
static/source_imgs/cv/CV_David_Itehua_Xalamihua.pdf
Normal file
BIN
static/source_imgs/diagrams/public_n_local_network.png
Normal file
After Width: | Height: | Size: 68 KiB |
BIN
static/source_imgs/excel/pst_1/img_a.png
Normal file
After Width: | Height: | Size: 36 KiB |
BIN
static/source_imgs/excel/pst_1/img_b.png
Normal file
After Width: | Height: | Size: 40 KiB |
BIN
static/source_imgs/excel/pst_1/vba_index_sub_excel.webp
Normal file
After Width: | Height: | Size: 245 KiB |
BIN
static/source_imgs/excel/pst_2/1.png
Normal file
After Width: | Height: | Size: 30 KiB |
BIN
static/source_imgs/excel/pst_2/2.png
Normal file
After Width: | Height: | Size: 79 KiB |
BIN
static/source_imgs/excel/pst_2/3.png
Normal file
After Width: | Height: | Size: 4.5 KiB |
BIN
static/source_imgs/excel/pst_3/1.png
Normal file
After Width: | Height: | Size: 7.0 KiB |
BIN
static/source_imgs/excel/pst_4/1.png
Normal file
After Width: | Height: | Size: 44 KiB |
BIN
static/source_imgs/excel/pst_5/1.png
Normal file
After Width: | Height: | Size: 3.6 KiB |
BIN
static/source_imgs/excel/pst_6/1.png
Normal file
After Width: | Height: | Size: 45 KiB |
BIN
static/source_imgs/excel/pst_7/1.png
Normal file
After Width: | Height: | Size: 64 KiB |
BIN
static/source_imgs/excel/pst_8/1.png
Normal file
After Width: | Height: | Size: 7.5 KiB |
BIN
static/source_imgs/git/pst_1/git.webp
Normal file
After Width: | Height: | Size: 340 KiB |
BIN
static/source_imgs/git/pst_2/git.webp
Normal file
After Width: | Height: | Size: 580 KiB |
BIN
static/source_imgs/linux/pst1/a.png
Normal file
After Width: | Height: | Size: 45 KiB |
BIN
static/source_imgs/linux/pst1/b.png
Normal file
After Width: | Height: | Size: 41 KiB |
BIN
static/source_imgs/linux/pst_2/dns.webp
Normal file
After Width: | Height: | Size: 234 KiB |
BIN
static/source_imgs/more_notes/post_1/ssh_key.webp
Normal file
After Width: | Height: | Size: 770 KiB |
BIN
static/source_imgs/more_notes/pst_2/gitea_local_network.webp
Normal file
After Width: | Height: | Size: 426 KiB |
BIN
static/source_imgs/more_notes/pst_3/logs_metabase.png
Normal file
After Width: | Height: | Size: 1.7 MiB |
BIN
static/source_imgs/more_notes/pst_3/metabase_active_service.png
Normal file
After Width: | Height: | Size: 1.1 MiB |
BIN
static/source_imgs/more_notes/pst_3/metabase_version.png
Normal file
After Width: | Height: | Size: 49 KiB |
BIN
static/source_imgs/postgresql/post_2/crud_psql.webp
Normal file
After Width: | Height: | Size: 326 KiB |
BIN
static/source_imgs/postgresql/post_3/psql1.webp
Normal file
After Width: | Height: | Size: 332 KiB |
BIN
static/source_imgs/postgresql/post_4/psql_conf.webp
Normal file
After Width: | Height: | Size: 549 KiB |
BIN
static/source_imgs/postgresql/psql1/inactive.png
Normal file
After Width: | Height: | Size: 42 KiB |
BIN
static/source_imgs/postgresql/psql1/psql.webp
Normal file
After Width: | Height: | Size: 553 KiB |
BIN
static/source_imgs/postgresql/psql1/version_psql.png
Normal file
After Width: | Height: | Size: 6.0 KiB |
BIN
static/source_imgs/powershell/pst_1/env_var.webp
Normal file
After Width: | Height: | Size: 543 KiB |
BIN
static/source_imgs/powershell/pst_1/ps_1.png
Normal file
After Width: | Height: | Size: 31 KiB |
BIN
static/source_imgs/powershell/pst_1/ps_2.png
Normal file
After Width: | Height: | Size: 12 KiB |
BIN
static/source_imgs/powershell/pst_2/1.png
Normal file
After Width: | Height: | Size: 19 KiB |
BIN
static/source_imgs/powershell/pst_3/1.png
Normal file
After Width: | Height: | Size: 12 KiB |
BIN
static/source_imgs/powershell/pst_4/1.png
Normal file
After Width: | Height: | Size: 94 KiB |
BIN
static/source_imgs/projects/bienestar_digital.png
Normal file
After Width: | Height: | Size: 146 KiB |
BIN
static/source_imgs/projects/esad_temporal_work.png
Normal file
After Width: | Height: | Size: 327 KiB |
BIN
static/source_imgs/projects/formha.png
Normal file
After Width: | Height: | Size: 1.4 MiB |
BIN
static/source_imgs/projects/repo_coperasur.png
Normal file
After Width: | Height: | Size: 92 KiB |
BIN
static/source_imgs/projects/sict-csic.png
Normal file
After Width: | Height: | Size: 168 KiB |
BIN
static/source_imgs/projects/tac_consulting.png
Normal file
After Width: | Height: | Size: 19 KiB |
BIN
static/source_imgs/python/pst_1/py_1.png
Normal file
After Width: | Height: | Size: 292 KiB |
BIN
static/source_imgs/python/py_2/code.png
Normal file
After Width: | Height: | Size: 6.0 KiB |
BIN
static/source_imgs/python/py_2/linux_venv_active.png
Normal file
After Width: | Height: | Size: 11 KiB |
BIN
static/source_imgs/python/py_2/pip_freeze.png
Normal file
After Width: | Height: | Size: 15 KiB |
BIN
static/source_imgs/python/py_2/pip_install_pandas.png
Normal file
After Width: | Height: | Size: 107 KiB |
BIN
static/source_imgs/python/py_2/venv1.png
Normal file
After Width: | Height: | Size: 8.9 KiB |
BIN
static/source_imgs/python/py_2/venv2.png
Normal file
After Width: | Height: | Size: 16 KiB |
BIN
static/source_imgs/python/py_2/win_venv_active.png
Normal file
After Width: | Height: | Size: 7.4 KiB |
176
static/styles.css
Normal file
@ -0,0 +1,176 @@
|
||||
body {
|
||||
font-family: "Roboto", sans-serif;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
|
||||
|
||||
i.bi-terminal-fill {
|
||||
color: black;
|
||||
}
|
||||
|
||||
#breadcrumb a {
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
.breadcrumb-item a {
|
||||
color: black;
|
||||
}
|
||||
|
||||
p {
|
||||
text-align: justify;
|
||||
}
|
||||
|
||||
div.card-body {
|
||||
width: 100%;
|
||||
place-items: center;
|
||||
}
|
||||
|
||||
#dix_container {
|
||||
width: 90%;
|
||||
min-height: 100vh;
|
||||
margin-left: auto;
|
||||
margin-right: auto;
|
||||
}
|
||||
|
||||
nav.navbar {
|
||||
width: 95%;
|
||||
margin-left: auto;
|
||||
margin-right: auto;
|
||||
border-radius: 6px;
|
||||
}
|
||||
|
||||
nav#breadcrumb {
|
||||
width: 90%;
|
||||
margin-left: auto;
|
||||
margin-right: auto;
|
||||
}
|
||||
|
||||
#mode {
|
||||
font-size: 1em;
|
||||
margin-left: 1em;
|
||||
margin-right: 1em;
|
||||
}
|
||||
|
||||
.bi-moon-stars-fill {
|
||||
color: #ffe246;
|
||||
}
|
||||
|
||||
#breadcrumb {
|
||||
/* color: black; */
|
||||
margin-top: 0.5em;
|
||||
margin-bottom: 2em;
|
||||
display: grid;
|
||||
vertical-align: middle;
|
||||
}
|
||||
|
||||
.bi-sun-fill {
|
||||
color: #ff7b00;
|
||||
}
|
||||
|
||||
#theme_icon_sun {
|
||||
/* animation: rotate 4.5s linear infinite; */
|
||||
/* border: 1px solid red; */
|
||||
float: left;
|
||||
width: 2.5em;
|
||||
height: 1em;
|
||||
position: relative;
|
||||
display: grid;
|
||||
}
|
||||
|
||||
@keyframes rotate {
|
||||
from {
|
||||
transform: rotate(0deg);
|
||||
}
|
||||
|
||||
to {
|
||||
transform: rotate(360deg);
|
||||
}
|
||||
}
|
||||
|
||||
#cursor {
|
||||
position: relative;
|
||||
display: inline-block;
|
||||
line-height: 24px;
|
||||
font-size: 24px;
|
||||
/* color: white; */
|
||||
}
|
||||
|
||||
/* #ff7b00; */
|
||||
#cursor::after {
|
||||
content: "";
|
||||
display: inline-block;
|
||||
background-color: rgba(0, 0, 0, 1);
|
||||
/* vertical-align: top; */
|
||||
width: 10px;
|
||||
/* Set height to the line height of .text */
|
||||
height: 1em;
|
||||
-webkit-animation: blink 1s step-end infinite;
|
||||
animation: blink 1s step-end infinite;
|
||||
}
|
||||
|
||||
@-webkit-keyframes blink {
|
||||
0% {
|
||||
opacity: 1;
|
||||
}
|
||||
|
||||
50% {
|
||||
opacity: 0;
|
||||
}
|
||||
|
||||
100% {
|
||||
opacity: 1;
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes blink {
|
||||
0% {
|
||||
opacity: 1;
|
||||
}
|
||||
|
||||
50% {
|
||||
opacity: 0;
|
||||
}
|
||||
|
||||
100% {
|
||||
opacity: 1;
|
||||
}
|
||||
}
|
||||
|
||||
/* media querys */
|
||||
@media only screen and (max-width: 767px) {
|
||||
/* Reglas CSS para pantallas de celulares */
|
||||
/* red */
|
||||
/* .navbar-brand {
|
||||
background-color: red;
|
||||
} */
|
||||
}
|
||||
|
||||
@media only screen and (min-width: 768px) and (max-width: 991px) {
|
||||
/* Reglas CSS para tablets */
|
||||
/* purple */
|
||||
/* .navbar-brand {
|
||||
background-color: purple;
|
||||
} */
|
||||
}
|
||||
|
||||
@media only screen and (min-width: 992px) and (max-width: 1199px) {
|
||||
/* Reglas CSS para laptops */
|
||||
/* green */
|
||||
/* .navbar-brand {
|
||||
background-color: green;
|
||||
} */
|
||||
}
|
||||
|
||||
@media only screen and (min-width: 1200px) {
|
||||
/* Reglas CSS para monitores ultra wide */
|
||||
/* yellow */
|
||||
/* .navbar-brand {
|
||||
background-color: yellow;
|
||||
} */
|
||||
|
||||
.cards_container {
|
||||
display: grid;
|
||||
grid-template-columns: repeat(5, 1fr);
|
||||
}
|
||||
}
|
156
templates/ayuda_template.html
Normal file
@ -0,0 +1,156 @@
|
||||
{% extends 'template.html' %}
|
||||
|
||||
{% block css %}
|
||||
<link rel="stylesheet" href="{{url_for('static', filename='a_home/home.css')}}">
|
||||
<!-- {# css tema #} -->
|
||||
<link rel="stylesheet" href="{{url_for('static', filename='b_tema_subseccion/tema/tema.css')}}">
|
||||
|
||||
|
||||
<!-- test del font icon linux -->
|
||||
|
||||
|
||||
{% endblock css %}
|
||||
|
||||
|
||||
|
||||
|
||||
{% block body %}
|
||||
|
||||
<!--
|
||||
<ul class="nav nav-tabs" id="tab-dix" role="tablist">
|
||||
<li class="nav-item">
|
||||
<a class="nav-link active" id="tab1-tab" data-toggle="tab" href="#tab1" role="tab"
|
||||
aria-controls="tab1" aria-selected="true"><i class="bi bi-lock-fill"></i> tab 1</a>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<a class="nav-link" id="tab2-tab" data-toggle="tab" href="#tab2" role="tab" aria-controls="tab2"
|
||||
aria-selected="false"><i class="bi bi-windows"></i> tab 2</a>
|
||||
</li>
|
||||
</ul>
|
||||
<div class="tab-content" id="myTabContent">
|
||||
<div class="tab-pane fade active show" id="tab1" role="tabpanel" aria-labelledby="tab1-tab">
|
||||
{# i nav 1 #}
|
||||
<span>1</span>
|
||||
{# f nav 1 #}
|
||||
</div>
|
||||
<div class="tab-pane fade" id="tab2" role="tabpanel" aria-labelledby="tab2-tab">
|
||||
{# i nav 2 #}
|
||||
<span>2</span>
|
||||
{# f nav 2 #}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
|
||||
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.5.2/js/bootstrap.min.js"></script>
|
||||
###############################################################################################################################################
|
||||
<i class="bi bi-windows"></i>
|
||||
<i class="bi bi-ubuntu"></i>
|
||||
<i class="bi bi-apple"></i>
|
||||
|
||||
<pre><i class="bi bi-copy"> Copiar código</i>
|
||||
<code class="code_lightMode">test</code></pre>
|
||||
|
||||
###############################################################################################################################################
|
||||
<a class="link" data-bs-toggle="modal" data-bs-target="#subrutina">subrutina</a>
|
||||
|
||||
<div class="img zoomable">
|
||||
<img src="/static/source_imgs/python/pst_1/py_1.png" alt="">
|
||||
</div>
|
||||
|
||||
|
||||
<pre contenteditable="true">
|
||||
-->
|
||||
|
||||
<!-- <div class="alert alert-info" role="alert">
|
||||
<span><i class="bi bi-pen-fill"></i> Recomendación:</span>
|
||||
<p>El en repositorio de Git guarda los archivos de configuración <b>.wsgi</b> y <b>.conf</b> para que no los estes
|
||||
creando cada vez que
|
||||
despliegas cambios dentro del proyecto.</p>
|
||||
</div> -->
|
||||
|
||||
<!-- \ = \ -->
|
||||
|
||||
<!-- {# i btn toggle see code #} -->
|
||||
{% include 'components/btn-toggle-see-code.html' %}
|
||||
<!-- {# f btn toggle see code #} -->
|
||||
|
||||
|
||||
<!-- ############################################################################################################## -->
|
||||
<!-- test inicio -->
|
||||
|
||||
|
||||
|
||||
<!-- test final -->
|
||||
<!-- ############################################################################################################## -->
|
||||
|
||||
<!-- Contenedor para el modal (inicialmente oculto) -->
|
||||
<div id="zoomModal" class="modal-img">
|
||||
<div class="modal-img-content">
|
||||
<button class="close-btn" id="closeModal"><i class="bi bi-x-circle-fill"></i></button>
|
||||
<img id="zoomedImage" src="" alt="">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
<!-- <p>
|
||||
El proceso es muy facil, tu deberas generar un script el cual haga algo que a ti te interese que se ejecute en mi
|
||||
caso un script sencillo para actualizar el sistema, el script estara en el archivo <i>upgrade.sh</i> en la ruta
|
||||
<i>/home/dix/scripts_linux/</i> y su contenido
|
||||
es el siguiente:
|
||||
</p>
|
||||
|
||||
<pre><i class="bi bi-copy" id="btn_c6"> Copiar código</i><code id="c6" class="code_lightMode">#!/bin/bash
|
||||
|
||||
# almacenar la información de la fecha en la variable d
|
||||
d=$(date)
|
||||
|
||||
# colocar la información de fecha y la palabra upgrade en el archivo que esta en la ruta /home/dix/scripts_linux/history_log.txt
|
||||
echo "$d: upgrade" >> "/home/dix/scripts_linux/history_log.txt"
|
||||
|
||||
# hacer la actualización del sistema
|
||||
sudo apt-get update && sudo apt-get upgrade -y
|
||||
</code></pre>
|
||||
|
||||
<p>
|
||||
Primero, para poder automatizar esta tarea debemos dar autorización de ejecución del script mediante el comando:
|
||||
</p>
|
||||
<pre><i class="bi bi-copy" id="btn_c7"> Copiar código</i>
|
||||
<code id="c7" class="code_lightMode" contenteditable="true">sudo chmod +x /home/dix/scripts_linux/upgrade.sh</code></pre>
|
||||
<p>
|
||||
Previo a la modificación del archivo de configuración debes conocer la estructura de la Sintaxis básica de cron: <br>
|
||||
* * * * * /ruta/a/tu/script.sh
|
||||
</p>
|
||||
|
||||
|
||||
<p>
|
||||
En caso de que tu script modifique el sistema como es este caso, entonces debes correr con el prefijo sudo, en
|
||||
caso contrario no requieres usar sudo:
|
||||
</p>
|
||||
<pre><i class="bi bi-copy" id="btn_c8"> Copiar código</i>
|
||||
<code id="c8" class="code_lightMode">sudo crontab –e</code></pre>
|
||||
|
||||
<p>
|
||||
Cuando uses crontab por primera vez te requerida seleccionar el editor que planeas usar en este caso yo siempre uso
|
||||
nano que es la opción 1, nano es facil y viene instalado de forma nativa, una vez abierto el archivo de configuración
|
||||
de crontab deberas ir al final de archivo y añadi
|
||||
</p> -->
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
{% block js %}
|
||||
<!-- {# scripts de la sección tema #} -->
|
||||
<!-- {# este código siempre debe ir arriba del otro donde mandamos a llamar sus funciones #} -->
|
||||
<script src="{{url_for('static', filename='b_tema_subseccion/tema/tema.js')}}"></script>
|
||||
<!-- <i class="fa-solid fa-check"></i> -->
|
||||
<script src="{{url_for('static', filename='b_tema_subseccion/tema/btn-toggle.js')}}"></script>
|
||||
<script src="{{url_for('static', filename='b_tema_subseccion/tema/zoomable.js')}}"></script>
|
||||
{% endblock js %}
|
||||
|
||||
{% endblock body %}
|
3
templates/components/alerts/linux.html
Normal file
@ -0,0 +1,3 @@
|
||||
<div class="alert alert-info" role="alert">
|
||||
<span>Proceso válido para <i class="bi bi-ubuntu"></i> Ubuntu (Linux)</span>
|
||||
</div>
|
3
templates/components/alerts/linux_win_mac.html
Normal file
@ -0,0 +1,3 @@
|
||||
<div class="alert alert-info" role="alert">
|
||||
<span>Proceso válido para <i class="bi bi-ubuntu"></i> Linux, <i class="bi bi-windows"></i> Windows y <i class="bi bi-apple"></i> Mac</span>
|
||||
</div>
|