mirror of
https://github.com/jessebot/tiny_personal_website.git
synced 2025-10-01 01:48:43 +00:00
updating formatting, colors, and removing old stuff from pages that we probably won't add back
This commit is contained in:
parent
bb6012eced
commit
6bcd4d3ab2
19 changed files with 210 additions and 601 deletions
|
@ -42,7 +42,7 @@ social_links:
|
|||
# Full URL to your social link
|
||||
URL: 'https://github.com/jessebot'
|
||||
# can be any glyph in nerdfonts
|
||||
icon: 'nf-fa-github_alt'
|
||||
icon: 'nf-fa-github_alt_link'
|
||||
gitlab:
|
||||
URL: 'https://gitlab.com/jessebot'
|
||||
icon: "nf-fa-gitlab"
|
||||
|
|
|
@ -1,50 +0,0 @@
|
|||
<VirtualHost *:80>
|
||||
ServerName example.com
|
||||
ServerAdmin example_user@gmail.com
|
||||
WSGIDaemonProcess example_process_name user=example_user group=example_group processes=1 threads=5
|
||||
WSGIScriptAlias / /path/to/web/root/adapter.wsgi
|
||||
|
||||
<Directory /path/to/web/root>
|
||||
WSGIProcessGroup example_group
|
||||
WSGIApplicationGroup %{GLOBAL}
|
||||
# comment out next two lines if getting "forbidden" errors
|
||||
Order deny,allow
|
||||
Allow from all
|
||||
# uncomment if getting "forbidden" errors
|
||||
# Require all granted
|
||||
</Directory>
|
||||
</VirtualHost>
|
||||
|
||||
# If you need want an SSL, which I recommend, then delete the above content
|
||||
# and use the below as your starting point. You can use
|
||||
# https://letsencrypt.org/howitworks/ to get a free SSL. Thanks, EFF <3
|
||||
<VirtualHost *:80>
|
||||
ServerName example.com
|
||||
# rewriting things to force https traffic
|
||||
RewriteEngine on
|
||||
RewriteCond %{HTTPS} off
|
||||
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}
|
||||
</VirtualHost>
|
||||
<VirtualHost *:443>
|
||||
ServerName example.com
|
||||
ServerAdmin example_user@gmail.com
|
||||
# ssl stuff, you can change these paths to where ever you keep your own SSL files
|
||||
SSLEngine on
|
||||
SSLProtocol all -SSLv2 -SSLv3
|
||||
SSLCertificateFile /etc/letsencrypt/live/example.com/cert.pem
|
||||
SSLCertificateKeyFile /etc/letsencrypt/live/example.com/privkey.pem
|
||||
SSLCertificateChainFile /etc/letsencrypt/live/example.com/chain.pem
|
||||
# wsgi stuff
|
||||
WSGIDaemonProcess example_process_name user=example_user group=example_group processes=1 threads=5
|
||||
WSGIScriptAlias / /path/to/web/root/adapter.wsgi
|
||||
|
||||
<Directory /path/to/web/root>
|
||||
WSGIProcessGroup example_group
|
||||
WSGIApplicationGroup %{GLOBAL}
|
||||
# comment out next two lines if getting "forbidden" errors
|
||||
Order deny,allow
|
||||
Allow from all
|
||||
# uncomment if getting "forbidden" errors
|
||||
# Require all granted
|
||||
</Directory>
|
||||
</VirtualHost>
|
100
personal_routes.py
Executable file
100
personal_routes.py
Executable file
|
@ -0,0 +1,100 @@
|
|||
#!/usr/bin/env python3.10
|
||||
# JesseBot@Linux.com
|
||||
# last update 2022-10-07 17:06:07.0 +0200
|
||||
from flask import Flask
|
||||
from flask import render_template
|
||||
import logging as log
|
||||
import sys
|
||||
import yaml
|
||||
|
||||
# set logging
|
||||
log.basicConfig(stream=sys.stderr, level=log.INFO)
|
||||
log.info("logging config loaded")
|
||||
# flask app init
|
||||
app = Flask(__name__, static_folder='static')
|
||||
|
||||
|
||||
def get_config_variables():
|
||||
"""
|
||||
Gets config.yaml variables from YAML file. Returns dict.
|
||||
"""
|
||||
with open('./config/config.yaml', 'r') as yml_file:
|
||||
doc = yaml.safe_load(yml_file)
|
||||
return doc
|
||||
|
||||
|
||||
def get_ld_variables(ld_var):
|
||||
"""
|
||||
Gets global variables from YAML file. Returns dict.
|
||||
"""
|
||||
with open('./config/config_likes_dislikes.yaml', 'r') as f:
|
||||
doc = yaml.load(f)
|
||||
txt = doc[ld_var]
|
||||
return txt
|
||||
|
||||
|
||||
def sorted_vars(some_dict):
|
||||
"""
|
||||
Iterates through a dict and fixes list values to be alphabitized
|
||||
takes a dict.
|
||||
"""
|
||||
for key, value in some_dict.items():
|
||||
value.sort()
|
||||
some_dict[key] = value
|
||||
return some_dict
|
||||
|
||||
|
||||
@app.route('/like')
|
||||
def love():
|
||||
# Grab site specific information - YAML
|
||||
globals = get_global_variables()
|
||||
likes = get_ld_variables("likes")
|
||||
sorted_likes = sorted_vars(likes)
|
||||
return render_template('like', config_vars=config_vars, likes=sorted_likes)
|
||||
|
||||
|
||||
@app.route('/dislike')
|
||||
def hate():
|
||||
# Grab site specific information - YAML
|
||||
globals = get_global_variables()
|
||||
dislikes = get_ld_variables("dislikes")
|
||||
sorted_dislikes = sorted_vars(dislikes)
|
||||
return render_template('dislike', config_vars=config_vars,
|
||||
dislikes=sorted_dislikes)
|
||||
|
||||
|
||||
@app.route('/health')
|
||||
def nutrition():
|
||||
# Grab site specific information - YAML
|
||||
globals = get_global_variables()
|
||||
return render_template('health', config_vars=config_vars)
|
||||
|
||||
|
||||
@app.route('/health/nutrition')
|
||||
def nutrition():
|
||||
# Grab site specific information - YAML
|
||||
globals = get_global_variables()
|
||||
return render_template('nutrition', config_vars=config_vars)
|
||||
|
||||
|
||||
@app.route('/health/trans')
|
||||
def trans():
|
||||
# Grab site specific information - YAML
|
||||
globals = get_global_variables()
|
||||
return render_template('trans', config_vars=config_vars)
|
||||
|
||||
|
||||
@app.route('/tech')
|
||||
def tech():
|
||||
# Grab site specific information - YAML
|
||||
globals = get_global_variables()
|
||||
return render_template('tech', config_vars=config_vars)
|
||||
|
||||
|
||||
@app.route('/resources')
|
||||
def hate():
|
||||
# Grab site specific information - YAML
|
||||
globals = get_global_variables()
|
||||
dislikes = get_ld_variables("dislikes")
|
||||
sorted_dislikes = sorted_vars(dislikes)
|
||||
return render_template('resources', config_vars=config_vars)
|
|
@ -1,67 +0,0 @@
|
|||
#!/usr/bin/env python
|
||||
# script by jessebot@linux.com to get the bands and do the things
|
||||
# 1/7/19 -- 2019? D:
|
||||
import argparse
|
||||
import subprocess
|
||||
import sqlite3
|
||||
|
||||
|
||||
def add_new_band(band):
|
||||
"""
|
||||
Takes a str of a bands name and adds it to a sqlite3 db
|
||||
returns the string "Success" if all went well.
|
||||
"""
|
||||
# create the band art!
|
||||
bashCommand = "./generate_band_art.py --band {0}".format(band)
|
||||
print bashCommand
|
||||
process = subprocess.Popen(bashCommand.split(), stdout=subprocess.PIPE)
|
||||
output, error = process.communicate()
|
||||
print output
|
||||
|
||||
# uh, idunno
|
||||
return "Success"
|
||||
|
||||
|
||||
def get_all_bands():
|
||||
"""
|
||||
grabs all the bands from sqlite3 db
|
||||
- returns a list of tuples with 2 strings of band_name, and time_stamp
|
||||
"""
|
||||
conn = sqlite3.connect('my-next-band.db')
|
||||
|
||||
c = conn.cursor()
|
||||
|
||||
# Insert a row of data
|
||||
get = '''SELECT * FROM bands'''
|
||||
c.execute(get)
|
||||
|
||||
# print(c.fetchall())
|
||||
all_bands = c.fetchall()
|
||||
|
||||
# close connection
|
||||
conn.close()
|
||||
|
||||
return all_bands
|
||||
|
||||
|
||||
def main():
|
||||
"""
|
||||
Let's get it on! *cracks whip*
|
||||
"""
|
||||
parser = argparse.ArgumentParser(description='Document cool band names.')
|
||||
parser.add_argument('--add-band', dest='band', nargs='?', type=str,
|
||||
help='a COOL band name')
|
||||
parser.add_argument('--get-all', dest='get_all', action='store_true',
|
||||
help='list all cool band names')
|
||||
|
||||
args = parser.parse_args()
|
||||
|
||||
if args.band:
|
||||
print(add_new_band(args.band))
|
||||
|
||||
if args.get_all:
|
||||
print(get_all_bands())
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
|
@ -1,49 +0,0 @@
|
|||
#!/usr/bin/env python
|
||||
# script by jessebot@linux.com to get the bands and do the things
|
||||
# 1/10/19 -- 2019? D:
|
||||
import argparse
|
||||
import sqlite3
|
||||
import datetime
|
||||
import time
|
||||
|
||||
def adapt_datetime(ts):
|
||||
"""
|
||||
Internet says I need dis
|
||||
"""
|
||||
return time.mktime(ts.timetuple())
|
||||
|
||||
def main ():
|
||||
"""
|
||||
Let's get it on! *cracks whip*
|
||||
"""
|
||||
parser = argparse.ArgumentParser(description='Document cool band names.')
|
||||
parser.add_argument('--band', nargs='?', type=str,
|
||||
help='a COOL band name')
|
||||
|
||||
args = parser.parse_args()
|
||||
print((args.band))
|
||||
|
||||
now = str(datetime.datetime.now())
|
||||
|
||||
conn = sqlite3.connect('my-next-band.db')
|
||||
|
||||
c = conn.cursor()
|
||||
|
||||
# Create table
|
||||
c.execute('''CREATE TABLE bands (name text, time text, image text)''')
|
||||
|
||||
# Insert a row of data
|
||||
insert = '''INSERT INTO bands VALUES ('{0}','{1}','{2}')'''.format(args.band,
|
||||
now,
|
||||
"placeholder")
|
||||
c.execute(insert)
|
||||
|
||||
# Save (commit) the changes
|
||||
conn.commit()
|
||||
|
||||
# We can also close the connection if we are done with it.
|
||||
# Just be sure any changes have been committed or they will be lost.
|
||||
conn.close()
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
|
@ -1,58 +0,0 @@
|
|||
#!/usr/bin/env python3
|
||||
# script by jessebot@linux.com to get the bands' art and do the things
|
||||
# 1/10/19 -- 2019? D:
|
||||
import argparse
|
||||
import datetime
|
||||
from google_images_download import google_images_download
|
||||
import sqlite3
|
||||
|
||||
|
||||
def generate_band_art(band):
|
||||
# change image results by making different key words
|
||||
band_list = band.split()
|
||||
last_item = len(band_list) - 1
|
||||
keywd = band_list[last_item]
|
||||
# google image
|
||||
response = google_images_download.googleimagesdownload()
|
||||
absolute_img_paths = response.download({"keywords":keywd, "size":"medium",
|
||||
"output_directory":"./images/band",
|
||||
"no_directory":"true",
|
||||
"no_numbering":"true", "limit":1})
|
||||
path = absolute_img_paths[keywd][0]
|
||||
art = path.replace("/var/www/jessebot.io/images/band/","")
|
||||
|
||||
conn = sqlite3.connect('my-next-band.db')
|
||||
c = conn.cursor()
|
||||
|
||||
# timestamp!
|
||||
now = str(datetime.datetime.now())
|
||||
|
||||
# Insert a row of data
|
||||
insert = '''INSERT INTO bands VALUES ('{0}','{1}','{2}')'''.format(band,
|
||||
now,
|
||||
art)
|
||||
print(insert)
|
||||
c.execute(insert)
|
||||
# Save (commit) the changes
|
||||
conn.commit()
|
||||
|
||||
# close db connection
|
||||
conn.close()
|
||||
|
||||
|
||||
def main():
|
||||
parser = argparse.ArgumentParser(description='Document cool band names.')
|
||||
parser.add_argument('--band', type=str, nargs='+', help='a COOL band name')
|
||||
|
||||
args = parser.parse_args()
|
||||
|
||||
if args.band:
|
||||
if type(args.band) == list:
|
||||
band = " ".join(args.band)
|
||||
else:
|
||||
band = args.band
|
||||
# make art
|
||||
generate_band_art(band)
|
||||
|
||||
if __name__ == '__main__':
|
||||
main()
|
|
@ -1,36 +0,0 @@
|
|||
#!/usr/bin/python3
|
||||
import argparse
|
||||
from PIL import Image
|
||||
from PIL import ImageFont
|
||||
from PIL import ImageDraw
|
||||
import sqlite3
|
||||
|
||||
|
||||
def add_text():
|
||||
img = Image.open(image_name)
|
||||
draw = ImageDraw.Draw(img)
|
||||
# font = ImageFont.truetype(<font-file>, <font-size>)
|
||||
font = ImageFont.truetype("sans-serif.ttf", 16)
|
||||
# draw.text((x, y),"Sample Text",(r,g,b))
|
||||
draw.text((0, 0),"Sample Text",(255,255,255),font=font)
|
||||
img.save('sample-out.jpg')
|
||||
|
||||
def main():
|
||||
parser = argparse.ArgumentParser(description='Document cool band names.')
|
||||
parser.add_argument('--band', type=str, nargs='+', help='a COOL band name')
|
||||
|
||||
args = parser.parse_args()
|
||||
|
||||
if args.band:
|
||||
if type(args.band) == list:
|
||||
band = " ".join(args.band)
|
||||
else:
|
||||
band = args.band
|
||||
# make art
|
||||
generate_band_art(band)
|
||||
|
||||
if __name__ == '__main__':
|
||||
main()
|
||||
|
||||
|
||||
|
|
@ -1,146 +0,0 @@
|
|||
#!/usr/bin/python
|
||||
# Jesse Hitch - JesseBot@Linux.com
|
||||
# 1/10/19 Production Web Routing File -- Personal Routes
|
||||
import bottle
|
||||
from bottle import redirect, request, response, route
|
||||
from bottle import run, static_file, template
|
||||
import logging as log
|
||||
import os
|
||||
import sys
|
||||
import yaml
|
||||
import band_names_db
|
||||
|
||||
|
||||
def get_global_variables():
|
||||
"""
|
||||
Gets global variables from YAML file. Returns dict.
|
||||
"""
|
||||
with open('./config/config.yaml', 'r') as f:
|
||||
doc = yaml.load(f)
|
||||
txt = doc["Globals"]
|
||||
return txt
|
||||
|
||||
|
||||
def get_ld_variables(ld_var):
|
||||
"""
|
||||
Gets global variables from YAML file. Returns dict.
|
||||
"""
|
||||
with open('./config/config_likes_dislikes.yaml', 'r') as f:
|
||||
doc = yaml.load(f)
|
||||
txt = doc[ld_var]
|
||||
return txt
|
||||
|
||||
|
||||
def sorted_vars(some_dict):
|
||||
"""
|
||||
Iterates through a dict and fixes list values to be alphabitized
|
||||
takes a dict.
|
||||
"""
|
||||
for key, value in some_dict.items():
|
||||
value.sort()
|
||||
some_dict[key] = value
|
||||
return some_dict
|
||||
|
||||
|
||||
# Web routes below this line...
|
||||
# full path to HTML templates
|
||||
WEB_ROOT = get_global_variables()['web_root']
|
||||
bottle.TEMPLATE_PATH.insert(0, '{0}/views/'.format(WEB_ROOT))
|
||||
|
||||
|
||||
@route('/google1ab5c73d1f31729d.html')
|
||||
def goog():
|
||||
# allow google to crawl me harder
|
||||
return static_file('google1ab5c73d1f31729d.html', root=WEB_ROOT+'/views/')
|
||||
|
||||
|
||||
@route('/next-band')
|
||||
def next_band():
|
||||
log.info("oh hi, you must be here to see the name of my next band")
|
||||
# Grab site specific information - YAML
|
||||
globals = get_global_variables()
|
||||
|
||||
all_bands = band_names_db.get_all_bands()
|
||||
log.info("received band.db response: {0}".format(all_bands))
|
||||
|
||||
return template('next-band', globals=globals, bands=all_bands)
|
||||
|
||||
|
||||
@route('/next-band', method='POST')
|
||||
def next_band_submit():
|
||||
# get band from post
|
||||
inputBand = request.forms.get('inputBand')
|
||||
log.info("received band name: {0}".format(inputBand))
|
||||
|
||||
# add new band to db
|
||||
add_new_band = band_names_db.add_new_band(inputBand)
|
||||
|
||||
# if success redirect back to main page
|
||||
if add_new_band == "Success":
|
||||
redirect("/next-band")
|
||||
else:
|
||||
return "<p>THERE WAS AN ERROR: {0}</p>".format(add_new_band)
|
||||
|
||||
|
||||
@route('/love')
|
||||
def love():
|
||||
# Grab site specific information - YAML
|
||||
globals = get_global_variables()
|
||||
likes = get_ld_variables("likes")
|
||||
sorted_likes = sorted_vars(likes)
|
||||
return template('love', globals=globals, likes=sorted_likes)
|
||||
|
||||
|
||||
@route('/hate')
|
||||
def hate():
|
||||
# Grab site specific information - YAML
|
||||
globals = get_global_variables()
|
||||
dislikes = get_ld_variables("dislikes")
|
||||
sorted_dislikes = sorted_vars(dislikes)
|
||||
return template('hate', globals=globals, dislikes=sorted_dislikes)
|
||||
|
||||
|
||||
@route('/resources')
|
||||
def hate():
|
||||
# Grab site specific information - YAML
|
||||
globals = get_global_variables()
|
||||
dislikes = get_ld_variables("dislikes")
|
||||
sorted_dislikes = sorted_vars(dislikes)
|
||||
return template('hate', globals=globals, dislikes=sorted_dislikes)
|
||||
|
||||
|
||||
@route('/nutrition')
|
||||
def nutrition():
|
||||
# Grab site specific information - YAML
|
||||
globals = get_global_variables()
|
||||
return template('nutrition', globals=globals)
|
||||
|
||||
|
||||
@route('/trans')
|
||||
def trans():
|
||||
# Grab site specific information - YAML
|
||||
globals = get_global_variables()
|
||||
return template('trans', globals=globals)
|
||||
|
||||
|
||||
@route('/tech')
|
||||
def tech():
|
||||
# Grab site specific information - YAML
|
||||
globals = get_global_variables()
|
||||
return template('tech', globals=globals)
|
||||
|
||||
|
||||
@route('/resources')
|
||||
def hate():
|
||||
# Grab site specific information - YAML
|
||||
globals = get_global_variables()
|
||||
dislikes = get_ld_variables("dislikes")
|
||||
sorted_dislikes = sorted_vars(dislikes)
|
||||
return template('resources', globals=globals, dislikes=sorted_dislikes)
|
||||
|
||||
|
||||
@route('/dev')
|
||||
def dev():
|
||||
# Grab site specific information - YAML
|
||||
globals = get_global_variables()
|
||||
return template('dev', globals=globals)
|
|
@ -7,32 +7,37 @@
|
|||
|
||||
[class^="nf-"]:before {
|
||||
font-family: 'Mononoki';
|
||||
font-size: 1.3rem;
|
||||
color: cornflowerblue;
|
||||
/* Better Font Rendering (from devicons, et al) */
|
||||
-webkit-font-smoothing: antialiased;
|
||||
-moz-osx-font-smoothing: grayscale;
|
||||
}
|
||||
|
||||
|
||||
/* ------- social icons ----------- */
|
||||
|
||||
.nf-fa-github_alt:before {
|
||||
content: "\f113";
|
||||
font-size: 4rem;
|
||||
color: cornflowerblue;
|
||||
}
|
||||
|
||||
.nf-fa-github_alt_link:before {
|
||||
content: "\f113";
|
||||
font-size: 4rem !important;
|
||||
}
|
||||
|
||||
.nf-fa-gitlab:before {
|
||||
content: "\f296";
|
||||
font-size: 4rem;
|
||||
color: cornflowerblue;
|
||||
font-size: 4rem !important;
|
||||
}
|
||||
|
||||
.nf-fa-linkedin_square:before {
|
||||
content: "\f08c";
|
||||
font-size: 4rem;
|
||||
color: cornflowerblue;
|
||||
font-size: 4rem !important;
|
||||
}
|
||||
|
||||
|
||||
/* ------- user icons ----------- */
|
||||
.nf-fa-user_secret:before {
|
||||
content: "\f21b";
|
||||
}
|
||||
|
||||
.nf-mdi-human:before {
|
||||
content: "\f7e5";
|
||||
|
@ -41,3 +46,7 @@
|
|||
.nf-mdi-account:before {
|
||||
content: "\f503";
|
||||
}
|
||||
|
||||
.nf-mdi-forklift:before {
|
||||
content: "\fcc7";
|
||||
}
|
||||
|
|
|
@ -1,7 +1,5 @@
|
|||
/* This was originally built on:
|
||||
BLOCKS - Responsive Dashboard Theme - Copyright 2013
|
||||
Which was designed and built based on Twitter Bootstrap and created by:
|
||||
Carlos Alvarez
|
||||
/* Forked from:
|
||||
BLOCKS - Copyright 2013 - Carlos Alvarez
|
||||
|
||||
Since BLOCKS is dead since 2013, this is now a basic user linktree
|
||||
designed and maintained by jessebot[at]linux[dot]com
|
||||
|
@ -11,7 +9,7 @@
|
|||
| Color | Used for |
|
||||
|:-------:|:---------------------------------------|
|
||||
| #1f1f1f | Background Color |
|
||||
| #3d3d3d | Dash-unit and half-unit Section |
|
||||
| #3d3d3d | cardclone and half-unit Section |
|
||||
| #262626 | Footer |
|
||||
| #fa1d2d | Red - Used in selectors and paragraphs |
|
||||
| #b2c831 | Green - Used in titles |
|
||||
|
@ -73,7 +71,8 @@ h5 {
|
|||
}
|
||||
|
||||
/* ----------------------- Dash Unit -------------------------- */
|
||||
.dash-unit {
|
||||
|
||||
.cardclone {
|
||||
margin-bottom: 30px;
|
||||
padding-bottom: 10px;
|
||||
background-image: url('../images/sep-half.png');
|
||||
|
@ -91,21 +90,21 @@ h5 {
|
|||
filter: alpha(opacity=97);
|
||||
}
|
||||
|
||||
.dash-unit:hover {
|
||||
.cardclone:hover {
|
||||
background-color: #3a3a3a;
|
||||
-moz-box-shadow: 3px 3px 2px 0px #151515;
|
||||
-webkit-box-shadow: 3px 3px 2px 0px #151515;
|
||||
box-shadow: 3px 3px 2px 0px #151515;
|
||||
}
|
||||
|
||||
.dash-unit hr {
|
||||
.cardclone hr {
|
||||
border: 0;
|
||||
border-top: 1px solid #151515;
|
||||
border-top-style: dashed;
|
||||
margin-top: 3px;
|
||||
}
|
||||
|
||||
.dash-unit p {
|
||||
.cardclone p {
|
||||
font-size: 14px;
|
||||
font-weight: 200;
|
||||
line-height: 16px;
|
||||
|
@ -117,27 +116,47 @@ h5 {
|
|||
padding-right: 20px;
|
||||
}
|
||||
|
||||
.dash-unit bold {
|
||||
font-family: 'Open Sans', sans-serif;
|
||||
.cardclone bold {
|
||||
font-size: 26px;
|
||||
font-weight: bold;
|
||||
color: #fff;
|
||||
color: #ffffff;
|
||||
vertical-align: middle;
|
||||
}
|
||||
|
||||
.dash-unit dtitle {
|
||||
.c-title {
|
||||
font-size: 11px;
|
||||
text-transform: uppercase;
|
||||
color: #ffffff;
|
||||
margin: 8px;
|
||||
padding-top: 4px;
|
||||
margin: 1px;
|
||||
padding-top: 0px;
|
||||
padding-bottom: 2px;
|
||||
padding-left: 0px;
|
||||
padding-right: 0px;
|
||||
height: inherit;
|
||||
}
|
||||
|
||||
.c-title-social {
|
||||
margin: 5px;
|
||||
font-size: 11px;
|
||||
text-transform: uppercase;
|
||||
color: #ffffff;
|
||||
padding: 0px;
|
||||
height: inherit;
|
||||
}
|
||||
|
||||
.c-footer-link {
|
||||
font-size: 11px;
|
||||
text-transform: uppercase;
|
||||
color: #ffffff;
|
||||
margin: 2px;
|
||||
padding-top: 3px;
|
||||
padding-bottom: 0px;
|
||||
padding-left: 0px;
|
||||
padding-right: 0px;
|
||||
height: inherit;
|
||||
}
|
||||
|
||||
.dash-unit h1 {
|
||||
.cardclone h1 {
|
||||
font-family: 'Raleway', sans-serif;
|
||||
font-weight: 300;
|
||||
font-size: 20px;
|
||||
|
@ -150,7 +169,7 @@ h5 {
|
|||
text-align: center;
|
||||
}
|
||||
|
||||
.dash-unit h2 {
|
||||
.cardclone h2 {
|
||||
font-family: 'Open Sans', sans-serif;
|
||||
font-weight: bold;
|
||||
font-size: 30px;
|
||||
|
@ -163,7 +182,7 @@ h5 {
|
|||
text-align: center;
|
||||
}
|
||||
|
||||
.dash-unit h3 {
|
||||
.cardclone h3 {
|
||||
font-weight: 300;
|
||||
font-size: 15px;
|
||||
line-height: 2px;
|
||||
|
@ -175,14 +194,14 @@ h5 {
|
|||
text-align: center;
|
||||
}
|
||||
|
||||
.dash-unit h4 {
|
||||
.cardclone h4 {
|
||||
padding-left: 5px;
|
||||
margin-top: 2px;
|
||||
font-size: 13px;
|
||||
font-weight: lighter;
|
||||
line-height: 1;
|
||||
letter-spacing: 0px;
|
||||
color: #fff;
|
||||
color: #ffffff;
|
||||
}
|
||||
|
||||
|
||||
|
@ -216,11 +235,11 @@ h5 {
|
|||
font-family: 'Open Sans', sans-serif;
|
||||
font-size: 26px;
|
||||
font-weight: bold;
|
||||
color: #fff;
|
||||
color: #ffffff;
|
||||
vertical-align: middle;
|
||||
}
|
||||
|
||||
.half-unit dtitle {
|
||||
.half-unit c-title {
|
||||
font-size: 10px;
|
||||
text-transform: uppercase;
|
||||
color: #ffffff;
|
||||
|
@ -249,7 +268,7 @@ h5 {
|
|||
font-weight: lighter;
|
||||
line-height: 1;
|
||||
letter-spacing: 0px;
|
||||
color: #fff;
|
||||
color: #ffffff;
|
||||
}
|
||||
|
||||
/**********Styling Elements**********/
|
||||
|
@ -300,14 +319,14 @@ h5 {
|
|||
.modal-header {
|
||||
background-image: url('../images/sep-half.png');
|
||||
background-color: #4f4f4f;
|
||||
color: #fff;
|
||||
color: #ffffff;
|
||||
}
|
||||
|
||||
input[type=submit] {
|
||||
font-family: 'Open Sans', sans-serif;
|
||||
font-size: 15px;
|
||||
background: #b2c831;
|
||||
color: #fff;
|
||||
color: #ffffff;
|
||||
border: none;
|
||||
padding: 8px 28px 10px 26px;
|
||||
*-webkit-border-radius: 4px;
|
||||
|
@ -439,25 +458,6 @@ a:hover {
|
|||
text-decoration: none;
|
||||
}
|
||||
|
||||
|
||||
/********** FooterWrap Section **********/
|
||||
#footerwrap {
|
||||
background: #262626;
|
||||
background-image: url('../images/sep-half.png');
|
||||
padding-top: 25px;
|
||||
padding-bottom: 40px;
|
||||
border-top-style: solid;
|
||||
border-top-width: 8px;
|
||||
border-top-color: #1d1d1d;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
#footerwrap p {
|
||||
color: white;
|
||||
font-size: 12px;
|
||||
}
|
||||
|
||||
|
||||
/********** Media Styles **********/
|
||||
|
||||
/* portrait tablet */
|
||||
|
|
|
@ -1,4 +0,0 @@
|
|||
<?xml version="1.0" ?><svg id="Layer_1" style="enable-background:new 0 0 48 48;" version="1.1" viewBox="0 0 48 48" xml:space="preserve" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><style type="text/css">
|
||||
.st0{opacity:0.3;fill:#29ABE2;enable-background:new ;}
|
||||
.st1{fill:#29ABE2;}
|
||||
</style><title/><g id="LinkedIn"><path class="st0" d="M38,8H16c-1.1,0-2,0.9-2,2v22c0,1.1,0.9,2,2,2h22c1.1,0,2-0.9,2-2V10C40,8.9,39.1,8,38,8z M23,30.5 c0,0.3-0.2,0.5-0.5,0.5h-4c-0.3,0-0.5-0.2-0.5-0.5v-12c0-0.3,0.2-0.5,0.5-0.5h4c0.3,0,0.5,0.2,0.5,0.5V30.5z M20.5,17 c-1.4,0-2.5-1.1-2.5-2.5s1.1-2.5,2.5-2.5s2.5,1.1,2.5,2.5S21.9,17,20.5,17z M37,30.5c0,0.3-0.2,0.5-0.5,0.5h-4 c-0.3,0-0.5-0.2-0.5-0.5v-7c0-0.8-0.7-1.5-1.5-1.5S29,22.7,29,23.5v7c0,0.3-0.2,0.5-0.5,0.5h-4c-0.3,0-0.5-0.2-0.5-0.5v-12 c0-0.3,0.2-0.5,0.5-0.5h4c0.3,0,0.5,0.2,0.5,0.5V19c0.9-0.7,1.9-1,3-1c2.8,0,5,2.2,5,5V30.5z"/><path class="st1" d="M12,22c-1.1,0-2,0.9-2,2s0.9,2,2,2s2-0.9,2-2S13.1,22,12,22z M12,25c-0.6,0-1-0.4-1-1s0.4-1,1-1s1,0.4,1,1 S12.6,25,12,25z"/><path class="st1" d="M13.5,27h-3c-0.3,0-0.5,0.2-0.5,0.5v10c0,0.3,0.2,0.5,0.5,0.5h3c0.3,0,0.5-0.2,0.5-0.5v-10 C14,27.2,13.8,27,13.5,27z M13,37h-2v-9h2V37z"/><path class="st1" d="M21.5,27c-0.9,0-1.8,0.3-2.5,0.8v-0.3c0-0.3-0.2-0.5-0.5-0.5h-3c-0.3,0-0.5,0.2-0.5,0.5v10 c0,0.3,0.2,0.5,0.5,0.5h3c0.3,0,0.5-0.2,0.5-0.5V32c0-1.3,0.6-2,1.5-2s1.5,0.8,1.5,2v5.5c0,0.3,0.2,0.5,0.5,0.5h3 c0.3,0,0.5-0.2,0.5-0.5V32C26,29,24.2,27,21.5,27z M25,37h-2v-5c0-2.1-1.3-3-2.5-3S18,29.9,18,32v5h-2v-9h2v1 c0,0.3,0.2,0.5,0.5,0.5c0.1,0,0.3-0.1,0.4-0.2c0.6-0.9,1.6-1.4,2.6-1.3c2.2,0,3.5,1.5,3.5,4V37z"/><path class="st1" d="M27,19H9c-1.1,0-2,0.9-2,2v18c0,1.1,0.9,2,2,2h18c1.1,0,2-0.9,2-2V21C29,19.9,28.1,19,27,19z M28,39 c0,0.6-0.4,1-1,1H9c-0.6,0-1-0.4-1-1V21c0-0.6,0.4-1,1-1h18c0.6,0,1,0.4,1,1V39z"/></g></svg>
|
Before Width: | Height: | Size: 1.8 KiB |
Binary file not shown.
Before Width: | Height: | Size: 10 KiB |
|
@ -25,4 +25,5 @@
|
|||
});
|
||||
</script>
|
||||
</body>
|
||||
<footer>Fork me on Github <3</footer>
|
||||
</html>
|
||||
|
|
|
@ -8,6 +8,6 @@
|
|||
$('[data-toggle="tooltip"]').tooltip()
|
||||
});
|
||||
</script>
|
||||
|
||||
</body>
|
||||
|
||||
</html>
|
||||
|
|
|
@ -1,39 +0,0 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="en" xmlns="http://www.w3.org/1999/xhtml" xmlns:fb="http://ogp.me/ns/fb#">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
|
||||
<meta name="description" content="Input the name of your next band and get some cool cover art.">
|
||||
<meta name="author" content="Jesse Hitch">
|
||||
<meta name="theme-color" content="#1f1f1f" />
|
||||
<link rel="icon" type="image/x-icon" href="/images/{{globals['favicon']}}">
|
||||
|
||||
<meta property="og:url" content="https://jessebot.io/next-band">
|
||||
<meta property="og:image" content="/images/noun_rock_monster.png">
|
||||
<meta property="og:title" content="NAME OF MY NEXT BAND">
|
||||
<meta property="og:description" content="Input the name of your next band and get some cool cover art.">
|
||||
<!-- <meta property="og:type" content="profile"> -->
|
||||
|
||||
|
||||
|
||||
<title>MY NEXT BAND</title>
|
||||
|
||||
<!-- Bootstrap core CSS -->
|
||||
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.2.1/css/bootstrap.min.css" integrity="sha384-GJzZqFGwb1QTTN6wy59ffF1BuGJpLSa9DkKMp0DgiMDm4iYMj70gZWKYbI706tWS" crossorigin="anonymous">
|
||||
<!-- Custom styles for this template -->
|
||||
<link href="/css/main.css" rel="stylesheet">
|
||||
<link href="css/tabs.css" rel="stylesheet">
|
||||
<link href="css/font-style.css" rel="stylesheet">
|
||||
|
||||
<style type="text/css">
|
||||
body {
|
||||
padding-top: 60px;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
% if globals['fork_me']:
|
||||
<a href="https://github.com/jessebot/tiny_personal_website" class="github-corner" aria-label="View source on Github"><svg width="80" height="80" viewBox="0 0 250 250" style="fill:#151513; color:#1f1f1f; position: absolute; top: 0; border: 0; right: 0;" aria-hidden="true"><path d="M0,0 L115,115 L130,115 L142,142 L250,250 L250,0 Z"></path><path d="M128.3,109.0 C113.8,99.7 119.0,89.6 119.0,89.6 C122.0,82.7 120.5,78.6 120.5,78.6 C119.2,72.0 123.4,76.3 123.4,76.3 C127.3,80.9 125.5,87.3 125.5,87.3 C122.9,97.6 130.6,101.9 134.4,103.2" fill="currentColor" style="transform-origin: 130px 106px;" class="octo-arm"></path><path d="M115.0,115.0 C114.9,115.1 118.7,116.5 119.8,115.4 L133.7,101.6 C136.9,99.2 139.9,98.4 142.2,98.6 C133.8,88.0 127.5,74.4 143.8,58.0 C148.5,53.4 154.0,51.2 159.7,51.0 C160.3,49.4 163.2,43.6 171.4,40.1 C171.4,40.1 176.1,42.5 178.8,56.2 C183.1,58.6 187.2,61.8 190.9,65.4 C194.5,69.0 197.7,73.2 200.1,77.6 C213.8,80.2 216.3,84.9 216.3,84.9 C212.7,93.1 206.9,96.0 205.4,96.6 C205.1,102.4 203.0,107.8 198.3,112.5 C181.9,128.9 168.3,122.5 157.7,114.1 C157.9,116.9 156.7,120.9 152.7,124.9 L141.0,136.5 C139.8,137.7 141.6,141.9 141.8,141.8 Z" fill="currentColor" class="octo-body"></path></svg></a><style>.github-corner:hover .octo-arm{animation:octocat-wave 560ms ease-in-out}@keyframes octocat-wave{0%,100%{transform:rotate(0)}20%,60%{transform:rotate(-25deg)}40%,80%{transform:rotate(10deg)']}}@media (max-width:500px){.github-corner:hover .octo-arm{animation:none}.github-corner .octo-arm{animation:octocat-wave 560ms ease-in-out']}}</style>
|
||||
% end
|
|
@ -34,6 +34,6 @@
|
|||
</head>
|
||||
|
||||
<body>
|
||||
% if globals['fork_me']:
|
||||
<a href="https://github.com/jessebot/tiny_personal_website" class="github-corner" aria-label="View source on Github"><svg width="80" height="80" viewBox="0 0 250 250" style="fill:#151513; color:#1f1f1f; position: absolute; top: 0; border: 0; right: 0;" aria-hidden="true"><path d="M0,0 L115,115 L130,115 L142,142 L250,250 L250,0 Z"></path><path d="M128.3,109.0 C113.8,99.7 119.0,89.6 119.0,89.6 C122.0,82.7 120.5,78.6 120.5,78.6 C119.2,72.0 123.4,76.3 123.4,76.3 C127.3,80.9 125.5,87.3 125.5,87.3 C122.9,97.6 130.6,101.9 134.4,103.2" fill="currentColor" style="transform-origin: 130px 106px;" class="octo-arm"></path><path d="M115.0,115.0 C114.9,115.1 118.7,116.5 119.8,115.4 L133.7,101.6 C136.9,99.2 139.9,98.4 142.2,98.6 C133.8,88.0 127.5,74.4 143.8,58.0 C148.5,53.4 154.0,51.2 159.7,51.0 C160.3,49.4 163.2,43.6 171.4,40.1 C171.4,40.1 176.1,42.5 178.8,56.2 C183.1,58.6 187.2,61.8 190.9,65.4 C194.5,69.0 197.7,73.2 200.1,77.6 C213.8,80.2 216.3,84.9 216.3,84.9 C212.7,93.1 206.9,96.0 205.4,96.6 C205.1,102.4 203.0,107.8 198.3,112.5 C181.9,128.9 168.3,122.5 157.7,114.1 C157.9,116.9 156.7,120.9 152.7,124.9 L141.0,136.5 C139.8,137.7 141.6,141.9 141.8,141.8 Z" fill="currentColor" class="octo-body"></path></svg></a><style>.github-corner:hover .octo-arm{animation:octocat-wave 560ms ease-in-out}@keyframes octocat-wave{0%,100%{transform:rotate(0)}20%,60%{transform:rotate(-25deg)}40%,80%{transform:rotate(10deg)']}}@media (max-width:500px){.github-corner:hover .octo-arm{animation:none}.github-corner .octo-arm{animation:octocat-wave 560ms ease-in-out']}}</style>
|
||||
% end
|
||||
{% if globals['fork_me'] %}
|
||||
<a href="https://github.com/jessebot/tiny_personal_website" class="github-corner" aria-label="View source on Github"><svg width="80" height="80" viewBox="0 0 250 250" style="fill:#151513; color:#1f1f1f; position: absolute; top: 0; border: 0; right: 0;" aria-hidden="true"><path d="M0,0 L115,115 L130,115 L142,142 L250,250 L250,0 Z"></path><path d="M128.3,109.0 C113.8,99.7 119.0,89.6 119.0,89.6 C122.0,82.7 120.5,78.6 120.5,78.6 C119.2,72.0 123.4,76.3 123.4,76.3 C127.3,80.9 125.5,87.3 125.5,87.3 C122.9,97.6 130.6,101.9 134.4,103.2" fill="currentColor" style="transform-origin: 130px 106px;" class="octo-arm"></path><path d="M115.0,115.0 C114.9,115.1 118.7,116.5 119.8,115.4 L133.7,101.6 C136.9,99.2 139.9,98.4 142.2,98.6 C133.8,88.0 127.5,74.4 143.8,58.0 C148.5,53.4 154.0,51.2 159.7,51.0 C160.3,49.4 163.2,43.6 171.4,40.1 C171.4,40.1 176.1,42.5 178.8,56.2 C183.1,58.6 187.2,61.8 190.9,65.4 C194.5,69.0 197.7,73.2 200.1,77.6 C213.8,80.2 216.3,84.9 216.3,84.9 C212.7,93.1 206.9,96.0 205.4,96.6 C205.1,102.4 203.0,107.8 198.3,112.5 C181.9,128.9 168.3,122.5 157.7,114.1 C157.9,116.9 156.7,120.9 152.7,124.9 L141.0,136.5 C139.8,137.7 141.6,141.9 141.8,141.8 Z" fill="currentColor" class="octo-body"></path></svg></a><style>.github-corner:hover .octo-arm{animation:octocat-wave 560ms ease-in-out}@keyframes octocat-wave{0{%,100{%{transform:rotate(0)}20{%,60{%{transform:rotate(-25deg)}40{%,80{%{transform:rotate(10deg)']}}@media (max-width:500px){.github-corner:hover .octo-arm{animation:none}.github-corner .octo-arm{animation:octocat-wave 560ms ease-in-out']}}</style>
|
||||
{% endif %}
|
||||
|
|
|
@ -1,14 +1,15 @@
|
|||
{% include('header_main.html') %}
|
||||
<div class="container d-flex align-items-center vh-100">
|
||||
|
||||
<div class="container d-flex align-items-center vh-100">
|
||||
<!-- user photo, name, and blurb -->
|
||||
<div class="row">
|
||||
<div class="col-4">
|
||||
<div class="dash-unit">
|
||||
<dtitle>
|
||||
<span class="nf-mdi-account" style="font-size: 1.2rem;"></span>
|
||||
<div class="cardclone">
|
||||
<div class='c-title'>
|
||||
<span class="nf-mdi-account">
|
||||
</span>
|
||||
About {{ config_vars['name'] }}
|
||||
</dtitle>
|
||||
</div>
|
||||
<hr style="margin-bottom: 0;">
|
||||
<img class="main-img"
|
||||
src="/static/img/{{ config_vars['profile_image'] }}"
|
||||
|
@ -17,7 +18,7 @@
|
|||
data-toggle="tooltip" data-placement="bottom"
|
||||
title="{{ config_vars['name'] }}">
|
||||
<br />
|
||||
<dtitle>
|
||||
<div class='c-title'>
|
||||
<a href="https://pronouns.org/what-and-why"
|
||||
class="pronouns"
|
||||
style="color: cornflowerblue;">
|
||||
|
@ -26,14 +27,15 @@
|
|||
<a href="https://pronouns.org/they-them">
|
||||
{{ config_vars['pronouns'] }}
|
||||
</a>
|
||||
</dtitle>
|
||||
</div>
|
||||
<p>{{ config_vars['blurb'] }}</p>
|
||||
</div><!-- /.dash-unit -->
|
||||
</div><!-- /.col -->
|
||||
</div><!-- /.row -->
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="dash-unit">
|
||||
<dtitle>Social Links</dtitle>
|
||||
<!-- social links -->
|
||||
<div class="cardclone">
|
||||
<div class='c-title-social'>Social Links</div>
|
||||
<hr>
|
||||
|
||||
{% for lnk in social_links %}
|
||||
|
@ -47,15 +49,15 @@
|
|||
</a>
|
||||
{% endfor %}
|
||||
<hr>
|
||||
<dtitle>
|
||||
<div class='c-footer-link'>
|
||||
<a href="{{ config_vars['resume_pdf_URL'] }}"
|
||||
data-toggle="tooltip" data-placement="bottom"
|
||||
title="Download Resume as a PDF"
|
||||
style="box-shadow: none;">
|
||||
title="Download Resume as a PDF">
|
||||
Download Resume
|
||||
</a>
|
||||
</dtitle>
|
||||
</div><!-- /.dash-unit -->
|
||||
</div>
|
||||
</div><!-- /.cardclone -->
|
||||
|
||||
</div><!-- /.container MAIN-->
|
||||
|
||||
{% include('footer_main.html') %}
|
||||
|
|
|
@ -1,57 +0,0 @@
|
|||
% include('header_band.html')
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
|
||||
<!-- Input section -->
|
||||
<div class="col-xl-11 col-lg-11 col-md-11 col-sm-11 col-xs-12">
|
||||
<div class="dash-unit bhoechie-tab-container">
|
||||
<dtitle>
|
||||
<span aria-hidden="true" class="li_star fs1"></span>
|
||||
The Name of My Next Band
|
||||
</dtitle>
|
||||
<hr>
|
||||
<center>
|
||||
<div class="col-xl-11 col-lg-11 col-md-11 col-sm-11 col-xs-12">
|
||||
<form action="/next-band" method="post">
|
||||
<center>
|
||||
<div class="form-row align-items-center">
|
||||
<div class="col-md-5">
|
||||
<img class="img-responsive img-rounded center-block main-img" src="/images/noun_rock_monster.png" alt="Band Monster >:3" style="height:250px;" data-toggle="tooltip" data-placement="bottom" title="" data-original-title="Band Monster">
|
||||
</div>
|
||||
<div class="form-group col-md-6">
|
||||
Submit a band name, and it'll generate some cool art for you. Currently under construction.
|
||||
<label for="inputBand" class="sr-only">Input Band Name Here</label>
|
||||
<input type="text" class="form-control" id="inputBand" name="inputBand" placeholder="Band Name">
|
||||
<button type="submit" class="btn btn-primary btn-sm mb-2">Submit</button>
|
||||
</div>
|
||||
</div>
|
||||
</center>
|
||||
</form>
|
||||
</div>
|
||||
</center>
|
||||
</div> <!-- /.dash-unit -->
|
||||
</div> <!-- /.col -->
|
||||
|
||||
<!-- Previous bands -->
|
||||
<div class="col-xl-11 col-lg-11 col-md-11 col-sm-11 col-xs-12">
|
||||
<div class="dash-unit bhoechie-tab-container">
|
||||
<dtitle>
|
||||
<span aria-hidden="true" class="li_star fs1"></span>
|
||||
Previous Potential Band Names
|
||||
</dtitle>
|
||||
<hr>
|
||||
<center>
|
||||
<div class="col-xl-11 col-lg-11 col-md-11 col-sm-11 col-xs-12">
|
||||
% for band_set in bands:
|
||||
<li>{{band_set[0]}}</li><br />
|
||||
% end
|
||||
</div>
|
||||
</center>
|
||||
|
||||
</div><!-- /.dash-unit -->
|
||||
</div><!-- /.col -->
|
||||
|
||||
</div><!-- /.row ALL CARDS-->
|
||||
</div><!-- /.container MAIN-->
|
||||
|
||||
% include('footer_main.html')
|
|
@ -1,59 +1,63 @@
|
|||
% include('header_resources.html')
|
||||
<div class="container">
|
||||
{% include('header_resources.html') %}
|
||||
|
||||
<div class="container">
|
||||
<h3>Come learn about things!</h3>
|
||||
<br />
|
||||
<div class="row">
|
||||
<div class="col-xs-8 col-sm-4 col-md-3 col-lg-3">
|
||||
<div class="dash-unit bhoechie-tab-container">
|
||||
<dtitle>
|
||||
<div class="dash-unit">
|
||||
<div class="c-title">
|
||||
Health
|
||||
</dtitle>
|
||||
</div>
|
||||
<hr style="margin-bottom: 0;">
|
||||
<img class="img-responsive img-rounded center-block main-img"
|
||||
src="/images/noun_Health_1993730.png"
|
||||
src="/img/noun_Health_1993730.png"
|
||||
alt="Boop."
|
||||
style="height:250px;"
|
||||
data-toggle="tooltip" data-placement="bottom"
|
||||
title="Nutrition stuff">
|
||||
</div><!-- /.dash-unit -->
|
||||
</div><!-- /.col -->
|
||||
|
||||
<div class="col-xs-8 col-sm-4 col-md-3 col-lg-3">
|
||||
<div class="dash-unit bhoechie-tab-container">
|
||||
<dtitle>
|
||||
<div class="dash-unit">
|
||||
<div class='c-title'>
|
||||
Tech Stuff
|
||||
</dtitle>
|
||||
</div>
|
||||
<hr style="margin-bottom: 0;">
|
||||
<img class="img-responsive img-rounded center-block main-img"
|
||||
src="/images/noun_Robot_771023.png"
|
||||
src="/img/noun_Robot_771023.png"
|
||||
alt="Boop."
|
||||
style="height:250px;"
|
||||
data-toggle="tooltip" data-placement="bottom"
|
||||
title="Tech stuff">
|
||||
</div><!-- /.dash-unit -->
|
||||
</div><!-- /.col -->
|
||||
|
||||
<div class="col-xs-8 col-sm-4 col-md-3 col-lg-3">
|
||||
<div class="dash-unit bhoechie-tab-container">
|
||||
<dtitle>
|
||||
<div class="dash-unit">
|
||||
<div class='c-title'>
|
||||
Trans Data
|
||||
</dtitle>
|
||||
</div>
|
||||
<hr style="margin-bottom: 0;">
|
||||
<img class="img-responsive img-rounded center-block main-img"
|
||||
src="/images/noun_gender_pill.png"
|
||||
src="/img/noun_gender_pill.png"
|
||||
alt="Boop."
|
||||
style="height:250px;"
|
||||
data-toggle="tooltip" data-placement="bottom"
|
||||
title="Transgender words.">
|
||||
</div><!-- /.dash-unit -->
|
||||
</div><!-- /.col -->
|
||||
|
||||
<div class="col-xs-8 col-sm-4 col-md-3 col-lg-3">
|
||||
<div class="dash-unit bhoechie-tab-container">
|
||||
<dtitle>
|
||||
<div class="dash-unit">
|
||||
<div class='c-title'>
|
||||
The name of my next band
|
||||
</dtitle>
|
||||
</div>
|
||||
<hr style="margin-bottom: 0;">
|
||||
<a href="/next-band">
|
||||
<img class="img-responsive img-rounded center-block main-img"
|
||||
src="/images/noun_rock_monster.png"
|
||||
src="/img/noun_rock_monster.png"
|
||||
alt="Boop."
|
||||
style="height:250px;"
|
||||
data-toggle="tooltip" data-placement="bottom"
|
||||
|
@ -63,8 +67,7 @@
|
|||
</div><!-- /.col -->
|
||||
|
||||
|
||||
|
||||
</div><!-- /.row ALL CARDS-->
|
||||
</div><!-- /.container MAIN-->
|
||||
|
||||
% include('footer_main.html')
|
||||
{% include('footer_main.html') %}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue