commit bce428376d7831c8bac9000df35ecfcf72baba95 Author: Mahdi Dibaiee Date: Sun Mar 29 10:44:53 2015 +0430 initial commit diff --git a/.DS_Store b/.DS_Store new file mode 100644 index 0000000..892f2ce Binary files /dev/null and b/.DS_Store differ diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..badbc02 --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +_site +.sass-cache diff --git a/_config.yml b/_config.yml new file mode 100644 index 0000000..7c90f5b --- /dev/null +++ b/_config.yml @@ -0,0 +1,11 @@ +# Site settings +title: Mahdi Dibaiee +email: mdibaiee@aol.com +description: Mahdi Dibaiee's personal blog on programming +baseurl: "/portfolio" # the subpath of your site, e.g. /blog/ +url: "http://dibaiee.ir" # the base hostname & protocol for your site +twitter_username: mdibaiee +github_username: mdibaiee + +# Build settings +markdown: kramdown diff --git a/_includes/caption.html b/_includes/caption.html new file mode 100644 index 0000000..0f3abaf --- /dev/null +++ b/_includes/caption.html @@ -0,0 +1 @@ +{{ include.text }} \ No newline at end of file diff --git a/_includes/footer.html b/_includes/footer.html new file mode 100644 index 0000000..be3976f --- /dev/null +++ b/_includes/footer.html @@ -0,0 +1,55 @@ + diff --git a/_includes/head.html b/_includes/head.html new file mode 100644 index 0000000..f42797b --- /dev/null +++ b/_includes/head.html @@ -0,0 +1,15 @@ + + + + + + {% if page.title %}{{ page.title }}{% else %}{{ site.title }}{% endif %} + + + + + + + + + diff --git a/_includes/header.html b/_includes/header.html new file mode 100644 index 0000000..cc17c3d --- /dev/null +++ b/_includes/header.html @@ -0,0 +1,261 @@ + diff --git a/_layouts/default.html b/_layouts/default.html new file mode 100644 index 0000000..b2dc534 --- /dev/null +++ b/_layouts/default.html @@ -0,0 +1,20 @@ + + + + {% include head.html %} + + + + {% include header.html %} + +
+
+ {{ content }} +
+
+ + + + + + diff --git a/_layouts/page.html b/_layouts/page.html new file mode 100644 index 0000000..c45df04 --- /dev/null +++ b/_layouts/page.html @@ -0,0 +1,14 @@ +--- +layout: default +--- +
+ +
+

{{ page.title }}

+
+ +
+ {{ content }} +
+ +
diff --git a/_layouts/post.html b/_layouts/post.html new file mode 100644 index 0000000..c6f5a01 --- /dev/null +++ b/_layouts/post.html @@ -0,0 +1,25 @@ +--- +layout: default +--- +
+ +
+

{{ page.title }}

