Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ _drafts/
_site/
.sass-cache/
.rbenv/
.ruby-version

Gemfile.lock

Expand Down
2 changes: 1 addition & 1 deletion Gemfile
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
source 'https://rubygems.org'

gem 'github-pages'
gem 'github-pages', group: :jekyll_plugins
gem 'rake'
gem 'html-proofer'
2 changes: 2 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@ $ bundle exec rake test
## Credits
- Layout from [Jekyll][jekyll] default theme
- Icons by [Font-Awesome][fontawesome]
- Favicons generated with [Real Favicon Generator][favicongenerator]

## License
The **content** is licensed under a [Creative Commons Attribution 4.0 International License][cc-license].
Expand All @@ -42,3 +43,4 @@ The **code** is licensed under [MIT Licensed][mit-license].
[mit-license]: http://www.opensource.org/licenses/mit-license.php
[cc-license]: href="http://creativecommons.org/licenses/by/4.0/
[cc-image]: https://i.creativecommons.org/l/by/4.0/88x31.png
[favicongenerator]: https://realfavicongenerator.net
17 changes: 15 additions & 2 deletions _config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,12 +13,15 @@ timezone: America/Sao_Paulo
title: Pablo Vieira
email: contact@pv8.io

app_name: PV

meta:
description: "Pablo Vieira's personal website."
keywords: project management, agile, software, coding, programming, python, database, gamification, jeenga, marketing, crm
keywords: project management, agile, scrum, coding, programming, python, database, nosql, gamification, cto, jeenga, marketing, crm
theme_color: "#fff"

baseurl: "" # the subpath of your site, e.g. /blog/
url: "http://pv8.io" # the base hostname & protocol for your site
url: "https://www.pv8.io" # the base hostname & protocol for your site

branch: master

Expand Down Expand Up @@ -47,3 +50,13 @@ markdown: kramdown

gems:
- jekyll-sitemap

compress_html:
clippings: all
comments: ["<!-- ", " -->"]
endings: all
ignore:
envs: [local]
blanklines: false
profile: false
startings: [html, head, body]
4 changes: 2 additions & 2 deletions _includes/footer.html
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
{% assign profile = profile_hash[1] %}
{% if profile.show %}
<li>
<a href="{{ profile.url }}" target="_blank" class="icon-link">
<a href="{{ profile.url }}" target="_blank" rel="noopener" class="icon-link">
<span class="icon-desc">{{ profile.name }}</span>
<br/>
<i class="fa fa-{{ profile_hash[0] }} fa-3x icon"></i>
Expand All @@ -20,7 +20,7 @@
</ul>
</div>
<div class="footer-col">
<span class="post-meta">PGP <a href="{{ site.pgp.url }}" target="_blank"><code>{{ site.pgp.fingerprint }}</code></a></span>
<span class="post-meta">PGP <a href="{{ site.pgp.url }}" target="_blank" rel="noopener"><code>{{ site.pgp.fingerprint }}</code></a></span>
</div>
<div class="footer-col">
<span class="post-meta">Copyright &#169; {{ site.time | date: '%Y' }} • {{ site.profile.name }}</span>
Expand Down
24 changes: 23 additions & 1 deletion _includes/head.html
Original file line number Diff line number Diff line change
@@ -1,14 +1,30 @@
<head>
<!-- Common metatags -->
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="robots" content="index, follow">

<link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png">
<link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png">
<link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png">
<link rel="manifest" href="/manifest.json">
<link rel="mask-icon" href="/safari-pinned-tab.svg" color="#bf921e">
<meta name="apple-mobile-web-app-title" content="{{ site.app_name }}">
<meta name="application-name" content="{{ site.app_name }}">
<meta name="theme-color" content="{{ site.meta.theme_color }}">

{% capture page_title %}{% if page.title %}{{ " &middot; pv8.io" | prepend: page.title }}{% else %}{{ site.title }}{% endif %}{% endcapture %}
{% capture page_description %}{% if page.excerpt %}{{ page.excerpt | markdownify | strip_html | strip_newlines | truncate: 160 }}{% else %}{{ site.meta.description }}{% endif %}{% endcapture %}
{% capture url %}{{ page.url | replace:'index.html','' | prepend: site.baseurl | prepend: site.url }}{% endcapture %}
<title>{{ page_title }}</title>

<meta name="author" content="{{ site.profile.name }}">
<meta name="image" content="{{ site.default_image }}">
<meta name="description" content="{{ page_description }}">
<meta name="keywords" content="{{ site.meta.keywords }}">
<meta name="MobileOptimized" content="320" />
<meta name="HandheldFriendly" content="True" />

<!-- Twitter Cards metatags -->
<meta name="twitter:card" content="summary" />
Expand All @@ -24,6 +40,7 @@
<meta name="twitter:url" content="{{ url }}" />

