mirror of
https://github.com/miggymofongo/asteroid.git
synced 2024-11-24 06:00:27 +00:00
this is what my server space directory looks like
This commit is contained in:
parent
ada2b0a315
commit
8ce5edef06
15 changed files with 318 additions and 164 deletions
18
.github/issue_template.md
vendored
Normal file
18
.github/issue_template.md
vendored
Normal file
|
@ -0,0 +1,18 @@
|
|||
Please follow the next steps. The issue will be closed if the following steps are not completed. Thank you. (You can remove this line).
|
||||
|
||||
### Describe your problem
|
||||
Complete here.
|
||||
|
||||
### Steps to reproduce the problem
|
||||
Complete here.
|
||||
|
||||
### Bludit version
|
||||
Complete here.
|
||||
|
||||
### PHP version
|
||||
If you do not know remove this line.
|
||||
|
||||
### PHP logs
|
||||
If you do not know remove this line.
|
||||
|
||||
The default settings of the PHP Error Log file varies from OS to OS. The location of the error log file itself can be set manually in the php.ini file. On a Windows server, in IIS, it may be something like `error_log = C:\log_files\php_errors.log` in Linux it may be a value of `/var/log/php_errors.log`.
|
32
.gitignore
vendored
Normal file
32
.gitignore
vendored
Normal file
|
@ -0,0 +1,32 @@
|
|||
.DS_Store
|
||||
dbgenerator.php
|
||||
bl-content/*
|
||||
!bl-content/.keep
|
||||
bl-content-migrator
|
||||
bl-plugins/timemachine
|
||||
bl-plugins/timemachine-x
|
||||
bl-plugins/discovery
|
||||
bl-plugins/updater
|
||||
bl-plugins/medium-editor
|
||||
bl-plugins/quill
|
||||
bl-plugins/yandex-metrica/
|
||||
bl-plugins/domain-migrator/
|
||||
bl-plugins/tail-writer/
|
||||
bl-kernel/bludit.pro.php
|
||||
bl-kernel/admin/themes/gris
|
||||
bl-themes/docs
|
||||
bl-themes/typerite
|
||||
bl-themes/docsx
|
||||
bl-themes/editorial
|
||||
bl-themes/mediumish
|
||||
bl-themes/clean-blog
|
||||
bl-themes/grayscale
|
||||
bl-themes/massively
|
||||
bl-themes/hyperspace
|
||||
bl-themes/striped
|
||||
bl-themes/log
|
||||
bl-themes/micro
|
||||
bl-themes/tagg
|
||||
bl-themes/small
|
||||
bl-themes/future-imperfect
|
||||
bl-themes/social-network
|
19
.htaccess
Normal file
19
.htaccess
Normal file
|
@ -0,0 +1,19 @@
|
|||
AddDefaultCharset UTF-8
|
||||
|
||||
<IfModule mod_rewrite.c>
|
||||
|
||||
# Enable rewrite rules
|
||||
RewriteEngine on
|
||||
|
||||
# Base directory
|
||||
RewriteBase /
|
||||
|
||||
# Deny direct access to the next directories
|
||||
RewriteRule ^bl-content/(databases|workspaces|pages|tmp)/.*$ - [R=404,L]
|
||||
|
||||
# All URL process by index.php
|
||||
RewriteCond %{REQUEST_FILENAME} !-f
|
||||
RewriteCond %{REQUEST_FILENAME} !-d
|
||||
RewriteRule ^(.*) index.php [PT,L]
|
||||
|
||||
</IfModule>
|
4
app.py
4
app.py
|
@ -5,7 +5,7 @@ import os
|
|||
app = Flask(__name__)
|
||||
|
||||
# Directory containing EPUB files
|
||||
EPUBS_DIR = './bibi-bookshelf/'
|
||||
RESUME_DIR = './resumes/'
|
||||
|
||||
@app.route('/')
|
||||
def index():
|
||||
|
@ -21,7 +21,7 @@ def search():
|
|||
matching_files = []
|
||||
|
||||
# Fetch all EPUB files from the directory and filter them based on the search query
|
||||
all_files = [f for f in os.listdir(EPUBS_DIR) if f.lower().endswith('.epub')]
|
||||
all_files = [f for f in os.listdir(RESUME_DIR) if f.lower().endswith('.epub')]
|
||||
matching_files += [f for f in all_files if query in f.lower()]
|
||||
|
||||
# Generate HTML for the list of matching files
|
||||
|
|
BIN
bookshelf/interact2.epub
Normal file
BIN
bookshelf/interact2.epub
Normal file
Binary file not shown.
BIN
fonts/KHGummi.otf
Normal file
BIN
fonts/KHGummi.otf
Normal file
Binary file not shown.
BIN
img/codeblog.png
Normal file
BIN
img/codeblog.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 67 KiB |
BIN
img/forsite.webp
Normal file
BIN
img/forsite.webp
Normal file
Binary file not shown.
After Width: | Height: | Size: 1.8 MiB |
253
index.html
253
index.html
|
@ -4,22 +4,20 @@
|
|||
<meta charset="UTF-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||
<title>El Asteroide De Miguel</title>
|
||||
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.2/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-T3c6CoIi6uLrA9TneNEoa7RxnatzjcDSCmG1MXxSR1GAsXEV/Dwwykc2MPK8M2HN" crossorigin="anonymous">
|
||||
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.2/dist/js/bootstrap.bundle.min.js" integrity="sha384-C6RzsynM9kWDrMNeT87bh95OGNyZPhcTNXj1NW7RuBCsyN/o0jlpcV8Qyq46cDfL" crossorigin="anonymous"></script>
|
||||
<script src="https://unpkg.com/htmx.org@1.9.10" integrity="sha384-D1Kt99CQMDuVetoL1lrYwg5t+9QdHe7NLX/SoJYkXDFfX37iInKRy5xLSi8nO7UC" crossorigin="anonymous"></script>
|
||||
<style>
|
||||
.quote-banner {
|
||||
/* Your styling for the banner */
|
||||
padding: 10px;
|
||||
text-decoration: blue;
|
||||
color: white;
|
||||
font-weight: bold;
|
||||
background-color: #a88a8a;
|
||||
text-align: center;
|
||||
/* other styles as needed */
|
||||
}
|
||||
|
||||
</style>
|
||||
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.2/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-T3c6CoIi6uLrA9TneNEoa7RxnatzjcDSCmG1MXxSR1GAsXEV/Dwwykc2MPK8M2HN" crossorigin="anonymous"></link>
|
||||
|
||||
<link rel="stylesheet" href="./styles.css"></link>
|
||||
|
||||
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.2/dist/js/bootstrap.bundle.min.js" integrity="sha384-C6RzsynM9kWDrMNeT87bh95OGNyZPhcTNXj1NW7RuBCsyN/o0jlpcV8Qyq46cDfL" crossorigin="anonymous"></script>
|
||||
|
||||
<script src="https://unpkg.com/htmx.org@1.9.10" integrity="sha384-D1Kt99CQMDuVetoL1lrYwg5t+9QdHe7NLX/SoJYkXDFfX37iInKRy5xLSi8nO7UC" crossorigin="anonymous"></script>
|
||||
|
||||
<script src="./scripts.js"></script>
|
||||
|
||||
<script src="../epub.js/src/reader.js"></script>
|
||||
|
||||
|
||||
|
||||
|
||||
</head>
|
||||
|
@ -27,175 +25,140 @@
|
|||
|
||||
|
||||
<body>
|
||||
|
||||
<div class="container">
|
||||
<nav class="navbar navbar-expand-lg sticky-top bg-body-tertiary">
|
||||
<nav class="navbar navbar-dark bg-dark fixed-top">
|
||||
<div class="container-fluid">
|
||||
<a class="navbar-brand" href="#">Bienvenidos a mi Asteroide!</a>
|
||||
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarNavDropdown" aria-controls="navbarNavDropdown" aria-expanded="false" aria-label="Toggle navigation">
|
||||
<a class="navbar-brand" href="#">Miguel's Asteroid</a>
|
||||
<button class="navbar-toggler" type="button" data-bs-toggle="offcanvas" data-bs-target="#offcanvasDarkNavbar" aria-controls="offcanvasDarkNavbar" aria-label="Toggle navigation">
|
||||
<span class="navbar-toggler-icon"></span>
|
||||
</button>
|
||||
<div class="collapse navbar-collapse" id="navbarNavDropdown">
|
||||
<ul class="navbar-nav">
|
||||
<!-- Home Page Link -->
|
||||
<div class="offcanvas offcanvas-end text-bg-dark" tabindex="-1" id="offcanvasDarkNavbar" aria-labelledby="offcanvasDarkNavbarLabel">
|
||||
<div class="offcanvas-header">
|
||||
<h5 class="offcanvas-title" id="offcanvasDarkNavbarLabel">Menu</h5>
|
||||
<button type="button" class="btn-close btn-close-white" data-bs-dismiss="offcanvas" aria-label="Close"></button>
|
||||
</div>
|
||||
<div class="offcanvas-body">
|
||||
<ul class="navbar-nav justify-content-end flex-grow-1 pe-3">
|
||||
<li class="nav-item">
|
||||
<a class="nav-link" href="/home">Home</a>
|
||||
<a class="nav-link active" aria-current="page" href="#">Home</a>
|
||||
</li>
|
||||
|
||||
<!-- Resume Dropdown -->
|
||||
<li class="nav-item dropdown">
|
||||
<a class="nav-link dropdown-toggle" href="#" id="navbarResume" role="button" data-bs-toggle="dropdown" aria-expanded="false">
|
||||
Resume
|
||||
</a>
|
||||
<ul class="dropdown-menu" aria-labelledby="navbarResume">
|
||||
<li><a class="dropdown-item" href="/resume1">Hospitality</a></li>
|
||||
<li><a class="dropdown-item" href="/resume2">Organizing</a></li>
|
||||
<li><a class="dropdown-item" href="/resume3">Tech</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
|
||||
<!-- Library Link -->
|
||||
<li class="nav-item">
|
||||
<a class="nav-link" href="https://library.miguelalmodo.com/">Library</a>
|
||||
<a class="nav-link" href="https://migs.uber.space/blog">Blog</a>
|
||||
</li>
|
||||
|
||||
<!-- Blog Dropdown -->
|
||||
<li class="nav-item dropdown">
|
||||
<a class="nav-link dropdown-toggle" href="https://migs.uber.space/blog" id="navbarBlog" role="button" data-bs-toggle="dropdown" aria-expanded="false">
|
||||
Blog
|
||||
<a class="nav-link dropdown-toggle" href="#" role="button" data-bs-toggle="dropdown" aria-expanded="false">
|
||||
Resumes
|
||||
</a>
|
||||
<ul class="dropdown-menu" aria-labelledby="navbarBlog">
|
||||
<li><a class="dropdown-item" href="/blog1">Blog 1</a></li>
|
||||
<li><a class="dropdown-item" href="/blog2">Blog 2</a></li>
|
||||
<li><a class="dropdown-item" href="/blog3">Blog 3</a></li>
|
||||
<ul class="dropdown-menu dropdown-menu-dark">
|
||||
<!--<li><a class="dropdown-item" href="#">Hospitality</a></li>-->
|
||||
<li><a class="dropdown-item" href="./resumes/PIC.pdf">Public Interest Communications</a></li>
|
||||
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
<form class="d-flex mt-3" role="search" hx-get="/search" hx-target="#resultsContainer" hx-trigger="keyup changed delay:300ms" hx-params="searchQuery:value">
|
||||
<input class="form-control me-2" type="search" placeholder="Search" aria-label="Search" name="searchQuery"> </form>
|
||||
|
||||
<!-- Results -->
|
||||
<div id="resultsContainer"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<script src="https://unpkg.com/htmx.org@1.9.10" crossorigin="anonymous"></script>
|
||||
|
||||
</nav>
|
||||
|
||||
|
||||
|
||||
|
||||
<section class="hero">
|
||||
|
||||
|
||||
|
||||
|
||||
<section>
|
||||
<div class="container my-5">
|
||||
<div class="row p-4 pb-0 pe-lg-0 pt-lg-5 align-items-center rounded-3 border shadow-lg">
|
||||
<div class="col-lg-7 p-3 p-lg-5 pt-lg-3">
|
||||
<h1 class="display-4 fw-bold lh-1">Miguel Almodovar</h1>
|
||||
<p class="lead">I am currently studying for a comptia certification in order to branch out into new career opportunities in tech.
|
||||
Click on a button below to learn a fun fact about me!
|
||||
</p>
|
||||
<div class="d-grid gap-2 d-md-flex justify-content-md-start mb-4 mb-lg-3">
|
||||
<button type="button" class="btn btn-primary btn-lg px-4 me-md-2 fw-bold" onclick="factAlert('dob')">Show DOB</button>
|
||||
<button type="button" class="btn btn-primary btn-lg px-4 me-md-2 fw-bold" onclick="factAlert('favorite game')">Show Favorite Game</button>
|
||||
<button type="button" class="btn btn-primary btn-lg px-4 me-md-2 fw-bold" onclick="factAlert('birthplace')">Show Birthplace</button>
|
||||
|
||||
</div>
|
||||
<div class="container">
|
||||
|
||||
|
||||
<h4 text-align="center">Projects</h4>
|
||||
<div class="d-flex align-items-start">
|
||||
<div class="nav flex-column nav-pills me-3" id="v-pills-tab" role="tablist" aria-orientation="vertical">
|
||||
<button class="nav-link active" id="v-pills-home-tab" data-bs-toggle="pill" data-bs-target="#v-pills-home" type="button" role="tab" aria-controls="v-pills-home" aria-selected="true">Web Scraper</button>
|
||||
<button class="nav-link" id="v-pills-profile-tab" data-bs-toggle="pill" data-bs-target="#v-pills-profile" type="button" role="tab" aria-controls="v-pills-profile" aria-selected="false">Quote Shuffler</button>
|
||||
<button class="nav-link" id="v-pills-disabled-tab" data-bs-toggle="pill" data-bs-target="#v-pills-disabled" type="button" role="tab" aria-controls="v-pills-disabled" aria-selected="false" disabled>Portfolio</button>
|
||||
<button class="nav-link" id="v-pills-messages-tab" data-bs-toggle="pill" data-bs-target="#v-pills-messages" type="button" role="tab" aria-controls="v-pills-messages" aria-selected="false">Reader</button>
|
||||
<button class="nav-link" id="v-pills-settings-tab" data-bs-toggle="pill" data-bs-target="#v-pills-settings" type="button" role="tab" aria-controls="v-pills-settings" aria-selected="false">Blog</button>
|
||||
</div>
|
||||
<div class="tab-content" id="v-pills-tabContent">
|
||||
<div class="tab-pane fade show active" id="v-pills-home" role="tabpanel" aria-labelledby="v-pills-home-tab" tabindex="0">I built a web scraper in python to scrape quotes off a website about my favorite video game.<br><a href="https://github.com/miggymofongo" > Check it out on Github! </a></div>
|
||||
<div class="tab-pane fade" id="v-pills-profile" role="tabpanel" aria-labelledby="v-pills-profile-tab" tabindex="0"><div class="card mb-3" style="max-width: 540px;">
|
||||
<div class="row g-0">
|
||||
<div class="col-md-4">
|
||||
<img class="imga-fluid rounded-start" src="/img/headshot.jpg" alt="miguel headshot" style="width:100%">
|
||||
</div>
|
||||
<div class="col-md-8">
|
||||
<div class="card-body">
|
||||
<h5 class="card-title">Card title</h5>
|
||||
<p class="card-text">Miguel is currently studying for a <a href="https://partners.comptia.org/certifications/a">COMPTIA certification</a> <br>
|
||||
Follow me on github and linkedin!</p>
|
||||
<p class="card-text"><small class="text-body-secondary"><a href="https://miguelalmodo.com/about" class="btn btn-primary">See Main Bio</a>Last updated 3 months ago</small></p>
|
||||
<div class="col-lg-4 offset-lg-1 p-0 overflow-hidden shadow-lg">
|
||||
<img class="rounded-lg-3" src="./img/headshot.jpg" alt="" width="360">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div></div>
|
||||
<div class="tab-pane fade" id="v-pills-disabled" role="tabpanel" aria-labelledby="v-pills-disabled-tab" tabindex="0">...</div>
|
||||
<div class="tab-pane fade" id="v-pills-messages" role="tabpanel" aria-labelledby="v-pills-messages-tab" tabindex="0">...</div>
|
||||
<div class="tab-pane fade" id="v-pills-settings" role="tabpanel" aria-labelledby="v-pills-settings-tab" tabindex="0">...</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
</section>
|
||||
|
||||
|
||||
<section>
|
||||
<div class="container-fluid">
|
||||
<!-- In your HTML file -->
|
||||
<div id="quoteBanner" class="quote-banner">Quote goes here</div>
|
||||
</div>
|
||||
|
||||
|
||||
<!-- <div><div class="card mb-4 text-center mx-auto" style="max-width: 75%;">
|
||||
<div id="area">
|
||||
|
||||
<script>
|
||||
document.addEventListener('DOMContentLoaded', function() {
|
||||
fetch('quotes.json')
|
||||
.then(response => response.json())
|
||||
.then(quotes => {
|
||||
let currentQuoteIndex = 0;
|
||||
const quoteBanner = document.getElementById('quoteBanner');
|
||||
|
||||
// Function to update quote
|
||||
function updateQuote() {
|
||||
quoteBanner.textContent = quotes[currentQuoteIndex++];
|
||||
if (currentQuoteIndex >= quotes.length) currentQuoteIndex = 0;
|
||||
}
|
||||
|
||||
// Set initial quote and update every 10 seconds
|
||||
updateQuote();
|
||||
setInterval(updateQuote, 10000);
|
||||
});
|
||||
var rendition = book.renderTo("area", {
|
||||
width: 600,
|
||||
height: 400,
|
||||
allowScriptedContent: true
|
||||
});
|
||||
</script>
|
||||
</div>
|
||||
|
||||
</div></div> -->
|
||||
|
||||
<div><div class="card mb-4 text-center mx-auto" style="max-width: 75%;">
|
||||
<div class="card-body">
|
||||
<h5 class="card-title"><b>Kingdom Heart Quote Shuffler</b></h5>
|
||||
<p class="card-text">I recently built a homemade web scraper in Python to scrape quotes off a database of my favorite video game, Kingdom Hearts.</p>
|
||||
<p>After scraping the quotes into a json file, I feed them into a small program that fetches and periodically rotates the quotes every 5 seconds.
|
||||
<br>I then installed a Gummi-themed Kingdom Hearts font from <a href="https://github.com/Televo/kingdom-hearts-recollection">a dope Github repository </a>
|
||||
to make it LEGIT! Check it out below this paragraph.</p>
|
||||
<p class="card-text">
|
||||
<div class="'container-fluid" style="max-width: 800px; margin: auto;">
|
||||
<div class="clearfix">
|
||||
<div id="quoteBanner" class="quote-banner card-footer">
|
||||
<blockquote class="blockquote mb-0">
|
||||
<p>Quote goes here</p>
|
||||
<footer class="blockquote-footer">Someone famous in <cite title="Source Title">Source Title</cite></footer>
|
||||
</blockquote>
|
||||
</div>
|
||||
<a href="https://github.com/miggymofongo" class="card-link">Check it out on Github!</a>
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<script src="scripts.js"></script>
|
||||
|
||||
|
||||
</section>
|
||||
|
||||
|
||||
|
||||
<section>
|
||||
<div class="container">
|
||||
<p>Aqui puedes completar tareas sobre la ciencia politica y varias otras temas
|
||||
<form class="d-flex" role="search">
|
||||
<input type="search"
|
||||
hx-get="/search"
|
||||
hx-vals='{"searchQuery": "value"}'
|
||||
hx-trigger="keyup delay:300ms"
|
||||
hx-target="#resultsContainer"
|
||||
placeholder="Search for EPUBs...">
|
||||
</form>
|
||||
<div class="container my-5">
|
||||
<img src="./img/forsite.webp" width="200" class="col-md-6 float-md-end mb-3 ms-md-3" alt="Miguel in Japan" style="max-width: 100%; height: auto;">
|
||||
|
||||
<p>I just turned 30 and and live in Aguadilla, Puerto Rico, with my dog, Kaido. I have been studying CCNA and
|
||||
basic web development curriculum consistantly over the past year to jump into a new tech-focused role. I currently
|
||||
hold a remote role at a California-based organization.</p>
|
||||
|
||||
<p>I am motivated by a lifelong passion for tech as
|
||||
a consumer. My earliest memory of opening up a computer was when I flashed custom
|
||||
firmware on my red God of War PlayStation Portable during middle school. I am recently <a href="https://github.com/miggymofongo">established
|
||||
on Github </a> and have <a href="https://nilfm.cc/"> a few friends in senior software engineer roles that
|
||||
are helping guide</a> my learning journey. </p>
|
||||
|
||||
<p> Please check back frequently as I update my website and continue to add projects to display on my asteroid.
|
||||
Currently I am learning more about decentralized social media protocols like ActivityPub and Nostr while familiarizing
|
||||
myself with smart contracts and self custody wallet solutions.
|
||||
</p>
|
||||
</div>
|
||||
|
||||
</section>
|
||||
|
||||
|
||||
|
||||
<section>
|
||||
<!-- search results -->
|
||||
<div id="resultsContainer"></div>
|
||||
<!-- search results -->
|
||||
<script src="./scripts.js"></script>
|
||||
|
||||
</section>
|
||||
|
||||
|
||||
|
||||
<!-- reader loads here after clicking on an epub to open-->
|
||||
<section>
|
||||
<a href="https://migs.uber.space/bibi/?book=BOOKNAME.epub" data-bibi="embed" data-bibi-style="[[ CSS for embeded Bibi frame, as you like ]]">[[ Title of the Book ]]</a><script src="https://migs.uber.space/bibi/and/jo.js"></script>
|
||||
|
||||
</section>
|
||||
|
||||
|
||||
|
||||
|
||||
<script src="https://unpkg.com/htmx.org@1.9.10" integrity="sha384-D1Kt99CQMDuVetoL1lrYwg5t+9QdHe7NLX/SoJYkXDFfX37iInKRy5xLSi8nO7UC" crossorigin="anonymous"></script>
|
||||
|
||||
|
||||
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.2/dist/js/bootstrap.bundle.min.js" integrity="sha384-C6RzsynM9kWDrMNeT87bh95OGNyZPhcTNXj1NW7RuBCsyN/o0jlpcV8Qyq46cDfL" crossorigin="anonymous"></script>
|
||||
|
||||
<script src="https://unpkg.com/htmx.org@1.9.10" crossorigin="anonymous"></script>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
|
|
1
nsecbunkerd
Submodule
1
nsecbunkerd
Submodule
|
@ -0,0 +1 @@
|
|||
Subproject commit c7a4c12a0a903ed1109f177f228a6c23e62abe45
|
7
openid/index.htm
Normal file
7
openid/index.htm
Normal file
|
@ -0,0 +1,7 @@
|
|||
<html>
|
||||
<head>
|
||||
<link rel="openid.server" href="https://migs.uber.space/simpleid/" />
|
||||
<link rel="openid2.provider" href="https://migs.uber.space/simpleid/" />
|
||||
</head>
|
||||
</html>
|
||||
|
BIN
resumes/PIC.pdf
Normal file
BIN
resumes/PIC.pdf
Normal file
Binary file not shown.
34
scripts.js
Normal file
34
scripts.js
Normal file
|
@ -0,0 +1,34 @@
|
|||
let facts = {
|
||||
dob: 'Nov 30',
|
||||
'favorite game': 'Kingdom Hearts',
|
||||
birthplace: 'Leominster, Massachusettes, USAmerikkka',
|
||||
age: "30"
|
||||
};
|
||||
|
||||
function factAlert(key) {
|
||||
alert(facts[key]);
|
||||
}
|
||||
|
||||
|
||||
|
||||
document.addEventListener('DOMContentLoaded', function() {
|
||||
fetch('quotes.json')
|
||||
.then(response => response.json())
|
||||
.then(quotes => {
|
||||
let currentQuoteIndex = 0;
|
||||
const quoteBanner = document.getElementById('quoteBanner');
|
||||
|
||||
function updateQuote() {
|
||||
quoteBanner.textContent = quotes[currentQuoteIndex++];
|
||||
if (currentQuoteIndex >= quotes.length) currentQuoteIndex = 0;
|
||||
}
|
||||
|
||||
updateQuote();
|
||||
setInterval(updateQuote, 5000);
|
||||
});
|
||||
});
|
||||
|
||||
|
||||
|
||||
|
||||
|
39
styles.css
Normal file
39
styles.css
Normal file
|
@ -0,0 +1,39 @@
|
|||
@font-face {
|
||||
font-family: 'KHGummi';
|
||||
src: url('./fonts/KHGummi.otf') format('opentype');
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
.quote-banner {
|
||||
background-color: #f8f9fa;
|
||||
color: #495057;
|
||||
padding: 20px;
|
||||
font-family: 'KHGummi';
|
||||
|
||||
}
|
||||
|
||||
.card-footer {
|
||||
background: transparent;
|
||||
border-top: 0;
|
||||
}
|
||||
|
||||
.card-link {
|
||||
display: block;
|
||||
margin-top: 15px;
|
||||
text-align: center;
|
||||
color: #007bff;
|
||||
}
|
||||
|
||||
/* Additional styling for the blockquote */
|
||||
.blockquote {
|
||||
font-style: italic;
|
||||
color: #6c757d;
|
||||
}
|
||||
|
||||
.blockquote-footer {
|
||||
color: #6c757d;
|
||||
}
|
41
vday card.html
Normal file
41
vday card.html
Normal file
|
@ -0,0 +1,41 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<meta http-equiv="X-UA-Compatible" content="ie=edge">
|
||||
<title>Valentine's Day Message</title>
|
||||
|
||||
|
||||
<script src="https://cdn.jsdelivr.net/npm/@popperjs/core@2.11.8/dist/umd/popper.min.js" integrity="sha384-I7E8VVD/ismYTF4hNIPjVp/Zjvgyol6VFvRkX/vR+Vc4jQkC+hVqc2pM8ODewa9r" crossorigin="anonymous"></script>
|
||||
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.2/dist/js/bootstrap.min.js" integrity="sha384-BBtl+eGJRgqQAUMxJ7pMwbEyER4l1g+O15P+16Ep7Q9Q+zqX6gSbd85u4mG4QzX+" crossorigin="anonymous"></script>
|
||||
|
||||
|
||||
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.2/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-T3c6CoIi6uLrA9TneNEoa7RxnatzjcDSCmG1MXxSR1GAsXEV/Dwwykc2MPK8M2HN" crossorigin="anonymous"> </head>
|
||||
<body>
|
||||
<nav class="nav nav-pills nav-justified">
|
||||
<a class="nav-link active" aria-current="page" href="#">Start Here</a>
|
||||
<a class="nav-link" href="#">What I've been Upto</a>
|
||||
<a class="nav-link" href="#">Questions</a>
|
||||
<a class="nav-link">Hope for the Future</a>
|
||||
</nav>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</body>
|
||||
</html>
|
Loading…
Reference in a new issue