init commit

master
Paul Walko 2016-06-09 17:51:55 -04:00
commit 486ed15b61
9915 changed files with 1035994 additions and 0 deletions

110
404.html Normal file
View File

@ -0,0 +1,110 @@
---
title: 404
exclude_from_nav: true
---
<!doctype html>
<html>
<head>
<meta charset="UTF-8" />
<title>Error!</title>
<style>
html {
font-size: 62.5%;
}
* {
margin: 0;
padding: 0;
font-size: 100%;
-moz-box-sizing: border-box;
box-sizing: border-box;
}
body {
padding: 60px;
background: #fafafa;
font-size: 150%;
font-family: Helvetica, Arial, sans-serif;
font-weight: 300;
line-height: 1.5;
}
#wrap {
width: 100%;
max-width: 700px;
margin: 0 auto;
padding: 30px;
background: #fff;
box-shadow: 0 0 20px rgba(0, 0, 0, 0.2);
border-radius: 3px;
border-top: 3px solid #b00f08;
}
hr {
display: none;
}
p {
margin: 0 0 15px;
}
a {
color: #731217;
}
a:hover {
color: #b00f08;
}
h1 {
margin: 0 0 15px;
font-size: 240%;
font-weight: 300;
color: #731217;
}
.content {
padding: 15px;
margin: 15px 0;
background: #eee;
border: 1px solid rgba(0, 0, 0, 0.1);
font-weight: bold;
color: #666;
}
pre {
overflow: auto;
padding: 15px;
background: #fafafa;
border: 1px solid rgba(0, 0, 0, 0.1);
line-height: 1.8;
color: rgba(0, 0, 0, 0.8);
}
pre.exception {
background-color: #ffeded;
}
pre em {
font-style: normal;
color: rgba(0, 0, 0, 0.5);
border-bottom: 1px dotted;
cursor: help;
}
</style>
</head>
<body>
<div id="wrap">
<h1>Error!</h1>
<p>The requested url <script>
document.write(window.location.pathname);
</script> was not found.</p>
</div>
</body>
</html>

1
CNAME Normal file
View File

@ -0,0 +1 @@
spaghetti.ga

9
Gemfile Normal file
View File

@ -0,0 +1,9 @@
source 'https://rubygems.org'
gem 'thor'
gem 'stringex'
gem 'jekyll-paginate'
gem 'kramdown'
gem 'jekyll-watch'
gem 'jekyll-archives'
gem 'jekyll'
gem 'json'

52
Gemfile.lock Normal file
View File

@ -0,0 +1,52 @@
GEM
remote: https://rubygems.org/
specs:
colorator (0.1)
ffi (1.9.10)
jekyll (3.0.2)
colorator (~> 0.1)
jekyll-sass-converter (~> 1.0)
jekyll-watch (~> 1.1)
kramdown (~> 1.3)
liquid (~> 3.0)
mercenary (~> 0.3.3)
rouge (~> 1.7)
safe_yaml (~> 1.0)
jekyll-archives (2.1.0)
jekyll (>= 2.4)
jekyll-paginate (1.1.0)
jekyll-sass-converter (1.4.0)
sass (~> 3.4)
jekyll-watch (1.3.1)
listen (~> 3.0)
json (1.8.3)
kramdown (1.9.0)
liquid (3.0.6)
listen (3.0.5)
rb-fsevent (>= 0.9.3)
rb-inotify (>= 0.9)
mercenary (0.3.5)
rb-fsevent (0.9.7)
rb-inotify (0.9.5)
ffi (>= 0.5.0)
rouge (1.10.1)
safe_yaml (1.0.4)
sass (3.4.21)
stringex (2.5.2)
thor (0.19.1)
PLATFORMS
ruby
DEPENDENCIES
jekyll
jekyll-archives
jekyll-paginate
jekyll-watch
json
kramdown
stringex
thor
BUNDLED WITH
1.11.2

9
README.md Normal file
View File

@ -0,0 +1,9 @@
# spaghetti.ga
Based of Jekyll default theme and redesign again by me.<br>
Feel free to use this theme :^)
<br><br>
But please don't try to copy anything from my article :p
# License
MIT

39
_config.yml Normal file
View File

@ -0,0 +1,39 @@
# Welcome to Jekyll!
#
# This config file is meant for settings that affect your whole blog, values
# which you are expected to set up once and rarely need to edit after that.
# For technical reasons, this file is *NOT* reloaded automatically when you use
# 'jekyll serve'. If you change this file, please restart the server process.
# Site settings
title: Spaghetti-san Blog
email: spaghettisan@yahoo.com
description: > # this means to ignore newlines until "baseurl:"
All about Spaghetti-san Project
baseurl: "" # the subpath of your site, e.g. /blog
url: "http://spaghetti.ga" # the base hostname & protocol for your site
twitter_username: axlyody
github_username: spaghetti-san
facebook_username: axlyody
# Gems
gems:
- jekyll-archives
- jekyll-paginate
# Config
paginate: 5
paginate_path: "page/:num"
# Build settings
markdown: kramdown
# Archive
jekyll-archives:
enabled: []
layout: 'archive'
permalinks:
year: '/:year/'
month: '/:year/:month/'
day: '/:year/:month/:day/'
tag: '/tag/:name/'
category: '/category/:name/'

9
_data/comments.yml Normal file
View File

@ -0,0 +1,9 @@
sessions:
- _id: ODI5MjY=
comment: Just testing
created: 2015-12-28 08:21:04.435642+00:00
email: axlyody@gmail.com
name: Spaghettiaru
path: /web/2015/12/27/start-a-blog.html
title: ''
url: http://spaghetti.ga

78
_includes/footer.html Normal file
View File

@ -0,0 +1,78 @@
<footer class="site-footer">
<div class="wrapper">
<h2 class="footer-heading">{{ site.title }}</h2>
<div class="footer-col-wrapper">
<div class="footer-col footer-col-1">
<ul class="contact-list">
<li>Spaghetti-san Personal Blog</li>
<li><a href="mailto:{{ site.email }}">{{ site.email }}</a></li>
</ul>
</div>
<div class="footer-col footer-col-2">
<ul class="social-media-list">
{% if site.github_username %}
<li>
{% include icon-github.html username=site.github_username %}
</li>
{% endif %}
{% if site.facebook_username %}
<li>
{% include icon-facebook.html username=site.facebook_username %}
</li>
{% endif %}
{% if site.twitter_username %}
<li>
{% include icon-twitter.html username=site.twitter_username %}
</li>
{% endif %}
</ul>
</div>
<div class="footer-col footer-col-3">
<p>Designed by Spaghetti</p>
<p>Proudly hosted by <a href="https://pages.github.com/" target="_blank"><span class="octicon octicon-logo-github" style="color: #828282;
position: relative;
top: 4px;
left: 3px;
font-size: 20px;"></span></a></p>
</div>
</div>
</div>
</footer>
<!--- Where Javascript Loaded --->
<script type="text/javascript" src="//cdnjs.cloudflare.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script>
<script type="text/javascript" src="http://iamceege.github.io/tooltipster/js/jquery.tooltipster.js"></script>
<script>
$(document).ready(function() {
if(location.pathname != "/") {
$('.trigger a[href^="/' + location.pathname.split("/")[1] + '"]').addClass('active');
} else $('.none a:eq(0)').addClass('active');
});
</script>
<script>
$(document).ready(function() {
$('.tooltip-right').tooltipster({
contentAsHTML: true,
position: 'right',
});
});
$(document).ready(function() {
$('.tooltip-left').tooltipster({
contentAsHTML: true,
position: 'left',
});
});
</script>
<script type="text/javascript" src="//cdnjs.cloudflare.com/ajax/libs/jquery.pjax/1.9.6/jquery.pjax.min.js"></script>
<script type="text/javascript" src="//cdnjs.cloudflare.com/ajax/libs/pace/1.0.2/pace.min.js"></script>
<script type="text/javascript" src="/assets/js/jquery-autocomplete.js"></script>
<script src="/assets/js/responsive_waterfall.js"></script>
<script type="text/javascript" src="//cdnjs.cloudflare.com/ajax/libs/jquery.lazyload/1.9.1/jquery.lazyload.min.js"></script>
<script>
$(document).ready(function(){$(".menu-icon").click(function(){$(".trigger").toggle()})}),$(function(){$(document).pjax("#route","body",{fragment:"body",timeout:1e5,scrollTo:0,push:!0,maxCacheLength:20,replace:!1})}),$(document).on("pjax:error",function(e,n,t,o,c){return c.success(n.responseText,t,n),!1});var options={url:"/gblk.json",getValue:"title",list:{match:{enabled:!0,maxNumberOfElements:5}},template:{type:"links",fields:{link:"url"}},theme:"square"};$("#countries").easyAutocomplete(options),Pace.on("start",function(){$(".pacel").show()}),Pace.on("done",function(){$(".pacel").hide()}),$(function(){$("img").lazyload({})});var waterfall=new Waterfall({containerSelector:".wf-container",boxSelector:".wf-box",minBoxWidth:180});$(document).ready(function(){$(".menu-icon").click(function(){$(".trigger").toggle()})});
</script>
<script id="dsq-count-scr" src="//spaghettisan.disqus.com/count.js" async></script>

18
_includes/head.html Normal file
View File

@ -0,0 +1,18 @@
<head>
<!---
Spaghetti Base Redesign
-->
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" />
<title>{% if page.title %}{{ page.title }}{% else %}{{ site.title }}{% endif %}</title>
<meta name="description" content="{% if page.excerpt %}{{ page.excerpt | strip_html | strip_newlines | truncate: 160 }}{% else %}{{ site.description }}{% endif %}">
<meta name="google-site-verification" content="WWP0tS0N_Dm8-FTd9oqyZta0oRCDYUFy24R7zSm06Vs" />
<meta name="msvalidate.01" content="779064655F047D704FFFD2122C3591F3" />
<link rel="stylesheet" href="{{ "/assets/css/alternative.css" | prepend: site.baseurl }}">
<link href="//cdnjs.cloudflare.com/ajax/libs/typicons/2.0.7/typicons.min.css" rel="stylesheet">
<link href="//cdnjs.cloudflare.com/ajax/libs/octicons/3.4.1/octicons.min.css" rel="stylesheet">
<link rel="canonical" href="{{ page.url | replace:'index.html','' | prepend: site.baseurl | prepend: site.url }}">
<link rel="alternate" type="application/rss+xml" title="{{ site.title }}" href="{{ "/feed.xml" | prepend: site.baseurl | prepend: site.url }}">
</head>

34
_includes/header.html Normal file
View File

@ -0,0 +1,34 @@
<header class="site-header">
<div class="wrapper">
<div class="pacel "><div class="pace-progress" data-progress-text="100%" data-progress="99" style="transform: translate3d(100%, 0px, 0px);">
<div class="pace-progress-inner"></div>
</div>
<div class="pace-activity"></div></div>
<a id="route" class="site-title" href="{{ site.baseurl }}/">Paul Walko</a>
<nav class="site-nav">
<a href="#" class="menu-icon">
<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"/>
<path fill="#424242" d="M18,13.516C18,14.335,17.335,15,16.516,15H1.484C0.665,15,0,14.335,0,13.516l0,0 c0-0.82,0.665-1.484,1.484-1.484h15.031C17.335,12.031,18,12.696,18,13.516L18,13.516z"/>
</svg>
</a>
<div class="trigger">
{% for my_page in site.pages %}
{% if my_page.title %}
{% unless my_page.exclude_from_nav %}
<a id="route" class="page-link" href="{{ my_page.url | prepend: site.baseurl }}">{{ my_page.title }}</a>
{% endunless %}
{% endif %}
{% endfor %}
<a class="page-link" href="/tags/#writeup">Writeups</a>
<a class="page-link" href="http://spaghetti.ga/feed.xml"> Feeds</a>
<a class="page-link" href="http://github.com/paulwalko?tab=repositories"><i class="octicon octicon-mark-github" style="font-size:"></i></a>
</div>
</nav>
</div>
</header>

View File

@ -0,0 +1 @@
<a href="https://facebook.com/axlyody"><span class="icon icon--facebook">{% include icon-facebook.svg %}</span><span class="username">Axl Yody</span></a>

View File

@ -0,0 +1,5 @@
<?xml version="1.0"?>
<svg class="icon icon-facebook" xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16">
<path class="background" fill="#828282" d="M 0.875,0 C 0.38722,0 0,0.38721 0,0.875 l 0,14.25 C 0,15.61266 0.38715,16 0.875,16 l 7.65625,0 0,-6.1875 -2.0625,0 0,-2.4375 2.0625,0 0,-1.78125 c 0,-2.06656 1.2814395,-3.1875 3.125,-3.1875 0.88307,0 1.62261,0.06435 1.84375,0.09375 l 0,2.15625 -1.25,0.03125 c -1.00252,0 -1.21875,0.45713 -1.21875,1.15625 l 0,1.53125 2.40625,0 -0.3125,2.4375 -2.09375,0 0,6.1875 4.09375,0 C 15.612599,16 16,15.61272 16,15.125 L 16,0.875 C 16,0.38721 15.61266,0 15.125,0 L 0.875,0 z"/>
<path class="foreground" fill="white" d="m 11.03968,16.000001 v -6.19608 h 2.07973 l 0.31141,-2.41472 h -2.39114 v -1.54165 c 0,-0.69912 0.19414,-1.17555 1.19666,-1.17555 l 1.27866,-5.6e-4 v -2.15974 c -0.22114,-0.0294 -0.98017,-0.0952 -1.86324,-0.0952 -1.8435605,0 -3.1057105,1.12532 -3.1057105,3.19188 v 1.7808 h -2.08506 v 2.41472 h 2.08506 v 6.19608 H 11.03968 z"/>
</svg>

After

Width:  |  Height:  |  Size: 1.0 KiB

View File

@ -0,0 +1 @@
<a href="https://github.com/{{ include.username }}"><span class="icon icon--github">{% include icon-github.svg %}</span><span class="username">{{ include.username }}</span></a>

View File

@ -0,0 +1 @@
<svg viewBox="0 0 16 16"><path fill="#828282" d="M7.999,0.431c-4.285,0-7.76,3.474-7.76,7.761 c0,3.428,2.223,6.337,5.307,7.363c0.388,0.071,0.53-0.168,0.53-0.374c0-0.184-0.007-0.672-0.01-1.32 c-2.159,0.469-2.614-1.04-2.614-1.04c-0.353-0.896-0.862-1.135-0.862-1.135c-0.705-0.481,0.053-0.472,0.053-0.472 c0.779,0.055,1.189,0.8,1.189,0.8c0.692,1.186,1.816,0.843,2.258,0.645c0.071-0.502,0.271-0.843,0.493-1.037 C4.86,11.425,3.049,10.76,3.049,7.786c0-0.847,0.302-1.54,0.799-2.082C3.768,5.507,3.501,4.718,3.924,3.65 c0,0,0.652-0.209,2.134,0.796C6.677,4.273,7.34,4.187,8,4.184c0.659,0.003,1.323,0.089,1.943,0.261 c1.482-1.004,2.132-0.796,2.132-0.796c0.423,1.068,0.157,1.857,0.077,2.054c0.497,0.542,0.798,1.235,0.798,2.082 c0,2.981-1.814,3.637-3.543,3.829c0.279,0.24,0.527,0.713,0.527,1.437c0,1.037-0.01,1.874-0.01,2.129 c0,0.208,0.14,0.449,0.534,0.373c3.081-1.028,5.302-3.935,5.302-7.362C15.76,3.906,12.285,0.431,7.999,0.431z"/></svg>

After

Width:  |  Height:  |  Size: 926 B

View File

@ -0,0 +1 @@
<a href="https://twitter.com/{{ include.username }}"><span class="icon icon--twitter">{% include icon-twitter.svg %}</span><span class="username">{{ include.username }}</span></a>

View File

@ -0,0 +1 @@
<svg viewBox="0 0 16 16"><path fill="#828282" d="M15.969,3.058c-0.586,0.26-1.217,0.436-1.878,0.515c0.675-0.405,1.194-1.045,1.438-1.809c-0.632,0.375-1.332,0.647-2.076,0.793c-0.596-0.636-1.446-1.033-2.387-1.033c-1.806,0-3.27,1.464-3.27,3.27 c0,0.256,0.029,0.506,0.085,0.745C5.163,5.404,2.753,4.102,1.14,2.124C0.859,2.607,0.698,3.168,0.698,3.767 c0,1.134,0.577,2.135,1.455,2.722C1.616,6.472,1.112,6.325,0.671,6.08c0,0.014,0,0.027,0,0.041c0,1.584,1.127,2.906,2.623,3.206 C3.02,9.402,2.731,9.442,2.433,9.442c-0.211,0-0.416-0.021-0.615-0.059c0.416,1.299,1.624,2.245,3.055,2.271 c-1.119,0.877-2.529,1.4-4.061,1.4c-0.264,0-0.524-0.015-0.78-0.046c1.447,0.928,3.166,1.469,5.013,1.469 c6.015,0,9.304-4.983,9.304-9.304c0-0.142-0.003-0.283-0.009-0.423C14.976,4.29,15.531,3.714,15.969,3.058z"/></svg>

After

Width:  |  Height:  |  Size: 787 B

View File

@ -0,0 +1 @@
<img data-original="{{ site.baseurl }}{{ include.image.url }}" alt="{{ include.image.alt }}" title="{{ include.image.title }}" style=" min-height: 6em;">

10
_includes/post-tags.html Normal file
View File

@ -0,0 +1,10 @@
{% if post %}
{% assign tags = post.tags %}
{% else %}
{% assign tags = page.tags %}
{% endif %}
{% for tag in tags %}
<a id="route" href="/tags/#{{tag|slugize}}"> {{tag}}</a>{% unless forloop.last %} {% endunless %}
{% endfor %}

37
_includes/widgets.html Normal file
View File

@ -0,0 +1,37 @@
<div class="large-4 columns">
<div class="widgetnya">
<h1 class="page-heading">Search</h1>
<div class="badanwidget" style="width:0">
<input type="text" placeholder="Type here to search..." id="countries"/>
</div>
</div>
<div class="widgetnya">
<h1 class="page-heading">Tags</h1>
<div class="badanwidget">
<ul class="tags" style="padding-bottom: 20px;">
{% for tag in site.tags %}
<li style="font-size: {{ tag | last | size | times: 100 | divided_by: site.tags.size | plus: 70 }}%">
<a id="route" href="/tags/#{{ tag | first | slugize }}">
{{ tag | first }}
<span>{{ tag | last | size }}</span>
</a>
</li>
{% endfor %}
</ul>
</div>
</div>
<div class="widgetnya">
<h1 class="page-heading">Blogroll</h1>
<div class="badanwidget">
</div>
</div>

20
_layouts/default.html Normal file
View File

@ -0,0 +1,20 @@
<!DOCTYPE html>
<html>
{% include head.html %}
<Body>
{% include header.html %}
<div class="page-content">
<div class="wrapper">
{{ content }}
</div>
</div>
{% include footer.html %}
</Body>
</html>

14
_layouts/page.html Normal file
View File

@ -0,0 +1,14 @@
---
layout: default
---
<article class="post">
<header class="post-header">
<h1 class="post-title">{{ page.title }}</h1>
</header>
<div class="post-content">
{{ content }}
</div>
</article>

116
_layouts/post.html Normal file
View File

@ -0,0 +1,116 @@
---
layout: default
---
<div style="margin: 4.5rem auto;">
<article class="post" itemscope itemtype="http://schema.org/BlogPosting">
<header class="inpost-header">
<h1 class="inpost-title" itemprop="name headline">{{ page.title }}</h1>
<h1 style="float:right">
<i class="typico typcn typcn-messages" style=" position: relative;
top: 0px;
font-size: 25px;"></i> <a class="disqus-comment-count" href="#disqus_thread" style="color:#fff"> 0</a>
</h1>
</p>
</header>
<div class="post-content" itemprop="articleBody">
{{ content }}
</div>
<div class="arrowNav">
{% if page.next.url %}
<div class="arrowLeft">
<a id="route" class="tooltip-right" href="{{page.next.url}}" title="
&lt;p class=hoveratas&gt;{{page.next.title}}&lt;/p&gt; &lt;p class=hoverbawah&gt;{{ page.next.content | strip_html | truncatewords:10}}&lt;/p&gt;
"><i class="typcn typcn-chevron-left" style=" font-size: 30px;
position: relative;
"></i></a>
</div>
{% endif %}
{% if page.previous.url %}
<div class="arrowRight" style="float:right">
<a id="route" class="tooltip-left" href="{{page.previous.url}}" title="
&lt;p class=hoveratas&gt;{{page.previous.title}}&lt;/p&gt; &lt;p class=hoverbawah&gt;{{ page.previous.content | strip_html | truncatewords:10}}&lt;/p&gt;
"><i class="typcn typcn-chevron-right" style=" font-size: 30px;
position: relative;
"></i></a>
</div>
{% endif %}
</div>
<p class="post-meta" style=" background: #00bc8c;
padding: 15px 0px 15px 20px;"><time datetime="{{ page.date | date_to_xmlschema }}" itemprop="datePublished"><i class="typcn typcn-calendar-outline"></i> {{ page.date | date: "%b %-d, %Y" }}</time>{% if page.author %} • <span itemprop="author" itemscope itemtype="http://schema.org/Person"><span itemprop="name">{{ page.author }}</span></span>{% endif %}
|{% if post %}
{% assign tags = post.tags %}
{% else %}
{% assign tags = page.tags %}
{% endif %}
{% for tag in tags %}
<a href="/tags/#{{tag|slugize}}" style="color: #fff;"><i class="typcn typcn-tags"></i> {{tag}}</a>{% unless forloop.last %} {% endunless %}
{% endfor %}
</article>
<style>
#disqus_thread {
overflow: hidden;
iframe {
margin-bottom: -54px;
}
}
</style>
<div id="disqus_thread"></div>
<script>
var disqus_config = function () {
this.page.url = spaghetti.ga; // Replace PAGE_URL with your page's canonical URL variable
this.page.identifier = {{page.id}}; // Replace PAGE_IDENTIFIER with your page's unique identifier variable
};
(function() { // DON'T EDIT BELOW THIS LINE
var d = document, s = d.createElement('script');
s.src = '//spaghettisan.disqus.com/embed.js';
s.setAttribute('data-timestamp', +new Date());
(d.head || d.body).appendChild(s);
})();
</script>
<noscript>Please enable JavaScript to view the <a href="https://disqus.com/?ref_noscript" rel="nofollow">comments powered by Disqus.</a></noscript>
</div>

View File

