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 ==================== ![photorama](https://raw.githubusercontent.com/sunbliss/photorama/gh-pages/photorama_thumb.gif) ---------- ---> [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 %}
{% endif %} ================================================ FILE: _includes/footer.html ================================================ ================================================ FILE: _includes/head.html ================================================ {% if page.title %}{{ page.title }} - {{ site.title }}{% else %}{{ site.title }}{% endif %} ================================================ FILE: _includes/nav.html ================================================ ================================================ FILE: _includes/newsletter.html ================================================

SUBSCRIBE TO RECEIVE POSTS DIRECTLY TO YOUR INBOX

   
================================================ FILE: _includes/search.html ================================================ ================================================ FILE: _includes/share.html ================================================

Share this post

================================================ FILE: _includes/signoff.html ================================================
{{ site.owner.name }}'s photo

By

{{ site.owner.info }}
================================================ FILE: _includes/subgallery.html ================================================ {% if include.id %} {% assign gallery = page.[include.id] %} {% else %} {% assign gallery = page.gallery %} {% endif %} ================================================ 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 %} {% endif %}

{{ post.title }}

{% if forloop.last %}
{% 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 %} {% endif %}

{{ post.title }}

{% if forloop.last %}
{% endif %} {% endfor %} {% else %}

There are no posts for this tag.

{% endif %}
================================================ FILE: _layouts/page.html ================================================ --- layout: default ---

{% if page.title %}{{ page.title }}{% else %}{{ site.title }}{% endif %}


{{ page.description }}
{{ content }}
================================================ FILE: _layouts/post.html ================================================ --- layout: default --- {% assign post = page %}

{{ page.title }}

{% if page.subtitle %}

{{ page.subtitle }}

{% endif %} Posted on {{ page.date | date: "%B %-d, %Y" }} {% assign minutes = content | number_of_words | divided_by: 180 %}  {% if minutes == 0 %}{% assign minutes = 1 %}{% endif %} {{ minutes }} minute read {% if post.tags.size > 0 %} ∼ Tagged with {% if post.tags.size == 1 %} {% else %}{% endif %} : {% for tag in page.tags %}{% unless forloop.last %} • {% endunless %}{% endfor %}{% endif %} {% if post.categories.size > 0 %} ∼ Filed in {% if post.categories.size == 1 %} {% else %}{% endif %} : {% for tag in page.categories %}{% unless forloop.last %} • {% endunless %}{% endfor %%}{% endif %}
{{ content }}


{% include signoff.html %}
{% if site.share %}{% include share.html %}{% endif %} {% if site.comments %}{% include disqus_comments.html %}{% endif %}


Tags Cloud

{% 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 %}
{% for tag in tags %} {{ tag }}    {% endfor %}

Categories Cloud

{% 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 %}
{% for category in categories %} {{ category }}    {% endfor %}



================================================ 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}}

================================================ 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}}

================================================ 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}}

================================================ 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}}

================================================ 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}}

================================================ 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}}

================================================ 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}}

================================================ 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}}

================================================ 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}}

================================================ 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}}


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 }}

{{ page.description }}


================================================ 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" ---

POSTS

Browse by Category or Tag
{% 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
    DAY/MONTH/YEAR | View in browser
    Here is what's happening this week/month on 'YOURSITE'!
    YOURSITE
    Main Title.
    Summary of the post.

    READ MORE
    Main Title.
    Summary of the post.

    READ MORE
    YOURSITE
    Main Title.
    Summary of the post.

    READ MORE
    Main Title.
    Summary of the post.

    READ MORE
    Main Title.
    Summary of the post.

    READ MORE
    Main Title.
    Summary of the post.

    READ MORE
    YOURSITE
    Main Title.
    Summary of the post.

    READ MORE
    Main Title.
    Summary of the post.

    READ MORE
    Copyright © 2016 'YOURSITE', All rights reserved.

    update your preferences |  unsubscribe from this list
    ================================================ 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/ ---

      tag cloud
      {% assign tags = site.tags | sort %} {% for tag in tags %} {{ tag[0] | replace:'-', ' ' }} ({{ tag | last | size }}) {% unless forloop.last %} {% endunless %}{% endfor %}

      categories
      {% assign categories = site.categories | sort %} {% for category in categories %} {{ category[0] | replace:'-', ' ' }} ({{ category | last | size }}) {% unless forloop.last %} {% endunless %}{% endfor %}

      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 %} ]