<!-- Open Graph metatags -->
<meta property="og:locale" content="en_US">
<meta property="og:site_name" content="{{ site.title }}" />
<meta property="og:title" content="{{ page_title }}" />
<meta property="og:description" content="{{ page_description }}" />
Expand All @@ -46,6 +63,11 @@
<meta property="og:image" content="{{ site.default_image }}" />
{% endif %}

<!-- schema.org metatags -->
<meta itemprop="name" content="{{ site.profile.name }}">
<meta itemprop="description" content="{{ site.meta.description }}">
<meta itemprop="image" content="{{ site.default_image }}">

<link rel="stylesheet" href="{{ "/css/main.css" | prepend: site.baseurl }}">
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.5.0/css/font-awesome.min.css">
<link rel="canonical" href="{{ url }}">
Expand Down
2 changes: 1 addition & 1 deletion _includes/header.html
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
<a class="site-title" href="{{ site.baseurl }}/">{{ site.title }}</a>

<nav class="site-nav">
<a href="#" class="menu-icon">
<a href="#" class="menu-icon" alt="Main menu">
<svg viewBox="0 0 18 15">
<path fill="#424242" d="M18,1.484c0,0.82-0.665,1.484-1.484,1.484H1.484C0.665,2.969,0,2.304,0,1.484l0,0C0,0.665,0.665,0,1.484,0 h15.031C17.335,0,18,0.665,18,1.484L18,1.484z"/>
<path fill="#424242" d="M18,7.516C18,8.335,17.335,9,16.516,9H1.484C0.665,9,0,8.335,0,7.516l0,0c0-0.82,0.665-1.484,1.484-1.484 h15.031C17.335,6.031,18,6.696,18,7.516L18,7.516z"/>
Expand Down
2 changes: 1 addition & 1 deletion _includes/main-footer.html
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
<p>
<em>Choose Independent. Choose Firefox.</em>
<br/>
<a href="https://affiliates.mozilla.org/referral/70345" target="_blank">
<a href="https://affiliates.mozilla.org/referral/70345" target="_blank" rel="noopener">
<img alt="" src="//images-focus-opensocial.googleusercontent.com/gadgets/proxy?url=https://affiliates.mozilla.org/media/uploads/banners/ea2d21127b1d4284f090aa9342a6d9b840e8070b.png&amp;container=focus&amp;gadget=a&amp;rewriteMime=image/*" />
</a>
</p>
Expand Down
14 changes: 14 additions & 0 deletions _includes/service-worker.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
<script>
if ('serviceWorker' in navigator) {
console.log('ServiceWorker available \\o/');
window.addEventListener('load', function() {
navigator.serviceWorker.register('/sw.js').then(function(registration) {
console.log('ServiceWorker registration successful with scope: ', registration.scope);
}, function(err) {
console.log('ServiceWorker registration failed: ', err);
});
});
} else {
console.log('ServiceWorker not available :(');
}
</script>
10 changes: 10 additions & 0 deletions _layouts/compress.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
---
# Jekyll layout that compresses HTML
# v3.0.1
# http://jch.penibelst.de/
# © 2014–2015 Anatol Broder
# MIT License
---

