From 4c917fc60d4dec2151c83237cacecf604c0a9242 Mon Sep 17 00:00:00 2001 From: Egor Tensin Date: Wed, 6 May 2015 06:44:18 +0300 Subject: initial commit --- .gitignore | 1 + Gemfile | 4 ++ Gemfile.lock | 119 +++++++++++++++++++++++++++++++++++++++++++ LICENSE.txt | 21 ++++++++ README.md | 68 +++++++++++++++++++++++++ _config-exclude-comments.yml | 1 + _config-rouge.yml | 1 + _config.yml | 4 ++ _includes/comments.html | 16 ++++++ _includes/footer.html | 23 +++++++++ _includes/header.html | 25 +++++++++ _includes/links.html | 11 ++++ _includes/navbar.html | 20 ++++++++ _includes/pagination.html | 30 +++++++++++ _includes/sidebar.html | 16 ++++++ _layouts/about.html | 7 +++ _layouts/post.html | 14 +++++ _layouts/posts.html | 10 ++++ about.html | 22 ++++++++ css/footer.css | 22 ++++++++ css/syntax.css | 61 ++++++++++++++++++++++ index.html | 19 +++++++ 22 files changed, 515 insertions(+) create mode 100644 .gitignore create mode 100644 Gemfile create mode 100644 Gemfile.lock create mode 100644 LICENSE.txt create mode 100644 README.md create mode 100644 _config-exclude-comments.yml create mode 100644 _config-rouge.yml create mode 100644 _config.yml create mode 100644 _includes/comments.html create mode 100644 _includes/footer.html create mode 100644 _includes/header.html create mode 100644 _includes/links.html create mode 100644 _includes/navbar.html create mode 100644 _includes/pagination.html create mode 100644 _includes/sidebar.html create mode 100644 _layouts/about.html create mode 100644 _layouts/post.html create mode 100644 _layouts/posts.html create mode 100644 about.html create mode 100644 css/footer.css create mode 100644 css/syntax.css create mode 100644 index.html diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..57510a2 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +_site/ diff --git a/Gemfile b/Gemfile new file mode 100644 index 0000000..51cea88 --- /dev/null +++ b/Gemfile @@ -0,0 +1,4 @@ +source 'http://rubygems.org' +gem 'github-pages' +gem 'rouge' +gem 'wdm', '~> 0.1.0' if Gem.win_platform? diff --git a/Gemfile.lock b/Gemfile.lock new file mode 100644 index 0000000..78093d5 --- /dev/null +++ b/Gemfile.lock @@ -0,0 +1,119 @@ +GEM + remote: http://rubygems.org/ + specs: + RedCloth (4.2.9-x86-mingw32) + activesupport (4.1.4) + i18n (~> 0.6, >= 0.6.9) + json (~> 1.7, >= 1.7.7) + minitest (~> 5.1) + thread_safe (~> 0.1) + tzinfo (~> 1.1) + blankslate (2.1.2.4) + celluloid (0.15.2) + timers (~> 1.1.0) + classifier (1.3.4) + fast-stemmer (>= 1.0.0) + coffee-script (2.3.0) + coffee-script-source + execjs + coffee-script-source (1.7.1) + colorator (0.1) + execjs (2.2.1) + fast-stemmer (1.0.2) + ffi (1.9.3-x86-mingw32) + gemoji (2.1.0) + github-pages (22) + RedCloth (= 4.2.9) + jekyll (= 2.2.0) + jekyll-coffeescript (= 1.0.0) + jekyll-mentions (= 0.1.3) + jekyll-redirect-from (= 0.4.0) + jekyll-sass-converter (= 1.2.0) + jekyll-sitemap (= 0.5.1) + jemoji (= 0.3.0) + kramdown (= 1.3.1) + liquid (= 2.6.1) + maruku (= 0.7.0) + pygments.rb (= 0.6.0) + rdiscount (= 2.1.7) + redcarpet (= 3.1.2) + html-pipeline (1.9.0) + activesupport (>= 2) + nokogiri (~> 1.4) + i18n (0.6.11) + jekyll (2.2.0) + classifier (~> 1.3) + colorator (~> 0.1) + jekyll-coffeescript (~> 1.0) + jekyll-gist (~> 1.0) + jekyll-paginate (~> 1.0) + jekyll-sass-converter (~> 1.0) + jekyll-watch (~> 1.0) + kramdown (~> 1.3) + liquid (~> 2.6.1) + mercenary (~> 0.3.3) + pygments.rb (~> 0.6.0) + redcarpet (~> 3.1) + safe_yaml (~> 1.0) + toml (~> 0.1.0) + jekyll-coffeescript (1.0.0) + coffee-script (~> 2.2) + jekyll-gist (1.1.0) + jekyll-mentions (0.1.3) + html-pipeline (~> 1.9.0) + jekyll (~> 2.0) + jekyll-paginate (1.0.0) + jekyll-redirect-from (0.4.0) + jekyll (~> 2.0) + jekyll-sass-converter (1.2.0) + sass (~> 3.2) + jekyll-sitemap (0.5.1) + jekyll-watch (1.1.0) + listen (~> 2.7) + jemoji (0.3.0) + gemoji (~> 2.0) + html-pipeline (~> 1.9) + jekyll (~> 2.0) + json (1.8.1) + kramdown (1.3.1) + liquid (2.6.1) + listen (2.7.9) + celluloid (>= 0.15.2) + rb-fsevent (>= 0.9.3) + rb-inotify (>= 0.9) + maruku (0.7.0) + mercenary (0.3.4) + mini_portile (0.6.0) + minitest (5.4.0) + nokogiri (1.6.3.1-x86-mingw32) + mini_portile (= 0.6.0) + parslet (1.5.0) + blankslate (~> 2.0) + posix-spawn (0.3.9) + pygments.rb (0.6.0) + posix-spawn (~> 0.3.6) + yajl-ruby (~> 1.1.0) + rb-fsevent (0.9.4) + rb-inotify (0.9.5) + ffi (>= 0.5.0) + rdiscount (2.1.7) + redcarpet (3.1.2) + rouge (1.8.0) + safe_yaml (1.0.3) + sass (3.3.14) + thread_safe (0.3.4) + timers (1.1.0) + toml (0.1.1) + parslet (~> 1.5.0) + tzinfo (1.2.2) + thread_safe (~> 0.1) + wdm (0.1.0) + yajl-ruby (1.1.0-x86-mingw32) + +PLATFORMS + x86-mingw32 + +DEPENDENCIES + github-pages + rouge + wdm (~> 0.1.0) diff --git a/LICENSE.txt b/LICENSE.txt new file mode 100644 index 0000000..fbbdd68 --- /dev/null +++ b/LICENSE.txt @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2015 Egor Tensin + +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. diff --git a/README.md b/README.md new file mode 100644 index 0000000..585e40e --- /dev/null +++ b/README.md @@ -0,0 +1,68 @@ +# C++ tips + +Thoughs on C++ and life. +Hosted on [GitHub Pages](https://pages.github.com) at https://egor-tensin.github.io/cpp_tips/. + +## Installation + +[Jekyll](http://jekyllrb.com/) is used to build a set of static HTML pages from a collection of templates and resources. +Jekyll doesn't support Windows, however at the moment of writing one can get it to work using the excellent tutorial at http://jekyll-windows.juthilo.com/. + +I'm using [Bundler](http://bundler.io/) to set up a development environment. +After the `bundler` gem is installed, project dependencies can be installed by running + + bundle install + +in the project's root directory. + +## Development + +To run a local web server, run + + bundle exec jekyll serve --baseurl '' --watch --drafts + +from the project's root directory. +You can then review your changes at http://localhost:4000/. + +To exclude the comments section, include the `_config-exclude-comments.yml` configuration file using + + bundle exec jekyll serve --baseurl '' --watch --drafts --config _config.yml,_config-exclude-comments.yml + +Please note that the support for `--watch`ing for modification on Windows is kind of iffy at the moment of writing. +One possible workaround is to add `--force_polling` to `jekyll`s options: + + bundle exec jekyll serve --baseurl '' --watch --force_polling --drafts --config _config.yml,_config-exclude-comments.yml + +It might still not work though, so you might end up having to re-run `jekyll` manually. +For details, refer to http://jekyll-windows.juthilo.com/4-wdm-gem/. + +I'm also using the `rouge` gem for syntax highlighting during development instead of [Pygments](http://pygments.org/). +The reason for this was that Pygments required Python 2 to be installed, while I'm trying to switch to Python 3 completely. +The downside is that at the moment of writing GitHub Pages only supported Pygments, so I had to include a separate configuration file `_config-rouge.yml` during development. + +To sum up, on Linux use + + bundle exec jekyll serve \ + --baseurl '' \ + --watch \ + --drafts \ + --config _config.yml,_config-exclude-comments.yml,_config-rouge.yml + +and on Windows (hoping for the best) use + + bundle exec jekyll serve ^ + --baseurl '' ^ + --watch --force_polling ^ + --drafts ^ + --config _config.yml,_config-exclude-comments.yml,_config-rouge.yml + +to run a local web server. + +## Licensing + +This project, including all of the files and their contents, is licensed under the terms of the MIT License. +See LICENSE.txt for details. + +This website is build upon the Twitter Bootstrap framework, which is also MIT Licensed and copyright 2015 Twitter. + +A MIT Licensed CSS style sheet from https://github.com/mojombo/tpw/blob/master/css/syntax.css created by Tom Preston-Werner is used for syntax highlighting. diff --git a/_config-exclude-comments.yml b/_config-exclude-comments.yml new file mode 100644 index 0000000..7f0c6d2 --- /dev/null +++ b/_config-exclude-comments.yml @@ -0,0 +1 @@ +include_comments: false diff --git a/_config-rouge.yml b/_config-rouge.yml new file mode 100644 index 0000000..c8ec22c --- /dev/null +++ b/_config-rouge.yml @@ -0,0 +1 @@ +highlighter: rouge diff --git a/_config.yml b/_config.yml new file mode 100644 index 0000000..95df734 --- /dev/null +++ b/_config.yml @@ -0,0 +1,4 @@ +baseurl: /cpp_tips +paginate: 10 +include_comments: true +excerpt_separator: "" diff --git a/_includes/comments.html b/_includes/comments.html new file mode 100644 index 0000000..1f3e808 --- /dev/null +++ b/_includes/comments.html @@ -0,0 +1,16 @@ +{% if site.include_comments %} +
+ + +{% endif %} + \ No newline at end of file diff --git a/_includes/footer.html b/_includes/footer.html new file mode 100644 index 0000000..3bfc5a2 --- /dev/null +++ b/_includes/footer.html @@ -0,0 +1,23 @@ + + +
+
+
+
+
+
+
This project is licensed under the terms of the MIT License. See Licensing for details.
+
+
+
This blog was last updated on: {{ site.time | date_to_long_string }}.
+
+
+
+
+
+
+ + + + + diff --git a/_includes/header.html b/_includes/header.html new file mode 100644 index 0000000..e3a9158 --- /dev/null +++ b/_includes/header.html @@ -0,0 +1,25 @@ + + + + + + + {{ page.title }} + + + + + + + + + +
+
+ {% include navbar.html %} +
+
+
diff --git a/_includes/links.html b/_includes/links.html new file mode 100644 index 0000000..70e643b --- /dev/null +++ b/_includes/links.html @@ -0,0 +1,11 @@ +{% for node in page_list %} + {% if group == null or group == node.group %} + {% if page.url == node.url %} +
  • {{ node.title }}
  • + {% else %} +
  • {{ node.title }}
  • + {% endif %} + {% endif %} +{% endfor %} +{% assign page_list = nil %} +{% assign group = nil %} diff --git a/_includes/navbar.html b/_includes/navbar.html new file mode 100644 index 0000000..f052baa --- /dev/null +++ b/_includes/navbar.html @@ -0,0 +1,20 @@ + diff --git a/_includes/pagination.html b/_includes/pagination.html new file mode 100644 index 0000000..aa2f034 --- /dev/null +++ b/_includes/pagination.html @@ -0,0 +1,30 @@ +{% if site.posts.size != 0 %} +
      + {% if paginator.previous_page %} + {% if paginator.previous_page == 1 %} +
    •  Prev
    • + {% else %} +
    •  Prev
    • + {% endif %} + {% else %} +
    •  Prev
    • + {% endif %} + {% if paginator.page == 1 %} +
    • 1
    • + {% else %} +
    • 1
    • + {% endif %} + {% for count in (2..paginator.total_pages) %} + {% if count == paginator.page %} +
    • {{ count }}
    • + {% else %} +
    • {{ count }}
    • + {% endif %} + {% endfor %} + {% if paginator.next_page %} +
    • Next 
    • + {% else %} +
    • Next 
    • + {% endif %} +
    +{% endif %} diff --git a/_includes/sidebar.html b/_includes/sidebar.html new file mode 100644 index 0000000..1a1f9a4 --- /dev/null +++ b/_includes/sidebar.html @@ -0,0 +1,16 @@ +

    About the project

    +

    Thoughts on C++ and life. Feel free to contribute or contact me.

    + +

    Latest posts

    +{% if site.posts.size == 0 %} +

    Sorry, there're no posts yet.

    +{% else %} +
    + {% for post in site.posts limit: 5 %} +  {{ post.date | date_to_string }} {{ post.title }} + {% endfor %} +
    +{% endif %} diff --git a/_layouts/about.html b/_layouts/about.html new file mode 100644 index 0000000..9a6a620 --- /dev/null +++ b/_layouts/about.html @@ -0,0 +1,7 @@ +{% include header.html %} +
    +
    + {{ content }} +
    +
    +{% include footer.html %} diff --git a/_layouts/post.html b/_layouts/post.html new file mode 100644 index 0000000..4b05318 --- /dev/null +++ b/_layouts/post.html @@ -0,0 +1,14 @@ +{% include header.html %} +
    +
    +

    {{ page.title }}

    +

    Posted on {{ page.date | date_to_long_string }}

    + {{ content }} +
    + {% include comments.html %} +
    +
    + {% include sidebar.html %} +
    +
    +{% include footer.html %} diff --git a/_layouts/posts.html b/_layouts/posts.html new file mode 100644 index 0000000..920cbd9 --- /dev/null +++ b/_layouts/posts.html @@ -0,0 +1,10 @@ +{% include header.html %} +
    +
    + {{ content }} +
    +
    + {% include sidebar.html %} +
    +
    +{% include footer.html %} diff --git a/about.html b/about.html new file mode 100644 index 0000000..19466a2 --- /dev/null +++ b/about.html @@ -0,0 +1,22 @@ +--- +title: About +layout: about +group: "navigation" +--- +

    About the project

    +

    Thoughs on C++ and life. Feel free to contribute or contact me.

    + +

    Platform

    + + + + + + + + + +
    CPUIntel Atom N2800
    OSWindows 7 Professional Service Pack 1
    diff --git a/css/footer.css b/css/footer.css new file mode 100644 index 0000000..f8896b5 --- /dev/null +++ b/css/footer.css @@ -0,0 +1,22 @@ +html, body { + height: 100%; + width: 100%; +} +.wrapper { + height: 100%; + width: 100%; + display: table; +} +.block { + display: table-row; + height: 1px; +} +.push { + height: auto; +} +footer { + margin-top: 20px; + padding: 15px 0 15px; + border-width: 1px 0; + border-style: solid; +} diff --git a/css/syntax.css b/css/syntax.css new file mode 100644 index 0000000..dc60655 --- /dev/null +++ b/css/syntax.css @@ -0,0 +1,61 @@ +.hll { background-color: #ffffcc } +.c { color: #999988; font-style: italic } /* Comment */ +.err { color: #a61717; background-color: #e3d2d2 } /* Error */ +.k { color: #000000; font-weight: bold } /* Keyword */ +.o { color: #000000; font-weight: bold } /* Operator */ +.cm { color: #999988; font-style: italic } /* Comment.Multiline */ +.cp { color: #999999; font-weight: bold; font-style: italic } /* Comment.Preproc */ +.c1 { color: #999988; font-style: italic } /* Comment.Single */ +.cs { color: #999999; font-weight: bold; font-style: italic } /* Comment.Special */ +.gd { color: #000000; background-color: #ffdddd } /* Generic.Deleted */ +.ge { color: #000000; font-style: italic } /* Generic.Emph */ +.gr { color: #aa0000 } /* Generic.Error */ +.gh { color: #999999 } /* Generic.Heading */ +.gi { color: #000000; background-color: #ddffdd } /* Generic.Inserted */ +.go { color: #888888 } /* Generic.Output */ +.gp { color: #555555 } /* Generic.Prompt */ +.gs { font-weight: bold } /* Generic.Strong */ +.gu { color: #aaaaaa } /* Generic.Subheading */ +.gt { color: #aa0000 } /* Generic.Traceback */ +.kc { color: #000000; font-weight: bold } /* Keyword.Constant */ +.kd { color: #000000; font-weight: bold } /* Keyword.Declaration */ +.kn { color: #000000; font-weight: bold } /* Keyword.Namespace */ +.kp { color: #000000; font-weight: bold } /* Keyword.Pseudo */ +.kr { color: #000000; font-weight: bold } /* Keyword.Reserved */ +.kt { color: #445588; font-weight: bold } /* Keyword.Type */ +.m { color: #009999 } /* Literal.Number */ +.s { color: #d01040 } /* Literal.String */ +.na { color: #008080 } /* Name.Attribute */ +.nb { color: #0086B3 } /* Name.Builtin */ +.nc { color: #445588; font-weight: bold } /* Name.Class */ +.no { color: #008080 } /* Name.Constant */ +.nd { color: #3c5d5d; font-weight: bold } /* Name.Decorator */ +.ni { color: #800080 } /* Name.Entity */ +.ne { color: #990000; font-weight: bold } /* Name.Exception */ +.nf { color: #990000; font-weight: bold } /* Name.Function */ +.nl { color: #990000; font-weight: bold } /* Name.Label */ +.nn { color: #555555 } /* Name.Namespace */ +.nt { color: #000080 } /* Name.Tag */ +.nv { color: #008080 } /* Name.Variable */ +.ow { color: #000000; font-weight: bold } /* Operator.Word */ +.w { color: #bbbbbb } /* Text.Whitespace */ +.mf { color: #009999 } /* Literal.Number.Float */ +.mh { color: #009999 } /* Literal.Number.Hex */ +.mi { color: #009999 } /* Literal.Number.Integer */ +.mo { color: #009999 } /* Literal.Number.Oct */ +.sb { color: #d01040 } /* Literal.String.Backtick */ +.sc { color: #d01040 } /* Literal.String.Char */ +.sd { color: #d01040 } /* Literal.String.Doc */ +.s2 { color: #d01040 } /* Literal.String.Double */ +.se { color: #d01040 } /* Literal.String.Escape */ +.sh { color: #d01040 } /* Literal.String.Heredoc */ +.si { color: #d01040 } /* Literal.String.Interpol */ +.sx { color: #d01040 } /* Literal.String.Other */ +.sr { color: #009926 } /* Literal.String.Regex */ +.s1 { color: #d01040 } /* Literal.String.Single */ +.ss { color: #990073 } /* Literal.String.Symbol */ +.bp { color: #999999 } /* Name.Builtin.Pseudo */ +.vc { color: #008080 } /* Name.Variable.Class */ +.vg { color: #008080 } /* Name.Variable.Global */ +.vi { color: #008080 } /* Name.Variable.Instance */ +.il { color: #009999 } /* Literal.Number.Integer.Long */ diff --git a/index.html b/index.html new file mode 100644 index 0000000..f8d2488 --- /dev/null +++ b/index.html @@ -0,0 +1,19 @@ +--- +title: Posts +layout: posts +group: "navigation" +--- +{% if site.posts.size == 0 %} +

    Sorry, there're no posts yet.

    +
    +{% else %} + {% for post in paginator.posts %} +

    {{ post.title }}

    +

    Posted on {{ post.date | date_to_long_string }}

    + Read More  +
    + {% endfor %} +
    + {% include pagination.html %} +
    +{% endif %} -- cgit v1.2.3