Merge branch 'master' of github.com:vividvilla/ezhil into src
* 'master' of github.com:vividvilla/ezhil: (56 commits) adding base tag to header to fix static file linking render code blocks as inline-block Remove .DS_Store file Include front matter in home and list pages if provided chore: add doc for summary length config replace .RawContent with .Summary - looks way better fix: disable custom js from sample config feat: default style for table fix: don't prepend host url to external js if it starts with http:// or https:// fix: disable disqus if Site.DisqusShortname is not set fix: update demo pygmentes style Disable Google Analytics when hugo server [Fix] Link to home in head partial. feat: load custom CSS and JS fix: anchor text color for dark theme chore: add gitignore fix: readability fixes fix: change layout for tags fix: readability fix for small screen devices fix: anchor tag overflow on chrome bug ... Signed-off-by: Harsh Shandilya <me@msfjarvis.dev>
This commit is contained in:
commit
2a3cd52758
|
@ -0,0 +1,58 @@
|
|||
|
||||
# Created by https://www.gitignore.io/api/hugo,linux,macos
|
||||
# Edit at https://www.gitignore.io/?templates=hugo,linux,macos
|
||||
|
||||
### Hugo ###
|
||||
# Generated files by hugo
|
||||
/public/
|
||||
/resources/_gen/
|
||||
|
||||
# Executable may be added to repository
|
||||
hugo.exe
|
||||
hugo.darwin
|
||||
hugo.linux
|
||||
|
||||
### Linux ###
|
||||
*~
|
||||
|
||||
# temporary files which can be created if a process still has a handle open of a deleted file
|
||||
.fuse_hidden*
|
||||
|
||||
# KDE directory preferences
|
||||
.directory
|
||||
|
||||
# Linux trash folder which might appear on any partition or disk
|
||||
.Trash-*
|
||||
|
||||
# .nfs files are created when an open file is removed but is still being accessed
|
||||
.nfs*
|
||||
|
||||
### macOS ###
|
||||
# General
|
||||
.DS_Store
|
||||
.AppleDouble
|
||||
.LSOverride
|
||||
|
||||
# Icon must end with two \r
|
||||
Icon
|
||||
|
||||
# Thumbnails
|
||||
._*
|
||||
|
||||
# Files that might appear in the root of a volume
|
||||
.DocumentRevisions-V100
|
||||
.fseventsd
|
||||
.Spotlight-V100
|
||||
.TemporaryItems
|
||||
.Trashes
|
||||
.VolumeIcon.icns
|
||||
.com.apple.timemachine.donotpresent
|
||||
|
||||
# Directories potentially created on remote AFP share
|
||||
.AppleDB
|
||||
.AppleDesktop
|
||||
Network Trash Folder
|
||||
Temporary Items
|
||||
.apdisk
|
||||
|
||||
# End of https://www.gitignore.io/api/hugo,linux,macos
|
|
@ -0,0 +1,20 @@
|
|||
The MIT License (MIT)
|
||||
|
||||
Copyright (c) 2018 YOUR_NAME_HERE
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy of
|
||||
this software and associated documentation files (the "Software"), to deal in
|
||||
the Software without restriction, including without limitation the rights to
|
||||
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
|
||||
the Software, and to permit persons to whom the Software is furnished to do so,
|
||||
subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
|
||||
FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
|
||||
COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
|
||||
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
|
||||
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
@ -0,0 +1,166 @@
|
|||
# Ezhil
|
||||
|
||||
Clean and minimal personal blog and portfolio theme for Hugo.
|
||||
|
||||
## Demo
|
||||
|
||||
[View demo](https://ezhil-hugo.netlify.com/)
|
||||
|
||||
![Screenshot](images/screenshot-light.png "Ezhil light theme")
|
||||
![Screenshot](images/screenshot-dark.png "Ezhil dark theme")
|
||||
|
||||
## Features
|
||||
|
||||
* Clean and minimal
|
||||
* Dark mode (Auto detect from OS)
|
||||
* Responsive
|
||||
* Supports tags
|
||||
* Social media links
|
||||
* Google Analytics integration
|
||||
* Syntax highlighting
|
||||
* Twitter cards and opengraph tags support
|
||||
* Disqus comments
|
||||
* Hugo RSS feeds
|
||||
* Custom CSS/JS
|
||||
|
||||
## Installation
|
||||
|
||||
From your Hugo site run the following.
|
||||
|
||||
```sh
|
||||
cd themes
|
||||
git clone https://github.com/vividvilla/ezhil.git
|
||||
```
|
||||
|
||||
For more information read the [official setup guide](https://gohugo.io/overview/installing/) of Hugo.
|
||||
|
||||
## Configuration
|
||||
|
||||
```toml
|
||||
baseURL = "http://example.org/"
|
||||
languageCode = "en-us"
|
||||
title = "My personal blog"
|
||||
theme = "ezhil"
|
||||
|
||||
copyright = "© Copyright notice"
|
||||
|
||||
# Enable syntax highlighting.
|
||||
pygmentsstyle = "solarized-dark"
|
||||
pygmentscodefences = true
|
||||
pygmentscodefencesguesssyntax = true
|
||||
|
||||
# Your Google analytics code.
|
||||
googleAnalytics = "UA-123-45"
|
||||
# Your Disqus sortname.
|
||||
disqusShortname = "localhost"
|
||||
|
||||
# Number of posts to show in recent posts list (Optional). Defaults to 10.
|
||||
paginate = 10
|
||||
|
||||
# Number of characters to show in summary.
|
||||
summaryLength = 20
|
||||
|
||||
[params]
|
||||
# Blog subtitle which appears below blog title. Supports markdown.
|
||||
subtitle = "Clean and minimal personal [blog theme for Hugo](https://github.com/vividvilla/ezhil)"
|
||||
|
||||
# Content types which are included in home page recent posts list.
|
||||
mainSections = ["posts"]
|
||||
|
||||
# Content types which are excludes Disqus comments.
|
||||
disableDisqusTypes = ["page"]
|
||||
|
||||
# If social media links are enabled then enable this to fetch icons from CDN instead of hosted on your site.
|
||||
featherIconsCDN = true
|
||||
|
||||
# Specify favicon (icons/i.png maps to static/icons/i.png). No favicon if not defined.
|
||||
favicon = "icons/myicon.png"
|
||||
|
||||
# Switch to dark mode or auto detect mode from OS (Optional).
|
||||
# "dark" will set mode to dark and "auto" will switch to dark mode if OS is in dark mode.
|
||||
mode = "dark" # "dark" or "auto"
|
||||
|
||||
# Custom CSS added to default styles. Files added to `static` folder is copied as it is to
|
||||
# root by Hugo. For example if you have custom CSS file under `static/css/custom.css` then
|
||||
# you can specify custom css path as `css/custom.css`.
|
||||
customCSS = "css/custom.css"
|
||||
# Custom CSS added to dark mode style.
|
||||
customDarkCSS = "css/custom-dark.css"
|
||||
|
||||
# Custom list of Javascript files to load. Just like custom CSS you can place js files under
|
||||
# `static/js` folder and specify path here as `js/script-name.js`. You can also specify full url,
|
||||
# for example you may want to include external JS library.
|
||||
customJS = ["js/abc.js", "js/xyz.js", "https://code.jquery.com/jquery-3.4.1.js"]
|
||||
|
||||
# Main menu which appears below site header.
|
||||
[[menu.main]]
|
||||
name = "Home"
|
||||
url = "/"
|
||||
weight = 1
|
||||
|
||||
[[menu.main]]
|
||||
name = "All posts"
|
||||
url = "/posts"
|
||||
weight = 2
|
||||
|
||||
[[menu.main]]
|
||||
name = "About"
|
||||
url = "/about"
|
||||
weight = 3
|
||||
|
||||
[[menu.main]]
|
||||
name = "Tags"
|
||||
url = "/tags"
|
||||
weight = 4
|
||||
|
||||
# Social media links which shows up on site header.
|
||||
# Uses feather icons for icons. You can [search icon names from here](https://feathericons.com/).
|
||||
[[params.social]]
|
||||
name = "Github"
|
||||
icon = "github"
|
||||
url = "https://github.com/vividvilla/ezhil"
|
||||
|
||||
[[params.social]]
|
||||
name = "Twitter"
|
||||
icon = "twitter"
|
||||
url = "https://twitter.com/gohugoio"
|
||||
|
||||
# Enable tags.
|
||||
[taxonomies]
|
||||
tag = "tags"
|
||||
```
|
||||
|
||||
## Content type
|
||||
|
||||
You can specify content type with field `type` in your content. For example static pages can be set as type `page` which are excluded from recent posts and all posts page. You can use site params `mainSections` and `disableDisqusTypes` to control which page types are excluded from recent posts and Disqus comments respectively.
|
||||
|
||||
```md
|
||||
---
|
||||
title: "About"
|
||||
date: 2019-04-19T21:37:58+05:30
|
||||
type: "page"
|
||||
---
|
||||
|
||||
This is some static page where you can write about yourself.
|
||||
```
|
||||
|
||||
## Disable Disqus
|
||||
|
||||
You can disable Disqus site wide if you don't set `DisqusShortname` param in config. You can also disable Disqus from contents selectively or for all contents with certain content type. Use content field `disqus` to disable Disqus from certain contents.
|
||||
|
||||
```md
|
||||
---
|
||||
title: "Content without comments"
|
||||
date: 2019-04-19T21:37:58+05:30
|
||||
disqus: false
|
||||
---
|
||||
|
||||
This is a content without Disqus comments.
|
||||
```
|
||||
|
||||
You can also disable Disqus for certain content types by using site param `disableDisqusTypes`. You can check config section above for example.
|
||||
|
||||
## Credits
|
||||
|
||||
* [Feather Icons](https://feathericons.com/)
|
||||
* [Zen habits](https://zenhabits.net/) for demo content
|
|
@ -0,0 +1,2 @@
|
|||
+++
|
||||
+++
|
|
@ -0,0 +1,6 @@
|
|||
---
|
||||
title: "{{ replace .Name "-" " " | title }}"
|
||||
date: {{ .Date }}
|
||||
draft: true
|
||||
---
|
||||
|
|
@ -0,0 +1,58 @@
|
|||
baseURL = "http://example.org/"
|
||||
languageCode = "en-us"
|
||||
title = "Ezhil"
|
||||
theme = "ezhil"
|
||||
paginate = 5
|
||||
|
||||
copyright = "© Copyright notice"
|
||||
|
||||
pygmentsstyle = "solarized-dark"
|
||||
pygmentscodefences = true
|
||||
pygmentscodefencesguesssyntax = true
|
||||
|
||||
googleAnalytics = "UA-123-45"
|
||||
disqusShortname = "ezhil-demo"
|
||||
|
||||
summaryLength = 20
|
||||
|
||||
[params]
|
||||
subtitle = "Clean and minimal personal [blog theme for Hugo](https://github.com/vividvilla/ezhil)"
|
||||
disableDisqusTypes = ["page"]
|
||||
featherIconsCDN = true
|
||||
mode = "auto" # "dark", "auto", "light"
|
||||
# customCSS = "css/custom.css" # Custom CSS applied to default styles.
|
||||
# customDarkCSS = "css/custom-dark.css" # Custom styles applied to dark mode css.
|
||||
# customJS = ["https://code.jquery.com/jquery-3.4.1.js", "js/custom1.js"] # Custom JS scripts.
|
||||
|
||||
[[menu.main]]
|
||||
name = "Home"
|
||||
url = "/"
|
||||
weight = 1
|
||||
|
||||
[[menu.main]]
|
||||
name = "All posts"
|
||||
url = "/posts"
|
||||
weight = 2
|
||||
|
||||
[[menu.main]]
|
||||
name = "About"
|
||||
url = "/about"
|
||||
weight = 3
|
||||
|
||||
[[menu.main]]
|
||||
name = "Tags"
|
||||
url = "/tags"
|
||||
weight = 4
|
||||
|
||||
[[params.social]]
|
||||
name = "Github"
|
||||
icon = "github"
|
||||
url = "https://github.com/vividvilla/ezhil"
|
||||
|
||||
[[params.social]]
|
||||
name = "RSS"
|
||||
icon = "rss"
|
||||
url = "/index.xml"
|
||||
|
||||
[taxonomies]
|
||||
tag = "tags"
|
|
@ -0,0 +1,7 @@
|
|||
---
|
||||
title: "About"
|
||||
date: 2019-04-19T21:37:58+05:30
|
||||
type: "page"
|
||||
---
|
||||
|
||||
This is some static page where you can write about yourself.
|
|
@ -0,0 +1,62 @@
|
|||
---
|
||||
title: "Primer: When You Have Too Much to Do"
|
||||
date: 2018-03-18T02:01:58+05:30
|
||||
description: "You have a to-do list that scrolls on for days. You are managing multiple projects, getting lots of email and messages on different messaging systems, managing finances and personal health habits and so much more."
|
||||
tags: [Primer, todo]
|
||||
---
|
||||
|
||||
You have a to-do list that scrolls on for days. You are managing multiple projects, getting lots of email and messages on different messaging systems, managing finances and personal health habits and so much more.
|
||||
|
||||
It all keeps piling up, and it can feel overwhelming.
|
||||
|
||||
How do you keep up with it all? How do you find focus and peace and get stuff accomplished when you have too much on your plate?
|
||||
|
||||
In this primer, I’ll look at some key strategies and tactics for taking on an overloaded life with an open heart, lots of energy, and a smile on your face.
|
||||
|
||||
## The First Step: Triage
|
||||
|
||||
Whether you’re just starting your day, or you’re in the middle of the chaos and just need to find some sanity … the first step is to get into triage mode.
|
||||
|
||||
Triage, as you probably know, is sorting through the chaos to prioritize: what needs to be done now, what needs to be done today, what needs to be done this week, and what can wait? You’re looking at urgency, but also what’s meaningful and important.
|
||||
|
||||
Here’s what you might do:
|
||||
|
||||
* Pick out the things that need to be done today. Start a Short List for things you’re going to do today. That might be important tasks for big projects, urgent tasks that could result in damage if you don’t act, smaller admin tasks that you really should take care of today, and responding to important messages. I would recommend being ruthless and cutting out as much as you can, having just 5 things on your plate if that’s at all possible. Not everything needs to be done today, and not every email needs to be responded to.
|
||||
* Push some things to tomorrow and the rest of the week. If you have deadlines that can be pushed back (or renegotiated), do that. Spread the work out over the week, even into next week. What needs to be done tomorrow? What can wait a day or two longer?
|
||||
* Eliminate what you can. That might mean just not replying to some messages that aren’t that important and don’t really require a reply. It might mean telling some people that you can’t take on this project after all, or that you need to get out of the commitment that you said you’d do. Yes, this is uncomfortable. For now, just put them on a list called, “To Not Do,” and plan to figure out how to get out of them later.
|
||||
|
||||
OK, you have some breathing room and a manageable list now! Let’s shrink that down even further and just pick one thing.
|
||||
|
||||
## Next: Focus on One Thing
|
||||
|
||||
With a lot on your plate, it’s hard to pick one thing to focus on. But that’s exactly what I’m going to ask you to do.
|
||||
|
||||
Pick one thing, and give it your focus. Yes, there are a lot of other things you can focus on. Yes, they’re stressing you out and making it hard to focus. But think about it this way: if you allow it all to be in your head all the time, that will always be your mode of being. You’ll always be thinking about everything, stressing out about it all, with a frazzled mind … unless you start shifting.
|
||||
|
||||
The shift:
|
||||
|
||||
* Pick something to focus on. Look at the triaged list from the first section … if you have 5-6 things on this Short List, you can assess whether there’s any super urgent, time-sensitive things you need to take care of. If there are, pick one of them. If not, pick the most important one — probably the one you have been putting off doing.
|
||||
* Clear everything else away. Just for a little bit. Close all browser tabs, turn off notifications, close open applications, put your phone away.
|
||||
* Put that one task before you, and allow yourself to be with it completely. Pour yourself into it. Think of it as a practice, of letting go (of everything else), of focus, of radical simplicity.
|
||||
|
||||
When you’re done (or after 15-20 minutes have gone by at least), you can switch to something else. But don’t allow yourself to switch until then.
|
||||
|
||||
By closing off all exits, by choosing one thing, by giving yourself completely to that thing … you’re now in a different mode that isn’t so stressful or spread thin. You’ve started a shift that will lead to focus and sanity.
|
||||
|
||||
## Third: Schedule Time to Simplify
|
||||
|
||||
Remember the To Not Do list above? Schedule some time this week to start reducing your projects, saying no to people, getting out of commitments, crossing stuff off your task list … so that you can have some sanity back.
|
||||
|
||||
There are lots of little things that you’ve said “yes” to that you probably shouldn’t have. That’s why you’re overloaded. Protect your more important work, and your time off, and your peace of mind, by saying “no” to things that aren’t as important.
|
||||
|
||||
Schedule the time to simplify — you don’t have to do it today, but sometime soon — and you can then not have to worry about the things on your To Not Do list until then.
|
||||
|
||||
## Fourth: Practice Mindful Focus
|
||||
|
||||
Go through the rest of the day with an attitude of “mindful focus.” That means that you are doing one thing at a time, being as present as you can, switching as little as you can.
|
||||
|
||||
Think of it as a settling of the mind. A new mode of being. A mindfulness practice (which means you won’t be perfect at it).
|
||||
|
||||
As you practice mindful focus, you’ll learn to practice doing things with an open heart, with curiosity and gratitude, and even joy. Try these one at a time as you get to do each task on your Short List.
|
||||
|
||||
You’ll find that you’re not so overloaded, but that each task is just perfect for that moment. And that’s a completely new relationship with the work that you do, and a new relationship with life.
|
|
@ -0,0 +1,40 @@
|
|||
---
|
||||
title: "Fearlessness: How to Stop Running from Space"
|
||||
date: 2018-03-18T12:13:30+05:30
|
||||
tags: [Space]
|
||||
---
|
||||
|
||||
We spend our days filling in every available space, cramming in more tasks, responding to messages, checking social media and online sites, watching videos.
|
||||
|
||||
We are afraid of empty space in our lives.
|
||||
|
||||
The result is often a continual busyness, constant distraction and avoidance, lack of focus, lack of satisfaction with our lives.
|
||||
|
||||
We run from silence. We run from the spaces between tasks and appointments. We run from solitude and stillness. We try to fill every second with activity, with something useful, as if silence and space are not valuable.
|
||||
|
||||
But what are we afraid of?
|
||||
|
||||
And who would we be if we didn’t have that fear?
|
||||
|
||||
We’re afraid of space and stillness and silence because it highlights the uncertainty, instability, groundlessness, insecurity, shakiness that lie underneath every second of our lives. We’re afraid of having to face this instability and uncertainty, of having to feel the fear of it.
|
||||
|
||||
Without the fear of all of the uncertainty that is highlighted by space … we become free.
|
||||
|
||||
I know in my life, when I allow myself to have stillness, silence, solitude, simplicity and space … it leaves room to face whatever is coming up for me. It gives me room to fully feel any feelings that I’ve been avoiding. It allows me to be more honest with myself, instead of using distractions and busyness to cover up what I don’t want to see.
|
||||
|
||||
And in the end, I develop trust that the space is not something to be feared, but rather something to be treasured. A gift, filled with learning and not knowing and shakiness and beauty.
|
||||
|
||||
You might try allowing more space to be in your day, without filling it:
|
||||
|
||||
* Take some time between tasks for stillness.
|
||||
* Sit out in nature, in silence, without technology.
|
||||
* When you notice yourself reaching for your phone, pause. See if you can just be still, just savor some space.
|
||||
* When you feel uncertainty or instability in your life (hint: it’s always there), let yourself feel it. Be present with it, without needing to run or avoid.
|
||||
* When you feel fear, be open-hearted with it and allow yourself fully feel it, being friendly with it. Your relationship with fear will change if you become friendly with it.
|
||||
* Do less, and trust that things won’t fall apart. Or if they do fall apart, you can be present with that instability.
|
||||
* When you’re in line, driving, eating, walking, exercising … see if you can do those things in silence, without technology, without needing to do something “useful.” Find the value in these spaces.
|
||||
* Notice who you are without the fear of space.
|
||||
|
||||
Savor these spaces, their deliciousness. Savor the groundlessness, as something filled with freedom if we learn not to fear it. Be present with the fear and uncertainty, as good friends not as enemies.
|
||||
|
||||
Let your heart be open raw tender and vulnerable, and your mind embracing the spaciousness of the vast blue sky of open awareness.
|
|
@ -0,0 +1,38 @@
|
|||
---
|
||||
title: "How I Learned to Stop Procrastinating, & Love Letting Go"
|
||||
date: 2018-03-18T12:13:32+05:30
|
||||
description: "The art of letting go."
|
||||
tags: [Procrastinating]
|
||||
---
|
||||
|
||||
The end of procrastination is the art of letting go.
|
||||
|
||||
I’ve been a lifelong procrastinator, at least until recent years. I would put things off until deadline, because I knew I could come through. I came through on tests after cramming last minute, I turned articles in at the deadline after waiting until the last hour, I got things done.
|
||||
|
||||
Until I didn’t. It turns out procrastinating caused me to miss deadlines, over and over. It stressed me out. My work was less-than-desirable when I did it last minute. Slowly, I started to realize that procrastination wasn’t doing me any favors. In fact, it was causing me a lot of grief.
|
||||
|
||||
But I couldn’t quit. I tried a lot of things. I tried time boxing and goal setting and accountability and the Pomodoro Technique and Getting Things Done. All are great methods, but they only last so long. Nothing really worked over the long term.
|
||||
|
||||
That’s because I wasn’t getting to the root problem.
|
||||
|
||||
I hadn’t figured out the skill that would save me from the procrastination.
|
||||
|
||||
Until I learned about letting go.
|
||||
|
||||
Letting go first came to me when I was quitting smoking. I had to let go of the “need” to smoke, the use of my crutch of cigarettes to deal with stress and problems.
|
||||
|
||||
Then I learned I needed to let go of other false needs that were causing me problems: sugar, junk food, meat, shopping, beer, possessions. I’m not saying I can never do these things again once I let go of these needs, but I let go of the idea that they’re really necessary. I let go of an unhealthy attachment to them.
|
||||
|
||||
Then I learned that distractions and the false need to check my email and news and other things online … were causing me problems. They were causing my procrastination.
|
||||
|
||||
So I learned to let go of those too.
|
||||
|
||||
Here’s the process I used to let go of the distractions and false needs that cause procrastination:
|
||||
|
||||
I paid attention to the pain they cause me, later, instead of only the temporary comfort/pleasure they gave me right away.
|
||||
I thought about the person I want to be, the life I want to live. I set my intentions to do the good work I think I should do.
|
||||
I watched my urges to check things, to go to the comfort of distractions. I saw that I wanted to escape discomfort of something hard, and go to the comfort of something familiar and easy.
|
||||
I realized I didn’t need that comfort. I could be in discomfort and nothing bad would happen. In fact, the best things happen when I’m in discomfort.
|
||||
And then I smile, and breathe, and let go.
|
||||
|
||||
And one step at a time, become the person I want to be.
|
|
@ -0,0 +1,30 @@
|
|||
---
|
||||
title: "Getting Started with Traveling Ultralight"
|
||||
date: 2018-03-18T12:13:35+05:30
|
||||
description: "Start by getting a small backpack (less than 20 liters) and then just travel with what fits in that."
|
||||
---
|
||||
|
||||
I’m on a trip at the moment, and a friend who generously let me sleep on his couch looked at my small travel backpack and commented on how little I travel with: “That’s impressive,” he said.
|
||||
|
||||
I was a little surprised, because though I’ve gotten that comment before, it’s become normal for me to travel with just a small bag (10 lbs. or less, usually), and I have friends who travel with even less. But then I remembered that I’m far from normal in this way.
|
||||
|
||||
I gave him a tip for getting started, and I recommend it for all of you, who want to travel light — or ultralight, as I call it, because for many people traveling light is taking a carry-on roller luggage. For me, having those roller bags is lugging too much, because you can run up stairs with it with ease, or carry it all over a city without worrying about stowing away your luggage somewhere first. It’s so much easier to travel ultralight.
|
||||
|
||||
Here’s the tip I gave him to get started: start by getting a small backpack (less than 20 liters) and then just travel with what fits in that.
|
||||
|
||||
That’s how to start. But you’ll probably want some guidance on what to put into the bag, and how to travel with so little. Here’s some guidance to get started:
|
||||
|
||||
* I travel with a lightweight laptop (Macbook Air), a few clothes, my phone, earbuds and some charging cords, toiletries, and almost nothing else. A lightweight windbreaker for wind and light rain (Patagonia Houdini). An eye mask and ear plugs. A collapsible water bottle. My passport. That’s about it. No extra shoes. No books. No suit. No travel pillow. No extra camera other than my phone. I’m not sure what else everyone else brings, but none of that.
|
||||
* I bring clothes that I can wash in the sink or shower and that will dry overnight. Lightweight stuff that I can layer. Often they’re workout-style clothes or things from companies like Outlier or Patagonia that travel well. I don’t bring enough underwear or socks for every day of the trip, because I wash them every couple of days. I only bring one or two extra T-shirts, generally wearing the same two shirts the whole trip, even if it’s a month long. No one has ever once cared what I wear when I’m traveling.
|
||||
* I bring minimal toiletries: a small shaver for my head, razor, toothbrush, floss small tubes of toothpaste and shaving cream, deodorant, nail clippers, ibuprofen.
|
||||
* For cold places, I have thermal underwear and a couple long-sleeve layers (generally all Patagonia capilene stuff), and a beanie. I don’t usually go to places where it’s snowing (I don’t know why, maybe snow isn’t my thing), so I don’t have clothes to deal with that weather.
|
||||
* For warm places, I will bring flip flops and swim trunks, and leave most of the colder layers behind.
|
||||
|
||||
That’s enough for a monthlong trip, which I’ve done multiple times with this kind of setup. For a shorter trip of a few days, I might bring even less.
|
||||
|
||||
I really love traveling this way, and am more than willing to sacrifice bringing extra things for the luxury of traveling lightweight.
|
||||
|
||||
By the way, you don’t need much more than this kind of setup even in everyday life.
|
||||
|
||||
For more info on this, check out my Ultralight ebook, and my friend Tynan has a great book called Forever Nomad.
|
||||
|
|
@ -0,0 +1,90 @@
|
|||
---
|
||||
title: "Typography"
|
||||
date: 2018-03-18T12:13:38+05:30
|
||||
---
|
||||
|
||||
Lid est laborum et dolorum fuga. Et harum quidem rerum facilis est et expeditasi distinctio. Nam libero tempore, cum soluta nobis est eligendi optio cumque nihilse impedit quo minus id quod amets untra dolor amet sad. Sed ut perspser iciatis unde omnis iste natus error sit voluptatem accusantium doloremque laste. Dolores sadips ipsums sits.
|
||||
|
||||
# Heading 1
|
||||
|
||||
Lid est laborum et dolorum fuga. Et harum quidem rerum facilis est et expeditasi distinctio. Nam libero tempore, cum soluta nobis est eligendi optio cumque nihilse impedit quo minus id quod amets untra dolor amet sad. Sed ut perspser iciatis unde omnis iste natus error sit voluptatem accusantium doloremque laste. Dolores sadips ipsums sits.
|
||||
|
||||
## Heading 2
|
||||
|
||||
Lid est laborum et dolorum fuga. Et harum quidem rerum facilis est et expeditasi distinctio. Nam libero tempore, cum soluta nobis est eligendi optio cumque nihilse impedit quo minus id quod amets untra dolor amet sad. Sed ut perspser iciatis unde omnis iste natus error sit voluptatem accusantium doloremque laste. Dolores sadips ipsums sits.
|
||||
|
||||
### Heading 3
|
||||
|
||||
Lid est laborum et dolorum fuga. Et harum quidem rerum facilis est et expeditasi distinctio. Nam libero tempore, cum soluta nobis est eligendi optio cumque nihilse impedit quo minus id quod amets untra dolor amet sad. Sed ut perspser iciatis unde omnis iste natus error sit voluptatem accusantium doloremque laste. Dolores sadips ipsums sits.
|
||||
|
||||
#### Heading 4
|
||||
|
||||
Lid est laborum et dolorum fuga. Et harum quidem rerum facilis est et expeditasi distinctio. Nam libero tempore, cum soluta nobis est eligendi optio cumque nihilse impedit quo minus id quod amets untra dolor amet sad. Sed ut perspser iciatis unde omnis iste natus error sit voluptatem accusantium doloremque laste. Dolores sadips ipsums sits.
|
||||
|
||||
##### Heading 5
|
||||
|
||||
Lid est laborum et dolorum fuga. Et harum quidem rerum facilis est et expeditasi distinctio. Nam libero tempore, cum soluta nobis est eligendi optio cumque nihilse impedit quo minus id quod amets untra dolor amet sad. Sed ut perspser iciatis unde omnis iste natus error sit voluptatem accusantium doloremque laste. Dolores sadips ipsums sits.
|
||||
|
||||
###### Heading 6
|
||||
|
||||
Lid est laborum et dolorum fuga. Et harum quidem rerum facilis est et expeditasi distinctio. Nam libero tempore, cum soluta nobis est eligendi optio cumque nihilse impedit quo minus id quod amets untra dolor amet sad. Sed ut perspser iciatis unde omnis iste natus error sit voluptatem accusantium doloremque laste. Dolores sadips ipsums sits.
|
||||
|
||||
## Typography
|
||||
|
||||
Lid est laborum et dolorum fuga, This is [an example](http://example.com/ "Title") inline link. Et harum quidem rerum facilis, **This is bold** and *emphasis* cumque nihilse impedit quo minus id quod amets untra dolor amet sad. While this is `code block()` and following is a `pre` tag
|
||||
|
||||
print 'this is pre tag'
|
||||
|
||||
Following is the syntax highlighted code block
|
||||
|
||||
```go
|
||||
func getCookie(name string, r interface{}) (*http.Cookie, error) {
|
||||
rd := r.(*http.Request)
|
||||
cookie, err := rd.Cookie(name)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return cookie, nil
|
||||
}
|
||||
|
||||
func setCookie(cookie *http.Cookie, w interface{}) error {
|
||||
// Get write interface registered using `Acquire` method in handlers.
|
||||
wr := w.(http.ResponseWriter)
|
||||
http.SetCookie(wr, cookie)
|
||||
return nil
|
||||
}
|
||||
```
|
||||
|
||||
This is blockquote, Will make it *better now*
|
||||
|
||||
> 'I want to do with you what spring does with the cherry trees.' <cite>cited ~Pablo Neruda</cite>*
|
||||
|
||||
|
||||
> Et harum quidem *rerum facilis* est et expeditasi distinctio. Nam libero tempore, cum soluta nobis est eligendi optio cumque nihilse impedit
|
||||
|
||||
Unordered list
|
||||
|
||||
* Red
|
||||
* Green
|
||||
* Blue
|
||||
|
||||
Ordered list
|
||||
|
||||
1. Red
|
||||
2. Green
|
||||
3. Blue
|
||||
|
||||
## Tables
|
||||
|
||||
Tables aren't part of the core Markdown spec, but Hugo supports supports them out-of-the-box.
|
||||
|
||||
Name | Age
|
||||
--------|------
|
||||
Bob | 27
|
||||
Alice | 23
|
||||
|
||||
#### Inline Markdown within tables
|
||||
|
||||
| Inline | Markdown | In | Table |
|
||||
| ---------- | --------- | ----------------- | ---------- |
|
||||
| *italics* | **bold** | ~~strikethrough~~ | `code` |
|
|
@ -0,0 +1,32 @@
|
|||
---
|
||||
title: "Hugo shortcodes"
|
||||
date: 2018-03-18T12:13:36+05:30
|
||||
description: Here is a demo of all shortcodes available in Hugo.
|
||||
---
|
||||
|
||||
## Images
|
||||
|
||||
{{< figure src="https://images.unsplash.com/photo-1560032779-0a8809186efd?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&auto=format&fit=crop&w=1350&q=80" title="Dave Herring" >}}
|
||||
|
||||
{{< figure src="https://images.unsplash.com/photo-1560032779-0a8809186efd?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&auto=format&fit=crop&w=500&q=80" title="Dave Herring" >}}
|
||||
|
||||
|
||||
## Github Gist
|
||||
|
||||
{{< gist spf13 7896402 >}}
|
||||
|
||||
## Youtube video
|
||||
|
||||
{{< youtube w7Ft2ymGmfc >}}
|
||||
|
||||
## Tweet
|
||||
|
||||
{{< tweet 877500564405444608 >}}
|
||||
|
||||
## Vimeo
|
||||
|
||||
{{< vimeo id="146022717" >}}
|
||||
|
||||
## Instagram
|
||||
|
||||
{{< instagram BWNjjyYFxVx >}}
|
|
@ -0,0 +1,14 @@
|
|||
---
|
||||
title: "How to test dark mode?"
|
||||
description: "Here is how you can setup dark mode for Ezhil and test on various OS like iOS, Android, macOS and Windows 10."
|
||||
date: 2018-03-18T12:13:38+05:30
|
||||
---
|
||||
|
||||
You can set dark mode as default by setting `params.mode` to `dark` in `config.toml` or set it to `auto` which will detect based on your OS and switch to dark mode. For more details [refer documentation](https://github.com/vividvilla/ezhil#configuration)
|
||||
|
||||
Here is how you can switch based on your OS
|
||||
|
||||
* [iOS](https://www.howtogeek.com/440078/how-to-enable-dark-mode-on-your-iphone-and-ipad/)
|
||||
* [Android](https://9to5google.com/2018/12/17/android-dark-mode-theme-pie/)
|
||||
* [macOS](https://support.apple.com/en-in/HT208976)
|
||||
* [Windows 10](https://www.cnet.com/how-to/turn-on-the-dark-mode-in-windows-10/)
|
Binary file not shown.
After Width: | Height: | Size: 49 KiB |
Binary file not shown.
After Width: | Height: | Size: 54 KiB |
Binary file not shown.
After Width: | Height: | Size: 168 KiB |
Binary file not shown.
After Width: | Height: | Size: 91 KiB |
|
@ -0,0 +1,32 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
{{ partial "header.html" . }}
|
||||
|
||||
<body>
|
||||
<div class="container wrapper list">
|
||||
{{ partial "head.html" . }}
|
||||
|
||||
{{ if isset .Data "Term" }}
|
||||
<h1>Entries tagged - "{{ .Data.Term }}"</h1>
|
||||
{{ else }}
|
||||
<h1 class="page-title">All articles</h1>
|
||||
{{ end }}
|
||||
|
||||
{{ with .Content }}{{ . }}{{ end }}
|
||||
|
||||
<ul class="posts">
|
||||
{{- range .Data.Pages -}}
|
||||
{{- if (in (.Site.Params.excludedTypes | default (slice "page")) .Type) -}}
|
||||
{{- else -}}
|
||||
<li class="post">
|
||||
<a href="{{ .RelPermalink }}">{{.Title}}</a> <span class="meta">{{ dateFormat "Jan 2, 2006" .Date }}{{ if .Draft }} <span class="draft-label">DRAFT</span> {{ end }}</span>
|
||||
</li>
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
{{ partial "footer.html" . }}
|
||||
</body>
|
||||
|
||||
</html>
|
|
@ -0,0 +1,55 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
{{ partial "header.html" . }}
|
||||
<body>
|
||||
<div class="container wrapper post">
|
||||
{{ partial "head.html" . }}
|
||||
|
||||
<div class="post-header">
|
||||
<h1 class="title">{{ .Title }}</h1>
|
||||
<div class="meta">Posted at — {{ dateFormat "Jan 2, 2006" .Date }}{{ if .Draft }} <span class="draft-label">DRAFT</span> {{ end }}</div>
|
||||
</div>
|
||||
|
||||
<div class="markdown">
|
||||
{{ .Content }}
|
||||
</div>
|
||||
|
||||
<div class="post-tags">
|
||||
{{ if ne .Type "page" }}
|
||||
{{ if gt .Params.tags 0 }}
|
||||
<nav class="nav tags">
|
||||
<ul class="flat">
|
||||
{{ range .Params.tags }}
|
||||
<li><a href="{{ "/tags/" | relLangURL }}{{ . | urlize }}">{{ . }}</a></li>
|
||||
{{ end }}
|
||||
</ul>
|
||||
</nav>
|
||||
{{ end }}
|
||||
{{ end }}
|
||||
</div>
|
||||
{{- $.Scratch.Set "isDisqus" true -}}
|
||||
|
||||
<!-- Disable if content type is excluded in config -->
|
||||
{{- if and (isset .Params "type") (in .Site.Params.disableDisqusTypes .Params.type) -}}
|
||||
{{- $.Scratch.Set "isDisqus" false -}}
|
||||
{{- end -}}
|
||||
|
||||
<!-- Check if content has flag to enable/disable disqus explicitly -->
|
||||
{{- if and (isset .Params "disqus") (eq .Params.disqus false) -}}
|
||||
{{- $.Scratch.Set "isDisqus" false -}}
|
||||
{{- else if and (isset .Params "disqus") (eq .Params.disqus true) -}}
|
||||
{{- $.Scratch.Set "isDisqus" true -}}
|
||||
{{- end -}}
|
||||
|
||||
<!-- Check if disqus short name is given -->
|
||||
{{ if not .Site.DisqusShortname }}
|
||||
{{- $.Scratch.Set "isDisqus" false -}}
|
||||
{{ end }}
|
||||
|
||||
{{- if eq ($.Scratch.Get "isDisqus") true -}}
|
||||
{{- partial "disqus.html" . -}}
|
||||
{{- end -}}
|
||||
</div>
|
||||
{{ partial "footer.html" . }}
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,15 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
{{ partial "header.html" . }}
|
||||
|
||||
<body>
|
||||
<div class="container wrapper tags">
|
||||
{{ partial "head.html" . }}
|
||||
|
||||
<h1 class="page-title">All tags</h1>
|
||||
</div>
|
||||
|
||||
{{ partial "footer.html" . }}
|
||||
</body>
|
||||
|
||||
</html>
|
|
@ -0,0 +1,32 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
{{ partial "header.html" . }}
|
||||
|
||||
<body>
|
||||
<div class="container wrapper tags">
|
||||
{{ partial "head.html" . }}
|
||||
|
||||
<h1 class="page-title">{{ .Title }}</h1>
|
||||
|
||||
{{ with .Content }}{{ . }}{{ end }}
|
||||
|
||||
{{ $biggest := 1 }}
|
||||
{{ $smallest := 1 }}
|
||||
{{ $max := 3 }}
|
||||
{{ $min := 1 }}
|
||||
{{ $size := $min }}
|
||||
|
||||
{{ $data := .Data }}
|
||||
<div class="tag-cloud">
|
||||
{{ range $key, $value := .Data.Terms.ByCount }}
|
||||
{{ $size := (add (mul (div $value.Count $biggest) (sub $max $min)) $min) }}
|
||||
{{ $size := (cond (eq $biggest $smallest) $min $size) }}
|
||||
<a style="font-size: {{ $size }}rem;" href="{{ $.Site.LanguagePrefix | absURL }}{{ $data.Plural }}/{{ $value.Name | urlize }}/">{{ $value.Name }}</a>
|
||||
{{ end }}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{{ partial "footer.html" . }}
|
||||
</body>
|
||||
|
||||
</html>
|
|
@ -0,0 +1,36 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
{{ partial "header.html" . }}
|
||||
<body>
|
||||
<div class="container wrapper">
|
||||
{{ partial "head.html" . }}
|
||||
|
||||
{{ with .Content }}{{ . }}{{ end }}
|
||||
|
||||
<div class="recent-posts section">
|
||||
<h2 class="section-header">
|
||||
Recent posts
|
||||
</h2>
|
||||
<div class="posts">
|
||||
{{ $pages := where .Site.RegularPages "Type" "in" .Site.Params.mainSections }}
|
||||
{{ $paginator := .Paginate (where $pages "Params.hidden" "ne" true) }}
|
||||
{{ range $paginator.Pages }}
|
||||
<div class="post">
|
||||
<div class="meta">{{ dateFormat "Jan 2, 2006" .Date }}{{ if .Draft }} <span class="draft-label">DRAFT</span> {{ end }}</div>
|
||||
<a class="title" href="{{ .RelPermalink }}">{{.Title}}</a> —
|
||||
<span class="description">
|
||||
{{ if isset .Params "description" }}
|
||||
{{ .Description }}
|
||||
{{ else }}
|
||||
{{ .Summary }}…
|
||||
{{ end }}
|
||||
</span>
|
||||
</div>
|
||||
{{ end }}
|
||||
{{ template "partials/paginator.html" . }}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{{ partial "footer.html" . }}
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,17 @@
|
|||
<div id="disqus_thread"></div>
|
||||
<script type="text/javascript">
|
||||
(function () {
|
||||
// Don't ever inject Disqus on localhost--it creates unwanted
|
||||
// discussions from 'localhost:1313' on your Disqus account...
|
||||
if (window.location.hostname == "localhost")
|
||||
return;
|
||||
|
||||
var dsq = document.createElement('script'); dsq.type = 'text/javascript'; dsq.async = true;
|
||||
var disqus_shortname = '{{ .Site.DisqusShortname }}';
|
||||
dsq.src = '//' + disqus_shortname + '.disqus.com/embed.js';
|
||||
(document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(dsq);
|
||||
})();
|
||||
</script>
|
||||
<noscript>Please enable JavaScript to view the <a href="http://disqus.com/?ref_noscript">comments powered by
|
||||
Disqus.</a></noscript>
|
||||
<a href="http://disqus.com/" class="dsq-brlink">comments powered by <span class="logo-disqus">Disqus</span></a>
|
|
@ -0,0 +1,12 @@
|
|||
<div class="footer wrapper">
|
||||
<nav class="nav">
|
||||
<div>{{ with .Site.Copyright }} {{ . }} | {{ end }} <a href="https://github.com/vividvilla/ezhil">Ezhil theme</a> | Built with <a href="https://gohugo.io">Hugo</a></div>
|
||||
</nav>
|
||||
</div>
|
||||
|
||||
{{ if not .Site.IsServer }}
|
||||
{{ template "_internal/google_analytics_async.html" . }}
|
||||
{{ end }}
|
||||
{{- with .Site.Params.Social -}}
|
||||
<script>feather.replace()</script>
|
||||
{{- end -}}
|
|
@ -0,0 +1,26 @@
|
|||
<div class="header">
|
||||
<base href="{{ .Site.BaseURL }}">
|
||||
<h1 class="site-title"><a href="{{ .Site.BaseURL }}">{{ .Site.Title }}</a></h1>
|
||||
<div class="site-description">
|
||||
{{- if isset .Site.Params "subtitle" -}}
|
||||
<h2>{{ .Site.Params.Subtitle | markdownify }}</h2>
|
||||
{{- end -}}
|
||||
<nav class="nav social">
|
||||
<ul class="flat">
|
||||
{{- range $index, $key := .Site.Params.Social -}}
|
||||
<a href="{{ $key.url }}" title="{{ $key.name }}"><i data-feather="{{ $key.icon }}"></i></a>
|
||||
{{- end -}}
|
||||
</ul>
|
||||
</nav>
|
||||
</div>
|
||||
|
||||
<nav class="nav">
|
||||
<ul class="flat">
|
||||
{{ range .Site.Menus.main }}
|
||||
<li>
|
||||
<a href="{{ .URL }}">{{ .Name }}</a>
|
||||
</li>
|
||||
{{ end }}
|
||||
</ul>
|
||||
</nav>
|
||||
</div>
|
|
@ -0,0 +1,52 @@
|
|||
<head>
|
||||
<meta charset="utf-8" />
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
{{- $title := ( .Title ) -}}
|
||||
{{- $siteTitle := ( .Site.Title ) -}}
|
||||
{{- if .IsHome -}}
|
||||
<title>{{ $siteTitle }} {{ if isset .Site.Params "subtitle" }}- {{ .Site.Params.Subtitle }}{{ end }} </title>
|
||||
{{- else -}}
|
||||
<title>{{ $title }} - {{ $siteTitle }}</title>
|
||||
{{- end -}}
|
||||
|
||||
{{- if isset .Site.Params "favicon" -}}
|
||||
<link rel="icon" type="image/png" href={{ .Site.Params.favicon }} />
|
||||
{{- end -}}
|
||||
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
{{ with .OutputFormats.Get "rss" -}}
|
||||
{{ printf `<link rel="%s" type="%s" href="%s" title="%s" />` .Rel .MediaType.Type .Permalink $.Site.Title | safeHTML }}
|
||||
{{ end -}}
|
||||
|
||||
{{- template "_internal/opengraph.html" . -}}
|
||||
{{- template "_internal/twitter_cards.html" . -}}
|
||||
<link href="https://fonts.googleapis.com/css?family=Ubuntu:300,400,300italic,400italic|Raleway:200,300" rel="stylesheet">
|
||||
|
||||
<link rel="stylesheet" type="text/css" media="screen" href="{{ .Site.BaseURL }}css/normalize.css" />
|
||||
<link rel="stylesheet" type="text/css" media="screen" href="{{ .Site.BaseURL }}css/main.css" />
|
||||
{{- if isset .Site.Params "customcss" }}
|
||||
<link rel="stylesheet" type="text/css" href="{{ .Site.BaseURL }}{{ .Site.Params.customCSS }}" />
|
||||
{{ end }}
|
||||
{{- if or (eq .Site.Params.mode "auto") (eq .Site.Params.mode "dark") -}}
|
||||
<link rel="stylesheet" type="text/css" href="{{ .Site.BaseURL }}css/dark.css" {{ if eq .Site.Params.mode "auto" }}media="(prefers-color-scheme: dark)"{{ end }} />
|
||||
{{- if isset .Site.Params "customdarkcss" }}
|
||||
<link rel="stylesheet" type="text/css" href="{{ .Site.BaseURL }}{{ .Site.Params.customDarkCSS }}" {{ if eq .Site.Params.mode "auto" }}media="(prefers-color-scheme: dark)"{{ end }} />
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
|
||||
{{ if and (isset .Site.Params "social") (isset .Site.Params "feathericonscdn") (eq .Site.Params.featherIconsCDN true) -}}
|
||||
<script src="https://cdn.jsdelivr.net/npm/feather-icons/dist/feather.min.js"></script>
|
||||
{{- else if (isset .Site.Params "social") -}}
|
||||
<script src="{{ .Site.BaseURL }}js/feather.min.js"></script>
|
||||
{{ end }}
|
||||
<script src="{{ .Site.BaseURL }}js/main.js"></script>
|
||||
{{- if isset .Site.Params "customjs" -}}
|
||||
{{- range .Site.Params.customJS }}
|
||||
{{- if or (hasPrefix . "http://") (hasPrefix . "https://") }}
|
||||
<script src="{{ . }}"></script>
|
||||
{{- else }}
|
||||
<script src="{{ $.Site.BaseURL }}{{ . }}"></script>
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
</head>
|
|
@ -0,0 +1,15 @@
|
|||
{{ $pag := $.Paginator }}
|
||||
{{ if gt $pag.TotalPages 1 }}
|
||||
<ul class="pagination">
|
||||
<li class="page-item page-prev">
|
||||
{{ if $pag.HasPrev }}
|
||||
<a {{ if $pag.HasPrev }}href="{{ $pag.Prev.URL }}"{{ end }} class="page-link" aria-label="Previous"><span aria-hidden="true">← Prev page</span></a>
|
||||
{{ end }}
|
||||
</li>
|
||||
<li class="page-item page-next">
|
||||
{{ if $pag.HasNext }}
|
||||
<a {{ if $pag.HasNext }}href="{{ $pag.Next.URL }}"{{ end }} class="page-link" aria-label="Next"><span aria-hidden="true">Next page →</span></a>
|
||||
{{ end }}
|
||||
</li>
|
||||
</ul>
|
||||
{{ end }}
|
|
@ -0,0 +1,8 @@
|
|||
[build]
|
||||
publish = "exampleSite/public"
|
||||
command = "cd exampleSite && hugo --gc --themesDir ../.."
|
||||
|
||||
[build.environment]
|
||||
HUGO_VERSION = "0.51"
|
||||
HUGO_THEME = "repo"
|
||||
HUGO_BASEURL = "/"
|
|
@ -0,0 +1,73 @@
|
|||
body {
|
||||
color: #ddd;
|
||||
background-color: #000;
|
||||
}
|
||||
|
||||
::-moz-selection {
|
||||
background: #666;
|
||||
text-shadow: none
|
||||
}
|
||||
|
||||
::selection {
|
||||
background: #666;
|
||||
text-shadow: none
|
||||
}
|
||||
|
||||
hr {
|
||||
border-color: #333;
|
||||
}
|
||||
|
||||
blockquote {
|
||||
border-color: #ddd;
|
||||
}
|
||||
|
||||
h1,h2,h3,h4,h5,h6 {
|
||||
color: #ddd;
|
||||
}
|
||||
|
||||
a,a:hover {
|
||||
color: #ff7979;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
.site-description a,
|
||||
.site-description a:hover {
|
||||
color: #ddd;
|
||||
text-decoration: underline;
|
||||
}
|
||||
|
||||
a:hover {
|
||||
opacity: 0.8;
|
||||
}
|
||||
|
||||
.post-tags .tags a {
|
||||
border: 1px solid #ddd;
|
||||
color: #ddd;
|
||||
}
|
||||
|
||||
.site-title a {
|
||||
color: #ddd;
|
||||
text-decoration: none !important;
|
||||
}
|
||||
|
||||
.header nav,
|
||||
.footer {
|
||||
border-color: #333;
|
||||
}
|
||||
|
||||
.highlight {
|
||||
background-color: #333;
|
||||
}
|
||||
|
||||
table th {
|
||||
background-color: #333;
|
||||
}
|
||||
|
||||
table th, table td {
|
||||
padding: 10px 20px;
|
||||
border: 1px solid #666;
|
||||
}
|
||||
|
||||
pre code {
|
||||
display: inline-block
|
||||
}
|
|
@ -0,0 +1,416 @@
|
|||
body {
|
||||
font-family: "ubuntu", sans-serif;
|
||||
font-weight: 400;
|
||||
color: #333;
|
||||
line-height: 1.6;
|
||||
font-size: 16px;
|
||||
}
|
||||
|
||||
a, a:hover {
|
||||
color: #a00;
|
||||
text-decoration: none;
|
||||
word-break: break-word;
|
||||
}
|
||||
|
||||
html,button,input,select,textarea {
|
||||
color: #333;
|
||||
}
|
||||
|
||||
::-moz-selection {
|
||||
background: #b3d4fc;
|
||||
text-shadow: none;
|
||||
}
|
||||
|
||||
::selection {
|
||||
background: #b3d4fc;
|
||||
text-shadow: none;
|
||||
}
|
||||
|
||||
hr {
|
||||
display: block;
|
||||
height: 1px;
|
||||
border: 0;
|
||||
border-top: 1px solid #ccc;
|
||||
margin: 1rem 0;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
img {
|
||||
margin: 10px auto 10px auto;
|
||||
max-width: 100%;
|
||||
display: block;
|
||||
}
|
||||
|
||||
a img {
|
||||
border:none;
|
||||
}
|
||||
|
||||
figure {
|
||||
margin: 0;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
fieldset {
|
||||
border: 0;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
textarea {
|
||||
resize: vertical;
|
||||
}
|
||||
|
||||
blockquote {
|
||||
margin-left: 1rem;
|
||||
font-style: italic;
|
||||
font-size: 1.4rem;
|
||||
font-family: Georgia,bitstream charter,serif;
|
||||
border-left: 3px solid;
|
||||
border-color: #a00;
|
||||
padding-left: 20px;
|
||||
}
|
||||
|
||||
blockquote cite {
|
||||
font-size: 70%;
|
||||
opacity: .8;
|
||||
}
|
||||
|
||||
blockquote em {
|
||||
font-weight: 600;
|
||||
}
|
||||
|
||||
a,a:hover {
|
||||
color: #a00;
|
||||
text-decoration: none
|
||||
}
|
||||
|
||||
a:hover {
|
||||
text-decoration: underline
|
||||
}
|
||||
|
||||
h1,h2,h3,h4,h5,h6 {
|
||||
font-family: raleway,sans-serif;
|
||||
line-height: 1.2;
|
||||
color: #333;
|
||||
font-weight: 200;
|
||||
}
|
||||
|
||||
h1 {
|
||||
font-size: 2.75rem;
|
||||
}
|
||||
|
||||
h2 {
|
||||
font-size: 2rem;
|
||||
}
|
||||
|
||||
h3 {
|
||||
font-size: 1.6rem;
|
||||
}
|
||||
|
||||
h4 {
|
||||
font-size: 1.2rem;
|
||||
}
|
||||
|
||||
h5 {
|
||||
font-size: 1rem;
|
||||
}
|
||||
|
||||
h6 {
|
||||
font-size: .9rem;
|
||||
}
|
||||
|
||||
.align-center {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.align-left {
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
.align-right {
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
.container {
|
||||
max-width: 800px;
|
||||
}
|
||||
|
||||
ul {
|
||||
padding-left: 15px;
|
||||
}
|
||||
|
||||
ul.flat {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
ul.flat li {
|
||||
display: inline-block;
|
||||
list-style: none;
|
||||
margin-left: 0;
|
||||
}
|
||||
|
||||
.prevent-collapse {
|
||||
min-height: .1rem
|
||||
}
|
||||
|
||||
.page-title {
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
.smaller {
|
||||
font-size: 70%;
|
||||
}
|
||||
|
||||
ul {
|
||||
list-style: disc inside;
|
||||
}
|
||||
|
||||
.site-title a {
|
||||
color: #333;
|
||||
text-decoration: none !important;
|
||||
}
|
||||
|
||||
.post ul li {
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
|
||||
.post ul li p {
|
||||
display: inline;
|
||||
}
|
||||
|
||||
.highlight pre {
|
||||
margin-bottom: 0;
|
||||
margin-top: 0;
|
||||
padding: 20px;
|
||||
background-color: transparent !important;
|
||||
}
|
||||
|
||||
.highlight {
|
||||
background: 0 0;
|
||||
background-color: #FAFAFA;
|
||||
}
|
||||
|
||||
pre code {
|
||||
display: inline-block;
|
||||
}
|
||||
|
||||
|
||||
.wrapper {
|
||||
max-width: 760px;
|
||||
margin: 0 auto;
|
||||
}
|
||||
|
||||
.container {
|
||||
margin-top: 50px;
|
||||
}
|
||||
|
||||
.header {
|
||||
margin-bottom: 20px;
|
||||
padding-bottom: 20px;
|
||||
}
|
||||
|
||||
.header h1,
|
||||
.header h2 {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
font-size: 2rem;
|
||||
line-height: 1.3em;
|
||||
}
|
||||
|
||||
.header h2 {
|
||||
font-size: 1.125rem;
|
||||
}
|
||||
|
||||
.header nav {
|
||||
margin-top: 20px;
|
||||
border-top: 1px solid #f4f4f4;
|
||||
}
|
||||
|
||||
.header nav ul,
|
||||
.header nav li {
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
.header nav ul.flat {
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
.header nav ul.flat li {
|
||||
display: inline-block;
|
||||
list-style: none;
|
||||
margin-left: 0;
|
||||
margin-right: 10px;
|
||||
margin-top: 10px;
|
||||
text-transform: capitalize;
|
||||
}
|
||||
|
||||
.header .site-description {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
}
|
||||
|
||||
.header .site-description nav {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
border: none;
|
||||
min-width: 50px;
|
||||
margin-left: 15px;
|
||||
}
|
||||
|
||||
.header .site-description nav ul svg {
|
||||
max-height: 15px;
|
||||
}
|
||||
|
||||
.section .section-header {
|
||||
font-size: 0.75rem;
|
||||
font-weight: 600;
|
||||
text-transform: uppercase;
|
||||
color: #999;
|
||||
margin-bottom: 20px;
|
||||
letter-spacing: 1px;
|
||||
}
|
||||
|
||||
.recent-posts .posts .post {
|
||||
margin-bottom: 30px;
|
||||
}
|
||||
|
||||
.recent-posts .posts .post .meta,
|
||||
.post .post-header .meta,
|
||||
.list .posts .post .meta {
|
||||
font-size: 0.725rem;
|
||||
color: #999;
|
||||
margin-bottom: 4px;
|
||||
}
|
||||
|
||||
.post .post-header {
|
||||
margin-bottom: 30px;
|
||||
}
|
||||
|
||||
.post .post-header .title {
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
.post-tags a {
|
||||
margin-right: 5px;
|
||||
}
|
||||
|
||||
.post .post-header .meta {
|
||||
padding-left: 5px;
|
||||
margin-top: 10px;
|
||||
}
|
||||
|
||||
.post .draft-label {
|
||||
color: #a00;
|
||||
text-decoration: none;
|
||||
padding: 2px 4px;
|
||||
border-radius: 4px;
|
||||
margin-left: 6px;
|
||||
background-color: #f9f2f4;
|
||||
}
|
||||
|
||||
.post-tags .tags li {
|
||||
margin-bottom: 0;
|
||||
margin-top: 20px;
|
||||
}
|
||||
|
||||
.post-tags .tags a {
|
||||
display: inline-block;
|
||||
border: 1px solid #a00;
|
||||
border-radius: 4px;
|
||||
padding: 0px 6px;
|
||||
color: #a00;
|
||||
line-height: 20px;
|
||||
font-size: 12px;
|
||||
text-decoration: none;
|
||||
margin: 0 1px;
|
||||
}
|
||||
|
||||
.list .posts .post .meta {
|
||||
margin-bottom: 0;
|
||||
margin-left: 5px;
|
||||
}
|
||||
|
||||
.footer {
|
||||
text-align: right;
|
||||
font-size: 0.75em;
|
||||
color: #999;
|
||||
border-top: 1px solid #f4f4f4;
|
||||
padding: 20px 0;
|
||||
margin-top: 40px;
|
||||
}
|
||||
|
||||
.page-title {
|
||||
margin-bottom: 0;
|
||||
}
|
||||
|
||||
.tag-cloud {
|
||||
margin-top: 20px;
|
||||
}
|
||||
|
||||
.tag-cloud a {
|
||||
margin-right: 15px;
|
||||
}
|
||||
|
||||
.pagination {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
text-align: left;
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
}
|
||||
|
||||
.pagination li {
|
||||
list-style: none;
|
||||
display: inline-block;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
.pagination .page-prev {
|
||||
margin-right: 20px;
|
||||
padding-right: 20px;
|
||||
}
|
||||
|
||||
.pagination .page-item.page-prev {
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
.pagination .page-item.page-next {
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
table th {
|
||||
background-color: #f4f4f4;
|
||||
}
|
||||
|
||||
table th, table td {
|
||||
padding: 10px 20px;
|
||||
border: 1px solid #dddddd;
|
||||
}
|
||||
|
||||
@media (max-width: 767px) {
|
||||
body {
|
||||
padding: 20px;
|
||||
}
|
||||
|
||||
h1 {
|
||||
font-size: 1.8rem;
|
||||
}
|
||||
|
||||
h2 {
|
||||
font-size: 1.6rem;
|
||||
}
|
||||
|
||||
h3 {
|
||||
font-size: 1.2rem;
|
||||
}
|
||||
|
||||
h4 {
|
||||
font-size: 1rem;
|
||||
}
|
||||
|
||||
.container {
|
||||
margin-top: 10px;
|
||||
}
|
||||
}
|
|
@ -0,0 +1 @@
|
|||
/*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */img,legend{border:0}legend,td,th{padding:0}html{font-family:serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}body{margin:0}article,aside,details,figcaption,figure,footer,header,hgroup,main,menu,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block;vertical-align:baseline}audio:not([controls]){display:none;height:0}[hidden],template{display:none}a{background-color:transparent}a:active,a:hover{outline:0}abbr[title]{border-bottom:1px dotted}b,optgroup,strong{font-weight:700}dfn{font-style:italic}h1{font-size:2em;margin:.67em 0}mark{background:#ff0;color:#000}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-.5em}sub{bottom:-.25em}svg:not(:root){overflow:hidden}figure{margin:1em 40px}hr{box-sizing:content-box;height:0}pre,textarea{overflow:auto}code,kbd,pre,samp{font-family:monospace,monospace;font-size:1em}button,input,optgroup,select,textarea{color:inherit;font:inherit;margin:0}button{overflow:visible}button,select{text-transform:none}button,html input[type=button],input[type=reset],input[type=submit]{-webkit-appearance:button;cursor:pointer}button[disabled],html input[disabled]{cursor:default}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}input{line-height:normal}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{height:auto}input[type=search]{-webkit-appearance:textfield;box-sizing:content-box}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none}fieldset{border:1px solid silver;margin:0 2px;padding:.35em .625em .75em}table{border-collapse:collapse;border-spacing:0}
|
File diff suppressed because one or more lines are too long
|
@ -0,0 +1,15 @@
|
|||
# theme.toml template for a Hugo theme
|
||||
# See https://github.com/gohugoio/hugoThemes#themetoml for an example
|
||||
|
||||
name = "Ezhil"
|
||||
license = "MIT"
|
||||
licenselink = "https://github.com/vividvilla/ezhil/blob/master/LICENSE.md"
|
||||
description = "Clean and minimal personal blog and portfolio theme."
|
||||
homepage = "https://github.com/vividvilla/ezhil"
|
||||
tags = ["minimal", "clean", "blog", "responsive", "personal", "simple", "minimalist", "portfolio", "dark"]
|
||||
features = ["blog", "Clean and minimal", "Responsive", "Social media links", "Syntax highlighting"]
|
||||
min_version = "0.37.0"
|
||||
|
||||
[author]
|
||||
name = "Vivek R"
|
||||
homepage = "https://vivekr.net"
|
Loading…
Reference in New Issue