├── .gitignore ├── 404.html ├── Gemfile ├── LICENSE.md ├── README.md ├── _config.yml ├── _data └── settings.yml ├── _includes ├── disqus.html ├── footer.html ├── google-analytics.html ├── head.html ├── header.html ├── menu.html ├── post-date.html ├── read-time.html ├── related-posts.html ├── social-icons.html └── social-sharing.html ├── _layouts ├── archive.html ├── default.html ├── home.html ├── page.html └── post.html ├── _posts ├── 2013-04-04-about-the-author.md ├── 2013-10-10-learning-resources.md ├── 2014-01-01-text-formatting-examples.md ├── 2015-10-10-getting-started.md └── 2016-01-01-welcome-to-lagrange.md ├── _sass ├── _-sections-dir.scss ├── _base.scss ├── _code.scss ├── _default.scss ├── _home.scss ├── _post.scss └── _social-icons.scss ├── assets ├── css │ ├── main.scss │ └── syntax.css └── img │ ├── cards.jpg │ ├── cutting.jpg │ ├── forest.jpg │ ├── mountains.jpg │ └── spools.jpg ├── favicon.ico ├── index.html ├── lagrange.gemspec ├── menu ├── about.md ├── contact.md └── writing.md └── rss-feed.xml /.gitignore: -------------------------------------------------------------------------------- 1 | _site 2 | Gemfile.lock 3 | *.gem 4 | .sass-cache 5 | .jekyll-metadata 6 | .DS_Store 7 | .jekyll-cache 8 | -------------------------------------------------------------------------------- /404.html: -------------------------------------------------------------------------------- 1 | --- 2 | layout: default 3 | title: "404: Page not found" 4 | permalink: 404.html 5 | --- 6 | 7 |
8 |

404: Page not found

9 | 10 | 11 | 12 |

Ahhhhh!

13 | 14 |

Sorry, we've misplaced that URL or it's pointing to something that doesn't exist. Head back home to try finding it again, or search for it on the archives page.

