Merge branch 'development'
|
@ -0,0 +1,19 @@
|
|||
# ENPaul Landing Page
|
||||
|
||||
This is my personal front-end landing page hosted on my Digital Ocean Droplet, at https://enpaul.net.
|
||||
|
||||
Being a static site it should be hostable nearly anywhere, but I have personally verified that it works under **Apache 2.4** and **IIS 10**
|
||||
|
||||
The `_archive` directory has all the previous iterations of this website, dating back even before it was in source control. The `_archive` directory could be considered documentation of my indecisive nature.
|
||||
|
||||
The `_error` directory has self-contained custom error pages for displaying `HTTP 400` and `HTTP 500` errors in the style of the rest of the site.
|
||||
|
||||
## License
|
||||
|
||||
The contents of this repository are licensed under the [MIT License](https://opensource.org/licenses/MIT). See the `license.md` file for more information.
|
||||
|
||||
*Additional libraries, components, and frameworks used in this repository may be licensed under different terms.*
|
||||
|
||||
## Credits
|
||||
|
||||
This website is built on the [Imperial Template](https://bootstrapmade.com/imperial-free-onepage-bootstrap-theme/) published by [BootstrapMade.com](https://bootstrapmade.com).
|
|
@ -0,0 +1,349 @@
|
|||
body {
|
||||
line-height: 1.4;
|
||||
font-family: 'Roboto', sans-serif;
|
||||
font-size: 18px;
|
||||
letter-spacing: 0.5px;
|
||||
font-size: 15px;
|
||||
font-weight: 400;
|
||||
}
|
||||
ol, ul {
|
||||
list-style: none;
|
||||
}
|
||||
blockquote, q {
|
||||
quotes: none;
|
||||
}
|
||||
blockquote:before, blockquote:after,
|
||||
q:before, q:after {
|
||||
content: '';
|
||||
content: none;
|
||||
}
|
||||
table {
|
||||
border-collapse: collapse;
|
||||
border-spacing: 0;
|
||||
}
|
||||
a {
|
||||
outline: none;
|
||||
}
|
||||
|
||||
a:hover, a:focus, a:active{
|
||||
text-decoration: none;
|
||||
outline: none;
|
||||
}
|
||||
/***********************************
|
||||
************************************
|
||||
Responsive media queries
|
||||
************************************
|
||||
***********************************/
|
||||
.header {
|
||||
background: url('../img/network.jpg') no-repeat fixed;
|
||||
background-size: cover;
|
||||
height: 100vh;
|
||||
position: relative;
|
||||
}
|
||||
.navbar-default {
|
||||
background-color: transparent;
|
||||
border: 0px;
|
||||
padding: 20px 0;
|
||||
transition: all 0.3s;
|
||||
}
|
||||
.navbar-brand {
|
||||
font-size: 25px;
|
||||
}
|
||||
.navbar-default .navbar-brand, .navbar-default .navbar-brand:hover, .navbar-default .navbar-brand:focus {
|
||||
color: #fff;
|
||||
outline: none;
|
||||
}
|
||||
.navbar-default .navbar-nav > li > a{
|
||||
font-size: 14px;
|
||||
font-weight: 400;
|
||||
color: #fff;
|
||||
outline: none;
|
||||
}
|
||||
.navbar-default .navbar-nav > li > a:focus, .navbar-default .navbar-nav > li > a:hover {
|
||||
color: #fffde0;
|
||||
background-color: transparent;
|
||||
}
|
||||
.navbar-default .navbar-nav > .active > a, .navbar-default .navbar-nav > .active > a:focus, .navbar-default .navbar-nav > .active > a:hover {
|
||||
color: #fffde0;
|
||||
background-color: transparent;
|
||||
}
|
||||
|
||||
.top-nav-collapse {
|
||||
padding: 0;
|
||||
border-bottom-style: solid;
|
||||
border-bottom-color: #606060;
|
||||
background: rgba(0,0,0, 1);
|
||||
}
|
||||
|
||||
.bg-color{
|
||||
background-color: RGBA(0, 0, 0, 0.2);
|
||||
height: 100vh;
|
||||
}
|
||||
.navbar-border{
|
||||
}
|
||||
.banner-text{
|
||||
border-left: 5px solid #BE2525;
|
||||
padding: 15px 40px;
|
||||
color: #fff;
|
||||
margin-top: 170px;
|
||||
}
|
||||
.banner-text h2, .banner-text p{
|
||||
font-weight: 400;
|
||||
font-family: 'Questrial', sans-serif;
|
||||
}
|
||||
.banner-text h2 {
|
||||
font-size: 50px;
|
||||
}
|
||||
.banner-text p {
|
||||
font-size: 30px;
|
||||
}
|
||||
.overlay-detail{
|
||||
margin: 0 auto;
|
||||
}
|
||||
.overlay-detail a i {
|
||||
text-align: center;
|
||||
position: absolute;
|
||||
bottom: -140px;
|
||||
font-size: 24px;
|
||||
color: #fff;
|
||||
width: 40px;
|
||||
height: 40px;
|
||||
border: 1px solid #fff;
|
||||
line-height: 40px;
|
||||
border-radius: 50%;
|
||||
}
|
||||
#about{
|
||||
|
||||
/* margin-bottom: -3px;*/
|
||||
}
|
||||
.section-padding{
|
||||
padding: 60px 0px;
|
||||
}
|
||||
.title{
|
||||
font-size: 24px;
|
||||
margin-bottom: 50px;
|
||||
}
|
||||
.title-text{
|
||||
padding: 0px 25px 0px 0px;
|
||||
border-right: 5px solid #BE2525;
|
||||
font-size: 24px;
|
||||
}
|
||||
.abt-list li{
|
||||
padding: 5px 0px;
|
||||
font-size: 18px;
|
||||
font-weight: 400;
|
||||
}
|
||||
section {
|
||||
background-color: #3a3a3a;
|
||||
color: white;
|
||||
}
|
||||
.grid-padding{
|
||||
padding: 0 8px;
|
||||
}
|
||||
.grid-padding img{
|
||||
margin-bottom: 15px;
|
||||
}
|
||||
.padding-right-zero{
|
||||
padding-right: 0px !important;
|
||||
}
|
||||
#myGrid{
|
||||
margin-top: 50px;
|
||||
}
|
||||
.test-sec blockquote {
|
||||
background: #eee;
|
||||
display: block;
|
||||
font-size: 14px;
|
||||
line-height: 20px;
|
||||
padding: 15px;
|
||||
position: relative;
|
||||
}
|
||||
.test-sec blockquote::after {
|
||||
content: '';
|
||||
position: absolute;
|
||||
bottom: -14px;
|
||||
margin-left: 10px;
|
||||
border-top: 14px solid #eee;
|
||||
border-left: 14px solid transparent;
|
||||
border-right: 14px solid transparent;
|
||||
}
|
||||
blockquote {
|
||||
padding: 10px 20px;
|
||||
margin: 0 0 20px;
|
||||
font-size: 17.5px;
|
||||
border-left: 5px solid RGBA(0, 0, 0, 0.18);
|
||||
}
|
||||
.test-sec .carousel-info span {
|
||||
display: block;
|
||||
}
|
||||
.test-sec span.testimonials-name {
|
||||
color: #62646f;
|
||||
font-weight: 600;
|
||||
margin: 16px 0 5px;
|
||||
}
|
||||
#contact {
|
||||
width: 100%;
|
||||
background-color: RGBA(8, 7, 7, 0.92);
|
||||
}
|
||||
|
||||
#contact .btn-primary {
|
||||
background: #BE2525;
|
||||
border: 1px solid #BE2525;
|
||||
}
|
||||
|
||||
.validation {
|
||||
color: red;
|
||||
display:none;
|
||||
margin: 0 0 20px;
|
||||
font-weight:400;
|
||||
font-size:13px;
|
||||
}
|
||||
|
||||
#sendmessage {
|
||||
color: green;
|
||||
border:1px solid green;
|
||||
background: #fff;
|
||||
display:none;
|
||||
text-align:center;
|
||||
padding:15px;
|
||||
font-weight:600;
|
||||
margin-bottom:15px;
|
||||
}
|
||||
|
||||
#errormessage {
|
||||
color: red;
|
||||
display:none;
|
||||
border:1px solid red;
|
||||
text-align:center;
|
||||
padding:15px;
|
||||
font-weight:600;
|
||||
margin-bottom:15px;
|
||||
background: #fff;
|
||||
}
|
||||
|
||||
#sendmessage.show, #errormessage.show, .show {
|
||||
display:block;
|
||||
}
|
||||
|
||||
footer {
|
||||
padding: 40px 0;
|
||||
background: #F2F3EB;
|
||||
}
|
||||
|
||||
.footer a {
|
||||
color: #BE2525;
|
||||
}
|
||||
|
||||
.footer__navigation li, .social-list li{
|
||||
display: inline-block;
|
||||
}
|
||||
.contact-sec h2 {
|
||||
font-size: 28px;
|
||||
color: #fff;
|
||||
font-weight: 600;
|
||||
padding: 15px 0px;
|
||||
}
|
||||
.footer__navigation li a
|
||||
{
|
||||
display: inline-block;
|
||||
color: #767676;
|
||||
font-weight: 600;
|
||||
font-variant-ligatures: common-ligatures;
|
||||
font-size: 1.2em;
|
||||
line-height: 1.625em;
|
||||
margin-top: 0;
|
||||
margin-bottom: 1.625em;
|
||||
padding-right: 10px;
|
||||
}
|
||||
.contact-sec p {
|
||||
color: #fff;
|
||||
font-size: 18px;
|
||||
padding: 16px 0px 24px;
|
||||
}
|
||||
.contact-sec i{
|
||||
padding-right: 15px;
|
||||
}
|
||||
.contact-sec a {
|
||||
color: #FFF;
|
||||
background-color: RGBA(174, 142, 142, 0.7);
|
||||
display: inline-block;
|
||||
padding: 16px 34px;
|
||||
font-size: 18px;
|
||||
transition: all 0.5s ease-in 0s;
|
||||
}
|
||||
.carousel-info, blockquote {
|
||||
float: left;
|
||||
}
|
||||
.social-list li{
|
||||
transition: 0.2s linear;
|
||||
-webkit-transition: 0.2s linear;
|
||||
-moz-transition: 0.2s linear;
|
||||
opacity: .5;
|
||||
display: inline-block;
|
||||
margin: 0;
|
||||
}
|
||||
.social-list li a{
|
||||
font-size: 28px;
|
||||
margin-right: 15px;
|
||||
}
|
||||
.type-underline, .type-underline:hover{
|
||||
color: #767676;
|
||||
}
|
||||
.footer__lower {
|
||||
margin-top: 3.25em;
|
||||
}
|
||||
.type--fine-print{
|
||||
color: #767676;
|
||||
}
|
||||
.navbar-toggle {
|
||||
position: relative;
|
||||
background-color: #fff;
|
||||
border-radius: 4px;
|
||||
}
|
||||
.navbar-nav > li > a {
|
||||
padding-top: 24px;
|
||||
padding-bottom: 24px;
|
||||
}
|
||||
.navbar-brand{
|
||||
margin-top: 9px;
|
||||
}
|
||||
.grid-item { width: 200px; }
|
||||
.grid-item--width2 { width: 400px; }
|
||||
|
||||
/***********************************
|
||||
************************************
|
||||
Responsive media queries
|
||||
************************************
|
||||
***********************************/
|
||||
@media (min-width: 551px) and (max-width: 980px){
|
||||
.title-text{
|
||||
margin-bottom: 15px;
|
||||
}
|
||||
}
|
||||
@media (min-width: 100px) and (max-width: 550px) {
|
||||
|
||||
.navbar-nav > li > a {
|
||||
padding-top: 15px;
|
||||
padding-bottom: 15px;
|
||||
}
|
||||
.navbar-brand{
|
||||
margin-top: 0px;
|
||||
}
|
||||
.carousel-info {
|
||||
margin-bottom: 30px;
|
||||
}
|
||||
.type--fine-print{
|
||||
text-align: center;
|
||||
}
|
||||
.text-center-xs{
|
||||
text-align: center !important;
|
||||
}
|
||||
.social-list{
|
||||
margin-bottom: 15px;
|
||||
}
|
||||
.banner-text h2, .banner-text p {
|
||||
font-size: 30px;
|
||||
}
|
||||
.title-text{
|
||||
margin-bottom: 15px;
|
||||
}
|
||||
}
|
After Width: | Height: | Size: 434 KiB |
After Width: | Height: | Size: 15 KiB |
After Width: | Height: | Size: 2.2 KiB |
Before Width: | Height: | Size: 12 KiB After Width: | Height: | Size: 12 KiB |
After Width: | Height: | Size: 4.2 KiB |
After Width: | Height: | Size: 190 KiB |
After Width: | Height: | Size: 198 KiB |
After Width: | Height: | Size: 166 KiB |
After Width: | Height: | Size: 225 KiB |
After Width: | Height: | Size: 49 KiB |
After Width: | Height: | Size: 26 KiB |
|
@ -0,0 +1,274 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
|
||||
<head>
|
||||
<meta charset="utf-8"/>
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge"/>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||
<meta name="author" content="enpaul@enpaul.net"/>
|
||||
<meta name="description" content="E N Paul personal landing page and Network Services website"/>
|
||||
<meta name="keywords" content="enpaul, network, operations, networking, plex, media, server, adds, active, directory, wpi, worcester, polytechnic, institute, boston, mechanical, engineering, solidworks, home, lab, homelab, solid, works, autocad, cad, domain, windows, server"/>
|
||||
<meta name="robots" content="index,follow"/>
|
||||
|
||||
<meta property="og:title" content="E.N. Paul"/>
|
||||
<meta property='og:locale' content="en_US"/>
|
||||
<meta property='og:description' content="E N Paul personal landing page and Network Services website"/>
|
||||
<meta property="og:type" content="Website"/>
|
||||
<meta property='og:site_name' content="E.N. Paul"/>
|
||||
<meta property="og:url" content="https://enpaul.net/"/>
|
||||
|
||||
<title>E.N. Paul</title>
|
||||
|
||||
<link rel="shortcut icon" href="img\e-b.png">
|
||||
<link rel="stylesheet" type="text/css" href="https://fonts.googleapis.com/css?family=Fira+Sans|Roboto:300,400|Questrial|Satisfy">
|
||||
<link rel="stylesheet" type="text/css" href="css/font-awesome.min.css">
|
||||
<link rel="stylesheet" type="text/css" href="css/bootstrap.min.css">
|
||||
<link rel="stylesheet" type="text/css" href="css/hexagons.min.css">
|
||||
<link rel="stylesheet" type="text/css" href="css/animate.css">
|
||||
<link rel="stylesheet" type="text/css" href="css/style.css">
|
||||
|
||||
</head>
|
||||
|
||||
<!--<body id="myPage" data-spy="scroll" data-target=".navbar" data-offset="60" onload="myFunction()">-->
|
||||
<body data-spy="scroll" data-target=".navbar" data-offset="60">
|
||||
|
||||
<!-- Header section -->
|
||||
<div class="header">
|
||||
<div class="bg-color">
|
||||
|
||||
<!-- Navigation bar and top-left icon section -->
|
||||
<header id="main-header">
|
||||
<nav class="navbar navbar-default navbar-fixed-top">
|
||||
<div class="container">
|
||||
<div class="navbar-header">
|
||||
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#lauraMenu">
|
||||
<span class="icon-bar"></span>
|
||||
<span class="icon-bar"></span>
|
||||
<span class="icon-bar"></span>
|
||||
</button>
|
||||
<a class="navbar-brand" href="#"><p><img src="img/e-w.png" style="max-width: 3rem;"> E.N. Paul</p></a>
|
||||
</div>
|
||||
<div class="collapse navbar-collapse" id="lauraMenu">
|
||||
<ul class="nav navbar-nav navbar-right navbar-border">
|
||||
<li class="active"><a href="#main-header">Home</a></li>
|
||||
<li><a href="#about">About</a></li>
|
||||
<li><a href="#network">Network</a></li>
|
||||
<!--<li><a href="#testimonial">Testimonial</a></li>-->
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</nav>
|
||||
</header>
|
||||
|
||||
<!-- Main panel -->
|
||||
<div class="wrapper">
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
<div class="col-md-12 wow fadeIn delay-05s">
|
||||
<div class="banner-text">
|
||||
<h2>Ethan N. Paul</h2>
|
||||
<p><i>Student, tinkerer, programmer, aspiring engineer</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<section id="about" class="section-padding wow fadeIn delay-05s">
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
<div class="col-md-6 text-right">
|
||||
<h2 class="title-text">
|
||||
About me...
|
||||
</h2>
|
||||
</div>
|
||||
<div class="col-md-6 text-left">
|
||||
<div class="about-text">
|
||||
<p>Hello! My name is Ethan Paul, and this is my website! I am a student at Worcester Polytechnic Institute, a part-time employee at WPI Network Operations, and a full-time tinkerer.</p>
|
||||
<p> </p>
|
||||
<p>My interests are varried and constantly changing, but pretty consistently you can find me designing in SolidWorks, programming in Python, or crawling underneath the rust bucket I call a car! <a href="/about">Want to know more?</a></p>
|
||||
<p> </p>
|
||||
<ul class="list-inline">
|
||||
<li>
|
||||
<a href="mailto:enpaul@enpaul.net"><span class="hb hb-sm"><i class="fa fa-envelope-o"></i></span></a>
|
||||
</li>
|
||||
<li>
|
||||
<a target="_blank" href="https://twitter.com/theenpaul"><span class="hb hb-sm"><i class="fa fa-twitter"></i></span></a>
|
||||
</li>
|
||||
<li>
|
||||
<a target="_blank" href="https://plus.google.com/+EthanPaul42"><span class="hb hb-sm"><i class="fa fa-google-plus"></i></span></a>
|
||||
</li>
|
||||
<li>
|
||||
<a target="_blank" href="https://www.linkedin.com/in/enpaul"><span class="hb hb-sm"><i class="fa fa-linkedin"></i></span></a>
|
||||
</li>
|
||||
<li>
|
||||
<a target="_blank" href="https://www.instagram.com/theenpaul/"><span class="hb hb-sm"><i class="fa fa-instagram"></i></span></a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section id="network" class="section-padding wow fadeInUp delay-05s">
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
<div class="col-md-12">
|
||||
<h2 class="title text-center">The Network</h2>
|
||||
</div>
|
||||
<div class="col-md-12">
|
||||
<div id="myGrid" class="grid-padding">
|
||||
<div class="col-md-4 col-sm-4 padding-right-zero">
|
||||
<img src="img/portfolio01.jpg" class="img-responsive">
|
||||
<img src="img/port01.jpg" class="img-responsive">
|
||||
<img src="img/port02.jpg" class="img-responsive">
|
||||
<img src="img/portfolio01.jpg" class="img-responsive">
|
||||
</div>
|
||||
<div class="col-md-4 col-sm-4 padding-right-zero">
|
||||
<img src="img/portfolio02.jpg" class="img-responsive">
|
||||
<img src="img/port01.jpg" class="img-responsive">
|
||||
<img src="img/port02.jpg" class="img-responsive">
|
||||
<img src="img/portfolio01.jpg" class="img-responsive">
|
||||
<img src="img/port03.jpg" class="img-responsive">
|
||||
</div>
|
||||
<div class="col-md-4 col-sm-4 padding-right-zero">
|
||||
<img src="img/port01.jpg" class="img-responsive">
|
||||
<img src="img/portfolio01.jpg" class="img-responsive">
|
||||
<img src="img/portfolio02.jpg" class="img-responsive">
|
||||
<img src="img/port03.jpg" class="img-responsive">
|
||||
<img src="img/portfolio02.jpg" class="img-responsive">
|
||||
<img src="img/port02.jpg" class="img-responsive">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<!--<section id="testimonial" class="section-padding wow fadeInUp">
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
<h2 class="title text-center">See What Our <span class="deco">Client</span> Are Saying ?</h2>
|
||||
<div class="test-sec">
|
||||
<div class="col-sm-4">
|
||||
<blockquote>
|
||||
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis sed dapibus leo nec ornare diamsed commodo nibh ante facilisis bibendum dolor feugiat at. </p>
|
||||
</blockquote>
|
||||
<div class="carousel-info">
|
||||
<div class="pull-left"> <span class="testimonials-name">John Doe</span> <span class="testimonials-post">CEO, Company Inc.</span> </div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-sm-4">
|
||||
<blockquote>
|
||||
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis sed dapibus leo nec ornare diamsed commodo nibh ante facilisis bibendum dolor feugiat at. </p>
|
||||
</blockquote>
|
||||
<div class="carousel-info">
|
||||
<div class="pull-left"> <span class="testimonials-name">John Doe</span> <span class="testimonials-post">CEO, Company Inc.</span> </div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-sm-4">
|
||||
<blockquote>
|
||||
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis sed dapibus leo nec ornare diamsed commodo nibh ante facilisis bibendum dolor feugiat at. </p>
|
||||
</blockquote>
|
||||
<div class="carousel-info">
|
||||
<div class="pull-left"> <span class="testimonials-name">John Doe</span> <span class="testimonials-post">CEO, Company Inc.</span> </div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section id="contact" class="section-padding wow fadeIn delay-05s">
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
<div class="col-md-12">
|
||||
<div class="contact-sec text-center">
|
||||
<h2>Want To <span class="deco">Hire</span> Me?</h2>
|
||||
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt.</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-md-8 col-md-push-2">
|
||||
<div id="sendmessage">Your message has been sent. Thank you!</div>
|
||||
<div id="errormessage"></div>
|
||||
<form action="" method="post" role="form" class="contactForm">
|
||||
<div class="form-group">
|
||||
<input type="text" name="name" class="form-control" id="name" placeholder="Your Name" data-rule="minlen:4" data-msg="Please enter at least 4 chars" />
|
||||
<div class="validation"></div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<input type="email" class="form-control" name="email" id="email" placeholder="Your Email" data-rule="email" data-msg="Please enter a valid email" />
|
||||
<div class="validation"></div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<input type="text" class="form-control" name="subject" id="subject" placeholder="Subject" data-rule="minlen:4" data-msg="Please enter at least 8 chars of subject" />
|
||||
<div class="validation"></div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<textarea class="form-control" name="message" rows="5" data-rule="required" data-msg="Please write something for us" placeholder="Message"></textarea>
|
||||
<div class="validation"></div>
|
||||
</div>
|
||||
|
||||
<div class="text-center"><button type="submit" class="btn btn-primary btn-lg">Send Message</button></div>
|
||||
</form>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</section> -->
|
||||
|
||||
<footer class="footer-2 text-center-xs bg--white">
|
||||
<div class="container">
|
||||
<!--end row-->
|
||||
<div class="row">
|
||||
<div class="col-md-6">
|
||||
<div class="footer">
|
||||
© Copyright Laura Theme. All Rights Reserved
|
||||
<div class="credits">
|
||||
<!--
|
||||
All the links in the footer should remain intact.
|
||||
You can delete the links only if you purchased the pro version.
|
||||
Licensing information: https://bootstrapmade.com/license/
|
||||
Purchase the pro version with working PHP/AJAX contact form: https://bootstrapmade.com/buy/?theme=Laura
|
||||
-->
|
||||
Designed by <a href="https://bootstrapmade.com/">BootstrapMade.com</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-6 text-right">
|
||||
<ul class="social-list">
|
||||
<li>
|
||||
<a href="#"><i class="fa fa-twitter"></i></a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="#"><i class="fa fa-dribbble"></i></a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="#"><i class="fa fa-vimeo"></i></a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="#"><i class="fa fa-instagram"></i></a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<!--end row-->
|
||||
</div>
|
||||
</footer>
|
||||
|
||||
<script src="js/jquery.min.js"></script>
|
||||
<script src="js/jquery.easing.min.js"></script>
|
||||
<script src="js/bootstrap.min.js"></script>
|
||||
<script src="js/jquery.bxslider.min.js"></script>
|
||||
<script src="js/wow.js"></script>
|
||||
<script src="js/custom.js"></script>
|
||||
<script src="contactform/contactform.js"></script>
|
||||
|
||||
</body>
|
||||
|
||||
</html>
|
|
@ -0,0 +1,51 @@
|
|||
(function ($) {
|
||||
|
||||
// Init Wow
|
||||
wow = new WOW( {
|
||||
animateClass: 'animated',
|
||||
offset: 100
|
||||
});
|
||||
wow.init();
|
||||
|
||||
// Navigation scrolls
|
||||
$('.navbar-nav li a').bind('click', function(event) {
|
||||
$('.navbar-nav li').removeClass('active');
|
||||
$(this).closest('li').addClass('active');
|
||||
var $anchor = $(this);
|
||||
var nav = $($anchor.attr('href'));
|
||||
if (nav.length) {
|
||||
$('html, body').stop().animate({
|
||||
scrollTop: $($anchor.attr('href')).offset().top
|
||||
}, 1500, 'easeInOutExpo');
|
||||
|
||||
event.preventDefault();
|
||||
}
|
||||
});
|
||||
|
||||
// About section scroll
|
||||
$(".overlay-detail a").on('click', function(event) {
|
||||
event.preventDefault();
|
||||
var hash = this.hash;
|
||||
$('html, body').animate({
|
||||
scrollTop: $(hash).offset().top
|
||||
}, 900, function(){
|
||||
window.location.hash = hash;
|
||||
});
|
||||
});
|
||||
|
||||
//jQuery to collapse the navbar on scroll
|
||||
$(window).scroll(function() {
|
||||
if ($(".navbar-default").offset().top > 50) {
|
||||
$(".navbar-fixed-top").addClass("top-nav-collapse");
|
||||
} else {
|
||||
$(".navbar-fixed-top").removeClass("top-nav-collapse");
|
||||
}
|
||||
});
|
||||
|
||||
// Testimonials Slider
|
||||
$('.bxslider').bxSlider({
|
||||
adaptiveHeight: true,
|
||||
mode: 'fade'
|
||||
});
|
||||
|
||||
})(jQuery);
|
|
@ -0,0 +1,44 @@
|
|||
/*
|
||||
* jQuery Easing v1.3 - http://gsgd.co.uk/sandbox/jquery/easing/
|
||||
*
|
||||
* Uses the built in easing capabilities added In jQuery 1.1
|
||||
* to offer multiple easing options
|
||||
*
|
||||
* TERMS OF USE - EASING EQUATIONS
|
||||
*
|
||||
* Open source under the BSD License.
|
||||
*
|
||||
* Copyright © 2001 Robert Penner
|
||||
* All rights reserved.
|
||||
*
|
||||
* TERMS OF USE - jQuery Easing
|
||||
*
|
||||
* Open source under the BSD License.
|
||||
*
|
||||
* Copyright © 2008 George McGinley Smith
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without modification,
|
||||
* are permitted provided that the following conditions are met:
|
||||
*
|
||||
* Redistributions of source code must retain the above copyright notice, this list of
|
||||
* conditions and the following disclaimer.
|
||||
* Redistributions in binary form must reproduce the above copyright notice, this list
|
||||
* of conditions and the following disclaimer in the documentation and/or other materials
|
||||
* provided with the distribution.
|
||||
*
|
||||
* Neither the name of the author nor the names of contributors may be used to endorse
|
||||
* or promote products derived from this software without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY
|
||||
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
||||
* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
|
||||
* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
|
||||
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
|
||||
* GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
|
||||
* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
|
||||
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
|
||||
* OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*
|
||||
*/
|
||||
jQuery.easing.jswing=jQuery.easing.swing;jQuery.extend(jQuery.easing,{def:"easeOutQuad",swing:function(e,f,a,h,g){return jQuery.easing[jQuery.easing.def](e,f,a,h,g)},easeInQuad:function(e,f,a,h,g){return h*(f/=g)*f+a},easeOutQuad:function(e,f,a,h,g){return -h*(f/=g)*(f-2)+a},easeInOutQuad:function(e,f,a,h,g){if((f/=g/2)<1){return h/2*f*f+a}return -h/2*((--f)*(f-2)-1)+a},easeInCubic:function(e,f,a,h,g){return h*(f/=g)*f*f+a},easeOutCubic:function(e,f,a,h,g){return h*((f=f/g-1)*f*f+1)+a},easeInOutCubic:function(e,f,a,h,g){if((f/=g/2)<1){return h/2*f*f*f+a}return h/2*((f-=2)*f*f+2)+a},easeInQuart:function(e,f,a,h,g){return h*(f/=g)*f*f*f+a},easeOutQuart:function(e,f,a,h,g){return -h*((f=f/g-1)*f*f*f-1)+a},easeInOutQuart:function(e,f,a,h,g){if((f/=g/2)<1){return h/2*f*f*f*f+a}return -h/2*((f-=2)*f*f*f-2)+a},easeInQuint:function(e,f,a,h,g){return h*(f/=g)*f*f*f*f+a},easeOutQuint:function(e,f,a,h,g){return h*((f=f/g-1)*f*f*f*f+1)+a},easeInOutQuint:function(e,f,a,h,g){if((f/=g/2)<1){return h/2*f*f*f*f*f+a}return h/2*((f-=2)*f*f*f*f+2)+a},easeInSine:function(e,f,a,h,g){return -h*Math.cos(f/g*(Math.PI/2))+h+a},easeOutSine:function(e,f,a,h,g){return h*Math.sin(f/g*(Math.PI/2))+a},easeInOutSine:function(e,f,a,h,g){return -h/2*(Math.cos(Math.PI*f/g)-1)+a},easeInExpo:function(e,f,a,h,g){return(f==0)?a:h*Math.pow(2,10*(f/g-1))+a},easeOutExpo:function(e,f,a,h,g){return(f==g)?a+h:h*(-Math.pow(2,-10*f/g)+1)+a},easeInOutExpo:function(e,f,a,h,g){if(f==0){return a}if(f==g){return a+h}if((f/=g/2)<1){return h/2*Math.pow(2,10*(f-1))+a}return h/2*(-Math.pow(2,-10*--f)+2)+a},easeInCirc:function(e,f,a,h,g){return -h*(Math.sqrt(1-(f/=g)*f)-1)+a},easeOutCirc:function(e,f,a,h,g){return h*Math.sqrt(1-(f=f/g-1)*f)+a},easeInOutCirc:function(e,f,a,h,g){if((f/=g/2)<1){return -h/2*(Math.sqrt(1-f*f)-1)+a}return h/2*(Math.sqrt(1-(f-=2)*f)+1)+a},easeInElastic:function(f,h,e,l,k){var i=1.70158;var j=0;var g=l;if(h==0){return e}if((h/=k)==1){return e+l}if(!j){j=k*0.3}if(g<Math.abs(l)){g=l;var i=j/4}else{var i=j/(2*Math.PI)*Math.asin(l/g)}return -(g*Math.pow(2,10*(h-=1))*Math.sin((h*k-i)*(2*Math.PI)/j))+e},easeOutElastic:function(f,h,e,l,k){var i=1.70158;var j=0;var g=l;if(h==0){return e}if((h/=k)==1){return e+l}if(!j){j=k*0.3}if(g<Math.abs(l)){g=l;var i=j/4}else{var i=j/(2*Math.PI)*Math.asin(l/g)}return g*Math.pow(2,-10*h)*Math.sin((h*k-i)*(2*Math.PI)/j)+l+e},easeInOutElastic:function(f,h,e,l,k){var i=1.70158;var j=0;var g=l;if(h==0){return e}if((h/=k/2)==2){return e+l}if(!j){j=k*(0.3*1.5)}if(g<Math.abs(l)){g=l;var i=j/4}else{var i=j/(2*Math.PI)*Math.asin(l/g)}if(h<1){return -0.5*(g*Math.pow(2,10*(h-=1))*Math.sin((h*k-i)*(2*Math.PI)/j))+e}return g*Math.pow(2,-10*(h-=1))*Math.sin((h*k-i)*(2*Math.PI)/j)*0.5+l+e},easeInBack:function(e,f,a,i,h,g){if(g==undefined){g=1.70158}return i*(f/=h)*f*((g+1)*f-g)+a},easeOutBack:function(e,f,a,i,h,g){if(g==undefined){g=1.70158}return i*((f=f/h-1)*f*((g+1)*f+g)+1)+a},easeInOutBack:function(e,f,a,i,h,g){if(g==undefined){g=1.70158}if((f/=h/2)<1){return i/2*(f*f*(((g*=(1.525))+1)*f-g))+a}return i/2*((f-=2)*f*(((g*=(1.525))+1)*f+g)+2)+a},easeInBounce:function(e,f,a,h,g){return h-jQuery.easing.easeOutBounce(e,g-f,0,h,g)+a},easeOutBounce:function(e,f,a,h,g){if((f/=g)<(1/2.75)){return h*(7.5625*f*f)+a}else{if(f<(2/2.75)){return h*(7.5625*(f-=(1.5/2.75))*f+0.75)+a}else{if(f<(2.5/2.75)){return h*(7.5625*(f-=(2.25/2.75))*f+0.9375)+a}else{return h*(7.5625*(f-=(2.625/2.75))*f+0.984375)+a}}}},easeInOutBounce:function(e,f,a,h,g){if(f<g/2){return jQuery.easing.easeInBounce(e,f*2,0,h,g)*0.5+a}return jQuery.easing.easeOutBounce(e,f*2-g,0,h,g)*0.5+h*0.5+a}});
|
|
@ -0,0 +1,402 @@
|
|||
(function() {
|
||||
var MutationObserver, Util, WeakMap,
|
||||
__bind = function(fn, me){ return function(){ return fn.apply(me, arguments); }; },
|
||||
__indexOf = [].indexOf || function(item) { for (var i = 0, l = this.length; i < l; i++) { if (i in this && this[i] === item) return i; } return -1; };
|
||||
|
||||
Util = (function() {
|
||||
function Util() {}
|
||||
|
||||
Util.prototype.extend = function(custom, defaults) {
|
||||
var key, value;
|
||||
for (key in defaults) {
|
||||
value = defaults[key];
|
||||
if (custom[key] == null) {
|
||||
custom[key] = value;
|
||||
}
|
||||
}
|
||||
return custom;
|
||||
};
|
||||
|
||||
Util.prototype.isMobile = function(agent) {
|
||||
return /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(agent);
|
||||
};
|
||||
|
||||
return Util;
|
||||
|
||||
})();
|
||||
|
||||
WeakMap = this.WeakMap || this.MozWeakMap || (WeakMap = (function() {
|
||||
function WeakMap() {
|
||||
this.keys = [];
|
||||
this.values = [];
|
||||
}
|
||||
|
||||
WeakMap.prototype.get = function(key) {
|
||||
var i, item, _i, _len, _ref;
|
||||
_ref = this.keys;
|
||||
for (i = _i = 0, _len = _ref.length; _i < _len; i = ++_i) {
|
||||
item = _ref[i];
|
||||
if (item === key) {
|
||||
return this.values[i];
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
WeakMap.prototype.set = function(key, value) {
|
||||
var i, item, _i, _len, _ref;
|
||||
_ref = this.keys;
|
||||
for (i = _i = 0, _len = _ref.length; _i < _len; i = ++_i) {
|
||||
item = _ref[i];
|
||||
if (item === key) {
|
||||
this.values[i] = value;
|
||||
return;
|
||||
}
|
||||
}
|
||||
this.keys.push(key);
|
||||
return this.values.push(value);
|
||||
};
|
||||
|
||||
return WeakMap;
|
||||
|
||||
})());
|
||||
|
||||
MutationObserver = this.MutationObserver || this.WebkitMutationObserver || this.MozMutationObserver || (MutationObserver = (function() {
|
||||
function MutationObserver() {
|
||||
console.warn('MutationObserver is not supported by your browser.');
|
||||
console.warn('WOW.js cannot detect dom mutations, please call .sync() after loading new content.');
|
||||
}
|
||||
|
||||
MutationObserver.notSupported = true;
|
||||
|
||||
MutationObserver.prototype.observe = function() {};
|
||||
|
||||
return MutationObserver;
|
||||
|
||||
})());
|
||||
|
||||
this.WOW = (function() {
|
||||
WOW.prototype.defaults = {
|
||||
boxClass: 'wow',
|
||||
animateClass: 'animated',
|
||||
offset: 0,
|
||||
mobile: true,
|
||||
live: true
|
||||
};
|
||||
|
||||
function WOW(options) {
|
||||
if (options == null) {
|
||||
options = {};
|
||||
}
|
||||
this.scrollCallback = __bind(this.scrollCallback, this);
|
||||
this.scrollHandler = __bind(this.scrollHandler, this);
|
||||
this.start = __bind(this.start, this);
|
||||
this.scrolled = true;
|
||||
this.config = this.util().extend(options, this.defaults);
|
||||
this.animationNameCache = new WeakMap();
|
||||
}
|
||||
|
||||
WOW.prototype.init = function() {
|
||||
var _ref;
|
||||
this.element = window.document.documentElement;
|
||||
if ((_ref = document.readyState) === "interactive" || _ref === "complete") {
|
||||
this.start();
|
||||
} else {
|
||||
document.addEventListener('DOMContentLoaded', this.start);
|
||||
}
|
||||
return this.finished = [];
|
||||
};
|
||||
|
||||
WOW.prototype.start = function() {
|
||||
var box, _i, _len, _ref;
|
||||
this.stopped = false;
|
||||
this.boxes = (function() {
|
||||
var _i, _len, _ref, _results;
|
||||
_ref = this.element.getElementsByClassName(this.config.boxClass);
|
||||
_results = [];
|
||||
for (_i = 0, _len = _ref.length; _i < _len; _i++) {
|
||||
box = _ref[_i];
|
||||
_results.push(box);
|
||||
}
|
||||
return _results;
|
||||
}).call(this);
|
||||
this.all = (function() {
|
||||
var _i, _len, _ref, _results;
|
||||
_ref = this.boxes;
|
||||
_results = [];
|
||||
for (_i = 0, _len = _ref.length; _i < _len; _i++) {
|
||||
box = _ref[_i];
|
||||
_results.push(box);
|
||||
}
|
||||
return _results;
|
||||
}).call(this);
|
||||
if (this.boxes.length) {
|
||||
if (this.disabled()) {
|
||||
this.resetStyle();
|
||||
} else {
|
||||
_ref = this.boxes;
|
||||
for (_i = 0, _len = _ref.length; _i < _len; _i++) {
|
||||
box = _ref[_i];
|
||||
this.applyStyle(box, true);
|
||||
}
|
||||
window.addEventListener('scroll', this.scrollHandler, false);
|
||||
window.addEventListener('resize', this.scrollHandler, false);
|
||||
this.interval = setInterval(this.scrollCallback, 50);
|
||||
}
|
||||
}
|
||||
if (this.config.live) {
|
||||
return new MutationObserver((function(_this) {
|
||||
return function(records) {
|
||||
var node, record, _j, _len1, _results;
|
||||
_results = [];
|
||||
for (_j = 0, _len1 = records.length; _j < _len1; _j++) {
|
||||
record = records[_j];
|
||||
_results.push((function() {
|
||||
var _k, _len2, _ref1, _results1;
|
||||
_ref1 = record.addedNodes || [];
|
||||
_results1 = [];
|
||||
for (_k = 0, _len2 = _ref1.length; _k < _len2; _k++) {
|
||||
node = _ref1[_k];
|
||||
_results1.push(this.doSync(node));
|
||||
}
|
||||
return _results1;
|
||||
}).call(_this));
|
||||
}
|
||||
return _results;
|
||||
};
|
||||
})(this)).observe(document.body, {
|
||||
childList: true,
|
||||
subtree: true
|
||||
});
|
||||
}
|
||||
};
|
||||
|
||||
WOW.prototype.stop = function() {
|
||||
this.stopped = true;
|
||||
window.removeEventListener('scroll', this.scrollHandler, false);
|
||||
window.removeEventListener('resize', this.scrollHandler, false);
|
||||
if (this.interval != null) {
|
||||
return clearInterval(this.interval);
|
||||
}
|
||||
};
|
||||
|
||||
WOW.prototype.sync = function(element) {
|
||||
if (MutationObserver.notSupported) {
|
||||
return this.doSync(this.element);
|
||||
}
|
||||
};
|
||||
|
||||
WOW.prototype.doSync = function(element) {
|
||||
var box, _i, _len, _ref, _results;
|
||||
if (!this.stopped) {
|
||||
if (element == null) {
|
||||
element = this.element;
|
||||
}
|
||||
if (element.nodeType !== 1) {
|
||||
return;
|
||||
}
|
||||
element = element.parentNode || element;
|
||||
_ref = element.getElementsByClassName(this.config.boxClass);
|
||||
_results = [];
|
||||
for (_i = 0, _len = _ref.length; _i < _len; _i++) {
|
||||
box = _ref[_i];
|
||||
if (__indexOf.call(this.all, box) < 0) {
|
||||
this.applyStyle(box, true);
|
||||
this.boxes.push(box);
|
||||
this.all.push(box);
|
||||
_results.push(this.scrolled = true);
|
||||
} else {
|
||||
_results.push(void 0);
|
||||
}
|
||||
}
|
||||
return _results;
|
||||
}
|
||||
};
|
||||
|
||||
WOW.prototype.show = function(box) {
|
||||
this.applyStyle(box);
|
||||
return box.className = "" + box.className + " " + this.config.animateClass;
|
||||
};
|
||||
|
||||
WOW.prototype.applyStyle = function(box, hidden) {
|
||||
var delay, duration, iteration;
|
||||
duration = box.getAttribute('data-wow-duration');
|
||||
delay = box.getAttribute('data-wow-delay');
|
||||
iteration = box.getAttribute('data-wow-iteration');
|
||||
return this.animate((function(_this) {
|
||||
return function() {
|
||||
return _this.customStyle(box, hidden, duration, delay, iteration);
|
||||
};
|
||||
})(this));
|
||||
};
|
||||
|
||||
WOW.prototype.animate = (function() {
|
||||
if ('requestAnimationFrame' in window) {
|
||||
return function(callback) {
|
||||
return window.requestAnimationFrame(callback);
|
||||
};
|
||||
} else {
|
||||
return function(callback) {
|
||||
return callback();
|
||||
};
|
||||
}
|
||||
})();
|
||||
|
||||
WOW.prototype.resetStyle = function() {
|
||||
var box, _i, _len, _ref, _results;
|
||||
_ref = this.boxes;
|
||||
_results = [];
|
||||
for (_i = 0, _len = _ref.length; _i < _len; _i++) {
|
||||
box = _ref[_i];
|
||||
_results.push(box.setAttribute('style', 'visibility: visible;'));
|
||||
}
|
||||
return _results;
|
||||
};
|
||||
|
||||
WOW.prototype.customStyle = function(box, hidden, duration, delay, iteration) {
|
||||
if (hidden) {
|
||||
this.cacheAnimationName(box);
|
||||
}
|
||||
box.style.visibility = hidden ? 'hidden' : 'visible';
|
||||
if (duration) {
|
||||
this.vendorSet(box.style, {
|
||||
animationDuration: duration
|
||||
});
|
||||
}
|
||||
if (delay) {
|
||||
this.vendorSet(box.style, {
|
||||
animationDelay: delay
|
||||
});
|
||||
}
|
||||
if (iteration) {
|
||||
this.vendorSet(box.style, {
|
||||
animationIterationCount: iteration
|
||||
});
|
||||
}
|
||||
this.vendorSet(box.style, {
|
||||
animationName: hidden ? 'none' : this.cachedAnimationName(box)
|
||||
});
|
||||
return box;
|
||||
};
|
||||
|
||||
WOW.prototype.vendors = ["moz", "webkit"];
|
||||
|
||||
WOW.prototype.vendorSet = function(elem, properties) {
|
||||
var name, value, vendor, _results;
|
||||
_results = [];
|
||||
for (name in properties) {
|
||||
value = properties[name];
|
||||
elem["" + name] = value;
|
||||
_results.push((function() {
|
||||
var _i, _len, _ref, _results1;
|
||||
_ref = this.vendors;
|
||||
_results1 = [];
|
||||
for (_i = 0, _len = _ref.length; _i < _len; _i++) {
|
||||
vendor = _ref[_i];
|
||||
_results1.push(elem["" + vendor + (name.charAt(0).toUpperCase()) + (name.substr(1))] = value);
|
||||
}
|
||||
return _results1;
|
||||
}).call(this));
|
||||
}
|
||||
return _results;
|
||||
};
|
||||
|
||||
WOW.prototype.vendorCSS = function(elem, property) {
|
||||
var result, style, vendor, _i, _len, _ref;
|
||||
style = window.getComputedStyle(elem);
|
||||
result = style.getPropertyCSSValue(property);
|
||||
_ref = this.vendors;
|
||||
for (_i = 0, _len = _ref.length; _i < _len; _i++) {
|
||||
vendor = _ref[_i];
|
||||
result = result || style.getPropertyCSSValue("-" + vendor + "-" + property);
|
||||
}
|
||||
return result;
|
||||
};
|
||||
|
||||
WOW.prototype.animationName = function(box) {
|
||||
var animationName;
|
||||
try {
|
||||
animationName = this.vendorCSS(box, 'animation-name').cssText;
|
||||
} catch (_error) {
|
||||
animationName = window.getComputedStyle(box).getPropertyValue('animation-name');
|
||||
}
|
||||
if (animationName === 'none') {
|
||||
return '';
|
||||
} else {
|
||||
return animationName;
|
||||
}
|
||||
};
|
||||
|
||||
WOW.prototype.cacheAnimationName = function(box) {
|
||||
return this.animationNameCache.set(box, this.animationName(box));
|
||||
};
|
||||
|
||||
WOW.prototype.cachedAnimationName = function(box) {
|
||||
return this.animationNameCache.get(box);
|
||||
};
|
||||
|
||||
WOW.prototype.scrollHandler = function() {
|
||||
return this.scrolled = true;
|
||||
};
|
||||
|
||||
WOW.prototype.scrollCallback = function() {
|
||||
var box;
|
||||
if (this.scrolled) {
|
||||
this.scrolled = false;
|
||||
this.boxes = (function() {
|
||||
var _i, _len, _ref, _results;
|
||||
_ref = this.boxes;
|
||||
_results = [];
|
||||
for (_i = 0, _len = _ref.length; _i < _len; _i++) {
|
||||
box = _ref[_i];
|
||||
if (!(box)) {
|
||||
continue;
|
||||
}
|
||||
if (this.isVisible(box)) {
|
||||
this.show(box);
|
||||
continue;
|
||||
}
|
||||
_results.push(box);
|
||||
}
|
||||
return _results;
|
||||
}).call(this);
|
||||
if (!(this.boxes.length || this.config.live)) {
|
||||
return this.stop();
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
WOW.prototype.offsetTop = function(element) {
|
||||
var top;
|
||||
while (element.offsetTop === void 0) {
|
||||
element = element.parentNode;
|
||||
}
|
||||
top = element.offsetTop;
|
||||
while (element = element.offsetParent) {
|
||||
top += element.offsetTop;
|
||||
}
|
||||
return top;
|
||||
};
|
||||
|
||||
WOW.prototype.isVisible = function(box) {
|
||||
var bottom, offset, top, viewBottom, viewTop;
|
||||
offset = box.getAttribute('data-wow-offset') || this.config.offset;
|
||||
viewTop = window.pageYOffset;
|
||||
viewBottom = viewTop + Math.min(this.element.clientHeight, innerHeight) - offset;
|
||||
top = this.offsetTop(box);
|
||||
bottom = top + box.clientHeight;
|
||||
return top <= viewBottom && bottom >= viewTop;
|
||||
};
|
||||
|
||||
WOW.prototype.util = function() {
|
||||
return this._util != null ? this._util : this._util = new Util();
|
||||
};
|
||||
|
||||
WOW.prototype.disabled = function() {
|
||||
return !this.config.mobile && this.util().isMobile(navigator.userAgent);
|
||||
};
|
||||
|
||||
return WOW;
|
||||
|
||||
})();
|
||||
|
||||
}).call(this);
|
|
@ -0,0 +1,428 @@
|
|||
/*!
|
||||
* Start Bootstrap - Grayscale Bootstrap Theme (http://startbootstrap.com)
|
||||
* Code licensed under the Apache License v2.0.
|
||||
* For details, see http://www.apache.org/licenses/LICENSE-2.0.
|
||||
*/
|
||||
|
||||
body {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
font-family: Lora,"Helvetica Neue",Helvetica,Arial,sans-serif;
|
||||
color: #fff;
|
||||
background-color: #000;
|
||||
}
|
||||
|
||||
html {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
h1,
|
||||
h2,
|
||||
h3,
|
||||
h4,
|
||||
h5,
|
||||
h6 {
|
||||
margin: 0 0 35px;
|
||||
text-transform: uppercase;
|
||||
font-family: Montserrat,"Verdana",Verdana,Arial,sans-serif;
|
||||
font-weight: 700;
|
||||
letter-spacing: 1px;
|
||||
}
|
||||
|
||||
p {
|
||||
margin: 0 0 25px;
|
||||
font-size: 18px;
|
||||
line-height: 1.5;
|
||||
}
|
||||
|
||||
.data {
|
||||
padding-bottom: 75px;
|
||||
}
|
||||
|
||||
@media(min-width:768px) {
|
||||
p {
|
||||
margin: 0 0 35px;
|
||||
font-size: 20px;
|
||||
line-height: 1.6;
|
||||
}
|
||||
}
|
||||
|
||||
a {
|
||||
color: #2C9FFF;
|
||||
-webkit-transition: all .2s ease-in-out;
|
||||
-moz-transition: all .2s ease-in-out;
|
||||
transition: all .2s ease-in-out;
|
||||
}
|
||||
|
||||
#HeaderBlock {
|
||||
background-color: rgba(0, 0, 0, 0.5);
|
||||
}
|
||||
|
||||
a:hover,
|
||||
a:focus {
|
||||
text-decoration: none;
|
||||
color: #8D9BB6;
|
||||
}
|
||||
|
||||
.light {
|
||||
font-weight: 400;
|
||||
}
|
||||
|
||||
.documentation {
|
||||
padding-top: 10px;
|
||||
padding-bottom: 10px;
|
||||
}
|
||||
.documentation b {
|
||||
color: #2C9FFF;
|
||||
}
|
||||
|
||||
.navbar-custom {
|
||||
margin-bottom: 0;
|
||||
border-bottom: 1px solid rgba(255,255,255,.3);
|
||||
text-transform: uppercase;
|
||||
font-family: Montserrat,"Helvetica Neue",Helvetica,Arial,sans-serif;
|
||||
background-color: #000;
|
||||
}
|
||||
|
||||
.navbar-custom .navbar-brand {
|
||||
font-weight: 700;
|
||||
}
|
||||
|
||||
.navbar-custom .navbar-brand:focus {
|
||||
outline: 0;
|
||||
}
|
||||
|
||||
.navbar-custom .navbar-brand .navbar-toggle {
|
||||
padding: 4px 6px;
|
||||
font-size: 16px;
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
.navbar-custom .navbar-brand .navbar-toggle:focus,
|
||||
.navbar-custom .navbar-brand .navbar-toggle:active {
|
||||
outline: 0;
|
||||
}
|
||||
|
||||
.navbar-custom a {
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
.navbar-custom .nav li a {
|
||||
-webkit-transition: background .3s ease-in-out;
|
||||
-moz-transition: background .3s ease-in-out;
|
||||
transition: background .3s ease-in-out;
|
||||
}
|
||||
|
||||
.navbar-custom .nav li a:hover {
|
||||
outline: 0;
|
||||
color: rgba(255,255,255,.8);
|
||||
background-color: transparent;
|
||||
}
|
||||
|
||||
.navbar-custom .nav li a:focus,
|
||||
.navbar-custom .nav li a:active {
|
||||
outline: 0;
|
||||
background-color: transparent;
|
||||
}
|
||||
|
||||
.navbar-custom .nav li.active {
|
||||
outline: 0;
|
||||
}
|
||||
|
||||
.navbar-custom .nav li.active a {
|
||||
background-color: rgba(255,255,255,.3);
|
||||
}
|
||||
|
||||
.navbar-custom .nav li.active a:hover {
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
@media(min-width:768px) {
|
||||
.navbar-custom {
|
||||
padding: 20px 0;
|
||||
border-bottom: 0;
|
||||
letter-spacing: 1px;
|
||||
background: 0 0;
|
||||
-webkit-transition: background .5s ease-in-out,padding .5s ease-in-out;
|
||||
-moz-transition: background .5s ease-in-out,padding .5s ease-in-out;
|
||||
transition: background .5s ease-in-out,padding .5s ease-in-out;
|
||||
}
|
||||
|
||||
.navbar-custom.top-nav-collapse {
|
||||
padding: 0;
|
||||
border-bottom: 1px solid rgba(255,255,255,.3);
|
||||
background: #000;
|
||||
}
|
||||
}
|
||||
|
||||
.intro {
|
||||
display: table;
|
||||
width: 100%;
|
||||
height: auto;
|
||||
padding: 100px 0;
|
||||
text-align: center;
|
||||
color: #fff;
|
||||
background: url(../img/background.jpg) no-repeat bottom center scroll;
|
||||
background-color: #000;
|
||||
-webkit-background-size: cover;
|
||||
-moz-background-size: cover;
|
||||
background-size: cover;
|
||||
-o-background-size: cover;
|
||||
}
|
||||
|
||||
.intro-minecraft{
|
||||
background: url(../img/background-minecraft.jpg) no-repeat bottom center scroll;
|
||||
display: table-cell;
|
||||
vertical-align: middle;
|
||||
}
|
||||
|
||||
.intro .intro-body .title-heading {
|
||||
font-size: 30px;
|
||||
}
|
||||
|
||||
.intro .intro-body {
|
||||
display: table-cell;
|
||||
vertical-align: middle;
|
||||
}
|
||||
|
||||
.intro .intro-body .brand-heading {
|
||||
font-size: 40px;
|
||||
}
|
||||
|
||||
.intro .intro-body .intro-text {
|
||||
font-size: 18px;
|
||||
}
|
||||
|
||||
@media(min-width:768px) {
|
||||
.intro {
|
||||
height: 100%;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
.intro .intro-body .brand-heading {
|
||||
font-size: 100px;
|
||||
}
|
||||
|
||||
.intro .intro-body .intro-text {
|
||||
font-size: 26px;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
.btn-circle {
|
||||
width: 70px;
|
||||
height: 70px;
|
||||
margin-top: 15px;
|
||||
padding: 7px 16px;
|
||||
border: 2px solid #fff;
|
||||
border-radius: 100%!important;
|
||||
font-size: 40px;
|
||||
color: #fff;
|
||||
background: 0 0;
|
||||
-webkit-transition: background .3s ease-in-out;
|
||||
-moz-transition: background .3s ease-in-out;
|
||||
transition: background .3s ease-in-out;
|
||||
}
|
||||
|
||||
.btn-circle:hover,
|
||||
.btn-circle:focus {
|
||||
outline: 0;
|
||||
color: #fff;
|
||||
background: rgba(255,255,255,.1);
|
||||
}
|
||||
|
||||
.btn-circle i.animated {
|
||||
-webkit-transition-property: -webkit-transform;
|
||||
-webkit-transition-duration: 1s;
|
||||
-moz-transition-property: -moz-transform;
|
||||
-moz-transition-duration: 1s;
|
||||
}
|
||||
|
||||
.btn-circle:hover i.animated {
|
||||
-webkit-animation-name: pulse;
|
||||
-moz-animation-name: pulse;
|
||||
-webkit-animation-duration: 1.5s;
|
||||
-moz-animation-duration: 1.5s;
|
||||
-webkit-animation-iteration-count: infinite;
|
||||
-moz-animation-iteration-count: infinite;
|
||||
-webkit-animation-timing-function: linear;
|
||||
-moz-animation-timing-function: linear;
|
||||
}
|
||||
|
||||
@-webkit-keyframes pulse {
|
||||
0 {
|
||||
-webkit-transform: scale(1);
|
||||
transform: scale(1);
|
||||
}
|
||||
|
||||
50% {
|
||||
-webkit-transform: scale(1.2);
|
||||
transform: scale(1.2);
|
||||
}
|
||||
|
||||
100% {
|
||||
-webkit-transform: scale(1);
|
||||
transform: scale(1);
|
||||
}
|
||||
}
|
||||
|
||||
@-moz-keyframes pulse {
|
||||
0 {
|
||||
-moz-transform: scale(1);
|
||||
transform: scale(1);
|
||||
}
|
||||
|
||||
50% {
|
||||
-moz-transform: scale(1.2);
|
||||
transform: scale(1.2);
|
||||
}
|
||||
|
||||
100% {
|
||||
-moz-transform: scale(1);
|
||||
transform: scale(1);
|
||||
}
|
||||
}
|
||||
|
||||
.content-section {
|
||||
padding-top: 5px;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.download-section {
|
||||
width: 100%;
|
||||
padding: 50px 0;
|
||||
color: #fff;
|
||||
background: url(../img/network-banner.png) no-repeat center center scroll;
|
||||
background-color: #000;
|
||||
-webkit-background-size: cover;
|
||||
-moz-background-size: cover;
|
||||
background-size: cover;
|
||||
-o-background-size: cover;
|
||||
}
|
||||
|
||||
#map {
|
||||
width: 100%;
|
||||
height: 200px;
|
||||
margin-top: 100px;
|
||||
}
|
||||
|
||||
@media(min-width:767px) {
|
||||
.content-section {
|
||||
padding-top: 100px;
|
||||
padding-bottom: 100px;
|
||||
}
|
||||
|
||||
.download-section {
|
||||
padding: 100px 0;
|
||||
}
|
||||
|
||||
#map {
|
||||
height: 400px;
|
||||
margin-top: 250px;
|
||||
}
|
||||
}
|
||||
|
||||
.btn {
|
||||
border-radius: 0;
|
||||
text-transform: uppercase;
|
||||
font-family: Montserrat,"Helvetica Neue",Helvetica,Arial,sans-serif;
|
||||
font-weight: 400;
|
||||
-webkit-transition: all .3s ease-in-out;
|
||||
-moz-transition: all .3s ease-in-out;
|
||||
transition: all .3s ease-in-out;
|
||||
}
|
||||
|
||||
.btn-default {
|
||||
border: 1px solid #2C9FFF;
|
||||
color: #2C9FFF;
|
||||
background-color: transparent;
|
||||
}
|
||||
|
||||
.btn-default:hover,
|
||||
.btn-default:focus {
|
||||
border: 1px solid #fff;
|
||||
outline: 0;
|
||||
color: #000;
|
||||
background-color: #fff;
|
||||
}
|
||||
|
||||
ul.banner-social-buttons {
|
||||
margin-top: 0;
|
||||
}
|
||||
|
||||
.section-divider {
|
||||
display: none;
|
||||
}
|
||||
|
||||
@media screen and (max-width:767px) {
|
||||
#logo_about {
|
||||
display: none;
|
||||
}
|
||||
.section-divider {
|
||||
display: block;
|
||||
}
|
||||
.heading_large {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
|
||||
@media screen and (min-width:768px) {
|
||||
.heading_small {
|
||||
display: none;
|
||||
}
|
||||
#heading_large {
|
||||
width: 512px;
|
||||
}
|
||||
}
|
||||
|
||||
@media(max-width:1199px) {
|
||||
ul.banner-social-buttons {
|
||||
margin-top: 15px;
|
||||
}
|
||||
}
|
||||
|
||||
@media(max-width:767px) {
|
||||
ul.banner-social-buttons li {
|
||||
display: block;
|
||||
margin-bottom: 20px;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
ul.banner-social-buttons li:last-child {
|
||||
margin-bottom: 0;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
footer {
|
||||
padding: 50px 0;
|
||||
}
|
||||
|
||||
footer p {
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
::-moz-selection {
|
||||
text-shadow: none;
|
||||
background: #879FBB;
|
||||
background: rgba(255,255,255,.2);
|
||||
}
|
||||
|
||||
::selection {
|
||||
text-shadow: none;
|
||||
background: #879FBB;
|
||||
background: rgba(255,255,255,.2);
|
||||
}
|
||||
|
||||
img::selection {
|
||||
background: 0 0;
|
||||
}
|
||||
|
||||
img::-moz-selection {
|
||||
background: 0 0;
|
||||
}
|
||||
|
||||
body {
|
||||
webkit-tap-highlight-color: rgba(255,255,255,.2);
|
||||
}
|
After Width: | Height: | Size: 434 KiB |
Before Width: | Height: | Size: 136 KiB After Width: | Height: | Size: 136 KiB |
Before Width: | Height: | Size: 138 KiB After Width: | Height: | Size: 138 KiB |
After Width: | Height: | Size: 2.2 KiB |
After Width: | Height: | Size: 4.2 KiB |
Before Width: | Height: | Size: 5.6 KiB After Width: | Height: | Size: 5.6 KiB |
After Width: | Height: | Size: 12 KiB |
Before Width: | Height: | Size: 12 KiB After Width: | Height: | Size: 12 KiB |
Before Width: | Height: | Size: 3.4 KiB After Width: | Height: | Size: 3.4 KiB |
|
@ -0,0 +1,200 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
|
||||
<head>
|
||||
|
||||
<meta charset="utf-8"/>
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge"/>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||
<meta name="author" content="enpaul@enpaul.net"/>
|
||||
<meta name="description" content="ENPaul personal landing page and Network Services website"/>
|
||||
<meta name="keywords" content="enpaul, network, operations, networking, plex, media, server, adds, active, directory, wpi, worcester, polytechnic, institute, boston, mechanical, engineering, solidworks, home, lab, homelab, solid, works, autocad, cad, domain, windows, server"/>
|
||||
<meta name="robots" content="index,follow"/>
|
||||
|
||||
<meta property="og:title" content="ENPaul"/>
|
||||
<meta property='og:locale' content="en_US"/>
|
||||
<meta property='og:description' content="ENPaul personal landing page and Network Services website"/>
|
||||
<meta property="og:type" content="Website"/>
|
||||
<meta property='og:site_name' content="ENPaul Network"/>
|
||||
<meta property="og:url" content="https://enpaul.net/"/>
|
||||
|
||||
<title>ENPaul</title>
|
||||
|
||||
<link rel="shortcut icon" href="img\e-b.png">
|
||||
<link href="css/bootstrap.css" rel="stylesheet">
|
||||
<link href="css/font-awesome.min.css" rel="stylesheet" type="text/css">
|
||||
<link href="css/hexagons.min.css" rel="stylesheet" type="text/css">
|
||||
<link href="css/style.css" rel="stylesheet">
|
||||
|
||||
<script src="js/jquery.js"></script>
|
||||
<script src="js/hexagons.min.js"></script>
|
||||
<script src="js/bootstrap.min.js"></script>
|
||||
<script src="js/jquery.easing.min.js"></script>
|
||||
<script src="js/common.js"></script>
|
||||
|
||||
</head>
|
||||
|
||||
<body id="page-top" data-spy="scroll" data-target=".navbar-fixed-top">
|
||||
|
||||
<nav class="navbar navbar-custom navbar-fixed-top" role="navigation">
|
||||
<div class="container">
|
||||
<div class="navbar-header">
|
||||
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-main-collapse">
|
||||
<span class="light">MENU</span><!--<i class="fa fa-bars"></i>-->
|
||||
</button>
|
||||
<a class="navbar-brand page-scroll" href="#page-top"><span class="light"><img src="img/e-w.png" width="32"> Home</span></a>
|
||||
</div>
|
||||
<div class="collapse navbar-collapse navbar-right navbar-main-collapse">
|
||||
<ul class="nav navbar-nav">
|
||||
<li class="hidden"><a href="#page-top"></a></li>
|
||||
<!--<li><a class="page-scroll" href="#projects">Projects</a></li>-->
|
||||
<li><a class="page-scroll" href="#services">Services</a></li>
|
||||
<!--<li><a class="page-scroll" href="#network">Network</a></li>-->
|
||||
<li><a class="page-scroll" href="#about">About</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</nav>
|
||||
|
||||
<header class="intro">
|
||||
<div class="intro-body">
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
<div class="col-md-8 col-md-offset-2">
|
||||
<h1 class="brand-heading">
|
||||
<img class="heading_large" style="max-width: 512px;" src="img/logo.png"/>
|
||||
<img class="heading_small" style="max-width: 128px;" src="img/e-w.png"/>
|
||||
</h1>
|
||||
<hr>
|
||||
<p>Student - Tinkerer - Programmer - <i style="color: #808080;">(aspiring)</i> Engineer</p>
|
||||
<hr>
|
||||
<ul class="list-inline">
|
||||
<li>
|
||||
<a href="mailto:enpaul@enpaul.net"><span class="hb hb-sm"><i class="fa fa-envelope-o"></i></span></a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="https://download.enpaul.net/enpaul-resume.pdf" target="_blank"><span class="hb hb-sm"><i class="fa fa-file-text-o"></i></span></a>
|
||||
</li>
|
||||
<li>
|
||||
<a target="_blank" href="https://twitter.com/theenpaul"><span class="hb hb-sm"><i class="fa fa-twitter"></i></span></a>
|
||||
</li>
|
||||
<li>
|
||||
<a target="_blank" href="https://plus.google.com/+EthanPaul42"><span class="hb hb-sm"><i class="fa fa-google-plus"></i></span></a>
|
||||
</li>
|
||||
<li>
|
||||
<a target="_blank" href="https://www.linkedin.com/in/enpaul"><span class="hb hb-sm"><i class="fa fa-linkedin"></i></span></a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</header>
|
||||
|
||||
<!--<hr class="section-divider">
|
||||
|
||||
<section id="projects" class="container content-section text-center">
|
||||
<div class="row">
|
||||
<div class="col-lg-8 col-lg-offset-2">
|
||||
<h2>Personal Projects</h2>
|
||||
<i class="fa fa-folder-open fa-5x" aria-hidden="true"></i>
|
||||
<br><br>
|
||||
<p>
|
||||
The underlying infrastructure of the ENPaul Network (ENPN) helps to facilitate a number of pet-projects that are constantly cycled from under development, to abandoned, to broken, and back to under development. These projects are, at best, curiosities and should be seen as such.
|
||||
<br>
|
||||
Enter at your own risk.
|
||||
<br>
|
||||
</p>
|
||||
<ul class="list-inline banner-social-buttons">
|
||||
<li>
|
||||
<a href="/network" class="btn btn-default btn-lg"><i class="fa fa-arrow-circle-o-right"></i> <span class="network-name"><b>Learn More</b></span></a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</section>-->
|
||||
|
||||
<hr class="section-divider">
|
||||
|
||||
<section id="services" class="container content-section text-center">
|
||||
<div class="row">
|
||||
<div class="col-lg-8 col-lg-offset-2">
|
||||
<h2>Network Services</h2>
|
||||
<i class="fa fa-cogs fa-5x" aria-hidden="true"></i>
|
||||
<br><br>
|
||||
<p>
|
||||
Providing useful network services is the primary goal of the ENPaul Network (ENPN). These services provide means of entertainment, data management, and security for the network users.
|
||||
<br><br>
|
||||
The full list of services provided by the ENPN can be found at the link below. Alternatively, use one of the other links to directly access specific service web-interfaces.
|
||||
<br>
|
||||
</p>
|
||||
<ul class="list-inline banner-social-buttons">
|
||||
<li>
|
||||
<a href="/services" class="btn btn-default btn-lg"><i class="fa fa-arrow-circle-o-right"></i> <span class="network-name"><b>Learn More</b></span></a>
|
||||
</li>
|
||||
<br><br><p><i>Direct service links</i></p>
|
||||
<li>
|
||||
<a href="https://plex.enpaul.net" class="btn btn-default btn-lg"><i class="fa fa-ticket"></i> <span class="network-name"><b>Plex Media Server</b></span></a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="https://enpaul.net/services/vpn" class="btn btn-default btn-lg"><i class="fa fa-lock"></i> <span class="network-name"><b>VPN</b></span></a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="https://storage.enpaul.net" class="btn btn-default btn-lg"><i class="fa fa-cloud"></i> <span class="network-name"><b>Storage</b></span></a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="https://gitlab.enpaul.net" class="btn btn-default btn-lg"><i class="fa fa-gitlab"></i> <span class="network-name"><b>GitLab</b></span></a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<!--<hr class="section-divider">
|
||||
|
||||
<section id="network" class="container content-section text-center">
|
||||
<div class="row">
|
||||
<div class="col-lg-8 col-lg-offset-2">
|
||||
<h2>The ENPaul Network</h2>
|
||||
<i class="fa fa-sitemap fa-5x" aria-hidden="true"></i>
|
||||
<br><br>
|
||||
<p>
|
||||
The ENPaul Network (ENPN) is a <a href="https://www.reddit.com/r/homelab/">home-lab environment</a> maintained by ENPaul for the purposes of fun, curiosity, experimentation, and support for his <a href="#projects">personal projects</a>.
|
||||
<br><br>
|
||||
The ENPN hosts two VMWare ESXi hypervisors, a Microsoft Active Directory Domain, federated authentication services including LDAP and RADIUS, NAS systems, and a plethora of applications and utilities.
|
||||
</p>
|
||||
<ul class="list-inline banner-social-buttons">
|
||||
<li>
|
||||
<a href="/network" class="btn btn-default btn-lg"><i class="fa fa-arrow-circle-o-right"></i> <span class="network-name"><b>Learn More</b></span></a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</section>-->
|
||||
|
||||
<hr class="section-divider">
|
||||
|
||||
<section id="about" class="container content-section text-center">
|
||||
<div class="row">
|
||||
<div class="col-lg-8 col-lg-offset-2">
|
||||
<h2>About E.N.Paul</h2>
|
||||
<img id="logo_about" src="img\e-w.png" width="128">
|
||||
<br><br>
|
||||
<p>
|
||||
EN Paul is a Mechanical Engineering student at <a target="_blank" href="https://wpi.edu">Worcester Polytechnic Institute</a> in Worcester Massachusets with way too much time on his hands. He works at <a target="_blank" href="http://www.wpi.edu/+netops">WPI Network Operations</a>, plays around with <a target="_blank" href="http://www.solidworks.com">3DS SolidWorks</a>, and runs this website when he's bored.
|
||||
<br><br>
|
||||
He doesn't want donations, but asks that if you have a joke or funny story to share that you send it to him.
|
||||
<br>
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<footer>
|
||||
<div class="container text-center">
|
||||
<p style="color: #606060;"><i>©2017 E.N.Paul - 2017-11-29</i></p>
|
||||
</div>
|
||||
</footer>
|
||||
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1 @@
|
|||
The scss source files are available in the pro version.
|
1207
css/style.css
After Width: | Height: | Size: 8.8 KiB |
After Width: | Height: | Size: 1.0 MiB |
After Width: | Height: | Size: 1.4 MiB |
After Width: | Height: | Size: 585 KiB |
After Width: | Height: | Size: 190 KiB |
|
@ -0,0 +1 @@
|
|||
<?xml version="1.0" encoding="utf-8"?><svg width='80px' height='80px' xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100" preserveAspectRatio="xMidYMid" class="uil-ripple"><rect x="0" y="0" width="100" height="100" fill="none" class="bk"></rect><g> <animate attributeName="opacity" dur="2s" repeatCount="indefinite" begin="0s" keyTimes="0;0.33;1" values="1;1;0"></animate><circle cx="50" cy="50" r="40" stroke="#ebebeb" fill="none" stroke-width="3" stroke-linecap="round"><animate attributeName="r" dur="2s" repeatCount="indefinite" begin="0s" keyTimes="0;0.33;1" values="0;22;44"></animate></circle></g><g><animate attributeName="opacity" dur="2s" repeatCount="indefinite" begin="1s" keyTimes="0;0.33;1" values="1;1;0"></animate><circle cx="50" cy="50" r="40" stroke="#03C4EB" fill="none" stroke-width="3" stroke-linecap="round"><animate attributeName="r" dur="2s" repeatCount="indefinite" begin="1s" keyTimes="0;0.33;1" values="0;22;44"></animate></circle></g></svg>
|
After Width: | Height: | Size: 973 B |
348
index.html
|
@ -2,7 +2,7 @@
|
|||
<html lang="en">
|
||||
|
||||
<head>
|
||||
|
||||
<!-- Web crawler and search indexing meta -->
|
||||
<meta charset="utf-8"/>
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge"/>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||
|
@ -11,190 +11,238 @@
|
|||
<meta name="keywords" content="enpaul, network, operations, networking, plex, media, server, adds, active, directory, wpi, worcester, polytechnic, institute, boston, mechanical, engineering, solidworks, home, lab, homelab, solid, works, autocad, cad, domain, windows, server"/>
|
||||
<meta name="robots" content="index,follow"/>
|
||||
|
||||
<meta property="og:title" content="ENPaul"/>
|
||||
<meta property='og:locale' content="en_US"/>
|
||||
<meta property='og:description' content="ENPaul personal landing page and Network Services website"/>
|
||||
<meta property="og:type" content="Website"/>
|
||||
<meta property='og:site_name' content="ENPaul Network"/>
|
||||
<!-- Facebook integration meta -->
|
||||
<meta property="og:title" content="ENPaul Homepage"/>
|
||||
<meta property="og:url" content="https://enpaul.net/"/>
|
||||
<meta property='og:site_name' content="ENPN"/>
|
||||
<meta property="og:type" content="website"/>
|
||||
<meta property='og:locale' content="en_US"/>
|
||||
<meta property="og:image" content="https://enpaul.net/img/network.jpg"/>
|
||||
<meta property='og:description' content="Ethan Paul's personal landing page and overview website"/>
|
||||
|
||||
<!-- Twitter integration meta -->
|
||||
<meta name="twitter:card" content="summary">
|
||||
<meta name="twitter:site" content="@theenpaul">
|
||||
<meta name="twitter:title" content="ENPaul Homepage">
|
||||
<meta name="twitter:description" content="Ethan Paul's personal landing page and overview website">
|
||||
<meta name="twitter:image" content="https://enpaul.net/img/network.jpg">
|
||||
<meta name="twitter:image:alt" content="ENPN">
|
||||
|
||||
<!-- Page title and favicon definition -->
|
||||
<title>ENPaul</title>
|
||||
<link rel="shortcut icon" href="img/e-b.png">
|
||||
<link rel="apple-touch-icon" sizes="180x180" href="img/e-b.png">
|
||||
<link rel="icon" type="image/png" href="img/e-b.png" sizes="32x32">
|
||||
<link rel="icon" type="image/png" href="img/e-b.png" sizes="16x16">
|
||||
|
||||
<link rel="shortcut icon" href="img\e-b.png">
|
||||
<link href="css/bootstrap.css" rel="stylesheet">
|
||||
<link href="css/font-awesome.min.css" rel="stylesheet" type="text/css">
|
||||
<link href="css/hexagons.min.css" rel="stylesheet" type="text/css">
|
||||
<!-- CSS references -->
|
||||
<link href="css/bootstrap.min.css" rel="stylesheet">
|
||||
<link href="css/font-awesome.min.css" rel="stylesheet">
|
||||
<link href="css/animate.min.css" rel="stylesheet">
|
||||
<link href="css/hexagons.min.css" rel="stylesheet">
|
||||
<link href="css/style.css" rel="stylesheet">
|
||||
|
||||
<script src="js/jquery.js"></script>
|
||||
<script src="js/hexagons.min.js"></script>
|
||||
<script src="js/bootstrap.min.js"></script>
|
||||
<script src="js/jquery.easing.min.js"></script>
|
||||
<script src="js/common.js"></script>
|
||||
<!-- JavaScript references -->
|
||||
<script type="text/javascript" src="js/jquery.min.js"></script>
|
||||
<script type="text/javascript" src="js/bootstrap.min.js"></script>
|
||||
<script type="text/javascript" src="js/superfish.min.js"></script>
|
||||
<script type="text/javascript" src="js/morphext.min.js"></script>
|
||||
<script type="text/javascript" src="js/wow.min.js"></script>
|
||||
<script type="text/javascript" src="js/sticky.js"></script>
|
||||
<script type="text/javascript" src="js/easing.min.js"></script>
|
||||
<script type="text/javascript" src="js/custom.js"></script>
|
||||
|
||||
</head>
|
||||
|
||||
<body id="page-top" data-spy="scroll" data-target=".navbar-fixed-top">
|
||||
<body>
|
||||
<div id="preloader"></div>
|
||||
|
||||
<nav class="navbar navbar-custom navbar-fixed-top" role="navigation">
|
||||
<section id="top">
|
||||
<div class="top-container">
|
||||
<div class="wow fadeIn">
|
||||
<div class="hero-logo">
|
||||
<img class="" src="img/e-w.png" alt="ENPaul">
|
||||
</div>
|
||||
|
||||
<h1>Ethan N. Paul</h1>
|
||||
<h2>Engineer, tinkerer, and <span class="rotating">student, designer, mechanic, handyman, hiker, developer, traveler, kayaker, swimmer, programmer, debugger</span></h2>
|
||||
<div class="actions">
|
||||
<a href="#about" class="btn-services">About</a>
|
||||
<a href="#network" class="btn-services">Network</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<header id="header">
|
||||
<div class="container">
|
||||
<div class="navbar-header">
|
||||
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-main-collapse">
|
||||
<span class="light">MENU</span><!--<i class="fa fa-bars"></i>-->
|
||||
</button>
|
||||
<a class="navbar-brand page-scroll" href="#page-top"><span class="light"><img src="img/e-w.png" width="32"> Home</span></a>
|
||||
|
||||
<div id="logo" class="pull-left">
|
||||
<a href="#top"><img src="img/e-w.png" alt="ENPaul" title="" /></img></a>
|
||||
</div>
|
||||
<div class="collapse navbar-collapse navbar-right navbar-main-collapse">
|
||||
<ul class="nav navbar-nav">
|
||||
<li class="hidden"><a href="#page-top"></a></li>
|
||||
<!--<li><a class="page-scroll" href="#projects">Projects</a></li>-->
|
||||
<li><a class="page-scroll" href="#services">Services</a></li>
|
||||
<!--<li><a class="page-scroll" href="#network">Network</a></li>-->
|
||||
<li><a class="page-scroll" href="#about">About</a></li>
|
||||
|
||||
<nav id="nav-menu-container">
|
||||
<ul class="nav-menu">
|
||||
<li><a href="#about">About</a></li>
|
||||
<li><a href="#contact">Contact</a></li>
|
||||
<li><a href="#network">Network</a>
|
||||
<li><a target="_blank" href="https://docs.enpaul.net/">Docs</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</nav>
|
||||
|
||||
<header class="intro">
|
||||
<div class="intro-body">
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
<div class="col-md-8 col-md-offset-2">
|
||||
<h1 class="brand-heading">
|
||||
<img class="heading_large" style="max-width: 512px;" src="img/logo.png"/>
|
||||
<img class="heading_small" style="max-width: 128px;" src="img/e-w.png"/>
|
||||
</h1>
|
||||
<hr>
|
||||
<p>Student - Tinkerer - Programmer - <i style="color: #808080;">(aspiring)</i> Engineer</p>
|
||||
<hr>
|
||||
<ul class="list-inline">
|
||||
<li>
|
||||
<a href="mailto:enpaul@enpaul.net"><span class="hb hb-sm"><i class="fa fa-envelope-o"></i></span></a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="https://download.enpaul.net/enpaul-resume.pdf" target="_blank"><span class="hb hb-sm"><i class="fa fa-file-text-o"></i></span></a>
|
||||
</li>
|
||||
<li>
|
||||
<a target="_blank" href="https://twitter.com/theenpaul"><span class="hb hb-sm"><i class="fa fa-twitter"></i></span></a>
|
||||
</li>
|
||||
<li>
|
||||
<a target="_blank" href="https://plus.google.com/+EthanPaul42"><span class="hb hb-sm"><i class="fa fa-google-plus"></i></span></a>
|
||||
</li>
|
||||
<li>
|
||||
<a target="_blank" href="https://www.linkedin.com/in/enpaul"><span class="hb hb-sm"><i class="fa fa-linkedin"></i></span></a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</header>
|
||||
|
||||
<!--<hr class="section-divider">
|
||||
|
||||
<section id="projects" class="container content-section text-center">
|
||||
<section id="about">
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
<div class="col-lg-8 col-lg-offset-2">
|
||||
<h2>Personal Projects</h2>
|
||||
<i class="fa fa-folder-open fa-5x" aria-hidden="true"></i>
|
||||
<br><br>
|
||||
<p>
|
||||
The underlying infrastructure of the ENPaul Network (ENPN) helps to facilitate a number of pet-projects that are constantly cycled from under development, to abandoned, to broken, and back to under development. These projects are, at best, curiosities and should be seen as such.
|
||||
<br>
|
||||
Enter at your own risk.
|
||||
<br>
|
||||
</p>
|
||||
<ul class="list-inline banner-social-buttons">
|
||||
<li>
|
||||
<a href="/network" class="btn btn-default btn-lg"><i class="fa fa-arrow-circle-o-right"></i> <span class="network-name"><b>Learn More</b></span></a>
|
||||
</li>
|
||||
</ul>
|
||||
<div class="col-md-12">
|
||||
<h3 class="section-title">About</h3>
|
||||
<div class="section-title-divider"></div>
|
||||
<p class="section-description">Hello, and welcome to my website!</p>
|
||||
</div>
|
||||
</div>
|
||||
</section>-->
|
||||
|
||||
<hr class="section-divider">
|
||||
|
||||
<section id="services" class="container content-section text-center">
|
||||
</div>
|
||||
<div class="container about-container">
|
||||
<div class="row">
|
||||
<div class="col-lg-8 col-lg-offset-2">
|
||||
<h2>Network Services</h2>
|
||||
<i class="fa fa-cogs fa-5x" aria-hidden="true"></i>
|
||||
<br><br>
|
||||
<p>
|
||||
Providing useful network services is the primary goal of the ENPaul Network (ENPN). These services provide means of entertainment, data management, and security for the network users.
|
||||
<br><br>
|
||||
The full list of services provided by the ENPN can be found at the link below. Alternatively, use one of the other links to directly access specific service web-interfaces.
|
||||
<br>
|
||||
<div class="col-md-6">
|
||||
<img class="about-portrait" src="img/e-w.png" alt="Ethan N. Paul"/>
|
||||
</div>
|
||||
<div class="col-md-6">
|
||||
<h2 class="about-title">Who I Am</h2>
|
||||
<p class="about-text">
|
||||
My name is Ethan Paul, and I am an engineering student at <a target="_blank" href="https://www.wpi.edu/">Worcester Polytechnic Institute</a> studying <a href="https://www.wpi.edu/academics/departments/mechanical-engineering">Mechanical Engineering</a>. I am an avid outdoorsman, a former Boy Scout, and can make a mean omlette (if I do say so myself). I'm also a <a target="_blank" href="http://www.diabetes.org/diabetes-basics/type-1/">Type 1 Diabetic</a> working on joining the <a target="_blank" href="https://diyps.org/">DIY Pancreas</a> and <a target="_blank" href="http://www.openomni.org/">OpenOmni</a> projects.
|
||||
</p>
|
||||
<ul class="list-inline banner-social-buttons">
|
||||
<li>
|
||||
<a href="/services" class="btn btn-default btn-lg"><i class="fa fa-arrow-circle-o-right"></i> <span class="network-name"><b>Learn More</b></span></a>
|
||||
</li>
|
||||
<br><br><p><i>Direct service links</i></p>
|
||||
<li>
|
||||
<a href="https://plex.enpaul.net" class="btn btn-default btn-lg"><i class="fa fa-ticket"></i> <span class="network-name"><b>Plex Media Server</b></span></a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="https://enpaul.net/services/vpn" class="btn btn-default btn-lg"><i class="fa fa-lock"></i> <span class="network-name"><b>VPN</b></span></a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="https://storage.enpaul.net" class="btn btn-default btn-lg"><i class="fa fa-cloud"></i> <span class="network-name"><b>Storage</b></span></a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="https://gitlab.enpaul.net" class="btn btn-default btn-lg"><i class="fa fa-gitlab"></i> <span class="network-name"><b>GitLab</b></span></a>
|
||||
</li>
|
||||
</ul>
|
||||
<h2 class="about-title">What I Do</h2>
|
||||
<p class="about-text">
|
||||
I do lots of things! I work at <a target="_blank" href="https://web.wpi.edu/academics/CCC/Netops/">WPI Network Operations</a> and spent three years as an intern for the <a href="http://www.solidworks.com/">SolidWorks Corporation</a>. I also enjoy programming, fixing my aging car, urban and trail hiking, and squeezing extra life out of decrepit technology.
|
||||
</p>
|
||||
<h2 class="about-title">My Network</h2>
|
||||
<p class="about-text">
|
||||
The ENPaul Network is a <a target="_blank" href="https://www.reddit.com/r/homelab/">homelab</a> environment designed, created, and maintained by me. To be clear: the things I do with my servers are completely unnecessary and wholly ridiculous, but I do them anyway because they're fun! See the <a href="#network">Network Section</a> to learn more.
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<!--<hr class="section-divider">
|
||||
|
||||
<section id="network" class="container content-section text-center">
|
||||
<section id="contact">
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
<div class="col-lg-8 col-lg-offset-2">
|
||||
<h2>The ENPaul Network</h2>
|
||||
<i class="fa fa-sitemap fa-5x" aria-hidden="true"></i>
|
||||
<br><br>
|
||||
<p>
|
||||
The ENPaul Network (ENPN) is a <a href="https://www.reddit.com/r/homelab/">home-lab environment</a> maintained by ENPaul for the purposes of fun, curiosity, experimentation, and support for his <a href="#projects">personal projects</a>.
|
||||
<br><br>
|
||||
The ENPN hosts two VMWare ESXi hypervisors, a Microsoft Active Directory Domain, federated authentication services including LDAP and RADIUS, NAS systems, and a plethora of applications and utilities.
|
||||
</p>
|
||||
<ul class="list-inline banner-social-buttons">
|
||||
<li>
|
||||
<a href="/network" class="btn btn-default btn-lg"><i class="fa fa-arrow-circle-o-right"></i> <span class="network-name"><b>Learn More</b></span></a>
|
||||
</li>
|
||||
<div class="col-md-12">
|
||||
<h3 class="section-title">Contact Me</h3>
|
||||
<div class="section-title-divider"></div>
|
||||
<p class="section-description">Send me an email at <a href="mailto:enpaul@enpaul.net">enpaul@enpaul.net</a> or feel free to <a href="https://download.enpaul.net/enpaul-resume.pdf" target="_blank">download my résumé</a>.</p>
|
||||
<ul class="list-inline">
|
||||
<li><a target="_blank" href="https://download.enpaul.net/enpaul-resume.pdf"><span class="hb hb-sm hb-resume" title="Download Resume"><i class="fa fa-file-text"></i></span></a></li>
|
||||
<li><a href="mailto:enpaul@enpaul.net"><span class="hb hb-sm hb-email" title="EMail enpaul@enpaul.net"><i class="fa fa-envelope"></i></span></a></li>
|
||||
<li><a target="_blank" href="https://www.linkedin.com/in/enpaul"><span class="hb hb-sm hb-linkedin" title="LinkedIn ENPaul"><i class="fa fa-linkedin"></i></span></a></li>
|
||||
<li><a target="_blank" href="https://plus.google.com/+EthanPaul42"><span class="hb hb-sm hb-google-plus" title="Google+ EthanPaul42"><i class="fa fa-google-plus"></i></span></a></li>
|
||||
<li><a target="_blank" href="https://twitter.com/theenpaul"><span class="hb hb-sm hb-twitter" title="Twitter @theENPaul"><i class="fa fa-twitter"></i></span></a></li>
|
||||
<li><a target="_blank" href="https://www.instagram.com/theenpaul"><span class="hb hb-sm hb-instagram" title="Instagram @theENPaul"><i class="fa fa-instagram"></i></span></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</section>-->
|
||||
|
||||
<hr class="section-divider">
|
||||
|
||||
<section id="about" class="container content-section text-center">
|
||||
<div class="row">
|
||||
<div class="col-lg-8 col-lg-offset-2">
|
||||
<h2>About E.N.Paul</h2>
|
||||
<img id="logo_about" src="img\e-w.png" width="128">
|
||||
<br><br>
|
||||
<p>
|
||||
EN Paul is a Mechanical Engineering student at <a target="_blank" href="https://wpi.edu">Worcester Polytechnic Institute</a> in Worcester Massachusets with way too much time on his hands. He works at <a target="_blank" href="http://www.wpi.edu/+netops">WPI Network Operations</a>, plays around with <a target="_blank" href="http://www.solidworks.com">3DS SolidWorks</a>, and runs this website when he's bored.
|
||||
<br><br>
|
||||
He doesn't want donations, but asks that if you have a joke or funny story to share that you send it to him.
|
||||
<br>
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<footer>
|
||||
<div class="container text-center">
|
||||
<p style="color: #606060;"><i>©2017 E.N.Paul - 2017-11-29</i></p>
|
||||
<section id="network">
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
<div class="col-md-12">
|
||||
<h3 class="section-title">Network Services</h3>
|
||||
<div class="section-title-divider"></div>
|
||||
<p class="section-description">The ENPaul Network provides a number of services for entertainment, reference, security, and productivity.<br>To learn more about the network as a whole, please <a href="https://docs.enpaul.net/" target="_blank">read the docs</a>.</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row">
|
||||
<div class="col-md-4 service-item">
|
||||
<div class="service-icon-no-link"><i class="fa fa-sitemap"></i></div>
|
||||
<h4 class="service-title">Active Directory</h4>
|
||||
<p class="service-description"><a href="https://docs.microsoft.com/en-us/windows-server/identity/ad-ds/get-started/virtual-dc/active-directory-domain-services-overview" target="_blank">Active Directory Domain Services (ADDS)</a> provides federated user authentication, administration, and security for my computers.</p>
|
||||
<div class="service-link">
|
||||
<a class="btn btn-default" href="https://docs.enpaul.net/adds/"><i class="fa fa-book"></i> Docs</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-4 service-item">
|
||||
<div class="service-icon-no-link"><i class="fa fa-key"></i></div>
|
||||
<h4 class="service-title">VPN</h4>
|
||||
<p class="service-description">The Virtual Private Networking (VPN) server, powered by <a href="http://www.softether.org/" target="_blank">Softether</a>, allows me to secure my network traffic from anywhere in the world.</p>
|
||||
<div class="service-link">
|
||||
<a class=" btn btn-default" href="https://docs.enpaul.net/app/vpn/"><i class="fa fa-book"></i> Docs</a>
|
||||
<a class=" btn btn-default" href="https://docs.enpaul.net/app/vpn/connect/"><i class="fa fa-book"></i> Connect</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-4 service-item">
|
||||
<a href="https://storage.enpaul.net/"><div class="service-icon"><i class="fa fa-cloud"></i></div></a>
|
||||
<h4 class="service-title">Cloud Storage</h4>
|
||||
<p class="service-description">Local cloud storage allows for secure storage of my data. Online access is provided by the <a href="https://github.com/misterunknown/ifm" target="_blank">Improved File Manager</a> and <a href="http://adamwhitcroft.com/apaxy/" target="_blank">Apaxy</a>.</p>
|
||||
<div class="service-link">
|
||||
<a class=" btn btn-default" href="https://docs.enpaul.net/app/storage/"><i class="fa fa-book"></i> Docs</a>
|
||||
<a class=" btn btn-default" href="https://storage.enpaul.net/"><i class="fa fa-chevron-right"></i> Storage</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-4 service-item">
|
||||
<a href="https://gitlab.enpaul.net/"><div class="service-icon"><i class="fa fa-gitlab"></i></div></a>
|
||||
<h4 class="service-title">GitLab</h4>
|
||||
<p class="service-description"><a href="https://about.gitlab.com/" target="_blank">GitLab</a> is a <a href="https://git-scm.com/book/en/v2/Getting-Started-About-Version-Control" target="_blank">git-based source control</a> service for collaborative project development and deployment.</p>
|
||||
<div class="service-link">
|
||||
<a class=" btn btn-default" href="https://docs.enpaul.net/app/gitlab/"><i class="fa fa-book"></i> Docs</a>
|
||||
<a class=" btn btn-default" href="https://gitlab.enpaul.net/"><i class="fa fa-chevron-right"></i> GitLab</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-4 service-item">
|
||||
<a href="https://docs.enpaul.net/"><div class="service-icon"><i class="fa fa-book"></i></div></a>
|
||||
<h4 class="service-title">Documentation</h4>
|
||||
<p class="service-description">Any system is only as good as its documentation. My docs, powered by <a href="http://www.mkdocs.org/" target="_blank">MkDocs</a>, are constantly being updated.</p>
|
||||
<div class="service-link">
|
||||
<a class=" btn btn-default" href="https://docs.enpaul.net/app/docs-meta/"><i class="fa fa-book"></i> Docs (Meta)</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-4 service-item">
|
||||
<a href="https://plex.enpaul.net/"><div class="service-icon"><i class="fa fa-film"></i></div></a>
|
||||
<h4 class="service-title">Plex Media Server</h4>
|
||||
<p class="service-description"><a href="https://www.plex.tv/" target="_blank">Plex</a> is a media management solution for sharing my movie, TV, music, and photo collections with friends.</p>
|
||||
<div class="service-link">
|
||||
<a class=" btn btn-default" href="https://docs.enpaul.net/app/plex/"><i class="fa fa-book"></i> Docs</a>
|
||||
<a class=" btn btn-default" href="https://plex.enpaul.net/"><i class="fa fa-chevron-right"></i> Plex</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section id="status">
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
<div class="col-md-8">
|
||||
<h3 class="status-title">Service Status</h3>
|
||||
<p class="status-text">Having trouble accessing a network service? Soon you'll be able to check my network's status online and let me know if there are problems!</p>
|
||||
</div>
|
||||
<div class="col-md-4 status-btn-container">
|
||||
<a class="status-btn" href="#status">Coming Soon!</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<footer id="footer">
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
<div class="col-md-12">
|
||||
<div class="copyright">
|
||||
©2018 <strong>Ethan N. Paul</strong>. All Rights Reserved
|
||||
</div>
|
||||
<div class="copyright">
|
||||
<a href="https://gitlab.enpaul.net/enpaul/ENPaulNetHome"><strong><i class="fa fa-gitlab fa-lg"></i> </strong></a><a href="https://gitlab.enpaul.net/enpaul/ENPaulNetHome/commits/master"><img alt="pipeline status" src="https://gitlab.enpaul.net/enpaul/ENPaulNetHome/badges/master/pipeline.svg" /></a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</footer>
|
||||
|
||||
<a href="#top" class="back-to-top"><span title="Back to top"><i class="fa fa-chevron-up"></i></span></a>
|
||||
|
||||
</body>
|
||||
|
||||
</html>
|
||||
|
|
|
@ -0,0 +1,112 @@
|
|||
jQuery(document).ready(function( $ ) {
|
||||
|
||||
//alert("You're the 1000th visitor!!!!");
|
||||
|
||||
// Preloader
|
||||
$(window).on('load', function() {
|
||||
$('#preloader').delay(100).fadeOut('slow',function(){$(this).remove();});
|
||||
});
|
||||
|
||||
// Hero rotating texts
|
||||
$("#top .rotating").Morphext({
|
||||
animation: "flipInX",
|
||||
separator: ",",
|
||||
speed: 3000
|
||||
});
|
||||
|
||||
// Initiate the wowjs
|
||||
new WOW().init();
|
||||
|
||||
// Initiate superfish on nav menu
|
||||
$('.nav-menu').superfish({
|
||||
animation: {opacity:'show'},
|
||||
speed: 400
|
||||
});
|
||||
|
||||
// Mobile Navigation
|
||||
if( $('#nav-menu-container').length ) {
|
||||
var $mobile_nav = $('#nav-menu-container').clone().prop({ id: 'mobile-nav'});
|
||||
$mobile_nav.find('> ul').attr({ 'class' : '', 'id' : '' });
|
||||
$('body').append( $mobile_nav );
|
||||
$('body').prepend( '<button type="button" id="mobile-nav-toggle"><i class="fa fa-bars"></i></button>' );
|
||||
$('body').append( '<div id="mobile-body-overly"></div>' );
|
||||
$('#mobile-nav').find('.menu-has-children').prepend('<i class="fa fa-chevron-down"></i>');
|
||||
|
||||
$(document).on('click', '.menu-has-children i', function(e){
|
||||
$(this).next().toggleClass('menu-item-active');
|
||||
$(this).nextAll('ul').eq(0).slideToggle();
|
||||
$(this).toggleClass("fa-chevron-up fa-chevron-down");
|
||||
});
|
||||
|
||||
$(document).on('click', '#mobile-nav-toggle', function(e){
|
||||
$('body').toggleClass('mobile-nav-active');
|
||||
$('#mobile-nav-toggle i').toggleClass('fa-times fa-bars');
|
||||
$('#mobile-body-overly').toggle();
|
||||
});
|
||||
|
||||
$(document).click(function (e) {
|
||||
var container = $("#mobile-nav, #mobile-nav-toggle");
|
||||
if (!container.is(e.target) && container.has(e.target).length === 0) {
|
||||
if ( $('body').hasClass('mobile-nav-active') ) {
|
||||
$('body').removeClass('mobile-nav-active');
|
||||
$('#mobile-nav-toggle i').toggleClass('fa-times fa-bars');
|
||||
$('#mobile-body-overly').fadeOut();
|
||||
}
|
||||
}
|
||||
});
|
||||
} else if ( $("#mobile-nav, #mobile-nav-toggle").length ) {
|
||||
$("#mobile-nav, #mobile-nav-toggle").hide();
|
||||
}
|
||||
|
||||
// Stick the header at top on scroll
|
||||
$("#header").sticky({topSpacing:0, zIndex: '50'});
|
||||
|
||||
// Smoth scroll on page hash links
|
||||
$('a[href*="#"]:not([href="#"])').on('click', function() {
|
||||
if (location.pathname.replace(/^\//,'') == this.pathname.replace(/^\//,'') && location.hostname == this.hostname) {
|
||||
var target = $(this.hash);
|
||||
if (target.length) {
|
||||
|
||||
var top_space = 0;
|
||||
|
||||
if( $('#header').length ) {
|
||||
top_space = $('#header').outerHeight();
|
||||
}
|
||||
|
||||
$('html, body').animate({
|
||||
scrollTop: target.offset().top - top_space
|
||||
}, 1500, 'easeInOutExpo');
|
||||
|
||||
if ( $(this).parents('.nav-menu').length ) {
|
||||
$('.nav-menu .menu-active').removeClass('menu-active');
|
||||
$(this).closest('li').addClass('menu-active');
|
||||
}
|
||||
|
||||
if ( $('body').hasClass('mobile-nav-active') ) {
|
||||
$('body').removeClass('mobile-nav-active');
|
||||
$('#mobile-nav-toggle i').toggleClass('fa-times fa-bars');
|
||||
$('#mobile-body-overly').fadeOut();
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
// Back to top button
|
||||
$(window).scroll(function() {
|
||||
|
||||
if ($(this).scrollTop() > 100) {
|
||||
$('.back-to-top').fadeIn('slow');
|
||||
} else {
|
||||
$('.back-to-top').fadeOut('slow');
|
||||
}
|
||||
|
||||
});
|
||||
|
||||
$('.back-to-top').click(function(){
|
||||
$('html, body').animate({scrollTop : 0},1500, 'easeInOutExpo');
|
||||
return false;
|
||||
});
|
||||
|
||||
});
|
|
@ -0,0 +1 @@
|
|||
(function(factory){if(typeof define==="function"&&define.amd){define(["jquery"],function($){return factory($)})}else if(typeof module==="object"&&typeof module.exports==="object"){exports=factory(require("jquery"))}else{factory(jQuery)}})(function($){$.easing["jswing"]=$.easing["swing"];var pow=Math.pow,sqrt=Math.sqrt,sin=Math.sin,cos=Math.cos,PI=Math.PI,c1=1.70158,c2=c1*1.525,c3=c1+1,c4=2*PI/3,c5=2*PI/4.5;function bounceOut(x){var n1=7.5625,d1=2.75;if(x<1/d1){return n1*x*x}else if(x<2/d1){return n1*(x-=1.5/d1)*x+.75}else if(x<2.5/d1){return n1*(x-=2.25/d1)*x+.9375}else{return n1*(x-=2.625/d1)*x+.984375}}$.extend($.easing,{def:"easeOutQuad",swing:function(x){return $.easing[$.easing.def](x)},easeInQuad:function(x){return x*x},easeOutQuad:function(x){return 1-(1-x)*(1-x)},easeInOutQuad:function(x){return x<.5?2*x*x:1-pow(-2*x+2,2)/2},easeInCubic:function(x){return x*x*x},easeOutCubic:function(x){return 1-pow(1-x,3)},easeInOutCubic:function(x){return x<.5?4*x*x*x:1-pow(-2*x+2,3)/2},easeInQuart:function(x){return x*x*x*x},easeOutQuart:function(x){return 1-pow(1-x,4)},easeInOutQuart:function(x){return x<.5?8*x*x*x*x:1-pow(-2*x+2,4)/2},easeInQuint:function(x){return x*x*x*x*x},easeOutQuint:function(x){return 1-pow(1-x,5)},easeInOutQuint:function(x){return x<.5?16*x*x*x*x*x:1-pow(-2*x+2,5)/2},easeInSine:function(x){return 1-cos(x*PI/2)},easeOutSine:function(x){return sin(x*PI/2)},easeInOutSine:function(x){return-(cos(PI*x)-1)/2},easeInExpo:function(x){return x===0?0:pow(2,10*x-10)},easeOutExpo:function(x){return x===1?1:1-pow(2,-10*x)},easeInOutExpo:function(x){return x===0?0:x===1?1:x<.5?pow(2,20*x-10)/2:(2-pow(2,-20*x+10))/2},easeInCirc:function(x){return 1-sqrt(1-pow(x,2))},easeOutCirc:function(x){return sqrt(1-pow(x-1,2))},easeInOutCirc:function(x){return x<.5?(1-sqrt(1-pow(2*x,2)))/2:(sqrt(1-pow(-2*x+2,2))+1)/2},easeInElastic:function(x){return x===0?0:x===1?1:-pow(2,10*x-10)*sin((x*10-10.75)*c4)},easeOutElastic:function(x){return x===0?0:x===1?1:pow(2,-10*x)*sin((x*10-.75)*c4)+1},easeInOutElastic:function(x){return x===0?0:x===1?1:x<.5?-(pow(2,20*x-10)*sin((20*x-11.125)*c5))/2:pow(2,-20*x+10)*sin((20*x-11.125)*c5)/2+1},easeInBack:function(x){return c3*x*x*x-c1*x*x},easeOutBack:function(x){return 1+c3*pow(x-1,3)+c1*pow(x-1,2)},easeInOutBack:function(x){return x<.5?pow(2*x,2)*((c2+1)*2*x-c2)/2:(pow(2*x-2,2)*((c2+1)*(x*2-2)+c2)+2)/2},easeInBounce:function(x){return 1-bounceOut(1-x)},easeOutBounce:bounceOut,easeInOutBounce:function(x){return x<.5?(1-bounceOut(1-2*x))/2:(1+bounceOut(2*x-1))/2}})});
|
|
@ -0,0 +1 @@
|
|||
/*! Morphext - v2.4.4 - 2015-05-21 */!function(a){"use strict";function b(b,c){this.element=a(b),this.settings=a.extend({},d,c),this._defaults=d,this._init()}var c="Morphext",d={animation:"bounceIn",separator:",",speed:2e3,complete:a.noop};b.prototype={_init:function(){var b=this;this.phrases=[],this.element.addClass("morphext"),a.each(this.element.text().split(this.settings.separator),function(c,d){b.phrases.push(a.trim(d))}),this.index=-1,this.animate(),this.start()},animate:function(){this.index=++this.index%this.phrases.length,this.element[0].innerHTML='<span class="animated '+this.settings.animation+'">'+this.phrases[this.index]+"</span>",a.isFunction(this.settings.complete)&&this.settings.complete.call(this)},start:function(){var a=this;this._interval=setInterval(function(){a.animate()},this.settings.speed)},stop:function(){this._interval=clearInterval(this._interval)}},a.fn[c]=function(d){return this.each(function(){a.data(this,"plugin_"+c)||a.data(this,"plugin_"+c,new b(this,d))})}}(jQuery);
|
|
@ -0,0 +1,287 @@
|
|||
// Sticky Plugin v1.0.4 for jQuery
|
||||
// =============
|
||||
// Author: Anthony Garand
|
||||
// Improvements by German M. Bravo (Kronuz) and Ruud Kamphuis (ruudk)
|
||||
// Improvements by Leonardo C. Daronco (daronco)
|
||||
// Created: 02/14/2011
|
||||
// Date: 07/20/2015
|
||||
// Website: http://stickyjs.com/
|
||||
// Description: Makes an element on the page stick on the screen as you scroll
|
||||
// It will only set the 'top' and 'position' of your element, you
|
||||
// might need to adjust the width in some cases.
|
||||
|
||||
(function (factory) {
|
||||
if (typeof define === 'function' && define.amd) {
|
||||
// AMD. Register as an anonymous module.
|
||||
define(['jquery'], factory);
|
||||
} else if (typeof module === 'object' && module.exports) {
|
||||
// Node/CommonJS
|
||||
module.exports = factory(require('jquery'));
|
||||
} else {
|
||||
// Browser globals
|
||||
factory(jQuery);
|
||||
}
|
||||
}(function ($) {
|
||||
var slice = Array.prototype.slice; // save ref to original slice()
|
||||
var splice = Array.prototype.splice; // save ref to original slice()
|
||||
|
||||
var defaults = {
|
||||
topSpacing: 0,
|
||||
bottomSpacing: 0,
|
||||
className: 'is-sticky',
|
||||
wrapperClassName: 'sticky-wrapper',
|
||||
center: false,
|
||||
getWidthFrom: '',
|
||||
widthFromWrapper: true, // works only when .getWidthFrom is empty
|
||||
responsiveWidth: false,
|
||||
zIndex: 'auto'
|
||||
},
|
||||
$window = $(window),
|
||||
$document = $(document),
|
||||
sticked = [],
|
||||
windowHeight = $window.height(),
|
||||
scroller = function() {
|
||||
var scrollTop = $window.scrollTop(),
|
||||
documentHeight = $document.height(),
|
||||
dwh = documentHeight - windowHeight,
|
||||
extra = (scrollTop > dwh) ? dwh - scrollTop : 0;
|
||||
|
||||
for (var i = 0, l = sticked.length; i < l; i++) {
|
||||
var s = sticked[i],
|
||||
elementTop = s.stickyWrapper.offset().top,
|
||||
etse = elementTop - s.topSpacing - extra;
|
||||
|
||||
//update height in case of dynamic content
|
||||
s.stickyWrapper.css('height', s.stickyElement.outerHeight());
|
||||
|
||||
if (scrollTop <= etse) {
|
||||
if (s.currentTop !== null) {
|
||||
s.stickyElement
|
||||
.css({
|
||||
'width': '',
|
||||
'position': '',
|
||||
'top': '',
|
||||
'z-index': ''
|
||||
});
|
||||
s.stickyElement.parent().removeClass(s.className);
|
||||
s.stickyElement.trigger('sticky-end', [s]);
|
||||
s.currentTop = null;
|
||||
}
|
||||
}
|
||||
else {
|
||||
var newTop = documentHeight - s.stickyElement.outerHeight()
|
||||
- s.topSpacing - s.bottomSpacing - scrollTop - extra;
|
||||
if (newTop < 0) {
|
||||
newTop = newTop + s.topSpacing;
|
||||
} else {
|
||||
newTop = s.topSpacing;
|
||||
}
|
||||
if (s.currentTop !== newTop) {
|
||||
var newWidth;
|
||||
if (s.getWidthFrom) {
|
||||
newWidth = $(s.getWidthFrom).width() || null;
|
||||
} else if (s.widthFromWrapper) {
|
||||
newWidth = s.stickyWrapper.width();
|
||||
}
|
||||
if (newWidth == null) {
|
||||
newWidth = s.stickyElement.width();
|
||||
}
|
||||
s.stickyElement
|
||||
.css('width', newWidth)
|
||||
.css('position', 'fixed')
|
||||
.css('top', newTop)
|
||||
.css('z-index', s.zIndex);
|
||||
|
||||
s.stickyElement.parent().addClass(s.className);
|
||||
|
||||
if (s.currentTop === null) {
|
||||
s.stickyElement.trigger('sticky-start', [s]);
|
||||
} else {
|
||||
// sticky is started but it have to be repositioned
|
||||
s.stickyElement.trigger('sticky-update', [s]);
|
||||
}
|
||||
|
||||
if (s.currentTop === s.topSpacing && s.currentTop > newTop || s.currentTop === null && newTop < s.topSpacing) {
|
||||
// just reached bottom || just started to stick but bottom is already reached
|
||||
s.stickyElement.trigger('sticky-bottom-reached', [s]);
|
||||
} else if(s.currentTop !== null && newTop === s.topSpacing && s.currentTop < newTop) {
|
||||
// sticky is started && sticked at topSpacing && overflowing from top just finished
|
||||
s.stickyElement.trigger('sticky-bottom-unreached', [s]);
|
||||
}
|
||||
|
||||
s.currentTop = newTop;
|
||||
}
|
||||
|
||||
// Check if sticky has reached end of container and stop sticking
|
||||
var stickyWrapperContainer = s.stickyWrapper.parent();
|
||||
var unstick = (s.stickyElement.offset().top + s.stickyElement.outerHeight() >= stickyWrapperContainer.offset().top + stickyWrapperContainer.outerHeight()) && (s.stickyElement.offset().top <= s.topSpacing);
|
||||
|
||||
if( unstick ) {
|
||||
s.stickyElement
|
||||
.css('position', 'absolute')
|
||||
.css('top', '')
|
||||
.css('bottom', 0)
|
||||
.css('z-index', '');
|
||||
} else {
|
||||
s.stickyElement
|
||||
.css('position', 'fixed')
|
||||
.css('top', newTop)
|
||||
.css('bottom', '')
|
||||
.css('z-index', s.zIndex);
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
resizer = function() {
|
||||
windowHeight = $window.height();
|
||||
|
||||
for (var i = 0, l = sticked.length; i < l; i++) {
|
||||
var s = sticked[i];
|
||||
var newWidth = null;
|
||||
if (s.getWidthFrom) {
|
||||
if (s.responsiveWidth) {
|
||||
newWidth = $(s.getWidthFrom).width();
|
||||
}
|
||||
} else if(s.widthFromWrapper) {
|
||||
newWidth = s.stickyWrapper.width();
|
||||
}
|
||||
if (newWidth != null) {
|
||||
s.stickyElement.css('width', newWidth);
|
||||
}
|
||||
}
|
||||
},
|
||||
methods = {
|
||||
init: function(options) {
|
||||
return this.each(function() {
|
||||
var o = $.extend({}, defaults, options);
|
||||
var stickyElement = $(this);
|
||||
|
||||
var stickyId = stickyElement.attr('id');
|
||||
var wrapperId = stickyId ? stickyId + '-' + defaults.wrapperClassName : defaults.wrapperClassName;
|
||||
var wrapper = $('<div></div>')
|
||||
.attr('id', wrapperId)
|
||||
.addClass(o.wrapperClassName);
|
||||
|
||||
stickyElement.wrapAll(function() {
|
||||
if ($(this).parent("#" + wrapperId).length == 0) {
|
||||
return wrapper;
|
||||
}
|
||||
});
|
||||
|
||||
var stickyWrapper = stickyElement.parent();
|
||||
|
||||
if (o.center) {
|
||||
stickyWrapper.css({width:stickyElement.outerWidth(),marginLeft:"auto",marginRight:"auto"});
|
||||
}
|
||||
|
||||
if (stickyElement.css("float") === "right") {
|
||||
stickyElement.css({"float":"none"}).parent().css({"float":"right"});
|
||||
}
|
||||
|
||||
o.stickyElement = stickyElement;
|
||||
o.stickyWrapper = stickyWrapper;
|
||||
o.currentTop = null;
|
||||
|
||||
sticked.push(o);
|
||||
|
||||
methods.setWrapperHeight(this);
|
||||
methods.setupChangeListeners(this);
|
||||
});
|
||||
},
|
||||
|
||||
setWrapperHeight: function(stickyElement) {
|
||||
var element = $(stickyElement);
|
||||
var stickyWrapper = element.parent();
|
||||
if (stickyWrapper) {
|
||||
stickyWrapper.css('height', element.outerHeight());
|
||||
}
|
||||
},
|
||||
|
||||
setupChangeListeners: function(stickyElement) {
|
||||
if (window.MutationObserver) {
|
||||
var mutationObserver = new window.MutationObserver(function(mutations) {
|
||||
if (mutations[0].addedNodes.length || mutations[0].removedNodes.length) {
|
||||
methods.setWrapperHeight(stickyElement);
|
||||
}
|
||||
});
|
||||
mutationObserver.observe(stickyElement, {subtree: true, childList: true});
|
||||
} else {
|
||||
if (window.addEventListener) {
|
||||
stickyElement.addEventListener('DOMNodeInserted', function() {
|
||||
methods.setWrapperHeight(stickyElement);
|
||||
}, false);
|
||||
stickyElement.addEventListener('DOMNodeRemoved', function() {
|
||||
methods.setWrapperHeight(stickyElement);
|
||||
}, false);
|
||||
} else if (window.attachEvent) {
|
||||
stickyElement.attachEvent('onDOMNodeInserted', function() {
|
||||
methods.setWrapperHeight(stickyElement);
|
||||
});
|
||||
stickyElement.attachEvent('onDOMNodeRemoved', function() {
|
||||
methods.setWrapperHeight(stickyElement);
|
||||
});
|
||||
}
|
||||
}
|
||||
},
|
||||
update: scroller,
|
||||
unstick: function(options) {
|
||||
return this.each(function() {
|
||||
var that = this;
|
||||
var unstickyElement = $(that);
|
||||
|
||||
var removeIdx = -1;
|
||||
var i = sticked.length;
|
||||
while (i-- > 0) {
|
||||
if (sticked[i].stickyElement.get(0) === that) {
|
||||
splice.call(sticked,i,1);
|
||||
removeIdx = i;
|
||||
}
|
||||
}
|
||||
if(removeIdx !== -1) {
|
||||
unstickyElement.unwrap();
|
||||
unstickyElement
|
||||
.css({
|
||||
'width': '',
|
||||
'position': '',
|
||||
'top': '',
|
||||
'float': '',
|
||||
'z-index': ''
|
||||
})
|
||||
;
|
||||
}
|
||||
});
|
||||
}
|
||||
};
|
||||
|
||||
// should be more efficient than using $window.scroll(scroller) and $window.resize(resizer):
|
||||
if (window.addEventListener) {
|
||||
window.addEventListener('scroll', scroller, false);
|
||||
window.addEventListener('resize', resizer, false);
|
||||
} else if (window.attachEvent) {
|
||||
window.attachEvent('onscroll', scroller);
|
||||
window.attachEvent('onresize', resizer);
|
||||
}
|
||||
|
||||
$.fn.sticky = function(method) {
|
||||
if (methods[method]) {
|
||||
return methods[method].apply(this, slice.call(arguments, 1));
|
||||
} else if (typeof method === 'object' || !method ) {
|
||||
return methods.init.apply( this, arguments );
|
||||
} else {
|
||||
$.error('Method ' + method + ' does not exist on jQuery.sticky');
|
||||
}
|
||||
};
|
||||
|
||||
$.fn.unstick = function(method) {
|
||||
if (methods[method]) {
|
||||
return methods[method].apply(this, slice.call(arguments, 1));
|
||||
} else if (typeof method === 'object' || !method ) {
|
||||
return methods.unstick.apply( this, arguments );
|
||||
} else {
|
||||
$.error('Method ' + method + ' does not exist on jQuery.sticky');
|
||||
}
|
||||
};
|
||||
$(function() {
|
||||
setTimeout(scroller, 0);
|
||||
});
|
||||
}));
|
|
@ -0,0 +1,10 @@
|
|||
/*
|
||||
* jQuery Superfish Menu Plugin - v1.7.9
|
||||
* Copyright (c) 2016 Joel Birch
|
||||
*
|
||||
* Dual licensed under the MIT and GPL licenses:
|
||||
* http://www.opensource.org/licenses/mit-license.php
|
||||
* http://www.gnu.org/licenses/gpl.html
|
||||
*/
|
||||
|
||||
;!function(a,b){"use strict";var c=function(){var c={bcClass:"sf-breadcrumb",menuClass:"sf-js-enabled",anchorClass:"sf-with-ul",menuArrowClass:"sf-arrows"},d=function(){var b=/^(?![\w\W]*Windows Phone)[\w\W]*(iPhone|iPad|iPod)/i.test(navigator.userAgent);return b&&a("html").css("cursor","pointer").on("click",a.noop),b}(),e=function(){var a=document.documentElement.style;return"behavior"in a&&"fill"in a&&/iemobile/i.test(navigator.userAgent)}(),f=function(){return!!b.PointerEvent}(),g=function(a,b,d){var e,f=c.menuClass;b.cssArrows&&(f+=" "+c.menuArrowClass),e=d?"addClass":"removeClass",a[e](f)},h=function(b,d){return b.find("li."+d.pathClass).slice(0,d.pathLevels).addClass(d.hoverClass+" "+c.bcClass).filter(function(){return a(this).children(d.popUpSelector).hide().show().length}).removeClass(d.pathClass)},i=function(a,b){var d=b?"addClass":"removeClass";a.children("a")[d](c.anchorClass)},j=function(a){var b=a.css("ms-touch-action"),c=a.css("touch-action");c=c||b,c="pan-y"===c?"auto":"pan-y",a.css({"ms-touch-action":c,"touch-action":c})},k=function(a){return a.closest("."+c.menuClass)},l=function(a){return k(a).data("sfOptions")},m=function(){var b=a(this),c=l(b);clearTimeout(c.sfTimer),b.siblings().superfish("hide").end().superfish("show")},n=function(b){b.retainPath=a.inArray(this[0],b.$path)>-1,this.superfish("hide"),this.parents("."+b.hoverClass).length||(b.onIdle.call(k(this)),b.$path.length&&a.proxy(m,b.$path)())},o=function(){var b=a(this),c=l(b);d?a.proxy(n,b,c)():(clearTimeout(c.sfTimer),c.sfTimer=setTimeout(a.proxy(n,b,c),c.delay))},p=function(b){var c=a(this),d=l(c),e=c.siblings(b.data.popUpSelector);return d.onHandleTouch.call(e)===!1?this:void(e.length>0&&e.is(":hidden")&&(c.one("click.superfish",!1),"MSPointerDown"===b.type||"pointerdown"===b.type?c.trigger("focus"):a.proxy(m,c.parent("li"))()))},q=function(b,c){var g="li:has("+c.popUpSelector+")";a.fn.hoverIntent&&!c.disableHI?b.hoverIntent(m,o,g):b.on("mouseenter.superfish",g,m).on("mouseleave.superfish",g,o);var h="MSPointerDown.superfish";f&&(h="pointerdown.superfish"),d||(h+=" touchend.superfish"),e&&(h+=" mousedown.superfish"),b.on("focusin.superfish","li",m).on("focusout.superfish","li",o).on(h,"a",c,p)};return{hide:function(b){if(this.length){var c=this,d=l(c);if(!d)return this;var e=d.retainPath===!0?d.$path:"",f=c.find("li."+d.hoverClass).add(this).not(e).removeClass(d.hoverClass).children(d.popUpSelector),g=d.speedOut;if(b&&(f.show(),g=0),d.retainPath=!1,d.onBeforeHide.call(f)===!1)return this;f.stop(!0,!0).animate(d.animationOut,g,function(){var b=a(this);d.onHide.call(b)})}return this},show:function(){var a=l(this);if(!a)return this;var b=this.addClass(a.hoverClass),c=b.children(a.popUpSelector);return a.onBeforeShow.call(c)===!1?this:(c.stop(!0,!0).animate(a.animation,a.speed,function(){a.onShow.call(c)}),this)},destroy:function(){return this.each(function(){var b,d=a(this),e=d.data("sfOptions");return e?(b=d.find(e.popUpSelector).parent("li"),clearTimeout(e.sfTimer),g(d,e),i(b),j(d),d.off(".superfish").off(".hoverIntent"),b.children(e.popUpSelector).attr("style",function(a,b){return b.replace(/display[^;]+;?/g,"")}),e.$path.removeClass(e.hoverClass+" "+c.bcClass).addClass(e.pathClass),d.find("."+e.hoverClass).removeClass(e.hoverClass),e.onDestroy.call(d),void d.removeData("sfOptions")):!1})},init:function(b){return this.each(function(){var d=a(this);if(d.data("sfOptions"))return!1;var e=a.extend({},a.fn.superfish.defaults,b),f=d.find(e.popUpSelector).parent("li");e.$path=h(d,e),d.data("sfOptions",e),g(d,e,!0),i(f,!0),j(d),q(d,e),f.not("."+c.bcClass).superfish("hide",!0),e.onInit.call(this)})}}}();a.fn.superfish=function(b,d){return c[b]?c[b].apply(this,Array.prototype.slice.call(arguments,1)):"object"!=typeof b&&b?a.error("Method "+b+" does not exist on jQuery.fn.superfish"):c.init.apply(this,arguments)},a.fn.superfish.defaults={popUpSelector:"ul,.sf-mega",hoverClass:"sfHover",pathClass:"overrideThisToUse",pathLevels:1,delay:800,animation:{opacity:"show"},animationOut:{opacity:"hide"},speed:"normal",speedOut:"fast",cssArrows:!0,disableHI:!1,onInit:a.noop,onBeforeShow:a.noop,onShow:a.noop,onBeforeHide:a.noop,onHide:a.noop,onIdle:a.noop,onDestroy:a.noop,onHandleTouch:a.noop}}(jQuery,window);
|
|
@ -0,0 +1,7 @@
|
|||
## Copyright 2018 Ethan Paul
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
|
||||
|
||||
**THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.**
|
11
web.config
|
@ -1,17 +1,6 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<configuration>
|
||||
<system.webServer>
|
||||
<rewrite>
|
||||
<rules>
|
||||
<rule name="Redirect to HTTPS" stopProcessing="false">
|
||||
<match url="(.*)" />
|
||||
<conditions>
|
||||
<add input="{HTTPS}" pattern="^OFF$" />
|
||||
</conditions>
|
||||
<action type="Redirect" url="https://{HTTP_HOST}/{R:1}" />
|
||||
</rule>
|
||||
</rules>
|
||||
</rewrite>
|
||||
<defaultDocument>
|
||||
<files>
|
||||
<clear />
|
||||
|
|