2025-02-14 22:37:52 -05:00
<!DOCTYPE html>
< html lang = "en" >
2025-06-05 12:14:25 -04:00
< head >
< meta charset = "UTF-8" />
< meta name = "viewport" content = "width=device-width, initial-scale=1.0" />
< meta
name = "description"
content = "TinySite.cloud Hosting offers effortless hosting and sharing of static sites with instant deployment, dark mode interface, and secure, private data handling!" />
< meta
name = "keywords"
content = "static site hosting, instant deployment, dark mode, secure hosting, private data, file management, blazing fast" />
< meta name = "author" content = "ION606" />
< meta property = "og:title" content = "TinySite.cloud" />
< meta
property = "og:description"
content = "Host and share your static sites effortlessly with TinySite.cloud Hosting. Enjoy instant deployment, a sleek dark mode interface, and secure, private data handling!" />
< meta
property = "og:image"
content = "{{ url_for('static', filename='hosting.png') }}" />
< meta property = "og:url" content = "https://{{ SERVERNAME }}/" />
< meta
name = "twitter:card"
content = "{{ url_for('static', filename='hosting.png') }}" />
< meta name = "twitter:title" content = "TinySite.cloud" />
< meta
name = "twitter:description"
content = "Host and share your static sites effortlessly with TinySite.cloud Hosting. Enjoy instant deployment, a sleek dark mode interface, and secure, private data handling!" />
< meta
name = "twitter:image"
content = "{{ url_for('static', filename='hosting.png') }}" />
< title > TinySite.cloud - {% block title %}{% endblock %}</ title >
< link
rel = "stylesheet"
href = "{{ url_for('static', filename='styles.css') }}"
id = "theme-style" />
< link
rel = "icon"
href = "{{ url_for('static', filename='favicon.ico') }}" />
< script src = "https://cdnjs.cloudflare.com/ajax/libs/jquery/3.5.1/jquery.min.js" ></ script >
< script >
document . addEventListener ( "DOMContentLoaded" , () => {
const themeToggle = document . querySelector ( "#theme-toggle" );
const body = document . body ;
// get saved theme from localStorage
const savedTheme = localStorage . getItem ( "theme" ) || "dark" ;
body . setAttribute ( "data-theme" , savedTheme );
if ( ! savedTheme ) localStorage . setItem ( "theme" , savedTheme );
// set initial button text
themeToggle . textContent =
savedTheme === "dark" ? "light mode" : "dark mode" ;
themeToggle . addEventListener ( "click" , () => {
const isDark = body . getAttribute ( "data-theme" ) === "dark" ;
body . setAttribute ( "data-theme" , isDark ? "light" : "dark" );
localStorage . setItem ( "theme" , isDark ? "light" : "dark" );
themeToggle . textContent = isDark
? "dark mode"
: "light mode" ;
});
2025-02-14 22:37:52 -05:00
});
2025-06-05 12:14:25 -04:00
</ script >
2025-02-17 22:18:29 -05:00
2025-06-05 12:14:25 -04:00
< style >
2025-02-17 22:18:29 -05:00
. navbar-toggle {
2025-06-05 12:14:25 -04:00
display : none ;
2025-02-17 22:18:29 -05:00
}
2025-02-14 22:37:52 -05:00
2025-06-05 12:14:25 -04:00
@ media ( max-width : 768px ) {
. navbar-toggle {
display : block ;
}
}
</ style >
</ head >
< body >
< nav class = "navbar" >
< div class = "container" >
< a href = "{{ url_for('main.home', _external=True) }}" > Home</ a >
< button id = "nav-toggle" class = "navbar-toggle" aria-label = "menu" >
☰
</ button >
< div id = "navbar-links" class = "navbar-links" >
{% if current_user.is_authenticated %}
< a href = "{{ url_for('main.dashboard', _external=True) }}"
> Dashboard</ a
>
< a href = "{{ url_for('main.logout', _external=True) }}"
> Logout</ a
>
{% else %}
< a href = "{{ url_for('main.login', _external=True) }}"
> Login</ a
>
< a href = "{{ url_for('main.register', _external=True) }}"
> Register</ a
>
{% endif %}
< button id = "theme-toggle" class = "btn" >
toggle dark mode
</ button >
</ div >
2025-02-17 22:18:29 -05:00
</ div >
2025-06-05 12:14:25 -04:00
</ nav >
2025-02-14 22:37:52 -05:00
2025-06-05 12:14:25 -04:00
< div class = "container" >
{% with messages = get_flashed_messages(with_categories=true) %} {%
if messages %} {% for category, message in messages %}
< div class = "flash-message flash-{{ category }}" > {{ message }}</ div >
{% endfor %} {% endif %} {% endwith %} {% block content %}{%
endblock %}
2025-02-14 22:37:52 -05:00
</ div >
2025-02-17 22:40:50 -05:00
2025-06-05 12:14:25 -04:00
< script >
document . addEventListener ( "DOMContentLoaded" , () => {
const navToggle = document . querySelector ( "#nav-toggle" );
const navbarLinks = document . querySelector ( "#navbar-links" );
const navbar = document . querySelector ( ".navbar" );
navToggle . addEventListener ( "click" , () => {
navbarLinks . classList . toggle ( "active" );
navToggle . classList . toggle ( "active" );
});
document . addEventListener ( "click" , ( e ) => {
if ( ! navbar . contains ( e . target )) {
navbarLinks . classList . remove ( "active" );
navToggle . classList . remove ( "active" );
}
});
2025-02-17 22:40:50 -05:00
});
2025-06-05 12:14:25 -04:00
</ script >
</ body >
</ html >