feat: initial implementation
This commit is contained in:
commit
0acbe2865d
20
LICENSE.md
Normal file
20
LICENSE.md
Normal file
@ -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.
|
2
archetypes/default.md
Normal file
2
archetypes/default.md
Normal file
@ -0,0 +1,2 @@
|
||||
+++
|
||||
+++
|
0
layouts/404.html
Normal file
0
layouts/404.html
Normal file
27
layouts/_default/list.html
Normal file
27
layouts/_default/list.html
Normal file
@ -0,0 +1,27 @@
|
||||
<!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 }}
|
||||
|
||||
<ul class="posts">
|
||||
{{- range first .Site.Params.SidebarRecentLimit .Data.Pages -}}
|
||||
<li class="post">
|
||||
<a href="{{ .RelPermalink }}">{{.Title}}</a> <span class="meta">{{ dateFormat "Jan 2, 2006" .Date }}</span>
|
||||
</li>
|
||||
{{- end -}}
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
{{ partial "footer.html" . }}
|
||||
</body>
|
||||
|
||||
</html>
|
20
layouts/_default/single.html
Normal file
20
layouts/_default/single.html
Normal file
@ -0,0 +1,20 @@
|
||||
<!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 }}</div>
|
||||
</div>
|
||||
|
||||
<div class="markdown">
|
||||
{{ .Content }}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{{ partial "footer.html" . }}
|
||||
</body>
|
||||
</html>
|
15
layouts/_default/term.html
Normal file
15
layouts/_default/term.html
Normal file
@ -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>
|
30
layouts/_default/terms.html
Normal file
30
layouts/_default/terms.html
Normal file
@ -0,0 +1,30 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
{{ partial "header.html" . }}
|
||||
|
||||
<body>
|
||||
<div class="container wrapper tags">
|
||||
{{ partial "head.html" . }}
|
||||
|
||||
<h1 class="page-title">All tags</h1>
|
||||
|
||||
{{ $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>
|
35
layouts/index.html
Normal file
35
layouts/index.html
Normal file
@ -0,0 +1,35 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
{{ partial "header.html" . }}
|
||||
<body>
|
||||
<div class="container wrapper">
|
||||
{{ partial "head.html" . }}
|
||||
|
||||
<div class="recent-posts section">
|
||||
<h2 class="section-header">
|
||||
Recent posts
|
||||
</h2>
|
||||
<div class="posts">
|
||||
{{- range first .Site.Params.SidebarRecentLimit .Data.Pages -}}
|
||||
<div class="post">
|
||||
<div class="meta">{{ dateFormat "Jan 2, 2006" .Date }}</div>
|
||||
<a class="title" href="{{ .RelPermalink }}">{{.Title}}</a> —
|
||||
<span class="description">
|
||||
{{ if isset .Params "description" }}
|
||||
{{ .Description }}
|
||||
{{ else if gt (len .RawContent) 120 }}
|
||||
{{ slicestr .RawContent 0 120 }}...
|
||||
{{ else }}
|
||||
{{ .RawContent }}
|
||||
{{ end }}
|
||||
</span>
|
||||
</div>
|
||||
{{- end -}}
|
||||
|
||||
<a href="/posts">All articles →</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{{ partial "footer.html" . }}
|
||||
</body>
|
||||
</html>
|
5
layouts/partials/footer.html
Normal file
5
layouts/partials/footer.html
Normal file
@ -0,0 +1,5 @@
|
||||
<div class="footer wrapper">
|
||||
<nav class="nav">
|
||||
<div><a href="https://github.com/vividvilla/ezhil">Ezhil theme</a> | Built with <a href="gohugo.io">Hugo</a></div>
|
||||
</nav>
|
||||
</div>
|
14
layouts/partials/head.html
Normal file
14
layouts/partials/head.html
Normal file
@ -0,0 +1,14 @@
|
||||
<div class="header">
|
||||
<h1>{{ .Site.Title }}</h1>
|
||||
<h2>{{ .Site.Params.TitleTag | markdownify }}</h2>
|
||||
|
||||
<nav class="nav">
|
||||
<ul class="flat">
|
||||
{{ range $index, $key := .Site.Params.Nav }}
|
||||
<li>
|
||||
<a href="{{ $key.link }}">{{ $key.name }}</a>
|
||||
</li>
|
||||
{{ end }}
|
||||
</ul>
|
||||
</nav>
|
||||
</div>
|
20
layouts/partials/header.html
Normal file
20
layouts/partials/header.html
Normal file
@ -0,0 +1,20 @@
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
|
||||
{{- $title := ( .Title ) -}}
|
||||
{{- $siteTitle := ( .Site.Title ) -}}
|
||||
|
||||
{{- if .IsHome -}}
|
||||
<title>{{ $siteTitle }}</title>
|
||||
{{- else -}}
|
||||
<title>{{ $title }} - {{ $siteTitle }}</title>
|
||||
{{- end -}}
|
||||
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
|
||||
<link href="https://fonts.googleapis.com/css?family=Ubuntu:300,400,300italic,400italic|Raleway:500,100,300" rel="stylesheet">
|
||||
<link rel="stylesheet" type="text/css" media="screen" href="/css/normalize.css" />
|
||||
<link rel="stylesheet" type="text/css" media="screen" href="/css/main.css" />
|
||||
<script src="main.js"></script>
|
||||
</head>
|
283
static/css/main.css
Normal file
283
static/css/main.css
Normal file
@ -0,0 +1,283 @@
|
||||
body {
|
||||
font-family: "ubuntu", sans-serif;
|
||||
font-weight: 300;
|
||||
color: #333;
|
||||
line-height: 1.6;
|
||||
}
|
||||
|
||||
a, a:hover {
|
||||
color: #a00;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
html,button,input,select,textarea {
|
||||
color: #222
|
||||
}
|
||||
|
||||
::-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
|
||||
}
|
||||
|
||||
audio,canvas,img,video {
|
||||
width: 100%;
|
||||
vertical-align: middle
|
||||
}
|
||||
|
||||
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
|
||||
}
|
||||
|
||||
.browsehappy {
|
||||
margin: .2rem 0;
|
||||
background: #ccc;
|
||||
color: #000;
|
||||
padding: .2rem 0
|
||||
}
|
||||
|
||||
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: 100
|
||||
}
|
||||
|
||||
h1 {
|
||||
font-size: 2.75rem
|
||||
}
|
||||
|
||||
h2 {
|
||||
font-size: 2rem
|
||||
}
|
||||
|
||||
h3 {
|
||||
font-size: 1.6rem
|
||||
}
|
||||
|
||||
h4 {
|
||||
font-size: 1.2rem
|
||||
}
|
||||
|
||||
h5 {
|
||||
font-weight: 300;
|
||||
font-size: 1rem
|
||||
}
|
||||
|
||||
h6 {
|
||||
font-weight: 300;
|
||||
font-size: .9rem
|
||||
}
|
||||
|
||||
.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-label {
|
||||
}
|
||||
|
||||
.page-title {
|
||||
margin: 0
|
||||
}
|
||||
|
||||
.smaller {
|
||||
font-size: 70%
|
||||
}
|
||||
|
||||
ul {
|
||||
list-style: disc inside
|
||||
}
|
||||
|
||||
.codehilitetable td {
|
||||
border: 0;
|
||||
padding-top: 0;
|
||||
padding-bottom: 0;
|
||||
padding-right: 0
|
||||
}
|
||||
|
||||
.codehilitetable td pre {
|
||||
margin-bottom: 0;
|
||||
margin-top: 0
|
||||
}
|
||||
|
||||
.codehilitetable td.linenos {
|
||||
color: #999;
|
||||
font-size: .9em
|
||||
}
|
||||
|
||||
.codehilite {
|
||||
background: 0 0
|
||||
}
|
||||
|
||||
.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;
|
||||
}
|
||||
|
||||
.section {}
|
||||
|
||||
.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 .post-header .meta {
|
||||
padding-left: 5px;
|
||||
margin-top: 10px;
|
||||
}
|
||||
|
||||
.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;
|
||||
}
|
1
static/css/normalize.css
vendored
Normal file
1
static/css/normalize.css
vendored
Normal file
@ -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}
|
15
theme.toml
Normal file
15
theme.toml
Normal file
@ -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"]
|
||||
features = []
|
||||
min_version = "0.0.1"
|
||||
|
||||
[author]
|
||||
name = "Vivek R"
|
||||
homepage = "https://vivekr.net"
|
Loading…
Reference in New Issue
Block a user