Initial commit
This commit is contained in:
commit
94d80b2bdf
42
README.md
Normal file
42
README.md
Normal file
@ -0,0 +1,42 @@
|
||||
# Academic Project Page Template
|
||||
This is an academic paper project page template.
|
||||
|
||||
|
||||
Example project pages built using this template are:
|
||||
- https://www.vision.huji.ac.il/deepsim/
|
||||
- https://www.vision.huji.ac.il/3d_ads/
|
||||
- https://www.vision.huji.ac.il/ssrl_ad/
|
||||
- https://www.vision.huji.ac.il/conffusion/
|
||||
|
||||
|
||||
## Start using the template
|
||||
To start using the template click on `Use this Template`.
|
||||
|
||||
The template uses html for controlling the content and css for controlling the style.
|
||||
To edit the websites contents edit the `index.html` file. It contains different HTML "building blocks", use whichever ones you need and comment out the rest.
|
||||
|
||||
## Components
|
||||
- Teaser video
|
||||
- Images Carousel
|
||||
- Youtube embedding
|
||||
- Video Carousel
|
||||
- PDF Poster
|
||||
- Bibtex citation
|
||||
|
||||
## Tips:
|
||||
- The `index.html` file contains comments instructing you what to replace, you should follow these comments.
|
||||
- The `meta` tags in the `index.html` file are used to provide metadata about your paper
|
||||
(e.g. helping search engine index the website, showing a preview image when sharing the website, etc.)
|
||||
- The resolution of images and videos can usually be around 1920-2048, there rarely a need for better resolution that take longer to load.
|
||||
- All the images and videos you use should be compressed to allow for fast loading of the website (and thus better indexing by search engines). For images, you can use [TinyPNG](https://tinypng.com), for videos you can need to find the tradeoff between size and quality.
|
||||
- When using large video files (larger than 10MB), it's better to use youtube for hosting the video as serving the video from the website can take time.
|
||||
- Using a tracker can help you analyze the traffic and see where users came from. [statcounter](https://statcounter.com) is a free, easy to use tracker that takes under 5 minutes to set up.
|
||||
- This project page can also be made into a github pages website.
|
||||
- Replace the favicon to one of your choosing (the default one is of the Hebrew University).
|
||||
- Suggestions, improvements and comments are welcome, simply open an issue or contact me. You can find my contact information at [https://pages.cs.huji.ac.il/eliahu-horwitz/](https://pages.cs.huji.ac.il/eliahu-horwitz/)
|
||||
|
||||
## Acknowledgments
|
||||
Parts of this project page were adopted from the [Nerfies](https://nerfies.github.io/) page.
|
||||
|
||||
## Website License
|
||||
<a rel="license" href="http://creativecommons.org/licenses/by-sa/4.0/"><img alt="Creative Commons License" style="border-width:0" src="https://i.creativecommons.org/l/by-sa/4.0/88x31.png" /></a><br />This work is licensed under a <a rel="license" href="http://creativecommons.org/licenses/by-sa/4.0/">Creative Commons Attribution-ShareAlike 4.0 International License</a>.
|
||||
312
index.html
Normal file
312
index.html
Normal file
@ -0,0 +1,312 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<!-- Meta tags for social media banners, these should be filled in appropriatly as they are your "business card" -->
|
||||
<!-- Replace the content tag with appropriate information -->
|
||||
<meta name="description" content="DESCRIPTION META TAG">
|
||||
<meta property="og:title" content="SOCIAL MEDIA TITLE TAG"/>
|
||||
<meta property="og:description" content="SOCIAL MEDIA DESCRIPTION TAG TAG"/>
|
||||
<meta property="og:url" content="URL OF THE WEBSITE"/>
|
||||
<!-- Path to banner image, should be in the path listed below. Optimal dimenssions are 1200X630-->
|
||||
<meta property="og:image" content="static/image/your_banner_image.png" />
|
||||
<meta property="og:image:width" content="1200"/>
|
||||
<meta property="og:image:height" content="630"/>
|
||||
|
||||
|
||||
<meta name="twitter:title" content="TWITTER BANNER TITLE META TAG">
|
||||
<meta name="twitter:description" content="TWITTER BANNER DESCRIPTION META TAG">
|
||||
<!-- Path to banner image, should be in the path listed below. Optimal dimenssions are 1200X600-->
|
||||
<meta name="twitter:image" content="static/images/your_twitter_banner_image.png">
|
||||
<meta name="twitter:card" content="summary_large_image">
|
||||
<!-- Keywords for your paper to be indexed by-->
|
||||
<meta name="keywords" content="KEYWORDS SHOULD BE PLACED HERE">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
|
||||
|
||||
<title>My Project Page Title</title>
|
||||
<link rel="icon" type="image/x-icon" href="static/images/favicon.ico">
|
||||
<link href="https://fonts.googleapis.com/css?family=Google+Sans|Noto+Sans|Castoro"
|
||||
rel="stylesheet">
|
||||
|
||||
<link rel="stylesheet" href="static/css/bulma.min.css">
|
||||
<link rel="stylesheet" href="static/css/bulma-carousel.min.css">
|
||||
<link rel="stylesheet" href="static/css/bulma-slider.min.css">
|
||||
<link rel="stylesheet" href="static/css/fontawesome.all.min.css">
|
||||
<link rel="stylesheet"
|
||||
href="https://cdn.jsdelivr.net/gh/jpswalsh/academicons@1/css/academicons.min.css">
|
||||
<link rel="stylesheet" href="static/css/index.css">
|
||||
|
||||
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
|
||||
<script src="https://documentcloud.adobe.com/view-sdk/main.js"></script>
|
||||
<script defer src="static/js/fontawesome.all.min.js"></script>
|
||||
<script src="static/js/bulma-carousel.min.js"></script>
|
||||
<script src="static/js/bulma-slider.min.js"></script>
|
||||
<script src="static/js/index.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
|
||||
<section class="hero">
|
||||
<div class="hero-body">
|
||||
<div class="container is-max-desktop">
|
||||
<div class="columns is-centered">
|
||||
<div class="column has-text-centered">
|
||||
<h1 class="title is-1 publication-title">My Project Page Title</h1>
|
||||
<div class="is-size-5 publication-authors">
|
||||
<!-- Paper authors -->
|
||||
<span class="author-block">
|
||||
<a href="FIRST AUTHOR PERSONAL LINK" target="_blank">First Author</a><sup>*</sup>,</span>
|
||||
<span class="author-block">
|
||||
<a href="SECOND AUTHOR PERSONAL LINK" target="_blank">Second Author</a><sup>*</sup>,</span>
|
||||
<span class="author-block">
|
||||
<a href="THIRD AUTHOR PERSONAL LINK" target="_blank">Third Author</a>
|
||||
</span>
|
||||
</div>
|
||||
|
||||
<div class="is-size-5 publication-authors">
|
||||
<span class="author-block">Institution Name<br>Conferance name and year</span>
|
||||
<span class="eql-cntrb"><small><br><sup>*</sup>Indicates Equal Contribution</small></span>
|
||||
</div>
|
||||
|
||||
<div class="column has-text-centered">
|
||||
<div class="publication-links">
|
||||
<!-- Arxiv PDF link -->
|
||||
<span class="link-block">
|
||||
<a href="https://arxiv.org/pdf/<ARXIV PAPER ID>.pdf" target="_blank"
|
||||
class="external-link button is-normal is-rounded is-dark">
|
||||
<span class="icon">
|
||||
<i class="fas fa-file-pdf"></i>
|
||||
</span>
|
||||
<span>Paper</span>
|
||||
</a>
|
||||
</span>
|
||||
|
||||
<!-- Supplementary PDF link -->
|
||||
<span class="link-block">
|
||||
<a href="static/pdfs/supplementary_material.pdf" target="_blank"
|
||||
class="external-link button is-normal is-rounded is-dark">
|
||||
<span class="icon">
|
||||
<i class="fas fa-file-pdf"></i>
|
||||
</span>
|
||||
<span>Supplementary</span>
|
||||
</a>
|
||||
</span>
|
||||
|
||||
<!-- Github link -->
|
||||
<span class="link-block">
|
||||
<a href="https://github.com/YOUR REPO HERE" target="_blank"
|
||||
class="external-link button is-normal is-rounded is-dark">
|
||||
<span class="icon">
|
||||
<i class="fab fa-github"></i>
|
||||
</span>
|
||||
<span>Code</span>
|
||||
</a>
|
||||
</span>
|
||||
|
||||
<!-- ArXiv abstract Link -->
|
||||
<span class="link-block">
|
||||
<a href="https://arxiv.org/abs/<ARXIV PAPER ID>" target="_blank"
|
||||
class="external-link button is-normal is-rounded is-dark">
|
||||
<span class="icon">
|
||||
<i class="ai ai-arxiv"></i>
|
||||
</span>
|
||||
<span>arXiv</span>
|
||||
</a>
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
|
||||
<!-- Teaser video-->
|
||||
<section class="hero teaser">
|
||||
<div class="container is-max-desktop">
|
||||
<div class="hero-body">
|
||||
<video poster="" id="tree" autoplay controls muted loop height="100%">
|
||||
<!-- Your video here -->
|
||||
<source src="static/videos/banner_video.mp4"
|
||||
type="video/mp4">
|
||||
</video>
|
||||
<h2 class="subtitle has-text-centered">
|
||||
Aliquam vitae elit ullamcorper tellus egestas pellentesque. Ut lacus tellus, maximus vel lectus at, placerat pretium mi. Maecenas dignissim tincidunt vestibulum. Sed consequat hendrerit nisl ut maximus.
|
||||
</h2>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
<!-- End teaser video -->
|
||||
|
||||
<!-- Paper abstract -->
|
||||
<section class="section hero is-light">
|
||||
<div class="container is-max-desktop">
|
||||
<div class="columns is-centered has-text-centered">
|
||||
<div class="column is-four-fifths">
|
||||
<h2 class="title is-3">Abstract</h2>
|
||||
<div class="content has-text-justified">
|
||||
<p>
|
||||
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Proin ullamcorper tellus sed ante aliquam tempus. Etiam porttitor urna feugiat nibh elementum, et tempor dolor mattis. Donec accumsan enim augue, a vulputate nisi sodales sit amet. Proin bibendum ex eget mauris cursus euismod nec et nibh. Maecenas ac gravida ante, nec cursus dui. Vivamus purus nibh, placerat ac purus eget, sagittis vestibulum metus. Sed vestibulum bibendum lectus gravida commodo. Pellentesque auctor leo vitae sagittis suscipit.
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
<!-- End paper abstract -->
|
||||
|
||||
|
||||
<!-- Image carousel -->
|
||||
<section class="hero is-small">
|
||||
<div class="hero-body">
|
||||
<div class="container">
|
||||
<div id="results-carousel" class="carousel results-carousel">
|
||||
<div class="item">
|
||||
<!-- Your image here -->
|
||||
<img src="static/images/carousel1.jpg" alt="MY ALT TEXT"/>
|
||||
<h2 class="subtitle has-text-centered">
|
||||
First image description.
|
||||
</h2>
|
||||
</div>
|
||||
<div class="item">
|
||||
<!-- Your image here -->
|
||||
<img src="static/images/carousel2.jpg" alt="MY ALT TEXT"/>
|
||||
<h2 class="subtitle has-text-centered">
|
||||
Second image description.
|
||||
</h2>
|
||||
</div>
|
||||
<div class="item">
|
||||
<!-- Your image here -->
|
||||
<img src="static/images/carousel3.jpg" alt="MY ALT TEXT"/>
|
||||
<h2 class="subtitle has-text-centered">
|
||||
Third image description.
|
||||
</h2>
|
||||
</div>
|
||||
<div class="item">
|
||||
<!-- Your image here -->
|
||||
<img src="static/images/carousel4.jpg" alt="MY ALT TEXT"/>
|
||||
<h2 class="subtitle has-text-centered">
|
||||
Fourth image description.
|
||||
</h2>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
<!-- End image carousel -->
|
||||
|
||||
|
||||
|
||||
|
||||
<!-- Youtube video -->
|
||||
<section class="hero is-small is-light">
|
||||
<div class="hero-body">
|
||||
<div class="container">
|
||||
<!-- Paper video. -->
|
||||
<h2 class="title is-3">Video Presentation</h2>
|
||||
<div class="columns is-centered has-text-centered">
|
||||
<div class="column is-four-fifths">
|
||||
|
||||
<div class="publication-video">
|
||||
<!-- Youtube embed code here -->
|
||||
<iframe src="https://www.youtube.com/embed/JkaxUblCGz0" frameborder="0" allow="autoplay; encrypted-media" allowfullscreen></iframe>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
<!-- End youtube video -->
|
||||
|
||||
|
||||
<!-- Video carousel -->
|
||||
<section class="hero is-small">
|
||||
<div class="hero-body">
|
||||
<div class="container">
|
||||
<h2 class="title is-3">Another Carousel</h2>
|
||||
<div id="results-carousel" class="carousel results-carousel">
|
||||
<div class="item item-video1">
|
||||
<video poster="" id="video1" autoplay controls muted loop height="100%">
|
||||
<!-- Your video file here -->
|
||||
<source src="static/videos/carousel1.mp4"
|
||||
type="video/mp4">
|
||||
</video>
|
||||
</div>
|
||||
<div class="item item-video2">
|
||||
<video poster="" id="video2" autoplay controls muted loop height="100%">
|
||||
<!-- Your video file here -->
|
||||
<source src="static/videos/carousel2.mp4"
|
||||
type="video/mp4">
|
||||
</video>
|
||||
</div>
|
||||
<div class="item item-video3">
|
||||
<video poster="" id="video3" autoplay controls muted loop height="100%">\
|
||||
<!-- Your video file here -->
|
||||
<source src="static/videos/carousel3.mp4"
|
||||
type="video/mp4">
|
||||
</video>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
<!-- End video carousel -->
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<!-- Paper poster -->
|
||||
<section class="hero is-small is-light">
|
||||
<div class="hero-body">
|
||||
<div class="container">
|
||||
<h2 class="title">Poster</h2>
|
||||
|
||||
<iframe src="static/pdfs/sample.pdf" width="100%" height="550">
|
||||
</iframe>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
<!--End paper poster -->
|
||||
|
||||
|
||||
<!--BibTex citation -->
|
||||
<section class="section" id="BibTeX">
|
||||
<div class="container is-max-desktop content">
|
||||
<h2 class="title">BibTeX</h2>
|
||||
<pre><code>BibTex Code Here</code></pre>
|
||||
</div>
|
||||
</section>
|
||||
<!--End BibTex citation -->
|
||||
|
||||
|
||||
<footer class="footer">
|
||||
<div class="container">
|
||||
<div class="columns is-centered">
|
||||
<div class="column is-8">
|
||||
<div class="content">
|
||||
|
||||
<p>
|
||||
This page was built using the <a href="https://github.com/eliahuhorwitz/Academic-project-page-template" target="_blank">Academic Project Page Template</a>.
|
||||
You are free to borrow the of this website, we just ask that you link back to this page in the footer. <br> This website is licensed under a <a rel="license" href="http://creativecommons.org/licenses/by-sa/4.0/" target="_blank">Creative
|
||||
Commons Attribution-ShareAlike 4.0 International License</a>.
|
||||
</p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</footer>
|
||||
|
||||
<!-- Statcounter tracking code -->
|
||||
|
||||
<!-- You can add a tracker to track page visits by creating an account at statcounter.com -->
|
||||
|
||||
<!-- End of Statcounter Code -->
|
||||
|
||||
</body>
|
||||
</html>
|
||||
1
static/css/bulma-carousel.min.css
vendored
Normal file
1
static/css/bulma-carousel.min.css
vendored
Normal file
@ -0,0 +1 @@
|
||||
@-webkit-keyframes spinAround{from{-webkit-transform:rotate(0);transform:rotate(0)}to{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@keyframes spinAround{from{-webkit-transform:rotate(0);transform:rotate(0)}to{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}.slider{position:relative;width:100%}.slider-container{display:flex;flex-wrap:nowrap;flex-direction:row;overflow:hidden;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0);min-height:100%}.slider-container.is-vertical{flex-direction:column}.slider-container .slider-item{flex:none}.slider-container .slider-item .image.is-covered img{-o-object-fit:cover;object-fit:cover;-o-object-position:center center;object-position:center center;height:100%;width:100%}.slider-container .slider-item .video-container{height:0;padding-bottom:0;padding-top:56.25%;margin:0;position:relative}.slider-container .slider-item .video-container.is-1by1,.slider-container .slider-item .video-container.is-square{padding-top:100%}.slider-container .slider-item .video-container.is-4by3{padding-top:75%}.slider-container .slider-item .video-container.is-21by9{padding-top:42.857143%}.slider-container .slider-item .video-container embed,.slider-container .slider-item .video-container iframe,.slider-container .slider-item .video-container object{position:absolute;top:0;left:0;width:100%!important;height:100%!important}.slider-navigation-next,.slider-navigation-previous{display:flex;justify-content:center;align-items:center;position:absolute;width:42px;height:42px;background:#fff center center no-repeat;background-size:20px 20px;border:1px solid #fff;border-radius:25091983px;box-shadow:0 2px 5px #3232321a;top:50%;margin-top:-20px;left:0;cursor:pointer;transition:opacity .3s,-webkit-transform .3s;transition:transform .3s,opacity .3s;transition:transform .3s,opacity .3s,-webkit-transform .3s}.slider-navigation-next:hover,.slider-navigation-previous:hover{-webkit-transform:scale(1.2);transform:scale(1.2)}.slider-navigation-next.is-hidden,.slider-navigation-previous.is-hidden{display:none;opacity:0}.slider-navigation-next svg,.slider-navigation-previous svg{width:25%}.slider-navigation-next{left:auto;right:0;background:#fff center center no-repeat;background-size:20px 20px}.slider-pagination{display:none;justify-content:center;align-items:center;position:absolute;bottom:0;left:0;right:0;padding:.5rem 1rem;text-align:center}.slider-pagination .slider-page{background:#fff;width:10px;height:10px;border-radius:25091983px;display:inline-block;margin:0 3px;box-shadow:0 2px 5px #3232321a;transition:-webkit-transform .3s;transition:transform .3s;transition:transform .3s,-webkit-transform .3s;cursor:pointer}.slider-pagination .slider-page.is-active,.slider-pagination .slider-page:hover{-webkit-transform:scale(1.4);transform:scale(1.4)}@media screen and (min-width:800px){.slider-pagination{display:flex}}.hero.has-carousel{position:relative}.hero.has-carousel+.hero-body,.hero.has-carousel+.hero-footer,.hero.has-carousel+.hero-head{z-index:10;overflow:hidden}.hero.has-carousel .hero-carousel{position:absolute;top:0;left:0;bottom:0;right:0;height:auto;border:none;margin:auto;padding:0;z-index:0}.hero.has-carousel .hero-carousel .slider{width:100%;max-width:100%;overflow:hidden;height:100%!important;max-height:100%;z-index:0}.hero.has-carousel .hero-carousel .slider .has-background{max-height:100%}.hero.has-carousel .hero-carousel .slider .has-background .is-background{-o-object-fit:cover;object-fit:cover;-o-object-position:center center;object-position:center center;height:100%;width:100%}.hero.has-carousel .hero-body{margin:0 3rem;z-index:10}
|
||||
1
static/css/bulma-slider.min.css
vendored
Normal file
1
static/css/bulma-slider.min.css
vendored
Normal file
File diff suppressed because one or more lines are too long
1
static/css/bulma.css.map.txt
Normal file
1
static/css/bulma.css.map.txt
Normal file
File diff suppressed because one or more lines are too long
1
static/css/bulma.min.css
vendored
Normal file
1
static/css/bulma.min.css
vendored
Normal file
File diff suppressed because one or more lines are too long
5
static/css/fontawesome.all.min.css
vendored
Normal file
5
static/css/fontawesome.all.min.css
vendored
Normal file
File diff suppressed because one or more lines are too long
137
static/css/index.css
Normal file
137
static/css/index.css
Normal file
@ -0,0 +1,137 @@
|
||||
body {
|
||||
font-family: 'Noto Sans', sans-serif;
|
||||
}
|
||||
|
||||
|
||||
.footer .icon-link {
|
||||
font-size: 25px;
|
||||
color: #000;
|
||||
}
|
||||
|
||||
.link-block a {
|
||||
margin-top: 5px;
|
||||
margin-bottom: 5px;
|
||||
}
|
||||
|
||||
.dnerf {
|
||||
font-variant: small-caps;
|
||||
}
|
||||
|
||||
|
||||
.teaser .hero-body {
|
||||
padding-top: 0;
|
||||
padding-bottom: 3rem;
|
||||
}
|
||||
|
||||
.teaser {
|
||||
font-family: 'Google Sans', sans-serif;
|
||||
}
|
||||
|
||||
|
||||
.publication-title {
|
||||
}
|
||||
|
||||
.publication-banner {
|
||||
max-height: parent;
|
||||
|
||||
}
|
||||
|
||||
.publication-banner video {
|
||||
position: relative;
|
||||
left: auto;
|
||||
top: auto;
|
||||
transform: none;
|
||||
object-fit: fit;
|
||||
}
|
||||
|
||||
.publication-header .hero-body {
|
||||
}
|
||||
|
||||
.publication-title {
|
||||
font-family: 'Google Sans', sans-serif;
|
||||
}
|
||||
|
||||
.publication-authors {
|
||||
font-family: 'Google Sans', sans-serif;
|
||||
}
|
||||
|
||||
.publication-venue {
|
||||
color: #555;
|
||||
width: fit-content;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.publication-awards {
|
||||
color: #ff3860;
|
||||
width: fit-content;
|
||||
font-weight: bolder;
|
||||
}
|
||||
|
||||
.publication-authors {
|
||||
}
|
||||
|
||||
.publication-authors a {
|
||||
color: hsl(204, 86%, 53%) !important;
|
||||
}
|
||||
|
||||
.publication-authors a:hover {
|
||||
text-decoration: underline;
|
||||
}
|
||||
|
||||
.author-block {
|
||||
display: inline-block;
|
||||
}
|
||||
|
||||
.publication-banner img {
|
||||
}
|
||||
|
||||
.publication-authors {
|
||||
/*color: #4286f4;*/
|
||||
}
|
||||
|
||||
.publication-video {
|
||||
position: relative;
|
||||
width: 100%;
|
||||
height: 0;
|
||||
padding-bottom: 56.25%;
|
||||
|
||||
overflow: hidden;
|
||||
border-radius: 10px !important;
|
||||
}
|
||||
|
||||
.publication-video iframe {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
.publication-body img {
|
||||
}
|
||||
|
||||
.results-carousel {
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.results-carousel .item {
|
||||
margin: 5px;
|
||||
overflow: hidden;
|
||||
padding: 20px;
|
||||
font-size: 0;
|
||||
}
|
||||
|
||||
.results-carousel video {
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
.slider-pagination .slider-page {
|
||||
background: #000000;
|
||||
}
|
||||
|
||||
.eql-cntrb {
|
||||
font-size: smaller;
|
||||
}
|
||||
|
||||
|
||||
|
||||
BIN
static/images/carousel1.jpg
Normal file
BIN
static/images/carousel1.jpg
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 199 KiB |
BIN
static/images/carousel2.jpg
Normal file
BIN
static/images/carousel2.jpg
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 363 KiB |
BIN
static/images/carousel3.jpg
Normal file
BIN
static/images/carousel3.jpg
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 496 KiB |
BIN
static/images/carousel4.jpg
Normal file
BIN
static/images/carousel4.jpg
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 197 KiB |
BIN
static/images/favicon.ico
Normal file
BIN
static/images/favicon.ico
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 3.6 KiB |
2371
static/js/bulma-carousel.js
Normal file
2371
static/js/bulma-carousel.js
Normal file
File diff suppressed because it is too large
Load Diff
1
static/js/bulma-carousel.min.js
vendored
Normal file
1
static/js/bulma-carousel.min.js
vendored
Normal file
File diff suppressed because one or more lines are too long
461
static/js/bulma-slider.js
Normal file
461
static/js/bulma-slider.js
Normal file
@ -0,0 +1,461 @@
|
||||
(function webpackUniversalModuleDefinition(root, factory) {
|
||||
if(typeof exports === 'object' && typeof module === 'object')
|
||||
module.exports = factory();
|
||||
else if(typeof define === 'function' && define.amd)
|
||||
define([], factory);
|
||||
else if(typeof exports === 'object')
|
||||
exports["bulmaSlider"] = factory();
|
||||
else
|
||||
root["bulmaSlider"] = factory();
|
||||
})(typeof self !== 'undefined' ? self : this, function() {
|
||||
return /******/ (function(modules) { // webpackBootstrap
|
||||
/******/ // The module cache
|
||||
/******/ var installedModules = {};
|
||||
/******/
|
||||
/******/ // The require function
|
||||
/******/ function __webpack_require__(moduleId) {
|
||||
/******/
|
||||
/******/ // Check if module is in cache
|
||||
/******/ if(installedModules[moduleId]) {
|
||||
/******/ return installedModules[moduleId].exports;
|
||||
/******/ }
|
||||
/******/ // Create a new module (and put it into the cache)
|
||||
/******/ var module = installedModules[moduleId] = {
|
||||
/******/ i: moduleId,
|
||||
/******/ l: false,
|
||||
/******/ exports: {}
|
||||
/******/ };
|
||||
/******/
|
||||
/******/ // Execute the module function
|
||||
/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
|
||||
/******/
|
||||
/******/ // Flag the module as loaded
|
||||
/******/ module.l = true;
|
||||
/******/
|
||||
/******/ // Return the exports of the module
|
||||
/******/ return module.exports;
|
||||
/******/ }
|
||||
/******/
|
||||
/******/
|
||||
/******/ // expose the modules object (__webpack_modules__)
|
||||
/******/ __webpack_require__.m = modules;
|
||||
/******/
|
||||
/******/ // expose the module cache
|
||||
/******/ __webpack_require__.c = installedModules;
|
||||
/******/
|
||||
/******/ // define getter function for harmony exports
|
||||
/******/ __webpack_require__.d = function(exports, name, getter) {
|
||||
/******/ if(!__webpack_require__.o(exports, name)) {
|
||||
/******/ Object.defineProperty(exports, name, {
|
||||
/******/ configurable: false,
|
||||
/******/ enumerable: true,
|
||||
/******/ get: getter
|
||||
/******/ });
|
||||
/******/ }
|
||||
/******/ };
|
||||
/******/
|
||||
/******/ // getDefaultExport function for compatibility with non-harmony modules
|
||||
/******/ __webpack_require__.n = function(module) {
|
||||
/******/ var getter = module && module.__esModule ?
|
||||
/******/ function getDefault() { return module['default']; } :
|
||||
/******/ function getModuleExports() { return module; };
|
||||
/******/ __webpack_require__.d(getter, 'a', getter);
|
||||
/******/ return getter;
|
||||
/******/ };
|
||||
/******/
|
||||
/******/ // Object.prototype.hasOwnProperty.call
|
||||
/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
|
||||
/******/
|
||||
/******/ // __webpack_public_path__
|
||||
/******/ __webpack_require__.p = "";
|
||||
/******/
|
||||
/******/ // Load entry module and return exports
|
||||
/******/ return __webpack_require__(__webpack_require__.s = 0);
|
||||
/******/ })
|
||||
/************************************************************************/
|
||||
/******/ ([
|
||||
/* 0 */
|
||||
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
||||
|
||||
"use strict";
|
||||
Object.defineProperty(__webpack_exports__, "__esModule", { value: true });
|
||||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isString", function() { return isString; });
|
||||
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__events__ = __webpack_require__(1);
|
||||
var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };
|
||||
|
||||
var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
|
||||
|
||||
var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; };
|
||||
|
||||
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
||||
|
||||
function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
|
||||
|
||||
function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
|
||||
|
||||
|
||||
|
||||
var isString = function isString(unknown) {
|
||||
return typeof unknown === 'string' || !!unknown && (typeof unknown === 'undefined' ? 'undefined' : _typeof(unknown)) === 'object' && Object.prototype.toString.call(unknown) === '[object String]';
|
||||
};
|
||||
|
||||
var bulmaSlider = function (_EventEmitter) {
|
||||
_inherits(bulmaSlider, _EventEmitter);
|
||||
|
||||
function bulmaSlider(selector) {
|
||||
var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
||||
|
||||
_classCallCheck(this, bulmaSlider);
|
||||
|
||||
var _this = _possibleConstructorReturn(this, (bulmaSlider.__proto__ || Object.getPrototypeOf(bulmaSlider)).call(this));
|
||||
|
||||
_this.element = typeof selector === 'string' ? document.querySelector(selector) : selector;
|
||||
// An invalid selector or non-DOM node has been provided.
|
||||
if (!_this.element) {
|
||||
throw new Error('An invalid selector or non-DOM node has been provided.');
|
||||
}
|
||||
|
||||
_this._clickEvents = ['click'];
|
||||
/// Set default options and merge with instance defined
|
||||
_this.options = _extends({}, options);
|
||||
|
||||
_this.onSliderInput = _this.onSliderInput.bind(_this);
|
||||
|
||||
_this.init();
|
||||
return _this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Initiate all DOM element containing selector
|
||||
* @method
|
||||
* @return {Array} Array of all slider instances
|
||||
*/
|
||||
|
||||
|
||||
_createClass(bulmaSlider, [{
|
||||
key: 'init',
|
||||
|
||||
|
||||
/**
|
||||
* Initiate plugin
|
||||
* @method init
|
||||
* @return {void}
|
||||
*/
|
||||
value: function init() {
|
||||
this._id = 'bulmaSlider' + new Date().getTime() + Math.floor(Math.random() * Math.floor(9999));
|
||||
this.output = this._findOutputForSlider();
|
||||
|
||||
this._bindEvents();
|
||||
|
||||
if (this.output) {
|
||||
if (this.element.classList.contains('has-output-tooltip')) {
|
||||
// Get new output position
|
||||
var newPosition = this._getSliderOutputPosition();
|
||||
|
||||
// Set output position
|
||||
this.output.style['left'] = newPosition.position;
|
||||
}
|
||||
}
|
||||
|
||||
this.emit('bulmaslider:ready', this.element.value);
|
||||
}
|
||||
}, {
|
||||
key: '_findOutputForSlider',
|
||||
value: function _findOutputForSlider() {
|
||||
var _this2 = this;
|
||||
|
||||
var result = null;
|
||||
var outputs = document.getElementsByTagName('output') || [];
|
||||
|
||||
Array.from(outputs).forEach(function (output) {
|
||||
if (output.htmlFor == _this2.element.getAttribute('id')) {
|
||||
result = output;
|
||||
return true;
|
||||
}
|
||||
});
|
||||
return result;
|
||||
}
|
||||
}, {
|
||||
key: '_getSliderOutputPosition',
|
||||
value: function _getSliderOutputPosition() {
|
||||
// Update output position
|
||||
var newPlace, minValue;
|
||||
|
||||
var style = window.getComputedStyle(this.element, null);
|
||||
// Measure width of range input
|
||||
var sliderWidth = parseInt(style.getPropertyValue('width'), 10);
|
||||
|
||||
// Figure out placement percentage between left and right of input
|
||||
if (!this.element.getAttribute('min')) {
|
||||
minValue = 0;
|
||||
} else {
|
||||
minValue = this.element.getAttribute('min');
|
||||
}
|
||||
var newPoint = (this.element.value - minValue) / (this.element.getAttribute('max') - minValue);
|
||||
|
||||
// Prevent bubble from going beyond left or right (unsupported browsers)
|
||||
if (newPoint < 0) {
|
||||
newPlace = 0;
|
||||
} else if (newPoint > 1) {
|
||||
newPlace = sliderWidth;
|
||||
} else {
|
||||
newPlace = sliderWidth * newPoint;
|
||||
}
|
||||
|
||||
return {
|
||||
'position': newPlace + 'px'
|
||||
};
|
||||
}
|
||||
|
||||
/**
|
||||
* Bind all events
|
||||
* @method _bindEvents
|
||||
* @return {void}
|
||||
*/
|
||||
|
||||
}, {
|
||||
key: '_bindEvents',
|
||||
value: function _bindEvents() {
|
||||
if (this.output) {
|
||||
// Add event listener to update output when slider value change
|
||||
this.element.addEventListener('input', this.onSliderInput, false);
|
||||
}
|
||||
}
|
||||
}, {
|
||||
key: 'onSliderInput',
|
||||
value: function onSliderInput(e) {
|
||||
e.preventDefault();
|
||||
|
||||
if (this.element.classList.contains('has-output-tooltip')) {
|
||||
// Get new output position
|
||||
var newPosition = this._getSliderOutputPosition();
|
||||
|
||||
// Set output position
|
||||
this.output.style['left'] = newPosition.position;
|
||||
}
|
||||
|
||||
// Check for prefix and postfix
|
||||
var prefix = this.output.hasAttribute('data-prefix') ? this.output.getAttribute('data-prefix') : '';
|
||||
var postfix = this.output.hasAttribute('data-postfix') ? this.output.getAttribute('data-postfix') : '';
|
||||
|
||||
// Update output with slider value
|
||||
this.output.value = prefix + this.element.value + postfix;
|
||||
|
||||
this.emit('bulmaslider:ready', this.element.value);
|
||||
}
|
||||
}], [{
|
||||
key: 'attach',
|
||||
value: function attach() {
|
||||
var _this3 = this;
|
||||
|
||||
var selector = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'input[type="range"].slider';
|
||||
var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
||||
|
||||
var instances = new Array();
|
||||
|
||||
var elements = isString(selector) ? document.querySelectorAll(selector) : Array.isArray(selector) ? selector : [selector];
|
||||
elements.forEach(function (element) {
|
||||
if (typeof element[_this3.constructor.name] === 'undefined') {
|
||||
var instance = new bulmaSlider(element, options);
|
||||
element[_this3.constructor.name] = instance;
|
||||
instances.push(instance);
|
||||
} else {
|
||||
instances.push(element[_this3.constructor.name]);
|
||||
}
|
||||
});
|
||||
|
||||
return instances;
|
||||
}
|
||||
}]);
|
||||
|
||||
return bulmaSlider;
|
||||
}(__WEBPACK_IMPORTED_MODULE_0__events__["a" /* default */]);
|
||||
|
||||
/* harmony default export */ __webpack_exports__["default"] = (bulmaSlider);
|
||||
|
||||
/***/ }),
|
||||
/* 1 */
|
||||
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
||||
|
||||
"use strict";
|
||||
var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
|
||||
|
||||
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
||||
|
||||
var EventEmitter = function () {
|
||||
function EventEmitter() {
|
||||
var listeners = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
|
||||
|
||||
_classCallCheck(this, EventEmitter);
|
||||
|
||||
this._listeners = new Map(listeners);
|
||||
this._middlewares = new Map();
|
||||
}
|
||||
|
||||
_createClass(EventEmitter, [{
|
||||
key: "listenerCount",
|
||||
value: function listenerCount(eventName) {
|
||||
if (!this._listeners.has(eventName)) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
var eventListeners = this._listeners.get(eventName);
|
||||
return eventListeners.length;
|
||||
}
|
||||
}, {
|
||||
key: "removeListeners",
|
||||
value: function removeListeners() {
|
||||
var _this = this;
|
||||
|
||||
var eventName = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;
|
||||
var middleware = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
|
||||
|
||||
if (eventName !== null) {
|
||||
if (Array.isArray(eventName)) {
|
||||
name.forEach(function (e) {
|
||||
return _this.removeListeners(e, middleware);
|
||||
});
|
||||
} else {
|
||||
this._listeners.delete(eventName);
|
||||
|
||||
if (middleware) {
|
||||
this.removeMiddleware(eventName);
|
||||
}
|
||||
}
|
||||
} else {
|
||||
this._listeners = new Map();
|
||||
}
|
||||
}
|
||||
}, {
|
||||
key: "middleware",
|
||||
value: function middleware(eventName, fn) {
|
||||
var _this2 = this;
|
||||
|
||||
if (Array.isArray(eventName)) {
|
||||
name.forEach(function (e) {
|
||||
return _this2.middleware(e, fn);
|
||||
});
|
||||
} else {
|
||||
if (!Array.isArray(this._middlewares.get(eventName))) {
|
||||
this._middlewares.set(eventName, []);
|
||||
}
|
||||
|
||||
this._middlewares.get(eventName).push(fn);
|
||||
}
|
||||
}
|
||||
}, {
|
||||
key: "removeMiddleware",
|
||||
value: function removeMiddleware() {
|
||||
var _this3 = this;
|
||||
|
||||
var eventName = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;
|
||||
|
||||
if (eventName !== null) {
|
||||
if (Array.isArray(eventName)) {
|
||||
name.forEach(function (e) {
|
||||
return _this3.removeMiddleware(e);
|
||||
});
|
||||
} else {
|
||||
this._middlewares.delete(eventName);
|
||||
}
|
||||
} else {
|
||||
this._middlewares = new Map();
|
||||
}
|
||||
}
|
||||
}, {
|
||||
key: "on",
|
||||
value: function on(name, callback) {
|
||||
var _this4 = this;
|
||||
|
||||
var once = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
|
||||
|
||||
if (Array.isArray(name)) {
|
||||
name.forEach(function (e) {
|
||||
return _this4.on(e, callback);
|
||||
});
|
||||
} else {
|
||||
name = name.toString();
|
||||
var split = name.split(/,|, | /);
|
||||
|
||||
if (split.length > 1) {
|
||||
split.forEach(function (e) {
|
||||
return _this4.on(e, callback);
|
||||
});
|
||||
} else {
|
||||
if (!Array.isArray(this._listeners.get(name))) {
|
||||
this._listeners.set(name, []);
|
||||
}
|
||||
|
||||
this._listeners.get(name).push({ once: once, callback: callback });
|
||||
}
|
||||
}
|
||||
}
|
||||
}, {
|
||||
key: "once",
|
||||
value: function once(name, callback) {
|
||||
this.on(name, callback, true);
|
||||
}
|
||||
}, {
|
||||
key: "emit",
|
||||
value: function emit(name, data) {
|
||||
var _this5 = this;
|
||||
|
||||
var silent = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
|
||||
|
||||
name = name.toString();
|
||||
var listeners = this._listeners.get(name);
|
||||
var middlewares = null;
|
||||
var doneCount = 0;
|
||||
var execute = silent;
|
||||
|
||||
if (Array.isArray(listeners)) {
|
||||
listeners.forEach(function (listener, index) {
|
||||
// Start Middleware checks unless we're doing a silent emit
|
||||
if (!silent) {
|
||||
middlewares = _this5._middlewares.get(name);
|
||||
// Check and execute Middleware
|
||||
if (Array.isArray(middlewares)) {
|
||||
middlewares.forEach(function (middleware) {
|
||||
middleware(data, function () {
|
||||
var newData = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;
|
||||
|
||||
if (newData !== null) {
|
||||
data = newData;
|
||||
}
|
||||
doneCount++;
|
||||
}, name);
|
||||
});
|
||||
|
||||
if (doneCount >= middlewares.length) {
|
||||
execute = true;
|
||||
}
|
||||
} else {
|
||||
execute = true;
|
||||
}
|
||||
}
|
||||
|
||||
// If Middleware checks have been passed, execute
|
||||
if (execute) {
|
||||
if (listener.once) {
|
||||
listeners[index] = null;
|
||||
}
|
||||
listener.callback(data);
|
||||
}
|
||||
});
|
||||
|
||||
// Dirty way of removing used Events
|
||||
while (listeners.indexOf(null) !== -1) {
|
||||
listeners.splice(listeners.indexOf(null), 1);
|
||||
}
|
||||
}
|
||||
}
|
||||
}]);
|
||||
|
||||
return EventEmitter;
|
||||
}();
|
||||
|
||||
/* harmony default export */ __webpack_exports__["a"] = (EventEmitter);
|
||||
|
||||
/***/ })
|
||||
/******/ ])["default"];
|
||||
});
|
||||
1
static/js/bulma-slider.min.js
vendored
Normal file
1
static/js/bulma-slider.min.js
vendored
Normal file
File diff suppressed because one or more lines are too long
5
static/js/fontawesome.all.min.js
vendored
Normal file
5
static/js/fontawesome.all.min.js
vendored
Normal file
File diff suppressed because one or more lines are too long
46
static/js/index.js
Normal file
46
static/js/index.js
Normal file
@ -0,0 +1,46 @@
|
||||
window.HELP_IMPROVE_VIDEOJS = false;
|
||||
|
||||
|
||||
$(document).ready(function() {
|
||||
// Check for click events on the navbar burger icon
|
||||
|
||||
var options = {
|
||||
slidesToScroll: 1,
|
||||
slidesToShow: 1,
|
||||
loop: true,
|
||||
infinite: true,
|
||||
autoplay: false,
|
||||
autoplaySpeed: 3000,
|
||||
}
|
||||
|
||||
// Initialize all div with carousel class
|
||||
var carousels = bulmaCarousel.attach('.carousel', options);
|
||||
|
||||
// Loop on each carousel initialized
|
||||
for(var i = 0; i < carousels.length; i++) {
|
||||
// Add listener to event
|
||||
carousels[i].on('before:show', state => {
|
||||
console.log(state);
|
||||
});
|
||||
}
|
||||
|
||||
// Access to bulmaCarousel instance of an element
|
||||
var element = document.querySelector('#my-element');
|
||||
if (element && element.bulmaCarousel) {
|
||||
// bulmaCarousel instance is available as element.bulmaCarousel
|
||||
element.bulmaCarousel.on('before-show', function(state) {
|
||||
console.log(state);
|
||||
});
|
||||
}
|
||||
|
||||
/*var player = document.getElementById('interpolation-video');
|
||||
player.addEventListener('loadedmetadata', function() {
|
||||
$('#interpolation-slider').on('input', function(event) {
|
||||
console.log(this.value, player.duration);
|
||||
player.currentTime = player.duration / 100 * this.value;
|
||||
})
|
||||
}, false);*/
|
||||
|
||||
bulmaSlider.attach();
|
||||
|
||||
})
|
||||
BIN
static/pdfs/sample.pdf
Normal file
BIN
static/pdfs/sample.pdf
Normal file
Binary file not shown.
BIN
static/videos/banner_video.mp4
Normal file
BIN
static/videos/banner_video.mp4
Normal file
Binary file not shown.
BIN
static/videos/carousel1.mp4
Normal file
BIN
static/videos/carousel1.mp4
Normal file
Binary file not shown.
BIN
static/videos/carousel2.mp4
Normal file
BIN
static/videos/carousel2.mp4
Normal file
Binary file not shown.
BIN
static/videos/carousel3.mp4
Normal file
BIN
static/videos/carousel3.mp4
Normal file
Binary file not shown.
Loading…
x
Reference in New Issue
Block a user