@ -0,0 +1,28 @@
---
layout: post
title: "Welcome to Jekyll!"
date: 2013-11-25 16:58:04
categories: jekyll update
tags:
- nothello
---
#Say hello to Jekyll and OpenShift :)
You'll find this post in your `_posts` directory - edit this post and re-build (or run with the `-w` switch) to see your changes!
To add new posts, simply add a file in the `_posts` directory that follows the convention: YYYY-MM-DD-name-of-post.ext.
Jekyll also offers powerful support for code snippets:
{% highlight ruby %}
def print_hi(name)
puts "Hi, #{name}"
end
print_hi('Tom')
#=> prints 'Hi, Tom' to STDOUT.
{% endhighlight %}
Check out the [Jekyll docs][jekyll] for more info on how to get the most out of Jekyll. File all bugs/feature requests at [Jekyll's GitHub repo][jekyll-gh].
[jekyll-gh]: https://github.com/mojombo/jekyll
[jekyll]: http://jekyllrb.com

View File

@ -0,0 +1,12 @@
---
layout: post
title: "My First Post!"
date: 2015-12-19 00:00:00 +0700
categories: uncategorized
tags:
- hello
- writeup
---
Hello, this is my first post.

429
_sass/_base.scss Normal file
View File

@ -0,0 +1,429 @@
/**
* Reset some basic elements
*/
body, h1, h2, h3, h4, h5, h6,
p, blockquote, pre, hr,
dl, dd, ol, ul, figure {
margin: 0;
padding: 0;
}
/**
* Basic styling
*/
@font-face {
font-family: gidole;
src: url(/assets/font/gidole.otf);
}
body {
font: $base-font-weight #{$base-font-size}/#{$base-line-height} gidole;
color: $text-color;
background-color: $background-color;
-webkit-text-size-adjust: 100%;
-webkit-font-feature-settings: "kern" 1;
-moz-font-feature-settings: "kern" 1;
-o-font-feature-settings: "kern" 1;
font-feature-settings: "kern" 1;
font-kerning: normal;
}
/**
* Set `margin-bottom` to maintain vertical rhythm
*/
h1, h2, h3, h4, h5, h6,
p, blockquote, pre,
ul, ol, dl, figure,
%vertical-rhythm {
margin-bottom: $spacing-unit / 2;
}
/**
* Images
*/
img {
max-width: 100%;
vertical-align: middle;
}
/**
* Figures
*/
figure > img {
display: block;
}
figcaption {
font-size: $small-font-size;
}
/**
* Lists
*/
ul, ol {
margin-left: $spacing-unit;
}
li {
> ul,
> ol {
margin-bottom: 0;
}
}
/**
* Headings
*/
h1, h2, h3, h4, h5, h6 {
font-weight: $base-font-weight;
}
/**
* Links
*/
a {
color: $brand-color;
text-decoration: none;
&:visited {
color: darken($brand-color, 15%);
}
&:hover {
}
}
/**
* Blockquotes
*/
blockquote {
color: $grey-color;
border-left: 4px solid $grey-color-light;
padding-left: $spacing-unit / 2;
font-size: 18px;
letter-spacing: -1px;
font-style: italic;
> :last-child {
margin-bottom: 0;
}
}
/**
* Code formatting
*/
pre,
code {
font-size: 15px;
border: 1px solid $grey-color-light;
border-radius: 3px;
background-color: #eef;
}
code {
padding: 1px 5px;
}
pre {
padding: 8px 12px;
overflow-x: auto;
> code {
border: 0;
padding-right: 0;
padding-left: 0;
}
}
/**
* Wrapper
*/
.wrapper {
max-width: -webkit-calc(800px - (30px * 2));
max-width: calc(1020px - (30px * 2));
margin-right: auto;
margin-left: auto;
padding-right: 30px;
padding-left: 30px;
position: relative;
}
@media screen and (max-width: 800px) {
.wrapper {
max-width: -webkit-calc(800px - (30px));
max-width: calc(800px - (30px));
padding-right: 15px;
padding-left: 15px; } }
/**
* Clearfix
*/
%clearfix {
&:after {
content: "";
display: table;
clear: both;
}
}
/**
* Icons
*/
.icon {
> svg {
display: inline-block;
width: 16px;
height: 16px;
vertical-align: middle;
path {
}
}
}
/**
* Column Home
*/
.post-header .post-title a {
font-size: 20px;
}
.post-excerpt p {
font-size: 14px;
}
.post-meta {
font-size: 10px;
color: $grey-color;
}
.post {
position: relative;
margin: 1rem auto;
padding-bottom: 0.5em;
border-bottom: #E8E8E8 1px solid;
word-wrap: break-word;
}
.pagination {
margin-top:20px;
padding-bottom:40px;
}
.tags-date {
float: right;
margin-top: -35px; font-size: 12px;
color: #828282;
}
.tags-pagee {
border-bottom: 1px solid #e8e8e8;
height: auto;
display: inline-block;
}
@media screen and (min-width: 47.5em) {
.tags-pagee {
border-bottom: 1px solid #e8e8e8;
padding: 0 0 15px;
}
.tags-date {
float: right;
margin-top: -40px; font-size: 12px;
color: #828282;
}
.post {
position: relative;
margin: 2rem auto;
padding-bottom: 1rem;
border-bottom: #E8E8E8 1px solid;
word-wrap: break-word;
}
.home {
margin-right: 18.5em;
border-right: 1px solid #e8e8e8;
padding-right: 30px;
}
.widgets {
position: absolute;
top: 0;
right: 0;
width: 18.75em;
padding-botom: 0;
}
.post-header .post-title a {
font-size:1em;
}
.post-excerpt p {
font-size: 16px;
}
.post-meta {
font-size: 12px;
color: $grey-color;
}
.pagination {
padding-bottom:40px;
}
}
.home {
margin-bottom: .5em;
}
.widgets {
padding-bottom: 50px;
}
/**
* Tambahan
*/
ol, ul {
list-style: none;
margin-left: 0;
}
.post:after {
display: block;
content: "";
width: 7px;
height: 7px;
border: #E8E8E8 1px solid;
position: absolute;
bottom: -5px;
left: 50%;
margin-left: -5px;
background: #fdfdfd;
border-radius: 100%;
box-shadow: #fdfdfd 0 0 0 5px;
}
.tags li {
position: relative;
float: left;
margin: 0 35px 9px 0px;
}
.tags a {
height: 26px;
line-height: 23px;
padding: 0 9px 0 8px;
font-size: 12px;
color: #555;
text-decoration: none;
text-shadow: 0 1px white;
border-width: 1px 0 1px 1px;
border-style: solid;
border-color: #dadada #d2d2d2 #c5c5c5;
border-radius: 3px 0 0 3px;
}
.tags span {
position: absolute;
top: 1px;
left: 100%;
z-index: 2;
overflow: hidden;
max-width: 0;
height: 24px;
line-height: 21px;
padding: 0 0 0 2px;
color: white;
text-shadow: 0 -1px rgba(0, 0, 0, 0.3);
background: #000;
border: 1px solid;
border-color: #000;
border-radius: 0 2px 2px 0;
opacity: .95;
padding: 0 7px 0 6px;
max-width: 40px;
}
.tags a, .tags span {
display: block;
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
}
.tags li:after {
content: '';
z-index: 2;
position: absolute;
top: 10px;
right: -2px;
width: 5px;
height: 6px;
opacity: .95;
background: #000;
border-radius: 3px 0 0 3px;
-webkit-box-shadow: inset 1px 0 #000;
box-shadow: inset 1px 0 #000;
}
.tags:before, .tags:after {
content: '';
display: table;
}
.post-tags{
display: inline-block;
text-transform: uppercase;
white-space: nowrap;
}
.post-tags a {
color:#828282;
}
.post-date {
display: inline-block;
margin-left: 8px;
padding-left: 12px;
border-left: #d5dbde 1px solid;
text-transform: uppercase;
white-space: nowrap;
}
.pagination span, .pagination a {
font-size: 16px;
background: #e8e8e8;
padding: 5px 15px;
border-radius: 3px;
color: #969696;
}
.pagination span.previous, .pagination a.previous {
float: left;
}
.pagination span.next, .pagination a.next {
float: right;
}
.pagination a {
color:#2F2F2F;
border-color:#2F2F2F;
}

899
_sass/_layout.scss Normal file

File diff suppressed because one or more lines are too long

0
_sass/_pagination.scss Normal file
View File

View File

@ -0,0 +1,71 @@
/**
* Syntax highlighting styles
*/
.highlight {
background: #fff;
@extend %vertical-rhythm;
.highlighter-rouge & {
background: #eef;
}
.c { color: #998; font-style: italic } // Comment
.err { color: #a61717; background-color: #e3d2d2 } // Error
.k { font-weight: bold } // Keyword
.o { font-weight: bold } // Operator
.cm { color: #998; font-style: italic } // Comment.Multiline
.cp { color: #999; font-weight: bold } // Comment.Preproc
.c1 { color: #998; font-style: italic } // Comment.Single
.cs { color: #999; font-weight: bold; font-style: italic } // Comment.Special
.gd { color: #000; background-color: #fdd } // Generic.Deleted
.gd .x { color: #000; background-color: #faa } // Generic.Deleted.Specific
.ge { font-style: italic } // Generic.Emph
.gr { color: #a00 } // Generic.Error
.gh { color: #999 } // Generic.Heading
.gi { color: #000; background-color: #dfd } // Generic.Inserted
.gi .x { color: #000; background-color: #afa } // Generic.Inserted.Specific
.go { color: #888 } // Generic.Output
.gp { color: #555 } // Generic.Prompt
.gs { font-weight: bold } // Generic.Strong
.gu { color: #aaa } // Generic.Subheading
.gt { color: #a00 } // Generic.Traceback
.kc { font-weight: bold } // Keyword.Constant
.kd { font-weight: bold } // Keyword.Declaration
.kp { font-weight: bold } // Keyword.Pseudo
.kr { font-weight: bold } // Keyword.Reserved
.kt { color: #458; font-weight: bold } // Keyword.Type
.m { color: #099 } // Literal.Number
.s { color: #d14 } // Literal.String
.na { color: #008080 } // Name.Attribute
.nb { color: #0086B3 } // Name.Builtin
.nc { color: #458; font-weight: bold } // Name.Class
.no { color: #008080 } // Name.Constant
.ni { color: #800080 } // Name.Entity
.ne { color: #900; font-weight: bold } // Name.Exception
.nf { color: #900; font-weight: bold } // Name.Function
.nn { color: #555 } // Name.Namespace
.nt { color: #000080 } // Name.Tag
.nv { color: #008080 } // Name.Variable
.ow { font-weight: bold } // Operator.Word
.w { color: #bbb } // Text.Whitespace
.mf { color: #099 } // Literal.Number.Float
.mh { color: #099 } // Literal.Number.Hex
.mi { color: #099 } // Literal.Number.Integer
.mo { color: #099 } // Literal.Number.Oct
.sb { color: #d14 } // Literal.String.Backtick
.sc { color: #d14 } // Literal.String.Char
.sd { color: #d14 } // Literal.String.Doc
.s2 { color: #d14 } // Literal.String.Double
.se { color: #d14 } // Literal.String.Escape
.sh { color: #d14 } // Literal.String.Heredoc
.si { color: #d14 } // Literal.String.Interpol
.sx { color: #d14 } // Literal.String.Other
.sr { color: #009926 } // Literal.String.Regex
.s1 { color: #d14 } // Literal.String.Single
.ss { color: #990073 } // Literal.String.Symbol
.bp { color: #999 } // Name.Builtin.Pseudo
.vc { color: #008080 } // Name.Variable.Class
.vg { color: #008080 } // Name.Variable.Global
.vi { color: #008080 } // Name.Variable.Instance
.il { color: #099 } // Literal.Number.Integer.Long
}

105
_site/404.html Normal file
View File

@ -0,0 +1,105 @@
<!doctype html>
<html>
<head>
<meta charset="UTF-8" />
<title>Error!</title>
<style>
html {
font-size: 62.5%;
}
* {
margin: 0;
padding: 0;
font-size: 100%;
-moz-box-sizing: border-box;
box-sizing: border-box;
}
body {
padding: 60px;
background: #fafafa;
font-size: 150%;
font-family: Helvetica, Arial, sans-serif;
font-weight: 300;
line-height: 1.5;
}
#wrap {
width: 100%;
max-width: 700px;
margin: 0 auto;
padding: 30px;
background: #fff;
box-shadow: 0 0 20px rgba(0, 0, 0, 0.2);
border-radius: 3px;
border-top: 3px solid #b00f08;
}
hr {
display: none;
}
p {
margin: 0 0 15px;
}
a {
color: #731217;
}
a:hover {
color: #b00f08;
}
h1 {
margin: 0 0 15px;
font-size: 240%;
font-weight: 300;
color: #731217;
}
.content {
padding: 15px;
margin: 15px 0;
background: #eee;
border: 1px solid rgba(0, 0, 0, 0.1);
font-weight: bold;
color: #666;
}
pre {
overflow: auto;
padding: 15px;
background: #fafafa;
border: 1px solid rgba(0, 0, 0, 0.1);
line-height: 1.8;
color: rgba(0, 0, 0, 0.8);
}
pre.exception {
background-color: #ffeded;
}
pre em {
font-style: normal;
color: rgba(0, 0, 0, 0.5);
border-bottom: 1px dotted;
cursor: help;
}
</style>
</head>
<body>
<div id="wrap">
<h1>Error!</h1>
<p>The requested url <script>
document.write(window.location.pathname);
</script> was not found.</p>
</div>
</body>
</html>

1
_site/CNAME Normal file
View File

@ -0,0 +1 @@
spaghetti.ga

9
_site/Gemfile Normal file
View File

@ -0,0 +1,9 @@
source 'https://rubygems.org'
gem 'thor'
gem 'stringex'
gem 'jekyll-paginate'
gem 'kramdown'
gem 'jekyll-watch'
gem 'jekyll-archives'
gem 'jekyll'
gem 'json'

52
_site/Gemfile.lock Normal file
View File

@ -0,0 +1,52 @@
GEM
remote: https://rubygems.org/
specs:
colorator (0.1)
ffi (1.9.10)
jekyll (3.0.2)
colorator (~> 0.1)
jekyll-sass-converter (~> 1.0)
jekyll-watch (~> 1.1)
kramdown (~> 1.3)
liquid (~> 3.0)
mercenary (~> 0.3.3)
rouge (~> 1.7)
safe_yaml (~> 1.0)
jekyll-archives (2.1.0)
jekyll (>= 2.4)
jekyll-paginate (1.1.0)
jekyll-sass-converter (1.4.0)
sass (~> 3.4)
jekyll-watch (1.3.1)
listen (~> 3.0)
json (1.8.3)
kramdown (1.9.0)
liquid (3.0.6)
listen (3.0.5)
rb-fsevent (>= 0.9.3)
rb-inotify (>= 0.9)
mercenary (0.3.5)
rb-fsevent (0.9.7)
rb-inotify (0.9.5)
ffi (>= 0.5.0)
rouge (1.10.1)
safe_yaml (1.0.4)
sass (3.4.21)
stringex (2.5.2)
thor (0.19.1)
PLATFORMS
ruby
DEPENDENCIES
jekyll
jekyll-archives
jekyll-paginate
jekyll-watch
json
kramdown
stringex
thor
BUNDLED WITH
1.11.2

9
_site/README.md Normal file
View File

@ -0,0 +1,9 @@
# spaghetti.ga
Based of Jekyll default theme and redesign again by me.<br>
Feel free to use this theme :^)
<br><br>
But please don't try to copy anything from my article :p
# License
MIT

289
_site/about.html Normal file
View File

@ -0,0 +1,289 @@
<!DOCTYPE html>
<html>
<head>
<!---
Spaghetti Base Redesign
-->
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" />
<title>About</title>
<meta name="description" content="All about Spaghetti-san Project
">
<meta name="google-site-verification" content="WWP0tS0N_Dm8-FTd9oqyZta0oRCDYUFy24R7zSm06Vs" />
<meta name="msvalidate.01" content="779064655F047D704FFFD2122C3591F3" />
<link rel="stylesheet" href="/assets/css/alternative.css">
<link href="//cdnjs.cloudflare.com/ajax/libs/typicons/2.0.7/typicons.min.css" rel="stylesheet">
<link href="//cdnjs.cloudflare.com/ajax/libs/octicons/3.4.1/octicons.min.css" rel="stylesheet">
<link rel="canonical" href="http://spaghetti.ga/about.html">
<link rel="alternate" type="application/rss+xml" title="Spaghetti-san Blog" href="http://spaghetti.ga/feed.xml">
</head>
<Body>
<header class="site-header">
<div class="wrapper">
<div class="pacel "><div class="pace-progress" data-progress-text="100%" data-progress="99" style="transform: translate3d(100%, 0px, 0px);">
<div class="pace-progress-inner"></div>
</div>
<div class="pace-activity"></div></div>
<a id="route" class="site-title" href="/">Paul Walko</a>
<nav class="site-nav">
<a href="#" class="menu-icon">
<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"/>
<path fill="#424242" d="M18,13.516C18,14.335,17.335,15,16.516,15H1.484C0.665,15,0,14.335,0,13.516l0,0 c0-0.82,0.665-1.484,1.484-1.484h15.031C17.335,12.031,18,12.696,18,13.516L18,13.516z"/>
</svg>
</a>
<div class="trigger">
<a id="route" class="page-link" href="/about.html">About</a>
<a id="route" class="page-link" href="/archive.html">Archive</a>
<a id="route" class="page-link" href="/project.html">Projects</a>
<a class="page-link" href="/tags/#writeup">Writeups</a>
<a class="page-link" href="http://spaghetti.ga/feed.xml"> Feeds</a>
<a class="page-link" href="http://github.com/paulwalko?tab=repositories"><i class="octicon octicon-mark-github" style="font-size:"></i></a>
</div>
</nav>
</div>
</header>
<div class="page-content">
<div class="wrapper">
<div class="row">
<div class="large-7 columns samping">
<div style="margin-top: 0;
position: relative;
padding-bottom: 1rem;
/* border-bottom: #636363 1px solid; */
word-wrap: break-word;
background: #3E3E3E;
padding: 32px 20px;
border-bottom-left-radius: 5px;
border-bottom-right-radius: 5px;">
<img src="https://avatars2.githubusercontent.com/u/8794792?v=3&s=180" style="border-radius:10px">
<br><br>
I am Axl, an UI Designer, Front End Developer, Illustrator, and of course Anime and Visual Novel lovers from Indonesia.
Living in Jakarta, and studied at Bina Sarana Informatika.
I love my work and enjoy each new project as I get it.
By the way i'm just a freelance and work a project at home with only laptop and figurine beside my laptop.
<br>
<br>
Feel free to contact me on <a href="https://www.facebook.com/profile.php?id=100007594726461">Facebook</a>, don't be hesitate to ask, also you can add me :))
<br>
<br>
To be honest, my english are really bad, so I'll ready to start learning english by writing an article in English also :)
</div>
</div>
<div class="large-4 columns">
<div class="widgetnya">
<h1 class="page-heading">Search</h1>
<div class="badanwidget" style="width:0">
<input type="text" placeholder="Type here to search..." id="countries"/>
</div>
</div>
<div class="widgetnya">
<h1 class="page-heading">Tags</h1>
<div class="badanwidget">
<ul class="tags" style="padding-bottom: 20px;">
<li style="font-size: 103%">
<a id="route" href="/tags/#nothello">
nothello
<span>1</span>
</a>
</li>
<li style="font-size: 103%">
<a id="route" href="/tags/#hello">
hello
<span>1</span>
</a>
</li>
<li style="font-size: 103%">
<a id="route" href="/tags/#writeup">
writeup
<span>1</span>
</a>
</li>
</ul>
</div>
</div>
<div class="widgetnya">
<h1 class="page-heading">Blogroll</h1>
<div class="badanwidget">
</div>
</div>
</div>
</div>
</div>
<footer class="site-footer">
<div class="wrapper">
<h2 class="footer-heading">Spaghetti-san Blog</h2>
<div class="footer-col-wrapper">
<div class="footer-col footer-col-1">
<ul class="contact-list">
<li>Spaghetti-san Personal Blog</li>
<li><a href="mailto:spaghettisan@yahoo.com">spaghettisan@yahoo.com</a></li>
</ul>
</div>
<div class="footer-col footer-col-2">
<ul class="social-media-list">
<li>
<a href="https://github.com/spaghetti-san"><span class="icon icon--github"><svg viewBox="0 0 16 16"><path fill="#828282" d="M7.999,0.431c-4.285,0-7.76,3.474-7.76,7.761 c0,3.428,2.223,6.337,5.307,7.363c0.388,0.071,0.53-0.168,0.53-0.374c0-0.184-0.007-0.672-0.01-1.32 c-2.159,0.469-2.614-1.04-2.614-1.04c-0.353-0.896-0.862-1.135-0.862-1.135c-0.705-0.481,0.053-0.472,0.053-0.472 c0.779,0.055,1.189,0.8,1.189,0.8c0.692,1.186,1.816,0.843,2.258,0.645c0.071-0.502,0.271-0.843,0.493-1.037 C4.86,11.425,3.049,10.76,3.049,7.786c0-0.847,0.302-1.54,0.799-2.082C3.768,5.507,3.501,4.718,3.924,3.65 c0,0,0.652-0.209,2.134,0.796C6.677,4.273,7.34,4.187,8,4.184c0.659,0.003,1.323,0.089,1.943,0.261 c1.482-1.004,2.132-0.796,2.132-0.796c0.423,1.068,0.157,1.857,0.077,2.054c0.497,0.542,0.798,1.235,0.798,2.082 c0,2.981-1.814,3.637-3.543,3.829c0.279,0.24,0.527,0.713,0.527,1.437c0,1.037-0.01,1.874-0.01,2.129 c0,0.208,0.14,0.449,0.534,0.373c3.081-1.028,5.302-3.935,5.302-7.362C15.76,3.906,12.285,0.431,7.999,0.431z"/></svg>
</span><span class="username">spaghetti-san</span></a>
</li>
<li>
<a href="https://facebook.com/axlyody"><span class="icon icon--facebook"><?xml version="1.0"?>
<svg class="icon icon-facebook" xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16">
<path class="background" fill="#828282" d="M 0.875,0 C 0.38722,0 0,0.38721 0,0.875 l 0,14.25 C 0,15.61266 0.38715,16 0.875,16 l 7.65625,0 0,-6.1875 -2.0625,0 0,-2.4375 2.0625,0 0,-1.78125 c 0,-2.06656 1.2814395,-3.1875 3.125,-3.1875 0.88307,0 1.62261,0.06435 1.84375,0.09375 l 0,2.15625 -1.25,0.03125 c -1.00252,0 -1.21875,0.45713 -1.21875,1.15625 l 0,1.53125 2.40625,0 -0.3125,2.4375 -2.09375,0 0,6.1875 4.09375,0 C 15.612599,16 16,15.61272 16,15.125 L 16,0.875 C 16,0.38721 15.61266,0 15.125,0 L 0.875,0 z"/>
<path class="foreground" fill="white" d="m 11.03968,16.000001 v -6.19608 h 2.07973 l 0.31141,-2.41472 h -2.39114 v -1.54165 c 0,-0.69912 0.19414,-1.17555 1.19666,-1.17555 l 1.27866,-5.6e-4 v -2.15974 c -0.22114,-0.0294 -0.98017,-0.0952 -1.86324,-0.0952 -1.8435605,0 -3.1057105,1.12532 -3.1057105,3.19188 v 1.7808 h -2.08506 v 2.41472 h 2.08506 v 6.19608 H 11.03968 z"/>
</svg>
</span><span class="username">Axl Yody</span></a>
</li>
<li>
<a href="https://twitter.com/axlyody"><span class="icon icon--twitter"><svg viewBox="0 0 16 16"><path fill="#828282" d="M15.969,3.058c-0.586,0.26-1.217,0.436-1.878,0.515c0.675-0.405,1.194-1.045,1.438-1.809c-0.632,0.375-1.332,0.647-2.076,0.793c-0.596-0.636-1.446-1.033-2.387-1.033c-1.806,0-3.27,1.464-3.27,3.27 c0,0.256,0.029,0.506,0.085,0.745C5.163,5.404,2.753,4.102,1.14,2.124C0.859,2.607,0.698,3.168,0.698,3.767 c0,1.134,0.577,2.135,1.455,2.722C1.616,6.472,1.112,6.325,0.671,6.08c0,0.014,0,0.027,0,0.041c0,1.584,1.127,2.906,2.623,3.206 C3.02,9.402,2.731,9.442,2.433,9.442c-0.211,0-0.416-0.021-0.615-0.059c0.416,1.299,1.624,2.245,3.055,2.271 c-1.119,0.877-2.529,1.4-4.061,1.4c-0.264,0-0.524-0.015-0.78-0.046c1.447,0.928,3.166,1.469,5.013,1.469 c6.015,0,9.304-4.983,9.304-9.304c0-0.142-0.003-0.283-0.009-0.423C14.976,4.29,15.531,3.714,15.969,3.058z"/></svg>
</span><span class="username">axlyody</span></a>
</li>
</ul>
</div>
<div class="footer-col footer-col-3">
<p>Designed by Spaghetti</p>
<p>Proudly hosted by <a href="https://pages.github.com/" target="_blank"><span class="octicon octicon-logo-github" style="color: #828282;
position: relative;
top: 4px;
left: 3px;
font-size: 20px;"></span></a></p>
</div>
</div>
</div>
</footer>
<!--- Where Javascript Loaded --->
<script type="text/javascript" src="//cdnjs.cloudflare.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script>
<script type="text/javascript" src="http://iamceege.github.io/tooltipster/js/jquery.tooltipster.js"></script>
<script>
$(document).ready(function() {
if(location.pathname != "/") {
$('.trigger a[href^="/' + location.pathname.split("/")[1] + '"]').addClass('active');
} else $('.none a:eq(0)').addClass('active');
});
</script>
<script>
$(document).ready(function() {
$('.tooltip-right').tooltipster({
contentAsHTML: true,
position: 'right',
});
});
$(document).ready(function() {
$('.tooltip-left').tooltipster({
contentAsHTML: true,
position: 'left',
});
});
</script>
<script type="text/javascript" src="//cdnjs.cloudflare.com/ajax/libs/jquery.pjax/1.9.6/jquery.pjax.min.js"></script>
<script type="text/javascript" src="//cdnjs.cloudflare.com/ajax/libs/pace/1.0.2/pace.min.js"></script>
<script type="text/javascript" src="/assets/js/jquery-autocomplete.js"></script>
<script src="/assets/js/responsive_waterfall.js"></script>
<script type="text/javascript" src="//cdnjs.cloudflare.com/ajax/libs/jquery.lazyload/1.9.1/jquery.lazyload.min.js"></script>
<script>
$(document).ready(function(){$(".menu-icon").click(function(){$(".trigger").toggle()})}),$(function(){$(document).pjax("#route","body",{fragment:"body",timeout:1e5,scrollTo:0,push:!0,maxCacheLength:20,replace:!1})}),$(document).on("pjax:error",function(e,n,t,o,c){return c.success(n.responseText,t,n),!1});var options={url:"/gblk.json",getValue:"title",list:{match:{enabled:!0,maxNumberOfElements:5}},template:{type:"links",fields:{link:"url"}},theme:"square"};$("#countries").easyAutocomplete(options),Pace.on("start",function(){$(".pacel").show()}),Pace.on("done",function(){$(".pacel").hide()}),$(function(){$("img").lazyload({})});var waterfall=new Waterfall({containerSelector:".wf-container",boxSelector:".wf-box",minBoxWidth:180});$(document).ready(function(){$(".menu-icon").click(function(){$(".trigger").toggle()})});
</script>
<script id="dsq-count-scr" src="//spaghettisan.disqus.com/count.js" async></script>
</Body>
</html>

299
_site/archive.html Normal file
View File

@ -0,0 +1,299 @@
<!DOCTYPE html>
<html>
<head>
<!---
Spaghetti Base Redesign
-->
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" />
<title>Archive</title>
<meta name="description" content="All about Spaghetti-san Project
">
<meta name="google-site-verification" content="WWP0tS0N_Dm8-FTd9oqyZta0oRCDYUFy24R7zSm06Vs" />
<meta name="msvalidate.01" content="779064655F047D704FFFD2122C3591F3" />
<link rel="stylesheet" href="/assets/css/alternative.css">
<link href="//cdnjs.cloudflare.com/ajax/libs/typicons/2.0.7/typicons.min.css" rel="stylesheet">
<link href="//cdnjs.cloudflare.com/ajax/libs/octicons/3.4.1/octicons.min.css" rel="stylesheet">
<link rel="canonical" href="http://spaghetti.ga/archive.html">
<link rel="alternate" type="application/rss+xml" title="Spaghetti-san Blog" href="http://spaghetti.ga/feed.xml">
</head>
<Body>
<header class="site-header">
<div class="wrapper">
<div class="pacel "><div class="pace-progress" data-progress-text="100%" data-progress="99" style="transform: translate3d(100%, 0px, 0px);">
<div class="pace-progress-inner"></div>
</div>
<div class="pace-activity"></div></div>
<a id="route" class="site-title" href="/">Paul Walko</a>
<nav class="site-nav">
<a href="#" class="menu-icon">
<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"/>
<path fill="#424242" d="M18,13.516C18,14.335,17.335,15,16.516,15H1.484C0.665,15,0,14.335,0,13.516l0,0 c0-0.82,0.665-1.484,1.484-1.484h15.031C17.335,12.031,18,12.696,18,13.516L18,13.516z"/>
</svg>
</a>
<div class="trigger">
<a id="route" class="page-link" href="/about.html">About</a>
<a id="route" class="page-link" href="/archive.html">Archive</a>
<a id="route" class="page-link" href="/project.html">Projects</a>
<a class="page-link" href="/tags/#writeup">Writeups</a>
<a class="page-link" href="http://spaghetti.ga/feed.xml"> Feeds</a>
<a class="page-link" href="http://github.com/paulwalko?tab=repositories"><i class="octicon octicon-mark-github" style="font-size:"></i></a>
</div>
</nav>
</div>
</header>
<div class="page-content">
<div class="wrapper">
<div style="margin: 1rem auto;">
<h1 class="archive-header"></h1>
<div class="wf-container" style="margin-top: 80px;">
<div class="wf-box">
<a id="route" href="/uncategorized/2015/12/18/my-first-post.html">
<div class="tglgede" style="
background-color: rgba(105, 105, 105, 0.44);
background-image: url(http://marolafashionable.com/catalog/view/theme/agnes/image/layout/shadows/blur_black.png), url();
background-position: center bottom, left top;
background-repeat: no-repeat;
">
<p style="
background-color: rgba(0, 0, 0, 0.57);
padding: 30%;
color: #DADADA;
justify-content: center;
text-align: center;
margin-bottom: 0;
">
December 2015
</p>
</div>
</a>
<div class="content">
<a id="route" href="/uncategorized/2015/12/18/my-first-post.html">
<h3 style="padding: 5px 8px;
margin-bottom: 0;
background-color: #00bc8c;
color: #fff;
font-size: 15px;">My First Post!</h3>
</a>
</div>
</div>
</ul>
<div class="wf-box">
<a id="route" href="/jekyll/update/2013/11/25/welcome-to-jekyll.html">
<div class="tglgede" style="
background-color: rgba(105, 105, 105, 0.44);
background-image: url(http://marolafashionable.com/catalog/view/theme/agnes/image/layout/shadows/blur_black.png), url();
background-position: center bottom, left top;
background-repeat: no-repeat;
">
<p style="
background-color: rgba(0, 0, 0, 0.57);
padding: 30%;
color: #DADADA;
justify-content: center;
text-align: center;
margin-bottom: 0;
">
November 2013
</p>
</div>
</a>
<div class="content">
<a id="route" href="/jekyll/update/2013/11/25/welcome-to-jekyll.html">
<h3 style="padding: 5px 8px;
margin-bottom: 0;
background-color: #00bc8c;
color: #fff;
font-size: 15px;">Welcome to Jekyll!</h3>
</a>
</div>
</div>
</div>
</div>
</div>
</div>
<footer class="site-footer">
<div class="wrapper">
<h2 class="footer-heading">Spaghetti-san Blog</h2>
<div class="footer-col-wrapper">
<div class="footer-col footer-col-1">
<ul class="contact-list">
<li>Spaghetti-san Personal Blog</li>
<li><a href="mailto:spaghettisan@yahoo.com">spaghettisan@yahoo.com</a></li>
</ul>
</div>
<div class="footer-col footer-col-2">
<ul class="social-media-list">
<li>
<a href="https://github.com/spaghetti-san"><span class="icon icon--github"><svg viewBox="0 0 16 16"><path fill="#828282" d="M7.999,0.431c-4.285,0-7.76,3.474-7.76,7.761 c0,3.428,2.223,6.337,5.307,7.363c0.388,0.071,0.53-0.168,0.53-0.374c0-0.184-0.007-0.672-0.01-1.32 c-2.159,0.469-2.614-1.04-2.614-1.04c-0.353-0.896-0.862-1.135-0.862-1.135c-0.705-0.481,0.053-0.472,0.053-0.472 c0.779,0.055,1.189,0.8,1.189,0.8c0.692,1.186,1.816,0.843,2.258,0.645c0.071-0.502,0.271-0.843,0.493-1.037 C4.86,11.425,3.049,10.76,3.049,7.786c0-0.847,0.302-1.54,0.799-2.082C3.768,5.507,3.501,4.718,3.924,3.65 c0,0,0.652-0.209,2.134,0.796C6.677,4.273,7.34,4.187,8,4.184c0.659,0.003,1.323,0.089,1.943,0.261 c1.482-1.004,2.132-0.796,2.132-0.796c0.423,1.068,0.157,1.857,0.077,2.054c0.497,0.542,0.798,1.235,0.798,2.082 c0,2.981-1.814,3.637-3.543,3.829c0.279,0.24,0.527,0.713,0.527,1.437c0,1.037-0.01,1.874-0.01,2.129 c0,0.208,0.14,0.449,0.534,0.373c3.081-1.028,5.302-3.935,5.302-7.362C15.76,3.906,12.285,0.431,7.999,0.431z"/></svg>
</span><span class="username">spaghetti-san</span></a>
</li>
<li>
<a href="https://facebook.com/axlyody"><span class="icon icon--facebook"><?xml version="1.0"?>
<svg class="icon icon-facebook" xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16">
<path class="background" fill="#828282" d="M 0.875,0 C 0.38722,0 0,0.38721 0,0.875 l 0,14.25 C 0,15.61266 0.38715,16 0.875,16 l 7.65625,0 0,-6.1875 -2.0625,0 0,-2.4375 2.0625,0 0,-1.78125 c 0,-2.06656 1.2814395,-3.1875 3.125,-3.1875 0.88307,0 1.62261,0.06435 1.84375,0.09375 l 0,2.15625 -1.25,0.03125 c -1.00252,0 -1.21875,0.45713 -1.21875,1.15625 l 0,1.53125 2.40625,0 -0.3125,2.4375 -2.09375,0 0,6.1875 4.09375,0 C 15.612599,16 16,15.61272 16,15.125 L 16,0.875 C 16,0.38721 15.61266,0 15.125,0 L 0.875,0 z"/>
<path class="foreground" fill="white" d="m 11.03968,16.000001 v -6.19608 h 2.07973 l 0.31141,-2.41472 h -2.39114 v -1.54165 c 0,-0.69912 0.19414,-1.17555 1.19666,-1.17555 l 1.27866,-5.6e-4 v -2.15974 c -0.22114,-0.0294 -0.98017,-0.0952 -1.86324,-0.0952 -1.8435605,0 -3.1057105,1.12532 -3.1057105,3.19188 v 1.7808 h -2.08506 v 2.41472 h 2.08506 v 6.19608 H 11.03968 z"/>
</svg>
</span><span class="username">Axl Yody</span></a>
</li>
<li>
<a href="https://twitter.com/axlyody"><span class="icon icon--twitter"><svg viewBox="0 0 16 16"><path fill="#828282" d="M15.969,3.058c-0.586,0.26-1.217,0.436-1.878,0.515c0.675-0.405,1.194-1.045,1.438-1.809c-0.632,0.375-1.332,0.647-2.076,0.793c-0.596-0.636-1.446-1.033-2.387-1.033c-1.806,0-3.27,1.464-3.27,3.27 c0,0.256,0.029,0.506,0.085,0.745C5.163,5.404,2.753,4.102,1.14,2.124C0.859,2.607,0.698,3.168,0.698,3.767 c0,1.134,0.577,2.135,1.455,2.722C1.616,6.472,1.112,6.325,0.671,6.08c0,0.014,0,0.027,0,0.041c0,1.584,1.127,2.906,2.623,3.206 C3.02,9.402,2.731,9.442,2.433,9.442c-0.211,0-0.416-0.021-0.615-0.059c0.416,1.299,1.624,2.245,3.055,2.271 c-1.119,0.877-2.529,1.4-4.061,1.4c-0.264,0-0.524-0.015-0.78-0.046c1.447,0.928,3.166,1.469,5.013,1.469 c6.015,0,9.304-4.983,9.304-9.304c0-0.142-0.003-0.283-0.009-0.423C14.976,4.29,15.531,3.714,15.969,3.058z"/></svg>
</span><span class="username">axlyody</span></a>
</li>
</ul>
</div>
<div class="footer-col footer-col-3">
<p>Designed by Spaghetti</p>
<p>Proudly hosted by <a href="https://pages.github.com/" target="_blank"><span class="octicon octicon-logo-github" style="color: #828282;
position: relative;
top: 4px;
left: 3px;
font-size: 20px;"></span></a></p>
</div>
</div>
</div>
</footer>
<!--- Where Javascript Loaded --->
<script type="text/javascript" src="//cdnjs.cloudflare.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script>
<script type="text/javascript" src="http://iamceege.github.io/tooltipster/js/jquery.tooltipster.js"></script>
<script>
$(document).ready(function() {
if(location.pathname != "/") {
$('.trigger a[href^="/' + location.pathname.split("/")[1] + '"]').addClass('active');
} else $('.none a:eq(0)').addClass('active');
});
</script>
<script>
$(document).ready(function() {
$('.tooltip-right').tooltipster({
contentAsHTML: true,
position: 'right',
});
});
$(document).ready(function() {
$('.tooltip-left').tooltipster({
contentAsHTML: true,
position: 'left',
});
});
</script>
<script type="text/javascript" src="//cdnjs.cloudflare.com/ajax/libs/jquery.pjax/1.9.6/jquery.pjax.min.js"></script>
<script type="text/javascript" src="//cdnjs.cloudflare.com/ajax/libs/pace/1.0.2/pace.min.js"></script>
<script type="text/javascript" src="/assets/js/jquery-autocomplete.js"></script>
<script src="/assets/js/responsive_waterfall.js"></script>
<script type="text/javascript" src="//cdnjs.cloudflare.com/ajax/libs/jquery.lazyload/1.9.1/jquery.lazyload.min.js"></script>
<script>
$(document).ready(function(){$(".menu-icon").click(function(){$(".trigger").toggle()})}),$(function(){$(document).pjax("#route","body",{fragment:"body",timeout:1e5,scrollTo:0,push:!0,maxCacheLength:20,replace:!1})}),$(document).on("pjax:error",function(e,n,t,o,c){return c.success(n.responseText,t,n),!1});var options={url:"/gblk.json",getValue:"title",list:{match:{enabled:!0,maxNumberOfElements:5}},template:{type:"links",fields:{link:"url"}},theme:"square"};$("#countries").easyAutocomplete(options),Pace.on("start",function(){$(".pacel").show()}),Pace.on("done",function(){$(".pacel").hide()}),$(function(){$("img").lazyload({})});var waterfall=new Waterfall({containerSelector:".wf-container",boxSelector:".wf-box",minBoxWidth:180});$(document).ready(function(){$(".menu-icon").click(function(){$(".trigger").toggle()})});
</script>
<script id="dsq-count-scr" src="//spaghettisan.disqus.com/count.js" async></script>
</Body>
</html>

File diff suppressed because it is too large Load Diff

1582
_site/assets/css/main.css Normal file

File diff suppressed because it is too large Load Diff

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
_site/assets/image/02.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 258 KiB

BIN
_site/assets/image/1.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 114 KiB

BIN
_site/assets/image/2.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 28 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 175 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 36 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 116 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 36 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 118 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 41 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 30 KiB

10
_site/assets/js/jquery-autocomplete.js vendored Normal file

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1 @@
!function(t,e){"function"==typeof define&&define.amd?define([],e):"object"==typeof module&&module.exports?module.exports=e():t.Waterfall=e()}(this,function(){"use strict";var t=function(t){var e;Object.defineProperty(this,"minBoxWidth",{get:function(){return e},set:function(t){100>t&&(t=100),t>1e3&&(t=1e3),e=t}}),t=t||{};var n=t.containerSelector||".wf-container",i=t.boxSelector||".wf-box";this.minBoxWidth=t.minBoxWidth||250,this.columns=[],this.container=document.querySelector(n),this.boxes=this.container?Array.prototype.slice.call(this.container.querySelectorAll(i)):[],this.compose();for(var o,s=this.container.querySelectorAll("img"),r=this,c=0;c<s.length;c++){var h=s[c];h.onload=function(){o&&clearTimeout(o),o=setTimeout(function(){r.compose(!0)},500)}}window.addEventListener("resize",function(){r.compose()})};return t.prototype.computeNumberOfColumns=function(){var t=Math.floor(this.container.clientWidth/this.minBoxWidth);return t=t||1},t.prototype.initColumns=function(t){if(t>0){this.columns=[];for(var e=100/t+"%";t--;){var n=document.createElement("div");n.className="wf-column",n.style.width=e,this.columns.push(n),this.container.appendChild(n)}}},t.prototype.getMinHeightIndex=function(){if(this.columns&&this.columns.length>0){for(var t=this.columns[0].clientHeight,e=0,n=1;n<this.columns.length;n++){var i=this.columns[n];i.clientHeight<t&&(t=i.clientHeight,e=n)}return e}return-1},t.prototype.getHighestIndex=function(){if(this.columns&&this.columns.length>0){for(var t=this.columns[0].clientHeight,e=0,n=1;n<this.columns.length;n++){var i=this.columns[n];i.clientHeight>t&&(t=i.clientHeight,e=n)}return e}return-1},t.prototype.compose=function(t){var e=this.computeNumberOfColumns(),n=this.columns.length;if(t||e!=n){for(var i=0;i<this.columns.length;i++){var o=this.columns[i];o.remove()}this.initColumns(e);for(var i=0,s=this.boxes.length;s>i;i++){var r=this.boxes[i];this.addBox(r)}}},t.prototype.addBox=function(t){this.boxes.indexOf(t)<0&&this.boxes.push(t);var e=this.getMinHeightIndex();if(e>-1){var n=this.columns[e];n.appendChild(t)}},t});

View File

217
_site/category/index.html Normal file
View File

@ -0,0 +1,217 @@
<!DOCTYPE html>
<html>
<head>
<!---
Spaghetti Base Redesign
-->
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" />
<title>Category</title>
<meta name="description" content="All about Spaghetti-san Project
">
<meta name="google-site-verification" content="WWP0tS0N_Dm8-FTd9oqyZta0oRCDYUFy24R7zSm06Vs" />
<meta name="msvalidate.01" content="779064655F047D704FFFD2122C3591F3" />
<link rel="stylesheet" href="/assets/css/alternative.css">
<link href="//cdnjs.cloudflare.com/ajax/libs/typicons/2.0.7/typicons.min.css" rel="stylesheet">
<link href="//cdnjs.cloudflare.com/ajax/libs/octicons/3.4.1/octicons.min.css" rel="stylesheet">
<link rel="canonical" href="http://spaghetti.ga/category/">
<link rel="alternate" type="application/rss+xml" title="Spaghetti-san Blog" href="http://spaghetti.ga/feed.xml">
</head>
<Body>
<header class="site-header">
<div class="wrapper">
<div class="pacel "><div class="pace-progress" data-progress-text="100%" data-progress="99" style="transform: translate3d(100%, 0px, 0px);">
<div class="pace-progress-inner"></div>
</div>
<div class="pace-activity"></div></div>
<a id="route" class="site-title" href="/">Paul Walko</a>
<nav class="site-nav">
<a href="#" class="menu-icon">
<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"/>
<path fill="#424242" d="M18,13.516C18,14.335,17.335,15,16.516,15H1.484C0.665,15,0,14.335,0,13.516l0,0 c0-0.82,0.665-1.484,1.484-1.484h15.031C17.335,12.031,18,12.696,18,13.516L18,13.516z"/>
</svg>
</a>
<div class="trigger">
<a id="route" class="page-link" href="/about.html">About</a>
<a id="route" class="page-link" href="/archive.html">Archive</a>
<a id="route" class="page-link" href="/project.html">Projects</a>
<a class="page-link" href="/tags/#writeup">Writeups</a>
<a class="page-link" href="http://spaghetti.ga/feed.xml"> Feeds</a>
<a class="page-link" href="http://github.com/paulwalko?tab=repositories"><i class="octicon octicon-mark-github" style="font-size:"></i></a>
</div>
</nav>
</div>
</header>
<div class="page-content">
<div class="wrapper">
<article class="post">
<header class="post-header">
<h1 class="post-title">Category</h1>
</header>
<div class="post-content">
<p><img src="https://avatars2.githubusercontent.com/u/8794792?v=3&amp;s=180" /></p>
<p><br />
Spaghetti-san a.k.a. Axl Yody</p>
<p>I am Axl, a UI Designer, Front End Developer, Illustrator, and of course Anime and Visual Novel lovers from Indonesian.
Living in Jakarta, and studied at Bina Sarana Informatika.
I love my work and enjoy each new project as I get it.
By the way im just a freelance and work a project from home with only laptop and figurine beside my laptop.</p>
<p>Feel free to contact me on <a href="https://www.facebook.com/profile.php?id=100007594726461">Facebook</a>, dont be hesitate to ask, also you can add me :))</p>
</div>
</article>
</div>
</div>
<footer class="site-footer">
<div class="wrapper">
<h2 class="footer-heading">Spaghetti-san Blog</h2>
<div class="footer-col-wrapper">
<div class="footer-col footer-col-1">
<ul class="contact-list">
<li>Spaghetti-san Personal Blog</li>
<li><a href="mailto:spaghettisan@yahoo.com">spaghettisan@yahoo.com</a></li>
</ul>
</div>
<div class="footer-col footer-col-2">
<ul class="social-media-list">
<li>
<a href="https://github.com/spaghetti-san"><span class="icon icon--github"><svg viewBox="0 0 16 16"><path fill="#828282" d="M7.999,0.431c-4.285,0-7.76,3.474-7.76,7.761 c0,3.428,2.223,6.337,5.307,7.363c0.388,0.071,0.53-0.168,0.53-0.374c0-0.184-0.007-0.672-0.01-1.32 c-2.159,0.469-2.614-1.04-2.614-1.04c-0.353-0.896-0.862-1.135-0.862-1.135c-0.705-0.481,0.053-0.472,0.053-0.472 c0.779,0.055,1.189,0.8,1.189,0.8c0.692,1.186,1.816,0.843,2.258,0.645c0.071-0.502,0.271-0.843,0.493-1.037 C4.86,11.425,3.049,10.76,3.049,7.786c0-0.847,0.302-1.54,0.799-2.082C3.768,5.507,3.501,4.718,3.924,3.65 c0,0,0.652-0.209,2.134,0.796C6.677,4.273,7.34,4.187,8,4.184c0.659,0.003,1.323,0.089,1.943,0.261 c1.482-1.004,2.132-0.796,2.132-0.796c0.423,1.068,0.157,1.857,0.077,2.054c0.497,0.542,0.798,1.235,0.798,2.082 c0,2.981-1.814,3.637-3.543,3.829c0.279,0.24,0.527,0.713,0.527,1.437c0,1.037-0.01,1.874-0.01,2.129 c0,0.208,0.14,0.449,0.534,0.373c3.081-1.028,5.302-3.935,5.302-7.362C15.76,3.906,12.285,0.431,7.999,0.431z"/></svg>
</span><span class="username">spaghetti-san</span></a>
</li>
<li>
<a href="https://facebook.com/axlyody"><span class="icon icon--facebook"><?xml version="1.0"?>
<svg class="icon icon-facebook" xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16">
<path class="background" fill="#828282" d="M 0.875,0 C 0.38722,0 0,0.38721 0,0.875 l 0,14.25 C 0,15.61266 0.38715,16 0.875,16 l 7.65625,0 0,-6.1875 -2.0625,0 0,-2.4375 2.0625,0 0,-1.78125 c 0,-2.06656 1.2814395,-3.1875 3.125,-3.1875 0.88307,0 1.62261,0.06435 1.84375,0.09375 l 0,2.15625 -1.25,0.03125 c -1.00252,0 -1.21875,0.45713 -1.21875,1.15625 l 0,1.53125 2.40625,0 -0.3125,2.4375 -2.09375,0 0,6.1875 4.09375,0 C 15.612599,16 16,15.61272 16,15.125 L 16,0.875 C 16,0.38721 15.61266,0 15.125,0 L 0.875,0 z"/>
<path class="foreground" fill="white" d="m 11.03968,16.000001 v -6.19608 h 2.07973 l 0.31141,-2.41472 h -2.39114 v -1.54165 c 0,-0.69912 0.19414,-1.17555 1.19666,-1.17555 l 1.27866,-5.6e-4 v -2.15974 c -0.22114,-0.0294 -0.98017,-0.0952 -1.86324,-0.0952 -1.8435605,0 -3.1057105,1.12532 -3.1057105,3.19188 v 1.7808 h -2.08506 v 2.41472 h 2.08506 v 6.19608 H 11.03968 z"/>
</svg>
</span><span class="username">Axl Yody</span></a>
</li>
<li>
<a href="https://twitter.com/axlyody"><span class="icon icon--twitter"><svg viewBox="0 0 16 16"><path fill="#828282" d="M15.969,3.058c-0.586,0.26-1.217,0.436-1.878,0.515c0.675-0.405,1.194-1.045,1.438-1.809c-0.632,0.375-1.332,0.647-2.076,0.793c-0.596-0.636-1.446-1.033-2.387-1.033c-1.806,0-3.27,1.464-3.27,3.27 c0,0.256,0.029,0.506,0.085,0.745C5.163,5.404,2.753,4.102,1.14,2.124C0.859,2.607,0.698,3.168,0.698,3.767 c0,1.134,0.577,2.135,1.455,2.722C1.616,6.472,1.112,6.325,0.671,6.08c0,0.014,0,0.027,0,0.041c0,1.584,1.127,2.906,2.623,3.206 C3.02,9.402,2.731,9.442,2.433,9.442c-0.211,0-0.416-0.021-0.615-0.059c0.416,1.299,1.624,2.245,3.055,2.271 c-1.119,0.877-2.529,1.4-4.061,1.4c-0.264,0-0.524-0.015-0.78-0.046c1.447,0.928,3.166,1.469,5.013,1.469 c6.015,0,9.304-4.983,9.304-9.304c0-0.142-0.003-0.283-0.009-0.423C14.976,4.29,15.531,3.714,15.969,3.058z"/></svg>
</span><span class="username">axlyody</span></a>
</li>
</ul>
</div>
<div class="footer-col footer-col-3">
<p>Designed by Spaghetti</p>
<p>Proudly hosted by <a href="https://pages.github.com/" target="_blank"><span class="octicon octicon-logo-github" style="color: #828282;
position: relative;
top: 4px;
left: 3px;
font-size: 20px;"></span></a></p>
</div>
</div>
</div>
</footer>
<!--- Where Javascript Loaded --->
<script type="text/javascript" src="//cdnjs.cloudflare.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script>
<script type="text/javascript" src="http://iamceege.github.io/tooltipster/js/jquery.tooltipster.js"></script>
<script>
$(document).ready(function() {
if(location.pathname != "/") {
$('.trigger a[href^="/' + location.pathname.split("/")[1] + '"]').addClass('active');
} else $('.none a:eq(0)').addClass('active');
});
</script>
<script>
$(document).ready(function() {
$('.tooltip-right').tooltipster({
contentAsHTML: true,
position: 'right',
});
});
$(document).ready(function() {
$('.tooltip-left').tooltipster({
contentAsHTML: true,
position: 'left',
});
});
</script>
<script type="text/javascript" src="//cdnjs.cloudflare.com/ajax/libs/jquery.pjax/1.9.6/jquery.pjax.min.js"></script>
<script type="text/javascript" src="//cdnjs.cloudflare.com/ajax/libs/pace/1.0.2/pace.min.js"></script>
<script type="text/javascript" src="/assets/js/jquery-autocomplete.js"></script>
<script src="/assets/js/responsive_waterfall.js"></script>
<script type="text/javascript" src="//cdnjs.cloudflare.com/ajax/libs/jquery.lazyload/1.9.1/jquery.lazyload.min.js"></script>
<script>
$(document).ready(function(){$(".menu-icon").click(function(){$(".trigger").toggle()})}),$(function(){$(document).pjax("#route","body",{fragment:"body",timeout:1e5,scrollTo:0,push:!0,maxCacheLength:20,replace:!1})}),$(document).on("pjax:error",function(e,n,t,o,c){return c.success(n.responseText,t,n),!1});var options={url:"/gblk.json",getValue:"title",list:{match:{enabled:!0,maxNumberOfElements:5}},template:{type:"links",fields:{link:"url"}},theme:"square"};$("#countries").easyAutocomplete(options),Pace.on("start",function(){$(".pacel").show()}),Pace.on("done",function(){$(".pacel").hide()}),$(function(){$("img").lazyload({})});var waterfall=new Waterfall({containerSelector:".wf-container",boxSelector:".wf-box",minBoxWidth:180});$(document).ready(function(){$(".menu-icon").click(function(){$(".trigger").toggle()})});
</script>
<script id="dsq-count-scr" src="//spaghettisan.disqus.com/count.js" async></script>
</Body>
</html>

2
_site/composer.json Normal file
View File

@ -0,0 +1,2 @@
{
}

62
_site/feed.xml Normal file
View File

@ -0,0 +1,62 @@
<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
<title>Spaghetti-san Blog</title>
<description>All about Spaghetti-san Project
</description>
<link>http://spaghetti.ga/</link>
<atom:link href="http://spaghetti.ga/feed.xml" rel="self" type="application/rss+xml"/>
<pubDate>Thu, 09 Jun 2016 17:20:14 -0400</pubDate>
<lastBuildDate>Thu, 09 Jun 2016 17:20:14 -0400</lastBuildDate>
<generator>Jekyll v3.1.6</generator>
<item>
<title>My First Post!</title>
<description>&lt;p&gt;Hello, this is my first post.&lt;/p&gt;
</description>
<pubDate>Fri, 18 Dec 2015 12:00:00 -0500</pubDate>
<link>http://spaghetti.ga/uncategorized/2015/12/18/my-first-post.html</link>
<guid isPermaLink="true">http://spaghetti.ga/uncategorized/2015/12/18/my-first-post.html</guid>
<category>hello</category>
<category>writeup</category>
<category>uncategorized</category>
</item>
<item>
<title>Welcome to Jekyll!</title>
<description>&lt;p&gt;#Say hello to Jekyll and OpenShift :)&lt;/p&gt;
&lt;p&gt;Youll find this post in your &lt;code class=&quot;highlighter-rouge&quot;&gt;_posts&lt;/code&gt; directory - edit this post and re-build (or run with the &lt;code class=&quot;highlighter-rouge&quot;&gt;-w&lt;/code&gt; switch) to see your changes!
To add new posts, simply add a file in the &lt;code class=&quot;highlighter-rouge&quot;&gt;_posts&lt;/code&gt; directory that follows the convention: YYYY-MM-DD-name-of-post.ext.&lt;/p&gt;
&lt;p&gt;Jekyll also offers powerful support for code snippets:&lt;/p&gt;
&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-ruby&quot; data-lang=&quot;ruby&quot;&gt;&lt;span class=&quot;k&quot;&gt;def&lt;/span&gt; &lt;span class=&quot;nf&quot;&gt;print_hi&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;nb&quot;&gt;name&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;span class=&quot;nb&quot;&gt;puts&lt;/span&gt; &lt;span class=&quot;s2&quot;&gt;&quot;Hi, &lt;/span&gt;&lt;span class=&quot;si&quot;&gt;#{&lt;/span&gt;&lt;span class=&quot;nb&quot;&gt;name&lt;/span&gt;&lt;span class=&quot;si&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;&lt;/span&gt;
&lt;span class=&quot;k&quot;&gt;end&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;print_hi&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&#39;Tom&#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;span class=&quot;c1&quot;&gt;#=&amp;gt; prints &#39;Hi, Tom&#39; to STDOUT.&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;
&lt;p&gt;Check out the &lt;a href=&quot;http://jekyllrb.com&quot;&gt;Jekyll docs&lt;/a&gt; for more info on how to get the most out of Jekyll. File all bugs/feature requests at &lt;a href=&quot;https://github.com/mojombo/jekyll&quot;&gt;Jekylls GitHub repo&lt;/a&gt;.&lt;/p&gt;
</description>
<pubDate>Mon, 25 Nov 2013 11:58:04 -0500</pubDate>
<link>http://spaghetti.ga/jekyll/update/2013/11/25/welcome-to-jekyll.html</link>
<guid isPermaLink="true">http://spaghetti.ga/jekyll/update/2013/11/25/welcome-to-jekyll.html</guid>
<category>nothello</category>
<category>jekyll</category>
<category>update</category>
</item>
</channel>
</rss>

4
_site/gblk.json Normal file
View File

@ -0,0 +1,4 @@
[
{"title":"My First Post!", "url":"/uncategorized/2015/12/18/my-first-post.html"},
{"title":"Welcome to Jekyll!", "url":"/jekyll/update/2013/11/25/welcome-to-jekyll.html"}
]

38
_site/gulpfile.js Normal file
View File

@ -0,0 +1,38 @@
var gulp = require('gulp');
var deploy = require('gulp-gh-pages');
var http = require('http');
var fs = require('fs');
// Get comments data from Poole
gulp.task("comments", function() {
// set up the request to get comments as YAML
var options = {
hostname: 'pooleapp.com',
port: 80,
path: '/data/e6a52fdd-8dee-4095-805a-3ea6189fc135.yaml',
method: 'GET',
};
// Go and get data
http.get(options, function(res) {
var body = '';
res.on('data', function(chunk) {
body += chunk;
});
res.on('end', function() {
// Save the comments for jekyll to use as a data source
fs.writeFile('_data/comments.yml', body, function(err) {
if(err) {
console.log(err);
} else {
console.log("Comments data saved.");
}
});
});
});
});

354
_site/index.html Normal file
View File

@ -0,0 +1,354 @@
<!DOCTYPE html>
<html>
<head>
<!---
Spaghetti Base Redesign
-->
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" />
<title>Spaghetti-san Blog</title>
<meta name="description" content="All about Spaghetti-san Project
">
<meta name="google-site-verification" content="WWP0tS0N_Dm8-FTd9oqyZta0oRCDYUFy24R7zSm06Vs" />
<meta name="msvalidate.01" content="779064655F047D704FFFD2122C3591F3" />
<link rel="stylesheet" href="/assets/css/alternative.css">
<link href="//cdnjs.cloudflare.com/ajax/libs/typicons/2.0.7/typicons.min.css" rel="stylesheet">
<link href="//cdnjs.cloudflare.com/ajax/libs/octicons/3.4.1/octicons.min.css" rel="stylesheet">
<link rel="canonical" href="http://spaghetti.ga/">
<link rel="alternate" type="application/rss+xml" title="Spaghetti-san Blog" href="http://spaghetti.ga/feed.xml">
</head>
<Body>
<header class="site-header">
<div class="wrapper">
<div class="pacel "><div class="pace-progress" data-progress-text="100%" data-progress="99" style="transform: translate3d(100%, 0px, 0px);">
<div class="pace-progress-inner"></div>
</div>
<div class="pace-activity"></div></div>
<a id="route" class="site-title" href="/">Paul Walko</a>
<nav class="site-nav">
<a href="#" class="menu-icon">
<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"/>
<path fill="#424242" d="M18,13.516C18,14.335,17.335,15,16.516,15H1.484C0.665,15,0,14.335,0,13.516l0,0 c0-0.82,0.665-1.484,1.484-1.484h15.031C17.335,12.031,18,12.696,18,13.516L18,13.516z"/>
</svg>
</a>
<div class="trigger">
<a id="route" class="page-link" href="/about.html">About</a>
<a id="route" class="page-link" href="/archive.html">Archive</a>
<a id="route" class="page-link" href="/project.html">Projects</a>
<a class="page-link" href="/tags/#writeup">Writeups</a>
<a class="page-link" href="http://spaghetti.ga/feed.xml"> Feeds</a>
<a class="page-link" href="http://github.com/paulwalko?tab=repositories"><i class="octicon octicon-mark-github" style="font-size:"></i></a>
</div>
</nav>
</div>
</header>
<div class="page-content">
<div class="wrapper">
<div class="row">
<div class="large-7 columns samping">
<article class="post tag-speeches">
<div style="padding: 20px;">
<header class="post-header">
<h2 class="post-title"><a id="route" href="/uncategorized/2015/12/18/my-first-post.html">My First Post!</a></h2>
</header>
<section class="post-excerpt">
<p>Hello, this is my first post.
<a id="route" class="read-more" href="/uncategorized/2015/12/18/my-first-post.html">»</a></p>
</section>
</div>
<footer class="post-meta" style=" background: #00bc8c;
padding: 10px 0 0px 20px;">
<p class="post-tags"><i class="typico typcn typcn-tags" style=" font-size: 28px;
position: relative;
top: 1px;
font-size:15px"></i>
<a id="route" href="/tags/#hello"> hello</a>
<a id="route" href="/tags/#writeup"> writeup</a>
</p>
<time class="post-date" datetime="2015-12-18T12:00:00-05:00"><i class="typico typcn typcn-calendar-outline" style=" font-size: 28px;
position: relative;
top: 1px;
font-size:15px"></i> Dec 18, 2015</time>
<p class="post-date"><i class="typico typcn typcn-messages" style=" font-size: 28px;
position: relative;
top: 1px;
font-size:15px"></i> <a id="route" class="disqus-comment-count" href="/uncategorized/2015/12/18/my-first-post.html#disqus_thread" style="color:#fff"> 0 Comments</a></p>
</footer>
</article>
<article class="post tag-speeches">
<div style="padding: 20px;">
<header class="post-header">
<h2 class="post-title"><a id="route" href="/jekyll/update/2013/11/25/welcome-to-jekyll.html">Welcome to Jekyll!</a></h2>
</header>
<section class="post-excerpt">
<p>#Say hello to Jekyll and OpenShift :) Youll find this post in your _posts directory - edit this post and re-build (or run with the -w switch) to see your changes! To add new posts, simply add a file in the _posts directory that follows... <a id="route" class="read-more" href="/jekyll/update/2013/11/25/welcome-to-jekyll.html">»</a></p>
</section>
</div>
<footer class="post-meta" style=" background: #00bc8c;
padding: 10px 0 0px 20px;">
<p class="post-tags"><i class="typico typcn typcn-tags" style=" font-size: 28px;
position: relative;
top: 1px;
font-size:15px"></i>
<a id="route" href="/tags/#nothello"> nothello</a>
</p>
<time class="post-date" datetime="2013-11-25T11:58:04-05:00"><i class="typico typcn typcn-calendar-outline" style=" font-size: 28px;
position: relative;
top: 1px;
font-size:15px"></i> Nov 25, 2013</time>
<p class="post-date"><i class="typico typcn typcn-messages" style=" font-size: 28px;
position: relative;
top: 1px;
font-size:15px"></i> <a id="route" class="disqus-comment-count" href="/jekyll/update/2013/11/25/welcome-to-jekyll.html#disqus_thread" style="color:#fff"> 0 Comments</a></p>
</footer>
</article>
<!-- Pagination links -->
<div class="pagination">
<span class="previous" align="left"><i class="typcn typcn-chevron-left-outline" style=" font-size: 14px;
position: relative;
"></i> Previous</span>
<span class="next" align="right">Next <i class="typcn typcn-chevron-right-outline" style=" font-size: 14px;
position: relative;
"></i></span>
</div>
</div>
<div class="large-4 columns">
<div class="widgetnya">
<h1 class="page-heading">Search</h1>
<div class="badanwidget" style="width:0">
<input type="text" placeholder="Type here to search..." id="countries"/>
</div>
</div>
<div class="widgetnya">
<h1 class="page-heading">Tags</h1>
<div class="badanwidget">
<ul class="tags" style="padding-bottom: 20px;">
<li style="font-size: 103%">
<a id="route" href="/tags/#nothello">
nothello
<span>1</span>
</a>
</li>
<li style="font-size: 103%">
<a id="route" href="/tags/#hello">
hello
<span>1</span>
</a>
</li>
<li style="font-size: 103%">
<a id="route" href="/tags/#writeup">
writeup
<span>1</span>
</a>
</li>
</ul>
</div>
</div>
<div class="widgetnya">
<h1 class="page-heading">Blogroll</h1>
<div class="badanwidget">
</div>
</div>
</div>
</div>
</div>
<footer class="site-footer">
<div class="wrapper">
<h2 class="footer-heading">Spaghetti-san Blog</h2>
<div class="footer-col-wrapper">
<div class="footer-col footer-col-1">
<ul class="contact-list">
<li>Spaghetti-san Personal Blog</li>
<li><a href="mailto:spaghettisan@yahoo.com">spaghettisan@yahoo.com</a></li>
</ul>
</div>
<div class="footer-col footer-col-2">
<ul class="social-media-list">
<li>
<a href="https://github.com/spaghetti-san"><span class="icon icon--github"><svg viewBox="0 0 16 16"><path fill="#828282" d="M7.999,0.431c-4.285,0-7.76,3.474-7.76,7.761 c0,3.428,2.223,6.337,5.307,7.363c0.388,0.071,0.53-0.168,0.53-0.374c0-0.184-0.007-0.672-0.01-1.32 c-2.159,0.469-2.614-1.04-2.614-1.04c-0.353-0.896-0.862-1.135-0.862-1.135c-0.705-0.481,0.053-0.472,0.053-0.472 c0.779,0.055,1.189,0.8,1.189,0.8c0.692,1.186,1.816,0.843,2.258,0.645c0.071-0.502,0.271-0.843,0.493-1.037 C4.86,11.425,3.049,10.76,3.049,7.786c0-0.847,0.302-1.54,0.799-2.082C3.768,5.507,3.501,4.718,3.924,3.65 c0,0,0.652-0.209,2.134,0.796C6.677,4.273,7.34,4.187,8,4.184c0.659,0.003,1.323,0.089,1.943,0.261 c1.482-1.004,2.132-0.796,2.132-0.796c0.423,1.068,0.157,1.857,0.077,2.054c0.497,0.542,0.798,1.235,0.798,2.082 c0,2.981-1.814,3.637-3.543,3.829c0.279,0.24,0.527,0.713,0.527,1.437c0,1.037-0.01,1.874-0.01,2.129 c0,0.208,0.14,0.449,0.534,0.373c3.081-1.028,5.302-3.935,5.302-7.362C15.76,3.906,12.285,0.431,7.999,0.431z"/></svg>
</span><span class="username">spaghetti-san</span></a>
</li>
<li>
<a href="https://facebook.com/axlyody"><span class="icon icon--facebook"><?xml version="1.0"?>
<svg class="icon icon-facebook" xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16">
<path class="background" fill="#828282" d="M 0.875,0 C 0.38722,0 0,0.38721 0,0.875 l 0,14.25 C 0,15.61266 0.38715,16 0.875,16 l 7.65625,0 0,-6.1875 -2.0625,0 0,-2.4375 2.0625,0 0,-1.78125 c 0,-2.06656 1.2814395,-3.1875 3.125,-3.1875 0.88307,0 1.62261,0.06435 1.84375,0.09375 l 0,2.15625 -1.25,0.03125 c -1.00252,0 -1.21875,0.45713 -1.21875,1.15625 l 0,1.53125 2.40625,0 -0.3125,2.4375 -2.09375,0 0,6.1875 4.09375,0 C 15.612599,16 16,15.61272 16,15.125 L 16,0.875 C 16,0.38721 15.61266,0 15.125,0 L 0.875,0 z"/>
<path class="foreground" fill="white" d="m 11.03968,16.000001 v -6.19608 h 2.07973 l 0.31141,-2.41472 h -2.39114 v -1.54165 c 0,-0.69912 0.19414,-1.17555 1.19666,-1.17555 l 1.27866,-5.6e-4 v -2.15974 c -0.22114,-0.0294 -0.98017,-0.0952 -1.86324,-0.0952 -1.8435605,0 -3.1057105,1.12532 -3.1057105,3.19188 v 1.7808 h -2.08506 v 2.41472 h 2.08506 v 6.19608 H 11.03968 z"/>
</svg>
</span><span class="username">Axl Yody</span></a>
</li>
<li>
<a href="https://twitter.com/axlyody"><span class="icon icon--twitter"><svg viewBox="0 0 16 16"><path fill="#828282" d="M15.969,3.058c-0.586,0.26-1.217,0.436-1.878,0.515c0.675-0.405,1.194-1.045,1.438-1.809c-0.632,0.375-1.332,0.647-2.076,0.793c-0.596-0.636-1.446-1.033-2.387-1.033c-1.806,0-3.27,1.464-3.27,3.27 c0,0.256,0.029,0.506,0.085,0.745C5.163,5.404,2.753,4.102,1.14,2.124C0.859,2.607,0.698,3.168,0.698,3.767 c0,1.134,0.577,2.135,1.455,2.722C1.616,6.472,1.112,6.325,0.671,6.08c0,0.014,0,0.027,0,0.041c0,1.584,1.127,2.906,2.623,3.206 C3.02,9.402,2.731,9.442,2.433,9.442c-0.211,0-0.416-0.021-0.615-0.059c0.416,1.299,1.624,2.245,3.055,2.271 c-1.119,0.877-2.529,1.4-4.061,1.4c-0.264,0-0.524-0.015-0.78-0.046c1.447,0.928,3.166,1.469,5.013,1.469 c6.015,0,9.304-4.983,9.304-9.304c0-0.142-0.003-0.283-0.009-0.423C14.976,4.29,15.531,3.714,15.969,3.058z"/></svg>
</span><span class="username">axlyody</span></a>
</li>
</ul>
</div>
<div class="footer-col footer-col-3">
<p>Designed by Spaghetti</p>
<p>Proudly hosted by <a href="https://pages.github.com/" target="_blank"><span class="octicon octicon-logo-github" style="color: #828282;
position: relative;
top: 4px;
left: 3px;
font-size: 20px;"></span></a></p>
</div>
</div>
</div>
</footer>
<!--- Where Javascript Loaded --->
<script type="text/javascript" src="//cdnjs.cloudflare.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script>
<script type="text/javascript" src="http://iamceege.github.io/tooltipster/js/jquery.tooltipster.js"></script>
<script>
$(document).ready(function() {
if(location.pathname != "/") {
$('.trigger a[href^="/' + location.pathname.split("/")[1] + '"]').addClass('active');
} else $('.none a:eq(0)').addClass('active');
});
</script>
<script>
$(document).ready(function() {
$('.tooltip-right').tooltipster({
contentAsHTML: true,
position: 'right',
});
});
$(document).ready(function() {
$('.tooltip-left').tooltipster({
contentAsHTML: true,
position: 'left',
});
});
</script>
<script type="text/javascript" src="//cdnjs.cloudflare.com/ajax/libs/jquery.pjax/1.9.6/jquery.pjax.min.js"></script>
<script type="text/javascript" src="//cdnjs.cloudflare.com/ajax/libs/pace/1.0.2/pace.min.js"></script>
<script type="text/javascript" src="/assets/js/jquery-autocomplete.js"></script>
<script src="/assets/js/responsive_waterfall.js"></script>
<script type="text/javascript" src="//cdnjs.cloudflare.com/ajax/libs/jquery.lazyload/1.9.1/jquery.lazyload.min.js"></script>
<script>
$(document).ready(function(){$(".menu-icon").click(function(){$(".trigger").toggle()})}),$(function(){$(document).pjax("#route","body",{fragment:"body",timeout:1e5,scrollTo:0,push:!0,maxCacheLength:20,replace:!1})}),$(document).on("pjax:error",function(e,n,t,o,c){return c.success(n.responseText,t,n),!1});var options={url:"/gblk.json",getValue:"title",list:{match:{enabled:!0,maxNumberOfElements:5}},template:{type:"links",fields:{link:"url"}},theme:"square"};$("#countries").easyAutocomplete(options),Pace.on("start",function(){$(".pacel").show()}),Pace.on("done",function(){$(".pacel").hide()}),$(function(){$("img").lazyload({})});var waterfall=new Waterfall({containerSelector:".wf-container",boxSelector:".wf-box",minBoxWidth:180});$(document).ready(function(){$(".menu-icon").click(function(){$(".trigger").toggle()})});
</script>
<script id="dsq-count-scr" src="//spaghettisan.disqus.com/count.js" async></script>
</Body>
</html>

60
_site/jekyll.thor Normal file
View File

@ -0,0 +1,60 @@
require "stringex"
class Jekyll < Thor
desc "new", "create a new post"
method_option :editor, :default => "subl"
def new(*title)
title = title.join(" ")
date = Time.now.strftime('%Y-%m-%d')
hour = Time.now.strftime('%H:%M:%S')
filename = "_posts/#{date}-#{title.to_url}.md"
if File.exist?(filename)
abort("#{filename} already exists!")
end
puts "Creating new post: #{filename}"
open(filename, 'w') do |post|
post.puts "---"
post.puts "layout: post"
post.puts "title: \"#{title.gsub(/&/,'&amp;')}\""
post.puts "date: #{date} #{hour}"
post.puts "summary: -Your Summary Here-"
post.puts "category: "
post.puts "tags: "
post.puts "image: /images/default-thumb.png"
post.puts "---"
end
system(options[:editor], filename)
end
desc "tag", "create a new tag"
method_option :editor, :default => "subl"
def tag(*name)
tag_name = name.join(" ")
tag_dasherized_name = tag_name.downcase.split(" ").join("-")
filename = "tags/#{tag_dasherized_name}.md"
if File.exist?(filename)
abort("#{filename} already exists!")
end
puts "Creating new tag: #{filename}"
open(filename, 'w') do |tag|
tag.puts "---"
tag.puts "layout: blog_by_tag"
tag.puts "tag: #{tag_dasherized_name}"
tag.puts "permalink: /tags/#{tag_dasherized_name}/"
tag.puts "---"
end
puts "Updating tag list"
open("_data/tags.yml", "a+") do |tag|
tag.puts ""
tag.puts "- slug: #{tag_dasherized_name}"
tag.puts " name: #{tag_name}"
end
system(options[:editor], filename)
end
end

View File

@ -0,0 +1,309 @@
<!DOCTYPE html>
<html>
<head>
<!---
Spaghetti Base Redesign
-->
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" />
<title>Welcome to Jekyll!</title>
<meta name="description" content="#Say hello to Jekyll and OpenShift :)">
<meta name="google-site-verification" content="WWP0tS0N_Dm8-FTd9oqyZta0oRCDYUFy24R7zSm06Vs" />
<meta name="msvalidate.01" content="779064655F047D704FFFD2122C3591F3" />
<link rel="stylesheet" href="/assets/css/alternative.css">
<link href="//cdnjs.cloudflare.com/ajax/libs/typicons/2.0.7/typicons.min.css" rel="stylesheet">
<link href="//cdnjs.cloudflare.com/ajax/libs/octicons/3.4.1/octicons.min.css" rel="stylesheet">
<link rel="canonical" href="http://spaghetti.ga/jekyll/update/2013/11/25/welcome-to-jekyll.html">
<link rel="alternate" type="application/rss+xml" title="Spaghetti-san Blog" href="http://spaghetti.ga/feed.xml">
</head>
<Body>
<header class="site-header">
<div class="wrapper">
<div class="pacel "><div class="pace-progress" data-progress-text="100%" data-progress="99" style="transform: translate3d(100%, 0px, 0px);">
<div class="pace-progress-inner"></div>
</div>
<div class="pace-activity"></div></div>
<a id="route" class="site-title" href="/">Paul Walko</a>
<nav class="site-nav">
<a href="#" class="menu-icon">
<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"/>
<path fill="#424242" d="M18,13.516C18,14.335,17.335,15,16.516,15H1.484C0.665,15,0,14.335,0,13.516l0,0 c0-0.82,0.665-1.484,1.484-1.484h15.031C17.335,12.031,18,12.696,18,13.516L18,13.516z"/>
</svg>
</a>
<div class="trigger">
<a id="route" class="page-link" href="/about.html">About</a>
<a id="route" class="page-link" href="/archive.html">Archive</a>
<a id="route" class="page-link" href="/project.html">Projects</a>
<a class="page-link" href="/tags/#writeup">Writeups</a>
<a class="page-link" href="http://spaghetti.ga/feed.xml"> Feeds</a>
<a class="page-link" href="http://github.com/paulwalko?tab=repositories"><i class="octicon octicon-mark-github" style="font-size:"></i></a>
</div>
</nav>
</div>
</header>
<div class="page-content">
<div class="wrapper">
<div style="margin: 4.5rem auto;">
<article class="post" itemscope itemtype="http://schema.org/BlogPosting">
<header class="inpost-header">
<h1 class="inpost-title" itemprop="name headline">Welcome to Jekyll!</h1>
<h1 style="float:right">
<i class="typico typcn typcn-messages" style=" position: relative;
top: 0px;
font-size: 25px;"></i> <a class="disqus-comment-count" href="#disqus_thread" style="color:#fff"> 0</a>
</h1>
</p>
</header>
<div class="post-content" itemprop="articleBody">
<p>#Say hello to Jekyll and OpenShift :)</p>
<p>Youll find this post in your <code class="highlighter-rouge">_posts</code> directory - edit this post and re-build (or run with the <code class="highlighter-rouge">-w</code> switch) to see your changes!
To add new posts, simply add a file in the <code class="highlighter-rouge">_posts</code> directory that follows the convention: YYYY-MM-DD-name-of-post.ext.</p>
<p>Jekyll also offers powerful support for code snippets:</p>
<figure class="highlight"><pre><code class="language-ruby" data-lang="ruby"><span class="k">def</span> <span class="nf">print_hi</span><span class="p">(</span><span class="nb">name</span><span class="p">)</span>
<span class="nb">puts</span> <span class="s2">"Hi, </span><span class="si">#{</span><span class="nb">name</span><span class="si">}</span><span class="s2">"</span>
<span class="k">end</span>
<span class="n">print_hi</span><span class="p">(</span><span class="s1">'Tom'</span><span class="p">)</span>
<span class="c1">#=&gt; prints 'Hi, Tom' to STDOUT.</span></code></pre></figure>
<p>Check out the <a href="http://jekyllrb.com">Jekyll docs</a> for more info on how to get the most out of Jekyll. File all bugs/feature requests at <a href="https://github.com/mojombo/jekyll">Jekylls GitHub repo</a>.</p>
</div>
<div class="arrowNav">
<div class="arrowLeft">
<a id="route" class="tooltip-right" href="/uncategorized/2015/12/18/my-first-post.html" title="
&lt;p class=hoveratas&gt;My First Post!&lt;/p&gt; &lt;p class=hoverbawah&gt;Hello, this is my first post.
&lt;/p&gt;
"><i class="typcn typcn-chevron-left" style=" font-size: 30px;
position: relative;
"></i></a>
</div>
</div>
<p class="post-meta" style=" background: #00bc8c;
padding: 15px 0px 15px 20px;"><time datetime="2013-11-25T11:58:04-05:00" itemprop="datePublished"><i class="typcn typcn-calendar-outline"></i> Nov 25, 2013</time>
|
<a href="/tags/#nothello" style="color: #fff;"><i class="typcn typcn-tags"></i> nothello</a>
</article>
<style>
#disqus_thread {
overflow: hidden;
iframe {
margin-bottom: -54px;
}
}
</style>
<div id="disqus_thread"></div>
<script>
var disqus_config = function () {
this.page.url = spaghetti.ga; // Replace PAGE_URL with your page's canonical URL variable
this.page.identifier = /jekyll/update/2013/11/25/welcome-to-jekyll; // Replace PAGE_IDENTIFIER with your page's unique identifier variable
};
(function() { // DON'T EDIT BELOW THIS LINE
var d = document, s = d.createElement('script');
s.src = '//spaghettisan.disqus.com/embed.js';
s.setAttribute('data-timestamp', +new Date());
(d.head || d.body).appendChild(s);
})();
</script>
<noscript>Please enable JavaScript to view the <a href="https://disqus.com/?ref_noscript" rel="nofollow">comments powered by Disqus.</a></noscript>
</div>
</div>
</div>
<footer class="site-footer">
<div class="wrapper">
<h2 class="footer-heading">Spaghetti-san Blog</h2>
<div class="footer-col-wrapper">
<div class="footer-col footer-col-1">
<ul class="contact-list">
<li>Spaghetti-san Personal Blog</li>
<li><a href="mailto:spaghettisan@yahoo.com">spaghettisan@yahoo.com</a></li>
</ul>
</div>
<div class="footer-col footer-col-2">
<ul class="social-media-list">
<li>
<a href="https://github.com/spaghetti-san"><span class="icon icon--github"><svg viewBox="0 0 16 16"><path fill="#828282" d="M7.999,0.431c-4.285,0-7.76,3.474-7.76,7.761 c0,3.428,2.223,6.337,5.307,7.363c0.388,0.071,0.53-0.168,0.53-0.374c0-0.184-0.007-0.672-0.01-1.32 c-2.159,0.469-2.614-1.04-2.614-1.04c-0.353-0.896-0.862-1.135-0.862-1.135c-0.705-0.481,0.053-0.472,0.053-0.472 c0.779,0.055,1.189,0.8,1.189,0.8c0.692,1.186,1.816,0.843,2.258,0.645c0.071-0.502,0.271-0.843,0.493-1.037 C4.86,11.425,3.049,10.76,3.049,7.786c0-0.847,0.302-1.54,0.799-2.082C3.768,5.507,3.501,4.718,3.924,3.65 c0,0,0.652-0.209,2.134,0.796C6.677,4.273,7.34,4.187,8,4.184c0.659,0.003,1.323,0.089,1.943,0.261 c1.482-1.004,2.132-0.796,2.132-0.796c0.423,1.068,0.157,1.857,0.077,2.054c0.497,0.542,0.798,1.235,0.798,2.082 c0,2.981-1.814,3.637-3.543,3.829c0.279,0.24,0.527,0.713,0.527,1.437c0,1.037-0.01,1.874-0.01,2.129 c0,0.208,0.14,0.449,0.534,0.373c3.081-1.028,5.302-3.935,5.302-7.362C15.76,3.906,12.285,0.431,7.999,0.431z"/></svg>
</span><span class="username">spaghetti-san</span></a>
</li>
<li>
<a href="https://facebook.com/axlyody"><span class="icon icon--facebook"><?xml version="1.0"?>
<svg class="icon icon-facebook" xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16">
<path class="background" fill="#828282" d="M 0.875,0 C 0.38722,0 0,0.38721 0,0.875 l 0,14.25 C 0,15.61266 0.38715,16 0.875,16 l 7.65625,0 0,-6.1875 -2.0625,0 0,-2.4375 2.0625,0 0,-1.78125 c 0,-2.06656 1.2814395,-3.1875 3.125,-3.1875 0.88307,0 1.62261,0.06435 1.84375,0.09375 l 0,2.15625 -1.25,0.03125 c -1.00252,0 -1.21875,0.45713 -1.21875,1.15625 l 0,1.53125 2.40625,0 -0.3125,2.4375 -2.09375,0 0,6.1875 4.09375,0 C 15.612599,16 16,15.61272 16,15.125 L 16,0.875 C 16,0.38721 15.61266,0 15.125,0 L 0.875,0 z"/>
<path class="foreground" fill="white" d="m 11.03968,16.000001 v -6.19608 h 2.07973 l 0.31141,-2.41472 h -2.39114 v -1.54165 c 0,-0.69912 0.19414,-1.17555 1.19666,-1.17555 l 1.27866,-5.6e-4 v -2.15974 c -0.22114,-0.0294 -0.98017,-0.0952 -1.86324,-0.0952 -1.8435605,0 -3.1057105,1.12532 -3.1057105,3.19188 v 1.7808 h -2.08506 v 2.41472 h 2.08506 v 6.19608 H 11.03968 z"/>
</svg>
</span><span class="username">Axl Yody</span></a>
</li>
<li>
<a href="https://twitter.com/axlyody"><span class="icon icon--twitter"><svg viewBox="0 0 16 16"><path fill="#828282" d="M15.969,3.058c-0.586,0.26-1.217,0.436-1.878,0.515c0.675-0.405,1.194-1.045,1.438-1.809c-0.632,0.375-1.332,0.647-2.076,0.793c-0.596-0.636-1.446-1.033-2.387-1.033c-1.806,0-3.27,1.464-3.27,3.27 c0,0.256,0.029,0.506,0.085,0.745C5.163,5.404,2.753,4.102,1.14,2.124C0.859,2.607,0.698,3.168,0.698,3.767 c0,1.134,0.577,2.135,1.455,2.722C1.616,6.472,1.112,6.325,0.671,6.08c0,0.014,0,0.027,0,0.041c0,1.584,1.127,2.906,2.623,3.206 C3.02,9.402,2.731,9.442,2.433,9.442c-0.211,0-0.416-0.021-0.615-0.059c0.416,1.299,1.624,2.245,3.055,2.271 c-1.119,0.877-2.529,1.4-4.061,1.4c-0.264,0-0.524-0.015-0.78-0.046c1.447,0.928,3.166,1.469,5.013,1.469 c6.015,0,9.304-4.983,9.304-9.304c0-0.142-0.003-0.283-0.009-0.423C14.976,4.29,15.531,3.714,15.969,3.058z"/></svg>
</span><span class="username">axlyody</span></a>
</li>
</ul>
</div>
<div class="footer-col footer-col-3">
<p>Designed by Spaghetti</p>
<p>Proudly hosted by <a href="https://pages.github.com/" target="_blank"><span class="octicon octicon-logo-github" style="color: #828282;
position: relative;
top: 4px;
left: 3px;
font-size: 20px;"></span></a></p>
</div>
</div>
</div>
</footer>
<!--- Where Javascript Loaded --->
<script type="text/javascript" src="//cdnjs.cloudflare.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script>
<script type="text/javascript" src="http://iamceege.github.io/tooltipster/js/jquery.tooltipster.js"></script>
<script>
$(document).ready(function() {
if(location.pathname != "/") {
$('.trigger a[href^="/' + location.pathname.split("/")[1] + '"]').addClass('active');
} else $('.none a:eq(0)').addClass('active');
});
</script>
<script>
$(document).ready(function() {
$('.tooltip-right').tooltipster({
contentAsHTML: true,
position: 'right',
});
});
$(document).ready(function() {
$('.tooltip-left').tooltipster({
contentAsHTML: true,
position: 'left',
});
});
</script>
<script type="text/javascript" src="//cdnjs.cloudflare.com/ajax/libs/jquery.pjax/1.9.6/jquery.pjax.min.js"></script>
<script type="text/javascript" src="//cdnjs.cloudflare.com/ajax/libs/pace/1.0.2/pace.min.js"></script>
<script type="text/javascript" src="/assets/js/jquery-autocomplete.js"></script>
<script src="/assets/js/responsive_waterfall.js"></script>
<script type="text/javascript" src="//cdnjs.cloudflare.com/ajax/libs/jquery.lazyload/1.9.1/jquery.lazyload.min.js"></script>
<script>
$(document).ready(function(){$(".menu-icon").click(function(){$(".trigger").toggle()})}),$(function(){$(document).pjax("#route","body",{fragment:"body",timeout:1e5,scrollTo:0,push:!0,maxCacheLength:20,replace:!1})}),$(document).on("pjax:error",function(e,n,t,o,c){return c.success(n.responseText,t,n),!1});var options={url:"/gblk.json",getValue:"title",list:{match:{enabled:!0,maxNumberOfElements:5}},template:{type:"links",fields:{link:"url"}},theme:"square"};$("#countries").easyAutocomplete(options),Pace.on("start",function(){$(".pacel").show()}),Pace.on("done",function(){$(".pacel").hide()}),$(function(){$("img").lazyload({})});var waterfall=new Waterfall({containerSelector:".wf-container",boxSelector:".wf-box",minBoxWidth:180});$(document).ready(function(){$(".menu-icon").click(function(){$(".trigger").toggle()})});
</script>
<script id="dsq-count-scr" src="//spaghettisan.disqus.com/count.js" async></script>
</Body>
</html>

23
_site/node_modules/gulp-gh-pages/LICENSE generated vendored Normal file
View File

@ -0,0 +1,23 @@
Copyright
2014 Micheal Benedict (@micheal)
2015 Shinnosuke Watanabe (@shinnn)
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.

104
_site/node_modules/gulp-gh-pages/README.md generated vendored Normal file
View File

@ -0,0 +1,104 @@
# gulp-gh-pages
[![NPM version](http://img.shields.io/npm/v/gulp-gh-pages.svg)](https://www.npmjs.com/package/gulp-gh-pages)
[![Build Status](https://travis-ci.org/shinnn/gulp-gh-pages.svg?branch=master)](https://travis-ci.org/shinnn/gulp-gh-pages)
[![Build status](https://ci.appveyor.com/api/projects/status/iskj8sml9luhkm21?svg=true)](https://ci.appveyor.com/project/ShinnosukeWatanabe/gulp-gh-pages)
[![Coverage Status](https://img.shields.io/coveralls/shinnn/gulp-gh-pages.svg)](https://coveralls.io/r/shinnn/gulp-gh-pages)
[![Dependency Status](https://img.shields.io/david/shinnn/gulp-gh-pages.svg?label=deps)](https://david-dm.org/shinnn/gulp-gh-pages)
[![devDependency Status](https://img.shields.io/david/dev/shinnn/gulp-gh-pages.svg?label=devDeps)](https://david-dm.org/shinnn/gulp-gh-pages#info=devDependencies)
[gulp](http://gulpjs.com/) plugin to publish contents to [Github pages](https://pages.github.com/)
## Installation
[Use npm](https://docs.npmjs.com/cli/install).
```sh
npm install --save-dev gulp-gh-pages
```
## Usage
Define a `deploy` task in your `gulpfile.js` (as below) which can be used to push to `gh-pages` going forward.
```javascript
var gulp = require('gulp');
var ghPages = require('gulp-gh-pages');
gulp.task('deploy', function() {
return gulp.src('./dist/**/*')
.pipe(ghPages());
});
```
Now, you should be able to call your task by doing:
```she
gulp deploy
```
## API
```javascript
var ghPages = require('gulp-gh-pages');
```
### ghPages([*options*])
*options*: `Object`
Return: `Object` ([stream.Transform](https://nodejs.org/api/stream.html#stream_class_stream_transform_1))
#### options.remoteUrl
Type: `String`
Default: URL for the remote of the current dir (assumes a git repository)
By default `gulp-gh-pages` assumes the current working directory is a git repository and uses its remote url. If your `gulpfile.js` is not in a git repository, or if you want to push to a different remote url, you can specify it. Ensure you have write access to the repository.
#### options.origin
Type: `String`
Default: `"origin"`
Git remote.
#### options.branch
Type: `String`
Default: `"gh-pages"`
The branch where deploy will by done. Change to "master" for `username.github.io` projects.
#### options.cacheDir
Type: `String`
Default: `.publish`
Set the directory path to keep a cache of the repository. If it doesn't exist, gulp-gh-pages automatically create it.
#### options.push
Type: `Boolean`
Default: `true`
Allow you to make a build on the defined branch without pushing it to master. Useful for dry run.
#### options.force
Type: `Boolean`
Default: `false`
Force adding files to the `gh-pages` branch, even if they are ignored by `.gitignore` or `.gitignore_global`.
#### options.message
Type: `String`
Default: `"Update [timestamp]"`
Edit commit message.
## License
Copyright (c) 2014 [Micheal Benedict](https://github.com/rowoot), 2015 [Shinnosuke Watanabe](https://github.com/shinnn)
Licensed under [the MIT License](./LICENSE).

163
_site/node_modules/gulp-gh-pages/index.js generated vendored Normal file
View File

@ -0,0 +1,163 @@
'use strict';
var git = require('./lib/git');
var gutil = require('gulp-util');
var Transform = require('readable-stream/transform');
var vinylFs = require('vinyl-fs');
var wrapPromise = require('wrap-promise');
/*
* Public: Push to gh-pages branch for github
*
* options - {Object} that contains all the options of the plugin
* - remoteUrl: The {String} remote url (github repository) of the project,
* - origin: The {String} origin of the git repository (default to `"origin"`),
* - branch: The {String} branch where deploy will by done (default to `"gh-pages"`),
* - cacheDir: {String} where the git repo will be located. (default to a temporary folder)
* - push: {Boolean} to know whether or not the branch should be pushed (default to `true`)
* - message: {String} commit message (default to `"Update [timestamp]"`)
*
* Returns `Stream`.
**/
module.exports = function gulpGhPages(options) {
options = options || {};
var origin = options.origin || 'origin';
var branch = options.branch || 'gh-pages';
var message = options.message || 'Update ' + new Date().toISOString();
var files = [];
var TAG;
if (branch !== 'gh-pages') {
TAG = '[gh-pages (' + branch + ')]';
} else {
TAG = '[gh-pages]';
}
return new Transform({
objectMode: true,
transform: function collectFiles(file, enc, cb) {
if (file.isNull()) {
cb(null, file);
return;
}
if (file.isStream()) {
cb(new gutil.PluginError('gulp-gh-pages', 'Stream content is not supported'));
return;
}
files.push(file);
cb(null, file);
},
flush: function publish(cb) {
if (files.length === 0) {
gutil.log(TAG, 'No files in the stream.');
cb();
return;
}
var newBranchCreated = false;
git.prepareRepo(options.remoteUrl, origin, options.cacheDir || '.publish')
.then(function(repo) {
gutil.log(TAG, 'Cloning repo');
if (repo._localBranches.indexOf(branch) > -1) {
gutil.log(TAG, 'Checkout branch `' + branch + '`');
return repo.checkoutBranch(branch);
}
if (repo._remoteBranches.indexOf(origin + '/' + branch) > -1) {
gutil.log(TAG, 'Checkout remote branch `' + branch + '`');
return repo.checkoutBranch(branch);
}
gutil.log(TAG, 'Create branch `' + branch + '` and checkout');
newBranchCreated = true;
return repo.createAndCheckoutBranch(branch);
})
.then(function(repo) {
return wrapPromise(function(resolve, reject) {
if (newBranchCreated) {
resolve(repo);
return;
}
// updating to avoid having local cache not up to date
gutil.log(TAG, 'Updating repository');
repo._repo.git('pull', function(err) {
if (err) {
reject(err);
return;
}
resolve(repo);
});
});
})
.then(function(repo) {
// remove all files
return wrapPromise(function(resolve, reject) {
repo._repo.remove('.', {r: true}, function(err) {
if (err) {
reject(err);
return;
}
resolve(repo.status());
});
});
})
.then(function(repo) {
gutil.log(TAG, 'Copying files to repository');
return wrapPromise(function(resolve, reject) {
var destStream = vinylFs.dest(repo._repo.path)
.on('error', reject)
.on('end', function() {
resolve(repo);
})
.resume();
files.forEach(function(file) {
destStream.write(file);
});
destStream.end();
});
})
.then(function(repo) {
return repo.addFiles('.', {force: options.force || false});
})
.then(function(repo) {
var filesToBeCommitted = Object.keys(repo._staged).length;
if (filesToBeCommitted === 0) {
gutil.log(TAG, 'No files have changed.');
cb();
return;
}
gutil.log(TAG, 'Adding ' + filesToBeCommitted + ' files.');
gutil.log(TAG, 'Committing "' + message + '"');
repo.commit(message).then(function(newRepo) {
if (options.push === undefined || options.push) {
gutil.log(TAG, 'Pushing to remote.');
newRepo._repo.git('push', {
'set-upstream': true
}, [origin, newRepo._currentBranch], function(err) {
if (err) {
cb(err);
return;
}
cb();
});
return;
}
cb();
}, cb);
})
.catch(function(err) {
setImmediate(function() {
cb(new gutil.PluginError('gulp-gh-pages', err));
});
});
}
});
};

270
_site/node_modules/gulp-gh-pages/lib/git.js generated vendored Normal file
View File

@ -0,0 +1,270 @@
'use strict';
var git = require('gift');
var rimraf = require('rimraf');
var wrapPromise = require('wrap-promise');
/*
* Git Constructor
**/
function Git(repo, initialBranch) {
this._repo = repo;
this._staged = [];
this._localBranches = [];
this._remoteBranches = [];
this._currentBranch = initialBranch;
this._commits = [];
}
/*
* Caller abstract method
* for promisifying traditional callback methods
**/
function caller() {
var returnedArgs = Array.prototype.slice.call(arguments);
var fn = returnedArgs.shift();
var self = this;
return wrapPromise(function(resolve, reject) {
returnedArgs.push(function(err, args) {
if (err) {
reject(err);
return;
}
resolve(args);
});
fn.apply(self, returnedArgs);
});
}
/*
* Gets the URL for the specified remote of a repo
*/
function getRemoteUrl(repo, remote) {
return wrapPromise(function(resolve, reject) {
repo.config(function(err, config) {
if (err) {
reject(new Error('Failed to find git repository in ' + config.path));
return;
}
resolve(config.items['remote.' + remote + '.url']);
});
});
}
/*
* Clone repo
* Returns repo object
**/
function prepareRepo(remoteUrl, origin, dir) {
var promise;
if (remoteUrl) {
// if a remoteUrl was provided, use it
promise = wrapPromise.Promise.resolve(remoteUrl);
} else {
// else try to extract it from the .git folder of
// the current directory.
promise = getRemoteUrl(git(process.cwd()), origin);
}
return promise.then(function(rUrl) {
remoteUrl = rUrl;
return wrapPromise(function(resolve, reject) {
function initRepo(repo) {
repo.branch(function(err, head) {
if (err) {
reject(err);
return;
}
resolve(new Git(repo, head.name).status());
});
}
function clearAndInitRepo() {
rimraf(dir, function(rmErr) {
if (rmErr) {
reject(rmErr);
return;
}
git.clone(rUrl, dir, function(cloneErr, repo) {
if (cloneErr) {
reject(cloneErr);
return;
}
initRepo(repo);
});
});
}
// assume that if there is a .git folder get its remoteUrl
// and check if it mathces the one we want to use.
getRemoteUrl(git(dir), origin).then(function(cwdRemoteUrl) {
if (remoteUrl === cwdRemoteUrl) {
initRepo(git(dir));
return;
}
clearAndInitRepo();
}, function() {
clearAndInitRepo();
});
});
});
}
/*
* List Local branches
**/
function listLocalBranches(repo) {
return caller.call(repo, repo.branches).then(function(branches) {
return branches.map(function(branch) {
return branch.name;
});
});
}
function listRemoteBranches(repo) {
return caller.call(repo, repo.git, 'branch', {r: true}, [])
.then(function(branches) {
branches = branches.split('\n');
branches.shift();
branches.pop();
return branches.map(function(branchName) {
branchName = branchName.trim();
return branchName;
});
});
}
/*
* List commits for specific branch
**/
function getCommits(repo, branchName) {
return caller.call(repo, repo.commits, branchName)
.then(function(commits) {
return commits.map(function(commitObj) {
return {
id: commitObj.id,
message: commitObj.message,
committed_date: commitObj.committed_date
};
});
});
}
Git.prepareRepo = prepareRepo;
Git.getRemoteUrl = getRemoteUrl;
/*
* Status
* files - Array of String paths; or a String path.
**/
Git.prototype.status = function() {
var self = this;
return wrapPromise(function(resolve, reject) {
self._repo.status(function(err, repo) {
if (err) {
reject(err);
return;
}
self._repo = repo.repo;
self._staged = repo.files;
wrapPromise.Promise.all([
getCommits(self._repo, self._currentBranch),
listRemoteBranches(self._repo),
listLocalBranches(self._repo)
])
.then(function(args) {
self._remoteBranches = args[1];
self._localBranches = args[2];
self._commits = args[0];
resolve(self);
}, reject);
});
});
};
/*
* Checkout a specific branch in a repo
* @param name {String} - String name of the branch.
**/
Git.prototype.checkoutBranch = function(name) {
var self = this;
return wrapPromise(function(resolve, reject) {
self._repo.checkout(name, function(err) {
if (err) {
reject(err);
return;
}
self._currentBranch = name;
resolve(self.status());
});
});
};
/*
* Create a branch
* @param name {String} - String name of the new branch.
**/
Git.prototype.createBranch = function(name) {
var self = this;
return wrapPromise(function(resolve, reject) {
self._repo.create_branch(name, function(err) {
if (err) {
reject(err);
} else {
self._currentBranch = name;
resolve(self.status());
}
});
});
};
/*
* Create and checkout a branch
* @param name {String} - String name of the new branch.
**/
Git.prototype.createAndCheckoutBranch = function(name) {
return this.createBranch(name)
.then(function(repo) {
return repo.checkoutBranch(name);
});
};
Git.prototype.addFiles = function(files, options) {
var self = this;
return wrapPromise(function(resolve, reject) {
self._repo.add(files, options, function(err) {
if (err) {
reject(err);
return;
}
resolve(self.status());
});
});
};
Git.prototype.commit = function(commitMsg) {
var self = this;
return wrapPromise(function(resolve, reject) {
self._repo.commit(commitMsg, {all: true}, function(err) {
if (err) {
reject(err);
} else {
resolve(self.status());
}
});
});
};
module.exports = Git;

View File

@ -0,0 +1,20 @@
Copyright (c) 2012 [DJG](https://github.com/sentientwaffle)
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.

View File

@ -0,0 +1,383 @@
# Gift [![Build Status](https://secure.travis-ci.org/notatestuser/gift.svg?branch=master)](http://travis-ci.org/notatestuser/gift) [![Dependency Status](https://david-dm.org/notatestuser/gift.svg)](https://david-dm.org/notatestuser/gift) [![devDependency Status](https://david-dm.org/notatestuser/gift/dev-status.svg)](https://david-dm.org/notatestuser/gift#info=devDependencies)
A simple Node.js wrapper for the Git CLI. The API is based on
[Grit](https://github.com/mojombo/grit)
# Installation
This fork is now in the `npm` package repository. Install it like you would any other package:
$ npm install gift
# API
For existing repositories:
git = require 'gift'
repo = git "path/to/repo"
# => #<Repo>
Initialize a new repository:
git = require 'gift'
git.init "path/to/repo", (err, _repo) ->
repo = _repo
# => #<Repo>
Initialize a new bare repository:
git = require 'gift'
git.init "path/to/bare/repo", true, (err, _repo) ->
repo = _repo
# => #<Repo>
Clone a repository:
git = require 'gift'
git.clone "git@host:path/to/remote/repo.git", "path/to/local/clone/repo", (err, _repo) ->
repo = _repo
# => #<Repo>
## Repo
### `Repo#path`
`String` - The path to the repository.
### `Repo#commits([treeish, [limit, [skip, ]]]callback)`
Get a list of commits.
* `treeish` - `String` (optional).
* `limit` - `Integer` (optional).
* `skip` - `Integer` (optional).
* `callback` - `Function` which receives `(err, commits)`, where `commits` is
an `Array` of `Commit`s.
Get the 10 most recent commits to master.
repo.commits (err, commits) ->
Or to a different tag or branch.
repo.commits "v0.0.3", (err, commits) ->
Limit the maximum number of commits returned (by default limit is 10).
repo.commits "master", 30, (err, commits) ->
Skip some (for pagination):
repo.commits "master", 30, 30, (err, commits) ->
Or get an unlimited number of commits (there could be a lot):
repo.commits "master", -1, (err, commits) ->
### `Repo#current_commit(callback)`
Get the current commit.
The callback receives `(err, commit)`.
### `Repo#tree([treeish]) => Tree`
The `Tree` object for the treeish (which defaults to "master").
repo.tree().contents (err, children) ->
for child in children
console.log child.name
### `Repo#diff(commitA, commitB, [paths, ]callback)`
Get the difference between the trees.
The callback receives `(err, diffs)`.
### `Repo#identity(callback)`
Get the commit identity for this repository.
The callback receives `(err, actor)`, where `actor` is an Actor.
### `Repo#identify(actor, callback)`
Set your account's default identity for commits to this repository.
The callback receives `(err)`.
### `Repo#remotes(callback)`
Get the repository's remotes.
Receives `(err, remotes)`, where each remote is a Ref.
### `Repo#remote_list(callback)`
Get a list of the repository's remote names.
Get the string names of each of the remotes.
### `Repo#remote_add(name, url, callback)`
Equivalent to `git remote add <name> <url>`.
### `Repo#remote_remove(name, callback)`
Remove a remote.
### `Repo#remote_add_url(name, url, callback)`
Equivalent to `git remote set-url --add <name> <url>`.
### `Repo#remote_set_url(name, url, callback)`
Equivalent to `git remote set-url <name> <url>`.
### `Repo#remote_delete_url(name, url, callback)`
Equivalent to `git remote set-url --delete <name> <url>`.
### `Repo#remote_fetch(name, callback)`
`git fetch <name>`
### `Repo#remote_push(name, [branch,] callback)`
`git push <name>`
with branch parameter specified:
`git push <name> <branch>`
### `Repo#status([options, ]callback)`
Uses `--porcelain` to parse repository status in a way that is agnostic of system language.
`options` is a string of any other options you'd like to pass to the status command. For example, the `-u` option will list each file in an untracked directory rather than simply listing the directory itself.
The callback receives `(err, status)`. See below for a definition of what `status` is.
### `Repo#config(callback)`
`git config` parsed as a simple, one-level object. The callback receives `(err, config)`.
### `Repo#create_branch(name, callback)`
Create a new branch with `name`, and call the callback when complete
with an error, if one occurred.
### `Repo#delete_branch(name, callback)`
Delete the branch `name`, and call the callback with an error, if one occurred.
### `Repo#tags(callback)`
Get a list of `Tag`s.
### `Repo#create_tag(name, [options, ]callback)`
Create a tab with the given name.
### `Repo#delete_tag(name, callback)`
Delete the tag with the given name.
### `Repo#branches(callback)`
`callback` receives `(err, heads)`.
### `Repo#create_branch(name, callback)`
Create a branch with the given name.
### `Repo#delete_branch(delete, callback)`
Delete the branch with the given name.
### `Repo#branch([branch, ]callback)`
Get a branch.
* `branch` - The name of the branch to get. Defaults to the
currently checked out branch.
* `callback` - Receives `(err, head)`.
### `Repo#commit(message, [options, ]callback)`
Commit some changes.
* `message` - `String`
* `options` -
- `all` - `Boolean`
- `amend` - `Boolean`
- `author` - `String` that must match "Au thor Author <author@nowhere.org>"
* `callback` - Receives `(err)`.
### `Repo#add(files, callback)`
`git add <files>`
### `Repo#remove(files, callback)`
`git rm <files>`
### `Repo#checkout(treeish, callback)`
`git checkout <treeish>`
### `Repo#checkoutFile([files, options, ]callback)`
Checkout some files.
* `files` - File(s) to checkout. Pass `'.'` or nothing to checkout all files.
* `options` -
- `force` - `Boolean`
* `callback` - Receives `(err)`.
### `Repo#sync([[remote, ]branch, ]callback)`
Sync the current branch with the remote, keeping all local changes intact.
The following steps are carried out: `stash`, `pull`, `push`, `stash pop`. If there were no changes to stash, the last `stash pop` is not executed.
* `remote` - `String` (defaults to `origin`).
* `branch` - `String` (defaults to `master`).
* `callback` - Receives `(err)`.
### `Repo#reset([treeish, options, ]callback)`
Checkout files.
* `treeish` - The git object to reset to. Defaults to HEAD.
* `options` -
- `soft` - `Boolean`
- `mixed` - `Boolean` __default__
- `hard` - `Boolean`
- `merge` - `Boolean`
- `keep` - `Boolean`
* `callback` - Receives `(err)`.
## Commit
### `Commit#id`
`String` - The commit's SHA.
### `Commit#parents`
`Commit[]`
### `Commit#tree()`
`Tree` - The commit's content tree.
### `Commit#author`
`Actor`
### `Commit#authored_date`
`Date`
### `Commit#committer`
`Actor`
### `Commit#committed_date`
`Date`
### `Commit#message`
`String`
## Head
### `Head#name`
`String`
### `Head#commit`
`Commit`
## Tag
### `Tag#name`
`String`
### `Tag#commit`
`Commit`
### `Tag#message(callback)`
The callback receives `(err, message)` (`message` is a String).
### `Tag#tagger(callback)`
The callback receives `(err, actor)`.
### `Tag#tag_date(callback)`
The callback receives `(err, date)`.
## Config
### `Config#items`
`Object` - The keys are dotted precisely as the console output from `git config`. E.g., `{'user.name': 'John Doe'}`
## Status
### `Status#clean`
`Boolean`
### `Status#files`
`Object` - The keys are files, the values objects indicating whether or not
the file is staged, tracked, etc.
Each file has the following properties:
* `type` which translates to:
| _type_ | index | working tree |
| :--- | :-------: | :-----------:|
| `A ` | added | - |
| `M ` | modified | - |
| `D ` | deleted | - |
| `AM` | added | modified |
| `MM` | modified | modified |
| `AD` | staged | deleted |
| `MD` | modified | deleted |
* `staged` - `Boolean`
* `tracked` - `Boolean`
## Actor
### `Actor#name`
`String`
### `Actor#email`
`String`
### `Actor#hash`
`String` - The MD5 hash of the actor's email. Useful for displaying
[Gravatar](http://en.gravatar.com/) avatars.
## Tree
### `Tree#id`
`String` - SHA1
### `Tree#contents(callback)`
* `callback` - Receives `(err, children)`.
* `children` - An array of `Blob`s, `Tree`s, and `Submodule`s.
### `Tree#blobs(callback)`
* `callback` - Receives `(err, child_blobs)`.
* `children` - `[Blob]`
### `Tree#trees(callback)`
* `callback` - Receives `(err, child_trees)`.
* `children` - `[Tree]`
### `Tree#find(directory, callback)`
* `directory` - `String`
* `callback` - Receives `(err, thing)`.
## Blob
### `Blob#id`
`String` - SHA1
### `Blob#mode`
`String`
### `Blob#data(callback)`
* `callback` - `(err, data)`
Warning: this method only returns the complete file up to 200k, which is the default
buffer size for running child_process.exec(). If the file you're reading is bigger than
that, or if you're not sure, you need to use dataStream()
### `Blob#dataStream()`
* returns - [dataStream, errorStream]
Returns streams for you to use to get the data.
Usage:
data = ""
[dataStream, _] = blob.dataStream()
dataStream.on 'data', (buf) ->
data += buf.toString()
.on 'end', ->
callback(data)
## Submodule
### `Submodule#id`
`String`
### `Submodule#name`
`String`
### `Submodule#mode`
`String`
### `Submodule#url(callback)`
Get the url the submodule points to.
# License
See LICENSE.

View File

@ -0,0 +1,34 @@
// Generated by CoffeeScript 1.9.1
(function() {
var Actor, crypto;
crypto = require('crypto');
module.exports = Actor = (function() {
function Actor(name1, email1) {
this.name = name1;
this.email = email1;
if (this.email) {
this.hash = crypto.createHash("md5").update(this.email, "ascii").digest("hex");
}
}
Actor.prototype.toString = function() {
return this.name + " <" + this.email + ">";
};
Actor.from_string = function(str) {
var email, m, name, ref;
if (/<.+>/.test(str)) {
ref = /(.*) <(.+?)>/.exec(str), m = ref[0], name = ref[1], email = ref[2];
return new Actor(name, email);
} else {
return new Actor(str, null);
}
};
return Actor;
})();
}).call(this);

View File

@ -0,0 +1,37 @@
// Generated by CoffeeScript 1.9.1
(function() {
var Blob, path;
path = require('path');
module.exports = Blob = (function() {
function Blob(repo, attrs) {
this.repo = repo;
this.id = attrs.id, this.name = attrs.name, this.mode = attrs.mode;
}
Blob.prototype.data = function(callback) {
return this.repo.git("cat-file", {
p: true
}, this.id, function(err, stdout, stderr) {
return callback(err, stdout);
}, 'binary');
};
Blob.prototype.dataStream = function() {
var streams;
streams = this.repo.git.streamCmd("cat-file", {
p: true
}, [this.id]);
return streams;
};
Blob.prototype.toString = function() {
return "#<Blob '" + this.id + "'>";
};
return Blob;
})();
}).call(this);

View File

@ -0,0 +1,153 @@
// Generated by CoffeeScript 1.9.1
(function() {
var Actor, Commit, Tree, _;
_ = require('underscore');
Actor = require('./actor');
Tree = require('./tree');
module.exports = Commit = (function() {
function Commit(repo1, id1, parents, tree, author1, authored_date1, committer1, committed_date1, gpgsig1, message) {
this.repo = repo1;
this.id = id1;
this.author = author1;
this.authored_date = authored_date1;
this.committer = committer1;
this.committed_date = committed_date1;
this.gpgsig = gpgsig1;
this.message = message;
this.tree = _.memoize((function(_this) {
return function() {
return new Tree(_this.repo, tree);
};
})(this));
this.parents = _.memoize((function(_this) {
return function() {
return _.map(parents, function(parent) {
return new Commit(_this.repo, parent);
});
};
})(this));
}
Commit.prototype.toJSON = function() {
return {
id: this.id,
author: this.author,
authored_date: this.authored_date,
committer: this.committer,
committed_date: this.committed_date,
message: this.message
};
};
Commit.find_all = function(repo, ref, options, callback) {
options = _.extend({
pretty: "raw"
}, options);
return repo.git("rev-list", options, ref, (function(_this) {
return function(err, stdout, stderr) {
if (err) {
return callback(err);
}
return callback(null, _this.parse_commits(repo, stdout));
};
})(this));
};
Commit.find = function(repo, id, callback) {
var options;
options = {
pretty: "raw",
"max-count": 1
};
return repo.git("rev-list", options, id, (function(_this) {
return function(err, stdout, stderr) {
if (err) {
return callback(err);
}
return callback(null, _this.parse_commits(repo, stdout)[0]);
};
})(this));
};
Commit.find_commits = function(repo, ids, callback) {
var commits, next;
commits = [];
next = function(i) {
var id;
if (id = ids[i]) {
return Commit.find(repo, id, function(err, commit) {
if (err) {
return callback(err);
}
commits.push(commit);
return next(i + 1);
});
} else {
return callback(null, commits);
}
};
return next(0);
};
Commit.parse_commits = function(repo, text) {
var author, author_line, authored_date, commits, committed_date, committer, committer_line, encoding, gpgsig, id, lines, message_lines, parents, ref1, ref2, tree;
commits = [];
lines = text.split("\n");
while (lines.length) {
id = _.last(lines.shift().split(" "));
if (!id) {
break;
}
tree = _.last(lines.shift().split(" "));
parents = [];
while (/^parent/.test(lines[0])) {
parents.push(_.last(lines.shift().split(" ")));
}
author_line = lines.shift();
ref1 = this.actor(author_line), author = ref1[0], authored_date = ref1[1];
committer_line = lines.shift();
ref2 = this.actor(committer_line), committer = ref2[0], committed_date = ref2[1];
gpgsig = [];
if (/^gpgsig/.test(lines[0])) {
gpgsig.push(lines.shift().replace(/^gpgsig /, ''));
while (!/^ -----END PGP SIGNATURE-----$/.test(lines[0])) {
gpgsig.push(lines.shift());
}
gpgsig.push(lines.shift());
}
while (/^kilnhgcopies/.test(lines[0])) {
lines.shift();
}
if (/^encoding/.test(lines[0])) {
encoding = _.last(lines.shift().split(" "));
}
if (lines.length) {
lines.shift();
}
message_lines = [];
while (/^ {4}/.test(lines[0])) {
message_lines.push(lines.shift().slice(4));
}
while ((lines[0] != null) && !lines[0].length) {
lines.shift();
}
commits.push(new Commit(repo, id, parents, tree, author, authored_date, committer, committed_date, gpgsig.join("\n"), message_lines.join("\n")));
}
return commits;
};
Commit.actor = function(line) {
var actor, epoch, m, ref1;
ref1 = /^.+? (.*) (\d+) .*$/.exec(line), m = ref1[0], actor = ref1[1], epoch = ref1[2];
return [Actor.from_string(actor), new Date(1000 * +epoch)];
};
return Commit;
})();
}).call(this);

View File

@ -0,0 +1,41 @@
// Generated by CoffeeScript 1.9.1
(function() {
var C, Config;
module.exports = C = function(repo, callback) {
return repo.git("config", {
list: true
}, function(err, stdout, stderr) {
var config;
config = new Config(repo);
config.parse(stdout);
return callback(err, config);
});
};
C.Config = Config = (function() {
function Config(repo1) {
this.repo = repo1;
}
Config.prototype.parse = function(text) {
var i, key, len, line, ref, ref1, results, value;
this.items = {};
ref = text.split("\n");
results = [];
for (i = 0, len = ref.length; i < len; i++) {
line = ref[i];
if (line.length === 0) {
continue;
}
ref1 = line.split('='), key = ref1[0], value = ref1[1];
results.push(this.items[key] = value);
}
return results;
};
return Config;
})();
}).call(this);

View File

@ -0,0 +1,119 @@
// Generated by CoffeeScript 1.9.1
(function() {
var Blob, Diff, _;
_ = require('underscore');
Blob = require('./blob');
module.exports = Diff = (function() {
function Diff(repo1, a_path1, b_path1, a_blob, b_blob, a_mode1, b_mode1, new_file1, deleted_file1, diff1, renamed_file1, similarity_index) {
this.repo = repo1;
this.a_path = a_path1;
this.b_path = b_path1;
this.a_mode = a_mode1;
this.b_mode = b_mode1;
this.new_file = new_file1;
this.deleted_file = deleted_file1;
this.diff = diff1;
this.renamed_file = renamed_file1 != null ? renamed_file1 : false;
this.similarity_index = similarity_index != null ? similarity_index : 0;
if (a_blob !== null) {
this.a_blob = new Blob(this.repo, {
id: a_blob
});
this.a_sha = a_blob;
}
if (b_blob !== null) {
this.b_blob = new Blob(this.repo, {
id: b_blob
});
this.b_sha = b_blob;
}
}
Diff.prototype.toJSON = function() {
return {
a_path: this.a_path,
b_path: this.b_path,
a_mode: this.a_mode,
b_mode: this.b_mode,
new_file: this.new_file,
deleted_file: this.deleted_file,
diff: this.diff,
renamed_file: this.renamed_file,
similarity_index: this.similarity_index
};
};
Diff.parse = function(repo, text) {
var a_blob, a_mode, a_path, b_blob, b_mode, b_path, deleted_file, diff, diff_lines, diffs, lines, m, new_file, ref, ref1, ref2, ref3, ref4, ref5, renamed_file, sim_index;
lines = text.split("\n");
diffs = [];
while (lines.length && lines[0]) {
ref = /^diff\s--git\s"?a\/(.+?)"?\s"?b\/(.+)"?$/.exec(lines.shift()), m = ref[0], a_path = ref[1], b_path = ref[2];
if (/^old mode/.test(lines[0])) {
ref1 = /^old mode (\d+)/.exec(lines.shift()), m = ref1[0], a_mode = ref1[1];
ref2 = /^new mode (\d+)/.exec(lines.shift()), m = ref2[0], b_mode = ref2[1];
}
if (!lines.length || /^diff --git/.test(lines[0])) {
diffs.push(new Diff(repo, a_path, b_path, null, null, a_mode, b_mode, false, false, null));
continue;
}
sim_index = 0;
new_file = false;
deleted_file = false;
renamed_file = false;
if (/^new file/.test(lines[0])) {
ref3 = /^new file mode (.+)$/.exec(lines.shift()), m = ref3[0], b_mode = ref3[1];
a_mode = null;
new_file = true;
} else if (/^deleted file/.test(lines[0])) {
ref4 = /^deleted file mode (.+)$/.exec(lines.shift()), m = ref4[0], a_mode = ref4[1];
b_mode = null;
deleted_file = true;
} else if (m = /^similarity index (\d+)\%/.exec(lines[0])) {
sim_index = m[1].to_i;
renamed_file = true;
lines.shift();
lines.shift();
}
ref5 = /^index\s([0-9A-Fa-f]+)\.\.([0-9A-Fa-f]+)\s?(.+)?$/.exec(lines.shift()), m = ref5[0], a_blob = ref5[1], b_blob = ref5[2], b_mode = ref5[3];
if (b_mode) {
b_mode = b_mode.trim();
}
diff_lines = [];
while (lines[0] && !/^diff/.test(lines[0])) {
diff_lines.push(lines.shift());
}
diff = diff_lines.join("\n");
diffs.push(new Diff(repo, a_path, b_path, a_blob, b_blob, a_mode, b_mode, new_file, deleted_file, diff, renamed_file, sim_index));
}
return diffs;
};
Diff.parse_raw = function(repo, text) {
var a_mode, a_path, a_sha, b_mode, b_path, b_sha, deleted_file, diffs, i, len, line, lines, new_file, ref, renamed_file, status;
lines = _.compact(text.split("\n"));
diffs = [];
for (i = 0, len = lines.length; i < len; i++) {
line = lines[i];
line = line.slice(1);
line = line.replace(/\.\.\./g, '');
ref = line.split(/\s/), a_mode = ref[0], b_mode = ref[1], a_sha = ref[2], b_sha = ref[3], status = ref[4], a_path = ref[5], b_path = ref[6];
if (!b_path) {
b_path = a_path;
}
new_file = status === 'M';
deleted_file = status === 'D';
renamed_file = status === 'R';
diffs.push(new Diff(repo, a_path, b_path, a_sha, b_sha, a_mode, b_mode, new_file, deleted_file, null, renamed_file, null));
}
return diffs;
};
return Diff;
})();
}).call(this);

View File

@ -0,0 +1,128 @@
// Generated by CoffeeScript 1.9.1
(function() {
var Git, exec, fs, options_to_argv, ref, spawn;
fs = require('fs');
ref = require('child_process'), exec = ref.exec, spawn = ref.spawn;
module.exports = Git = function(git_dir, dot_git, git_options) {
var git;
git_options || (git_options = {});
dot_git || (dot_git = git_dir + "/.git");
git = function(command, options, args, callback, encoding) {
var bash, ref1, ref2;
if (!callback) {
ref1 = [args, callback], callback = ref1[0], args = ref1[1];
}
if (!callback) {
ref2 = [options, callback], callback = ref2[0], options = ref2[1];
}
if (options == null) {
options = {};
}
options = options_to_argv(options);
options = options.join(" ");
if (args == null) {
args = [];
}
if (args instanceof Array) {
args = args.join(" ");
}
if (encoding == null) {
encoding = 'utf8';
}
bash = (git_options.bin || Git.bin) + " " + command + " " + options + " " + args;
exec(bash, {
cwd: git_dir,
encoding: encoding,
maxBuffer: 5000 * 1024
}, callback);
return bash;
};
git.cmd = function(command, options, args, callback, encoding) {
return git(command, options, args, encoding, callback);
};
git.streamCmd = function(command, options, args, encoding) {
var allargs, process;
if (options == null) {
options = {};
}
options = options_to_argv(options);
if (args == null) {
args = [];
}
allargs = [command].concat(options).concat(args);
if (encoding == null) {
encoding = 'utf8';
}
process = spawn(Git.bin, allargs, {
cwd: git_dir,
encoding: encoding
});
return [process.stdout, process.stderr];
};
git.list_remotes = function(callback) {
return fs.readdir(dot_git + "/refs/remotes", function(err, files) {
return callback(err, files || []);
});
};
git.refs = function(type, options, callback) {
var prefix, ref1;
if (!callback) {
ref1 = [options, callback], callback = ref1[0], options = ref1[1];
}
prefix = "refs/" + type + "s/";
return git("show-ref", function(err, text) {
var i, id, len, line, matches, name, ref2, ref3;
if ((err != null ? err.code : void 0) === 1) {
err = null;
}
matches = [];
ref2 = (text || "").split("\n");
for (i = 0, len = ref2.length; i < len; i++) {
line = ref2[i];
if (!line) {
continue;
}
ref3 = line.split(' '), id = ref3[0], name = ref3[1];
if (name.substr(0, prefix.length) === prefix) {
matches.push((name.substr(prefix.length)) + " " + id);
}
}
return callback(err, matches.join("\n"));
});
};
return git;
};
Git.bin = "git";
Git.options_to_argv = options_to_argv = function(options) {
var argv, key, val;
argv = [];
for (key in options) {
val = options[key];
if (key.length === 1) {
if (val === true) {
argv.push("-" + key);
} else if (val === false) {
} else {
argv.push("-" + key);
argv.push(val);
}
} else {
if (val === true) {
argv.push("--" + key);
} else if (val === false) {
} else {
argv.push("--" + key + "=" + val);
}
}
}
return argv;
};
}).call(this);

View File

@ -0,0 +1,50 @@
// Generated by CoffeeScript 1.9.1
(function() {
var Git, Repo, exec;
exec = require('child_process').exec;
Repo = require('./repo');
module.exports = Git = function(path, bare, git_options) {
if (bare == null) {
bare = false;
}
if (git_options == null) {
git_options = {};
}
return new Repo(path, bare, git_options);
};
Git.init = function(path, bare, callback) {
var bash, ref;
if (!callback) {
ref = [callback, bare], bare = ref[0], callback = ref[1];
}
if (bare) {
bash = "git init --bare .";
} else {
bash = "git init .";
}
return exec(bash, {
cwd: path
}, function(err, stdout, stderr) {
if (err) {
return callback(err);
}
return callback(err, new Repo(path, bare));
});
};
Git.clone = function(repository, path, callback) {
var bash;
bash = "git clone " + repository + " " + path;
return exec(bash, function(err, stdout, stderr) {
if (err) {
return callback(err);
}
return callback(err, new Repo(path));
});
};
}).call(this);

View File

@ -0,0 +1,96 @@
// Generated by CoffeeScript 1.9.1
(function() {
var Commit, Head, Ref, fs,
extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; },
hasProp = {}.hasOwnProperty;
fs = require('fs');
Commit = require('./commit');
exports.Ref = Ref = (function() {
function Ref(name1, commit1) {
this.name = name1;
this.commit = commit1;
this.repo = this.commit.repo;
}
Ref.prototype.toString = function() {
return "#<Ref '" + this.name + "'>";
};
Ref.find_all = function(repo, type, RefClass, callback) {
return repo.git.refs(type, {}, function(err, text) {
var id, ids, j, len, name, names, ref, ref1, ref2;
if (err) {
return callback(err);
}
names = [];
ids = [];
ref1 = text.split("\n");
for (j = 0, len = ref1.length; j < len; j++) {
ref = ref1[j];
if (!ref) {
continue;
}
ref2 = ref.split(' '), name = ref2[0], id = ref2[1];
names.push(name);
ids.push(id);
}
return Commit.find_commits(repo, ids, function(err, commits) {
var i, k, len1, refs;
if (err) {
return callback(err);
}
refs = [];
for (i = k = 0, len1 = names.length; k < len1; i = ++k) {
name = names[i];
refs.push(new RefClass(name, commits[i]));
}
return callback(null, refs);
});
});
};
return Ref;
})();
exports.Head = Head = (function(superClass) {
extend(Head, superClass);
function Head() {
return Head.__super__.constructor.apply(this, arguments);
}
Head.find_all = function(repo, callback) {
return Ref.find_all(repo, "head", Head, callback);
};
Head.current = function(repo, callback) {
return fs.readFile(repo.dot_git + "/HEAD", function(err, data) {
var branch, m, ref;
if (err) {
return callback(err);
}
ref = /ref: refs\/heads\/([^\s]+)/.exec(data);
if (!ref) {
return callback(new Error("Current branch is not a valid branch."));
}
m = ref[0], branch = ref[1];
return fs.readFile(repo.dot_git + "/refs/heads/" + branch, function(err, id) {
return Commit.find(repo, id, function(err, commit) {
if (err) {
return callback(err);
}
return callback(null, new Head(branch, commit));
});
});
});
};
return Head;
})(Ref);
}).call(this);

View File

@ -0,0 +1,522 @@
// Generated by CoffeeScript 1.9.1
(function() {
var Actor, Commit, Config, Diff, Head, Ref, Repo, Status, Tag, Tree, _, cmd, ref;
_ = require('underscore');
cmd = require('./git');
Actor = require('./actor');
Commit = require('./commit');
Config = require('./config');
Tree = require('./tree');
Diff = require('./diff');
Tag = require('./tag');
Status = require('./status');
ref = require('./ref'), Ref = ref.Ref, Head = ref.Head;
module.exports = Repo = (function() {
function Repo(path, bare, git_options) {
this.path = path;
this.bare = bare;
this.git_options = git_options;
if (this.bare) {
this.dot_git = this.path;
} else {
this.dot_git = this.path + "/.git";
}
this.git = cmd(this.path, this.dot_git, this.git_options);
}
Repo.prototype.identity = function(callback) {
return this.git("config", {}, ["user.email"], (function(_this) {
return function(err, stdout) {
var email;
if (stdout == null) {
stdout = '';
}
if (err) {
return callback(err);
}
email = stdout != null ? stdout.trim() : void 0;
return _this.git("config", {}, ["user.name"], function(err, stdout) {
var name;
if (stdout == null) {
stdout = '';
}
if (err) {
return callback(err);
}
name = stdout != null ? stdout.trim() : void 0;
return callback(null, new Actor(name, email));
});
};
})(this));
};
Repo.prototype.identify = function(actor, callback) {
return this.git("config", {}, ["user.email", "\"" + actor.email + "\""], (function(_this) {
return function(err) {
if (err) {
return callback(err);
}
return _this.git("config", {}, ["user.name", "\"" + actor.name + "\""], function(err) {
if (err) {
return callback(err);
}
return callback(null);
});
};
})(this));
};
Repo.prototype.commits = function(start, limit, skip, callback) {
var options, ref1, ref2, ref3;
if (!callback) {
ref1 = [callback, skip], skip = ref1[0], callback = ref1[1];
}
if (!callback) {
ref2 = [callback, limit], limit = ref2[0], callback = ref2[1];
}
if (!callback) {
ref3 = [callback, start], start = ref3[0], callback = ref3[1];
}
if (!callback) {
throw new Error("a callback is required");
}
if (start == null) {
start = "master";
}
if (limit == null) {
limit = 10;
}
if (skip == null) {
skip = 0;
}
options = {
skip: skip
};
if (limit !== -1) {
options["max-count"] = limit;
}
return Commit.find_all(this, start, options, callback);
};
Repo.prototype.current_commit_id = function(callback) {
return this.git("rev-parse HEAD", {}, [], (function(_this) {
return function(err, stdout, stderr) {
if (err) {
return callback(err);
}
return callback(null, _.first(stdout.split("\n")));
};
})(this));
};
Repo.prototype.current_commit = function(callback) {
return this.current_commit_id((function(_this) {
return function(err, commit_id) {
if (err) {
return callback(err);
}
return Commit.find(_this, commit_id, callback);
};
})(this));
};
Repo.prototype.tree = function(treeish) {
if (treeish == null) {
treeish = "master";
}
return new Tree(this, treeish);
};
Repo.prototype.diff = function(commitA, commitB) {
var callback, options, paths, ref1, ref2;
ref1 = [[], {}], paths = ref1[0], options = ref1[1];
if (arguments.length === 3) {
callback = arguments[2];
} else if (arguments.length === 4) {
callback = arguments[3];
if (arguments[2] instanceof Array) {
paths = arguments[2];
} else if (arguments[2] instanceof Object) {
options = arguments[2];
}
} else if (arguments.length === 5) {
ref2 = Array.prototype.slice.call(arguments, 2), paths = ref2[0], options = ref2[1], callback = ref2[2];
}
if (_.isObject(commitA)) {
commitA = commitA.id;
}
if (_.isObject(commitB)) {
commitB = commitB.id;
}
return this.git("diff", options, _.flatten([commitA, commitB, "--", paths]), (function(_this) {
return function(err, stdout, stderr) {
if (err) {
return callback(err);
}
if (_.has(options, 'raw')) {
return callback(err, Diff.parse_raw(_this, stdout));
} else {
return callback(err, Diff.parse(_this, stdout));
}
};
})(this), 'binary');
};
Repo.prototype.remotes = function(callback) {
return Ref.find_all(this, "remote", Ref, callback);
};
Repo.prototype.remote_list = function(callback) {
return this.git.list_remotes(callback);
};
Repo.prototype.remote_add = function(name, url, callback) {
return this.git("remote", {}, ["add", name, url], function(err, stdout, stderr) {
return callback(err);
});
};
Repo.prototype.remote_remove = function(name, callback) {
return this.git("remote", {}, ["rm", name], function(err, stdout, stderr) {
return callback(err);
});
};
Repo.prototype.remote_add_url = function(name, url, callback) {
return this.git("remote set-url", {}, ["--add", name, url], function(err, stdout, stderr) {
return callback(err);
});
};
Repo.prototype.remote_set_url = function(name, url, callback) {
return this.git("remote set-url", {}, [name, url], function(err, stdout, stderr) {
return callback(err);
});
};
Repo.prototype.remote_delete_url = function(name, url, callback) {
return this.git("remote set-url", {}, ["--delete", name, url], function(err, stdout, stderr) {
return callback(err);
});
};
Repo.prototype.remote_fetch = function(name, callback) {
return this.git("fetch", {}, name, function(err, stdout, stderr) {
return callback(err);
});
};
Repo.prototype.remote_push = function(name, branch, callback) {
var args;
if (!callback) {
callback = branch;
args = name;
} else {
args = [name, branch];
}
return this.git("push", {}, args, function(err, stdout, stderr) {
return callback(err);
});
};
Repo.prototype.merge = function(name, callback) {
return this.git("merge", {}, name, function(err, stdout, stderr) {
return callback(err);
});
};
Repo.prototype.status = function(options, callback) {
var ref1;
if (!callback) {
ref1 = [callback, options], options = ref1[0], callback = ref1[1];
}
return Status(this, options, callback);
};
Repo.prototype.ls_files = function(options, callback) {
var ref1;
if (!callback) {
ref1 = [callback, options], options = ref1[0], callback = ref1[1];
}
return this.git("ls-files", options, (function(_this) {
return function(err, stdout, stderr) {
if (err) {
return callback(err);
}
return callback(null, _this.parse_lsFiles(stdout, options));
};
})(this));
};
Repo.prototype.config = function(callback) {
return Config(this, callback);
};
Repo.prototype.tags = function(callback) {
return Tag.find_all(this, callback);
};
Repo.prototype.create_tag = function(name, options, callback) {
var ref1;
if (!callback) {
ref1 = [callback, options], options = ref1[0], callback = ref1[1];
}
return this.git("tag", options, [name], callback);
};
Repo.prototype.delete_tag = function(name, callback) {
return this.git("tag", {
d: name
}, callback);
};
Repo.prototype.branches = function(callback) {
return Head.find_all(this, callback);
};
Repo.prototype.create_branch = function(name, callback) {
return this.git("branch", {}, name, function(err, stdout, stderr) {
return callback(err);
});
};
Repo.prototype.delete_branch = function(name, callback) {
return this.git("branch", {
d: true
}, name, function(err, stdout, stderr) {
return callback(err);
});
};
Repo.prototype.branch = function(name, callback) {
var ref1;
if (!callback) {
ref1 = [callback, name], name = ref1[0], callback = ref1[1];
}
if (!name) {
return Head.current(this, callback);
} else {
return this.branches(function(err, heads) {
var head, i, len;
if (err) {
return callback(err);
}
for (i = 0, len = heads.length; i < len; i++) {
head = heads[i];
if (head.name === name) {
return callback(null, head);
}
}
return callback(new Error("No branch named '" + name + "' found"));
});
}
};
Repo.prototype.checkout = function(treeish, callback) {
return this.git("checkout", {}, treeish, callback);
};
Repo.prototype.clean = function(options, callback) {
if (options == null) {
options = {};
}
return this.git("clean", options, callback);
};
Repo.prototype.reset = function(treeish, options, callback) {
var ref1, ref2, ref3;
if (!callback) {
ref1 = [callback, options], options = ref1[0], callback = ref1[1];
}
if (!callback) {
ref2 = [callback, treeish], treeish = ref2[0], callback = ref2[1];
}
if (typeof treeish === 'object') {
ref3 = [options, treeish], treeish = ref3[0], options = ref3[1];
}
if (treeish == null) {
treeish = 'HEAD';
}
if (options == null) {
options = {};
}
return this.git("reset", options, treeish, callback);
};
Repo.prototype.checkoutFile = function(files, options, callback) {
var ref1, ref2, ref3;
if (!callback) {
ref1 = [callback, options], options = ref1[0], callback = ref1[1];
}
if (!callback) {
ref2 = [callback, files], files = ref2[0], callback = ref2[1];
}
if (typeof files === 'object') {
ref3 = [options, files], files = ref3[0], options = ref3[1];
}
if (options == null) {
options = {};
}
if (files == null) {
files = '.';
}
if (_.isString(files)) {
files = [files];
}
return this.git("checkout", options, _.flatten(['--', files]), callback);
};
Repo.prototype.commit = function(message, options, callback) {
var ref1;
if (!callback) {
ref1 = [callback, options], options = ref1[0], callback = ref1[1];
}
if (options == null) {
options = {};
}
options = _.extend(options, {
m: "\"" + message + "\""
});
if (options.author != null) {
options.author = "\"" + options.author + "\"";
}
return this.git("commit", options, callback);
};
Repo.prototype.add = function(files, options, callback) {
var ref1;
if (!callback) {
ref1 = [callback, options], options = ref1[0], callback = ref1[1];
}
if (options == null) {
options = {};
}
if (_.isString(files)) {
files = [files];
}
return this.git("add", options, files, callback);
};
Repo.prototype.remove = function(files, options, callback) {
var ref1;
if (!callback) {
ref1 = [callback, options], options = ref1[0], callback = ref1[1];
}
if (options == null) {
options = {};
}
if (_.isString(files)) {
files = [files];
}
return this.git("rm", options, files, callback);
};
Repo.prototype.revert = function(sha, callback) {
return this.git("revert", {}, sha, callback);
};
Repo.prototype.sync = function(remote_name, branch_name, callback) {
var branch, ref1, ref2, ref3, remote;
if (typeof callback === "function") {
ref1 = [remote_name, branch_name], remote = ref1[0], branch = ref1[1];
}
if (typeof branch_name === "function") {
ref2 = ["origin", remote_name, branch_name], remote = ref2[0], branch = ref2[1], callback = ref2[2];
}
if (typeof remote_name === "function") {
ref3 = ["origin", "master", remote_name], remote = ref3[0], branch = ref3[1], callback = ref3[2];
}
return this.status((function(_this) {
return function(err, status) {
if (err) {
return callback(err);
}
return _this.git("stash", {}, ["save", "-u"], function(err, stdout, stderr) {
if (err) {
return callback(stderr);
}
return _this.git("pull", {}, [remote, branch], function(err, stdout, stderr) {
if (err) {
return callback(stderr);
}
return _this.git("push", {}, [remote, branch], function(err, stdout, stderr) {
if (err) {
return callback(stderr);
}
if (!(status != null ? status.clean : void 0)) {
return _this.git("stash", {}, ["pop"], function(err, stdout, stderr) {
if (err) {
return callback(stderr);
}
return callback(null);
});
} else {
return callback(null);
}
});
});
});
};
})(this));
};
Repo.prototype.pull = function(remote_name, branch_name, callback) {
var branch, ref1, ref2, ref3, remote;
if (typeof callback === "function") {
ref1 = [remote_name, branch_name], remote = ref1[0], branch = ref1[1];
}
if (typeof branch_name === "function") {
ref2 = ["origin", remote_name, branch_name], remote = ref2[0], branch = ref2[1], callback = ref2[2];
}
if (typeof remote_name === "function") {
ref3 = ["origin", "master", remote_name], remote = ref3[0], branch = ref3[1], callback = ref3[2];
}
return this.status((function(_this) {
return function(err, status) {
if (err) {
return callback(err);
}
return _this.git("pull", {}, [remote, branch], function(err, stdout, stderr) {
if (err) {
return callback(stderr);
}
return callback(null);
});
};
})(this));
};
Repo.prototype.parse_lsFiles = function(text, options) {
var files, line, lines;
files = [];
if (_.has(options, 'z')) {
lines = text.split("\0");
} else {
lines = text.split("\n");
}
while (lines.length) {
line = lines.shift().split(" ");
files.push(line);
while ((lines[0] != null) && !lines[0].length) {
lines.shift();
}
}
return files;
};
return Repo;
})();
}).call(this);

View File

@ -0,0 +1,49 @@
// Generated by CoffeeScript 1.9.1
(function() {
var S, Status;
module.exports = S = function(repo, options, callback) {
return repo.git("status --porcelain", options, function(err, stdout, stderr) {
var status;
status = new Status(repo);
status.parse(stdout);
return callback(err, status);
});
};
S.Status = Status = (function() {
function Status(repo1) {
this.repo = repo1;
}
Status.prototype.parse = function(text) {
var file, i, len, line, ref, results, type;
this.files = {};
this.clean = text.length === 0;
ref = text.split("\n");
results = [];
for (i = 0, len = ref.length; i < len; i++) {
line = ref[i];
if (line.length === 0) {
continue;
}
file = line.substr(3);
type = line.substr(0, 2);
this.files[file] = {
staged: line[0] !== " " && line[0] !== "?",
tracked: line[0] !== "?"
};
if (type !== "??") {
results.push(this.files[file].type = type.trim());
} else {
results.push(void 0);
}
}
return results;
};
return Status;
})();
}).call(this);

View File

@ -0,0 +1,57 @@
// Generated by CoffeeScript 1.9.1
(function() {
var Submodule;
module.exports = Submodule = (function() {
function Submodule(repo1, options) {
this.repo = repo1;
this.id = options.id, this.name = options.name, this.mode = options.mode;
}
Submodule.prototype.url = function(treeish, callback) {
var ref;
if (!callback) {
ref = [callback, treeish], treeish = ref[0], callback = ref[1];
}
if (treeish == null) {
treeish = "master";
}
return Submodule.config(this.repo, treeish, (function(_this) {
return function(err, config) {
return callback(err, config != null ? config[_this.name].url : void 0);
};
})(this));
};
Submodule.config = function(repo, treeish, callback) {
return repo.tree(treeish).find(".gitmodules", function(err, blob) {
if (err) {
return callback(err);
}
return blob.data(function(err, data) {
var conf, current, line, lines, match;
if (err) {
return callback(err);
}
conf = {};
lines = data.split("\n");
current = null;
while (lines.length) {
line = lines.shift();
if (match = /^\[submodule "(.+)"\]$/.exec(line)) {
current = match[1];
conf[current] = {};
} else if (match = /^\s+([^\s]+)\s+[=]\s+(.+)$/.exec(line)) {
conf[current][match[1]] = match[2];
}
}
return callback(null, conf);
});
});
};
return Submodule;
})();
}).call(this);

View File

@ -0,0 +1,87 @@
// Generated by CoffeeScript 1.9.1
(function() {
var Actor, Commit, Ref, Tag, _,
extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; },
hasProp = {}.hasOwnProperty;
_ = require('underscore');
Commit = require('./commit');
Actor = require('./actor');
Ref = require('./ref').Ref;
module.exports = Tag = (function(superClass) {
extend(Tag, superClass);
function Tag() {
return Tag.__super__.constructor.apply(this, arguments);
}
Tag.find_all = function(repo, callback) {
return Ref.find_all(repo, "tag", Tag, callback);
};
Tag.prototype.message = function(callback) {
return this.lazy(function(err, data) {
if (err) {
return callback(err);
}
return callback(null, data.message);
});
};
Tag.prototype.tagger = function(callback) {
return this.lazy(function(err, data) {
if (err) {
return callback(err);
}
return callback(null, data.tagger);
});
};
Tag.prototype.tag_date = function(callback) {
return this.lazy(function(err, data) {
if (err) {
return callback(err);
}
return callback(null, data.tag_date);
});
};
Tag.prototype.lazy = function(callback) {
if (this._lazy_data) {
return callback(null, this._lazy_data);
}
return this.repo.git("cat-file", {}, ["tag", this.name], (function(_this) {
return function(err, stdout, stderr) {
var author, author_line, data, epoch, line, lines, m, message, ref;
if (err) {
return callback(err);
}
lines = stdout.split("\n");
data = {};
lines.shift();
lines.shift();
lines.shift();
author_line = lines.shift();
ref = /^.+? (.*) (\d+) .*$/.exec(author_line), m = ref[0], author = ref[1], epoch = ref[2];
data.tagger = Actor.from_string(author);
data.tag_date = new Date(epoch);
lines.shift();
message = [];
while (line = lines.shift()) {
message.push(line);
}
data.message = message.join("\n");
return callback(null, (_this._lazy_data = data));
};
})(this));
};
return Tag;
})(Ref);
}).call(this);

View File

@ -0,0 +1,140 @@
// Generated by CoffeeScript 1.9.1
(function() {
var Blob, Submodule, Tree, _;
_ = require('underscore');
Blob = require('./blob');
Submodule = require('./submodule');
module.exports = Tree = (function() {
function Tree(repo, options) {
this.repo = repo;
if (_.isString(options)) {
this.id = options;
} else {
this.id = options.id, this.name = options.name, this.mode = options.mode;
}
}
Tree.prototype.contents = function(callback) {
if (this._contents) {
return callback(null, this._contents);
}
return this.repo.git("ls-tree", {}, this.id, (function(_this) {
return function(err, stdout, stderr) {
var i, len, line, ref;
if (err) {
return callback(err);
}
_this._contents = [];
ref = stdout.split("\n");
for (i = 0, len = ref.length; i < len; i++) {
line = ref[i];
if (line) {
_this._contents.push(_this.content_from_string(line));
}
}
return callback(null, _this._contents);
};
})(this), 'binary');
};
Tree.prototype.blobs = function(callback) {
return this.contents(function(err, children) {
if (err) {
return callback(err);
}
return callback(null, _.filter(children, function(child) {
return child instanceof Blob;
}));
});
};
Tree.prototype.trees = function(callback) {
return this.contents(function(err, children) {
if (err) {
return callback(err);
}
return callback(null, _.filter(children, function(child) {
return child instanceof Tree;
}));
});
};
Tree.prototype.find = function(file, callback) {
var dir, ref, rest;
if (/\//.test(file)) {
ref = file.split("/", 2), dir = ref[0], rest = ref[1];
return this.trees((function(_this) {
return function(err, _trees) {
var i, len, tree;
for (i = 0, len = _trees.length; i < len; i++) {
tree = _trees[i];
if (tree.name === dir) {
return tree.find(rest, callback);
}
}
return callback(null, null);
};
})(this));
} else {
return this.contents(function(err, children) {
var child, i, len;
if (err) {
return callback(err);
}
for (i = 0, len = children.length; i < len; i++) {
child = children[i];
if (child.name === file) {
return callback(null, child);
}
}
return callback(null, null);
});
}
};
Tree.prototype.content_from_string = function(line) {
var id, mode, name, ref, type;
ref = line.split(/[\t ]+/, 4), mode = ref[0], type = ref[1], id = ref[2], name = ref[3];
switch (type) {
case "tree":
return new Tree(this.repo, {
id: id,
name: name,
mode: mode
});
case "blob":
return new Blob(this.repo, {
id: id,
name: name,
mode: mode
});
case "link":
return new Blob(this.repo, {
id: id,
name: name,
mode: mode
});
case "commit":
return new Submodule(this.repo, {
id: id,
name: name,
mode: mode
});
default:
throw new Error("Invalid object type: '" + type + "'");
}
};
Tree.prototype.toString = function() {
return "#<Tree '" + this.id + "'>";
};
return Tree;
})();
}).call(this);

View File

@ -0,0 +1,23 @@
Copyright (c) 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative
Reporters & Editors
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.

View File

@ -0,0 +1,22 @@
__
/\ \ __
__ __ ___ \_\ \ __ _ __ ____ ___ ___ _ __ __ /\_\ ____
/\ \/\ \ /' _ `\ /'_ \ /'__`\/\ __\/ ,__\ / ___\ / __`\/\ __\/'__`\ \/\ \ /',__\
\ \ \_\ \/\ \/\ \/\ \ \ \/\ __/\ \ \//\__, `\/\ \__//\ \ \ \ \ \//\ __/ __ \ \ \/\__, `\
\ \____/\ \_\ \_\ \___,_\ \____\\ \_\\/\____/\ \____\ \____/\ \_\\ \____\/\_\ _\ \ \/\____/
\/___/ \/_/\/_/\/__,_ /\/____/ \/_/ \/___/ \/____/\/___/ \/_/ \/____/\/_//\ \_\ \/___/
\ \____/
\/___/
Underscore.js is a utility-belt library for JavaScript that provides
support for the usual functional suspects (each, map, reduce, filter...)
without extending any core JavaScript objects.
For Docs, License, Tests, and pre-packed downloads, see:
http://underscorejs.org
Underscore is an open-sourced component of DocumentCloud:
https://github.com/documentcloud
Many thanks to our contributors:
https://github.com/jashkenas/underscore/contributors

View File

@ -0,0 +1,69 @@
{
"name": "underscore",
"description": "JavaScript's functional programming helper library.",
"homepage": "http://underscorejs.org",
"keywords": [
"util",
"functional",
"server",
"client",
"browser"
],
"author": {
"name": "Jeremy Ashkenas",
"email": "jeremy@documentcloud.org"
},
"repository": {
"type": "git",
"url": "git://github.com/jashkenas/underscore.git"
},
"main": "underscore.js",
"version": "1.8.3",
"devDependencies": {
"docco": "*",
"eslint": "0.6.x",
"karma": "~0.12.31",
"karma-qunit": "~0.1.4",
"qunit-cli": "~0.2.0",
"uglify-js": "2.4.x"
},
"scripts": {
"test": "npm run test-node && npm run lint",
"lint": "eslint underscore.js test/*.js",
"test-node": "qunit-cli test/*.js",
"test-browser": "npm i karma-phantomjs-launcher && ./node_modules/karma/bin/karma start",
"build": "uglifyjs underscore.js -c \"evaluate=false\" --comments \"/ .*/\" -m --source-map underscore-min.map -o underscore-min.js",
"doc": "docco underscore.js"
},
"license": "MIT",
"files": [
"underscore.js",
"underscore-min.js",
"underscore-min.map",
"LICENSE"
],
"gitHead": "e4743ab712b8ab42ad4ccb48b155034d02394e4d",
"bugs": {
"url": "https://github.com/jashkenas/underscore/issues"
},
"_id": "underscore@1.8.3",
"_shasum": "4f3fb53b106e6097fcf9cb4109f2a5e9bdfa5022",
"_from": "underscore@>=1.0.0 <2.0.0",
"_npmVersion": "1.4.28",
"_npmUser": {
"name": "jashkenas",
"email": "jashkenas@gmail.com"
},
"maintainers": [
{
"name": "jashkenas",
"email": "jashkenas@gmail.com"
}
],
"dist": {
"shasum": "4f3fb53b106e6097fcf9cb4109f2a5e9bdfa5022",
"tarball": "http://registry.npmjs.org/underscore/-/underscore-1.8.3.tgz"
},
"directories": {},
"_resolved": "https://registry.npmjs.org/underscore/-/underscore-1.8.3.tgz"
}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,66 @@
{
"name": "gift",
"version": "0.6.1",
"description": "a Git wrapper library",
"keywords": [
"git",
"cli",
"wrapper"
],
"homepage": "https://github.com/notatestuser/gift",
"bugs": {
"url": "https://github.com/notatestuser/gift/issues"
},
"author": {
"name": "sentientwaffle",
"url": "http://sentientwaffle.github.com/"
},
"license": "MIT",
"main": "./lib/index",
"scripts": {
"test": "mocha --compilers coffee:\"./node_modules/coffee-script/lib/coffee-script/register\"",
"prepublish": "coffee -o lib -c src"
},
"repository": {
"type": "git",
"url": "https://github.com/notatestuser/gift.git"
},
"dependencies": {
"underscore": "1.x.x"
},
"devDependencies": {
"coffee-script": "^1.7.1",
"fs-extra": "^0.9.1",
"mocha": "^1.20.1",
"should": "~4.0.4",
"sinon": "^1.7.3"
},
"engines": {
"node": "> 0.4.1"
},
"gitHead": "707a54c6782402a964b07f029b38a55666f68e02",
"_id": "gift@0.6.1",
"_shasum": "c1698e6b6887164ed978a01095423cff65b8e79f",
"_from": "gift@>=0.6.1 <0.7.0",
"_npmVersion": "1.4.21",
"_npmUser": {
"name": "notatestuser",
"email": "notatestuser@gmail.com"
},
"maintainers": [
{
"name": "sentientwaffle",
"email": "sentientwaffle@gmail.com"
},
{
"name": "notatestuser",
"email": "notatestuser@gmail.com"
}
],
"dist": {
"shasum": "c1698e6b6887164ed978a01095423cff65b8e79f",
"tarball": "http://registry.npmjs.org/gift/-/gift-0.6.1.tgz"
},
"directories": {},
"_resolved": "https://registry.npmjs.org/gift/-/gift-0.6.1.tgz"
}

View File

@ -0,0 +1,20 @@
Copyright (c) 2014 Fractal <contact@wearefractal.com>
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.

View File

@ -0,0 +1,146 @@
# gulp-util [![NPM version][npm-image]][npm-url] [![Build Status][travis-image]][travis-url] [![Coveralls Status][coveralls-image]][coveralls-url] [![Dependency Status][depstat-image]][depstat-url]
## Information
<table>
<tr>
<td>Package</td><td>gulp-util</td>
</tr>
<tr>
<td>Description</td>
<td>Utility functions for gulp plugins</td>
</tr>
<tr>
<td>Node Version</td>
<td>>= 0.10</td>
</tr>
</table>
## Usage
```javascript
var gutil = require('gulp-util');
gutil.log('stuff happened', 'Really it did', gutil.colors.magenta('123'));
gutil.beep();
gutil.replaceExtension('file.coffee', '.js'); // file.js
var opt = {
name: 'todd',
file: someGulpFile
};
gutil.template('test <%= name %> <%= file.path %>', opt) // test todd /js/hi.js
```
### log(msg...)
Logs stuff. Already prefixed with [gulp] and all that. If you pass in multiple arguments it will join them by a space.
The default gulp coloring using gutil.colors.<color>:
```
values (files, module names, etc.) = cyan
numbers (times, counts, etc) = magenta
```
### colors
Is an instance of [chalk](https://github.com/sindresorhus/chalk).
### replaceExtension(path, newExtension)
Replaces a file extension in a path. Returns the new path.
### isStream(obj)
Returns true or false if an object is a stream.
### isBuffer(obj)
Returns true or false if an object is a Buffer.
### template(string[, data])
This is a lodash.template function wrapper. You must pass in a valid gulp file object so it is available to the user or it will error. You can not configure any of the delimiters. Look at the [lodash docs](http://lodash.com/docs#template) for more info.
## new File(obj)
This is just [vinyl](https://github.com/wearefractal/vinyl)
```javascript
var file = new gutil.File({
base: path.join(__dirname, './fixtures/'),
cwd: __dirname,
path: path.join(__dirname, './fixtures/test.coffee')
});
```
## noop()
Returns a stream that does nothing but pass data straight through.
```javascript
// gulp should be called like this :
// $ gulp --type production
gulp.task('scripts', function() {
gulp.src('src/**/*.js')
.pipe(concat('script.js'))
.pipe(gutil.env.type === 'production' ? uglify() : gutil.noop())
.pipe(gulp.dest('dist/'));
});
```
## buffer(cb)
This is similar to es.wait but instead of buffering text into one string it buffers anything into an array (so very useful for file objects).
Returns a stream that can be piped to.
The stream will emit one data event after the stream piped to it has ended. The data will be the same array passed to the callback.
Callback is optional and receives two arguments: error and data
```javascript
gulp.src('stuff/*.js')
.pipe(gutil.buffer(function(err, files) {
}));
```
## new PluginError(pluginName, message[, options])
- pluginName should be the module name of your plugin
- message can be a string or an existing error
- By default the stack will not be shown. Set `options.showStack` to true if you think the stack is important for your error.
- If you pass an error in as the message the stack will be pulled from that, otherwise one will be created.
- Note that if you pass in a custom stack string you need to include the message along with that.
- Error properties will be included in `err.toString()`. Can be omitted by including `{showProperties: false}` in the options.
These are all acceptable forms of instantiation:
```javascript
var err = new gutil.PluginError('test', {
message: 'something broke'
});
var err = new gutil.PluginError({
plugin: 'test',
message: 'something broke'
});
var err = new gutil.PluginError('test', 'something broke');
var err = new gutil.PluginError('test', 'something broke', {showStack: true});
var existingError = new Error('OMG');
var err = new gutil.PluginError('test', existingError, {showStack: true});
```
[npm-url]: https://www.npmjs.com/package/gulp-util
[npm-image]: https://badge.fury.io/js/gulp-util.svg
[travis-url]: https://travis-ci.org/gulpjs/gulp-util
[travis-image]: https://img.shields.io/travis/gulpjs/gulp-util.svg?branch=master
[coveralls-url]: https://coveralls.io/r/gulpjs/gulp-util
[coveralls-image]: https://img.shields.io/coveralls/gulpjs/gulp-util.svg
[depstat-url]: https://david-dm.org/gulpjs/gulp-util
[depstat-image]: https://david-dm.org/gulpjs/gulp-util.svg

View File

@ -0,0 +1,18 @@
module.exports = {
File: require('vinyl'),
replaceExtension: require('replace-ext'),
colors: require('chalk'),
date: require('dateformat'),
log: require('./lib/log'),
template: require('./lib/template'),
env: require('./lib/env'),
beep: require('beeper'),
noop: require('./lib/noop'),
isStream: require('./lib/isStream'),
isBuffer: require('./lib/isBuffer'),
isNull: require('./lib/isNull'),
linefeed: '\n',
combine: require('./lib/combine'),
buffer: require('./lib/buffer'),
PluginError: require('./lib/PluginError')
};

View File

@ -0,0 +1,130 @@
var util = require('util');
var arrayDiffer = require('array-differ');
var arrayUniq = require('array-uniq');
var chalk = require('chalk');
var objectAssign = require('object-assign');
var nonEnumberableProperties = ['name', 'message', 'stack'];
var propertiesNotToDisplay = nonEnumberableProperties.concat(['plugin', 'showStack', 'showProperties', '__safety', '_stack']);
// wow what a clusterfuck
var parseOptions = function(plugin, message, opt) {
opt = opt || {};
if (typeof plugin === 'object') {
opt = plugin;
} else {
if (message instanceof Error) {
opt.error = message;
} else if (typeof message === 'object') {
opt = message;
} else {
opt.message = message;
}
opt.plugin = plugin;
}
return objectAssign({
showStack: false,
showProperties: true
}, opt);
};
function PluginError(plugin, message, opt) {
if (!(this instanceof PluginError)) throw new Error('Call PluginError using new');
Error.call(this);
var options = parseOptions(plugin, message, opt);
var self = this;
// if options has an error, grab details from it
if (options.error) {
// These properties are not enumerable, so we have to add them explicitly.
arrayUniq(Object.keys(options.error).concat(nonEnumberableProperties))
.forEach(function(prop) {
self[prop] = options.error[prop];
});
}
var properties = ['name', 'message', 'fileName', 'lineNumber', 'stack', 'showStack', 'showProperties', 'plugin'];
// options object can override
properties.forEach(function(prop) {
if (prop in options) this[prop] = options[prop];
}, this);
// defaults
if (!this.name) this.name = 'Error';
if (!this.stack) {
// Error.captureStackTrace appends a stack property which relies on the toString method of the object it is applied to.
// Since we are using our own toString method which controls when to display the stack trace if we don't go through this
// safety object, then we'll get stack overflow problems.
var safety = {
toString: function() {
return this._messageWithDetails() + '\nStack:';
}.bind(this)
};
Error.captureStackTrace(safety, arguments.callee || this.constructor);
this.__safety = safety;
}
if (!this.plugin) throw new Error('Missing plugin name');
if (!this.message) throw new Error('Missing error message');
}
util.inherits(PluginError, Error);
PluginError.prototype._messageWithDetails = function() {
var messageWithDetails = 'Message:\n ' + this.message;
var details = this._messageDetails();
if (details !== '') {
messageWithDetails += '\n' + details;
}
return messageWithDetails;
};
PluginError.prototype._messageDetails = function() {
if (!this.showProperties) {
return '';
}
var properties = arrayDiffer(Object.keys(this), propertiesNotToDisplay);
if (properties.length === 0) {
return '';
}
var self = this;
properties = properties.map(function stringifyProperty(prop) {
return ' ' + prop + ': ' + self[prop];
});
return 'Details:\n' + properties.join('\n');
};
PluginError.prototype.toString = function () {
var sig = chalk.red(this.name) + ' in plugin \'' + chalk.cyan(this.plugin) + '\'';
var detailsWithStack = function(stack) {
return this._messageWithDetails() + '\nStack:\n' + stack;
}.bind(this);
var msg;
if (this.showStack) {
if (this.__safety) { // There is no wrapped error, use the stack captured in the PluginError ctor
msg = this.__safety.stack;
} else if (this._stack) {
msg = detailsWithStack(this._stack);
} else { // Stack from wrapped error
msg = detailsWithStack(this.stack);
}
} else {
msg = this._messageWithDetails();
}
return sig + '\n' + msg;
};
module.exports = PluginError;

View File

@ -0,0 +1,15 @@
var through = require('through2');
module.exports = function(fn) {
var buf = [];
var end = function(cb) {
this.push(buf);
cb();
if(fn) fn(null, buf);
};
var push = function(data, enc, cb) {
buf.push(data);
cb();
};
return through.obj(push, end);
};

View File

@ -0,0 +1,11 @@
var pipeline = require('multipipe');
module.exports = function(){
var args = arguments;
if (args.length === 1 && Array.isArray(args[0])) {
args = args[0];
}
return function(){
return pipeline.apply(pipeline, args);
};
};

Some files were not shown because too many files have changed in this diff Show More