15 |
16 | -------------------------------------------------------------------------------- /Gemfile: -------------------------------------------------------------------------------- 1 | source "https://rubygems.org" 2 | gemspec 3 | -------------------------------------------------------------------------------- /LICENSE.md: -------------------------------------------------------------------------------- 1 | # The MIT License (MIT) 2 | 3 | Copyright (c) 2021 Paul Le 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 | # Lagrange 2 | 3 | Lagrange is a minimalist Jekyll theme for running a personal blog or site for free through [Github Pages](https://pages.github.com/), or on your own server. Everything that you will ever need to know about this Jekyll theme is included in the README below, which you can also find in [the demo site](https://lenpaul.github.io/Lagrange/). For a guide on how to deploy a Jekyll site using GitHub Pages, please check out [this article](https://paulle.ca/jekyll-tutorials/deploy-jekyll-site-github-pages). 4 | 5 | If you like my work then please consider supporting me with [Ko-fi](https://ko-fi.com/paulle). 6 | 7 | ![alt text](https://user-images.githubusercontent.com/8409329/32631384-17107870-c56e-11e7-932f-deeb7c12e4db.png "Lagrange Demo Image") 8 | 9 | ## Notable features 10 | 11 | * Compatible with GitHub Pages. 12 | 13 | * Support for Jekyll's built-in Sass/SCSS preprocessor and data files for making customizing easier. 14 | 15 | * [Google Analytics](https://www.google.com/analytics/) support. 16 | 17 | * Commenting support powered by [Disqus](https://disqus.com/). 18 | 19 | * Optimized for search engines. 20 | 21 | * LaTeX support through [MathJax](https://www.mathjax.org/). 22 | 23 | ## Table of Contents 24 | 25 | 1. [Introduction](#introduction) 26 | 1. [What is Jekyll](#what-is-jekyll) 27 | 2. [Never Used Jeykll Before?](#never-used-jekyll-before) 28 | 2. [Installation](#installation) 29 | 1. [GitHub Pages Installation](#github-pages-installation) 30 | 2. [Local Installation](#local-installation) 31 | 3. [Directory Structure](#directory-structure) 32 | 4. [Starting From Scratch](#starting-from-scratch) 33 | 3. [Configuration](#configuration) 34 | 1. [Sample Posts](#sample-posts) 35 | 2. [Site Variables](#site-variables) 36 | 3. [Adding Menu Pages](#adding-menu-pages) 37 | 4. [Posts](#posts) 38 | 5. [Layouts](#layouts) 39 | 6. [YAML Front Block Matter](#yaml-front-block-matter) 40 | 4. [Features](#features) 41 | 1. [Design Considerations](#design-considerations) 42 | 2. [Disqus](#disqus) 43 | 3. [Google Analytics](#google-analytics) 44 | 4. [RSS Feeds](#rss-feeds) 45 | 5. [Social Media Icons](#social-media-icons) 46 | 6. [MathJax](#mathjax) 47 | 7. [Syntax Highlighting](#syntax-highlighting) 48 | 8. [Markdown](#markdown) 49 | 5. [Everything Else](#everything-else) 50 | 6. [Contributing](#Contributing) 51 | 7. [Questions?](#questions) 52 | 8. [Credits](#credits) 53 | 9. [License](#license) 54 | 55 | ## Introduction 56 | 57 | Lagrange is a Jekyll theme that was built to be 100% compatible with [GitHub Pages](https://pages.github.com/). If you are unfamiliar with GitHub Pages, you can check out [their documentation](https://help.github.com/categories/github-pages-basics/) for more information. [Jonathan McGlone's guide](http://jmcglone.com/guides/github-pages/) on creating and hosting a personal site on GitHub is also a good resource. 58 | 59 | ### What is Jekyll? 60 | 61 | Jekyll is a simple, blog-aware, static site generator for personal, project, or organization sites. Basically, Jekyll takes your page content along with template files and produces a complete website. For more information, visit the [official Jekyll site](https://jekyllrb.com/docs/home/) for their documentation. Codecademy also offers a great course on [how to deploy a Jekyll site](https://www.codecademy.com/learn/deploy-a-website) for complete beginners. 62 | 63 | ### Never Used Jekyll Before? 64 | 65 | The beauty of hosting your website on GitHub is that you don't have to actually have Jekyll installed on your computer. Everything can be done through the GitHub code editor, with minimal knowledge of how to use Jekyll or the command line. All you have to do is add your posts to the `_posts` directory and edit the `_config.yml` file to change the site settings. With some rudimentary knowledge of HTML and CSS, you can even modify the site to your liking. This can all be done through the GitHub code editor, which acts like a content management system (CMS). 66 | 67 | ## Installation 68 | 69 | ### GitHub Pages Installation 70 | 71 | To start using Jekyll right away with GitHub Pages, [fork the Lagrange repository on GitHub](https://github.com/LeNPaul/Lagrange/fork). From there, you can rename your repository to `USERNAME.github.io`, where `USERNAME` is your GitHub username, and edit the `settings.yml` file in the `_data` folder to your liking. Ensure that you have a branch named `gh-pages`. Your website should be ready immediately at 'http://USERNAME.github.io'. Note: if you are hosting several sites under the same GitHub username, then you will have to use [Project Pages instead of User Pages](https://help.github.com/articles/user-organization-and-project-pages/) - just change the repository name to something other than 'http://USERNAME.github.io'. 72 | 73 | Head over to the `_posts` directory to view all the posts that are currently on the website, and to see examples of what post files generally look like. You can simply just duplicate the template post and start adding your own content. 74 | 75 | ### Local Installation 76 | 77 | For a full local installation of Lagrange, [download your own copy of Lagrange](https://github.com/LeNPaul/Lagrange/archive/gh-pages.zip) and unzip it into it's own directory. From there, open up your favorite command line tool, enter `bundle install`, and then enter `jekyll serve`. Your site should be up and running locally at [http://localhost:4000](http://localhost:4000). 78 | 79 | ### Directory Structure 80 | 81 | If you are familiar with Jekyll, then the Lagrange directory structure shouldn't be too difficult to navigate. The following some highlights of the differences you might notice between the default directory structure. More information on what these folders and files do can be found in the [Jekyll documentation site](https://jekyllrb.com/docs/structure/). 82 | 83 | ```bash 84 | Lagrange/ 85 | ├── _data # Data files 86 | | └── settings.yml # Theme settings and custom text 87 | ├── _includes # Theme includes 88 | ├── _layouts # Theme layouts (see below for details) 89 | ├── _posts # Where all your posts will go 90 | ├── assets # Style sheets and images are found here 91 | | ├── css # Style sheets go here 92 | | | └── main.css # Main CSS file 93 | | | └── syntax.css # Style sheet for code syntax highlighting 94 | | └── img # Images go here 95 | ├── menu # Menu pages 96 | ├── _config.yml # Site build settings 97 | ├── Gemfile # Ruby Gemfile for managing Jekyll plugins 98 | ├── index.md # Home page 99 | ├── LICENSE.md # License for this theme 100 | ├── README.md # Includes all of the documentation for this theme 101 | └── rss-feed.xml # Generates RSS 2.0 file which Jekyll points to 102 | ``` 103 | 104 | ### Starting From Scratch 105 | 106 | To completely start from scratch, simply delete all the files in the `_posts`, `assets/img`, and `menu` folder, and add your own content. You may also replace the `README.md` file with your own README. Everything in the `_data` folder and `_config.yml` file can be edited to suit your needs. You may also change the `favicon.ico` file to your own favicon. 107 | 108 | ## Configuration 109 | 110 | ### Sample Posts 111 | 112 | Visit the [the demo site](https://lenpaul.github.io/Lagrange/) to find sample posts that show what different types of text formatting look like. You can find these posts in the `_posts` folder, which show what the best practices for setting up your own site are. 113 | 114 | ### Site Variables 115 | 116 | To change site build settings, edit the `_config.yml` file found in the root of your repository, which you can tweak however you like. More information on configuration settings and plugins can be found on [the Jekyll documentation site](https://jekyllrb.com/docs/configuration/). This is also where you will be able to customize the title, description, and the author/owner of your site. 117 | 118 | If you are hosting your site on GitHub Pages, then committing a change to the `_config.yml` file will force a rebuild of your site with Jekyll. Any changes made should be viewable soon after. If you are hosting your site locally, then you must run `jekyll serve` again for the changes to take place. 119 | 120 | In the `settings.yml` file found in the `_data` folder, you will be able to customize your site settings, such as setting Disqus comments, Google Analytics, what shows up in your menu, and social media information. 121 | 122 | ### Adding Menu Pages 123 | 124 | The menu pages are found in the `menu` folder in the root directory, and can be added to your menu in the `settings.yml` file. 125 | 126 | ### Posts 127 | 128 | You will find example posts in your `_posts` directory. Go ahead and edit any post and re-build the site to see your changes. You can rebuild the site in many different ways, but the most common way is to run `jekyll serve`, which launches a web server and auto-regenerates your site when a file is updated. 129 | 130 | To add new posts, simply add a file in the `_posts` directory that follows the convention of `YYYY-MM-DD-name-of-post.md` and includes the necessary front matter. Take a look at any sample post to get an idea about how it works. If you already have a website built with Jekyll, simply copy over your posts to migrate to Lagrange. 131 | 132 | ### Layouts 133 | 134 | There are two main layout options that are included with Lagrange: post and page. Layouts are specified through the [YAML front block matter](https://jekyllrb.com/docs/frontmatter/). Any file that contains a YAML front block matter will be processed by Jekyll. For example: 135 | 136 | ``` 137 | --- 138 | layout: post 139 | title: "Example Post" 140 | --- 141 | ``` 142 | 143 | Examples of what posts looks like can be found in the `_posts` directory, which includes this post you are reading right now. Posts are the basic blog post layout, which includes a header image, post content, author name, date published, social media sharing links, and related posts. 144 | 145 | Pages are essentially the post layout without any of the extra features of the posts layout. An example of what pages look like can be found at the [About](https://lenpaul.github.io/Lagrange/menu/about.html) and [Contacts](https://lenpaul.github.io/Lagrange/menu/contact.html). 146 | 147 | In addition to the two main layout options above, there are also custom layouts that have been created for the [home page](https://lenpaul.github.io/Lagrange/) and the [archives page](https://lenpaul.github.io/Lagrange/menu/writing.html). These are simply just page layouts with some [Liquid template code](https://shopify.github.io/liquid/). Check out the `index.html` file in the root directory for what the code looks like. 148 | 149 | ### YAML Front Block Matter 150 | 151 | The recommended YAML front block is: 152 | 153 | ``` 154 | --- 155 | layout: 156 | title: 157 | author: 158 | categories: 159 | tags: [] 160 | image: 161 | --- 162 | ``` 163 | 164 | `layout` specifies which layout to use, `title` is the page or post title, `categories` can be used to better organize your posts, `tags` are used when generating related posts based on the topic of the post, and `image` specifies which images to use. Have a look at some posts in the `_posts` directory to see how these variables are set. 165 | 166 | ## Features 167 | 168 | ### Design Considerations 169 | 170 | Lagrange was designed to be a minimalist theme in order for the focus to remain on your content. For example, links are signified mainly through an underline text-decoration, in order to maximize the perceived affordance of clickability (I originally just wanted to make the links a darker shade of grey). 171 | 172 | ### Disqus 173 | 174 | Lagrange supports comments at the end of posts through [Disqus](https://disqus.com/). In order to activate Disqus commenting, set `disqus.comments` to true in the `_data/settings.yml` file. If you do not have a Disqus account already, you will have to set one up, and create a profile for your website. You will be given a `disqus_shortname` that will be used to generate the appropriate comments sections for your site. More information on [how to set up Disqus](http://www.perfectlyrandom.org/2014/06/29/adding-disqus-to-your-jekyll-powered-github-pages/). 175 | 176 | ### Google Analytics 177 | 178 | It is possible to track your site statistics through [Google Analytics](https://www.google.com/analytics/). Similar to Disqus, you will have to create an account for Google Analytics, and enter the correct Google ID for your site under `google-ID` in the `settings.yml` file. More information on [how to set up Google Analytics](https://michaelsoolee.com/google-analytics-jekyll/). Note: If you are not using Google Analytics, please change `google-ID` to an empty string. 179 | 180 | ### RSS Feeds 181 | 182 | Atom is supported by default through [jekyll-feed](https://github.com/jekyll/jekyll-feed). With jekyll-feed, you can set configuration variables such as 'title', 'description', and 'author', in the `_config.yml` file. 183 | 184 | RSS 2.0 is also supported through [RSS auto-discovery](http://www.rssboard.org/rss-autodiscovery). The `rss-feed.xml` file (based on the template found at [jekyll-rss-feeds](https://github.com/snaptortoise/jekyll-rss-feeds)) that the feed path points to when using RSS 2.0 is automatically generated based on the appropriate configuration variables found in `_data/settings.yml`. 185 | 186 | To use RSS 2.0, ensure the following is done: 187 | 188 | * Uncomment the last two lines in the `_config.yml` file. 189 | 190 | * In `_data/settings.yml`, under 'social', comment out the rss-square that points to `feed.xml`, and uncomment the rss-square that points to `rss-feed.xml`. 191 | 192 | * In `_includes/head.html`, comment out `{% feed_meta %}` and uncomment the line under the RSS 2.0 comment. 193 | 194 | ### Social Media Icons 195 | 196 | All social media icons are courtesy of [Font Awesome](http://fontawesome.io/). You can change which icons appear, as well as the account that they link to, in the `settings.yml` file in the `_data` folder. 197 | 198 | ### MathJax 199 | 200 | Lagrange comes out of the box with [MathJax](https://www.mathjax.org/), which allows you to display mathematical equations in your posts through the use of [LaTeX](http://www.andy-roberts.net/writing/latex/mathematics_1). 201 | 202 | ### Syntax Highlighting 203 | 204 | Lagrange provides syntax highlighting through [fenced code blocks](https://help.github.com/articles/creating-and-highlighting-code-blocks/). Syntax highlighting allows you to display source code in different colors and fonts depending on what programming language is being displayed. You can find the full list of supported programming languages [here](https://github.com/jneen/rouge/wiki/List-of-supported-languages-and-lexers). Another option is to embed your code through [Gist](https://en.support.wordpress.com/gist/). 205 | 206 | ### Markdown 207 | 208 | As always, Jekyll offers support for GitHub Flavored Markdown, which allows you to format your posts using the [Markdown syntax](https://guides.github.com/features/mastering-markdown/). Examples of these text formatting features can be seen below. You can find this post in the `_posts` directory as well as the `README.md` file. 209 | 210 | ## Everything Else 211 | 212 | Check out the [Jekyll docs][jekyll-docs] for more info on how to get the most out of Jekyll. File all bugs/feature requests at [Jekyll's GitHub repo][jekyll-gh]. If you have questions, you can ask them on [Jekyll Talk][jekyll-talk]. 213 | 214 | [jekyll-docs]: http://jekyllrb.com/docs/home 215 | [jekyll-gh]: https://github.com/jekyll/jekyll 216 | [jekyll-talk]: https://talk.jekyllrb.com/ 217 | 218 | ## Contributing 219 | 220 | If you would like to make a feature request, or report a bug or typo in the documentation, then please [submit a GitHub issue](https://github.com/LeNPaul/Lagrange/issues/new). If you would like to make a contribution, then feel free to [submit a pull request](https://help.github.com/articles/about-pull-requests/) - as a bonus, I will credit all contributors below! If this is your first pull request, it may be helpful to read up on the [GitHub Flow](https://guides.github.com/introduction/flow/) first. 221 | 222 | Lagrange has been designed as a base for users to customize and fit to their own unique needs. Please keep this in mind when requesting features and/or submitting pull requests. Some examples of changes that I would love to see are things that would make the site easier to use, or better ways of doing things. Please avoid changes that do not benefit the majority of users. 223 | 224 | ## Questions? 225 | 226 | This theme is completely free and open source software. You may use it however you want, as it is distributed under the [MIT License](http://choosealicense.com/licenses/mit/). If you are having any problems, any questions or suggestions, feel free to [tweet at me](https://twitter.com/intent/tweet?text=My%question%about%Lagrange%is:%&via=paululele), or [file a GitHub issue](https://github.com/lenpaul/lagrange/issues/new). 227 | 228 | ## Credits 229 | 230 | ### Creator 231 | 232 | #### Paul Le 233 | 234 | * [www.lenpaul.com](http://lenpaul.com) 235 | 236 | * [Twitter](https://twitter.com/paululele) 237 | 238 | * [GitHub](https://github.com/LeNPaul) 239 | 240 | ### Contributors 241 | 242 | * [nikolalukovic](https://github.com/nikolalukovic) 243 | 244 | * [gmemstr](https://github.com/gmemstr) 245 | 246 | * [lynn9388](https://github.com/lynn9388) 247 | 248 | * [robqiao](https://github.com/robqiao) 249 | 250 | * [Mauladen](https://github.com/Mauladen) 251 | 252 | * [dhanus](https://github.com/dhanus) 253 | 254 | * [mlewand](https://github.com/mlewand) 255 | 256 | * [Hguimaraes](https://github.com/Hguimaraes) 257 | 258 | * [ilhamadun](https://github.com/ilhamadun) 259 | 260 | * [brianclemens](https://github.com/brianclemens) 261 | 262 | * [leyhline](https://github.com/leyhline) 263 | 264 | * [aritra24](https://github.com/aritra24) 265 | 266 | * [DuckSoft](https://github.com/DuckSoft) 267 | 268 | * [larrylawl](https://github.com/larrylawl) 269 | 270 | * [borting](https://github.com/borting) 271 | 272 | ### Icons + Demo Images 273 | 274 | * [Death to Stock](https://deathtothestockphoto.com/) 275 | 276 | * [Font Awesome](http://fontawesome.io/) 277 | 278 | ### Other 279 | 280 | * [Jekyll](https://jekyllrb.com/) 281 | 282 | * [Free Code Camp](https://www.freecodecamp.org) 283 | 284 | * [Khan Academy](https://www.khanacademy.org/) 285 | 286 | ## License 287 | 288 | Open sourced under the [MIT license](https://github.com/LeNPaul/Lagrange/blob/gh-pages/LICENSE.md). 289 | -------------------------------------------------------------------------------- /_config.yml: -------------------------------------------------------------------------------- 1 | # Site Build Settings 2 | 3 | # Jekyll-paginate-v2 configuration 4 | # pagination: 5 | # enabled: true 6 | # per_page: 5 7 | # permalink: '/page/:num/' 8 | # title: ':title - page :num of :max' 9 | # limit: 0 10 | # sort_field: 'date' 11 | # sort_reverse: true 12 | 13 | # jekyll-paginate configuration 14 | paginate: 5 15 | 16 | # Build settings 17 | markdown: kramdown 18 | highlighter: rouge 19 | permalink: /:title 20 | plugins: [jekyll-paginate, jekyll-sitemap, jekyll-feed, jekyll-seo-tag] 21 | 22 | # Customise atom feed settings (this is where Jekyll-Feed gets configuration information) 23 | title: 'Lagrange' 24 | description: 'a minimalist Jekyll theme' 25 | author: 'Paul Le' 26 | 27 | # RSS 2.0 can be used instead of Atom by uncommenting following two lines 28 | #feed: 29 | # path: rss-feed.xml 30 | -------------------------------------------------------------------------------- /_data/settings.yml: -------------------------------------------------------------------------------- 1 | # Change 'comments' to true for Disqus comments 2 | disqus: 3 | comments: false 4 | disqus_shortname: 'https-lenpaul-github-io-lagrange' 5 | 6 | # If you are not using Google Analytics, please change 'google-ID' to an empty string 7 | google-ID: 'UA-112060364-1' 8 | 9 | menu: 10 | - {name: 'About', url: 'about.html'} 11 | - {name: 'Writing', url: 'writing.html'} 12 | - {name: 'Contact', url: 'contact.html'} 13 | 14 | # Available social icons are powered by Font Awesome, so you can use any icon that they offer 15 | social: 16 | - {icon: 'github', link: 'https://www.github.com/lenpaul'} 17 | - {icon: 'twitter', link: 'https://twitter.com/paululele'} 18 | - {icon: 'linkedin', link: 'http://www.linkedin.com/in/lenpaul/'} 19 | - {icon: 'envelope', link: 'mailto:l.nguyen.paul@gmail.com'} 20 | - {icon: 'rss-square', link: '/feed.xml'} 21 | # - {icon: 'rss-square', link: '/rss-feed.xml'} 22 | 23 | # Customize site text 24 | pagination: 25 | next_page: 'Newer' 26 | previous_page: 'Older' 27 | 28 | sharing_button_prompt: 'Feel free to share!' 29 | 30 | related_posts: 'You may also enjoy:' 31 | 32 | post_date_prefix: 'Written on' 33 | -------------------------------------------------------------------------------- /_includes/disqus.html: -------------------------------------------------------------------------------- 1 |
2 |
3 | 12 | 13 | comments powered by Disqus 14 |
15 | -------------------------------------------------------------------------------- /_includes/footer.html: -------------------------------------------------------------------------------- 1 | 5 | -------------------------------------------------------------------------------- /_includes/google-analytics.html: -------------------------------------------------------------------------------- 1 | 9 | -------------------------------------------------------------------------------- /_includes/head.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | {% if page.title == "Home" %} 4 | {{ site.title }} | {{ site.description }} 5 | {% else %} 6 | {{ page.title }} | {{ site.title }} 7 | {% endif %} 8 | 9 | 10 | 11 | 12 | 13 | 14 | {% feed_meta %} 15 | 16 | 18 | 19 | 20 | 21 | 22 | 30 | 31 | {% include google-analytics.html %} 32 | 33 | {% seo %} 34 | 35 | -------------------------------------------------------------------------------- /_includes/header.html: -------------------------------------------------------------------------------- 1 |
2 |

