├── .gitattributes ├── .gitignore ├── .travis.yml ├── 404.md ├── Gemfile ├── LICENSE ├── README.md ├── _config.yml ├── _includes ├── disqus.html ├── google_analytics.html ├── head.html ├── intro.html └── nav.html ├── _layouts ├── default.html ├── page.html └── post.html ├── _posts ├── 2017-01-15-about-this-jekyll-theme.md ├── 2017-01-15-example-content.md ├── 2017-01-15-history-of-lorem-ipsum.md └── 2017-01-15-whats-jekyll.md ├── _sass ├── _base.scss ├── _layout.scss └── _syntax-highlighting.scss ├── about.md ├── categories.html ├── css └── main.scss ├── feed.xml ├── index.html ├── renovate.json ├── script └── cibuild.sh ├── tagged.html └── textlog.gemspec /.gitattributes: -------------------------------------------------------------------------------- 1 | # Auto detect text files and perform LF normalization 2 | * text=auto 3 | 4 | # Custom for Visual Studio 5 | *.cs diff=csharp 6 | 7 | # Standard to msysgit 8 | *.doc diff=astextplain 9 | *.DOC diff=astextplain 10 | *.docx diff=astextplain 11 | *.DOCX diff=astextplain 12 | *.dot diff=astextplain 13 | *.DOT diff=astextplain 14 | *.pdf diff=astextplain 15 | *.PDF diff=astextplain 16 | *.rtf diff=astextplain 17 | *.RTF diff=astextplain 18 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | _site 2 | .sass-cache 3 | .jekyll-cache 4 | .jekyll-metadata 5 | Gemfile.lock 6 | -------------------------------------------------------------------------------- /.travis.yml: -------------------------------------------------------------------------------- 1 | language: ruby 2 | rvm: 3 | - 2.4.1 4 | 5 | before_script: 6 | - chmod +x ./script/cibuild.sh 7 | 8 | script: ./script/cibuild.sh 9 | 10 | # branch whitelist, only for Github pages 11 | # https://jekyllrb.com/docs/continuous-integration/travis-ci/ 12 | branches: 13 | only: 14 | - master 15 | - gh-pages # test gh-pages branch 16 | - /pages-(.*)/ 17 | 18 | env: 19 | global: 20 | - NOKOGIRI_USE_SYSTEM_LIBRARIES=true # speed up html-proofer install 21 | 22 | sudo: false # route build to the container-based infrastructure for faster build 23 | 24 | cache: bundler # caching bundler gem packages will speed up build 25 | -------------------------------------------------------------------------------- /404.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: page 3 | permalink: 404.html 4 | --- 5 | 6 | # 404 7 | 8 | Sorry, the page does not exist. -------------------------------------------------------------------------------- /Gemfile: -------------------------------------------------------------------------------- 1 | source "https://rubygems.org" 2 | gemspec 3 | group :jekyll_plugins do 4 | gem "jekyll-sitemap" 5 | end 6 | gem 'html-proofer' 7 | gem 'tzinfo' 8 | gem 'tzinfo-data' 9 | gem 'kramdown-parser-gfm' 10 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2017 Heiswayi Nrird 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # TextLog 2 | 3 | > Textlog is a minimalist, lefty-style Jekyll theme designed for documentation based blog. 4 | 5 | [![LICENSE](https://img.shields.io/badge/license-MIT-blue.svg)](LICENSE) ![GENERATOR](https://img.shields.io/badge/made_with-jekyll-blue.svg) ![VERSION](https://img.shields.io/badge/current_version-1.5-green.svg) ![TRAVIS-CI](https://travis-ci.org/heiswayi/textlog.svg?branch=gh-pages) 6 | 7 | - **Demo:** https://heiswayi.github.io/textlog/ 8 | 9 | ![SCREENSHOT](https://i.imgur.com/yXqbM4S.png) 10 | 11 | ## License 12 | 13 | [MIT](LICENSE.md) 14 | -------------------------------------------------------------------------------- /_config.yml: -------------------------------------------------------------------------------- 1 | # Site settings 2 | title: "TextLog" 3 | description: "Minimalist Jekyll theme for documentation site" 4 | baseurl: "/textlog" # required if used under gh-pages branch, else (under master branch) just leave empty/blank 5 | url: "" 6 | author: "John Doe" 7 | 8 | # Build settings 9 | kramdown: 10 | input: GFM 11 | permalink: pretty 12 | 13 | # Third-party services 14 | # just leave empty to disable it 15 | google_analytics: 16 | disqus_shortname: 17 | 18 | plugins: 19 | - jekyll-sitemap 20 | 21 | exclude: ["LICENSE", "README.md", "CNAME", "vendor", "Gemfile", "script"] 22 | -------------------------------------------------------------------------------- /_includes/disqus.html: -------------------------------------------------------------------------------- 1 | {% if site.disqus_shortname %} 2 |
3 | 12 | {% endif %} 13 | -------------------------------------------------------------------------------- /_includes/google_analytics.html: -------------------------------------------------------------------------------- 1 | {% if site.google_analytics %} 2 | 10 | {% endif %} -------------------------------------------------------------------------------- /_includes/head.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | {% if page.title %}{{ " - " | prepend: page.title }}{% endif %}{{ site.title }} 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /_includes/intro.html: -------------------------------------------------------------------------------- 1 |

