Repository: sunbliss/photorama
Branch: gh-pages
Commit: 1821a4d74be0
Files: 73
Total size: 332.8 KB
Directory structure:
gitextract_qnhvvtzg/
├── .gitignore
├── 404.html
├── Gruntfile.js
├── LICENSE
├── README.md
├── _config.yml
├── _includes/
│ ├── Scroll_to_Top.html
│ ├── disqus_comments.html
│ ├── footer.html
│ ├── head.html
│ ├── nav.html
│ ├── newsletter.html
│ ├── search.html
│ ├── share.html
│ ├── signoff.html
│ └── subgallery.html
├── _layouts/
│ ├── default.html
│ ├── home.html
│ ├── journal_by_category.html
│ ├── journal_by_tag.html
│ ├── page.html
│ └── post.html
├── _posts/
│ ├── 2016-02-01-multiple-galleries.markdown
│ ├── 2016-03-01-Around-the-World-in-80-Days.markdown
│ ├── 2016-03-05-Moby-Dick.markdown
│ ├── 2016-03-10-At-the-Earth's-Core.markdown
│ ├── 2016-03-15-The-Wizard-of-Oz.markdown
│ ├── 2016-03-20-The-Scarlet-Plague.markdown
│ ├── 2016-03-25-Alice-in-Wonderland.markdown
│ └── 2016-07-01-images-size-for-better-performance.markdown
├── about/
│ └── index.html
├── bower.json
├── css/
│ ├── WYSIWYG.css
│ ├── galleries.css
│ ├── journal.css
│ ├── magnificpopup.css
│ ├── main.css
│ ├── selena.css
│ ├── super-search.css
│ └── tags-wrap.css
├── feed.xml
├── gallery/
│ ├── gallery01/
│ │ └── index.html
│ ├── gallery02/
│ │ └── index.html
│ ├── gallery03/
│ │ └── index.html
│ ├── gallery04/
│ │ └── index.html
│ ├── gallery05/
│ │ └── index.html
│ ├── gallery06/
│ │ └── index.html
│ ├── gallery07/
│ │ └── index.html
│ ├── gallery08/
│ │ └── index.html
│ ├── gallery09/
│ │ └── index.html
│ └── index.html
├── index.html
├── journal/
│ ├── category/
│ │ ├── cat01.md
│ │ ├── cat02.md
│ │ ├── cat03.md
│ │ ├── cat04.md
│ │ └── index.html
│ ├── index.html
│ └── tag/
│ ├── index.html
│ ├── tag01.md
│ ├── tag02.md
│ ├── tag03.md
│ └── tag04.md
├── js/
│ ├── jquery.magnific-popup.js
│ ├── modernizr.js
│ ├── scripts.js
│ └── super-search.js
├── newsletter/
│ ├── index.html
│ └── js/
│ ├── archivebar-desktop-plugins.js
│ └── fancyzoom.mc.js
├── package.json
├── search.html
└── search.json
================================================
FILE CONTENTS
================================================
================================================
FILE: .gitignore
================================================
_site
node_modules
================================================
FILE: 404.html
================================================
---
layout: page
header-img: "img/404.jpg"
permalink: "/404.html"
redirect_to: "baseurl/journal/"
---
Whoops, this page doesn't exist.
You will be redirected to JOURNAL in few seconds.
================================================
FILE: Gruntfile.js
================================================
module.exports = function(grunt) {
// Project configuration.
grunt.initConfig({
pkg: grunt.file.readJSON('package.json'),
uglify: {
main: {
src: 'js/<%= pkg.name %>.js',
dest: 'js/<%= pkg.name %>.min.js'
}
},
less: {
expanded: {
options: {
paths: ["css"]
},
files: {
"css/<%= pkg.name %>.css": "less/<%= pkg.name %>.less"
}
},
minified: {
options: {
paths: ["css"],
cleancss: true
},
files: {
"css/<%= pkg.name %>.min.css": "less/<%= pkg.name %>.less"
}
}
},
banner: '/*!\n' +
' * <%= pkg.title %> v<%= pkg.version %> (<%= pkg.homepage %>)\n' +
' * Copyright <%= grunt.template.today("yyyy") %> <%= pkg.author %>\n' +
' * Licensed under <%= pkg.license.type %> (<%= pkg.license.url %>)\n' +
' */\n',
usebanner: {
dist: {
options: {
position: 'top',
banner: '<%= banner %>'
},
files: {
src: ['css/<%= pkg.name %>.css', 'css/<%= pkg.name %>.min.css', 'js/<%= pkg.name %>.min.js']
}
}
},
watch: {
scripts: {
files: ['js/<%= pkg.name %>.js'],
tasks: ['uglify'],
options: {
spawn: false,
},
},
less: {
files: ['less/*.less'],
tasks: ['less'],
options: {
spawn: false,
}
},
},
});
// Load the plugins.
grunt.loadNpmTasks('grunt-contrib-uglify');
grunt.loadNpmTasks('grunt-contrib-less');
grunt.loadNpmTasks('grunt-banner');
grunt.loadNpmTasks('grunt-contrib-watch');
// Default task(s).
grunt.registerTask('default', ['uglify', 'less', 'usebanner']);
};
================================================
FILE: LICENSE
================================================
The MIT License (MIT)
Copyright (c) 2016 Anna Prigkipaki
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.
================================================
FILE: README.md
================================================
p h o t o r a m a
====================