{% capture _LINE_FEED %}
{% endcapture %}{% if site.compress_html.ignore.envs contains jekyll.environment %}{{ content }}{% else %}{% capture _content %}{{ content }}{% endcapture %}{% assign _profile = site.compress_html.profile %}{% if site.compress_html.endings == "all" %}{% assign _endings = "html head body li dt dd p rt rp optgroup option colgroup caption thead tbody tfoot tr td th" | split: " " %}{% else %}{% assign _endings = site.compress_html.endings %}{% endif %}{% for _element in _endings %}{% capture _end %}</{{ _element }}>{% endcapture %}{% assign _content = _content | remove: _end %}{% endfor %}{% if _profile and _endings %}{% assign _profile_endings = _content | size | plus: 1 %}{% endif %}{% for _element in site.compress_html.startings %}{% capture _start %}<{{ _element }}>{% endcapture %}{% assign _content = _content | remove: _start %}{% endfor %}{% if _profile and site.compress_html.startings %}{% assign _profile_startings = _content | size | plus: 1 %}{% endif %}{% if site.compress_html.comments == "all" %}{% assign _comments = "<!-- -->" | split: " " %}{% else %}{% assign _comments = site.compress_html.comments %}{% endif %}{% if _comments.size == 2 %}{% capture _comment_befores %}.{{ _content }}{% endcapture %}{% assign _comment_befores = _comment_befores | split: _comments.first %}{% for _comment_before in _comment_befores %}{% if forloop.first %}{% continue %}{% endif %}{% capture _comment_outside %}{% if _carry %}{{ _comments.first }}{% endif %}{{ _comment_before }}{% endcapture %}{% capture _comment %}{% unless _carry %}{{ _comments.first }}{% endunless %}{{ _comment_outside | split: _comments.last | first }}{% if _comment_outside contains _comments.last %}{{ _comments.last }}{% assign _carry = false %}{% else %}{% assign _carry = true %}{% endif %}{% endcapture %}{% assign _content = _content | remove_first: _comment %}{% endfor %}{% if _profile %}{% assign _profile_comments = _content | size | plus: 1 %}{% endif %}{% endif %}{% assign _pre_befores = _content | split: "<pre" %}{% assign _content = "" %}{% for _pre_before in _pre_befores %}{% assign _pres = _pre_before | split: "</pre>" %}{% assign _pres_after = "" %}{% if _pres.size != 0 %}{% if site.compress_html.blanklines %}{% assign _lines = _pres.last | split: _LINE_FEED %}{% assign _lastchar = _pres.last | split: "" | last %}{% assign _outerloop = forloop %}{% capture _pres_after %}{% for _line in _lines %}{% assign _trimmed = _line | split: " " | join: " " %}{% if forloop.last and _lastchar == _LINE_FEED %}{% unless _outerloop.last %}{{ _LINE_FEED }}{% endunless %}{% continue %}{% endif %}{% if _trimmed != empty or forloop.last %}{% unless forloop.first %}{{ _LINE_FEED }}{% endunless %}{{ _line }}{% endif %}{% endfor %}{% endcapture %}{% else %}{% assign _pres_after = _pres.last | split: " " | join: " " %}{% endif %}{% endif %}{% capture _content %}{{ _content }}{% if _pre_before contains "</pre>" %}<pre{{ _pres.first }}</pre>{% endif %}{% unless _pre_before contains "</pre>" and _pres.size == 1 %}{{ _pres_after }}{% endunless %}{% endcapture %}{% endfor %}{% if _profile %}{% assign _profile_collapse = _content | size | plus: 1 %}{% endif %}{% if site.compress_html.clippings == "all" %}{% assign _clippings = "html head title base link meta style body article section nav aside h1 h2 h3 h4 h5 h6 hgroup header footer address p hr blockquote ol ul li dl dt dd figure figcaption main div table caption colgroup col tbody thead tfoot tr td th" | split: " " %}{% else %}{% assign _clippings = site.compress_html.clippings %}{% endif %}{% for _element in _clippings %}{% assign _edges = " <e;<e; </e>;</e>;</e> ;</e>" | replace: "e", _element | split: ";" %}{% assign _content = _content | replace: _edges[0], _edges[1] | replace: _edges[2], _edges[3] | replace: _edges[4], _edges[5] %}{% endfor %}{% if _profile and _clippings %}{% assign _profile_clippings = _content | size | plus: 1 %}{% endif %}{{ _content }}{% if _profile %} <table id="compress_html_profile_{{ site.time | date: "%Y%m%d" }}" class="compress_html_profile"> <thead> <tr> <td>Step <td>Bytes <tbody> <tr> <td>raw <td>{{ content | size }}{% if _profile_endings %} <tr> <td>endings <td>{{ _profile_endings }}{% endif %}{% if _profile_startings %} <tr> <td>startings <td>{{ _profile_startings }}{% endif %}{% if _profile_comments %} <tr> <td>comments <td>{{ _profile_comments }}{% endif %}{% if _profile_collapse %} <tr> <td>collapse <td>{{ _profile_collapse }}{% endif %}{% if _profile_clippings %} <tr> <td>clippings <td>{{ _profile_clippings }}{% endif %} </table>{% endif %}{% endif %}
7 changes: 6 additions & 1 deletion _layouts/default.html
Original file line number Diff line number Diff line change
@@ -1,3 +1,7 @@
---
layout: compress
---

<!DOCTYPE html>
<html lang="en">

Expand All @@ -16,6 +20,7 @@
{% include footer.html %}

{% include analytics.html %}
</body>