Hello, this is TextLog - another minimalist Jekyll theme by Heiswayi Nrird. TextLog provides distraction-free and content-focused layout. This section is here for any brief introduction. You may edit this section in includes\intro.html. If you use this theme as a personal blog, maybe this section works best for you bio...

2 | -------------------------------------------------------------------------------- /_includes/nav.html: -------------------------------------------------------------------------------- 1 | 7 | -------------------------------------------------------------------------------- /_layouts/default.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | {% include head.html %} 4 | 5 |
6 | {{ content }} 7 | 10 |
11 | {% include google_analytics.html %} 12 | 13 | 14 | -------------------------------------------------------------------------------- /_layouts/page.html: -------------------------------------------------------------------------------- 1 | --- 2 | layout: default 3 | --- 4 |
5 |
6 |

{{ page.title }}

7 |
8 |
9 | {{ content }} 10 |
11 |
12 | -------------------------------------------------------------------------------- /_layouts/post.html: -------------------------------------------------------------------------------- 1 | --- 2 | layout: default 3 | --- 4 |
5 |
6 |

{{ page.title }}

7 | 27 |
28 |
29 | {{ content }} 30 |
31 |
32 | {% if page.comment %} 33 | {% include disqus.html %} 34 | {% endif %} 35 |
36 | -------------------------------------------------------------------------------- /_posts/2017-01-15-about-this-jekyll-theme.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: post 3 | title: About this Jekyll theme 4 | tags: [Demo, Jekyll] 5 | author: Heiswayi Nrird 6 | comment: true 7 | --- 8 | 9 | Textlog is a minimalist, lefty-style Jekyll theme designed for documentation based blog. 10 | 11 | - Content-focused post layout 12 | - Using system fonts like GitHub - no Google Fonts 13 | - Supports article tagging 14 | - White clean design 15 | - Contains intro section on homepage 16 | - Supports comment if enabled - using [Disqus comment](https://disqus.com/) 17 | - Responsive and mobile-friendly 18 | - Post can have specific author name displayed on post metadata - apply via yaml front matter 19 | 20 | [Source code on GitHub](https://github.com/heiswayi/textlog) -------------------------------------------------------------------------------- /_posts/2017-01-15-example-content.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: post 3 | title: Example content 4 | tags: [Demo, Example Content] 5 | comment: true 6 | --- 7 | 8 | Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. *Aenean eu leo quam.* Pellentesque ornare sem lacinia quam venenatis vestibulum. Sed posuere consectetur est at lobortis. Cras mattis consectetur purus sit amet fermentum. 9 | 10 | > Curabitur blandit tempus porttitor. Nullam quis risus eget urna mollis ornare vel eu leo. Nullam id dolor id nibh ultricies vehicula ut id elit. 11 | 12 | Etiam porta **sem malesuada magna** mollis euismod. Cras mattis consectetur purus sit amet fermentum. Aenean lacinia bibendum nulla sed consectetur. 13 | 14 | ## Inline HTML elements 15 | 16 | HTML defines a long list of available inline tags, a complete list of which can be found on the [Mozilla Developer Network](https://developer.mozilla.org/en-US/docs/Web/HTML/Element). 17 | 18 | - **To bold text**, use ``. 19 | - *To italicize text*, use ``. 20 | - Abbreviations, like HTML should use ``, with an optional `title` attribute for the full phrase. 21 | - Citations, like — Mark otto, should use ``. 22 | - Deleted text should use `` and inserted text should use ``. 23 | - Superscript text uses `` and subscript text uses ``. 24 | 25 | Most of these elements are styled by browsers with few modifications on our part. 26 | 27 | ## Footnotes 28 | 29 | Footnotes are supported as part of the Markdown syntax. Here's one in action. Clicking this number[^fn-sample_footnote] will lead you to a footnote. The syntax looks like: 30 | 31 | {% highlight text %} 32 | Clicking this number[^fn-sample_footnote] 33 | {% endhighlight %} 34 | 35 | Each footnote needs the `^fn-` prefix and a unique ID to be referenced for the footnoted content. The syntax for that list looks something like this: 36 | 37 | {% highlight text %} 38 | [^fn-sample_footnote]: Handy! Now click the return link to go back. 39 | {% endhighlight %} 40 | 41 | You can place the footnoted content wherever you like. Markdown parsers should properly place it at the bottom of the post. 42 | 43 | ## Heading 44 | 45 | Vivamus sagittis lacus vel augue rutrum faucibus dolor auctor. Duis mollis, est non commodo luctus, nisi erat porttitor ligula, eget lacinia odio sem nec elit. Morbi leo risus, porta ac consectetur ac, vestibulum at eros. 46 | 47 | ### Code 48 | 49 | Inline code is available with the `` element. Snippets of multiple lines of code are supported through Pygments. Longer lines will automatically scroll horizontally when needed. 50 | 51 | {% highlight js %} 52 | // Example can be run directly in your JavaScript console 53 | 54 | // Create a function that takes two arguments and returns the sum of those arguments 55 | var adder = new Function("a", "b", "return a + b"); 56 | 57 | // Call the function 58 | adder(2, 6); 59 | // > 8 60 | {% endhighlight %} 61 | 62 | Aenean lacinia bibendum nulla sed consectetur. Etiam porta sem malesuada magna mollis euismod. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa. 63 | 64 | ### Lists 65 | 66 | Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Aenean lacinia bibendum nulla sed consectetur. Etiam porta sem malesuada magna mollis euismod. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. 67 | 68 | * Praesent commodo cursus magna, vel scelerisque nisl consectetur et. 69 | * Donec id elit non mi porta gravida at eget metus. 70 | * Nulla vitae elit libero, a pharetra augue. 71 | 72 | Donec ullamcorper nulla non metus auctor fringilla. Nulla vitae elit libero, a pharetra augue. 73 | 74 | 1. Vestibulum id ligula porta felis euismod semper. 75 | 2. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. 76 | 3. Maecenas sed diam eget risus varius blandit sit amet non magna. 77 | 78 | ### Images 79 | 80 | Quisque consequat sapien eget quam rhoncus, sit amet laoreet diam tempus. Aliquam aliquam metus erat, a pulvinar turpis suscipit at. 81 | 82 | ![placeholder](http://placehold.it/800x400 "Large example image") 83 | 84 | ![placeholder](http://placehold.it/400x200 "Medium example image") 85 | 86 | ![placeholder](http://placehold.it/200x200 "Small example image") 87 | 88 | ### Tables 89 | 90 | Aenean lacinia bibendum nulla sed consectetur. Lorem ipsum dolor sit amet, consectetur adipiscing elit. 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | 110 | 111 | 112 | 113 | 114 | 115 | 116 | 117 | 118 | 119 | 120 | 121 | 122 | 123 | 124 |
NameUpvotesDownvotes
Totals2123
Alice1011
Bob43
Charlie79
125 | 126 | Nullam id dolor id nibh ultricies vehicula ut id elit. Sed posuere consectetur est at lobortis. Nullam quis risus eget urna mollis ornare vel eu leo. 127 | 128 | ----- 129 | 130 | Footnotes: 131 | 132 | [^fn-sample_footnote]: Handy! Now click the return link to go back. -------------------------------------------------------------------------------- /_posts/2017-01-15-history-of-lorem-ipsum.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: post 3 | title: History of Lorem Ipsum 4 | tags: [Demo, Lorem Ipsum] 5 | comment: true 6 | --- 7 | 8 | ### What is Lorem ipsum? 9 | 10 | A quick and simplified answer is that Lorem Ipsum refers to text that the DTP (Desktop Publishing) industry use as replacement text when the real text is not available. 11 | 12 | For example, when designing a brochure or book, a designer will insert Lorem ipsum text if the real text is not available. The Lorem ipsum text looks real enough that the brochure or book looks complete. The book or brochure can be shown to the client for approval. 13 | 14 | The important factor when using Lorem ipsum text is that the text looks realistic otherwise the brochure or book will not look very good. Lorem Ipsum is dummy text which has no meaning however looks very similar to real text. 15 | 16 | Common names for Lorem ipsum text include: 17 | 18 | - blind text 19 | - dummy text 20 | - greeked text 21 | - placeholder text 22 | - mock content 23 | - filler text 24 | 25 | ### Where did it come from ? 26 | 27 | In design magazine, Before and After Magazine, a journalist wrote in volume 4, number 2 the following: 28 | 29 | > After telling everyone that Lorem ipsum, the nonsensical text that comes with PageMaker, only looks like Latin but actually says nothing, I heard from Richard McClintock, publication director at the Hampden-Sydney College in Virginia, who had enlightening news: 30 | 31 | > Lorem ipsum is latin, slightly jumbled, the remnants of a passage from Cicero's 'De finibus bonorum et malorum' 1.10.32, which begins 'Neque porro quisquam est qui dolorem ipsum quia dolor sit amet, consectetur, adipisci velit...' [There is no one who loves pain itself, who seeks after it and wants to have it, simply because it is pain.]. [de Finibus Bonorum et Malorum, written in 45 BC, is a treatise on the theory of ethics very popular in the Renaisance.] 32 | 33 | > What I find remarkable is that this text has been the industry's standard dummy text ever since some printed in the 1500s took a galley of type and scrambled it to make a type specimen book; it has survived not only four centuries of letter-by-letter resetting but even the leap into electronic typesetting, essentially unchanged except for an occasional 'ing' or 'y' thrown in. It's ironic that when the then-understood Latin was scrambled, it became as incomprehensible as Greek; the phrase 'it's Greek to me' and 'greeking' have common semantic roots! 34 | 35 | [Rick Pali](http://www.alienshore.com/seeking/) submitted this article to alt.fonts faqs because it was stated there that no one knew where it came from. 36 | -------------------------------------------------------------------------------- /_posts/2017-01-15-whats-jekyll.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: post 3 | title: What's Jekyll? 4 | tags: [Demo, Jekyll] 5 | comment: false 6 | --- 7 | 8 | [Jekyll](http://jekyllrb.com) is a static site generator, an open-source tool for creating simple yet powerful websites of all shapes and sizes. From [the project's readme](https://github.com/jekyll/jekyll/blob/master/README.markdown): 9 | 10 | > Jekyll is a simple, blog aware, static site generator. It takes a template directory [...] and spits out a complete, static website suitable for serving with Apache or your favorite web server. This is also the engine behind GitHub Pages, which you can use to host your project’s page or blog right here from GitHub. 11 | 12 | It's an immensely useful tool. Find out more by [visiting the project on GitHub](https://github.com/jekyll/jekyll). 13 | -------------------------------------------------------------------------------- /_sass/_base.scss: -------------------------------------------------------------------------------- 1 | /** 2 | * Reset some basic elements 3 | */ 4 | blockquote, 5 | body, 6 | dd, 7 | dl, 8 | figure, 9 | h1, 10 | h2, 11 | h3, 12 | h4, 13 | h5, 14 | h6, 15 | hr, 16 | ol, 17 | p, 18 | pre, 19 | ul { 20 | margin: 0; 21 | padding: 0; 22 | } 23 | /** 24 | * Basic styling 25 | */ 26 | body { 27 | font: $base-font-weight #{$base-font-size}/#{$base-line-height} $base-font-family; 28 | color: $text-color; 29 | background-color: $background-color; 30 | } 31 | /** 32 | * Set `margin-bottom` to maintain vertical rhythm 33 | */ 34 | %vertical-rhythm, 35 | blockquote, 36 | dl, 37 | figure, 38 | h1, 39 | h2, 40 | h3, 41 | h4, 42 | h5, 43 | h6, 44 | ol, 45 | p, 46 | pre, 47 | table, 48 | ul { 49 | margin-bottom: $spacing-unit / 2; 50 | } 51 | /** 52 | * Images 53 | */ 54 | img { 55 | max-width: 100%; 56 | vertical-align: middle; 57 | } 58 | /** 59 | * Figures 60 | */ 61 | figure > img { 62 | display: block; 63 | } 64 | 65 | figcaption { 66 | font-size: $small-font-size; 67 | } 68 | /** 69 | * Lists 70 | */ 71 | ol, 72 | ul { 73 | margin-left: $spacing-unit; 74 | } 75 | 76 | li { 77 | > ol, 78 | > ul { 79 | margin-bottom: 0; 80 | } 81 | } 82 | /** 83 | * Headings 84 | */ 85 | h1, 86 | h2, 87 | h3, 88 | h4, 89 | h5, 90 | h6 { 91 | font-weight: $base-font-weight; 92 | } 93 | /** 94 | * Links 95 | */ 96 | a { 97 | color: $link-color; 98 | text-decoration: none; 99 | 100 | &:hover { 101 | text-decoration: underline; 102 | } 103 | } 104 | /** 105 | * Blockquotes 106 | */ 107 | blockquote { 108 | color: $grey-color-dark; 109 | padding-left: $spacing-unit / 2; 110 | border-left: 2px solid $grey-color-light; 111 | font-style: italic; 112 | font-size: $small-font-size; 113 | 114 | > :last-child { 115 | margin-bottom: 0; 116 | } 117 | } 118 | /** 119 | * Code formatting 120 | */ 121 | code, 122 | pre { 123 | background-color: #fcfcfc; 124 | } 125 | 126 | code { 127 | padding: 1px 5px; 128 | font-family: $code-font-family; 129 | color: #f14e32; 130 | } 131 | 132 | pre { 133 | padding: 8px 12px; 134 | overflow-x: auto; 135 | border: 1px solid $grey-color-light; 136 | 137 | > code { 138 | border: 0; 139 | padding-right: 0; 140 | padding-left: 0; 141 | tab-size: 4; 142 | color: inherit; 143 | } 144 | } 145 | /** 146 | * Table 147 | */ 148 | table { 149 | width: 100%; 150 | max-width: 100%; 151 | border-collapse: separate; 152 | border-spacing: 0; 153 | table-layout: fixed; 154 | } 155 | 156 | td, 157 | th { 158 | padding: 0.5rem; 159 | line-height: inherit; 160 | } 161 | 162 | th { 163 | text-align: left; 164 | vertical-align: bottom; 165 | border-bottom: 2px solid $grey-color-light; 166 | } 167 | 168 | td { 169 | vertical-align: top; 170 | border-bottom: 1px solid $grey-color-light; 171 | } 172 | /** 173 | * Horizontal rule 174 | */ 175 | hr { 176 | border: none; 177 | border-top: 1px solid lighten($grey-color, 30%); 178 | margin: $spacing-unit auto; 179 | } 180 | /** 181 | * Clearfix 182 | */ 183 | %clearfix { 184 | &:after { 185 | content: ""; 186 | display: table; 187 | clear: both; 188 | } 189 | } 190 | -------------------------------------------------------------------------------- /_sass/_layout.scss: -------------------------------------------------------------------------------- 1 | .underlined { 2 | flex: 1; 3 | text-decoration: none; 4 | background-image: linear-gradient(to right, yellow 0, yellow 100%); 5 | background-position: 0 1.2em; 6 | background-size: 0 100%; 7 | background-repeat: no-repeat; 8 | transition: background .5s; 9 | &:hover, { 10 | background-size: 100% 100%; 11 | } 12 | &--thin { 13 | background-image: linear-gradient(to right, black 0, black 100%); 14 | } 15 | &--thick { 16 | background-position: 0 -0.1em; 17 | } 18 | &--offset { 19 | background-position: 0 0.2em; 20 | //didn't find another solution than mask the underline shape by a box shadow with the same color than the bg 21 | box-shadow: inset 0 -.5em 0 0 white; 22 | } 23 | &--gradient { 24 | background-position: 0 -0.1em; 25 | background-image: linear-gradient(to right, yellow 0, lightgreen 100%); 26 | } 27 | &--reverse { 28 | background-position: 100% -0.1em; 29 | transition: background 1s; //yep, that's a long link 30 | background-image: linear-gradient(to right, yellow 0, yellow 100%); 31 | } 32 | } 33 | 34 | /** 35 | * Site header 36 | */ 37 | .site-header { 38 | border-bottom: 1px solid $grey-color-light; 39 | margin-top: -2rem; 40 | max-width: $max-width; 41 | p { 42 | font-size: $small-font-size; 43 | } 44 | .site-intro { 45 | font-size: $big-font-size; 46 | } 47 | } 48 | 49 | .smallcap { 50 | //text-transform: lowercase; 51 | //font-variant: small-caps; 52 | font-size: 1.5rem; 53 | font-weight: bold; 54 | 55 | a, 56 | a:hover { 57 | text-decoration: none; 58 | letter-spacing: 2px; 59 | background-color: #333; 60 | color: #eee; 61 | padding-left: 0.5rem; 62 | padding-right: 0.5rem; 63 | padding-top: 0.2rem; 64 | padding-bottom: 0.2rem; 65 | } 66 | } 67 | /** 68 | * Page content 69 | */ 70 | .page-content { 71 | position: relative; 72 | padding: $spacing-unit ($spacing-unit * 0.75); 73 | margin: 1rem; 74 | box-sizing: border-box; 75 | max-width: $max-width; 76 | } 77 | /** 78 | * Pages 79 | */ 80 | .home { 81 | section + section { 82 | margin-top: $spacing-unit; 83 | max-width: $max-width; 84 | } 85 | } 86 | 87 | .post-list > li { 88 | margin-bottom: $spacing-unit / 4; 89 | list-style-type: none; 90 | margin-left: -2rem; 91 | 92 | a { 93 | color: $text-color; 94 | text-decoration: none; 95 | font-weight: normal; 96 | 97 | &:hover { 98 | color: $link-color; 99 | text-decoration: underline; 100 | } 101 | } 102 | 103 | time { 104 | font-size: $small-font-size; 105 | color: $grey-color; 106 | display: inline-block; 107 | } 108 | @include media-query($on-palm) { 109 | time { 110 | display: block; 111 | font-size: $small-font-size; 112 | } 113 | } 114 | } 115 | 116 | .tag-title { 117 | color: $link-color; 118 | } 119 | /** 120 | * Posts 121 | */ 122 | .post-header { 123 | margin-bottom: $spacing-unit; 124 | } 125 | 126 | .post-title { 127 | font-size: 2rem; 128 | letter-spacing: -1px; 129 | line-height: 1.2; 130 | margin-bottom: 0.5rem; 131 | font-weight: bold; 132 | } 133 | 134 | .post-meta { 135 | font-size: $small-font-size; 136 | font-family: $code-font-family; 137 | color: $grey-color; 138 | a, a:visited { 139 | color: $grey-color-dark; 140 | } 141 | .tags { 142 | a, a:visited { 143 | background: $grey-color-light; 144 | padding: 0.1rem 0.5rem; 145 | } 146 | } 147 | } 148 | 149 | .post-content { 150 | margin-bottom: $spacing-unit; 151 | font-weight: normal; 152 | 153 | h1, 154 | h2, 155 | h3, 156 | h4, 157 | h5, 158 | h6 { 159 | margin-top: 2rem; 160 | font-weight: normal; 161 | } 162 | 163 | h1, 164 | h2 { 165 | font-size: 2rem; 166 | } 167 | 168 | h3 { 169 | font-size: 1.5rem; 170 | } 171 | 172 | h4 { 173 | font-size: 1.25rem; 174 | } 175 | 176 | h5, 177 | h6 { 178 | font-size: 1rem; 179 | } 180 | } 181 | 182 | .copyright { 183 | margin-top: $spacing-unit; 184 | font-size: $small-font-size; 185 | font-family: $code-font-family; 186 | p { 187 | color: $grey-color; 188 | a, a:visited { 189 | color: $grey-color-dark; 190 | } 191 | } 192 | } 193 | -------------------------------------------------------------------------------- /_sass/_syntax-highlighting.scss: -------------------------------------------------------------------------------- 1 | /* Solarized Light 2 | 3 | For use with Jekyll and Pygments 4 | 5 | http://ethanschoonover.com/solarized 6 | 7 | SOLARIZED HEX ROLE 8 | --------- -------- ------------------------------------------ 9 | base01 #586e75 body text / default code / primary content 10 | base1 #93a1a1 comments / secondary content 11 | base3 #fdf6e3 background 12 | orange #cb4b16 constants 13 | red #dc322f regex, special keywords 14 | blue #268bd2 reserved keywords 15 | cyan #2aa198 strings, numbers 16 | green #859900 operators, other keywords 17 | */ 18 | 19 | .highlight { 20 | background-color: #fcfcfc; 21 | color: #586e75; 22 | .c { color: #93a1a1 } /* Comment */ 23 | .err{ color: #586e75 } /* Error */ 24 | .g{ color: #586e75 } /* Generic */ 25 | .k{ color: #859900 } /* Keyword */ 26 | .l{ color: #586e75 } /* Literal */ 27 | .n{ color: #586e75 } /* Name */ 28 | .o{ color: #859900 } /* Operator */ 29 | .x{ color: #cb4b16 } /* Other */ 30 | .p{ color: #586e75 } /* Punctuation */ 31 | .cm{ color: #93a1a1 } /* Comment.Multiline */ 32 | .cp{ color: #859900 } /* Comment.Preproc */ 33 | .c1{ color: #93a1a1 } /* Comment.Single */ 34 | .cs{ color: #859900 } /* Comment.Special */ 35 | .gd{ color: #2aa198 } /* Generic.Deleted */ 36 | .ge{ color: #586e75; font-style: italic } /* Generic.Emph */ 37 | .gr{ color: #dc322f } /* Generic.Error */ 38 | .gh{ color: #cb4b16 } /* Generic.Heading */ 39 | .gi{ color: #859900 } /* Generic.Inserted */ 40 | .go{ color: #586e75 } /* Generic.Output */ 41 | .gp{ color: #586e75 } /* Generic.Prompt */ 42 | .gs{ color: #586e75; font-weight: bold } /* Generic.Strong */ 43 | .gu{ color: #cb4b16 } /* Generic.Subheading */ 44 | .gt{ color: #586e75 } /* Generic.Traceback */ 45 | .kc{ color: #cb4b16 } /* Keyword.Constant */ 46 | .kd{ color: #268bd2 } /* Keyword.Declaration */ 47 | .kn{ color: #859900 } /* Keyword.Namespace */ 48 | .kp{ color: #859900 } /* Keyword.Pseudo */ 49 | .kr{ color: #268bd2 } /* Keyword.Reserved */ 50 | .kt{ color: #dc322f } /* Keyword.Type */ 51 | .ld{ color: #586e75 } /* Literal.Date */ 52 | .m{ color: #2aa198 } /* Literal.Number */ 53 | .s{ color: #2aa198 } /* Literal.String */ 54 | .na{ color: #586e75 } /* Name.Attribute */ 55 | .nb{ color: #B58900 } /* Name.Builtin */ 56 | .nc{ color: #268bd2 } /* Name.Class */ 57 | .no{ color: #cb4b16 } /* Name.Constant */ 58 | .nd{ color: #268bd2 } /* Name.Decorator */ 59 | .ni{ color: #cb4b16 } /* Name.Entity */ 60 | .ne{ color: #cb4b16 } /* Name.Exception */ 61 | .nf{ color: #268bd2 } /* Name.Function */ 62 | .nl{ color: #586e75 } /* Name.Label */ 63 | .nn{ color: #586e75 } /* Name.Namespace */ 64 | .nx{ color: #586e75 } /* Name.Other */ 65 | .py{ color: #586e75 } /* Name.Property */ 66 | .nt{ color: #268bd2 } /* Name.Tag */ 67 | .nv{ color: #268bd2 } /* Name.Variable */ 68 | .ow{ color: #859900 } /* Operator.Word */ 69 | .w{ color: #586e75 } /* Text.Whitespace */ 70 | .mf{ color: #2aa198 } /* Literal.Number.Float */ 71 | .mh{ color: #2aa198 } /* Literal.Number.Hex */ 72 | .mi{ color: #2aa198 } /* Literal.Number.Integer */ 73 | .mo{ color: #2aa198 } /* Literal.Number.Oct */ 74 | .sb{ color: #93a1a1 } /* Literal.String.Backtick */ 75 | .sc{ color: #2aa198 } /* Literal.String.Char */ 76 | .sd{ color: #586e75 } /* Literal.String.Doc */ 77 | .s2{ color: #2aa198 } /* Literal.String.Double */ 78 | .se{ color: #cb4b16 } /* Literal.String.Escape */ 79 | .sh{ color: #586e75 } /* Literal.String.Heredoc */ 80 | .si{ color: #2aa198 } /* Literal.String.Interpol */ 81 | .sx{ color: #2aa198 } /* Literal.String.Other */ 82 | .sr{ color: #dc322f } /* Literal.String.Regex */ 83 | .s1{ color: #2aa198 } /* Literal.String.Single */ 84 | .ss{ color: #2aa198 } /* Literal.String.Symbol */ 85 | .bp{ color: #268bd2 } /* Name.Builtin.Pseudo */ 86 | .vc{ color: #268bd2 } /* Name.Variable.Class */ 87 | .vg{ color: #268bd2 } /* Name.Variable.Global */ 88 | .vi{ color: #268bd2 } /* Name.Variable.Instance */ 89 | .il{ color: #2aa198 } /* Literal.Number.Integer.Long */ 90 | } 91 | -------------------------------------------------------------------------------- /about.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: page 3 | title: About 4 | --- 5 | 6 | Introduce yourself here... so people will know who you are and what you do.. blah..blah..blah.. 7 | -------------------------------------------------------------------------------- /categories.html: -------------------------------------------------------------------------------- 1 | --- 2 | layout: default 3 | title: Categories 4 | --- 5 | 6 |
7 | 11 | 12 |
13 | {% for tag in site.categories %} 14 |

{{ tag[0] }}

15 | 25 | {% endfor %} 26 |
27 | 28 |
29 | -------------------------------------------------------------------------------- /css/main.scss: -------------------------------------------------------------------------------- 1 | --- 2 | # Only the main Sass file needs front matter (the dashes are enough) 3 | --- 4 | @charset "utf-8"; 5 | 6 | // Our variables 7 | $base-font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; 8 | $code-font-family: Inconsolata, Monaco, Consolas, monospace; 9 | $base-font-size: 16px; 10 | $base-font-weight: 300; 11 | $small-font-size: 0.875rem; 12 | $big-font-size: 1.3rem; 13 | $base-line-height: 1.5; 14 | 15 | $spacing-unit: 2rem; 16 | $max-width: 48rem; 17 | 18 | $text-color: #333; 19 | $background-color: #fff; 20 | $link-color: #0645ad; 21 | 22 | $grey-color: #aaa; 23 | $grey-color-light: lighten($grey-color, 25%); 24 | $grey-color-dark: darken($grey-color, 25%); 25 | 26 | // Width of the content area 27 | $on-palm: 600px; 28 | $on-: 800px; 29 | 30 | // Use media queries like this: 31 | // @include media-query($on-palm) { 32 | // .wrapper { 33 | // padding-right: $spacing-unit / 2; 34 | // padding-left: $spacing-unit / 2; 35 | // } 36 | // } 37 | @mixin media-query($device) { 38 | @media screen and (max-width: $device) { 39 | @content; 40 | } 41 | } 42 | 43 | // Import partials from `sass_dir` (defaults to `_sass`) 44 | @import 45 | "base", 46 | "layout", 47 | "syntax-highlighting" 48 | ; 49 | -------------------------------------------------------------------------------- /feed.xml: -------------------------------------------------------------------------------- 1 | --- 2 | layout: null 3 | --- 4 | 5 | 6 | 7 | {{ site.title | xml_escape }} 8 | {{ site.description | xml_escape }} 9 | {{ site.url }}{{ site.baseurl }}/ 10 | 11 | {{ site.time | date_to_rfc822 }} 12 | {{ site.time | date_to_rfc822 }} 13 | Jekyll v{{ jekyll.version }} 14 | {% for post in site.posts limit:10 %} 15 | 16 | {{ post.title | xml_escape }} 17 | {{ post.content | xml_escape }} 18 | {{ post.date | date_to_rfc822 }} 19 | {{ post.url | prepend: site.baseurl | prepend: site.url }} 20 | {{ post.url | prepend: site.baseurl | prepend: site.url }} 21 | {% for tag in post.tags %} 22 | {{ tag | xml_escape }} 23 | {% endfor %} 24 | {% for cat in post.categories %} 25 | {{ cat | xml_escape }} 26 | {% endfor %} 27 | 28 | {% endfor %} 29 | 30 | 31 | -------------------------------------------------------------------------------- /index.html: -------------------------------------------------------------------------------- 1 | --- 2 | layout: default 3 | --- 4 |
5 | 10 |
11 |
    12 | {% for post in site.posts %} 13 |
  • 14 | {{ post.title }} 15 |
  • 16 | {% endfor %} 17 |
18 |
19 |
20 | -------------------------------------------------------------------------------- /renovate.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://docs.renovatebot.com/renovate-schema.json", 3 | "extends": [ 4 | "local>heiswayi/renovate-config" 5 | ] 6 | } 7 | -------------------------------------------------------------------------------- /script/cibuild.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | set -e # halt script on error 3 | 4 | bundle exec jekyll build 5 | bundle exec htmlproofer ../_site --disable-external 6 | -------------------------------------------------------------------------------- /tagged.html: -------------------------------------------------------------------------------- 1 | --- 2 | layout: default 3 | title: Tagged 4 | --- 5 | 6 | {% assign rawtags = "" %} 7 | {% for post in site.posts %} 8 | {% assign ttags = post.tags | join:'|' | append:'|' %} 9 | {% assign rawtags = rawtags | append:ttags %} 10 | {% endfor %} 11 | {% assign rawtags = rawtags | split:'|' | sort %} 12 | 13 | {% assign tags = "" %} 14 | {% for tag in rawtags %} 15 | {% if tag != "" %} 16 | {% if tags == "" %} 17 | {% assign tags = tag | split:'|' %} 18 | {% endif %} 19 | {% unless tags contains tag %} 20 | {% assign tags = tags | join:'|' | append:'|' | append:tag | split:'|' %} 21 | {% endunless %} 22 | {% endif %} 23 | {% endfor %} 24 | 25 |
26 | 30 | 31 |
32 | {% for tag in tags %} 33 |

# {{ tag }}

34 |
    35 | {% for post in site.posts %} 36 | {% if post.tags contains tag %} 37 |
  • 38 | {{ post.title }} 39 |
  • 40 | {% endif %} 41 | {% endfor %} 42 |
43 | {% endfor %} 44 |
45 | 46 |
47 | -------------------------------------------------------------------------------- /textlog.gemspec: -------------------------------------------------------------------------------- 1 | Gem::Specification.new do |spec| 2 | spec.name = "textlog" 3 | spec.version = "1.5.0" 4 | spec.authors = ["Heiswayi Nrird"] 5 | spec.email = ["heiswayi@nullableobject.com"] 6 | 7 | spec.summary = "A minimalist, lefty-style Jekyll theme for documentation based blog" 8 | spec.homepage = "https://github.com/heiswayi/textlog" 9 | spec.license = "MIT" 10 | 11 | spec.metadata["plugin_type"] = "theme" 12 | 13 | spec.files = `git ls-files -z`.split("\x0").select { |f| f.match(%r!^(assets|_layouts|_includes|_sass|(LICENSE|README)((\.(txt|md|markdown)|$)))!i) } 14 | 15 | spec.add_runtime_dependency "jekyll", [">= 3.5", "< 5.0"] 16 | 17 | spec.add_development_dependency "bundler", "~> 1.15" 18 | spec.add_development_dependency "rake", "~> 12.0" 19 | end 20 | --------------------------------------------------------------------------------