----------
---> [DEMO](https://sunbliss.github.io/photorama/ "DEMO") <---
----------
A theme for **jekyll**.
Created for gh-pages (project page).
This template was crafted having in mind the photobloggers and the artists.
It uses [Clean Blog](https://github.com/BlackrockDigital/startbootstrap-clean-blog-jekyll "Clean Blog") as its basis.
----------
## Change Log
### Version 2.2 (4/23/2018)
How to get SSL Certificate (Https) For Jekyll
### Version 2.1 (3/22/2017)
* Fixed script loading.
* Fixed padding bottom for the navbar toggle menu.
### Version 2.0 (2/4/2017)
* HTTPS is now enforced.
~~**Custom Domains are not supported.**~~
~~For the time being, the only way to apply a custom domain name is by removing HTTPS as of the previous version.
Hoping Github developers will give its users the ability to add a custom domain served under security.~~
### Version 1.2 (1/31/2017)
* Fixed footer code so that the twitter icon links to the twitter_username instead of instagram_username.
### Version 1.1 (7/15/2016)
* Improved galleries and search section.
* Better rendering of the header text.
### Version 1.0 (6/19/2016)
* Initial Template
----------
**IMPORTANT!!!**
================
### Before you begin: Change the URL and the BASEURL as well as the internal nav links in the _config.yml
The **URL** should say `https://yourusername.github.io`
The **BASEURL** should say `/repositoryname`
**Internal nav** should say
nav:
- GALLERY: `"https://yourusername.github.io/repositoryname/gallery/"`
- JOURNAL: `"https://yourusername.github.io/repositoryname/journal/"`
- ABOUT: `"https://yourusername.github.io/repositoryname/about/`"
If there are problems with loading assets like CSS files and images, make sure that both **URL** and **BASEURL** are set correctly!!!
----------
~~**NOT FOR HTTPS served repos!!!**~~
==================================
~~* Applies for v1.2!~~
If you want to use your **own domain** go to the root of your project's repository, create a CNAME file and add a line with your domain name, e.g. `www.yourdomain.com`.
Go to your domain name registrar and add a CNAME record pointing your domain to GitHub Pages:
- type: CNAME
- host: www.yourdomainname.com
- answer: yourusername.github.io/repositoryname
- TTL: 300
----------
Usage
============
###Quick Start
1. [Fork this repository](https://github.com/sunbliss/photorama/fork) to get started.
2. Go to `https://github.com/yourusername/photorama/settings`
3. Rename the repository to your new project, e.g. *myphotoblog*
2. Create a new branch called `gh-pages` in your repository.
3. Go to the branches directory at `https://github.com/yourusername/repositoryname/branches` and *change* **default branch** to **gh-pages**.
4. Delete **master** branch.
3. GitHub will build your site automatically and publish it at `https://yourusername.github.io/repositoryname/`.
----------
- The homepage welcomes the visitors with 3 animated photos of your choice. It is recommended that all three are landscape orientated for best view.
To change the welcome content at the far left of the Home page go here: `/index.html` and fill the responding lines of the YAML with your desired text.
----------
- To enable **disqus** comments in the posts, change their front matter for comments to 'true'.
You must have a registered account in disqus, where you will also register a forum for your website.
Find the line `s.src = '//yourproject.disqus.com/embed.js'; // ` in the disqus_comments.html and REPLACE 'yourproject' with your forum shortname.
----------
- In order to send **newsletters** about your posts to your subscribers, you should register an account in [tinyletter](http://www.tinyletter.com " tinyletter").
Find the line `'https://tinyletter.com/yourproject', ` in the *newsletter.html* and replace 'yourproject' with your registered website.
You can always ommit the newsletter rendering by deleting the line `{% include newsletter.html %}
` in the *default.html* layout.
----------
If you want to use the matching **NEWSLETTER** template, you must always create a new file by copying its respective index.html and renaming it to e.g. 2016-March-newsletter.html and then save it inside the folder and the accompanying images inside the 'images folder', so it can be accessed to your viewers through their browser. In this case the root url for the above newsletter will be ***http://yourgithubusername.github.io/yourproject/2016-March-newsletter.html***. Copy this link and replace this part of the code `http://www.yoursite.com/newsletter/year-month-newsletter` with it.
----------
**TAGS** and **CATEGORIES** of the posts
When you add a tag or a category name in the front matter of a post, don't forget to add the responding markdown files in /journal/tag/ folder and in /journal/category folder, so they can always render when browsing the journal or searching in the respective page.
----------
All the credits and the helpers can be found at **ABOUT** page.
----------
Read **this** post if you want to ensure your website always loads fast.
----------
I hope you will find it useful for your projects, photographic or not.
----------
##License
The MIT License (MIT)
Copyright (c) 2014 Filippo Oretti, Dario Andrei
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.
================================================
FILE: _config.yml
================================================
# Site settings
title: PHOTORAMA
email: ""
description: "Photo Journal"
url: "https://sunbliss.github.io"
baseurl: "/photorama"
facebook_username: ""
twitter_username: ""
instagram_username: ""
github_username: ""
deviantart_username: ""
flickr_username: ""
discus_shortname: ""
share: true
# Owner/author information
owner:
name: photorama
avatar: avatar.png
favicon: favicon.ico
info: photography website template
# Settings for comments helper
# Set 'provider' to the comment provider you want to use. (i.e. Disqus, Intense Debate, livefyre, or Facebook Comments)
# Set 'provider' to false to turn commenting off globally.
#Set 'provider: false' to disable comments globally.
# Disable comments for individual pages/posts by specifying 'comments: false' in the page/post YAML Front Matter.
#
comments :
provider : disqus
disqus :
short_name : ""
# Internal nav
nav:
- GALLERY: "https://sunbliss.github.io/photorama/gallery/"
- JOURNAL: "https://sunbliss.github.io/photorama/journal/"
- ABOUT: "https://sunbliss.github.io/photorama/about/"
# All translation keys
translations:
# 404.html
permalink: "/404.html"
# Server
destination: ./_site
port: 4000
# Build settings
markdown: kramdown
highlighter: rouge
permalink: pretty
paginate: 5
paginate_path: "/journal/page:num/"
permalink: "/journal/:title/"
categories_path: "/journal/category/"
tags_path: "/journal/tag/"
gems:
- jekyll-paginate
exclude: ["less","node_modules","Gruntfile.js","package.json","README.md"]
# SiteMap
sitemap:
file: "/sitemap.xml"
exclude:
- "/atom.xml"
- "/feed.xml"
- "/feed/index.xml"
include_posts:
- "/writing/"
change_frequency_name: "change_frequency"
priority_name: "priority"
================================================
FILE: _includes/Scroll_to_Top.html
================================================
================================================
FILE: _includes/disqus_comments.html
================================================
{% if page.comments %}
Please enable JavaScript to view the comments powered by Disqus.
{% endif %}
================================================
FILE: _includes/footer.html
================================================
{% if site.facebook_username %}
{% endif %}
{% if site.twitter_username %}
{% endif %}
{% if site.instagram_username %}
{% endif %}
{% if site.flickr_username %}
{% endif %}
{% if site.deviantart_username %}
{% endif %}
{% if site.github_username %}
{% endif %}
Copyright © {{ site.title }} {{ site.time | date: '%Y' }}
Powered by Jekyll .
================================================
FILE: _includes/head.html
================================================
{% if page.title %}{{ page.title }} - {{ site.title }}{% else %}{{ site.title }}{% endif %}
================================================
FILE: _includes/nav.html
================================================
{% for nav_hash in site.nav %}
{% for nav_item in nav_hash %}
{% assign lowercase_nav_item = nav_item[0] | downcase %}
{% if page.active == lowercase_nav_item %}
{{ nav_item[0] }}
{% else %}
{{ nav_item[0] }}
{% endif %}
{% endfor %}
{% endfor %}
================================================
FILE: _includes/newsletter.html
================================================
SUBSCRIBE TO RECEIVE POSTS DIRECTLY TO YOUR INBOX
================================================
FILE: _includes/search.html
================================================
================================================
FILE: _includes/share.html
================================================
================================================
FILE: _includes/signoff.html
================================================
{{ site.owner.info }}
================================================
FILE: _includes/subgallery.html
================================================
{% if include.id %}
{% assign gallery = page.[include.id] %}
{% else %}
{% assign gallery = page.gallery %}
{% endif %}
{% for img in gallery %}
{{img.image-caption}}
{{img.image-copyright}}
{% endfor %}
================================================
FILE: _layouts/default.html
================================================
{% include head.html %}
{% if page.url == "/404.html" %} {% endif %}
{% include nav.html %}
{{ content }}
{% include search.html %}
{% include newsletter.html %}
{% include footer.html %}
{% include Scroll_to_Top.html %}
================================================
FILE: _layouts/home.html
================================================
{% include head.html %}
{% include nav.html %}
{{ content }}
================================================
FILE: _layouts/journal_by_category.html
================================================
---
layout: page
title: categories
description: archive
header-img: "img/misc-bg.jpg"
---
{% if site.categories[page.category] %}
{% for post in site.categories[page.category] %}
{% capture post_year %}{{ post.date | date: '%Y' }}{% endcapture %}
{% if forloop.first %}
{{ post_year }}
{% endif %}
{% if forloop.first == false %}
{% assign previous_index = forloop.index0 | minus: 1 %}
{% capture previous_post_year %}{{ site.categories[page.category][previous_index].date | date: '%Y' }}{% endcapture %}
{% if post_year != previous_post_year %}
{{ post_year }}
{% endif %}
{% endfor %}
{% else %}
There are no posts in this category.
{% endif %}
================================================
FILE: _layouts/journal_by_tag.html
================================================
---
layout: page
title: tags
description: archive
header-img: "img/misc-bg.jpg"
---
{% if site.tags[page.tag] %}
{% for post in site.tags[page.tag] %}
{% capture post_year %}{{ post.date | date: '%Y' }}{% endcapture %}
{% if forloop.first %}
{{ post_year }}
{% endif %}
{% if forloop.first == false %}
{% assign previous_index = forloop.index0 | minus: 1 %}
{% capture previous_post_year %}{{ site.tags[page.tag][previous_index].date | date: '%Y' }}{% endcapture %}
{% if post_year != previous_post_year %}
{{ post_year }}
{% endif %}
{% endfor %}
{% else %}
There are no posts for this tag.
{% endif %}
================================================
FILE: _layouts/page.html
================================================
---
layout: default
---
================================================
FILE: _layouts/post.html
================================================
---
layout: default
---
{% assign post = page %}
{{ content }}
{% include signoff.html %}
{% if site.share %}{% include share.html %}{% endif %}
{% if site.comments %}{% include disqus_comments.html %}{% endif %}
================================================
FILE: _posts/2016-02-01-multiple-galleries.markdown
================================================
---
layout: "post"
title: "Multiple Galleries"
subtitle: "A post with multiple galleries arranged with ISOTOPE"
active: "journal"
image:
feature: "pc007.jpg"
date: "2016-02-01"
header-img: "img/postcover/pc007.jpg"
comments: "true"
gallery1:
- image_path: /img/galleries/g01/bg1.jpg
image-caption: IMAGE TITLE
image-copyright: © photorama
- image_path: /img/galleries/g01/bg2.jpg
image-caption: IMAGE TITLE
image-copyright: © photorama
- image_path: /img/galleries/g01/bg3.jpg
image-caption: IMAGE TITLE
image-copyright: © photorama
gallery2:
- image_path: /img/galleries/g02/bg1.jpg
image-caption: IMAGE TITLE
image-copyright: © photorama
- image_path: /img/galleries/g02/bg2.jpg
image-caption: IMAGE TITLE
image-copyright: © photorama
- image_path: /img/galleries/g02/bg3.jpg
image-caption: IMAGE TITLE
image-copyright: © photorama
---
{{page.title}}
Content of your post HERE
Add as many paragraphs amongst your galleries as you want.
{% include subgallery.html id="gallery1" %}
Add as many galleries as you want, including as many photos as you want. Simply edit the FRONT MATTER of the post, adding the corresponding path , caption and copyright info for each one of your photos.
{% include subgallery.html id="gallery2" %}
Photography by: UNSPLASH
================================================
FILE: _posts/2016-03-01-Around-the-World-in-80-Days.markdown
================================================
---
layout: post
title: "Around the World in 80 Days"
subtitle: "Jules Verne"
active: journal
image:
feature: "pc006.jpg"
date: 2016-03-01
header-img: "img/postcover/pc006.jpg"
tags: [tag03]
categories: [cat04]
comments: false
---
"You're a sly dog!" said Passepartout, winking at him.
This expression rather disturbed Fix, without his knowing why. Had the Frenchman guessed his real purpose? He knew not what to think. But how could Passepartout have discovered that he was a detective? Yet, in speaking as he did, the man evidently meant more than he expressed.
Passepartout went still further the next day; he could not hold his tongue.
"Mr. Fix," said he, in a bantering tone, "shall we be so unfortunate as to lose you when we get to Hong Kong?"
"Why," responded Fix, a little embarrassed, "I don't know; perhaps—"
"Ah, if you would only go on with us! An agent of the Peninsular Company, you know, can't stop on the way! You were only going to Bombay, and here you are in China. America is not far off, and from America to Europe is only a step."
Fix looked intently at his companion, whose countenance was as serene as possible, and laughed with him. But Passepartout persisted in chaffing him by asking him if he made much by his present occupation.
"Yes, and no," returned Fix; "there is good and bad luck in such things. But you must understand that I don't travel at my own expense."
"Oh, I am quite sure of that!" cried Passepartout, laughing heartily.
Fix, fairly puzzled, descended to his cabin and gave himself up to his reflections. He was evidently suspected; somehow or other the Frenchman had found out that he was a detective. But had he told his master? What part was he playing in all this: was he an accomplice or not? Was the game, then, up? Fix spent several hours turning these things over in his mind, sometimes thinking that all was lost, then persuading himself that Fogg was ignorant of his presence, and then undecided what course it was best to take.
Placeholder text by Fillerati . Photography by UNSPLASH .
================================================
FILE: _posts/2016-03-05-Moby-Dick.markdown
================================================
---
layout: post
title: "Moby Dick"
subtitle: "Herman Melville"
active: journal
image:
feature: "pc005.jpg"
date: 2016-03-05
header-img: "img/postcover/pc005.jpg"
tags: [tag02]
categories: [cat03]
comments: false
---
Nearly all joined in singing this hymn, which swelled high above the howling of the storm. A brief pause ensued; the preacher slowly turned over the leaves of the Bible, and at last, folding his hand down upon the proper page, said: "Beloved shipmates, clinch the last verse of the first chapter of Jonah—'And God had prepared a great fish to swallow up Jonah.'"
"Shipmates, this book, containing only four chapters—four yarns—is one of the smallest strands in the mighty cable of the Scriptures. Yet what depths of the soul does Jonah's deep sealine sound! what a pregnant lesson to us is this prophet! What a noble thing is that canticle in the fish's belly! How billow-like and boisterously grand! We feel the floods surging over us; we sound with him to the kelpy bottom of the waters; sea-weed and all the slime of the sea is about us! But WHAT is this lesson that the book of Jonah teaches? Shipmates, it is a two-stranded lesson; a lesson to us all as sinful men, and a lesson to me as a pilot of the living God. As sinful men, it is a lesson to us all, because it is a story of the sin, hard-heartedness, suddenly awakened fears, the swift punishment, repentance, prayers, and finally the deliverance and joy of Jonah. As with all sinners among men, the sin of this son of Amittai was in his wilful disobedience of the command of God—never mind now what that command was, or how conveyed—which he found a hard command. But all the things that God would have us do are hard for us to do—remember that—and hence, he oftener commands us than endeavors to persuade. And if we obey God, we must disobey ourselves; and it is in this disobeying ourselves, wherein the hardness of obeying God consists.
"With this sin of disobedience in him, Jonah still further flouts at God, by seeking to flee from Him. He thinks that a ship made by men will carry him into countries where God does not reign, but only the Captains of this earth. He skulks about the wharves of Joppa, and seeks a ship that's bound for Tarshish. There lurks, perhaps, a hitherto unheeded meaning here. By all accounts Tarshish could have been no other city than the modern Cadiz. That's the opinion of learned men. And where is Cadiz, shipmates? Cadiz is in Spain; as far by water, from Joppa, as Jonah could possibly have sailed in those ancient days, when the Atlantic was an almost unknown sea. Because Joppa, the modern Jaffa, shipmates, is on the most easterly coast of the Mediterranean, the Syrian; and Tarshish or Cadiz more than two thousand miles to the westward from that, just outside the Straits of Gibraltar. See ye not then, shipmates, that Jonah sought to flee world-wide from God? Miserable man! Oh! most contemptible and worthy of all scorn; with slouched hat and guilty eye, skulking from his God; prowling among the shipping like a vile burglar hastening to cross the seas. So disordered, self-condemning is his look, that had there been policemen in those days, Jonah, on the mere suspicion of something wrong, had been arrested ere he touched a deck. How plainly he's a fugitive! no baggage, not a hat-box, valise, or carpet-bag,—no friends accompany him to the wharf with their adieux. At last, after much dodging search, he finds the Tarshish ship receiving the last items of her cargo; and as he steps on board to see its Captain in the cabin, all the sailors for the moment desist from hoisting in the goods, to mark the stranger's evil eye. Jonah sees this; but in vain he tries to look all ease and confidence; in vain essays his wretched smile. Strong intuitions of the man assure the mariners he can be no innocent. In their gamesome but still serious way, one whispers to the other—"Jack, he's robbed a widow;" or, "Joe, do you mark him; he's a bigamist;" or, "Harry lad, I guess he's the adulterer that broke jail in old Gomorrah, or belike, one of the missing murderers from Sodom." Another runs to read the bill that's stuck against the spile upon the wharf to which the ship is moored, offering five hundred gold coins for the apprehension of a parricide, and containing a description of his person. He reads, and looks from Jonah to the bill; while all his sympathetic shipmates now crowd round Jonah, prepared to lay their hands upon him. Frighted Jonah trembles, and summoning all his boldness to his face, only looks so much the more a coward. He will not confess himself suspected; but that itself is strong suspicion. So he makes the best of it; and when the sailors find him not to be the man that is advertised, they let him pass, and he descends into the cabin.
Placeholder text by Fillerati . Photography by UNSPLASH .
================================================
FILE: _posts/2016-03-10-At-the-Earth's-Core.markdown
================================================
---
layout: post
title: "At the Earth's Core"
subtitle: "Edgar Rice Burroughs"
active: journal
image:
feature: "pc004.jpg"
date: 2016-03-10
header-img: "img/postcover/pc004.jpg"
tags: [tag01]
categories: [cat02]
comments: false
---
Formerly he may have been as good to look upon as the others of his handsome race, and it may be that the terrible result of this encounter had tended to sour an already strong and brutal character. However this may be it is quite certain that he was not a pretty sight, and now that his features, or what remained of them, were distorted in rage at the sight of Dian with another male, he was indeed most terrible to see—and much more terrible to meet.
He had broken into a run now, and as he advanced he raised his mighty spear, while I halted and fitting an arrow to my bow took as steady aim as I could. I was somewhat longer than usual, for I must confess that the sight of this awful man had wrought upon my nerves to such an extent that my knees were anything but steady. What chance had I against this mighty warrior for whom even the fiercest cave bear had no terrors! Could I hope to best one who slaughtered the sadok and dyryth single-handed! I shuddered; but, in fairness to myself, my fear was more for Dian than for my own fate.
And then the great brute launched his massive stone-tipped spear, and I raised my shield to break the force of its terrific velocity. The impact hurled me to my knees, but the shield had deflected the missile and I was unscathed. Jubal was rushing upon me now with the only remaining weapon that he carried—a murderous-looking knife. He was too close for a careful bowshot, but I let drive at him as he came, without taking aim. My arrow pierced the fleshy part of his thigh, inflicting a painful but not disabling wound. And then he was upon me.
My agility saved me for the instant. I ducked beneath his raised arm, and when he wheeled to come at me again he found a sword's point in his face. And a moment later he felt an inch or two of it in the muscles of his knife arm, so that thereafter he went more warily.
It was a duel of strategy now—the great, hairy man maneuvering to get inside my guard where he could bring those giant thews to play, while my wits were directed to the task of keeping him at arm's length. Thrice he rushed me, and thrice I caught his knife blow upon my shield. Each time my sword found his body—once penetrating to his lung. He was covered with blood by this time, and the internal hemorrhage induced paroxysms of coughing that brought the red stream through the hideous mouth and nose, covering his face and breast with bloody froth. He was a most unlovely spectacle, but he was far from dead.
As the duel continued I began to gain confidence, for, to be perfectly candid, I had not expected to survive the first rush of that monstrous engine of ungoverned rage and hatred. And I think that Jubal, from utter contempt of me, began to change to a feeling of respect, and then in his primitive mind there evidently loomed the thought that perhaps at last he had met his master, and was facing his end.
At any rate it is only upon this hypothesis that I can account for his next act, which was in the nature of a last resort—a sort of forlorn hope, which could only have been born of the belief that if he did not kill me quickly I should kill him. It happened on the occasion of his fourth charge, when, instead of striking at me with his knife, he dropped that weapon, and seizing my sword blade in both his hands wrenched the weapon from my grasp as easily as from a babe.
Flinging it far to one side he stood motionless for just an instant glaring into my face with such a horrid leer of malignant triumph as to almost unnerve me—then he sprang for me with his bare hands. But it was Jubal's day to learn new methods of warfare. For the first time he had seen a bow and arrows, never before that duel had he beheld a sword, and now he learned what a man who knows may do with his bare fists.
As he came for me, like a great bear, I ducked again beneath his outstretched arm, and as I came up planted as clean a blow upon his jaw as ever you have seen. Down went that great mountain of flesh sprawling upon the ground. He was so surprised and dazed that he lay there for several seconds before he made any attempt to rise, and I stood over him with another dose ready when he should gain his knees.
Placeholder text by Fillerati . Photography by UNSPLASH .
================================================
FILE: _posts/2016-03-15-The-Wizard-of-Oz.markdown
================================================
---
layout: post
title: "The Wizard of Oz"
subtitle: "L. Frank Baum"
active: journal
image:
feature: "pc003.jpg"
date: 2016-03-15
header-img: "img/postcover/pc003.jpg"
tags: [tag03, tag04]
categories: [cat03, cat04]
comments: false
---
Now this same morning the Wicked Witch came to the door of her castle and looked out with her one eye that could see far off. She saw all her wolves lying dead, and the strangers still traveling through her country. This made her angrier than before, and she blew her silver whistle twice.
Straightway a great flock of wild crows came flying toward her, enough to darken the sky.
And the Wicked Witch said to the King Crow, "Fly at once to the strangers; peck out their eyes and tear them to pieces."
The wild crows flew in one great flock toward Dorothy and her companions. When the little girl saw them coming she was afraid.
But the Scarecrow said, "This is my battle, so lie down beside me and you will not be harmed."
So they all lay upon the ground except the Scarecrow, and he stood up and stretched out his arms. And when the crows saw him they were frightened, as these birds always are by scarecrows, and did not dare to come any nearer. But the King Crow said:
"It is only a stuffed man. I will peck his eyes out."
The King Crow flew at the Scarecrow, who caught it by the head and twisted its neck until it died. And then another crow flew at him, and the Scarecrow twisted its neck also. There were forty crows, and forty times the Scarecrow twisted a neck, until at last all were lying dead beside him. Then he called to his companions to rise, and again they went upon their journey.
When the Wicked Witch looked out again and saw all her crows lying in a heap, she got into a terrible rage, and blew three times upon her silver whistle.
Forthwith there was heard a great buzzing in the air, and a swarm of black bees came flying toward her.
Placeholder text by Fillerati . Photography by UNSPLASH .
================================================
FILE: _posts/2016-03-20-The-Scarlet-Plague.markdown
================================================
---
layout: post
title: "The Scarlet Plague"
subtitle: "Jack London"
active: journal
image:
feature: "pc002.jpg"
date: 2016-03-20
header-img: "img/postcover/pc002.jpg"
tags: [tag03, tag04]
categories: [cat03, cat04]
comments: false
---
The boys laughed and lay down again in the sand, while Granser sighed ponderously. He had eaten too much, and, with hands clasped on his paunch, the fingers interlaced, he resumed his maunderings.
"'The fleeting systems lapse like foam,'" he mumbled what was evidently a quotation. "That's it—foam, and fleeting. All man's toil upon the planet was just so much foam. He domesticated the serviceable animals, destroyed the hostile ones, and cleared the land of its wild vegetation. And then he passed, and the flood of primordial life rolled back again, sweeping his handiwork away—the weeds and the forest inundated his fields, the beasts of prey swept over his flocks, and now there are wolves on the Cliff House beach." He was appalled by the thought. "Where four million people disported themselves, the wild wolves roam to-day, and the savage progeny of our loins, with prehistoric weapons, defend themselves against the fanged despoilers. Think of it! And all because of the Scarlet Death—"
The adjective had caught Hare-Lip's ear.
"He's always saying that," he said to Edwin. "What is scarlet?"
"'The scarlet of the maples can shake me like the cry of bugles going by,'" the old man quoted.
"It's red," Edwin answered the question. "And you don't know it because you come from the Chauffeur Tribe. They never did know nothing, none of them. Scarlet is red—I know that."
"Red is red, ain't it?" Hare-Lip grumbled. "Then what's the good of gettin' cocky and calling it scarlet?"
"Granser, what for do you always say so much what nobody knows?" he asked. "Scarlet ain't anything, but red is red. Why don't you say red, then?"
"Red is not the right word," was the reply. "The plague was scarlet. The whole face and body turned scarlet in an hour's time. Don't I know? Didn't I see enough of it? And I am telling you it was scarlet because—well, because it was scarlet. There is no other word for it."
"Red is good enough for me," Hare-Lip muttered obstinately. "My dad calls red red, and he ought to know. He says everybody died of the Red Death."
Placeholder text by Fillerati . Photography by UNSPLASH .
================================================
FILE: _posts/2016-03-25-Alice-in-Wonderland.markdown
================================================
---
layout: post
title: "Alice in Wonderland"
subtitle: "Lewis Carroll"
active: journal
image:
feature: "pc001.jpg"
date: 2016-03-25
header-img: "img/postcover/pc001.jpg"
tags: [tag01, tag02]
categories: [cat01, cat02]
comments: false
---
The rabbit-hole went straight on like a tunnel for some way, and then dipped suddenly down, so suddenly that Alice had not a moment to think about stopping herself before she found herself falling down a very deep well.
Either the well was very deep, or she fell very slowly, for she had plenty of time as she went down to look about her and to wonder what was going to happen next. First, she tried to look down and make out what she was coming to, but it was too dark to see anything; then she looked at the sides of the well, and noticed that they were filled with cupboards and book-shelves; here and there she saw maps and pictures hung upon pegs. She took down a jar from one of the shelves as she passed; it was labelled 'ORANGE MARMALADE', but to her great disappointment it was empty: she did not like to drop the jar for fear of killing somebody, so managed to put it into one of the cupboards as she fell past it.
'Well!' thought Alice to herself, 'after such a fall as this, I shall think nothing of tumbling down stairs! How brave they'll all think me at home! Why, I wouldn't say anything about it, even if I fell off the top of the house!' (Which was very likely true.)
Down, down, down. Would the fall NEVER come to an end! 'I wonder how many miles I've fallen by this time?' she said aloud. 'I must be getting somewhere near the centre of the earth. Let me see: that would be four thousand miles down, I think—' (for, you see, Alice had learnt several things of this sort in her lessons in the schoolroom, and though this was not a VERY good opportunity for showing off her knowledge, as there was no one to listen to her, still it was good practice to say it over) '—yes, that's about the right distance—but then I wonder what Latitude or Longitude I've got to?' (Alice had no idea what Latitude was, or Longitude either, but thought they were nice grand words to say.)
Presently she began again. 'I wonder if I shall fall right THROUGH the earth! How funny it'll seem to come out among the people that walk with their heads downward! The Antipathies, I think—' (she was rather glad there WAS no one listening, this time, as it didn't sound at all the right word) '—but I shall have to ask them what the name of the country is, you know. Please, Ma'am, is this New Zealand or Australia?' (and she tried to curtsey as she spoke—fancy CURTSEYING as you're falling through the air! Do you think you could manage it?) 'And what an ignorant little girl she'll think me for asking! No, it'll never do to ask: perhaps I shall see it written up somewhere.'
Down, down, down. There was nothing else to do, so Alice soon began talking again. 'Dinah'll miss me very much to-night, I should think!' (Dinah was the cat.) 'I hope they'll remember her saucer of milk at tea-time. Dinah my dear! I wish you were down here with me! There are no mice in the air, I'm afraid, but you might catch a bat, and that's very like a mouse, you know. But do cats eat bats, I wonder?' And here Alice began to get rather sleepy, and went on saying to herself, in a dreamy sort of way, 'Do cats eat bats? Do cats eat bats?' and sometimes, 'Do bats eat cats?' for, you see, as she couldn't answer either question, it didn't much matter which way she put it. She felt that she was dozing off, and had just begun to dream that she was walking hand in hand with Dinah, and saying to her very earnestly, 'Now, Dinah, tell me the truth: did you ever eat a bat?' when suddenly, thump! thump! down she came upon a heap of sticks and dry leaves, and the fall was over.
Alice was not a bit hurt, and she jumped up on to her feet in a moment: she looked up, but it was all dark overhead; before her was another long passage, and the White Rabbit was still in sight, hurrying down it. There was not a moment to be lost: away went Alice like the wind, and was just in time to hear it say, as it turned a corner, 'Oh my ears and whiskers, how late it's getting!' She was close behind it when she turned the corner, but the Rabbit was no longer to be seen: she found herself in a long, low hall, which was lit up by a row of lamps hanging from the roof.
There were doors all round the hall, but they were all locked; and when Alice had been all the way down one side and up the other, trying every door, she walked sadly down the middle, wondering how she was ever to get out again.
Placeholder text by Fillerati . Photography by UNSPLASH .
================================================
FILE: _posts/2016-07-01-images-size-for-better-performance.markdown
================================================
---
layout: "post"
title: "BLOG IMAGE PERFORMANCE IS NECESSARY"
subtitle: "Image format and what Is the Ideal File Size for an Image?"
active: "journal"
image:
feature: "pc008.jpg"
date: "2016-02-01"
header-img: "img/postcover/pc008.jpg"
comments: "true"
---
I would like to thank Marianne , owner of DESIGN YOUR OWN BLOG who gave me permission to link to her post where she is talking about blog image performance.
> Is blog image performance necessary?
>
> Consider this:
>
> Your users don’t want to wait more than 3 seconds for your page to load.
>
> Google pays attention to your website speed and ranks it accordingly.
>
> So I’d say yes, it’s very necessary.
>
> – Marianne
If you care about your readers this post is a MUST READ .
> There are 3 steps (4 for JPEGs) we should take to optimize our images:
>
> Always resize the image to the largest size it will appear.
>
> Further reduce JPEG file size with these tricks.
>
> Reduce quality on save.
>
> Run it through a lossless image compression tool.
>
> – Marianne
This Jekyll template was crafted in order to be used by photobloggers. If the photos you upload are not optimized, the page loading time will increase significantly!
> DO NOT upload an image at its full size, such as 2500 x 3500, and then resize it in the settings after you’ve uploaded it to your blog!
>
> – Marianne
So, dig in her informative post and learn how you can have a fast loading photography website!
"THE BIGGEST MISTAKE YOU’RE PROBABLY MAKING WITH YOUR BLOG IMAGES + CHEAT SHEET"
Thank you Marianne! :)
Featured Image Source
================================================
FILE: about/index.html
================================================
---
layout: page
title: "About"
description: "Statement"
active: about
header-img: "img/about-bg.jpg"
---
CREDITS
The posts were written and exported as markdown ready for publication with Dillinger , a useful online editor.
All the commits were performed with the help of Source Tree app.
The photos are organised in galleries with ISOTOPE .
The search overlay function code lies in SUPER SEARCH .
Image Source: Unsplash
================================================
FILE: bower.json
================================================
{
"name": "photorama",
"description": "Photo Journal",
"main": "index.html",
"moduleType": [],
"authors": [
"Anna Prigkipaki"
],
"license": "Apache-2.0",
"homepage": "",
"private": true,
"ignore": [
"**/.*",
"node_modules",
"bower_components",
"test",
"tests"
]
}
================================================
FILE: css/WYSIWYG.css
================================================
/* WYSIWYG TEXT STYLES
--------------------------------------------------------- */
html { font-family: 'Josefin Sans', sans-serif; font-size: 62.5%; }
body { font-family: 'Josefin Sans', sans-serif; font-size: 1.8em; font-weight: 400; }
/* CONTENT */
body #content { position: relative; }
body #content > .wrapper { padding: 3em 4.5% 0; }
/* Layouts */
body.fullscreen { max-height: 100%; overflow-y: hidden; overflow-x: hidden; background: #000; }
body.fullscreen #content { height: 100vh; overflow: hidden; }
body.fullscreen #content > .wrapper { padding: 0; }
/* Text on Dark Background (over images) */
body.fullscreen ul.social-icons, body.fullscreen #footer p { vertical-align: bottom; padding-bottom: 0; line-height: 1.1; }
body.fullscreen ul.social-icons li a { color: white; }
body.fullscreen .position-absolute { color: #dddddd; bottom: 0; left: 0; width: 100%; padding: 0 4.5%; /*-webkit-transform: translateY(-50%);
-moz-transform: translateY(-50%); -ms-transform: translateY(-50%); transform: translateY(-50%);*/ -webkit-transition: -webkit-transform 0.5s; transition: transform 0.5s; }
/*galleries adapted*/
.masonry-gallery .gallery-item { width: 47.5% !important; }
.fullscreen-gallery.kenburns-gallery canvas { position: relative; }
.fullscreen-gallery .gallery-caption .entry-summary { padding-bottom: 1.5em; }
.vertical-gallery.gallery { height: 400px; margin-top: 2em; }
.vertical-gallery .gallery-icon { width: 90%; }
.vertical-gallery .gallery-caption { width: 90%; position: absolute; bottom: 0; }
.vertical-gallery .gallery-icon img { bottom: auto; top: 0; }
.vertical-gallery .gallery-caption h3 { font-size: 1.4em; }
h1 { font-weight: normal; font-size: 1.7em; margin: 0 0 .5em 0; line-height: 1.4; }
h2 { font-weight: normal; font-size: 1.5em; margin: 0 0 .7em 0; line-height: 1.2; letter-spacing: .01em; }
h3 { font-weight: normal; font-size: 1.25em; margin: 0 0 .5em 0; line-height: 1.4; }
h4 { font-weight: normal; font-size: 1.15em; margin: 0 0 .5em 0; line-height: 1.4; }
h5 { font-weight: bold; font-size: 1em; margin: 0 0 .5em 0; line-height: 1.4; }
h6 { font-weight: bold; font-size: .8em; margin: 0 0 .5em 0; line-height: 1.4; }
p { padding: 0 0 1.5em 0; line-height: 1.6; }
ul, ol { padding: 0; line-height: 1.6; list-style: disc; }
ol { list-style: decimal; }
strong, input, button, .button { font-weight: bold; }
nav ul { list-style: none; }
em { font-style: italic; }
a { color: #EA8E00; text-decoration: none;
-webkit-transition: all .2s ease; -moz-transition: all .2s ease; -ms-transition: all .2s ease; -o-transition: all .2s ease; transition: all .2s ease; }
h1 a, h2 a, h3 a, h4 a, h5 a, h6 a, h2 a:hover, h3 a:hover, h4 a:hover, h5 a:hover, h6 a:hover { text-decoration: none; }
a:hover { text-decoration: none; color: #222; }
img { border: 0; margin-top: 5px; margin-bottom: 2em; max-width: 100%; height: auto; }
p img, h2 img { vertical-align: middle; }
ul ul, ol ol { padding-bottom: 0; }
ul.aligncenter, .aligncenter ul, ol.aligncenter, .aligncenter ol { list-style-position: inside; padding-left: 0; }
.clear { clear: both; }
.alignleft { float: left; }
.alignright { float: right; }
.aligncenter { text-align: center; margin-left: auto; margin-right: auto; }
.justify { text-align: justify; }
.justifyleft { text-align: left; }
.justifyright { text-align: right; }
.hidden { display: none; }
.big, big { font-size: 1.15em; line-height: 1.5; font-weight: 300; }
h2.big { font-size: 240%; letter-spacing: .1em; }
.extrabig { font-size: 1.9em; line-height: 1.3; }
.small, small { font-size: .85em; line-height: 1.5; }
.extrasmall { font-size: .6em; }
h6 .small, h6 .big, .small h6, .big h6 { line-height: 1; }
.big i { font-size: 1.4em; font-weight: normal; }
.extrabig i { font-size: 1.6em; font-weight: normal; }
.serif { font-family: Times, serif; opacity: .8; font-size: 94%; }
.smaller-width { width: 70%; }
.smaller-padding { padding-bottom: 8px; }
.smaller-margin { margin-bottom: 8px; }
.no-padding { padding-bottom: 0; }
.no-margin { margin-bottom: 0; }
.side-padding { padding-left: 10%; padding-right: 10%; }
.position-absolute { position: absolute; }
.bring-up { position: relative; top: -1.8em; }
hr.divider { background: none; border: 0; padding: 1.5em 0; margin: 0; clear: both; }
.image-with-caption { width: 100%; position: relative; background: #222; margin: 0 0 1em 0; }
.image-with-caption img { width: 100%; height: auto; margin: 0 0 -5px 0; -webkit-transition: all .2s ease; -moz-transition: all .2s ease; -ms-transition: all .2s ease; -o-transition: all .2s ease; transition: all .2s ease; }
.image-with-caption figcaption { position: absolute; width: 100%; padding: 1em 2em; bottom: 2em; color: #F7F6F5; font-size: 90%; opacity: 0; -webkit-transition: all .35s ease; -moz-transition: all .35s ease; -ms-transition: all .35s ease; -o-transition: all .35s ease; transition: all .35s ease; }
.image-with-caption:hover figcaption { opacity: 1; bottom: 0; }
.image-with-caption:hover img { opacity: .3; }
.image-with-caption p:first-of-type { font-family: Times, serif; font-style: italic; font-size: .9em; opacity: .8; }
img.alignleft { margin: 5px 20px 20px 0; }
img.alignright { margin: 5px 0 20px 20px; }
p.alignleft, div.alignleft { margin-right: 20px; }
p.alignright, div.alignright { margin-left: 20px; }
img.alignnone.size-full { max-width: 110% !important; width: 110%; margin-left: -1.2em; }
table { width: 100%; margin: 0 0 25px 0; border-collapse: collapse; border: 1px solid rgba(0,0,0,0.15); clear: both; }
table th { background: rgba(0,0,0,.05); text-align: center; padding: 15px; font-size: 1.1em; }
table td { text-align: center; padding: 1em; vertical-align: middle; border-top: 1px solid rgba(0,0,0,0.05); font-size: .95em; }
table tr:nth-child(odd) td { }
table tr:nth-child(even) td { }
table p { padding: 0; }
table sup { vertical-align: text-top; font-size: .55em; display: inline-block; margin: 2px 5px 0 -10px; }
table p.table-top { display: inline-block; background: #EA8E00; color: #F7F6F5; text-transform: uppercase; padding: 7px 1em 5px 1em; font-size: .6em; line-height: 1; position: relative; top: -16px; margin-bottom: 1em; font-weight: bold; letter-spacing: .05em; }
ul.arrows, ul.ticks { padding-left: 2em; }
ul.arrows li, ul.ticks li { list-style: none; position: relative; }
ul.arrows li::before, ul.ticks li::before { position: absolute; left: -1.5em; font-size: 1.1em; font-weight: normal; }
ul.arrows li::before { content: '→'; }
ul.ticks li::before { content: '✔';}
.circle-image { display: inline-block; margin: 0 .8em 0 3px; vertical-align: top; float: left; }
.circle-image img, img.circle-image { width: 80px; height: 80px; border-radius: 40px; margin: -.5em .5em 2em 0; }
.icons-showoff::after { content: ""; display: block; clear: both; }
.icons-showoff p { display: inline-block; text-align: center; width: 100px; font-size: .8em; }
.icons-showoff i { font-size: 2em; display: block; }
/* FOOTER
_____________________________________ */
body.fullscreen #footer {
position: absolute;
display: block;
bottom: 0;
padding-bottom: 3.5em;
right: 0;
z-index: 3;
color: white;
text-align: right;
padding: 2em 4.5% 0;
}
#footer { -webkit-transition: -webkit-transform 0.35s; transition: transform 0.35s; }
ul.soc-icons { list-style: none; display: inline-block; vertical-align: top; padding: 0 0 1.5em .5em; line-height: 1.1; position: relative; z-index: 99; }
ul.soc-icons::after { content: ""; display: block; clear: both; }
ul.soc-icons li { display: inline-block; padding: 0 0 0 1em; font-size: 1.5em; }
ul.soc-icons li a { text-decoration: none !important;}
ul.soc-icons li a:hover i { color: #000;
-moz-animation: spinHorizontal .5s linear;
-o-animation: spinHorizontal .5s linear;
-webkit-animation: spinHorizontal .5s linear;
animation: spinHorizontal .5s linear; }
@-webkit-keyframes spinHorizontal { 0% { transform: rotateY(0deg); } 100% { transform: rotateY(-360deg); } }
@-mox-keyframes spinHorizontal { 0% { transform: rotateY(0deg); } 100% { transform: rotateY(-360deg); } }
@-o-keyframes spinHorizontal { 0% { transform: rotateY(0deg); } 100% { transform: rotateY(-360deg); } }
@keyframes spinHorizontal { 0% { transform: rotateY(0deg); } 100% { transform: rotateY(-360deg); } }
================================================
FILE: css/galleries.css
================================================
/* Galleries */
.gallery { clear: both; width: 100%; margin: 0 0 2em 0; }
.gallery::after { content:""; display: block; clear: both; }
.gallery-item { position: relative; display: block; width: auto; }
.gallery-icon { position: relative; z-index: 9; -webkit-transition: opacity .2s ease; -moz-transition: opacity .2s ease; -ms-transition: opacity .2s ease; -o-transition: opacity .2s ease; transition: opacity .2s ease; }
.gallery-icon a { display: block; width: 100%; height: 100%; position: relative; z-index: 9; }
.gallery-icon img { max-width: 100%; height: auto; margin: 0px; }
.gallery-caption { position: absolute; left: 0; right: 0; bottom: 0; width: 100%; z-index: 10; pointer-events: none; }
.gallery-caption .entry-summary { display: inline-block; position: absolute; width: 100%; bottom: 0; color: #F7F6F5; opacity: 0;
-webkit-transition: all .2s ease; -moz-transition: all .2s ease; -ms-transition: all .2s ease; -o-transition: all .2s ease; transition: all .2s ease; }
.gallery-item:hover .gallery-caption .entry-summary { opacity: 1; }
.gallery-caption h3, .gallery-caption p { -webkit-transition: -webkit-transform 0.35s; transition: transform 0.35s; padding: 0; margin: 0; }
.gallery-item:hover .gallery-caption h3, .gallery-item:hover .gallery-caption p { -webkit-transform: translate3d(0,0,0); transform: translate3d(0,0,0); }
.gallery-caption h3 { font-weight: bold; text-transform: uppercase; font-size: .9em; letter-spacing: 0.05em; }
.gallery-caption .entry-summary > p { font-family: Times, serif; font-style: italic; font-size: .8em; opacity: .8; }
#gallery-filter { display: block; position: relative; top: 12px; }
#gallery-filter ul { list-style: none; padding: 0; margin: 0 0 .3em 0; font-size: .8em; letter-spacing: 0.05em; }
#gallery-filter ul li { display: inline-block; vertical-align: bottom; margin: 0 2em 2em 0; }
#gallery-filter ul li a { display: block; color: #222; position: relative; }
#gallery-filter ul li a:hover { }
#gallery-filter ul li a.active { }
#gallery-filter ul li a::after { content: ""; display: block; border-bottom: 2px solid #EA8E00; width: 0; position: absolute; bottom: 0; left: 0; right: 0;
-webkit-transform: scale(0,1); transform: scale(0,1);
-webkit-transform-origin: 50% 0; transform-origin: 50% 0;
-webkit-transition: -webkit-transform 0.35s; transition: transform 0.35s; }
#gallery-filter ul li a.active::after { width: 100%; -webkit-transform: scale(1); transform: scale(1); }
#gallery-filter ul li a:hover::after { width: 100%; -webkit-transform: scale(1); transform: scale(1); }
#grid-changer { display: inline-block; float: right; margin-top: -2.6em; z-index: 12; }
#grid-changer ul { display: inline-block; list-style: none; padding: 0; margin: 0 0 .3em 0; font-size: .8em; letter-spacing: 0.05em; }
#grid-changer ul li { display: inline-block; vertical-align: top; margin: -.3em 0 0 .2em; }
#grid-changer ul li a { display: block; width: 30px; height: 30px; line-height: 30px; text-align: center; color: #ccc; position: relative; border: 2px solid #999;
-webkit-transition: all .2s ease; -moz-transition: all .2s ease; -ms-transition: all .2s ease; -o-transition: all .2s ease; transition: all .2s ease; }
#grid-changer ul li a.active, #grid-changer ul li a.active:hover { border-color: #222; color: #222; }
#grid-changer ul li a:hover { border-color: #EA8E00; color: #EA8E00; }
#grid-changer svg { fill: #222; }
.masonry-gallery.gallery { z-index: 0; width: 102.2%; margin: 0 0 1em 0; }
.masonry-gallery .gallery-item { margin: 0 2% 1.3em 0; background: transparent; width: 31.3%; }
.masonry-gallery .gallery-item.col-2 { width: 48%; }
.masonry-gallery .gallery-item.col-3 { width: 31.3%; }
.masonry-gallery .gallery-item.col-4 { width: 23%; }
.masonry-gallery .gallery-item.col-5 { width: 18%; }
.masonry-gallery .gallery-item.col-6 { width: 14.66%; }
.masonry-gallery .gallery-item.col-7 { width: 12.28%; }
.masonry-gallery .gallery-item.col-8 { width: 10.5%; }
.masonry-gallery .gallery-item:hover .gallery-icon { opacity: 1; }
.masonry-gallery .gallery-icon { text-align: center; }
.masonry-gallery .gallery-caption .entry-summary { text-align: center; bottom: 0; padding: 1em; font-size: .8em; color: #F7F6F5; }
.masonry-gallery .gallery-item.col-5 .gallery-caption { font-size: .85em; }
.masonry-gallery .gallery-caption h3 { -webkit-transform: translate3d(0,-20px,0); transform: translate3d(0,-20px,0); margin-bottom: .5em; }
.masonry-gallery .gallery-caption p { -webkit-transform: translate3d(0,20px,0); transform: translate3d(0,20px,0); padding-bottom: 1em; }
.fullscreen-gallery.gallery { height: 100vh !important; margin: 0; -webkit-transition: -webkit-transform 0.35s; transition: transform 0.35s; }
.fullscreen-gallery .gallery-caption { position: absolute; bottom: 0; left: 0; z-index: 99; pointer-events: auto; }
.fullscreen-gallery .gallery-caption .entry-summary { width: 100%; bottom: 0; padding: 2.5em 4.5%; opacity: 1; }
.fullscreen-gallery .gallery-item { height: 100%; width: 100%; }
.fullscreen-gallery .gallery-icon { height: 100%; width: 100%; }
.fullscreen-gallery .gallery-video { height: 100%; width: 100%; background-size: cover; }
.fullscreen-gallery .gallery-video video { height: 100%; width: 100%; display: inline-block; vertical-align: baseline; }
.fullscreen-gallery .gallery-icon img { min-width: 100%; min-height: 100%; }
.fullscreen-gallery .gallery-caption h3 { font-size: 1.15em; margin-bottom: .3em; text-transform: none; }
.fullscreen-gallery.kenburns-gallery .gallery-icon { display: none; }
.fullscreen-gallery.kenburns-gallery canvas { z-index: -1; position: absolute; left: 0; top: 0; }
iframe#okplayer { min-width: 100%; min-height: 100%; }
#gallerynav { display: inline-block; padding: 0 1em; }
#gallerynav a { color: #F7F6F5; padding: .3em; font-size: 1.5em; font-weight: bold; }
#gallerynav a svg { fill: #F7F6F5; vertical-align: bottom; }
#gallerynav a.thumbs { padding: 0 1.5em 0 0; }
#gallerynav a:hover, #gallerynav a.active { color: #EA8E00; }
#gallerynav a:hover svg { fill: #EA8E00; }
#gallerynav a.pause { font-size: .7em; padding-left: .9em; position: relative; top: -3px; font-weight: normal; }
#gallerythumbs { position: fixed; width: 100%; height: 120px; text-align: left; left: 0; bottom: -24px;/*hide scroll track*/ z-index: 888; white-space: nowrap; padding: 0 !important; overflow: hidden; overflow-x: scroll; background: #222;
-webkit-transform: translate3d(0,100%,0); transform: translate3d(0,100%,0);
-webkit-transition: -webkit-transform 0.4s; transition: transform 0.4s; }
#gallerythumbs.reveal { -webkit-transform: translate3d(0,0,0); transform: translate3d(0,0,0); }
#gallerythumbs li { display: inline-block; height: 120px; width: auto; margin: 0; list-style: none; vertical-align: bottom;
opacity: 1; -webkit-transition: opacity .4s ease; -moz-transition: opacity .4s ease; -ms-transition: opacity .4s ease; -o-transition: opacity .4s ease; transition: opacity .4s ease; }
#gallerythumbs:hover li { opacity: .5; }
#gallerythumbs:hover li:hover { opacity: 1; }
#gallerythumbs li img { width: auto; height: 100%; margin: 0; }
body.gallerythumbsrevealed #footer { -webkit-transform: translate3d(0,-64px,0); transform: translate3d(0,-64px,0); }
body.gallerythumbsrevealed .gallery { -webkit-transform: translate3d(0,-64px,0); transform: translate3d(0,-64px,0); }
body.gallerythumbsrevealed .position-absolute { -webkit-transform: translate3d(0,-64px,0); transform: translate3d(0,-64px,0); }
.horizontal-gallery.gallery { height: 50vh; white-space: nowrap; overflow-x: auto; overflow-y: hidden; width: 109%; margin: 0 0 1.5em -4.5%; }
.horizontal-gallery .gallery-item { display: inline-block; vertical-align: top; height: 100%; width: auto; margin: 0 .2em 0 0; }
.horizontal-gallery .gallery-item:last-child { margin-right: 0; }
.horizontal-gallery .gallery-icon { display: block; width: 100%; height: 100%; }
.horizontal-gallery .gallery-icon img { height: 98%; width: auto; max-width: 9999px; }
.horizontal-gallery .gallery-caption { white-space: normal; font-size: .85em; padding: 2em; }
.horizontal-gallery .gallery-caption h3 { margin-bottom: .3em; -webkit-transform: translate3d(-10px,0,0); transform: translate3d(-10px,0,0); }
.horizontal-gallery .gallery-caption p { -webkit-transform: translate3d(0,0,0); transform: translate3d(-5px,0,0); padding-bottom: 2em; }
.vertical-gallery.gallery { height: 62vh; margin-bottom: 1em; margin-top: -4em; }
.vertical-gallery .gallery-item { height: 100%; width: 100%; clear: both; }
.vertical-gallery .gallery-icon { display: inline-block; width: 50%; height: 100%; float: right; }
.vertical-gallery .gallery-icon img { width: auto; max-height: 100%; max-width: 100%; float: right; position: absolute; bottom: 0; right: 0; }
.vertical-gallery .gallery-caption { position: relative; display: inline-block; width: 45%; height: 100%; float: left; opacity: 0; }
.vertical-gallery .gallery-caption .entry-summary { color: #222; opacity: 1; bottom: 10%; padding: 0 0 0 5em; text-align: left; }
.vertical-gallery .gallery-caption h3 { font-size: 2em; line-height: 1.1; margin-bottom: .5em; }
#gallerypuntiks { width: 18px; position: absolute; bottom: 0; z-index: 90; }
#gallerypuntiks a { display: inline-block; width: 10px; height: 10px; border: 2px solid #999; border-radius: 5px; font-size: 0; margin: .5em; clear: both; background: #F7F6F5; padding: .5em; -webkit-transition: all .4s ease; -moz-transition: all .4s ease; -ms-transition: all .4s ease; -o-transition: all .4s ease; transition: all .4s ease; }
#gallerypuntiks a:hover { border-color: #EA8E00; }
#gallerypuntiks a.activeSlide { border-color: #222; }
.before-after { max-width: 100%; clear: both; float: left; margin: 0 2em 1em 0; }
.before-after .gallery-icon a::after { display: none; }
.gallery.no-margin { margin-bottom: 0 !important; }
/* Popup image */
body.mfp-zoom-out-cur #header, body.mfp-zoom-out-cur #content, body.mfp-zoom-out-cur #sidebar { -webkit-filter: blur(2px); -moz-filter: blur(2px); -o-filter: blur(2px); -ms-filter: blur(2px); filter: blur(2px); }
.mfp-bg { background: #F7F6F5; opacity: 0.7; }
.mfp-figure:after { box-shadow: none; border: 8px solid rgba(255,255,255,0.8); }
img.mfp-img { padding: 0; }
.mfp-counter { color: #F7F6F5; background: #222; padding: 0.5em 1em; margin-right: -2em;
-webkit-clip-path: polygon(15% 0%, 100% 0%, 85% 100%, 0% 100%);
-moz-clip-path: polygon(15% 0%, 100% 0%, 85% 100%, 0% 100%);
-o-clip-path: polygon(15% 0%, 100% 0%, 85% 100%, 0% 100%);
-ms-clip-path: polygon(15% 0%, 100% 0%, 85% 100%, 0% 100%);
clip-path: polygon(15% 0%, 100% 0%, 85% 100%, 0% 100%); }
.mfp-container button { box-shadow: none; background: none; }
.mfp-container button.mfp-arrow-right { background: transparent url("../img/right-arrow.svg") no-repeat center center; }
.mfp-container button.mfp-arrow-right::before, .mfp-container button.mfp-arrow-right::after { display: none; }
.mfp-container button.mfp-arrow-left { background: transparent url("../img/left-arrow.svg") no-repeat center center; }
.mfp-container button.mfp-arrow-left::before, .mfp-container button.mfp-arrow-left::after { display: none; }
/*galleries adapted*/
.masonry-gallery .gallery-item { width: 30% !important; }
@media screen and (max-height: 480px) {
/*header smaller space*/
#header { padding-top: 2em; }
/*galleries adapted*/
.fullscreen-gallery .gallery-caption .entry-summary { padding-bottom: 2em; }
.masonry-gallery .gallery-item {width: 98% !important;}
}
@media screen and (max-width: 640px) and (orientation: portrait) {
/*galleries adapted*/
.fullscreen-gallery .gallery-caption .entry-summary { padding-bottom: 5em; }
.masonry-gallery .gallery-item { width: 98% !important; }
================================================
FILE: css/journal.css
================================================
.section--postsWrapper
{
width: 100%;
background: #000;
padding-top: 20px;
position: relative;
clear: both;
}
.blockGroup
{
margin: 0;
padding: 0;
}
.blockGroup-list {
list-style: none;
padding: 0;
margin-top: 0rem;
margin-left: -25px;
margin-right: 20px;
display: -webkit-box;
display: -webkit-flex;
display: -ms-flexbox;
display: flex;
-webkit-flex-wrap: wrap;
-ms-flex-wrap: wrap;
flex-wrap: wrap;
-webkit-box-align: stretch;
-webkit-align-items: stretch;
-ms-flex-align: stretch;
align-items: stretch;
clear: both;
}
.blockGroup-list li
{
padding: 0 10px;
}
.blockGroup-list .block {
display: block;
width: 100%;
margin-bottom: 1.5rem;
font-family: "Roboto", sans-serif;
display: -webkit-flex;
display: -ms-flexbox;
display: -webkit-box;
display: flex;
}
@media (max-width: 767px)
{
.blockGroup-list .block
{
width: 100%;
}
}
.blockGroup-list li:nth-child(1).block
{
width: 100%;
}
.blockGroup-list li:nth-child(1).block .postArticle-image
{
padding-top: 30%;
position: center;
}
@media (max-width: 767px)
{
.blockGroup-list li:nth-child(1).block .postArticle-image
{
padding-top: 50%;
}
}
.blockGroup-list li:nth-child(1).block .postArticle-title
{
color: #fff;
font-size: 1rem;
}
.blockGroup-list li:nth-child(2).block,
.blockGroup-list li:nth-child(3).block
{
width: 100%;
}
.blockGroup-list li:nth-child(2).block .postArticle-image
{
padding-top: 25%;
background-size: 50%;
background-position: left;
}
.blockGroup-list li:nth-child(3).block .postArticle-image
{
padding-top: 25%;
background-size: 50%;
background-position: right;
}
.blockGroup-list li:nth-child(2).block .postArticle-title,
.blockGroup-list li:nth-child(3).block .postArticle-title
{
font-size: 1rem;
}
@media (max-width: 767px)
{
.blockGroup-list li:nth-child(2).block,
.blockGroup-list li:nth-child(3).block
{
width: 100%;
}
}
.blockGroup-list li .postArticle-title
{
color: #fff;
font-size: 0.75rem;
line-height: 1.5;
}
.blockGroup-list .postArticle-wrapper
{
position: relative;
background: #000;
width: 100%;
-webkit-box-shadow: 4px 4px 4px 4px rgba(255, 255, 255, 0);
box-shadow: 4px 4px 4px 4px rgba(255, 255, 255, 0);
}
.blockGroup-list .postArticle-wrapper:hover
{
-webkit-transition: -webkit-box-shadow 0.2s cubic-bezier(0.4, 0.4, 0.4, 0.4, 1);
transition: box-shadow 0.2s cubic-bezier(0.4, 0.4, 0.4, 0.4, 1);
-webkit-box-shadow: 4px 4px 4px 4px rgba(255, 255, 255, 0.8);
box-shadow: 4px 4px 24px 4px rgba(255, 255, 255, 0.8);
}
.blockGroup-list .postArticle a
{
display: block;
color: #fff;
margin-top: 0.75rem;
font-weight: 300;
text-align: center;
}
.blockGroup-list li:nth-child(2).block .postArticle-title
{
display: block;
color: #fff;
margin-top: 0.75rem;
text-align: left;
font-weight: 300;
}
.blockGroup-list li:nth-child(3).block .postArticle-title
{
display: block;
color: #fff;
margin-top: 0.75rem;
font-weight: 300;
text-align: right;
}
.blockGroup-list .postArticle-image {
background-size: 100%;
background-repeat: no-repeat;
background-position: center;
padding-top: 100%;
-webkit-transition-property: all, left, top, width;
-webkit-transition-duration: .5s, .1s, .1s, .1s;
-webkit-transition-timing-function: cubic-bezier(0.33, 0, 0.2, 1);
-webkit-transition-delay: 0;
-moz-transition-property: all, left, top, width;
-moz-transition-duration: .5s, .1s, .1s, .1s;
-moz-transition-timing-function: cubic-bezier(0.33, 0, 0.2, 1);
-moz-transition-delay: 0;
-ms-transition-property: all, left, top, width;
-ms-transition-duration: .5s, .1s, .1s, .1s;
-ms-transition-timing-function: cubic-bezier(0.33, 0, 0.2, 1);
-ms-transition-delay: 0;
-o-transition-property: all, left, top, width;
-o-transition-duration: .5s, .1s, .1s, .1s;
-o-transition-timing-function: cubic-bezier(0.33, 0, 0.2, 1);
-o-transition-delay: 0;
-webkit-transition-property: all, left, top, width;
transition-property: all, left, top, width;
-webkit-transition-duration: .5s, .1s, .1s, .1s;
transition-duration: .5s, .1s, .1s, .1s;
-webkit-transition-timing-function: cubic-bezier(0.33, 0, 0.2, 1);
transition-timing-function: cubic-bezier(0.33, 0, 0.2, 1);
}
@media (max-width: 767px)
{
.blockGroup-list .postArticle-image
{
padding-top: 50%;
}
}
.blockGroup-list li:nth-child(2).block .block-postMeta
{
display: block;
color: #fff;
font-size: 15px;
text-transform: uppercase;
text-align: left;
}
.blockGroup-list li:nth-child(3).block .block-postMeta
{
display: block;
bottom: 0;
padding-bottom: 10px;
color: #fff;
font-size: 15px;
text-transform: uppercase;
text-align: right;
}
.blockGroup-list .postArticle-title,
.blockGroup-list .block-postMeta
{
color: #fff;
padding-left: 15px;
padding-right: 15px;
text-align: center;
}
================================================
FILE: css/magnificpopup.css
================================================
/* Magnific Popup CSS */
.mfp-bg {
top: 0;
left: 0;
width: 100%;
height: 100%;
z-index: 1042;
overflow: hidden;
position: fixed;
background: #0b0b0b;
opacity: 0.8; }
.mfp-wrap {
top: 0;
left: 0;
width: 100%;
height: 100%;
z-index: 1043;
position: fixed;
outline: none !important;
-webkit-backface-visibility: hidden; }
.mfp-container {
text-align: center;
position: absolute;
width: 100%;
height: 100%;
left: 0;
top: 0;
padding: 0 8px;
box-sizing: border-box; }
.mfp-container:before {
content: '';
display: inline-block;
height: 100%;
vertical-align: middle; }
.mfp-align-top .mfp-container:before {
display: none; }
.mfp-content {
position: relative;
display: inline-block;
vertical-align: middle;
margin: 0 auto;
text-align: left;
z-index: 1045; }
.mfp-inline-holder .mfp-content,
.mfp-ajax-holder .mfp-content {
width: 100%;
cursor: auto; }
.mfp-ajax-cur {
cursor: progress; }
.mfp-zoom-out-cur, .mfp-zoom-out-cur .mfp-image-holder {
cursor: -moz-zoom-out;
cursor: -webkit-zoom-out;
cursor: zoom-out; }
.mfp-zoom {
cursor: pointer;
cursor: -webkit-zoom-in;
cursor: -moz-zoom-in;
cursor: zoom-in; }
.mfp-auto-cursor .mfp-content {
cursor: auto; }
.mfp-close,
.mfp-arrow,
.mfp-preloader,
.mfp-counter {
-webkit-user-select: none;
-moz-user-select: none;
user-select: none; }
.mfp-loading.mfp-figure {
display: none; }
.mfp-hide {
display: none !important; }
.mfp-preloader {
color: #CCC;
position: absolute;
top: 50%;
width: auto;
text-align: center;
margin-top: -0.8em;
left: 8px;
right: 8px;
z-index: 1044; }
.mfp-preloader a {
color: #CCC; }
.mfp-preloader a:hover {
color: #FFF; }
.mfp-s-ready .mfp-preloader {
display: none; }
.mfp-s-error .mfp-content {
display: none; }
button.mfp-close,
button.mfp-arrow {
overflow: visible;
cursor: pointer;
background: transparent;
cursor: pointer;
border: 0;
-webkit-appearance: none;
display: block;
outline: none;
padding: 0;
z-index: 1046;
box-shadow: none;
touch-action: manipulation; }
button::-moz-focus-inner {
padding: 0;
border: 0; }
.mfp-close {
width: 44px;
height: 44px;
line-height: 44px;
position: absolute;
right: 0;
top: 0;
text-decoration: none;
text-align: center;
opacity: 0.65;
padding: 0 0 18px 10px;
color: #FFF;
font-style: normal;
font-size: 28px;
font-family: Arial, Baskerville, monospace; }
.mfp-close:hover,
.mfp-close:focus {
opacity: 1; }
.mfp-close:active {
top: 1px; }
.mfp-close-btn-in .mfp-close {
color: #333; }
.mfp-image-holder .mfp-close,
.mfp-iframe-holder .mfp-close {
color: #FFF;
right: -6px;
text-align: right;
padding-right: 6px;
width: 100%; }
.mfp-counter {
position: absolute;
top: 0;
right: 0;
color: #CCC;
font-size: 12px;
line-height: 18px;
white-space: nowrap; }
.mfp-arrow {
position: absolute;
opacity: 0.65;
margin: 0;
top: 50%;
margin-top: -55px;
padding: 0;
width: 90px;
height: 110px;
-webkit-tap-highlight-color: transparent; }
.mfp-arrow:active {
margin-top: -54px; }
.mfp-arrow:hover,
.mfp-arrow:focus {
opacity: 1; }
.mfp-arrow:before,
.mfp-arrow:after {
content: '';
display: block;
width: 0;
height: 0;
position: absolute;
left: 0;
top: 0;
margin-top: 35px;
margin-left: 35px;
border: medium inset transparent; }
.mfp-arrow:after {
border-top-width: 13px;
border-bottom-width: 13px;
top: 8px; }
.mfp-arrow:before {
border-top-width: 21px;
border-bottom-width: 21px;
opacity: 0.7; }
.mfp-arrow-left {
left: 0; }
.mfp-arrow-left:after {
border-right: 17px solid #FFF;
margin-left: 31px; }
.mfp-arrow-left:before {
margin-left: 25px;
border-right: 27px solid #3F3F3F; }
.mfp-arrow-right {
right: 0; }
.mfp-arrow-right:after {
border-left: 17px solid #FFF;
margin-left: 39px; }
.mfp-arrow-right:before {
border-left: 27px solid #3F3F3F; }
.mfp-iframe-holder {
padding-top: 40px;
padding-bottom: 40px; }
.mfp-iframe-holder .mfp-content {
line-height: 0;
width: 100%;
max-width: 900px; }
.mfp-iframe-holder .mfp-close {
top: -40px; }
.mfp-iframe-scaler {
width: 100%;
height: 0;
overflow: hidden;
padding-top: 56.25%; }
.mfp-iframe-scaler iframe {
position: absolute;
display: block;
top: 0;
left: 0;
width: 100%;
height: 100%;
box-shadow: 0 0 8px rgba(0, 0, 0, 0.6);
background: #000; }
/* Main image in popup */
img.mfp-img {
width: auto;
max-width: 100%;
height: auto;
display: block;
line-height: 0;
box-sizing: border-box;
padding: 40px 0 40px;
margin: 0 auto; }
/* The shadow behind the image */
.mfp-figure {
line-height: 0; }
.mfp-figure:after {
content: '';
position: absolute;
left: 0;
top: 40px;
bottom: 40px;
display: block;
right: 0;
width: auto;
height: auto;
z-index: -1;
box-shadow: 0 0 8px rgba(0, 0, 0, 0.6);
background: #444; }
.mfp-figure small {
color: #BDBDBD;
display: block;
font-size: 12px;
line-height: 14px; }
.mfp-figure figure {
margin: 0; }
.mfp-bottom-bar {
margin-top: -36px;
position: absolute;
top: 100%;
left: 0;
width: 100%;
cursor: auto; }
.mfp-title {
text-align: left;
line-height: 18px;
color: #F3F3F3;
word-wrap: break-word;
padding-right: 36px; }
.mfp-image-holder .mfp-content {
max-width: 100%; }
.mfp-gallery .mfp-image-holder .mfp-figure {
cursor: pointer; }
@media screen and (max-width: 800px) and (orientation: landscape), screen and (max-height: 300px) {
/**
* Remove all paddings around the image on small screen
*/
.mfp-img-mobile .mfp-image-holder {
padding-left: 0;
padding-right: 0; }
.mfp-img-mobile img.mfp-img {
padding: 0; }
.mfp-img-mobile .mfp-figure:after {
top: 0;
bottom: 0; }
.mfp-img-mobile .mfp-figure small {
display: inline;
margin-left: 5px; }
.mfp-img-mobile .mfp-bottom-bar {
background: rgba(0, 0, 0, 0.6);
bottom: 0;
margin: 0;
top: auto;
padding: 3px 5px;
position: fixed;
box-sizing: border-box; }
.mfp-img-mobile .mfp-bottom-bar:empty {
padding: 0; }
.mfp-img-mobile .mfp-counter {
right: 5px;
top: 3px; }
.mfp-img-mobile .mfp-close {
top: 0;
right: 0;
width: 35px;
height: 35px;
line-height: 35px;
background: rgba(0, 0, 0, 0.6);
position: fixed;
text-align: center;
padding: 0; } }
@media all and (max-width: 900px) {
.mfp-arrow {
-webkit-transform: scale(0.75);
transform: scale(0.75); }
.mfp-arrow-left {
-webkit-transform-origin: 0;
transform-origin: 0; }
.mfp-arrow-right {
-webkit-transform-origin: 100%;
transform-origin: 100%; }
.mfp-container {
padding-left: 6px;
padding-right: 6px; } }
================================================
FILE: css/main.css
================================================
body {
font-family: 'Open Sans', 'Helvetica Neue', Helvetica, Arial, sans-serif;
font-size: 20px;
color: #eee;
background-color: #000;
}
p {
line-height: 1.5;
margin: 30px 0;
}
p a {
text-decoration: none;
}
h1,
h2,
h3,
h4,
h5,
h6 {
font-family: 'Open Sans', 'Helvetica Neue', Helvetica, Arial, sans-serif;
font-weight: 800;
}
a {
color: #760824;
transition: color .4s;
text-decorarion: none;
}
a:hover,
a:focus {
color: #fff;
transition: color .3s;
outline: none;
text-shadow:none;
}
a img:hover,
a img:focus {
cursor: zoom-in;
outline: none;
}
blockquote {
color: #808080;
font-style: italic;
}
hr.small {
max-width: 100px;
margin: 15px auto;
border-width: 4px;
border-color: white;
}
.navbar-custom {
background-color: transparent;
position: absolute;
top: 0;
left: 0;
width: 100%;
font-family: 'Open Sans', 'Helvetica Neue', Helvetica, Arial, sans-serif;
}
.navbar-custom .navbar-brand {
font-weight: 800;
}
.navbar-custom .nav li a {
color: white;
text-transform: uppercase;
font-size: 12px;
font-weight: 800;
letter-spacing: 1px;
}
@media only screen and (min-width: 768px) {
.navbar-custom {
background: transparent;
border-bottom: 1px solid transparent;
}
.navbar-custom .navbar-brand {
color: white;
padding: 20px;
}
.navbar-custom .navbar-brand:hover,
.navbar-custom .navbar-brand:focus {
color: #0085a1;
}
.navbar-custom .nav li a {
color: white;
padding: 20px;
}
.navbar-custom .nav li a:hover{
color: #0085a1;
}
}
@media only screen and (min-width: 1170px) {
.navbar-custom {
-webkit-transition: background-color 0.3s;
-moz-transition: background-color 0.3s;
transition: background-color 0.3s;
/* Force Hardware Acceleration in WebKit */
-webkit-transform: translate3d(0, 0, 0);
-moz-transform: translate3d(0, 0, 0);
-ms-transform: translate3d(0, 0, 0);
-o-transform: translate3d(0, 0, 0);
transform: translate3d(0, 0, 0);
-webkit-backface-visibility: hidden;
backface-visibility: hidden;
}
.navbar-custom.is-fixed {
/* when the user scrolls down, we hide the header right above the viewport */
position: fixed;
top: -61px;
background-color: rgba(0, 0, 0, 0.9);
-webkit-transition: -webkit-transform 0.3s;
-moz-transition: -moz-transform 0.3s;
transition: transform 0.3s;
}
.navbar-custom.is-fixed .navbar-brand {
color: #ffffff;
}
.navbar-custom.is-fixed .navbar-brand:hover {
color: #0085a1;
}
.navbar-custom.is-fixed .nav li a:hover {
color: #0085a1;
}
.navbar-custom.is-fixed .nav li a:active{
color: #6ec54d;
}
.navbar-custom.is-visible {
/* if the user changes the scrolling direction, we show the header */
-webkit-transform: translate3d(0, 100%, 0);
-moz-transform: translate3d(0, 100%, 0);
-ms-transform: translate3d(0, 100%, 0);
-o-transform: translate3d(0, 100%, 0);
transform: translate3d(0, 100%, 0);
}
}
.intro-header {
background: no-repeat center center;
background-color: #808080;
background-attachment: scroll;
-webkit-background-size: cover;
-moz-background-size: cover;
background-size: cover;
-o-background-size: cover;
margin-bottom: 50px;
}
.intro-header .site-heading,
.intro-header .post-heading,
.intro-header .page-heading {
padding: 100px 0 50px;
color: white;
}
@media only screen and (min-width: 768px) {
.intro-header .site-heading,
.intro-header .post-heading,
.intro-header .page-heading {
padding: 150px 0;
}
}
.intro-header .site-heading,
.intro-header .page-heading {
text-align: center;
}
.intro-header .site-heading h1,
.intro-header .page-heading h1 {
margin-top: 0;
font-size: 50px;
text-shadow: 1px 1px 4px #000;
}
.intro-header .site-heading .subheading,
.intro-header .page-heading .subheading {
font-size: 24px;
line-height: 1.1;
display: block;
font-family: 'Open Sans', 'Helvetica Neue', Helvetica, Arial, sans-serif;
font-weight: 300;
margin: 10px 0 0;
text-shadow: 1px 1px 4px #000;
}
@media only screen and (min-width: 768px) {
.intro-header .site-heading h1,
.intro-header .page-heading h1 {
font-size: 80px;
text-shadow: 1px 1px 4px #000;
}
}
.intro-header .post-heading h1 {
font-size: 35px;
}
.intro-header .post-heading .subheading,
.intro-header .post-heading .meta {
line-height: 1.1;
display: block;
}
.intro-header .post-heading .subheading {
font-family: 'Open Sans', 'Helvetica Neue', Helvetica, Arial, sans-serif;
font-size: 24px;
margin: 10px 0 30px;
font-weight: 600;
text-shadow: 1px 1px 4px #000;
}
.intro-header .post-heading .meta {
font-family: 'Open Sans', 'Helvetica Neue', Helvetica, Arial, sans-serif;
font-style: italic;
text-shadow: 1px 1px 4px #000;
font-size: 20px;
}
.intro-header .post-heading .meta a {
color: white;
}
@media only screen and (min-width: 768px) {
.intro-header .post-heading h1 {
font-size: 55px;
}
.intro-header .post-heading .subheading {
font-size: 30px;
text-shadow: 1px 1px 4px #000;
}
}
.post-preview > a {
color: #f5f5f5;
}
.post-preview > a:hover,
.post-preview > a:focus {
text-decoration: none;
color: #0085a1;
}
.post-preview > a > .post-title {
font-size: 30px;
margin-top: 30px;
margin-bottom: 10px;
}
.post-preview > a > .post-subtitle {
margin: 0;
font-weight: 300;
margin-bottom: 10px;
}
.post-preview > .post-meta {
color: #808080;
font-size: 18px;
font-style: italic;
margin-top: 0;
}
.post-preview > .post-meta > a {
text-decoration: none;
color: #404040;
}
.post-preview > .post-meta > a:hover,
.post-preview > .post-meta > a:focus {
color: #0085a1;
text-decoration: underline;
}
@media only screen and (min-width: 768px) {
.post-preview > a > .post-title {
font-size: 36px;
}
}
.section-heading {
font-size: 36px;
margin-top: 60px;
font-weight: 700;
}
.caption {
text-align: center;
font-size: 14px;
padding: 10px;
font-style: italic;
margin: 0;
display: block;
border-bottom-right-radius: 5px;
border-bottom-left-radius: 5px;
}
footer {
margin: -30px 0 0px;
}
footer .list-inline {
margin: 0;
padding: 0;
}
footer .copyright {
font-size: 14px;
text-align: center;
margin-bottom: 0;
}
.floating-label-form-group {
font-size: 14px;
position: relative;
margin-bottom: 0;
padding-bottom: 0.5em;
border-bottom: 1px solid #eeeeee;
}
.floating-label-form-group input,
.floating-label-form-group textarea {
z-index: 1;
position: relative;
padding-right: 0;
padding-left: 0;
border: none;
border-radius: 0;
font-size: 1.5em;
background: none;
box-shadow: none !important;
resize: none;
}
.floating-label-form-group label {
display: block;
z-index: 0;
position: relative;
top: 2em;
margin: 0;
font-size: 0.85em;
line-height: 1.764705882em;
vertical-align: middle;
vertical-align: baseline;
opacity: 0;
-webkit-transition: top 0.3s ease,opacity 0.3s ease;
-moz-transition: top 0.3s ease,opacity 0.3s ease;
-ms-transition: top 0.3s ease,opacity 0.3s ease;
transition: top 0.3s ease,opacity 0.3s ease;
}
.floating-label-form-group::not(:first-child) {
padding-left: 14px;
border-left: 1px solid #eeeeee;
}
.floating-label-form-group-with-value label {
top: 0;
opacity: 1;
}
.floating-label-form-group-with-focus label {
color: #0085a1;
}
form .row:first-child .floating-label-form-group {
border-top: 1px solid #eeeeee;
}
.btn {
font-family: 'Open Sans', 'Helvetica Neue', Helvetica, Arial, sans-serif;
text-transform: uppercase;
font-size: 14px;
font-weight: 800;
letter-spacing: 1px;
border-radius: 0;
padding: 15px 25px;
}
.btn-lg {
font-size: 16px;
padding: 25px 35px;
}
.btn-default:hover,
.btn-default:focus {
background-color: #0085a1;
border: 1px solid #0085a1;
color: white;
}
.pager {
margin: 20px 0 0;
}
.pager li > a,
.pager li > span {
font-family: 'Open Sans', 'Helvetica Neue', Helvetica, Arial, sans-serif;
text-transform: uppercase;
font-size: 14px;
font-weight: 800;
letter-spacing: 1px;
padding: 10px 5px;
background-color: black;
}
@media only screen and (min-width: 768px) {
.pager li > a,
.pager li > span {
font-size: 14px;
padding: 15px 25px;
}
}
.pager li > a:hover,
.pager li > a:focus {
color: white;
background-color: black;
}
.pager .disabled > a,
.pager .disabled > a:hover,
.pager .disabled > a:focus,
.pager .disabled > span {
color: #808080;
background-color: #404040;
cursor: not-allowed;
}
::-moz-selection {
color: white;
text-shadow: none;
background: #0085a1;
}
::selection {
color: white;
text-shadow: none;
background: #0085a1;
}
img::selection {
color: white;
background: transparent;
}
img::-moz-selection {
color: white;
background: transparent;
}
body {
webkit-tap-highlight-color: #0085a1;
}
.fa-stack-2x {
color: black;
}
================================================
FILE: css/selena.css
================================================
/*-----------------*/
/***** Selena *****/
/*-----------------*/
figure.effect-selena {
background: #530720;
}
figure.effect-selena img {
cursor: default;
opacity: 1;
-webkit-transition: -webkit-transform 0.35s;
transition: transform 0.35s;
-webkit-transform-origin: 50% 50%;
transform-origin: 50% 50%;
}
figure.effect-selena:hover img {
-webkit-transform: scale3d(0.95,0.95,1);
transform: scale3d(0.95,0.95,1);
}
figure.effect-selena h2 {
-webkit-transition: -webkit-transform 0.35s;
transition: transform 0.35s;
-webkit-transform: translate3d(0,20px,0);
transform: translate3d(0,20px,0);
}
figure.effect-selena p {
opacity: 0;
-webkit-transition: opacity 0.35s, -webkit-transform 0.35s;
transition: opacity 0.35s, transform 0.35s;
-webkit-transform: perspective(1000px) rotate3d(1,0,0,90deg);
transform: perspective(1000px) rotate3d(1,0,0,90deg);
-webkit-transform-origin: 50% 0%;
transform-origin: 50% 0%;
}
figure.effect-selena:hover h2 {
-webkit-transform: translate3d(0,0,0);
transform: translate3d(0,0,0);
}
figure.effect-selena:hover p {
opacity: 1;
-webkit-transform: perspective(1000px) rotate3d(1,0,0,0);
transform: perspective(1000px) rotate3d(1,0,0,0);
}
================================================
FILE: css/super-search.css
================================================
/* super-search
Author: Kushagra Gour (http://kushagragour.in)
MIT Licensed
*/
.super-search-btn {
color: #fff;
transition: color .4s;
text-shadow: 2px 2px #000;
}
.super-search-btn:hover {
color: #6ec54d;
transition: color .3s;
text-shadow: none;
}
.super-search {
position: fixed;
background-color: rgba(0, 0, 0, 0.95);
left: 0;
right: 0;
top: 0;
bottom: 0;
z-index: 1;
transition: 0.2s ease;
visibility: hidden;
opacity: 0;
}
.super-search__close-btn {
color: #d3d3d3;
transition: color .4s;
position: absolute;
right: 10px;
top: 15px;
z-index: 1;
}
.super-search__close-btn:hover {
color: #fff;
transition: color .3s;
}
.super-search__input {
border: 0;
font-size: 50px;
border-left: none;
border-right: none;
color: #f9f9f9;
background-color: #000;
width: 100%;
outline: 0;
padding: 10px 31px;
text-align: center;
transform: translateY(-100%);
transition: 0.15s ease-out 150ms;
}
.is-active .super-search__input {
transform: translateY(0);
}
.super-search__results {
text-align: center;
list-style: none;
padding: 0;
overflow-x: hidden;
height: calc(100% - 110px);
transition: 0.2s ease;
}
.super-search__results.is-hidden {
opacity: 0;
transform: translateY(-1vh);
}
.super-search__results > li > a {
font-size: 1.25em;
display: block;
position: relative;
background-color: #111;
padding: 17px;
margin: 12px 14px;
box-shadow: 0 0px 8px rgba(255,255,255,0.45);
}
.super-search__result-date {
color: #BBB;
position: absolute;
right: 12px;
}
@media (max-width: 750px) {
.super-search__result-date {
position: static;
display: block;
}
}
.super-search.is-active {
opacity: 1;
visibility: visible;
z-index: 3;
}
.super-search__input::-webkit-input-placeholder {
color: rgba(138, 17, 17, .45);
}
.super-search__input:-moz-placeholder { /* Firefox 18- */
color: rgba(138, 17, 17, .45);
}
.super-search__input::-moz-placeholder { /* Firefox 19+ */
color: rgba(138, 17, 17, .45);
}
.super-search__input:-ms-input-placeholder {
color: rgba(138, 17, 17, .45);
}
================================================
FILE: css/tags-wrap.css
================================================
.tags-wrap {
max-width: 1200px;
margin: auto;
}
.categories .category-list {
list-style: none;
text-align: center;
margin-bottom: 10px;
}
@media (max-width: 450px) {
.categories .category-list {
font-size: 16px;
}
}
.tags .tag-list {
list-style: none;
text-align: center;
margin-bottom: 10px;
}
@media (max-width: 450px) {
.tags .tag-list {
font-size: 16px;
}
}
hr.medium {
max-width: 450px;
margin: 15px auto;
border-width: 4px;
border-color: #d9d4d0;
}
================================================
FILE: feed.xml
================================================
---
layout: null
---
{{ site.title | xml_escape }}
{{ site.description | xml_escape }}
{{ site.url }}{{ site.baseurl }}/
{{ site.time | date_to_rfc822 }}
{{ site.time | date_to_rfc822 }}
Jekyll v{{ jekyll.version }}
{% for post in site.posts limit:10 %}
-
{{ post.title | xml_escape }}
{{ post.content | xml_escape }}
{{ post.date | date_to_rfc822 }}
{{ post.url | prepend: site.baseurl | prepend: site.url }}
{{ post.url | prepend: site.baseurl | prepend: site.url }}
{% for tag in post.tags %}
{{ tag | xml_escape }}
{% endfor %}
{% for cat in post.categories %}
{{ cat | xml_escape }}
{% endfor %}
{% endfor %}
================================================
FILE: gallery/gallery01/index.html
================================================
---
layout: page
title: "album"
description: "masonry"
active: gallery
header-img: "img/gallery-bg.jpg"
album-title: "my 1st album"
images:
- image_path: /gallery/archive/g01/bg1.jpg
caption: IMAGE TITLE
copyright: © photorama
- image_path: /gallery/archive/g01/bg2.jpg
caption: IMAGE TITLE
copyright: © photorama
- image_path: /gallery/archive/g01/bg3.jpg
caption: IMAGE TITLE
copyright: © photorama
---
{{page.album-title}}
{% for image in page.images %}
{{image.caption}}
{{image.copyright}}
{% endfor %}
================================================
FILE: gallery/gallery02/index.html
================================================
---
layout: page
title: "album"
description: "masonry"
active: gallery
header-img: "img/gallery-bg.jpg"
album-title: "my 2nd album"
images:
- image_path: /gallery/archive/g02/bg1.jpg
caption: IMAGE TITLE
mfp-title: IMAGE TITLE
copyright: © photorama
- image_path: /gallery/archive/g02/bg2.jpg
caption: IMAGE TITLE
copyright: © photorama
- image_path: /gallery/archive/g02/bg3.jpg
caption: IMAGE TITLE
copyright: © photorama
---
{{page.album-title}}
{% for image in page.images %}
{{image.caption}}
{{image.copyright}}
{% endfor %}
================================================
FILE: gallery/gallery03/index.html
================================================
---
layout: page
title: "album"
description: "masonry"
active: gallery
header-img: "img/gallery-bg.jpg"
album-title: "my 3rd album"
images:
- image_path: /gallery/archive/g03/bg1.jpg
caption: IMAGE TITLE
mfp-title: IMAGE TITLE
copyright: © photorama
- image_path: /gallery/archive/g03/bg2.jpg
caption: IMAGE TITLE
copyright: © photorama
- image_path: /gallery/archive/g03/bg3.jpg
caption: IMAGE TITLE
copyright: © photorama
---
{{page.album-title}}
{% for image in page.images %}
{{image.caption}}
{{image.copyright}}
{% endfor %}
================================================
FILE: gallery/gallery04/index.html
================================================
---
layout: page
title: "album"
description: "masonry"
active: gallery
header-img: "img/gallery-bg.jpg"
album-title: "my 4th album"
images:
- image_path: /gallery/archive/g04/bg1.jpg
caption: IMAGE TITLE
mfp-title: IMAGE TITLE
copyright: © photorama
- image_path: /gallery/archive/g04/bg2.jpg
caption: IMAGE TITLE
copyright: © photorama
- image_path: /gallery/archive/g04/bg3.jpg
caption: IMAGE TITLE
copyright: © photorama
---
{{page.album-title}}
{% for image in page.images %}
{{image.caption}}
{{image.copyright}}
{% endfor %}
================================================
FILE: gallery/gallery05/index.html
================================================
---
layout: page
title: "album"
description: "masonry"
active: gallery
header-img: "img/gallery-bg.jpg"
album-title: "my 5th album"
images:
- image_path: /gallery/archive/g05/bg1.jpg
caption: IMAGE TITLE
mfp-title: IMAGE TITLE
copyright: © photorama
- image_path: /gallery/archive/g05/bg2.jpg
caption: IMAGE TITLE
copyright: © photorama
- image_path: /gallery/archive/g05/bg3.jpg
caption: IMAGE TITLE
copyright: © photorama
---
{{page.album-title}}
{% for image in page.images %}
{{image.caption}}
{{image.copyright}}
{% endfor %}
================================================
FILE: gallery/gallery06/index.html
================================================
---
layout: page
title: "album"
description: "masonry"
active: gallery
header-img: "img/gallery-bg.jpg"
album-title: "my 6th album"
images:
- image_path: /gallery/archive/g06/bg1.jpg
caption: IMAGE TITLE
mfp-title: IMAGE TITLE
copyright: © photorama
- image_path: /gallery/archive/g06/bg2.jpg
caption: IMAGE TITLE
copyright: © photorama
- image_path: /gallery/archive/g06/bg3.jpg
caption: IMAGE TITLE
copyright: © photorama
---
{{page.album-title}}
{% for image in page.images %}
{{image.caption}}
{{image.copyright}}
{% endfor %}
================================================
FILE: gallery/gallery07/index.html
================================================
---
layout: page
title: "album"
description: "masonry"
active: gallery
header-img: "img/gallery-bg.jpg"
album-title: "my 7th album"
images:
- image_path: /gallery/archive/g07/bg1.jpg
caption: IMAGE TITLE
mfp-title: IMAGE TITLE
copyright: © photorama
- image_path: /gallery/archive/g07/bg2.jpg
caption: IMAGE TITLE
copyright: © photorama
- image_path: /gallery/archive/g07/bg3.jpg
caption: IMAGE TITLE
copyright: © photorama
---
{{page.album-title}}
{% for image in page.images %}
{{image.caption}}
{{image.copyright}}
{% endfor %}
================================================
FILE: gallery/gallery08/index.html
================================================
---
layout: page
title: "album"
description: "masonry"
active: gallery
header-img: "img/gallery-bg.jpg"
album-title: "my 8th album"
images:
- image_path: /gallery/archive/g08/bg1.jpg
caption: IMAGE TITLE
mfp-title: IMAGE TITLE
copyright: © photorama
- image_path: /gallery/archive/g08/bg2.jpg
caption: IMAGE TITLE
copyright: © photorama
- image_path: /gallery/archive/g08/bg3.jpg
caption: IMAGE TITLE
copyright: © photorama
---
{{page.album-title}}
{% for image in page.images %}
{{image.caption}}
{{image.copyright}}
{% endfor %}
================================================
FILE: gallery/gallery09/index.html
================================================
---
layout: page
title: "album"
description: "masonry"
active: gallery
header-img: "img/gallery-bg.jpg"
album-title: "my 9th album"
images:
- image_path: /gallery/archive/g09/bg1.jpg
caption: IMAGE TITLE
mfp-title: IMAGE TITLE
copyright: © photorama
- image_path: /gallery/archive/g09/bg2.jpg
caption: IMAGE TITLE
copyright: © photorama
- image_path: /gallery/archive/g09/bg3.jpg
caption: IMAGE TITLE
copyright: © photorama
---
{{page.album-title}}
{% for image in page.images %}
{{image.caption}}
{{image.copyright}}
{% endfor %}
================================================
FILE: gallery/index.html
================================================
---
layout: page
title: "ALBUMS"
description: "archive"
active: gallery
header-img: "img/gallery-bg.jpg"
images:
- image_path: /gallery/albums/alb01.jpg
gallery-folder: /gallery/gallery01/
gallery-name: gallery1
gallery-date: July 2015
- image_path: /gallery/albums/alb02.jpg
gallery-folder: /gallery/gallery02/
gallery-name: gallery2
gallery-date: June 2015
- image_path: /gallery/albums/alb03.jpg
gallery-folder: /gallery/gallery03/
gallery-name: gallery3
gallery-date: May 2015
- image_path: /gallery/albums/alb04.jpg
gallery-folder: /gallery/gallery04/
gallery-name: gallery4
gallery-date: April 2015
- image_path: /gallery/albums/alb05.jpg
gallery-folder: /gallery/gallery05/
gallery-name: gallery5
gallery-date: March 2015
- image_path: /gallery/albums/alb06.jpg
gallery-folder: /gallery/gallery06/
gallery-name: gallery6
gallery-date: February 2015
- image_path: /gallery/albums/alb07.jpg
gallery-folder: /gallery/gallery07/
gallery-name: gallery7
gallery-date: January 2015
- image_path: /gallery/albums/alb08.jpg
gallery-folder: /gallery/gallery08/
gallery-name: gallery8
gallery-date: December 2014
- image_path: /gallery/albums/alb09.jpg
gallery-folder: /gallery/gallery09/
gallery-name: gallery9
gallery-date: November 2014
---
{{page.title}}
{% for image in page.images %}
{{image.gallery-name}}
{{image.gallery-date}}
{% endfor %}
Image Source: Unsplash
================================================
FILE: index.html
================================================
---
layout: home
main-title: "PHOT•O•RAMA"
subtitle: "Photo Journal"
description: "Photography and more"
images:
- image_path: /img/slider/home01.jpg
gallery-folder: /img/slider/
- image_path: /img/slider/home02.jpg
gallery-folder: /img/slider/
- image_path: /img/slider/home03.jpg
gallery-folder: /img/slider/
---
{{ page.main-title }}
{{ page.subtitle }}
{% for image in page.images %}
{% endfor %}
================================================
FILE: journal/category/cat01.md
================================================
---
layout: "journal_by_category"
category: "cat01"
permalink: "/journal/category/cat01/"
header-img: "img/archive-bg.jpg"
---
================================================
FILE: journal/category/cat02.md
================================================
---
layout: "journal_by_category"
category: "cat02"
permalink: "/journal/category/cat02/"
header-img: "img/archive-bg.jpg"
---
================================================
FILE: journal/category/cat03.md
================================================
---
layout: "journal_by_category"
category: "cat03"
permalink: "/journal/category/cat03/"
header-img: "img/archive-bg.jpg"
---
================================================
FILE: journal/category/cat04.md
================================================
---
layout: "journal_by_category"
category: "cat04"
permalink: "/journal/category/cat04/"
header-img: "img/archive-bg.jpg"
---
================================================
FILE: journal/category/index.html
================================================
---
layout: page
title: "categories"
description: "ARCHIVE"
header-img: "img/misc-bg.jpg"
---
{% assign rawcategories = "" %}
{% for post in site.posts %}
{% assign tcategories = post.categories | join:'|' | append:'|' %}
{% assign rawcategories = rawcategories | append:tcategories %}
{% endfor %}
{% assign rawcategories = rawcategories | split:'|' | sort %}
{% assign categories = "" %}
{% for category in rawcategories %}
{% if tag != "" %}
{% if categories == "" %}
{% assign categories = category | split:'|' %}
{% endif %}
{% unless categories contains category %}
{% assign categories = categories | join:'|' | append:'|' | append:category | split:'|' %}
{% endunless %}
{% endif %}
{% endfor %}
JOURNAL ⇌ {{ page.title }}
{% for category in categories %}
{{ category }}
{% endfor %}
{% for category in categories %}
{{ category }}
{% for post in site.posts %}
{% if post.categories contains category %}
{{ post.title }}
◌ {{ post.date | date_to_string }} ◌
{% for tag in post.tags %}
{{ tag }}
{% endfor %}
{% endif %}
{% endfor %}
{% endfor %}
================================================
FILE: journal/index.html
================================================
---
layout: page
description: "Journal"
title: "Writings"
active: journal
header-img: "img/writing-bg.jpg"
---
{% if paginator.total_pages > 1 %}
{% endif %}
Image Source: UNSPLASH
================================================
FILE: journal/tag/index.html
================================================
---
layout: page
title: "tags"
description: "ARCHIVE"
header-img: "img/misc-bg.jpg"
---
{% comment%}
Here we generate all the tags.
{% endcomment%}
{% assign rawtags = "" %}
{% for post in site.posts %}
{% assign ttags = post.tags | join:'|' | append:'|' %}
{% assign rawtags = rawtags | append:ttags %}
{% endfor %}
{% assign rawtags = rawtags | split:'|' | sort %}
{% assign tags = "" %}
{% for tag in rawtags %}
{% if tag != "" %}
{% if tags == "" %}
{% assign tags = tag | split:'|' %}
{% endif %}
{% unless tags contains tag %}
{% assign tags = tags | join:'|' | append:'|' | append:tag | split:'|' %}
{% endunless %}
{% endif %}
{% endfor %}
JOURNAL ⇌ {{ page.title }}
{% for tag in tags %}
{{ tag }}
{% endfor %}
{% for tag in tags %}
{{ tag }}
{% for post in site.posts %}
{% if post.tags contains tag %}
{{ post.title }}
◌ {{ post.date | date_to_string }} ◌
{% for tag in post.tags %}
{{ tag }}
{% endfor %}
{% endif %}
{% endfor %}
{% endfor %}
================================================
FILE: journal/tag/tag01.md
================================================
---
layout: "journal_by_tag"
tag: "tag01"
permalink: "/journal/tag/tag01/"
header-img: "img/archive-bg.jpg"
---
================================================
FILE: journal/tag/tag02.md
================================================
---
layout: "journal_by_tag"
tag: "tag02"
permalink: "/journal/tag/tag02/"
header-img: "img/archive-bg.jpg"
---
================================================
FILE: journal/tag/tag03.md
================================================
---
layout: "journal_by_tag"
tag: "tag03"
permalink: "/journal/tag/tag03/"
header-img: "img/archive-bg.jpg"
---
================================================
FILE: journal/tag/tag04.md
================================================
---
layout: "journal_by_tag"
tag: "tag04"
permalink: "/journal/tag/tag04/"
header-img: "img/archive-bg.jpg"
---
================================================
FILE: js/jquery.magnific-popup.js
================================================
/*! Magnific Popup - v1.1.0 - 2016-02-20
* http://dimsemenov.com/plugins/magnific-popup/
* Copyright (c) 2016 Dmitry Semenov; */
;(function (factory) {
if (typeof define === 'function' && define.amd) {
// AMD. Register as an anonymous module.
define(['jquery'], factory);
} else if (typeof exports === 'object') {
// Node/CommonJS
factory(require('jquery'));
} else {
// Browser globals
factory(window.jQuery || window.Zepto);
}
}(function($) {
/*>>core*/
/**
*
* Magnific Popup Core JS file
*
*/
/**
* Private static constants
*/
var CLOSE_EVENT = 'Close',
BEFORE_CLOSE_EVENT = 'BeforeClose',
AFTER_CLOSE_EVENT = 'AfterClose',
BEFORE_APPEND_EVENT = 'BeforeAppend',
MARKUP_PARSE_EVENT = 'MarkupParse',
OPEN_EVENT = 'Open',
CHANGE_EVENT = 'Change',
NS = 'mfp',
EVENT_NS = '.' + NS,
READY_CLASS = 'mfp-ready',
REMOVING_CLASS = 'mfp-removing',
PREVENT_CLOSE_CLASS = 'mfp-prevent-close';
/**
* Private vars
*/
/*jshint -W079 */
var mfp, // As we have only one instance of MagnificPopup object, we define it locally to not to use 'this'
MagnificPopup = function(){},
_isJQ = !!(window.jQuery),
_prevStatus,
_window = $(window),
_document,
_prevContentType,
_wrapClasses,
_currPopupType;
/**
* Private functions
*/
var _mfpOn = function(name, f) {
mfp.ev.on(NS + name + EVENT_NS, f);
},
_getEl = function(className, appendTo, html, raw) {
var el = document.createElement('div');
el.className = 'mfp-'+className;
if(html) {
el.innerHTML = html;
}
if(!raw) {
el = $(el);
if(appendTo) {
el.appendTo(appendTo);
}
} else if(appendTo) {
appendTo.appendChild(el);
}
return el;
},
_mfpTrigger = function(e, data) {
mfp.ev.triggerHandler(NS + e, data);
if(mfp.st.callbacks) {
// converts "mfpEventName" to "eventName" callback and triggers it if it's present
e = e.charAt(0).toLowerCase() + e.slice(1);
if(mfp.st.callbacks[e]) {
mfp.st.callbacks[e].apply(mfp, $.isArray(data) ? data : [data]);
}
}
},
_getCloseBtn = function(type) {
if(type !== _currPopupType || !mfp.currTemplate.closeBtn) {
mfp.currTemplate.closeBtn = $( mfp.st.closeMarkup.replace('%title%', mfp.st.tClose ) );
_currPopupType = type;
}
return mfp.currTemplate.closeBtn;
},
// Initialize Magnific Popup only when called at least once
_checkInstance = function() {
if(!$.magnificPopup.instance) {
/*jshint -W020 */
mfp = new MagnificPopup();
mfp.init();
$.magnificPopup.instance = mfp;
}
},
// CSS transition detection, http://stackoverflow.com/questions/7264899/detect-css-transitions-using-javascript-and-without-modernizr
supportsTransitions = function() {
var s = document.createElement('p').style, // 's' for style. better to create an element if body yet to exist
v = ['ms','O','Moz','Webkit']; // 'v' for vendor
if( s['transition'] !== undefined ) {
return true;
}
while( v.length ) {
if( v.pop() + 'Transition' in s ) {
return true;
}
}
return false;
};
/**
* Public functions
*/
MagnificPopup.prototype = {
constructor: MagnificPopup,
/**
* Initializes Magnific Popup plugin.
* This function is triggered only once when $.fn.magnificPopup or $.magnificPopup is executed
*/
init: function() {
var appVersion = navigator.appVersion;
mfp.isLowIE = mfp.isIE8 = document.all && !document.addEventListener;
mfp.isAndroid = (/android/gi).test(appVersion);
mfp.isIOS = (/iphone|ipad|ipod/gi).test(appVersion);
mfp.supportsTransition = supportsTransitions();
// We disable fixed positioned lightbox on devices that don't handle it nicely.
// If you know a better way of detecting this - let me know.
mfp.probablyMobile = (mfp.isAndroid || mfp.isIOS || /(Opera Mini)|Kindle|webOS|BlackBerry|(Opera Mobi)|(Windows Phone)|IEMobile/i.test(navigator.userAgent) );
_document = $(document);
mfp.popupsCache = {};
},
/**
* Opens popup
* @param data [description]
*/
open: function(data) {
var i;
if(data.isObj === false) {
// convert jQuery collection to array to avoid conflicts later
mfp.items = data.items.toArray();
mfp.index = 0;
var items = data.items,
item;
for(i = 0; i < items.length; i++) {
item = items[i];
if(item.parsed) {
item = item.el[0];
}
if(item === data.el[0]) {
mfp.index = i;
break;
}
}
} else {
mfp.items = $.isArray(data.items) ? data.items : [data.items];
mfp.index = data.index || 0;
}
// if popup is already opened - we just update the content
if(mfp.isOpen) {
mfp.updateItemHTML();
return;
}
mfp.types = [];
_wrapClasses = '';
if(data.mainEl && data.mainEl.length) {
mfp.ev = data.mainEl.eq(0);
} else {
mfp.ev = _document;
}
if(data.key) {
if(!mfp.popupsCache[data.key]) {
mfp.popupsCache[data.key] = {};
}
mfp.currTemplate = mfp.popupsCache[data.key];
} else {
mfp.currTemplate = {};
}
mfp.st = $.extend(true, {}, $.magnificPopup.defaults, data );
mfp.fixedContentPos = mfp.st.fixedContentPos === 'auto' ? !mfp.probablyMobile : mfp.st.fixedContentPos;
if(mfp.st.modal) {
mfp.st.closeOnContentClick = false;
mfp.st.closeOnBgClick = false;
mfp.st.showCloseBtn = false;
mfp.st.enableEscapeKey = false;
}
// Building markup
// main containers are created only once
if(!mfp.bgOverlay) {
// Dark overlay
mfp.bgOverlay = _getEl('bg').on('click'+EVENT_NS, function() {
mfp.close();
});
mfp.wrap = _getEl('wrap').attr('tabindex', -1).on('click'+EVENT_NS, function(e) {
if(mfp._checkIfClose(e.target)) {
mfp.close();
}
});
mfp.container = _getEl('container', mfp.wrap);
}
mfp.contentContainer = _getEl('content');
if(mfp.st.preloader) {
mfp.preloader = _getEl('preloader', mfp.container, mfp.st.tLoading);
}
// Initializing modules
var modules = $.magnificPopup.modules;
for(i = 0; i < modules.length; i++) {
var n = modules[i];
n = n.charAt(0).toUpperCase() + n.slice(1);
mfp['init'+n].call(mfp);
}
_mfpTrigger('BeforeOpen');
if(mfp.st.showCloseBtn) {
// Close button
if(!mfp.st.closeBtnInside) {
mfp.wrap.append( _getCloseBtn() );
} else {
_mfpOn(MARKUP_PARSE_EVENT, function(e, template, values, item) {
values.close_replaceWith = _getCloseBtn(item.type);
});
_wrapClasses += ' mfp-close-btn-in';
}
}
if(mfp.st.alignTop) {
_wrapClasses += ' mfp-align-top';
}
if(mfp.fixedContentPos) {
mfp.wrap.css({
overflow: mfp.st.overflowY,
overflowX: 'hidden',
overflowY: mfp.st.overflowY
});
} else {
mfp.wrap.css({
top: _window.scrollTop(),
position: 'absolute'
});
}
if( mfp.st.fixedBgPos === false || (mfp.st.fixedBgPos === 'auto' && !mfp.fixedContentPos) ) {
mfp.bgOverlay.css({
height: _document.height(),
position: 'absolute'
});
}
if(mfp.st.enableEscapeKey) {
// Close on ESC key
_document.on('keyup' + EVENT_NS, function(e) {
if(e.keyCode === 27) {
mfp.close();
}
});
}
_window.on('resize' + EVENT_NS, function() {
mfp.updateSize();
});
if(!mfp.st.closeOnContentClick) {
_wrapClasses += ' mfp-auto-cursor';
}
if(_wrapClasses)
mfp.wrap.addClass(_wrapClasses);
// this triggers recalculation of layout, so we get it once to not to trigger twice
var windowHeight = mfp.wH = _window.height();
var windowStyles = {};
if( mfp.fixedContentPos ) {
if(mfp._hasScrollBar(windowHeight)){
var s = mfp._getScrollbarSize();
if(s) {
windowStyles.marginRight = s;
}
}
}
if(mfp.fixedContentPos) {
if(!mfp.isIE7) {
windowStyles.overflow = 'hidden';
} else {
// ie7 double-scroll bug
$('body, html').css('overflow', 'hidden');
}
}
var classesToadd = mfp.st.mainClass;
if(mfp.isIE7) {
classesToadd += ' mfp-ie7';
}
if(classesToadd) {
mfp._addClassToMFP( classesToadd );
}
// add content
mfp.updateItemHTML();
_mfpTrigger('BuildControls');
// remove scrollbar, add margin e.t.c
$('html').css(windowStyles);
// add everything to DOM
mfp.bgOverlay.add(mfp.wrap).prependTo( mfp.st.prependTo || $(document.body) );
// Save last focused element
mfp._lastFocusedEl = document.activeElement;
// Wait for next cycle to allow CSS transition
setTimeout(function() {
if(mfp.content) {
mfp._addClassToMFP(READY_CLASS);
mfp._setFocus();
} else {
// if content is not defined (not loaded e.t.c) we add class only for BG
mfp.bgOverlay.addClass(READY_CLASS);
}
// Trap the focus in popup
_document.on('focusin' + EVENT_NS, mfp._onFocusIn);
}, 16);
mfp.isOpen = true;
mfp.updateSize(windowHeight);
_mfpTrigger(OPEN_EVENT);
return data;
},
/**
* Closes the popup
*/
close: function() {
if(!mfp.isOpen) return;
_mfpTrigger(BEFORE_CLOSE_EVENT);
mfp.isOpen = false;
// for CSS3 animation
if(mfp.st.removalDelay && !mfp.isLowIE && mfp.supportsTransition ) {
mfp._addClassToMFP(REMOVING_CLASS);
setTimeout(function() {
mfp._close();
}, mfp.st.removalDelay);
} else {
mfp._close();
}
},
/**
* Helper for close() function
*/
_close: function() {
_mfpTrigger(CLOSE_EVENT);
var classesToRemove = REMOVING_CLASS + ' ' + READY_CLASS + ' ';
mfp.bgOverlay.detach();
mfp.wrap.detach();
mfp.container.empty();
if(mfp.st.mainClass) {
classesToRemove += mfp.st.mainClass + ' ';
}
mfp._removeClassFromMFP(classesToRemove);
if(mfp.fixedContentPos) {
var windowStyles = {marginRight: ''};
if(mfp.isIE7) {
$('body, html').css('overflow', '');
} else {
windowStyles.overflow = '';
}
$('html').css(windowStyles);
}
_document.off('keyup' + EVENT_NS + ' focusin' + EVENT_NS);
mfp.ev.off(EVENT_NS);
// clean up DOM elements that aren't removed
mfp.wrap.attr('class', 'mfp-wrap').removeAttr('style');
mfp.bgOverlay.attr('class', 'mfp-bg');
mfp.container.attr('class', 'mfp-container');
// remove close button from target element
if(mfp.st.showCloseBtn &&
(!mfp.st.closeBtnInside || mfp.currTemplate[mfp.currItem.type] === true)) {
if(mfp.currTemplate.closeBtn)
mfp.currTemplate.closeBtn.detach();
}
if(mfp.st.autoFocusLast && mfp._lastFocusedEl) {
$(mfp._lastFocusedEl).focus(); // put tab focus back
}
mfp.currItem = null;
mfp.content = null;
mfp.currTemplate = null;
mfp.prevHeight = 0;
_mfpTrigger(AFTER_CLOSE_EVENT);
},
updateSize: function(winHeight) {
if(mfp.isIOS) {
// fixes iOS nav bars https://github.com/dimsemenov/Magnific-Popup/issues/2
var zoomLevel = document.documentElement.clientWidth / window.innerWidth;
var height = window.innerHeight * zoomLevel;
mfp.wrap.css('height', height);
mfp.wH = height;
} else {
mfp.wH = winHeight || _window.height();
}
// Fixes #84: popup incorrectly positioned with position:relative on body
if(!mfp.fixedContentPos) {
mfp.wrap.css('height', mfp.wH);
}
_mfpTrigger('Resize');
},
/**
* Set content of popup based on current index
*/
updateItemHTML: function() {
var item = mfp.items[mfp.index];
// Detach and perform modifications
mfp.contentContainer.detach();
if(mfp.content)
mfp.content.detach();
if(!item.parsed) {
item = mfp.parseEl( mfp.index );
}
var type = item.type;
_mfpTrigger('BeforeChange', [mfp.currItem ? mfp.currItem.type : '', type]);
// BeforeChange event works like so:
// _mfpOn('BeforeChange', function(e, prevType, newType) { });
mfp.currItem = item;
if(!mfp.currTemplate[type]) {
var markup = mfp.st[type] ? mfp.st[type].markup : false;
// allows to modify markup
_mfpTrigger('FirstMarkupParse', markup);
if(markup) {
mfp.currTemplate[type] = $(markup);
} else {
// if there is no markup found we just define that template is parsed
mfp.currTemplate[type] = true;
}
}
if(_prevContentType && _prevContentType !== item.type) {
mfp.container.removeClass('mfp-'+_prevContentType+'-holder');
}
var newContent = mfp['get' + type.charAt(0).toUpperCase() + type.slice(1)](item, mfp.currTemplate[type]);
mfp.appendContent(newContent, type);
item.preloaded = true;
_mfpTrigger(CHANGE_EVENT, item);
_prevContentType = item.type;
// Append container back after its content changed
mfp.container.prepend(mfp.contentContainer);
_mfpTrigger('AfterChange');
},
/**
* Set HTML content of popup
*/
appendContent: function(newContent, type) {
mfp.content = newContent;
if(newContent) {
if(mfp.st.showCloseBtn && mfp.st.closeBtnInside &&
mfp.currTemplate[type] === true) {
// if there is no markup, we just append close button element inside
if(!mfp.content.find('.mfp-close').length) {
mfp.content.append(_getCloseBtn());
}
} else {
mfp.content = newContent;
}
} else {
mfp.content = '';
}
_mfpTrigger(BEFORE_APPEND_EVENT);
mfp.container.addClass('mfp-'+type+'-holder');
mfp.contentContainer.append(mfp.content);
},
/**
* Creates Magnific Popup data object based on given data
* @param {int} index Index of item to parse
*/
parseEl: function(index) {
var item = mfp.items[index],
type;
if(item.tagName) {
item = { el: $(item) };
} else {
type = item.type;
item = { data: item, src: item.src };
}
if(item.el) {
var types = mfp.types;
// check for 'mfp-TYPE' class
for(var i = 0; i < types.length; i++) {
if( item.el.hasClass('mfp-'+types[i]) ) {
type = types[i];
break;
}
}
item.src = item.el.attr('data-mfp-src');
if(!item.src) {
item.src = item.el.attr('href');
}
}
item.type = type || mfp.st.type || 'inline';
item.index = index;
item.parsed = true;
mfp.items[index] = item;
_mfpTrigger('ElementParse', item);
return mfp.items[index];
},
/**
* Initializes single popup or a group of popups
*/
addGroup: function(el, options) {
var eHandler = function(e) {
e.mfpEl = this;
mfp._openClick(e, el, options);
};
if(!options) {
options = {};
}
var eName = 'click.magnificPopup';
options.mainEl = el;
if(options.items) {
options.isObj = true;
el.off(eName).on(eName, eHandler);
} else {
options.isObj = false;
if(options.delegate) {
el.off(eName).on(eName, options.delegate , eHandler);
} else {
options.items = el;
el.off(eName).on(eName, eHandler);
}
}
},
_openClick: function(e, el, options) {
var midClick = options.midClick !== undefined ? options.midClick : $.magnificPopup.defaults.midClick;
if(!midClick && ( e.which === 2 || e.ctrlKey || e.metaKey || e.altKey || e.shiftKey ) ) {
return;
}
var disableOn = options.disableOn !== undefined ? options.disableOn : $.magnificPopup.defaults.disableOn;
if(disableOn) {
if($.isFunction(disableOn)) {
if( !disableOn.call(mfp) ) {
return true;
}
} else { // else it's number
if( _window.width() < disableOn ) {
return true;
}
}
}
if(e.type) {
e.preventDefault();
// This will prevent popup from closing if element is inside and popup is already opened
if(mfp.isOpen) {
e.stopPropagation();
}
}
options.el = $(e.mfpEl);
if(options.delegate) {
options.items = el.find(options.delegate);
}
mfp.open(options);
},
/**
* Updates text on preloader
*/
updateStatus: function(status, text) {
if(mfp.preloader) {
if(_prevStatus !== status) {
mfp.container.removeClass('mfp-s-'+_prevStatus);
}
if(!text && status === 'loading') {
text = mfp.st.tLoading;
}
var data = {
status: status,
text: text
};
// allows to modify status
_mfpTrigger('UpdateStatus', data);
status = data.status;
text = data.text;
mfp.preloader.html(text);
mfp.preloader.find('a').on('click', function(e) {
e.stopImmediatePropagation();
});
mfp.container.addClass('mfp-s-'+status);
_prevStatus = status;
}
},
/*
"Private" helpers that aren't private at all
*/
// Check to close popup or not
// "target" is an element that was clicked
_checkIfClose: function(target) {
if($(target).hasClass(PREVENT_CLOSE_CLASS)) {
return;
}
var closeOnContent = mfp.st.closeOnContentClick;
var closeOnBg = mfp.st.closeOnBgClick;
if(closeOnContent && closeOnBg) {
return true;
} else {
// We close the popup if click is on close button or on preloader. Or if there is no content.
if(!mfp.content || $(target).hasClass('mfp-close') || (mfp.preloader && target === mfp.preloader[0]) ) {
return true;
}
// if click is outside the content
if( (target !== mfp.content[0] && !$.contains(mfp.content[0], target)) ) {
if(closeOnBg) {
// last check, if the clicked element is in DOM, (in case it's removed onclick)
if( $.contains(document, target) ) {
return true;
}
}
} else if(closeOnContent) {
return true;
}
}
return false;
},
_addClassToMFP: function(cName) {
mfp.bgOverlay.addClass(cName);
mfp.wrap.addClass(cName);
},
_removeClassFromMFP: function(cName) {
this.bgOverlay.removeClass(cName);
mfp.wrap.removeClass(cName);
},
_hasScrollBar: function(winHeight) {
return ( (mfp.isIE7 ? _document.height() : document.body.scrollHeight) > (winHeight || _window.height()) );
},
_setFocus: function() {
(mfp.st.focus ? mfp.content.find(mfp.st.focus).eq(0) : mfp.wrap).focus();
},
_onFocusIn: function(e) {
if( e.target !== mfp.wrap[0] && !$.contains(mfp.wrap[0], e.target) ) {
mfp._setFocus();
return false;
}
},
_parseMarkup: function(template, values, item) {
var arr;
if(item.data) {
values = $.extend(item.data, values);
}
_mfpTrigger(MARKUP_PARSE_EVENT, [template, values, item] );
$.each(values, function(key, value) {
if(value === undefined || value === false) {
return true;
}
arr = key.split('_');
if(arr.length > 1) {
var el = template.find(EVENT_NS + '-'+arr[0]);
if(el.length > 0) {
var attr = arr[1];
if(attr === 'replaceWith') {
if(el[0] !== value[0]) {
el.replaceWith(value);
}
} else if(attr === 'img') {
if(el.is('img')) {
el.attr('src', value);
} else {
el.replaceWith( $(' ').attr('src', value).attr('class', el.attr('class')) );
}
} else {
el.attr(arr[1], value);
}
}
} else {
template.find(EVENT_NS + '-'+key).html(value);
}
});
},
_getScrollbarSize: function() {
// thx David
if(mfp.scrollbarSize === undefined) {
var scrollDiv = document.createElement("div");
scrollDiv.style.cssText = 'width: 99px; height: 99px; overflow: scroll; position: absolute; top: -9999px;';
document.body.appendChild(scrollDiv);
mfp.scrollbarSize = scrollDiv.offsetWidth - scrollDiv.clientWidth;
document.body.removeChild(scrollDiv);
}
return mfp.scrollbarSize;
}
}; /* MagnificPopup core prototype end */
/**
* Public static functions
*/
$.magnificPopup = {
instance: null,
proto: MagnificPopup.prototype,
modules: [],
open: function(options, index) {
_checkInstance();
if(!options) {
options = {};
} else {
options = $.extend(true, {}, options);
}
options.isObj = true;
options.index = index || 0;
return this.instance.open(options);
},
close: function() {
return $.magnificPopup.instance && $.magnificPopup.instance.close();
},
registerModule: function(name, module) {
if(module.options) {
$.magnificPopup.defaults[name] = module.options;
}
$.extend(this.proto, module.proto);
this.modules.push(name);
},
defaults: {
// Info about options is in docs:
// http://dimsemenov.com/plugins/magnific-popup/documentation.html#options
disableOn: 0,
key: null,
midClick: false,
mainClass: '',
preloader: true,
focus: '', // CSS selector of input to focus after popup is opened
closeOnContentClick: false,
closeOnBgClick: true,
closeBtnInside: true,
showCloseBtn: true,
enableEscapeKey: true,
modal: false,
alignTop: false,
removalDelay: 0,
prependTo: null,
fixedContentPos: 'auto',
fixedBgPos: 'auto',
overflowY: 'auto',
closeMarkup: '× ',
tClose: 'Close (Esc)',
tLoading: 'Loading...',
autoFocusLast: true
}
};
$.fn.magnificPopup = function(options) {
_checkInstance();
var jqEl = $(this);
// We call some API method of first param is a string
if (typeof options === "string" ) {
if(options === 'open') {
var items,
itemOpts = _isJQ ? jqEl.data('magnificPopup') : jqEl[0].magnificPopup,
index = parseInt(arguments[1], 10) || 0;
if(itemOpts.items) {
items = itemOpts.items[index];
} else {
items = jqEl;
if(itemOpts.delegate) {
items = items.find(itemOpts.delegate);
}
items = items.eq( index );
}
mfp._openClick({mfpEl:items}, jqEl, itemOpts);
} else {
if(mfp.isOpen)
mfp[options].apply(mfp, Array.prototype.slice.call(arguments, 1));
}
} else {
// clone options obj
options = $.extend(true, {}, options);
/*
* As Zepto doesn't support .data() method for objects
* and it works only in normal browsers
* we assign "options" object directly to the DOM element. FTW!
*/
if(_isJQ) {
jqEl.data('magnificPopup', options);
} else {
jqEl[0].magnificPopup = options;
}
mfp.addGroup(jqEl, options);
}
return jqEl;
};
/*>>core*/
/*>>inline*/
var INLINE_NS = 'inline',
_hiddenClass,
_inlinePlaceholder,
_lastInlineElement,
_putInlineElementsBack = function() {
if(_lastInlineElement) {
_inlinePlaceholder.after( _lastInlineElement.addClass(_hiddenClass) ).detach();
_lastInlineElement = null;
}
};
$.magnificPopup.registerModule(INLINE_NS, {
options: {
hiddenClass: 'hide', // will be appended with `mfp-` prefix
markup: '',
tNotFound: 'Content not found'
},
proto: {
initInline: function() {
mfp.types.push(INLINE_NS);
_mfpOn(CLOSE_EVENT+'.'+INLINE_NS, function() {
_putInlineElementsBack();
});
},
getInline: function(item, template) {
_putInlineElementsBack();
if(item.src) {
var inlineSt = mfp.st.inline,
el = $(item.src);
if(el.length) {
// If target element has parent - we replace it with placeholder and put it back after popup is closed
var parent = el[0].parentNode;
if(parent && parent.tagName) {
if(!_inlinePlaceholder) {
_hiddenClass = inlineSt.hiddenClass;
_inlinePlaceholder = _getEl(_hiddenClass);
_hiddenClass = 'mfp-'+_hiddenClass;
}
// replace target inline element with placeholder
_lastInlineElement = el.after(_inlinePlaceholder).detach().removeClass(_hiddenClass);
}
mfp.updateStatus('ready');
} else {
mfp.updateStatus('error', inlineSt.tNotFound);
el = $('');
}
item.inlineElement = el;
return el;
}
mfp.updateStatus('ready');
mfp._parseMarkup(template, {}, item);
return template;
}
}
});
/*>>inline*/
/*>>ajax*/
var AJAX_NS = 'ajax',
_ajaxCur,
_removeAjaxCursor = function() {
if(_ajaxCur) {
$(document.body).removeClass(_ajaxCur);
}
},
_destroyAjaxRequest = function() {
_removeAjaxCursor();
if(mfp.req) {
mfp.req.abort();
}
};
$.magnificPopup.registerModule(AJAX_NS, {
options: {
settings: null,
cursor: 'mfp-ajax-cur',
tError: '
The content could not be loaded.'
},
proto: {
initAjax: function() {
mfp.types.push(AJAX_NS);
_ajaxCur = mfp.st.ajax.cursor;
_mfpOn(CLOSE_EVENT+'.'+AJAX_NS, _destroyAjaxRequest);
_mfpOn('BeforeChange.' + AJAX_NS, _destroyAjaxRequest);
},
getAjax: function(item) {
if(_ajaxCur) {
$(document.body).addClass(_ajaxCur);
}
mfp.updateStatus('loading');
var opts = $.extend({
url: item.src,
success: function(data, textStatus, jqXHR) {
var temp = {
data:data,
xhr:jqXHR
};
_mfpTrigger('ParseAjax', temp);
mfp.appendContent( $(temp.data), AJAX_NS );
item.finished = true;
_removeAjaxCursor();
mfp._setFocus();
setTimeout(function() {
mfp.wrap.addClass(READY_CLASS);
}, 16);
mfp.updateStatus('ready');
_mfpTrigger('AjaxContentAdded');
},
error: function() {
_removeAjaxCursor();
item.finished = item.loadError = true;
mfp.updateStatus('error', mfp.st.ajax.tError.replace('%url%', item.src));
}
}, mfp.st.ajax.settings);
mfp.req = $.ajax(opts);
return '';
}
}
});
/*>>ajax*/
/*>>image*/
var _imgInterval,
_getTitle = function(item) {
if(item.data && item.data.title !== undefined)
return item.data.title;
var src = mfp.st.image.titleSrc;
if(src) {
if($.isFunction(src)) {
return src.call(mfp, item);
} else if(item.el) {
return item.el.attr(src) || '';
}
}
return '';
};
$.magnificPopup.registerModule('image', {
options: {
markup: '
',
cursor: 'mfp-zoom-out-cur',
titleSrc: 'title',
verticalFit: true,
tError: '
The image could not be loaded.'
},
proto: {
initImage: function() {
var imgSt = mfp.st.image,
ns = '.image';
mfp.types.push('image');
_mfpOn(OPEN_EVENT+ns, function() {
if(mfp.currItem.type === 'image' && imgSt.cursor) {
$(document.body).addClass(imgSt.cursor);
}
});
_mfpOn(CLOSE_EVENT+ns, function() {
if(imgSt.cursor) {
$(document.body).removeClass(imgSt.cursor);
}
_window.off('resize' + EVENT_NS);
});
_mfpOn('Resize'+ns, mfp.resizeImage);
if(mfp.isLowIE) {
_mfpOn('AfterChange', mfp.resizeImage);
}
},
resizeImage: function() {
var item = mfp.currItem;
if(!item || !item.img) return;
if(mfp.st.image.verticalFit) {
var decr = 0;
// fix box-sizing in ie7/8
if(mfp.isLowIE) {
decr = parseInt(item.img.css('padding-top'), 10) + parseInt(item.img.css('padding-bottom'),10);
}
item.img.css('max-height', mfp.wH-decr);
}
},
_onImageHasSize: function(item) {
if(item.img) {
item.hasSize = true;
if(_imgInterval) {
clearInterval(_imgInterval);
}
item.isCheckingImgSize = false;
_mfpTrigger('ImageHasSize', item);
if(item.imgHidden) {
if(mfp.content)
mfp.content.removeClass('mfp-loading');
item.imgHidden = false;
}
}
},
/**
* Function that loops until the image has size to display elements that rely on it asap
*/
findImageSize: function(item) {
var counter = 0,
img = item.img[0],
mfpSetInterval = function(delay) {
if(_imgInterval) {
clearInterval(_imgInterval);
}
// decelerating interval that checks for size of an image
_imgInterval = setInterval(function() {
if(img.naturalWidth > 0) {
mfp._onImageHasSize(item);
return;
}
if(counter > 200) {
clearInterval(_imgInterval);
}
counter++;
if(counter === 3) {
mfpSetInterval(10);
} else if(counter === 40) {
mfpSetInterval(50);
} else if(counter === 100) {
mfpSetInterval(500);
}
}, delay);
};
mfpSetInterval(1);
},
getImage: function(item, template) {
var guard = 0,
// image load complete handler
onLoadComplete = function() {
if(item) {
if (item.img[0].complete) {
item.img.off('.mfploader');
if(item === mfp.currItem){
mfp._onImageHasSize(item);
mfp.updateStatus('ready');
}
item.hasSize = true;
item.loaded = true;
_mfpTrigger('ImageLoadComplete');
}
else {
// if image complete check fails 200 times (20 sec), we assume that there was an error.
guard++;
if(guard < 200) {
setTimeout(onLoadComplete,100);
} else {
onLoadError();
}
}
}
},
// image error handler
onLoadError = function() {
if(item) {
item.img.off('.mfploader');
if(item === mfp.currItem){
mfp._onImageHasSize(item);
mfp.updateStatus('error', imgSt.tError.replace('%url%', item.src) );
}
item.hasSize = true;
item.loaded = true;
item.loadError = true;
}
},
imgSt = mfp.st.image;
var el = template.find('.mfp-img');
if(el.length) {
var img = document.createElement('img');
img.className = 'mfp-img';
if(item.el && item.el.find('img').length) {
img.alt = item.el.find('img').attr('alt');
}
item.img = $(img).on('load.mfploader', onLoadComplete).on('error.mfploader', onLoadError);
img.src = item.src;
// without clone() "error" event is not firing when IMG is replaced by new IMG
// TODO: find a way to avoid such cloning
if(el.is('img')) {
item.img = item.img.clone();
}
img = item.img[0];
if(img.naturalWidth > 0) {
item.hasSize = true;
} else if(!img.width) {
item.hasSize = false;
}
}
mfp._parseMarkup(template, {
title: _getTitle(item),
img_replaceWith: item.img
}, item);
mfp.resizeImage();
if(item.hasSize) {
if(_imgInterval) clearInterval(_imgInterval);
if(item.loadError) {
template.addClass('mfp-loading');
mfp.updateStatus('error', imgSt.tError.replace('%url%', item.src) );
} else {
template.removeClass('mfp-loading');
mfp.updateStatus('ready');
}
return template;
}
mfp.updateStatus('loading');
item.loading = true;
if(!item.hasSize) {
item.imgHidden = true;
template.addClass('mfp-loading');
mfp.findImageSize(item);
}
return template;
}
}
});
/*>>image*/
/*>>zoom*/
var hasMozTransform,
getHasMozTransform = function() {
if(hasMozTransform === undefined) {
hasMozTransform = document.createElement('p').style.MozTransform !== undefined;
}
return hasMozTransform;
};
$.magnificPopup.registerModule('zoom', {
options: {
enabled: false,
easing: 'ease-in-out',
duration: 300,
opener: function(element) {
return element.is('img') ? element : element.find('img');
}
},
proto: {
initZoom: function() {
var zoomSt = mfp.st.zoom,
ns = '.zoom',
image;
if(!zoomSt.enabled || !mfp.supportsTransition) {
return;
}
var duration = zoomSt.duration,
getElToAnimate = function(image) {
var newImg = image.clone().removeAttr('style').removeAttr('class').addClass('mfp-animated-image'),
transition = 'all '+(zoomSt.duration/1000)+'s ' + zoomSt.easing,
cssObj = {
position: 'fixed',
zIndex: 9999,
left: 0,
top: 0,
'-webkit-backface-visibility': 'hidden'
},
t = 'transition';
cssObj['-webkit-'+t] = cssObj['-moz-'+t] = cssObj['-o-'+t] = cssObj[t] = transition;
newImg.css(cssObj);
return newImg;
},
showMainContent = function() {
mfp.content.css('visibility', 'visible');
},
openTimeout,
animatedImg;
_mfpOn('BuildControls'+ns, function() {
if(mfp._allowZoom()) {
clearTimeout(openTimeout);
mfp.content.css('visibility', 'hidden');
// Basically, all code below does is clones existing image, puts in on top of the current one and animated it
image = mfp._getItemToZoom();
if(!image) {
showMainContent();
return;
}
animatedImg = getElToAnimate(image);
animatedImg.css( mfp._getOffset() );
mfp.wrap.append(animatedImg);
openTimeout = setTimeout(function() {
animatedImg.css( mfp._getOffset( true ) );
openTimeout = setTimeout(function() {
showMainContent();
setTimeout(function() {
animatedImg.remove();
image = animatedImg = null;
_mfpTrigger('ZoomAnimationEnded');
}, 16); // avoid blink when switching images
}, duration); // this timeout equals animation duration
}, 16); // by adding this timeout we avoid short glitch at the beginning of animation
// Lots of timeouts...
}
});
_mfpOn(BEFORE_CLOSE_EVENT+ns, function() {
if(mfp._allowZoom()) {
clearTimeout(openTimeout);
mfp.st.removalDelay = duration;
if(!image) {
image = mfp._getItemToZoom();
if(!image) {
return;
}
animatedImg = getElToAnimate(image);
}
animatedImg.css( mfp._getOffset(true) );
mfp.wrap.append(animatedImg);
mfp.content.css('visibility', 'hidden');
setTimeout(function() {
animatedImg.css( mfp._getOffset() );
}, 16);
}
});
_mfpOn(CLOSE_EVENT+ns, function() {
if(mfp._allowZoom()) {
showMainContent();
if(animatedImg) {
animatedImg.remove();
}
image = null;
}
});
},
_allowZoom: function() {
return mfp.currItem.type === 'image';
},
_getItemToZoom: function() {
if(mfp.currItem.hasSize) {
return mfp.currItem.img;
} else {
return false;
}
},
// Get element postion relative to viewport
_getOffset: function(isLarge) {
var el;
if(isLarge) {
el = mfp.currItem.img;
} else {
el = mfp.st.zoom.opener(mfp.currItem.el || mfp.currItem);
}
var offset = el.offset();
var paddingTop = parseInt(el.css('padding-top'),10);
var paddingBottom = parseInt(el.css('padding-bottom'),10);
offset.top -= ( $(window).scrollTop() - paddingTop );
/*
Animating left + top + width/height looks glitchy in Firefox, but perfect in Chrome. And vice-versa.
*/
var obj = {
width: el.width(),
// fix Zepto height+padding issue
height: (_isJQ ? el.innerHeight() : el[0].offsetHeight) - paddingBottom - paddingTop
};
// I hate to do this, but there is no another option
if( getHasMozTransform() ) {
obj['-moz-transform'] = obj['transform'] = 'translate(' + offset.left + 'px,' + offset.top + 'px)';
} else {
obj.left = offset.left;
obj.top = offset.top;
}
return obj;
}
}
});
/*>>zoom*/
/*>>iframe*/
var IFRAME_NS = 'iframe',
_emptyPage = '//about:blank',
_fixIframeBugs = function(isShowing) {
if(mfp.currTemplate[IFRAME_NS]) {
var el = mfp.currTemplate[IFRAME_NS].find('iframe');
if(el.length) {
// reset src after the popup is closed to avoid "video keeps playing after popup is closed" bug
if(!isShowing) {
el[0].src = _emptyPage;
}
// IE8 black screen bug fix
if(mfp.isIE8) {
el.css('display', isShowing ? 'block' : 'none');
}
}
}
};
$.magnificPopup.registerModule(IFRAME_NS, {
options: {
markup: '
',
srcAction: 'iframe_src',
// we don't care and support only one default type of URL by default
patterns: {
youtube: {
index: 'youtube.com',
id: 'v=',
src: '//www.youtube.com/embed/%id%?autoplay=1'
},
vimeo: {
index: 'vimeo.com/',
id: '/',
src: '//player.vimeo.com/video/%id%?autoplay=1'
},
gmaps: {
index: '//maps.google.',
src: '%id%&output=embed'
}
}
},
proto: {
initIframe: function() {
mfp.types.push(IFRAME_NS);
_mfpOn('BeforeChange', function(e, prevType, newType) {
if(prevType !== newType) {
if(prevType === IFRAME_NS) {
_fixIframeBugs(); // iframe if removed
} else if(newType === IFRAME_NS) {
_fixIframeBugs(true); // iframe is showing
}
}// else {
// iframe source is switched, don't do anything
//}
});
_mfpOn(CLOSE_EVENT + '.' + IFRAME_NS, function() {
_fixIframeBugs();
});
},
getIframe: function(item, template) {
var embedSrc = item.src;
var iframeSt = mfp.st.iframe;
$.each(iframeSt.patterns, function() {
if(embedSrc.indexOf( this.index ) > -1) {
if(this.id) {
if(typeof this.id === 'string') {
embedSrc = embedSrc.substr(embedSrc.lastIndexOf(this.id)+this.id.length, embedSrc.length);
} else {
embedSrc = this.id.call( this, embedSrc );
}
}
embedSrc = this.src.replace('%id%', embedSrc );
return false; // break;
}
});
var dataObj = {};
if(iframeSt.srcAction) {
dataObj[iframeSt.srcAction] = embedSrc;
}
mfp._parseMarkup(template, dataObj, item);
mfp.updateStatus('ready');
return template;
}
}
});
/*>>iframe*/
/*>>gallery*/
/**
* Get looped index depending on number of slides
*/
var _getLoopedId = function(index) {
var numSlides = mfp.items.length;
if(index > numSlides - 1) {
return index - numSlides;
} else if(index < 0) {
return numSlides + index;
}
return index;
},
_replaceCurrTotal = function(text, curr, total) {
return text.replace(/%curr%/gi, curr + 1).replace(/%total%/gi, total);
};
$.magnificPopup.registerModule('gallery', {
options: {
enabled: true,
showCloseBtn: true,
arrowMarkup: '
',
preload: [0,2],
navigateByImgClick: true,
arrows: true,
tPrev: 'Previous (Left arrow key)',
tNext: 'Next (Right arrow key)',
tCounter: '%curr% of %total%'
},
proto: {
initGallery: function() {
var gSt = mfp.st.gallery,
ns = '.mfp-gallery';
mfp.direction = true; // true - next, false - prev
if(!gSt || !gSt.enabled ) return false;
_wrapClasses += ' mfp-gallery';
_mfpOn(OPEN_EVENT+ns, function() {
if(gSt.navigateByImgClick) {
mfp.wrap.on('click'+ns, '.mfp-img', function() {
if(mfp.items.length > 1) {
mfp.next();
return false;
}
});
}
_document.on('keydown'+ns, function(e) {
if (e.keyCode === 37) {
mfp.prev();
} else if (e.keyCode === 39) {
mfp.next();
}
});
});
_mfpOn('UpdateStatus'+ns, function(e, data) {
if(data.text) {
data.text = _replaceCurrTotal(data.text, mfp.currItem.index, mfp.items.length);
}
});
_mfpOn(MARKUP_PARSE_EVENT+ns, function(e, element, values, item) {
var l = mfp.items.length;
values.counter = l > 1 ? _replaceCurrTotal(gSt.tCounter, item.index, l) : '';
});
_mfpOn('BuildControls' + ns, function() {
if(mfp.items.length > 1 && gSt.arrows && !mfp.arrowLeft) {
var markup = gSt.arrowMarkup,
arrowLeft = mfp.arrowLeft = $( markup.replace(/%title%/gi, gSt.tPrev).replace(/%dir%/gi, 'left') ).addClass(PREVENT_CLOSE_CLASS),
arrowRight = mfp.arrowRight = $( markup.replace(/%title%/gi, gSt.tNext).replace(/%dir%/gi, 'right') ).addClass(PREVENT_CLOSE_CLASS);
arrowLeft.click(function() {
mfp.prev();
});
arrowRight.click(function() {
mfp.next();
});
mfp.container.append(arrowLeft.add(arrowRight));
}
});
_mfpOn(CHANGE_EVENT+ns, function() {
if(mfp._preloadTimeout) clearTimeout(mfp._preloadTimeout);
mfp._preloadTimeout = setTimeout(function() {
mfp.preloadNearbyImages();
mfp._preloadTimeout = null;
}, 16);
});
_mfpOn(CLOSE_EVENT+ns, function() {
_document.off(ns);
mfp.wrap.off('click'+ns);
mfp.arrowRight = mfp.arrowLeft = null;
});
},
next: function() {
mfp.direction = true;
mfp.index = _getLoopedId(mfp.index + 1);
mfp.updateItemHTML();
},
prev: function() {
mfp.direction = false;
mfp.index = _getLoopedId(mfp.index - 1);
mfp.updateItemHTML();
},
goTo: function(newIndex) {
mfp.direction = (newIndex >= mfp.index);
mfp.index = newIndex;
mfp.updateItemHTML();
},
preloadNearbyImages: function() {
var p = mfp.st.gallery.preload,
preloadBefore = Math.min(p[0], mfp.items.length),
preloadAfter = Math.min(p[1], mfp.items.length),
i;
for(i = 1; i <= (mfp.direction ? preloadAfter : preloadBefore); i++) {
mfp._preloadItem(mfp.index+i);
}
for(i = 1; i <= (mfp.direction ? preloadBefore : preloadAfter); i++) {
mfp._preloadItem(mfp.index-i);
}
},
_preloadItem: function(index) {
index = _getLoopedId(index);
if(mfp.items[index].preloaded) {
return;
}
var item = mfp.items[index];
if(!item.parsed) {
item = mfp.parseEl( index );
}
_mfpTrigger('LazyLoad', item);
if(item.type === 'image') {
item.img = $('
').on('load.mfploader', function() {
item.hasSize = true;
}).on('error.mfploader', function() {
item.hasSize = true;
item.loadError = true;
_mfpTrigger('LazyLoadError', item);
}).attr('src', item.src);
}
item.preloaded = true;
}
}
});
/*>>gallery*/
/*>>retina*/
var RETINA_NS = 'retina';
$.magnificPopup.registerModule(RETINA_NS, {
options: {
replaceSrc: function(item) {
return item.src.replace(/\.\w+$/, function(m) { return '@2x' + m; });
},
ratio: 1 // Function or number. Set to 1 to disable.
},
proto: {
initRetina: function() {
if(window.devicePixelRatio > 1) {
var st = mfp.st.retina,
ratio = st.ratio;
ratio = !isNaN(ratio) ? ratio : ratio();
if(ratio > 1) {
_mfpOn('ImageHasSize' + '.' + RETINA_NS, function(e, item) {
item.img.css({
'max-width': item.img[0].naturalWidth / ratio,
'width': '100%'
});
});
_mfpOn('ElementParse' + '.' + RETINA_NS, function(e, item) {
item.src = st.replaceSrc(item, ratio);
});
}
}
}
}
});
/*>>retina*/
_checkInstance(); }));
================================================
FILE: js/modernizr.js
================================================
/* Modernizr 2.0.6 (Custom Build) | MIT & BSD */
;window.Modernizr=function(a,b,c){function D(a,b){var c=a.charAt(0).toUpperCase()+a.substr(1),d=(a+" "+o.join(c+" ")+c).split(" ");return C(d,b)}function C(a,b){for(var d in a)if(k[a[d]]!==c)return b=="pfx"?a[d]:!0;return!1}function B(a,b){return!!~(""+a).indexOf(b)}function A(a,b){return typeof a===b}function z(a,b){return y(n.join(a+";")+(b||""))}function y(a){k.cssText=a}var d="2.0.6",e={},f=!0,g=b.documentElement,h=b.head||b.getElementsByTagName("head")[0],i="modernizr",j=b.createElement(i),k=j.style,l,m=Object.prototype.toString,n=" -webkit- -moz- -o- -ms- -khtml- ".split(" "),o="Webkit Moz O ms Khtml".split(" "),p={},q={},r={},s=[],t=function(a,c,d,e){var f,h,j,k=b.createElement("div");if(parseInt(d,10))while(d--)j=b.createElement("div"),j.id=e?e[d]:i+(d+1),k.appendChild(j);f=["",""].join(""),k.id=i,k.innerHTML+=f,g.appendChild(k),h=c(k,a),k.parentNode.removeChild(k);return!!h},u=function(b){if(a.matchMedia)return matchMedia(b).matches;var c;t("@media "+b+" { #"+i+" { position: absolute; } }",function(b){c=(a.getComputedStyle?getComputedStyle(b,null):b.currentStyle).position=="absolute"});return c},v,w={}.hasOwnProperty,x;!A(w,c)&&!A(w.call,c)?x=function(a,b){return w.call(a,b)}:x=function(a,b){return b in a&&A(a.constructor.prototype[b],c)},p.rgba=function(){y("background-color:rgba(150,255,150,.5)");return B(k.backgroundColor,"rgba")},p.boxshadow=function(){return D("boxShadow")},p.csstransitions=function(){return D("transitionProperty")};for(var E in p)x(p,E)&&(v=E.toLowerCase(),e[v]=p[E](),s.push((e[v]?"":"no-")+v));e.addTest=function(a,b){if(typeof a=="object")for(var d in a)x(a,d)&&e.addTest(d,a[d]);else{a=a.toLowerCase();if(e[a]!==c)return;b=typeof b=="boolean"?b:!!b(),g.className+=" "+(b?"":"no-")+a,e[a]=b}return e},y(""),j=l=null,a.attachEvent&&function(){var a=b.createElement("div");a.innerHTML="
";return a.childNodes.length!==1}()&&function(a,b){function s(a){var b=-1;while(++b
=u.minw)&&(!u.maxw||u.maxw&&l<=u.maxw))m[u.media]||(m[u.media]=[]),m[u.media].push(f[u.rules])}for(var t in g)g[t]&&g[t].parentNode===j&&j.removeChild(g[t]);for(var t in m){var v=c.createElement("style"),w=m[t].join("\n");v.type="text/css",v.media=t,v.styleSheet?v.styleSheet.cssText=w:v.appendChild(c.createTextNode(w)),n.appendChild(v),g.push(v)}j.insertBefore(n,o.nextSibling)}},s=function(a,b){var c=t();if(!!c){c.open("GET",a,!0),c.onreadystatechange=function(){c.readyState==4&&(c.status==200||c.status==304)&&b(c.responseText)};if(c.readyState==4)return;c.send()}},t=function(){var a=!1,b=[function(){return new ActiveXObject("Microsoft.XMLHTTP")},function(){return new XMLHttpRequest}],c=b.length;while(c--){try{a=b[c]()}catch(d){continue}break}return function(){return a}}();m(),respond.update=m,a.addEventListener?a.addEventListener("resize",u,!1):a.attachEvent&&a.attachEvent("onresize",u)}}(this,Modernizr.mq("only all")),function(a,b,c){function k(a){return!a||a=="loaded"||a=="complete"}function j(){var a=1,b=-1;while(p.length- ++b)if(p[b].s&&!(a=p[b].r))break;a&&g()}function i(a){var c=b.createElement("script"),d;c.src=a.s,c.onreadystatechange=c.onload=function(){!d&&k(c.readyState)&&(d=1,j(),c.onload=c.onreadystatechange=null)},m(function(){d||(d=1,j())},H.errorTimeout),a.e?c.onload():n.parentNode.insertBefore(c,n)}function h(a){var c=b.createElement("link"),d;c.href=a.s,c.rel="stylesheet",c.type="text/css";if(!a.e&&(w||r)){var e=function(a){m(function(){if(!d)try{a.sheet.cssRules.length?(d=1,j()):e(a)}catch(b){b.code==1e3||b.message=="security"||b.message=="denied"?(d=1,m(function(){j()},0)):e(a)}},0)};e(c)}else c.onload=function(){d||(d=1,m(function(){j()},0))},a.e&&c.onload();m(function(){d||(d=1,j())},H.errorTimeout),!a.e&&n.parentNode.insertBefore(c,n)}function g(){var a=p.shift();q=1,a?a.t?m(function(){a.t=="c"?h(a):i(a)},0):(a(),j()):q=0}function f(a,c,d,e,f,h){function i(){!o&&k(l.readyState)&&(r.r=o=1,!q&&j(),l.onload=l.onreadystatechange=null,m(function(){u.removeChild(l)},0))}var l=b.createElement(a),o=0,r={t:d,s:c,e:h};l.src=l.data=c,!s&&(l.style.display="none"),l.width=l.height="0",a!="object"&&(l.type=d),l.onload=l.onreadystatechange=i,a=="img"?l.onerror=i:a=="script"&&(l.onerror=function(){r.e=r.r=1,g()}),p.splice(e,0,r),u.insertBefore(l,s?null:n),m(function(){o||(u.removeChild(l),r.r=r.e=o=1,j())},H.errorTimeout)}function e(a,b,c){var d=b=="c"?z:y;q=0,b=b||"j",C(a)?f(d,a,b,this.i++,l,c):(p.splice(this.i++,0,a),p.length==1&&g());return this}function d(){var a=H;a.loader={load:e,i:0};return a}var l=b.documentElement,m=a.setTimeout,n=b.getElementsByTagName("script")[0],o={}.toString,p=[],q=0,r="MozAppearance"in l.style,s=r&&!!b.createRange().compareNode,t=r&&!s,u=s?l:n.parentNode,v=a.opera&&o.call(a.opera)=="[object Opera]",w="webkitAppearance"in l.style,x=w&&"async"in b.createElement("script"),y=r?"object":v||x?"img":"script",z=w?"img":y,A=Array.isArray||function(a){return o.call(a)=="[object Array]"},B=function(a){return Object(a)===a},C=function(a){return typeof a=="string"},D=function(a){return o.call(a)=="[object Function]"},E=[],F={},G,H;H=function(a){function f(a){var b=a.split("!"),c=E.length,d=b.pop(),e=b.length,f={url:d,origUrl:d,prefixes:b},g,h;for(h=0;h 0 ) {
if ( $fullscreen_gallery.find('.gallery-item').length > 1 ) { // if there are more than 1 image
if ( !$fullscreen_gallery.hasClass('kenburns-gallery') ) { // do not initialize if kenburns
jQuery('#footer').prepend(' < ▎▎ > ');
$fullscreen_gallery.before('').cycle({
slideExpr: '.gallery-item',
fx: 'fade',
speed: 1000,
timeout: 5000,
pager: '#gallerythumbs',
slideResize: true,
containerResize: true,
width: '100%',
height: '100%',
fit: 1,
cleartypeNoBg : true,
pagerAnchorBuilder: function(idx, slide) {
return ' ';
},
prev: '#gallerynav .prev',
next: '#gallerynav .next'
});
var paused = false;
jQuery('#gallerynav .pause').on('click', function() {
if ( !paused ) {
$fullscreen_gallery.cycle('pause');
paused = true;
}
else {
$fullscreen_gallery.cycle('resume');
paused = false;
}
jQuery(this).toggleClass('active');
});
// show/hide thumbs
var revealed = false;
jQuery('#gallerynav a.thumbs').on('click', function() { // if clicked on svg button
// show thumbs wrapper
jQuery('#gallerythumbs').toggleClass('reveal');
// show thumbs
if (!revealed) {
jQuery('body').addClass('gallerythumbsrevealed');
revealed = true;
}
// hide thumbs
else {
jQuery('body').removeClass('gallerythumbsrevealed');
revealed = false;
}
// pause cycling
$fullscreen_gallery.cycle('pause');
paused = true;
});
jQuery('#gallerythumbs').on('click', function() { // if clicked on a thumb (large image will be automatically shown) or somewhere else
// hide thumbs wrapper
jQuery('#gallerythumbs').toggleClass('reveal');
jQuery('body').removeClass('gallerythumbsrevealed');
// resume cycling
$fullscreen_gallery.cycle('resume');
paused = false;
revealed = false;
});
// scroll gallery thumbs with mousewheel
jQuery('#gallerythumbs').on('mousewheel', function(event) {
if (event.deltaY < 0) { // scroll right
jQuery('#gallerythumbs').stop().animate({scrollLeft: '+=180px' }, 300);
}
else {
jQuery('#gallerythumbs').stop().animate({scrollLeft: '-=180px' }, 300);
}
});
}
}
}
// kenburns on one featured image header image
var $kenburns = jQuery('.kenburns-gallery.gallery');
if ( $kenburns.length > 0 ) {
var gallery_set = [];
$kenburns.find('.gallery-icon img').each( function() {
gallery_set.push(jQuery(this).attr('src'));
});
jQuery('#kenburns').attr('width', jQuery(window).width());
jQuery('#kenburns').attr('height', jQuery(window).height());
jQuery('#kenburns').kenburns({
images: gallery_set,
frames_per_second: 30,
display_time: 5000,
fade_time: 1000,
zoom: 1.2,
background_color:'#F7F6F5'
});
}
/* ********* WINDOW LOAD ********** */
jQuery(window).load(function() {
// load screen
jQuery('.loadreveal').addClass('reveal');
jQuery('#loadscreen').stop().animate( { opacity: 0 }, 200, function() {
jQuery('body.home').removeClass('loading');
jQuery(this).hide();
});
// masonry gallery
var $masonry_gallery = jQuery('.masonry-gallery.gallery');
if ( $masonry_gallery.length > 0 ) {
$masonry_gallery.each( function(index, element) {
var $masonry_items = $(element).find('.gallery-item');
// set masonry layout
$(element).isotope({
masonry: { columnWidth: $(element).find('.gallery-item')[0] },
itemSelector: '.gallery-item'
});
$(element).isotope('layout');
// filtering
jQuery('#gallery-filter li a').on('click', function(){
jQuery('#gallery-filter li a').removeClass('active');
jQuery(this).addClass('active');
var selector = jQuery(this).attr('data-filter');
$masonry_gallery.isotope({ filter: selector });
return false;
});
// changing layout
jQuery('#grid-changer li a').on('click', function(){
jQuery('#grid-changer li a').removeClass('active');
jQuery(this).toggleClass('active');
$masonry_items.removeClass('col-3');
$masonry_items.removeClass('col-4');
$masonry_items.removeClass('col-5');
$masonry_items.toggleClass(jQuery(this).closest('li').attr('class'));
$masonry_gallery.isotope('layout');
});
});
}
// before-after
var $before_after = jQuery('.before-after.gallery');
if ( $before_after.length > 0 ) {
$before_after.imageReveal({
barWidth: 4,
touchBarWidth: 50,
startPosition: 0.5,
width: jQuery('.before-after img').width(),
height: jQuery('.before-after img').height()
});
}
// changing blog layout
var $blog_layout = jQuery('#blog-timeline');
if ( $blog_layout.length > 0 ) {
jQuery('#grid-changer li a').on('click', function(){
jQuery('#grid-changer li a').removeClass('active');
jQuery(this).toggleClass('active');
$blog_layout.closest('.wrapper').toggleClass('blog-masonry');
if ( $blog_layout.closest('.wrapper').hasClass('blog-masonry') ) {
jQuery('#blog-post').animate({'left': '100%'}, 400, function() {
// set masonry layout
$blog_layout.isotope({
masonry: { columnWidth: $blog_layout.find('article')[0], gutter: 60 },
itemSelector: 'article'
});
$blog_layout.isotope('layout');
jQuery('#blog-post').hide();
});
}
else {
jQuery('#blog-post').show().animate({'left': '0'}, 400 );
$blog_layout.isotope('destroy');
if ( $masonry_gallery.length > 0 ) {
$masonry_gallery.isotope('layout');
}
}
});
}
});
} )( jQuery );
================================================
FILE: js/super-search.js
================================================
/* super-search
Author: Kushagra Gour (http://kushagragour.in)
MIT Licensed
*/
(function () {
var searchFile = '/feed.xml',
searchEl,
searchInputEl,
searchResultsEl,
currentInputValue = '',
lastSearchResultHash,
posts = [];
// Changes XML to JSON
// Modified version from here: http://davidwalsh.name/convert-xml-json
function xmlToJson(xml) {
// Create the return object
var obj = {};
if (xml.nodeType == 3) { // text
obj = xml.nodeValue;
}
// do children
// If all text nodes inside, get concatenated text from them.
var textNodes = [].slice.call(xml.childNodes).filter(function (node) { return node.nodeType === 3; });
if (xml.hasChildNodes() && xml.childNodes.length === textNodes.length) {
obj = [].slice.call(xml.childNodes).reduce(function (text, node) { return text + node.nodeValue; }, '');
}
else if (xml.hasChildNodes()) {
for(var i = 0; i < xml.childNodes.length; i++) {
var item = xml.childNodes.item(i);
var nodeName = item.nodeName;
if (typeof(obj[nodeName]) == "undefined") {
obj[nodeName] = xmlToJson(item);
} else {
if (typeof(obj[nodeName].push) == "undefined") {
var old = obj[nodeName];
obj[nodeName] = [];
obj[nodeName].push(old);
}
obj[nodeName].push(xmlToJson(item));
}
}
}
return obj;
}
function getPostsFromXml(xml) {
var json = xmlToJson(xml);
return json.channel.item;
}
window.toggleSearch = function toggleSearch() {
searchEl.classList.toggle('is-active');
if (searchEl.classList.contains('is-active')) {
// while opening
searchInputEl.value = '';
} else {
// while closing
searchResultsEl.classList.add('is-hidden');
}
setTimeout(function () {
searchInputEl.focus();
}, 210);
}
function handleInput() {
var currentResultHash, d;
currentInputValue = (searchInputEl.value + '').toLowerCase();
if (!currentInputValue || currentInputValue.length < 3) {
lastSearchResultHash = '';
searchResultsEl.classList.add('is-hidden');
return;
}
searchResultsEl.style.offsetWidth;
var matchingPosts = posts.filter(function (post) {
if ((post.title + '').toLowerCase().indexOf(currentInputValue) !== -1 || (post.description + '').toLowerCase().indexOf(currentInputValue) !== -1) {
return true;
}
});
if (!matchingPosts.length) {
searchResultsEl.classList.add('is-hidden');
}
currentResultHash = matchingPosts.reduce(function(hash, post) { return post.title + hash; }, '');
if (matchingPosts.length && currentResultHash !== lastSearchResultHash) {
searchResultsEl.classList.remove('is-hidden');
searchResultsEl.innerHTML = matchingPosts.map(function (post) {
d = new Date(post.pubDate);
return '' + post.title + '' + d.toUTCString().replace(/.*(\d{2})\s+(\w{3})\s+(\d{4}).*/,'$2 $1, $3') + ' ';
}).join('');
}
lastSearchResultHash = currentResultHash;
}
function init(options) {
searchFile = options.searchFile || searchFile;
searchEl = document.querySelector(options.searchSelector || '#js-super-search');
searchInputEl = document.querySelector(options.inputSelector || '#js-super-search__input');
searchResultsEl = document.querySelector(options.resultsSelector || '#js-super-search__results');
var xmlhttp=new XMLHttpRequest();
xmlhttp.open('GET', searchFile);
xmlhttp.onreadystatechange = function () {
if (xmlhttp.readyState != 4) return;
if (xmlhttp.status != 200 && xmlhttp.status != 304) { return; }
var node = (new DOMParser).parseFromString(xmlhttp.responseText, 'text/xml');
node = node.children[0];
posts = getPostsFromXml(node);
}
xmlhttp.send();
// Toggle on ESC key
window.addEventListener('keyup', function onKeyPress(e) {
if (e.which === 27) {
toggleSearch();
}
});
// Open on '/' key
window.addEventListener('keypress', function onKeyPress(e) {
if (e.which === 47 && !searchEl.classList.contains('is-active')) {
toggleSearch();
}
});
searchInputEl.addEventListener('input', function onInputChange() {
handleInput();
});
}
init.toggle = toggleSearch;
window.superSearch = init;
})();
================================================
FILE: newsletter/index.html
================================================
NEWSLETTER
Here is what's happening this week/month on 'YOURSITE'!
================================================
FILE: newsletter/js/archivebar-desktop-plugins.js
================================================
// https://github.com/jonrohan/ZeroClipboard
// Simple Set Clipboard System
// Author: Joseph Huckaby
var ZeroClipboard = {
version: "1.0.7",
clients: {}, // registered upload clients on page, indexed by id
moviePath: 'ZeroClipboard.swf', // URL to movie
nextId: 1, // ID of next movie
$: function(thingy) {
// simple DOM lookup utility function
if (typeof(thingy) == 'string') thingy = document.getElementById(thingy);
if (!thingy.addClass) {
// extend element with a few useful methods
thingy.hide = function() { this.style.display = 'none'; };
thingy.show = function() { this.style.display = ''; };
thingy.addClass = function(name) { this.removeClass(name); this.className += ' ' + name; };
thingy.removeClass = function(name) {
var classes = this.className.split(/\s+/);
var idx = -1;
for (var k = 0; k < classes.length; k++) {
if (classes[k] == name) { idx = k; k = classes.length; }
}
if (idx > -1) {
classes.splice( idx, 1 );
this.className = classes.join(' ');
}
return this;
};
thingy.hasClass = function(name) {
return !!this.className.match( new RegExp("\\s*" + name + "\\s*") );
};
}
return thingy;
},
setMoviePath: function(path) {
// set path to ZeroClipboard.swf
this.moviePath = path;
},
dispatch: function(id, eventName, args) {
// receive event from flash movie, send to client
var client = this.clients[id];
if (client) {
client.receiveEvent(eventName, args);
}
},
register: function(id, client) {
// register new client to receive events
this.clients[id] = client;
},
getDOMObjectPosition: function(obj, stopObj) {
// get absolute coordinates for dom element
var info = {
left: 0,
top: 0,
width: obj.width ? obj.width : obj.offsetWidth,
height: obj.height ? obj.height : obj.offsetHeight
};
while (obj && (obj != stopObj)) {
info.left += obj.offsetLeft;
info.top += obj.offsetTop;
obj = obj.offsetParent;
}
return info;
},
Client: function(elem) {
// constructor for new simple upload client
this.handlers = {};
// unique ID
this.id = ZeroClipboard.nextId++;
this.movieId = 'ZeroClipboardMovie_' + this.id;
// register client with singleton to receive flash events
ZeroClipboard.register(this.id, this);
// create movie
if (elem) this.glue(elem);
}
};
ZeroClipboard.Client.prototype = {
id: 0, // unique ID for us
ready: false, // whether movie is ready to receive events or not
movie: null, // reference to movie object
clipText: '', // text to copy to clipboard
handCursorEnabled: true, // whether to show hand cursor, or default pointer cursor
cssEffects: true, // enable CSS mouse effects on dom container
handlers: null, // user event handlers
glue: function(elem, appendElem, stylesToAdd) {
// glue to DOM element
// elem can be ID or actual DOM element object
this.domElement = ZeroClipboard.$(elem);
// float just above object, or zIndex 99 if dom element isn't set
var zIndex = 99;
if (this.domElement.style.zIndex) {
zIndex = parseInt(this.domElement.style.zIndex, 10) + 1;
}
if (typeof(appendElem) == 'string') {
appendElem = ZeroClipboard.$(appendElem);
}
else if (typeof(appendElem) == 'undefined') {
appendElem = document.getElementsByTagName('body')[0];
}
// find X/Y position of domElement
var box = ZeroClipboard.getDOMObjectPosition(this.domElement, appendElem);
// create floating DIV above element
this.div = document.createElement('div');
var style = this.div.style;
style.position = 'absolute';
style.left = '' + box.left + 'px';
style.top = '' + box.top + 'px';
style.width = '' + box.width + 'px';
style.height = '' + box.height + 'px';
style.zIndex = zIndex;
if (typeof(stylesToAdd) == 'object') {
for (addedStyle in stylesToAdd) {
style[addedStyle] = stylesToAdd[addedStyle];
}
}
// style.backgroundColor = '#f00'; // debug
appendElem.appendChild(this.div);
this.div.innerHTML = this.getHTML( box.width, box.height );
},
getHTML: function(width, height) {
// return HTML for movie
var html = '';
var flashvars = 'id=' + this.id +
'&width=' + width +
'&height=' + height;
if (navigator.userAgent.match(/MSIE/)) {
// IE gets an OBJECT tag
var protocol = location.href.match(/^https/i) ? 'https://' : 'http://';
html += ' ';
}
else {
// all other browsers get an EMBED tag
html += ' ';
}
return html;
},
hide: function() {
// temporarily hide floater offscreen
if (this.div) {
this.div.style.left = '-2000px';
}
},
show: function() {
// show ourselves after a call to hide()
this.reposition();
},
destroy: function() {
// destroy control and floater
if (this.domElement && this.div) {
this.hide();
this.div.innerHTML = '';
var body = document.getElementsByTagName('body')[0];
try { body.removeChild( this.div ); } catch(e) {;}
this.domElement = null;
this.div = null;
}
},
reposition: function(elem) {
// reposition our floating div, optionally to new container
// warning: container CANNOT change size, only position
if (elem) {
this.domElement = ZeroClipboard.$(elem);
if (!this.domElement) this.hide();
}
if (this.domElement && this.div) {
var box = ZeroClipboard.getDOMObjectPosition(this.domElement);
var style = this.div.style;
style.left = '' + box.left + 'px';
style.top = '' + box.top + 'px';
}
},
setText: function(newText) {
// set text to be copied to clipboard
this.clipText = newText;
if (this.ready) this.movie.setText(newText);
},
addEventListener: function(eventName, func) {
// add user event listener for event
// event types: load, queueStart, fileStart, fileComplete, queueComplete, progress, error, cancel
eventName = eventName.toString().toLowerCase().replace(/^on/, '');
if (!this.handlers[eventName]) this.handlers[eventName] = [];
this.handlers[eventName].push(func);
},
setHandCursor: function(enabled) {
// enable hand cursor (true), or default arrow cursor (false)
this.handCursorEnabled = enabled;
if (this.ready) this.movie.setHandCursor(enabled);
},
setCSSEffects: function(enabled) {
// enable or disable CSS effects on DOM container
this.cssEffects = !!enabled;
},
receiveEvent: function(eventName, args) {
// receive event from flash
eventName = eventName.toString().toLowerCase().replace(/^on/, '');
// special behavior for certain events
switch (eventName) {
case 'load':
// movie claims it is ready, but in IE this isn't always the case...
// bug fix: Cannot extend EMBED DOM elements in Firefox, must use traditional function
this.movie = document.getElementById(this.movieId);
if (!this.movie) {
var self = this;
setTimeout( function() { self.receiveEvent('load', null); }, 1 );
return;
}
// firefox on pc needs a "kick" in order to set these in certain cases
if (!this.ready && navigator.userAgent.match(/Firefox/) && navigator.userAgent.match(/Windows/)) {
var self = this;
setTimeout( function() { self.receiveEvent('load', null); }, 100 );
this.ready = true;
return;
}
this.ready = true;
this.movie.setText( this.clipText );
this.movie.setHandCursor( this.handCursorEnabled );
break;
case 'mouseover':
if (this.domElement && this.cssEffects) {
this.domElement.addClass('hover');
if (this.recoverActive) this.domElement.addClass('active');
}
break;
case 'mouseout':
if (this.domElement && this.cssEffects) {
this.recoverActive = false;
if (this.domElement.hasClass('active')) {
this.domElement.removeClass('active');
this.recoverActive = true;
}
this.domElement.removeClass('hover');
}
break;
case 'mousedown':
if (this.domElement && this.cssEffects) {
this.domElement.addClass('active');
}
break;
case 'mouseup':
if (this.domElement && this.cssEffects) {
this.domElement.removeClass('active');
this.recoverActive = false;
}
break;
} // switch eventName
if (this.handlers[eventName]) {
for (var idx = 0, len = this.handlers[eventName].length; idx < len; idx++) {
var func = this.handlers[eventName][idx];
if (typeof(func) == 'function') {
// actual function reference
func(this, args);
}
else if ((typeof(func) == 'object') && (func.length == 2)) {
// PHP style object + method, i.e. [myObject, 'myMethod']
func[0][ func[1] ](this, args);
}
else if (typeof(func) == 'string') {
// name of function
window[func](this, args);
}
} // foreach event handler defined
} // user defined handler for event
}
};
================================================
FILE: newsletter/js/fancyzoom.mc.js
================================================
var divsSeen = [];// store the divs we've already handled
var currentlyVisible = null;// one zoomy at a time
(function($){
$.fn.fancyZoom = function(options){
var options = options || {};
var directory = options && options.directory ? ;
var zooming = false;
var zoom_id = options.zoom_id ? options.zoom_id : 'zoom';
if ($('#' + zoom_id).length == 0) {
var ext = $.browser.msie ? 'gif' : 'png';
var html = '';
$('body').append(html);
$('html').click(function(e){if($(e.target).parents('#' + zoom_id + ':visible').length == 0) hide();});
$(document).keyup(function(event){
if (event.keyCode == 27 && $('#' + zoom_id + ':visible').length > 0) hide();
});
$('#' + zoom_id + '_close').click(hide);
}
var zoom = $('#' + zoom_id);
var zoom_table = $('#' + zoom_id + '_table');
var zoom_close = $('#' + zoom_id + '_close');
var zoom_content = $('#' + zoom_id + '_content');
var middle_row = $('td.ml,td.mm,td.mr');
this.each(function(i) {
$($(this).attr('href')).hide();
$(this).click(show);
});
return this;
function show(e) {
e.preventDefault();
if (zooming)
return false;
var hrefAttr = $(this).attr('href');
var seenAlready = false;
for (var i = 0; i < divsSeen.length; i++) {
if (divsSeen[i] == hrefAttr) {
seenAlready = true;
break;
}
}
if (currentlyVisible != null && currentlyVisible != zoom) {
$(currentlyVisible).hide();
}
var render = !options.persist || !seenAlready;
zooming = true;
var content_div = $($(this).attr('href'));
var zoom_width = options.width;
var zoom_height = options.height;
var iframe_height = options.iframe_height ? options.iframe_height : '200';
var href = $(this).attr('href');
var width = window.innerWidth
|| (window.document.documentElement.clientWidth || window.document.body.clientWidth);
var height = window.innerHeight
|| (window.document.documentElement.clientHeight || window.document.body.clientHeight);
var x = window.pageXOffset
|| (window.document.documentElement.scrollLeft || window.document.body.scrollLeft);
var y = window.pageYOffset
|| (window.document.documentElement.scrollTop || window.document.body.scrollTop);
var window_size = {
'width' : width,
'height' : height,
'x' : x,
'y' : y
}
var width = (zoom_width || content_div.width()) + 60;
var height = (zoom_height || content_div.height()) + 60;
var d = window_size;
// ensure that newTop is at least 0 so it doesn't hide close button
if (window.top!=window.self){
var newTop = e.currentTarget.clientX;
var newLeft = e.currentTarget.clientY;
} else {
var newTop = Math.max((d.height / 2) - (height / 2) + y, 0);
var newLeft = (d.width / 2) - (width / 2);
}
var curTop = e.pageY ? e.pageY : 0;// IE says boo to pageY
var curLeft = e.pageX ? e.pageX : 0;// IE says boo to pageX
zoom_close.attr('curTop', curTop);
zoom_close.attr('curLeft', curLeft);
zoom_close.attr('scaleImg', options.scaleImg ? 'true' : 'false');
zoom.hide().css( {
position : 'absolute',
top : curTop + 'px',
left : curLeft + 'px',
width : '1px',
height : '1px'
});
zoom_close.hide();
if (options.closeOnClick) {
zoom.click(hide);
}
if ($(this).attr('href').indexOf('http') != -1) {
var iframe = true;
}
if (render) {
if (options.scaleImg) {
if (iframe == true) {
zoom_content
.html('');
} else {
zoom_content.html(content_div.html());
}
$('#zoom_content img').css('width', '100%');
} else {
if (!options.persist) {
var content_children = zoom_content.children();
for (var i = 0; i < content_children.length; i++) {
$(zoom_content.attr('rel')).append(content_children[i]);
}
}
}
}
zoom
.animate(
{
top : newTop + 'px',
left : newLeft + 'px',
opacity : "show",
width : width,
height : height,
'z-index' : '99999'
},
150,
null,
function() {
if (options.scaleImg != true) {
if (iframe == true) {
zoom_content
.html('');
} else {
if (render) {
var content_children = content_div.children();
for (var i = 0; i < content_children.length; i++) {
zoom_content.append(content_children[i]);
}
if (!seenAlready) {
if (options.firstTimeCallback) { options.firstTimeCallback(); }
divsSeen[divsSeen.length] = hrefAttr;
}
}
zoom_content.attr('rel',hrefAttr);
}
}
zoom_close.show();
zooming = false;
});
currentlyVisible = zoom;
return false;
}
function hide() {
if (zooming)
return false;
zooming = true;
zoom.unbind('click');
if (zoom_close.attr('scaleImg') != 'true') {
if (!options.persist) {
var content_children = zoom_content.children();
for (var i = 0; i < content_children.length; i++) {
$(zoom_content.attr('rel')).append(content_children[i]);
}
}
}
zoom_close.hide();
zoom.animate( {
top : zoom_close.attr('curTop') + 'px',
left : zoom_close.attr('curLeft') + 'px',
opacity : "hide",
width : '1px',
height : '1px'
}, 150, null, function() {
if (zoom_close.attr('scaleImg') == 'true') {
zoom_content.html('');
}
zooming = false;
});
currentlyVisible = null;
return false;
}
};
})(jQuery);
================================================
FILE: package.json
================================================
{
"name": "photorama",
"version": "1.0.0",
"description": "Theme by [Start Bootstrap](http://startbootstrap.com/).",
"main": "Gruntfile.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"repository": {
"type": "git",
"url": "https://github.com/sunbliss/photorama.git"
},
"author": "Anna Prigkipaki",
"license": "Apache-2.0",
"bugs": {
"url": "https://github.com/sunbliss/photorama/issues"
},
"homepage": "http://sunbliss.github.io",
"dependencies": {
"searchkit": "^0.7.0"
}
}
================================================
FILE: search.html
================================================
---
layout: page
title: Search
description: "What are you looking for?"
header-img: "img/archive-bg.jpg"
permalink: /search/
---
Image Source: UNSPLASH
================================================
FILE: search.json
================================================
---
---
[
{% for post in site.posts %}
{
"title" : "{{ post.title | escape }}",
"category" : "{{ post.category }}",
"tags" : "{{ post.tags | join: ', ' }}",
"url" : "{{ site.baseurl }}{{ post.url }}",
"date" : "{{ post.date }}",
"content" : {{ page.content | jsonify }}
} {% unless forloop.last %},{% endunless %}
{% endfor %}
,
{% for page in site.pages %}
{
{% if page.title != nil %}
"title" : "{{ page.title | escape }}",
"category" : "{{ page.category }}",
"tags" : "{{ page.tags | join: ', ' }}",
"url" : "{{ site.baseurl }}{{ page.url }}",
"date" : "{{ page.date }}",
"content" : {{ page.content | jsonify }}
{% endif %}
} {% unless forloop.last %},{% endunless %}
{% endfor %}
]