{% include service-worker.html %}
</body>
</html>
Binary file added android-chrome-192x192.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added android-chrome-512x512.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added apple-touch-icon-120x120.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added apple-touch-icon-152x152.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added apple-touch-icon-180x180.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added apple-touch-icon-60x60.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added apple-touch-icon-76x76.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added apple-touch-icon.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
9 changes: 9 additions & 0 deletions browserconfig.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
<?xml version="1.0" encoding="utf-8"?>
<browserconfig>
<msapplication>
<tile>
<square150x150logo src="/mstile-150x150.png"/>
<TileColor>#da532c</TileColor>
</tile>
</msapplication>
</browserconfig>
Binary file added favicon-16x16.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added favicon-32x32.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added favicon.ico
Binary file not shown.
12 changes: 6 additions & 6 deletions index.html
Original file line number Diff line number Diff line change
Expand Up @@ -13,22 +13,22 @@ <h1 class="page-title">About me</h1>
<div class="main-content">
<p>
I'm an agile project manager and software engineer living and working
in Sao Paulo, the <a href="https://en.wikipedia.org/wiki/S%C3%A3o_Paulo" target="_blank"><em>Land of Drizzle</em></a>.
in Sao Paulo, the <a href="https://en.wikipedia.org/wiki/S%C3%A3o_Paulo" target="_blank" rel="noopener"><em>Land of Drizzle</em></a>.
My job is helping people make sense of their lots of data,
turning them into understandable and relevant information so that they
can make big decisions faster and easier.
</p>
<p>
I love sports (specially martial arts) and traveling. I started running 5 years ago influenced by <a href="http://cioccari.com" target="_blank">my wife</a>.
I love sports (specially martial arts) and traveling. I started running 5 years ago influenced by <a href="http://cioccari.com" target="_blank" rel="noopener">my wife</a>.
</p>
<p>
Huge fan of <a href="http://www.imdb.com/title/tt0903747/" target="_blank">Breaking Bad</a> (missing it bad)
and <a href="http://www.imdb.com/title/tt1856010/" target="_blank">House of Cards</a>.
Huge fan of <a href="http://www.imdb.com/title/tt0903747/" target="_blank" rel="noopener">Breaking Bad</a> (missing it bad)
and <a href="http://www.imdb.com/title/tt1856010/" target="_blank" rel="noopener">House of Cards</a>.
</p>
<p>
<h4>About this site</h4>
This website is built on <a href="http://jekyllrb.com/" target="_blank">Jekyll</a>
and hosted on <a href="https://pages.github.com/" target="_blank">GitHub Pages</a>.
This website is built on <a href="http://jekyllrb.com/" target="_blank" rel="noopener">Jekyll</a>
and hosted on <a href="https://pages.github.com/" target="_blank" rel="noopener">GitHub Pages</a>.
<br/>
{% assign github = site.data.social-profiles | where:"name","GitHub" %}
Fork it on <a href="{{ github[0].url }}/pv8.github.io">GitHub</a>.
Expand Down
24 changes: 24 additions & 0 deletions manifest.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
---
permalink: manifest.json
---

{
"lang": "en",
"name": "{{ site.app_name }}",
"short_name": "{{ site.author }}",
"description": "{{ site.meta.description }}",
"start_url": "./?utm_source=web_app_manifest&utm_medium=web_app_manifest",
"display": "standalone",
"orientation": "portrait",
"background_color": "{{ site.meta.theme_color }}",
"theme_color": "{{ site.meta.theme_color }}",
"icons": [{
"src": "/android-chrome-192x192.png",
"sizes": "192x192",
"type": "image/png"
},{
"src": "android-chrome-512x512.png",
"sizes": "512x512",
"type": "image/png"
}]
}
Binary file added mstile-150x150.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
1 change: 1 addition & 0 deletions safari-pinned-tab.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
80 changes: 80 additions & 0 deletions sw.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,80 @@
---
layout: null
---

var CACHE_NAME = 'pv8-web-cache-v1';

var urlsToCache = [
'/',
'/css/main.css',
{% for page in site.html_pages %}
'{{ page.url }}',
{% endfor %}
{% for post in site.posts %}
'{{ post.url }}',
{% endfor %}
{% for file in site.static_files %}
{% if file.extname == '.js' or file.path contains '/media' %} '{{ file.path }}', {% endif %}
{% endfor %}
];

// {% if file.extname == '.js' or file.path contains '/portfolio/screenshots' or file.path contains '/portfolio/thumbnails' %} '{{ file.path }}', {% endif %}

const CACHE_STATIC = [
'/css/main.css',
'/media/gamification_balance.png',
'/media/gamification_experience.png',
'/media/gamification_gameelements.png',
'/media/gamification_icon.png',
'/media/gamification_journey.png',
'/media/gamification_players.png',
'/media/Python-logo-notext.png'
];

const CACHE_APP = [
'/',
'/index.html',
'/posts/',
'/contact/'
];

self.addEventListener('install',function(event){
event.waitUntil(
caches.open(CACHE_NAME)
.then(function(cache) {
console.log('Opened cache');
return cache.addAll(urlsToCache);
})
);
});

self.addEventListener('fetch', function(event) {
event.respondWith(
caches.match(event.request)
.then(function(response) {
// Cache hit - return response
if (response) {
return response;
}
return fetch(event.request);
}
)
);
});

self.addEventListener('activate', function(event) {

var cacheWhitelist = [CACHE_NAME];

event.waitUntil(
caches.keys().then(function(cacheNames) {
return Promise.all(
cacheNames.map(function(cacheName) {
if (cacheWhitelist.indexOf(cacheName) === -1) {
return caches.delete(cacheName);
}
})
);
})
);
});