+ +
+ +
+ {{ content }} +
+ +
+ +
diff --git a/_posts/2015-03-09-beginning.markdown b/_posts/2015-03-09-beginning.markdown new file mode 100644 index 0000000..ad8f120 --- /dev/null +++ b/_posts/2015-03-09-beginning.markdown @@ -0,0 +1,49 @@ +--- +layout: post +title: "Let's Begin" +date: 2015-03-09 17:13:46 +permalink: beginning +categories: self +--- + +So, I've decided to write about what I do and what I love. + +It's possible that you find anything here, so don't be surprised, but most of it +is going to be about my programming journey, what I learn, what I do, and my opinions. + +I like Medium, but I want a place in which I dictate, so here's my personal blog. + + +{% highlight javascript linenos %} +const SECOND = 1000; +let style = document.querySelector('style'); + +setInterval(() => { + const now = Date.now(), + birth = new Date(2015, 2, 9).getTime(), + color = `#(now - birth).toString(16).slice(0, 6)`, + + style.textContent = `#mahdi path { + stroke: ${color} !important; + }`; +}, SECOND); +{% endhighlight %} + + + + + diff --git a/_posts/2015-03-28-css-filters.md b/_posts/2015-03-28-css-filters.md new file mode 100644 index 0000000..1f7eef6 --- /dev/null +++ b/_posts/2015-03-28-css-filters.md @@ -0,0 +1,143 @@ +--- +layout: post +title: "CSS Filters are awesome!" +date: 2015-03-28 17:13:46 +permalink: css-filters +categories: css +--- + +I've been working on the [CSS Filter Editor widget](https://bugzilla.mozilla.org/show_bug.cgi?id=1055181) in Firefox Developer Tools in the past few weeks, it should land soon. Thanks to [Patrick Brosset](https://medium.com/@patrickbrosset) for mentoring me and [Tim Nguyen](https://github.com/nt1m) for his great contributions. + +Here is an [online version](http://mdibaiee.github.io/CSS-Filter-Tooltip/) to use as a playground (The component used in Firefox is a more complete version of this), you can use this throughout the article to test things. It doesn't seem to work in Chrome, I can't figure out why (no error in console), use Firefox for now. Alternatively you can use [David Walsh's demo](http://davidwalsh.name/demo/css-filters.php), although it doesn't have as much flexibility. + +CSS Filters are supported by most modern browsers ([Can I Use CSS Filters](http://caniuse.com/#feat=css-filters)), if your browser doesn't support this, please change your browser (I recommend [Firefox](https://www.mozilla.org/en-US/firefox/new/)). + +I don't like long-bla-bla-articles, so let's get to it. + +#Introduction + +CSS Filters introduce a few useful effects and some image adjusting functions, namely blur, drop-shadow, contrast, brightness, [and a few others](https://developer.mozilla.org/en-US/docs/Web/CSS/filter) which can be really useful if used properly. + +A simple demo showing blur, contrast and brightness combined (hover over image): + + + +I group filters by the type of value they take, let's explain them briefly: + +##Length + These filters accept a length value (px, em, cm, [etc](http://www.w3.org/Style/Examples/007/units)). blur is the only member of this family. + +##Percentage + These filters accept percentage values, but if you omit the percentage sign, the value is multiplied by 100, e.g. `contrast(2)` is another way of writing `contrast(200%)`. Negative values have the same effect as zero. + + Most filters explain themselves, I'm not going to repeat \`Adjusts ${x} level\` like a parrot. + + * brightness + * contrast + * grayscale + * invert + * opacity + * saturate + * sepia + +###invert + I first understood how cool this filter can be after I saw Tim Nguyen using this in theme switching. Yeah you can't invert everything and "Yay, I have a new theme", but you can use invert on some elements and it works flawlessly, believe me. + + + +###opacity + You might wonder why do we have this function, as we already have an opacity property in CSS, that's because the opacity property is not hardware accelerated, but the filter property is hardware accelerated in most browsers, which includes this function. + +##Angle + hue-rotate is the only function to accept an angle value (degree / radian). + +###hue-rotate + If you're familiar with [Hue](https://en.wikipedia.org/wiki/Hue) you probably know that it's measured by angles. The hue-rotate rotates the hue circle of an image relative to it's current hue value (360 and 0 have the same results). + + +##Special + These filter's don't fit in any of the groups above, they have special/mixed values. + +###drop-shadow + The drop-shadow filter accepts a *shadow-list*, four length values, and one color. box-shadow and text-shadow also accept shadow lists. + + You're probably familiar with shadow lists already: `drop-shadow(x y radius spread color)`. Unfortunaly spread doesn't work in either Chrome or Firefox as of this writing — It is treated as an error. + + drop-shadow is pretty cool, as it doensn't have the limitations of box-shadow and text-shadow. box-shadow applies a shadow to the outer shape, but drop-shadow applies a shadow to elements independant to their shape, they might be triangles, PNG's with transparent background or just anything. + + drop-shadow clones the element's image, moves it to the offset defined, applies blur and changes it's color, putting it under the original element. Couldn't do it better: + + ![drop-shadow explained](/portfolio/img/dropshadow.gif) + + Here is an example, a PNG image with transparent background and a CSS triangle made using the border hack: + + + +###url + With the url function we have the power of CSS and SVG Filters in one place. You can reference an SVG element by linking to it with a hash of the filter element's ID: + +{% highlight css %} +filter: url(/example.svg#filter) +{% endhighlight %} + + If you want to know more about SVG Filters, I recommend [MDN's tutorial on SVG Filters](https://developer.mozilla.org/en-US/docs/Web/SVG/Tutorial/Filter_effects). + +###Custom + Now those filters are pretty cool, but what if I told you this is [going to be] done with CSS? + + ![Map Folding with Custom CSS Filters](/portfolio/img/map.jpg) + +{% include caption.html text='Source: http://www.adobe.com/devnet/archive/html5/articles/css-shaders.html' %} + + Custom Filters allows usage of vertex and fragment shaders which run directly in the GPU. Custom filters' specs is subject to change, so there's no implementation yet. For more info on this topic follow the links below: + + * [Getting started with CSS custom filters](http://alteredqualia.com/css-shaders/article/#shaders) + * [Introducing CSS shaders: Cinematic effects for the web](http://www.adobe.com/devnet/archive/html5/articles/css-shaders.html) + * [CSS shaders specifications](http://dev.w3.org/fxtf/custom/) + +#Gotchas + +You now have a basic understanding of filters, good. Here are a few gotchas you'd better know. + +##Order matters +The order in which filters are applied matters. Take this example: + +{% highlight css %} +filter: blur(10px) contrast(2); +{% endhighlight %} + +Hey, browser, please blur the element, then double the contrast of the blurred element. (blurred parts have their contrast affected) + +{% highlight css %} +filter: contrast(2) blur(10px); +{% endhighlight %} + +Hey browser, please double the contrast of my element, then blur it out. (high contrast image is blurred normally) + +Here is the actual comparison: + + +##Inheritance + +Okay, you now know the order of filters matters, the filter property is not actually *inherited*, but when you apply a filter on a parent element, of course it's children are affected too, but what if the children have their own css filters? Ah-ha! CSS properties are applied bottom-up, which means childrens' filters are applied first. + + + +##Implementation + +I said using the url function we have "the power of CSS and SVG filters in one place", but the CSS filters are actually implemented using SVG filters! You know, the functions are actually referencing to an svg generated in the browser. Here is the list of [CSS Filter equivalents](http://www.w3.org/TR/filter-effects/#ShorthandEquivalents). + +----- + +That's it, you can subscribe to my [RSS]({{ "/feed.xml" | prepend: site.baseurl | prepend: site.url }}) or follow me on [Twitter](https://twitter.com/{{ site.twitter_username }}) to get more articles like this. + + \ No newline at end of file diff --git a/_sass/_base.scss b/_sass/_base.scss new file mode 100644 index 0000000..0894b86 --- /dev/null +++ b/_sass/_base.scss @@ -0,0 +1,227 @@ +/** + * 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 + */ +body { + font-family: $base-font-family; + font-size: $base-font-size; + line-height: $base-line-height; + font-weight: 300; + color: $text-color; + background-color: $background-color; + -webkit-text-size-adjust: 100%; +} + +* { + box-sizing: border-box; +} + + + +/** + * 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: 300; +} + + + +/** + * Links + */ +a { + color: $brand-color; + text-decoration: none; + + &:visited { + color: darken($brand-color, 15%); + } + + &:hover { + color: $text-color; + // text-decoration: underline; + border-bottom: 1px solid $text-color; + } +} + + + +/** + * 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: scroll; + + > code { + border: 0; + padding-right: 0; + padding-left: 0; + } +} + + + +/** + * Wrapper + */ +.wrapper { + max-width: -webkit-calc(#{$content-width} - (#{$spacing-unit} * 2)); + max-width: calc(#{$content-width} - (#{$spacing-unit} * 2)); + margin-right: auto; + margin-left: auto; + padding-right: $spacing-unit; + padding-left: $spacing-unit; + @extend %clearfix; + + @include media-query($on-laptop) { + max-width: -webkit-calc(#{$content-width} - (#{$spacing-unit})); + max-width: calc(#{$content-width} - (#{$spacing-unit})); + padding-right: $spacing-unit / 2; + padding-left: $spacing-unit / 2; + } +} + + + +/** + * Clearfix + */ +%clearfix { + + &:after { + content: ""; + display: table; + clear: both; + } +} + + + +/** + * Icons + */ +.icon { + + > svg { + display: inline-block; + width: 16px; + height: 16px; + vertical-align: middle; + + path { + fill: $grey-color; + } + } +} + +@font-face { + font-family: 'Damion'; + src: url(fonts/Damion_gdi.woff); +} + +@font-face { + font-family: 'Ubuntu'; + src: url(fonts/Ubuntu_gdi.woff); +} +@font-face { + font-family: 'Ubuntu Light'; + src: url(fonts/Ubuntu-Light_gdi.woff); +} +@font-face { + font-family: 'Ubuntu Mono'; + src: url(fonts/UbuntuMono-Regular_gdi.woff); +} \ No newline at end of file diff --git a/_sass/_layout.scss b/_sass/_layout.scss new file mode 100644 index 0000000..678e85e --- /dev/null +++ b/_sass/_layout.scss @@ -0,0 +1,94 @@ +body { + background: #FFF7EC; + height: auto; + padding-bottom: 5rem; +} + +header { + width: 100%; + text-align: center; + padding-top: $spacing-unit; + + img { + // border-radius: 50%; + margin: $spacing-unit auto; + // border: 1px solid #F5DFC3; + } + h1 { + font-size: 4rem; + font-family: 'Damion'; + } + h1 a, & > a { + text-decoration: none; + color: $text-color !important; + + &:hover { + border: none; + } + } + + nav { + margin-top: 1rem; + margin-bottom: 3rem; + } + nav a { + margin: 0 1rem; + } + + a:visited { + color: $brand-color; + } +} + +.page-heading { + text-align: center; + font-style: italic; + margin-bottom: 3rem; +} + +.post-list, .post-header { + list-style: none; + margin-left: 0; + margin-bottom: 5rem; + + h2, h1 { + text-align: center; + } + .post-meta { + font-size: $small-font-size; + display: block; + text-align: center; + margin-bottom: 2rem; + } +} + +article p img { + margin: 2rem auto; + display: block; +} + +.post-list h2 { + font-size: 1.5rem; +} + +.post article h2 { + font-size: 1.3rem; +} + +article .image-caption { + display: block; + text-align: center; + font-size: 10pt; + color: $grey-color; + margin-top: -1.5rem; +} + +.rss-subscribe { + text-align: center; +} + +hr { + border: none; + border-top: 1px solid lighten($grey-color, 20%); + margin: 1.5rem 0; +} \ No newline at end of file diff --git a/_sass/_syntax-highlighting.scss b/_sass/_syntax-highlighting.scss new file mode 100644 index 0000000..c165e65 --- /dev/null +++ b/_sass/_syntax-highlighting.scss @@ -0,0 +1,83 @@ +/* Tomorrow Light */ + +/* For use with Jekyll and Pygments */ + +/* ----------------------------------------------------------*/ + +pre, code { + font-family: 'Ubuntu Mono'; + font-size: 11pt; + overflow-x: auto; +} + +code {background: #fff; padding: 2px 4px; border-radius: 3px; border: 1px solid #ccc;}; + +.highlight pre {padding: 8px 10px;} + +.highlight pre, +.highlight code, +.highlight .hll { background-color: #fff; border-radius: 3px; } +.highlight .c { color: #8e908c } /* Comment */ +.highlight .err { color: #c82829 } /* Error */ +.highlight .k { color: #8959a8 } /* Keyword */ +.highlight .l { color: #f5871f } /* Literal */ +.highlight .n { color: #4d4d4c } /* Name */ +.highlight .o { color: #3e999f } /* Operator */ +.highlight .p { color: #4d4d4c } /* Punctuation */ +.highlight .cm { color: #8e908c } /* Comment.Multiline */ +.highlight .cp { color: #8e908c } /* Comment.Preproc */ +.highlight .c1 { color: #8e908c } /* Comment.Single */ +.highlight .cs { color: #8e908c } /* Comment.Special */ +.highlight .gd { color: #c82829 } /* Generic.Deleted */ +.highlight .ge { font-style: italic } /* Generic.Emph */ +.highlight .gh { color: #4d4d4c; font-weight: bold } /* Generic.Heading */ +.highlight .gi { color: #718c00 } /* Generic.Inserted */ +.highlight .gp { color: #8e908c; font-weight: bold } /* Generic.Prompt */ +.highlight .gs { font-weight: bold } /* Generic.Strong */ +.highlight .gu { color: #3e999f; font-weight: bold } /* Generic.Subheading */ +.highlight .kc { color: #8959a8 } /* Keyword.Constant */ +.highlight .kd { color: #8959a8 } /* Keyword.Declaration */ +.highlight .kn { color: #3e999f } /* Keyword.Namespace */ +.highlight .kp { color: #8959a8 } /* Keyword.Pseudo */ +.highlight .kr { color: #8959a8 } /* Keyword.Reserved */ +.highlight .kt { color: #eab700 } /* Keyword.Type */ +.highlight .ld { color: #718c00 } /* Literal.Date */ +.highlight .m { color: #f5871f } /* Literal.Number */ +.highlight .s { color: #718c00 } /* Literal.String */ +.highlight .na { color: #4271ae } /* Name.Attribute */ +.highlight .nb { color: #4d4d4c } /* Name.Builtin */ +.highlight .nc { color: #eab700 } /* Name.Class */ +.highlight .no { color: #c82829 } /* Name.Constant */ +.highlight .nd { color: #3e999f } /* Name.Decorator */ +.highlight .ni { color: #4d4d4c } /* Name.Entity */ +.highlight .ne { color: #c82829 } /* Name.Exception */ +.highlight .nf { color: #4271ae } /* Name.Function */ +.highlight .nl { color: #4d4d4c } /* Name.Label */ +.highlight .nn { color: #eab700 } /* Name.Namespace */ +.highlight .nx { color: #4271ae } /* Name.Other */ +.highlight .py { color: #4d4d4c } /* Name.Property */ +.highlight .nt { color: #3e999f } /* Name.Tag */ +.highlight .nv { color: #c82829 } /* Name.Variable */ +.highlight .ow { color: #3e999f } /* Operator.Word */ +.highlight .w { color: #4d4d4c } /* Text.Whitespace */ +.highlight .mf { color: #f5871f } /* Literal.Number.Float */ +.highlight .mh { color: #f5871f } /* Literal.Number.Hex */ +.highlight .mi { color: #f5871f } /* Literal.Number.Integer */ +.highlight .mo { color: #f5871f } /* Literal.Number.Oct */ +.highlight .sb { color: #718c00 } /* Literal.String.Backtick */ +.highlight .sc { color: #4d4d4c } /* Literal.String.Char */ +.highlight .sd { color: #8e908c } /* Literal.String.Doc */ +.highlight .s2 { color: #718c00 } /* Literal.String.Double */ +.highlight .se { color: #f5871f } /* Literal.String.Escape */ +.highlight .sh { color: #718c00 } /* Literal.String.Heredoc */ +.highlight .si { color: #f5871f } /* Literal.String.Interpol */ +.highlight .sx { color: #718c00 } /* Literal.String.Other */ +.highlight .sr { color: #718c00 } /* Literal.String.Regex */ +.highlight .s1 { color: #718c00 } /* Literal.String.Single */ +.highlight .ss { color: #718c00 } /* Literal.String.Symbol */ +.highlight .bp { color: #4d4d4c } /* Name.Builtin.Pseudo */ +.highlight .vc { color: #c82829 } /* Name.Variable.Class */ +.highlight .vg { color: #c82829 } /* Name.Variable.Global */ +.highlight .vi { color: #c82829 } /* Name.Variable.Instance */ +.highlight .il { color: #f5871f } /* Literal.Number.Integer.Long */ +.highlight .lineno {user-select: none; -moz-user-select: none; -webkit-user-select: none;} \ No newline at end of file diff --git a/_sass/jekyll-monokai.scss b/_sass/jekyll-monokai.scss new file mode 100644 index 0000000..c41e08e --- /dev/null +++ b/_sass/jekyll-monokai.scss @@ -0,0 +1,67 @@ +/* Monokai */ + +/* For use with Jekyll and Pygments */ + +/* ----------------------------------------------------------*/ + +.highlight pre, +.highlight code, +.highlight .hll { background-color: #49483e; border: 1px solid #ccc; padding: 6px 10px; border-radius: 3px; } +.highlight .c { color: #75715e } /* Comment */ +.highlight .err { color: #960050; background-color: #1e0010 } /* Error */ +.highlight .k { color: #66d9ef } /* Keyword */ +.highlight .l { color: #ae81ff } /* Literal */ +.highlight .n { color: #f8f8f2 } /* Name */ +.highlight .o { color: #f92672 } /* Operator */ +.highlight .p { color: #f8f8f2 } /* Punctuation */ +.highlight .cm { color: #75715e } /* Comment.Multiline */ +.highlight .cp { color: #75715e } /* Comment.Preproc */ +.highlight .c1 { color: #75715e } /* Comment.Single */ +.highlight .cs { color: #75715e } /* Comment.Special */ +.highlight .ge { font-style: italic } /* Generic.Emph */ +.highlight .gs { font-weight: bold } /* Generic.Strong */ +.highlight .kc { color: #66d9ef } /* Keyword.Constant */ +.highlight .kd { color: #66d9ef } /* Keyword.Declaration */ +.highlight .kn { color: #f92672 } /* Keyword.Namespace */ +.highlight .kp { color: #66d9ef } /* Keyword.Pseudo */ +.highlight .kr { color: #66d9ef } /* Keyword.Reserved */ +.highlight .kt { color: #66d9ef } /* Keyword.Type */ +.highlight .ld { color: #e6db74 } /* Literal.Date */ +.highlight .m { color: #ae81ff } /* Literal.Number */ +.highlight .s { color: #e6db74 } /* Literal.String */ +.highlight .na { color: #a6e22e } /* Name.Attribute */ +.highlight .nb { color: #f8f8f2 } /* Name.Builtin */ +.highlight .nc { color: #a6e22e } /* Name.Class */ +.highlight .no { color: #66d9ef } /* Name.Constant */ +.highlight .nd { color: #a6e22e } /* Name.Decorator */ +.highlight .ni { color: #f8f8f2 } /* Name.Entity */ +.highlight .ne { color: #a6e22e } /* Name.Exception */ +.highlight .nf { color: #a6e22e } /* Name.Function */ +.highlight .nl { color: #f8f8f2 } /* Name.Label */ +.highlight .nn { color: #f8f8f2 } /* Name.Namespace */ +.highlight .nx { color: #a6e22e } /* Name.Other */ +.highlight .py { color: #f8f8f2 } /* Name.Property */ +.highlight .nt { color: #f92672 } /* Name.Tag */ +.highlight .nv { color: #f8f8f2 } /* Name.Variable */ +.highlight .ow { color: #f92672 } /* Operator.Word */ +.highlight .w { color: #f8f8f2 } /* Text.Whitespace */ +.highlight .mf { color: #ae81ff } /* Literal.Number.Float */ +.highlight .mh { color: #ae81ff } /* Literal.Number.Hex */ +.highlight .mi { color: #ae81ff } /* Literal.Number.Integer */ +.highlight .mo { color: #ae81ff } /* Literal.Number.Oct */ +.highlight .sb { color: #e6db74 } /* Literal.String.Backtick */ +.highlight .sc { color: #e6db74 } /* Literal.String.Char */ +.highlight .sd { color: #e6db74 } /* Literal.String.Doc */ +.highlight .s2 { color: #e6db74 } /* Literal.String.Double */ +.highlight .se { color: #ae81ff } /* Literal.String.Escape */ +.highlight .sh { color: #e6db74 } /* Literal.String.Heredoc */ +.highlight .si { color: #e6db74 } /* Literal.String.Interpol */ +.highlight .sx { color: #e6db74 } /* Literal.String.Other */ +.highlight .sr { color: #e6db74 } /* Literal.String.Regex */ +.highlight .s1 { color: #e6db74 } /* Literal.String.Single */ +.highlight .ss { color: #e6db74 } /* Literal.String.Symbol */ +.highlight .bp { color: #f8f8f2 } /* Name.Builtin.Pseudo */ +.highlight .vc { color: #f8f8f2 } /* Name.Variable.Class */ +.highlight .vg { color: #f8f8f2 } /* Name.Variable.Global */ +.highlight .vi { color: #f8f8f2 } /* Name.Variable.Instance */ +.highlight .il { color: #ae81ff } /* Literal.Number.Integer.Long */ diff --git a/about.md b/about.md new file mode 100644 index 0000000..3c08bc6 --- /dev/null +++ b/about.md @@ -0,0 +1,15 @@ +--- +layout: page +title: About +permalink: /about/ +--- + +Yo, + +I'm Mahdi Dibaiee, a programmer. + +I like hunting bugs in the wild (aka open-source). I study algorithms, data-structures, design patterns, anything I find useful, trying to expand my knowledge at any time, in any situation. + +I train [code katas](http://codewars.com/users/mdibaiee) almost everyday to sharpen my skills and I'm a member of the [Mozillians clan](https://mozillians.org/en-US/u/Mahdi/). + +Also, I love Parkour and Music. \ No newline at end of file diff --git a/css/fonts/Damion_gdi.woff b/css/fonts/Damion_gdi.woff new file mode 100644 index 0000000..eccabe4 Binary files /dev/null and b/css/fonts/Damion_gdi.woff differ diff --git a/css/fonts/Ubuntu-Light_gdi.woff b/css/fonts/Ubuntu-Light_gdi.woff new file mode 100644 index 0000000..278d4e6 Binary files /dev/null and b/css/fonts/Ubuntu-Light_gdi.woff differ diff --git a/css/fonts/UbuntuMono-Regular_gdi.woff b/css/fonts/UbuntuMono-Regular_gdi.woff new file mode 100644 index 0000000..cd5a632 Binary files /dev/null and b/css/fonts/UbuntuMono-Regular_gdi.woff differ diff --git a/css/fonts/Ubuntu_gdi.woff b/css/fonts/Ubuntu_gdi.woff new file mode 100644 index 0000000..962e201 Binary files /dev/null and b/css/fonts/Ubuntu_gdi.woff differ diff --git a/css/main.scss b/css/main.scss new file mode 100644 index 0000000..564ac2d --- /dev/null +++ b/css/main.scss @@ -0,0 +1,52 @@ +--- +# Only the main Sass file needs front matter (the dashes are enough) +--- +@charset "utf-8"; + + + +// Our variables +$base-font-family: 'Ubuntu Light', sans-serif; +$base-font-size: 12pt; +$small-font-size: $base-font-size * 0.875; +$base-line-height: 1.5; + +$spacing-unit: 30px; + +$text-color: #303030; +$background-color: #FFFCF8; +$brand-color: #2a7ae2; + +$grey-color: #828282; +$grey-color-light: lighten($grey-color, 40%); +$grey-color-dark: darken($grey-color, 25%); + +// Width of the content area +$content-width: 800px; + +$on-palm: 600px; +$on-laptop: 800px; + + + +// Using media queries with like this: +// @include media-query($on-palm) { +// .wrapper { +// padding-right: $spacing-unit / 2; +// padding-left: $spacing-unit / 2; +// } +// } +@mixin media-query($device) { + @media screen and (max-width: $device) { + @content; + } +} + + + +// Import partials from `sass_dir` (defaults to `_sass`) +@import + "base", + "layout", + "syntax-highlighting" +; diff --git a/feed.xml b/feed.xml new file mode 100644 index 0000000..a6628bd --- /dev/null +++ b/feed.xml @@ -0,0 +1,30 @@ +--- +layout: null +--- + + + + {{ site.title | xml_escape }} + {{ site.description | xml_escape }} + {{ site.url }}{{ site.baseurl }}/ + + {{ site.time | date_to_rfc822 }} + {{ site.time | date_to_rfc822 }} + Jekyll v{{ jekyll.version }} + {% for post in site.posts limit:10 %} + + {{ post.title | xml_escape }} + {{ post.content | xml_escape }} + {{ post.date | date_to_rfc822 }} + {{ post.url | prepend: site.baseurl | prepend: site.url }} + {{ post.url | prepend: site.baseurl | prepend: site.url }} + {% for tag in post.tags %} + {{ tag | xml_escape }} + {% endfor %} + {% for cat in post.categories %} + {{ cat | xml_escape }} + {% endfor %} + + {% endfor %} + + diff --git a/img/.DS_Store b/img/.DS_Store new file mode 100644 index 0000000..5008ddf Binary files /dev/null and b/img/.DS_Store differ diff --git a/img/dropshadow.gif b/img/dropshadow.gif new file mode 100644 index 0000000..4c52cdf Binary files /dev/null and b/img/dropshadow.gif differ diff --git a/img/javascript-weapon.jpg b/img/javascript-weapon.jpg new file mode 100644 index 0000000..2be5259 Binary files /dev/null and b/img/javascript-weapon.jpg differ diff --git a/img/mahdi.svg b/img/mahdi.svg new file mode 100644 index 0000000..6cdde9a --- /dev/null +++ b/img/mahdi.svg @@ -0,0 +1,238 @@ + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/img/map.jpg b/img/map.jpg new file mode 100644 index 0000000..8b95f6e Binary files /dev/null and b/img/map.jpg differ diff --git a/img/silhouette.png b/img/silhouette.png new file mode 100644 index 0000000..c68ebdb Binary files /dev/null and b/img/silhouette.png differ diff --git a/index.html b/index.html new file mode 100644 index 0000000..dd01e45 --- /dev/null +++ b/index.html @@ -0,0 +1,25 @@ +--- +layout: default +--- + +
+ +

+ + + +

subscribe via RSS

+ +