3 | {{ site.title }} 4 | {{ site.description }} 5 | {% include menu.html %} 6 |

7 |
8 | -------------------------------------------------------------------------------- /_includes/menu.html: -------------------------------------------------------------------------------- 1 | 11 | -------------------------------------------------------------------------------- /_includes/post-date.html: -------------------------------------------------------------------------------- 1 | 2 | {{ site.data.settings.post_date_prefix }} 3 | {% assign d = page.date | date: "%-d" %} 4 | {{ page.date | date: "%B" }} 5 | {% case d %} 6 | {% when '1' or '21' or '31' %}{{ d }}st 7 | {% when '2' or '22' %}{{ d }}nd 8 | {% when '3' or '23' %}{{ d }}rd 9 | {% else %}{{ d }}th{% endcase %}, 10 | {{ page.date | date: "%Y" }} 11 | by 12 | {% if page.author %} 13 | {{ page.author }} 14 | {% else %} 15 | {{ site.author }} 16 | {% endif %} 17 | 18 | -------------------------------------------------------------------------------- /_includes/read-time.html: -------------------------------------------------------------------------------- 1 | {% if post.layout != post %} 2 | {% assign words = post.content | strip_html | number_of_words %} 3 | {% if words < 180 %} 4 | less than 1 minute read 5 | {% elsif words < 360 %} 6 | 1 minute read 7 | {% else %} 8 | {{ words | divided_by:180 }} minute read 9 | {% endif %} 10 | {% endif %} 11 | {% if post.layout == post %} 12 | {% assign words = content | number_of_words %} 13 | {% if words < 180 %} 14 | less than 1 minute read 15 | {% elsif words < 360 %} 16 | 1 minute read 17 | {% else %} 18 | {{ words | divided_by:180 }} minute read 19 | {% endif %} 20 | {% endif %} 21 | -------------------------------------------------------------------------------- /_includes/related-posts.html: -------------------------------------------------------------------------------- 1 | 24 | -------------------------------------------------------------------------------- /_includes/social-icons.html: -------------------------------------------------------------------------------- 1 | {% for item in site.data.settings.social %} 2 | {% assign first_char = item.link | slice: 0 %} 3 | {% if first_char == '/' %} 4 | 5 | {% else %} 6 | 7 | {% endif %} 8 | {% endfor %} -------------------------------------------------------------------------------- /_includes/social-sharing.html: -------------------------------------------------------------------------------- 1 |
{{ site.data.settings.sharing_button_prompt }}
2 |
3 | 4 | 5 |
6 | -------------------------------------------------------------------------------- /_layouts/archive.html: -------------------------------------------------------------------------------- 1 | --- 2 | layout: default 3 | --- 4 | 5 |

6 | {{ page.title }} 7 |

8 | 9 | 26 | -------------------------------------------------------------------------------- /_layouts/default.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | {% include head.html %} 4 | 5 |
6 | {% include header.html %} 7 |
8 | {{ content }} 9 |
10 | {% include footer.html %} 11 |
12 | 13 | 14 | -------------------------------------------------------------------------------- /_layouts/home.html: -------------------------------------------------------------------------------- 1 | --- 2 | layout: default 3 | --- 4 | 5 | {% for post in paginator.posts %} 6 |
7 |

8 | {{ post.title }} 9 |

10 | {% if post.image %} 11 |
12 | 13 |
14 | {% endif %} 15 |

16 | {{ post.content | strip_html | truncate: 350 }} Read more 17 | 18 |

19 |
20 | {% endfor %} 21 | 22 | 34 | -------------------------------------------------------------------------------- /_layouts/page.html: -------------------------------------------------------------------------------- 1 | --- 2 | layout: default 3 | --- 4 | 5 |

6 | {{ page.title }} 7 |

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

6 | {{ page.title }} 7 |

8 | {% if page.image %} 9 | 10 | {% endif %} 11 |
12 | {{ content }} 13 |
14 | {% if site.hide_post_date != true %} 15 | {% include post-date.html %} 16 | {% endif %} 17 | {% if site.hide_post_share != true %} 18 | {% include social-sharing.html %} 19 | {% endif %} 20 | {% if site.hide_related_posts != true %} 21 | {% include related-posts.html %} 22 | {% endif %} 23 | {% if site.data.settings.disqus.comments %} 24 | {% include disqus.html %} 25 | {% endif %} 26 | -------------------------------------------------------------------------------- /_posts/2013-04-04-about-the-author.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: post 3 | title: "About the Author" 4 | author: "Paul Le" 5 | categories: journal 6 | tags: [documentation,sample] 7 | image: cutting.jpg 8 | --- 9 | 10 | Hi there! I'm Paul. I’m a physics major turned programmer. Ever since I first learned how to program while taking a scientific computing for physics course, I have pursued programming as a passion, and as a career. Check out [my personal website](https://www.lenpaul.com/) for more information on my other projects (including more Jekyll themes!), as well as some of my writing. 11 | -------------------------------------------------------------------------------- /_posts/2013-10-10-learning-resources.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: post 3 | title: "Learning Resources" 4 | author: "Paul Le" 5 | categories: journal 6 | tags: [documentation,sample] 7 | image: spools.jpg 8 | --- 9 | 10 | The beauty of computer programming is that you do not need to formally go to school to learn how to program. You can learn almost everything that you would need to know online, and for free. The following resources are some that I have used personally, that I highly recommend, for anyone looking to learn more about computer programming. 11 | 12 | ## [Free Code Camp](https://www.freecodecamp.org/) 13 | 14 | My personal favourite for learning full stack web development. They offer a great front and back end curriculum that requires you to complete a variety of projects in order to apply the knowledge that you learn during the lessons. As a bonus, at the end of the curriculum you will have a few impressive projects under your belt for your portfolio. 15 | 16 | ## [Codecademy](https://www.codecademy.com/) 17 | 18 | Not only does Codecademy have many great courses on various web development languages such as [HTML](https://www.codecademy.com/learn/learn-html), [CSS](https://www.codecademy.com/learn/learn-css), and [JavaScript](https://www.codecademy.com/learn/introduction-to-javascript), but they even offer a course on [how to deploy a Jekyll site](https://www.codecademy.com/learn/deploy-a-website). If you are completely new to Jekyll, I would recommend working through that course as a great start for learning how to deploy your Jekyll site. 19 | 20 | ## [Khan Academy](https://www.khanacademy.org/) 21 | 22 | A great resource not only for learning mathematics (what most people probably know Khan Academy for), but also [computer programming](https://www.khanacademy.org/computing/computer-programming). What Khan Academy offers that is different from the other two above resources is that it offers courses in [computer science related](https://www.khanacademy.org/computing/computer-science) topics, such as [algorithms](https://www.khanacademy.org/computing/computer-science/algorithms) and [cryptography](https://www.khanacademy.org/computing/computer-science/cryptography). This is unique in that most online resources mostly focus on the programming side of things. 23 | -------------------------------------------------------------------------------- /_posts/2014-01-01-text-formatting-examples.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: post 3 | title: "Text Formatting Examples" 4 | author: "Paul Le" 5 | categories: journal 6 | tags: [documentation,sample] 7 | image: cards.jpg 8 | --- 9 | 10 | # Markdown Support 11 | 12 | As always, Jekyll offers support for GitHub Flavored Markdown, which allows you to format your posts using the [Markdown syntax](https://guides.github.com/features/mastering-markdown/). Examples of these text formatting features can be seen below. You can find this post in the `_posts` directory. 13 | 14 | ## Basic Formatting 15 | 16 | With Markdown, it is possible to emphasize words by making them *italicized*, using *astericks* or _underscores_, or making them **bold**, using **double astericks** or __double underscores__. Of course, you can combine those two formats, with both _**bold and italicized**_ text, using any combination of the above syntax. You can also add a strikethrough to text using a ~~double tilde~~. 17 | 18 | ## Paragraphs 19 | 20 | This is what a paragraph looks like. For the purpose of demonstration, the rest of this paragraph and the next paragraph after will mean absolutely nothing. Proin eget nibh a massa vestibulum pretium. Suspendisse eu nisl a ante aliquet bibendum quis a nunc. Praesent varius interdum vehicula. Aenean risus libero, placerat at vestibulum eget, ultricies eu enim. Praesent nulla tortor, malesuada adipiscing adipiscing sollicitudin, adipiscing eget est. Praesent nulla tortor, malesuada adipiscing adipiscing sollicitudin, adipiscing eget est. 21 | 22 | Proin eget nibh a massa vestibulum pretium. Suspendisse eu nisl a ante aliquet bibendum quis a nunc. Mauris lobortis nulla et felis ullamcorper bibendum. Phasellus et hendrerit mauris. Proin eget nibh a massa vestibulum pretium. Suspendisse eu nisl a ante aliquet bibendum quis a nunc. Praesent varius interdum vehicula. Aenean risus libero, placerat at vestibulum eget, ultricies eu enim. Praesent nulla tortor, malesuada adipiscing adipiscing sollicitudin, adipiscing eget est. 23 | 24 | 25 | ## Headings 26 | 27 | Sometimes it is useful to have different levels of headings to structure your documents. Start lines with `#` to create headings. Multiple `##` in a row denote smaller heading size. The following demonstrate the full range of heading sizes: 28 | 29 | # Heading One (h1) 30 | 31 | ## Heading Two (h2) 32 | 33 | ### Heading Three (h3) 34 | 35 | #### Heading Four (h4) 36 | 37 | ##### Heading Five (h5) 38 | 39 | ###### Heading Six (h6) 40 | 41 | ## Links 42 | 43 | You can create an inline link by wrapping link text in square brackets `[ ]`, and then wrapping the URL in parentheses `( )`. For example, it is very easy to [link to Google!](http://google.com). 44 | 45 | ## Blockquotes 46 | 47 | Blockquotes are useful for denoting quotes, or highlighting a large block of text. Single line blockquote: 48 | 49 | > This quote will change your life. 50 | 51 | Multi line blockquote with a cite reference: 52 | 53 | > People think focus means saying yes to the thing you've got to focus on. But that's not what it means at all. It means saying no to the hundred other good ideas that there are. You have to pick carefully. I'm actually as proud of the things we haven't done as the things I have done. Innovation is saying no to 1,000 things. 54 | 55 | ## Code and Syntax Highlighting 56 | 57 | Code blocks are part of the Markdown spec, but syntax highlighting isn't. However, many renderers - like GitHub or most Jekyll themes - support syntax highlighting. Which languages are supported and how those language names should be written will vary from renderer to renderer. You can find the full list of supported programming languages [here](https://github.com/jneen/rouge/wiki/List-of-supported-languages-and-lexers). Also, it is possible to do `inline code blocks`, by wrapping the text in ` ` ` quotations. 58 | 59 | ``` 60 | No language indicated, so no syntax highlighting. 61 | ``` 62 | 63 | ```ruby 64 | def print_hi(name) 65 | puts "Hi, #{name}" 66 | end 67 | print_hi('Tom') 68 | #=> prints 'Hi, Tom' to STDOUT. 69 | ``` 70 | 71 | {% highlight js %} 72 | // Example can be run directly in your JavaScript console 73 | 74 | // Create a function that takes two arguments and returns the sum of those arguments 75 | var adder = new Function("a", "b", "return a + b"); 76 | 77 | // Call the function 78 | adder(2, 6); 79 | // > 8 80 | {% endhighlight %} 81 | 82 | Another option is to embed your code through [Gist](https://en.support.wordpress.com/gist/). 83 | 84 | ## Images 85 | 86 | To add an image, use `![alt text]( "Image meta title")`: 87 | 88 | ![alt text](http://noirve.com/wp-content/uploads/2013/10/DTTSP_Coffee.jpg "Example") 89 | 90 | ## Unordered and Numbered Lists 91 | 92 | You can make an unordered and nested list by preceding one or more lines of text with `-`, `*`, or `+`, and indenting sublists. The following lists show the full range of possible list formats. 93 | 94 | * List item one 95 | * List item one 96 | * List item one 97 | * List item two 98 | * List item three 99 | * List item four 100 | * List item two 101 | * List item three 102 | * List item four 103 | * List item two 104 | * List item three 105 | * List item four 106 | 107 | Numbered lists are made by using numbers instead of bullet points. 108 | 109 | 1. List item one 110 | 1. List item one 111 | 1. List item one 112 | 2. List item two 113 | 3. List item three 114 | 4. List item four 115 | 2. List item two 116 | 3. List item three 117 | 4. List item four 118 | 2. List item two 119 | 3. List item three 120 | 4. List item four 121 | 122 | ## MathJax Example 123 | 124 | The [Schrödinger equation](https://en.wikipedia.org/wiki/Schr%C3%B6dinger_equation) is a partial differential equation that describes how the quantum state of a quantum system changes with time: 125 | 126 | $$ 127 | i\hbar\frac{\partial}{\partial t} \Psi(\mathbf{r},t) = \left [ \frac{-\hbar^2}{2\mu}\nabla^2 + V(\mathbf{r},t)\right ] \Psi(\mathbf{r},t) 128 | $$ 129 | 130 | [Joseph-Louis Millennial](https://en.wikipedia.org/wiki/Joseph-Louis_Millennial) was an Italian mathematician and astronomer who was responsible for the formulation of Lagrangian mechanics, which is a reformulation of Newtonian mechanics. 131 | 132 | $$ \frac{\mathrm{d}}{\mathrm{d}t} \left ( \frac {\partial L}{\partial \dot{q}_j} \right ) = \frac {\partial L}{\partial q_j} $$ 133 | 134 | ## Tables 135 | 136 | Title 1 | Title 2 | Title 3 | Title 4 137 | --------------------- | :-------------------: | :-------------------- | --------------------: 138 | lorem | lorem ipsum | lorem ipsum dolor | lorem ipsum dolor sit 139 | lorem ipsum dolor sit | lorem ipsum dolor sit | lorem ipsum dolor sit | lorem ipsum dolor sit 140 | lorem ipsum dolor sit | lorem ipsum dolor sit | lorem ipsum dolor sit | lorem ipsum dolor sit 141 | lorem ipsum dolor sit | lorem ipsum dolor sit | lorem ipsum dolor sit | lorem ipsum dolor sit 142 | 143 | ## Embedding 144 | 145 | Plenty of social media sites offer the option of embedding certain parts of their site on your own site, such as YouTube and Twitter: 146 | 147 | 148 | 149 | New Collection 150 | 151 | ## Inline HTML elements 152 | 153 | HTML defines a long list of available inline tags, which you can mix with Markdown if you like. A complete list of which can be found on the [Mozilla Developer Network](https://developer.mozilla.org/en-US/docs/Web/HTML/Element). 154 | 155 | ## Horizontal Rule 156 | 157 | Can be created by having three or more hyphens `---`, asterisks `***`, or underscores `___`: 158 | 159 | --- 160 | 161 | ## Useful Resources 162 | 163 | More information on Markdown can be found at the following links: 164 | 165 | - [Markdown Here Cheatsheet](https://github.com/adam-p/markdown-here/wiki/Markdown-Here-Cheatsheet#code) 166 | - [Quick Markdown Example](http://www.unexpected-vortices.com/sw/rippledoc/quick-markdown-example.html) 167 | - [Markdown Basics](https://daringfireball.net/projects/markdown/basics) 168 | - [GitHub Flavoured Markdown Spec](https://github.github.com/gfm/) 169 | - [Basic writing and formatting syntax](https://help.github.com/articles/basic-writing-and-formatting-syntax/#lists) 170 | -------------------------------------------------------------------------------- /_posts/2015-10-10-getting-started.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: post 3 | title: "Getting Started" 4 | author: "Paul Le" 5 | categories: journal 6 | tags: [documentation,sample] 7 | image: forest.jpg 8 | --- 9 | 10 | # Lagrange 11 | 12 | Lagrange is a minimalist Jekyll theme for running a personal blog or site for free through [Github Pages](https://pages.github.com/), or on your own server. Everything that you will ever need to know about this Jekyll theme is included in the README below, which you can also find in [the demo site](https://lenpaul.github.io/Lagrange/). For a guide on how to deploy a Jekyll site using GitHub Pages, please check out [this article](https://paulle.ca/jekyll-tutorials/deploy-jekyll-site-github-pages). 13 | 14 | If you like my work then please consider supporting me with [Ko-fi](https://ko-fi.com/paulle). 15 | 16 | ![alt text](https://user-images.githubusercontent.com/8409329/32631384-17107870-c56e-11e7-932f-deeb7c12e4db.png "Lagrange Demo Image") 17 | 18 | ## Notable features 19 | 20 | * Compatible with GitHub Pages. 21 | 22 | * Support for Jekyll's built-in Sass/SCSS preprocessor and data files for making customizing easier. 23 | 24 | * [Google Analytics](https://www.google.com/analytics/) support. 25 | 26 | * Commenting support powered by [Disqus](https://disqus.com/). 27 | 28 | * Optimized for search engines. 29 | 30 | * LaTeX support through [MathJax](https://www.mathjax.org/). 31 | 32 | ## Table of Contents 33 | 34 | 1. [Introduction](#introduction) 35 | 1. [What is Jekyll](#what-is-jekyll) 36 | 2. [Never Used Jeykll Before?](#never-used-jekyll-before) 37 | 2. [Installation](#installation) 38 | 1. [GitHub Pages Installation](#github-pages-installation) 39 | 2. [Local Installation](#local-installation) 40 | 3. [Directory Structure](#directory-structure) 41 | 4. [Starting From Scratch](#starting-from-scratch) 42 | 3. [Configuration](#configuration) 43 | 1. [Sample Posts](#sample-posts) 44 | 2. [Site Variables](#site-variables) 45 | 3. [Adding Menu Pages](#adding-menu-pages) 46 | 4. [Posts](#posts) 47 | 5. [Layouts](#layouts) 48 | 6. [YAML Front Block Matter](#yaml-front-block-matter) 49 | 4. [Features](#features) 50 | 1. [Design Considerations](#design-considerations) 51 | 2. [Disqus](#disqus) 52 | 3. [Google Analytics](#google-analytics) 53 | 4. [RSS Feeds](#rss-feeds) 54 | 5. [Social Media Icons](#social-media-icons) 55 | 6. [MathJax](#mathjax) 56 | 7. [Syntax Highlighting](#syntax-highlighting) 57 | 8. [Markdown](#markdown) 58 | 5. [Everything Else](#everything-else) 59 | 6. [Contributing](#Contributing) 60 | 7. [Questions?](#questions) 61 | 8. [Credits](#credits) 62 | 9. [License](#license) 63 | 64 | ## Introduction 65 | 66 | Lagrange is a Jekyll theme that was built to be 100% compatible with [GitHub Pages](https://pages.github.com/). If you are unfamiliar with GitHub Pages, you can check out [their documentation](https://help.github.com/categories/github-pages-basics/) for more information. [Jonathan McGlone's guide](http://jmcglone.com/guides/github-pages/) on creating and hosting a personal site on GitHub is also a good resource. 67 | 68 | ### What is Jekyll? 69 | 70 | Jekyll is a simple, blog-aware, static site generator for personal, project, or organization sites. Basically, Jekyll takes your page content along with template files and produces a complete website. For more information, visit the [official Jekyll site](https://jekyllrb.com/docs/home/) for their documentation. Codecademy also offers a great course on [how to deploy a Jekyll site](https://www.codecademy.com/learn/deploy-a-website) for complete beginners. 71 | 72 | ### Never Used Jekyll Before? 73 | 74 | The beauty of hosting your website on GitHub is that you don't have to actually have Jekyll installed on your computer. Everything can be done through the GitHub code editor, with minimal knowledge of how to use Jekyll or the command line. All you have to do is add your posts to the `_posts` directory and edit the `_config.yml` file to change the site settings. With some rudimentary knowledge of HTML and CSS, you can even modify the site to your liking. This can all be done through the GitHub code editor, which acts like a content management system (CMS). 75 | 76 | ## Installation 77 | 78 | ### GitHub Pages Installation 79 | 80 | To start using Jekyll right away with GitHub Pages, [fork the Lagrange repository on GitHub](https://github.com/LeNPaul/Lagrange/fork). From there, you can rename your repository to 'USERNAME.github.io', where 'USERNAME' is your GitHub username, and edit the `settings.yml` file in the `_data` folder to your liking. Ensure that you have a branch named `gh-pages`. Your website should be ready immediately at 'http://USERNAME.github.io'. Note: if you are hosting several sites under the same GitHub username, then you will have to use [Project Pages instead of User Pages](https://help.github.com/articles/user-organization-and-project-pages/) - just change the repository name to something other than 'http://USERNAME.github.io'. 81 | 82 | Head over to the `_posts` directory to view all the posts that are currently on the website, and to see examples of what post files generally look like. You can simply just duplicate the template post and start adding your own content. 83 | 84 | ### Local Installation 85 | 86 | For a full local installation of Lagrange, [download your own copy of Lagrange](https://github.com/LeNPaul/Lagrange/archive/gh-pages.zip) and unzip it into it's own directory. From there, open up your favorite command line tool, enter `bundle install`, and then enter `jekyll serve`. Your site should be up and running locally at [http://localhost:4000](http://localhost:4000). 87 | 88 | ### Directory Structure 89 | 90 | If you are familiar with Jekyll, then the Lagrange directory structure shouldn't be too difficult to navigate. The following some highlights of the differences you might notice between the default directory structure. More information on what these folders and files do can be found in the [Jekyll documentation site](https://jekyllrb.com/docs/structure/). 91 | 92 | ```bash 93 | Lagrange/ 94 | ├── _data # Data files 95 | | └── settings.yml # Theme settings and custom text 96 | ├── _includes # Theme includes 97 | ├── _layouts # Theme layouts (see below for details) 98 | ├── _posts # Where all your posts will go 99 | ├── assets # Style sheets and images are found here 100 | | ├── css # Style sheets go here 101 | | | └── main.css # Main CSS file 102 | | | └── syntax.css # Style sheet for code syntax highlighting 103 | | └── img # Images go here 104 | ├── menu # Menu pages 105 | ├── _config.yml # Site build settings 106 | ├── Gemfile # Ruby Gemfile for managing Jekyll plugins 107 | ├── index.md # Home page 108 | ├── LICENSE.md # License for this theme 109 | ├── README.md # Includes all of the documentation for this theme 110 | └── rss-feed.xml # Generates RSS 2.0 file which Jekyll points to 111 | ``` 112 | 113 | ### Starting From Scratch 114 | 115 | To completely start from scratch, simply delete all the files in the `_posts`, `assets/img`, and `menu` folder, and add your own content. You may also replace the `README.md` file with your own README. Everything in the `_data` folder and `_config.yml` file can be edited to suit your needs. You may also change the `favicon.ico` file to your own favicon. 116 | 117 | ## Configuration 118 | 119 | ### Sample Posts 120 | 121 | Visit the [the demo site](https://lenpaul.github.io/Lagrange/) to find sample posts that show what different types of text formatting look like. You can find these posts in the `_posts` folder, which show what the best practices for setting up your own site are. 122 | 123 | ### Site Variables 124 | 125 | To change site build settings, edit the `_config.yml` file found in the root of your repository, which you can tweak however you like. More information on configuration settings and plugins can be found on [the Jekyll documentation site](https://jekyllrb.com/docs/configuration/). This is also where you will be able to customize the title, description, and the author/owner of your site. 126 | 127 | If you are hosting your site on GitHub Pages, then committing a change to the `_config.yml` file will force a rebuild of your site with Jekyll. Any changes made should be viewable soon after. If you are hosting your site locally, then you must run `jekyll serve` again for the changes to take place. 128 | 129 | In the `settings.yml` file found in the `_data` folder, you will be able to customize your site settings, such as setting Disqus comments, Google Analytics, what shows up in your menu, and social media information. 130 | 131 | ### Adding Menu Pages 132 | 133 | The menu pages are found in the `menu` folder in the root directory, and can be added to your menu in the `settings.yml` file. 134 | 135 | ### Posts 136 | 137 | You will find example posts in your `_posts` directory. Go ahead and edit any post and re-build the site to see your changes. You can rebuild the site in many different ways, but the most common way is to run `jekyll serve`, which launches a web server and auto-regenerates your site when a file is updated. 138 | 139 | To add new posts, simply add a file in the `_posts` directory that follows the convention of `YYYY-MM-DD-name-of-post.md` and includes the necessary front matter. Take a look at any sample post to get an idea about how it works. If you already have a website built with Jekyll, simply copy over your posts to migrate to Lagrange. 140 | 141 | ### Layouts 142 | 143 | There are two main layout options that are included with Lagrange: post and page. Layouts are specified through the [YAML front block matter](https://jekyllrb.com/docs/frontmatter/). Any file that contains a YAML front block matter will be processed by Jekyll. For example: 144 | 145 | ``` 146 | --- 147 | layout: post 148 | title: "Example Post" 149 | --- 150 | ``` 151 | 152 | Examples of what posts looks like can be found in the `_posts` directory, which includes this post you are reading right now. Posts are the basic blog post layout, which includes a header image, post content, author name, date published, social media sharing links, and related posts. 153 | 154 | Pages are essentially the post layout without any of the extra features of the posts layout. An example of what pages look like can be found at the [About](https://lenpaul.github.io/Lagrange/menu/about.html) and [Contacts](https://lenpaul.github.io/Lagrange/menu/contact.html). 155 | 156 | In addition to the two main layout options above, there are also custom layouts that have been created for the [home page](https://lenpaul.github.io/Lagrange/) and the [archives page](https://lenpaul.github.io/Lagrange/menu/writing.html). These are simply just page layouts with some [Liquid template code](https://shopify.github.io/liquid/). Check out the `index.html` file in the root directory for what the code looks like. 157 | 158 | ### YAML Front Block Matter 159 | 160 | The recommended YAML front block is: 161 | 162 | ``` 163 | --- 164 | layout: 165 | title: 166 | author: 167 | categories: 168 | tags: [] 169 | image: 170 | --- 171 | ``` 172 | 173 | `layout` specifies which layout to use, `title` is the page or post title, `categories` can be used to better organize your posts, `tags` are used when generating related posts based on the topic of the post, and `image` specifies which images to use. Have a look at some posts in the `_posts` directory to see how these variables are set. 174 | 175 | ## Features 176 | 177 | ### Design Considerations 178 | 179 | Lagrange was designed to be a minimalist theme in order for the focus to remain on your content. For example, links are signified mainly through an underline text-decoration, in order to maximize the perceived affordance of clickability (I originally just wanted to make the links a darker shade of grey). 180 | 181 | ### Disqus 182 | 183 | Lagrange supports comments at the end of posts through [Disqus](https://disqus.com/). In order to activate Disqus commenting, set `disqus.comments` to true in the `_data/settings.yml` file. If you do not have a Disqus account already, you will have to set one up, and create a profile for your website. You will be given a `disqus_shortname` that will be used to generate the appropriate comments sections for your site. More information on [how to set up Disqus](http://www.perfectlyrandom.org/2014/06/29/adding-disqus-to-your-jekyll-powered-github-pages/). 184 | 185 | ### Google Analytics 186 | 187 | It is possible to track your site statistics through [Google Analytics](https://www.google.com/analytics/). Similar to Disqus, you will have to create an account for Google Analytics, and enter the correct Google ID for your site under `google-ID` in the `settings.yml` file. More information on [how to set up Google Analytics](https://michaelsoolee.com/google-analytics-jekyll/). 188 | 189 | ### RSS Feeds 190 | 191 | Atom is supported by default through [jekyll-feed](https://github.com/jekyll/jekyll-feed). With jekyll-feed, you can set configuration variables such as 'title', 'description', and 'author', in the `_config.yml` file. 192 | 193 | RSS 2.0 is also supported through [RSS auto-discovery](http://www.rssboard.org/rss-autodiscovery). The `rss-feed.xml` file (based on the template found at [jekyll-rss-feeds](https://github.com/snaptortoise/jekyll-rss-feeds)) that the feed path points to when using RSS 2.0 is automatically generated based on the appropriate configuration variables found in `_data/settings.yml`. 194 | 195 | To use RSS 2.0, ensure the following is done: 196 | 197 | * Uncomment the last two lines in the `_config.yml` file. 198 | 199 | * In `_data/settings.yml`, under 'social', comment out the rss-square that points to `feed.xml`, and uncomment the rss-square that points to `rss-feed.xml`. 200 | 201 | * In `_includes/head.html`, comment out `{% feed_meta %}` and uncomment the line under the RSS 2.0 comment. 202 | 203 | ### Social Media Icons 204 | 205 | All social media icons are courtesy of [Font Awesome](http://fontawesome.io/). You can change which icons appear, as well as the account that they link to, in the `settings.yml` file in the `_data` folder. 206 | 207 | ### MathJax 208 | 209 | Lagrange comes out of the box with [MathJax](https://www.mathjax.org/), which allows you to display mathematical equations in your posts through the use of [LaTeX](http://www.andy-roberts.net/writing/latex/mathematics_1). 210 | 211 | ### Syntax Highlighting 212 | 213 | Lagrange provides syntax highlighting through [fenced code blocks](https://help.github.com/articles/creating-and-highlighting-code-blocks/). Syntax highlighting allows you to display source code in different colors and fonts depending on what programming language is being displayed. You can find the full list of supported programming languages [here](https://github.com/jneen/rouge/wiki/List-of-supported-languages-and-lexers). Another option is to embed your code through [Gist](https://en.support.wordpress.com/gist/). 214 | 215 | ### Markdown 216 | 217 | As always, Jekyll offers support for GitHub Flavored Markdown, which allows you to format your posts using the [Markdown syntax](https://guides.github.com/features/mastering-markdown/). Examples of these text formatting features can be seen below. You can find this post in the `_posts` directory as well as the `README.md` file. 218 | 219 | ## Everything Else 220 | 221 | Check out the [Jekyll docs][jekyll-docs] for more info on how to get the most out of Jekyll. File all bugs/feature requests at [Jekyll's GitHub repo][jekyll-gh]. If you have questions, you can ask them on [Jekyll Talk][jekyll-talk]. 222 | 223 | [jekyll-docs]: http://jekyllrb.com/docs/home 224 | [jekyll-gh]: https://github.com/jekyll/jekyll 225 | [jekyll-talk]: https://talk.jekyllrb.com/ 226 | 227 | ## Contributing 228 | 229 | If you would like to make a feature request, or report a bug or typo in the documentation, then please [submit a GitHub issue](https://github.com/LeNPaul/Lagrange/issues/new). If you would like to make a contribution, then feel free to [submit a pull request](https://help.github.com/articles/about-pull-requests/) - as a bonus, I will credit all contributors below! If this is your first pull request, it may be helpful to read up on the [GitHub Flow](https://guides.github.com/introduction/flow/) first. 230 | 231 | Lagrange has been designed as a base for users to customize and fit to their own unique needs. Please keep this in mind when requesting features and/or submitting pull requests. Some examples of changes that I would love to see are things that would make the site easier to use, or better ways of doing things. Please avoid changes that do not benefit the majority of users. 232 | 233 | ## Questions? 234 | 235 | This theme is completely free and open source software. You may use it however you want, as it is distributed under the [MIT License](http://choosealicense.com/licenses/mit/). If you are having any problems, any questions or suggestions, feel free to [tweet at me](https://twitter.com/intent/tweet?text=My%question%about%Lagrange%is:%&via=paululele), or [file a GitHub issue](https://github.com/lenpaul/lagrange/issues/new). 236 | 237 | ## Credits 238 | 239 | ### Creator 240 | 241 | #### Paul Le 242 | 243 | * [www.lenpaul.com](http://lenpaul.com) 244 | 245 | * [Twitter](https://twitter.com/paululele) 246 | 247 | * [GitHub](https://github.com/LeNPaul) 248 | 249 | ### Contributors 250 | 251 | * [nikolalukovic](https://github.com/nikolalukovic) 252 | 253 | * [gmemstr](https://github.com/gmemstr) 254 | 255 | * [lynn9388](https://github.com/lynn9388) 256 | 257 | * [robqiao](https://github.com/robqiao) 258 | 259 | * [Mauladen](https://github.com/Mauladen) 260 | 261 | * [dhanus](https://github.com/dhanus) 262 | 263 | * [mlewand](https://github.com/mlewand) 264 | 265 | * [Hguimaraes](https://github.com/Hguimaraes) 266 | 267 | * [ilhamadun](https://github.com/ilhamadun) 268 | 269 | * [brianclemens](https://github.com/brianclemens) 270 | 271 | * [leyhline](https://github.com/leyhline) 272 | 273 | * [aritra24](https://github.com/aritra24) 274 | 275 | * [DuckSoft](https://github.com/DuckSoft) 276 | 277 | * [larrylawl](https://github.com/larrylawl) 278 | 279 | * [borting](https://github.com/borting) 280 | 281 | ### Icons + Demo Images 282 | 283 | * [Death to Stock](https://deathtothestockphoto.com/) 284 | 285 | * [Font Awesome](http://fontawesome.io/) 286 | 287 | ### Other 288 | 289 | * [Jekyll](https://jekyllrb.com/) 290 | 291 | * [Free Code Camp](https://www.freecodecamp.org) 292 | 293 | * [Khan Academy](https://www.khanacademy.org/) 294 | 295 | ## License 296 | 297 | Open sourced under the [MIT license](https://github.com/LeNPaul/Lagrange/blob/gh-pages/LICENSE.md). 298 | -------------------------------------------------------------------------------- /_posts/2016-01-01-welcome-to-lagrange.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: post 3 | title: "Welcome to Lagrange!" 4 | author: "Paul Le" 5 | categories: journal 6 | tags: [documentation,sample] 7 | image: mountains.jpg 8 | --- 9 | 10 | Lagrange is a minimalist Jekyll theme. The purpose of this theme is to provide a simple, clean, content-focused blogging platform for your personal site or blog. Below you can find everything you need to get started. 11 | 12 | ## Getting Started 13 | 14 | [Getting Started]({{ site.github.url }}{% post_url 2015-10-10-getting-started %}): getting started with installing Lagrange, whether you are completely new to using Jekyll, or simply just migrating to a new Jekyll theme. 15 | 16 | ## Example Content 17 | 18 | [Text and Formatting]({{ site.github.url }}{% post_url 2014-01-01-text-formatting-examples %}) 19 | 20 | ## Questions? 21 | 22 | This theme is completely free and open source software. You may use it however you want, as it is distributed under the [MIT License](http://choosealicense.com/licenses/mit/). If you are having any problems, any questions or suggestions, feel free to [tweet at me](https://twitter.com/intent/tweet?text=My%question%about%Lagrange%is:%&via=paululele), or [file a GitHub issue](https://github.com/lenpaul/lagrange/issues/new). 23 | 24 | ## More Jekyll! 25 | 26 | ### Millennial 27 | 28 | Millennial is a minimalist Jekyll blog theme that I built from scratch. The purpose of this theme is to provide a simple, clean, content-focused publishing platform for a publication or blog. 29 | 30 | Feel free to check out the demo, where you’ll also find instructions on how to use install and use the theme. 31 | 32 | ### Portfolio Jekyll Theme 33 | 34 | This is a Jekyll theme built using the [DevTips Starter Kit](http://devtipsstarterkit.com/) as a foundation for starting, and following closely the amazing tutorial by [Travis Neilson over at DevTips](https://www.youtube.com/watch?v=T6jKLsxbFg4&list=PL0CB3OvPhDA_STygmp3sDenx3UpdOMk7P). The purpose of this theme is to provide a clean and simple website for your portfolio. Emphasis is placed on your projects, which are shown front and center on the home page. 35 | 36 | Everything that you will ever need to know about this Jekyll theme is included in [the repository](https://github.com/LeNPaul/portfolio-jekyll-theme), which you can also find in [the demo site](https://lenpaul.github.io/portfolio-jekyll-theme/). 37 | 38 | ### Jekyll Starter Kit 39 | 40 | The Jekyll Starter Kit is a simple framework for starting your own Jekyll project using all of the best practices that I learned from building my other Jekyll themes. 41 | 42 | Feel free to check out the GitHub repository, where you’ll also find instructions on how to use install and use the theme. 43 | -------------------------------------------------------------------------------- /_sass/_-sections-dir.scss: -------------------------------------------------------------------------------- 1 | @import "base", 2 | "code", 3 | "default", 4 | "home", 5 | "post", 6 | "social-icons" 7 | -------------------------------------------------------------------------------- /_sass/_base.scss: -------------------------------------------------------------------------------- 1 | /* 2 | Base 3 | */ 4 | 5 | body { 6 | font-family: $serif-font-family; 7 | font-size: 18px; 8 | color: $body-color; 9 | line-height: 1.75rem; 10 | } 11 | 12 | @media (max-width: $elements-responsive-width) { 13 | body { 14 | font-size: 14px; 15 | line-height: 1.5rem; 16 | } 17 | body h1 { 18 | font-size: 1.5rem; 19 | } 20 | } 21 | 22 | h1{ 23 | font-size: 2rem; 24 | } 25 | 26 | h1 a { 27 | text-decoration: none; 28 | } 29 | 30 | h1, h2, h3, h4, h5, h6 { 31 | font-family: $sans-serif-font-family; 32 | color: $dark-gray-color; 33 | } 34 | 35 | a { 36 | text-decoration: underline; 37 | color: $dark-gray-color; 38 | } 39 | 40 | a:hover { 41 | color: $link-color; 42 | border-bottom: none; 43 | } 44 | 45 | img { 46 | max-width: 100%; 47 | height: auto; 48 | border-radius: 5px; 49 | } 50 | 51 | blockquote { 52 | margin: 10px 20px 10px; 53 | padding: 0px 15px; 54 | border-left: 0.25em solid $extra-light-gray-color; 55 | color: $light-gray-color; 56 | line-height: 1.5; 57 | } 58 | 59 | hr { 60 | border-top: 1px solid $extra-light-gray-color; 61 | } 62 | 63 | /* 64 | Tables 65 | */ 66 | 67 | table { 68 | border-collapse: collapse; 69 | margin-bottom: 30px; 70 | width: 100%; 71 | } 72 | 73 | table, th, td { 74 | border: 1px solid black; 75 | } 76 | 77 | th, td { 78 | padding: 15px; 79 | text-align: left; 80 | } 81 | -------------------------------------------------------------------------------- /_sass/_code.scss: -------------------------------------------------------------------------------- 1 | /* 2 | Code 3 | */ 4 | 5 | code, 6 | pre { 7 | font-family: $code-font-family; 8 | } 9 | code { 10 | padding: .25em .5em; 11 | font-size: .8rem; 12 | background-color: $code-background-color; 13 | border-radius: 3px; 14 | } 15 | pre { 16 | display: block; 17 | margin-top: 0; 18 | margin-bottom: 1rem; 19 | padding: 1rem; 20 | font-size: .8rem; 21 | line-height: 1.4; 22 | white-space: pre; 23 | white-space: pre-wrap; 24 | word-break: break-all; 25 | word-wrap: break-word; 26 | background-color: $code-background-color; 27 | } 28 | pre code { 29 | padding: 0; 30 | font-size: 100%; 31 | color: inherit; 32 | background-color: transparent; 33 | } 34 | 35 | /* Horizontal code overflow fix */ 36 | pre.highlight { 37 | white-space: pre; 38 | overflow-x: auto; 39 | } 40 | 41 | /* Pygments via Jekyll */ 42 | .highlight { 43 | margin-bottom: 1rem; 44 | border-radius: 4px; 45 | } 46 | .highlight pre { 47 | margin-bottom: 0; 48 | } 49 | 50 | /* Gist via GitHub Pages */ 51 | .gist .gist-file { 52 | font-family: $code-font-family !important; 53 | } 54 | .gist .markdown-body { 55 | padding: 15px; 56 | } 57 | .gist pre { 58 | padding: 0; 59 | background-color: transparent; 60 | } 61 | .gist .gist-file .gist-data { 62 | font-size: .8rem !important; 63 | line-height: 1.4; 64 | } 65 | .gist code { 66 | padding: 0; 67 | color: inherit; 68 | background-color: transparent; 69 | border-radius: 0; 70 | } 71 | -------------------------------------------------------------------------------- /_sass/_default.scss: -------------------------------------------------------------------------------- 1 | /* 2 | Site container 3 | */ 4 | 5 | .container { 6 | margin-left: auto; 7 | margin-right: auto; 8 | width: 615px; 9 | } 10 | 11 | .content-container { 12 | margin-bottom: 4rem; 13 | } 14 | 15 | /*48em*/ 16 | 17 | @media (max-width: $container-responsive-width) { 18 | .container { 19 | width: 90vw; 20 | } 21 | } 22 | 23 | /* 24 | Header 25 | */ 26 | 27 | .header { 28 | padding-top: 0.5rem; 29 | padding-bottom: 0.5rem; 30 | margin-bottom: 4rem; 31 | font-family: $sans-serif-font-family; 32 | } 33 | 34 | .header a:hover { 35 | color:black; 36 | } 37 | 38 | .header-title a { 39 | font-size: 2rem; 40 | text-decoration: none; 41 | color: $body-color; 42 | } 43 | 44 | .header-subtitle { 45 | color: $light-gray-color; 46 | } 47 | 48 | /* 49 | Menu 50 | */ 51 | 52 | .menu { 53 | padding-top: 0.5rem; 54 | display: block; 55 | } 56 | 57 | .menu-content { 58 | float: left; 59 | } 60 | 61 | .menu-content a { 62 | color: $light-gray-color; 63 | font-size: 1rem; 64 | padding-right: 10px; 65 | } 66 | 67 | .social-icons { 68 | float: right; 69 | } 70 | 71 | .social-icons a { 72 | color: $light-gray-color; 73 | font-size: 1rem; 74 | } 75 | 76 | @media (max-width: $elements-responsive-width) { 77 | .social-icons { 78 | float: left; 79 | padding-top: 0px; 80 | } 81 | .menu-content { 82 | margin-bottom: 5px; 83 | } 84 | } 85 | 86 | /* 87 | Footer 88 | */ 89 | 90 | .footer { 91 | color: $light-gray-color; 92 | text-align: center; 93 | margin: 2rem; 94 | } 95 | 96 | .footer a { 97 | color: $light-gray-color; 98 | padding: 10px; 99 | text-decoration: none; 100 | } 101 | 102 | .footer a:hover { 103 | color: $dark-gray-color; 104 | } 105 | 106 | .footer-description { 107 | display: block; 108 | margin-top:3px; 109 | margin-bottom: 1rem; 110 | color: $light-gray-color; 111 | font-family: $sans-serif-font-family; 112 | font-size:0.8rem; 113 | } 114 | -------------------------------------------------------------------------------- /_sass/_home.scss: -------------------------------------------------------------------------------- 1 | /* 2 | Posts 3 | */ 4 | 5 | .posts-container { 6 | margin-bottom: 5rem; 7 | padding: 0px; 8 | list-style: none; 9 | } 10 | 11 | /* 12 | Thumbnail 13 | */ 14 | 15 | .thumbnail-container { 16 | max-width: 100%; 17 | overflow: hidden; 18 | border-radius: 5px; 19 | margin-bottom: 25px; 20 | } 21 | 22 | .thumbnail-container img{ 23 | margin-top: -11.5%; 24 | margin-bottom: -11.5%; 25 | } 26 | 27 | /* 28 | Pagination 29 | */ 30 | 31 | .pagination { 32 | overflow: hidden; 33 | font-family: $sans-serif-font-family; 34 | text-align: center; 35 | } 36 | 37 | .pagination a { 38 | text-decoration: none; 39 | } 40 | 41 | .pagination-button { 42 | color: $light-gray-color; 43 | border: 1px solid $pagination-button-color; 44 | padding: 15px 45px; 45 | display: inline-block; 46 | font-size: 16px; 47 | font-weight: bold; 48 | } 49 | 50 | .pagination-active { 51 | color: $link-color; 52 | } 53 | 54 | .pagination-active:hover { 55 | background-color: $pagination-button-color; 56 | } 57 | -------------------------------------------------------------------------------- /_sass/_post.scss: -------------------------------------------------------------------------------- 1 | /* 2 | Post 3 | */ 4 | 5 | .post-date { 6 | display: block; 7 | margin-top:3px; 8 | margin-bottom: 1rem; 9 | color: $light-gray-color; 10 | font-family: $sans-serif-font-family; 11 | font-size:0.8rem; 12 | } 13 | 14 | @media (max-width: $elements-responsive-width) { 15 | .posts h1 { 16 | font-size: 1.5rem; 17 | } 18 | } 19 | 20 | .related { 21 | padding-bottom: 2rem; 22 | } 23 | 24 | .related-posts { 25 | padding-left: 0px; 26 | list-style: none; 27 | } 28 | 29 | .related-posts a { 30 | text-decoration: none; 31 | } 32 | -------------------------------------------------------------------------------- /_sass/_social-icons.scss: -------------------------------------------------------------------------------- 1 | /* 2 | Social media icons 3 | */ 4 | 5 | .sharing-icons a { 6 | padding-right: 10px; 7 | } 8 | 9 | @mixin social-media-icon($color, $transition){ 10 | -webkit-transition: $transition; 11 | -o-transition: $transition; 12 | -ms-transition: $transition; 13 | -moz-transition: $transition; 14 | transition: $transition; 15 | &:hover{ 16 | color: $color; 17 | } 18 | } 19 | 20 | .fa-envelope { 21 | padding: 5px; 22 | @include social-media-icon($envelope-color, $icon-transition-time); 23 | } 24 | 25 | .fa-twitter { 26 | padding: 5px; 27 | @include social-media-icon($twitter-color, $icon-transition-time); 28 | } 29 | 30 | .fa-instagram { 31 | padding: 5px; 32 | @include social-media-icon($instagram-color, $icon-transition-time); 33 | } 34 | 35 | .fa-github { 36 | padding: 5px; 37 | @include social-media-icon($github-color, $icon-transition-time); 38 | } 39 | 40 | .fa-linkedin { 41 | padding: 5px; 42 | @include social-media-icon($linkedin-color, $icon-transition-time); 43 | } 44 | 45 | .fa-facebook { 46 | padding: 5px; 47 | @include social-media-icon($facebook-color, $icon-transition-time); 48 | } 49 | 50 | .fa-pinterest { 51 | padding: 5px; 52 | @include social-media-icon($pinterest-color, $icon-transition-time); 53 | } 54 | 55 | .fa-medium { 56 | padding: 5px; 57 | @include social-media-icon($medium-color, $icon-transition-time); 58 | } 59 | 60 | .fa-codepen { 61 | padding: 5px; 62 | @include social-media-icon($codepen-color, $icon-transition-time); 63 | } 64 | 65 | .fa-rss-square { 66 | padding: 5px; 67 | @include social-media-icon($rss-color, $icon-transition-time); 68 | } 69 | -------------------------------------------------------------------------------- /assets/css/main.scss: -------------------------------------------------------------------------------- 1 | --- 2 | --- 3 | 4 | $sans-serif-font-family: "Quattrocento Sans", sans-serif; 5 | $serif-font-family: "PT Serif", Georgia, "Times New Roman", serif; 6 | $code-font-family: "Source Code Pro", monospace; 7 | 8 | $body-color: #505050; 9 | $link-color: black; 10 | 11 | $code-background-color: #f5f5f5; 12 | $pagination-button-color: #e0e0e0; 13 | 14 | $dark-gray-color: #333; 15 | $light-gray-color: #999; 16 | $extra-light-gray-color: #ccc; 17 | 18 | $container-responsive-width: 768px; 19 | $elements-responsive-width: 30em; 20 | 21 | $icon-transition-time: .5s; 22 | $envelope-color: #f39c12; 23 | $twitter-color: #00aced; 24 | $instagram-color: #375989; 25 | $github-color: #343434; 26 | $linkedin-color: #0073a4; 27 | $facebook-color: #3d5b99; 28 | $pinterest-color: #bd081c; 29 | $medium-color: #00AB6C; 30 | $codepen-color: black; 31 | $rss-color: #ff6600; 32 | 33 | @import "-sections-dir"; 34 | -------------------------------------------------------------------------------- /assets/css/syntax.css: -------------------------------------------------------------------------------- 1 | .highlight .hll { background-color: #ffc; } 2 | .highlight .c { color: #999; } /* Comment */ 3 | .highlight .err { color: #a00; background-color: #faa } /* Error */ 4 | .highlight .k { color: #069; } /* Keyword */ 5 | .highlight .o { color: #555 } /* Operator */ 6 | .highlight .cm { color: #09f; font-style: italic } /* Comment.Multiline */ 7 | .highlight .cp { color: #099 } /* Comment.Preproc */ 8 | .highlight .c1 { color: #999; } /* Comment.Single */ 9 | .highlight .cs { color: #999; } /* Comment.Special */ 10 | .highlight .gd { background-color: #fcc; border: 1px solid #c00 } /* Generic.Deleted */ 11 | .highlight .ge { font-style: italic } /* Generic.Emph */ 12 | .highlight .gr { color: #f00 } /* Generic.Error */ 13 | .highlight .gh { color: #030; } /* Generic.Heading */ 14 | .highlight .gi { background-color: #cfc; border: 1px solid #0c0 } /* Generic.Inserted */ 15 | .highlight .go { color: #aaa } /* Generic.Output */ 16 | .highlight .gp { color: #009; } /* Generic.Prompt */ 17 | .highlight .gs { } /* Generic.Strong */ 18 | .highlight .gu { color: #030; } /* Generic.Subheading */ 19 | .highlight .gt { color: #9c6 } /* Generic.Traceback */ 20 | .highlight .kc { color: #069; } /* Keyword.Constant */ 21 | .highlight .kd { color: #069; } /* Keyword.Declaration */ 22 | .highlight .kn { color: #069; } /* Keyword.Namespace */ 23 | .highlight .kp { color: #069 } /* Keyword.Pseudo */ 24 | .highlight .kr { color: #069; } /* Keyword.Reserved */ 25 | .highlight .kt { color: #078; } /* Keyword.Type */ 26 | .highlight .m { color: #f60 } /* Literal.Number */ 27 | .highlight .s { color: #d44950 } /* Literal.String */ 28 | .highlight .na { color: #4f9fcf } /* Name.Attribute */ 29 | .highlight .nb { color: #366 } /* Name.Builtin */ 30 | .highlight .nc { color: #0a8; } /* Name.Class */ 31 | .highlight .no { color: #360 } /* Name.Constant */ 32 | .highlight .nd { color: #99f } /* Name.Decorator */ 33 | .highlight .ni { color: #999; } /* Name.Entity */ 34 | .highlight .ne { color: #c00; } /* Name.Exception */ 35 | .highlight .nf { color: #c0f } /* Name.Function */ 36 | .highlight .nl { color: #99f } /* Name.Label */ 37 | .highlight .nn { color: #0cf; } /* Name.Namespace */ 38 | .highlight .nt { color: #2f6f9f; } /* Name.Tag */ 39 | .highlight .nv { color: #033 } /* Name.Variable */ 40 | .highlight .ow { color: #000; } /* Operator.Word */ 41 | .highlight .w { color: #bbb } /* Text.Whitespace */ 42 | .highlight .mf { color: #f60 } /* Literal.Number.Float */ 43 | .highlight .mh { color: #f60 } /* Literal.Number.Hex */ 44 | .highlight .mi { color: #f60 } /* Literal.Number.Integer */ 45 | .highlight .mo { color: #f60 } /* Literal.Number.Oct */ 46 | .highlight .sb { color: #c30 } /* Literal.String.Backtick */ 47 | .highlight .sc { color: #c30 } /* Literal.String.Char */ 48 | .highlight .sd { color: #c30; font-style: italic } /* Literal.String.Doc */ 49 | .highlight .s2 { color: #c30 } /* Literal.String.Double */ 50 | .highlight .se { color: #c30; } /* Literal.String.Escape */ 51 | .highlight .sh { color: #c30 } /* Literal.String.Heredoc */ 52 | .highlight .si { color: #a00 } /* Literal.String.Interpol */ 53 | .highlight .sx { color: #c30 } /* Literal.String.Other */ 54 | .highlight .sr { color: #3aa } /* Literal.String.Regex */ 55 | .highlight .s1 { color: #c30 } /* Literal.String.Single */ 56 | .highlight .ss { color: #fc3 } /* Literal.String.Symbol */ 57 | .highlight .bp { color: #366 } /* Name.Builtin.Pseudo */ 58 | .highlight .vc { color: #033 } /* Name.Variable.Class */ 59 | .highlight .vg { color: #033 } /* Name.Variable.Global */ 60 | .highlight .vi { color: #033 } /* Name.Variable.Instance */ 61 | .highlight .il { color: #f60 } /* Literal.Number.Integer.Long */ 62 | 63 | .css .o, 64 | .css .o + .nt, 65 | .css .nt + .nt { color: #999; } 66 | -------------------------------------------------------------------------------- /assets/img/cards.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LeNPaul/Lagrange/73ea1af720b6da96ebb4bc77b372f72b9874d3a7/assets/img/cards.jpg -------------------------------------------------------------------------------- /assets/img/cutting.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LeNPaul/Lagrange/73ea1af720b6da96ebb4bc77b372f72b9874d3a7/assets/img/cutting.jpg -------------------------------------------------------------------------------- /assets/img/forest.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LeNPaul/Lagrange/73ea1af720b6da96ebb4bc77b372f72b9874d3a7/assets/img/forest.jpg -------------------------------------------------------------------------------- /assets/img/mountains.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LeNPaul/Lagrange/73ea1af720b6da96ebb4bc77b372f72b9874d3a7/assets/img/mountains.jpg -------------------------------------------------------------------------------- /assets/img/spools.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LeNPaul/Lagrange/73ea1af720b6da96ebb4bc77b372f72b9874d3a7/assets/img/spools.jpg -------------------------------------------------------------------------------- /favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LeNPaul/Lagrange/73ea1af720b6da96ebb4bc77b372f72b9874d3a7/favicon.ico -------------------------------------------------------------------------------- /index.html: -------------------------------------------------------------------------------- 1 | --- 2 | layout: home 3 | title: Home 4 | --- 5 | -------------------------------------------------------------------------------- /lagrange.gemspec: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | Gem::Specification.new do |spec| 4 | spec.name = "lagrange" 5 | spec.version = "4.0.0" 6 | spec.authors = ["Paul Le"] 7 | spec.email = ["hello@paulle.ca"] 8 | 9 | spec.summary = "A minimalist Jekyll theme for running a personal blog" 10 | spec.homepage = "https://github.com/LeNPaul/Lagrange" 11 | spec.license = "MIT" 12 | 13 | spec.files = `git ls-files -z`.split("\x0").select { |f| f.match(%r!^(assets|_layouts|_includes|_sass|LICENSE|README|CHANGELOG)!i) } 14 | 15 | spec.add_runtime_dependency "jekyll", "~> 4.2" 16 | spec.add_runtime_dependency "jekyll-feed", "~> 0.6" 17 | spec.add_runtime_dependency "jekyll-paginate", "~> 1.1" 18 | spec.add_runtime_dependency "jekyll-sitemap", "~> 1.3" 19 | spec.add_runtime_dependency "jekyll-seo-tag", "~> 2.6" 20 | 21 | end 22 | -------------------------------------------------------------------------------- /menu/about.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: page 3 | title: Welcome to Lagrange! 4 | permalink: /about 5 | --- 6 | 7 | Lagrange is a minimalist Jekyll theme. The purpose of this theme is to provide a simple, clean, content-focused blogging platform for your personal site or blog. Below you can find everything you need to get started. 8 | 9 | ### Getting Started 10 | 11 | [Getting Started]({{ site.github.url }}{% post_url 2015-10-10-getting-started %}): getting started with installing Lagrange, whether you are completely new to using Jekyll, or simply just migrating to a new Jekyll theme. 12 | 13 | ### Example Content 14 | 15 | [Text and Formatting]({{ site.github.url }}{% post_url 2014-01-01-text-formatting-examples %}) 16 | 17 | ### Questions? 18 | 19 | This theme is completely free and open source software. You may use it however you want, as it is distributed under the [MIT License](http://choosealicense.com/licenses/mit/). If you are having any problems, any questions or suggestions, feel free to [tweet at me](https://twitter.com/intent/tweet?text=My%question%about%Lagrange%is:%&via=paululele), or [file a GitHub issue](https://github.com/lenpaul/lagrange/issues/new). 20 | -------------------------------------------------------------------------------- /menu/contact.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: page 3 | title: Contact 4 | permalink: /contact 5 | --- 6 | 7 | If you are having any problems, any questions or suggestions, feel free to [tweet at me](https://twitter.com/intent/tweet?text=%40paululele), or [file a GitHub issue](https://github.com/lenpaul/lagrange/issues/new) 8 | -------------------------------------------------------------------------------- /menu/writing.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: archive 3 | title: Writing 4 | permalink: /writing 5 | --- 6 | -------------------------------------------------------------------------------- /rss-feed.xml: -------------------------------------------------------------------------------- 1 | --- 2 | --- 3 | 4 | 5 | 6 | {{ site.title | xml_escape }} 7 | {% if site.description %}{{ site.description | xml_escape }}{% endif %} 8 | {{ site.github.url }} 9 | 10 | {% for post in site.posts limit:10 %} 11 | 12 | {{ post.title | xml_escape }} 13 | {% if post.author %} 14 | {{ post.author | xml_escape }} 15 | {% endif %} 16 | {% if post.excerpt %} 17 | {{ post.excerpt | xml_escape }} 18 | {% else %} 19 | {{ post.content | xml_escape }} 20 | {% endif %} 21 | {{ post.date | date_to_rfc822 }} 22 | {{ site.url }}{{ post.url }} 23 | {{ site.url }}{{ post.url }} 24 | 25 | {% endfor %} 26 | 27 | 28 | --------------------------------------------------------------------------------