Skip to content

Commit ceeb272

Browse files
author
Francis
committed
Theme - Metal - 01
1 parent b3f65b2 commit ceeb272

57 files changed

Lines changed: 5284 additions & 0 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.
Lines changed: 126 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,126 @@
1+
@model ListModel
2+
@inject Core.Services.IDataService _db
3+
@{
4+
ViewData["bodyClass"] = "home";
5+
var pgr = Model.Pager;
6+
7+
var first3 = _db.BlogPosts.All().OrderByDescending(p => p.Published).Take(3).ToList();
8+
9+
}
10+
<!DOCTYPE html>
11+
<html lang="en">
12+
<head>
13+
<partial name="~/Views/Themes/metal/_Shared/_Head.cshtml" />
14+
</head>
15+
<body class="@ViewData["bodyClass"]">
16+
17+
<partial name="~/Views/Themes/metal/_Shared/_Header.cshtml" />
18+
19+
20+
21+
<div class="page-content">
22+
<div class="container">
23+
24+
25+
26+
@if (Model.PostListType == PostListType.Search)
27+
{
28+
<h2 class="page-search-title"><i class="fa fa-search"></i> @Model.Blog.Title</h2>
29+
<hr class="my-5" />
30+
}
31+
else if (Model.PostListType == PostListType.Author)
32+
{
33+
<h2 class="page-author-title">
34+
<img src="~/@Model.Author.Avatar" class="page-author-avatar" />
35+
<span class="page-author-name">@Model.Author.DisplayName</span>
36+
</h2>
37+
<hr class="my-5" />
38+
}
39+
else if (Model.PostListType == PostListType.Category)
40+
{
41+
<h2 class="page-category-title"><i class="fa fa-tag"></i> @ViewBag.Category</h2>
42+
<hr class="my-5" />
43+
}
44+
else
45+
{
46+
47+
48+
49+
}
50+
<div class="row">
51+
52+
53+
54+
55+
@if (Model.Posts != null)
56+
{
57+
foreach (var item in Model.Posts)
58+
{
59+
var img = string.IsNullOrEmpty(item.Cover) ? Model.Blog.Cover : item.Cover;
60+
<div class="col-md-6 mb-5">
61+
<article class="post post-home">
62+
<div class="post-cover">
63+
64+
<a href="~/posts/@item.Slug">
65+
<img src="~/@img" alt="@item.Title">
66+
</a>
67+
@if (item.Featured)
68+
{
69+
<span class="post-featrued-label"><i class="fa fa-star"></i> Featured</span>
70+
}
71+
</div>
72+
<div class="post-body">
73+
<ul class="post-categories">
74+
<li><a href="#">Technology</a></li>
75+
<li><a href="#">Microsoft</a></li>
76+
</ul>
77+
<h2 class="post-title"><a href="~/posts/@item.Slug">@item.Title</a></h2>
78+
<div class="post-meta">
79+
By <a class="post-meta-author" href="~/authors/@item.Author.AppUserName">@item.Author.DisplayName</a> On
80+
<time class="post-meta-time">@item.Published.ToFriendlyDateString()</time>
81+
</div>
82+
83+
84+
<a class="post-more" href="~/posts/@item.Slug">Continue Reading</a>
85+
86+
</div>
87+
</article>
88+
</div>
89+
}
90+
}
91+
92+
93+
</div>
94+
95+
96+
@if (pgr != null && (pgr.ShowOlder || pgr.ShowNewer))
97+
{
98+
<ul class="pagination justify-content-between">
99+
@if (pgr.ShowOlder)
100+
{
101+
<li class="item item-prev">
102+
<a class="item-link" href="~/@pgr.LinkToOlder">
103+
Previous Page
104+
</a>
105+
</li>
106+
}
107+
@if (pgr.ShowNewer)
108+
{
109+
<li class="item item-next">
110+
<a class="item-link" href="~/@pgr.LinkToNewer">
111+
Next Page
112+
</a>
113+
</li>
114+
}
115+
</ul>
116+
}
117+
118+
</div>
119+
</div>
120+
121+
122+
<partial name="~/Views/Themes/metal/_Shared/_Footer.cshtml" />
123+
124+
125+
</body>
126+
</html>
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
[
2+
{
3+
"Widget": "HtmlBlock",
4+
"Title": "Social Buttons"
5+
},
6+
{
7+
"Widget": "PostList",
8+
"Title": "Recent Posts"
9+
},
10+
{
11+
"Widget": "Newsletter",
12+
"Title": "Newsletter"
13+
},
14+
{
15+
"Widget": "Categories",
16+
"Title": "Categories"
17+
},
18+
{
19+
"Widget": "Categories",
20+
"Title": "Tags"
21+
}
22+
]
Lines changed: 133 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,133 @@
1+
@model PostModel
2+
<!DOCTYPE html>
3+
<html lang="en">
4+
<head>
5+
<partial name="~/Views/Themes/metal/_Shared/_Head.cshtml" />
6+
</head>
7+
<body class="@ViewData["bodyClass"]">
8+
<!--[if lt IE 10]>
9+
<p class="browserupgrade">You are using an <strong>outdated</strong> browser. Please <a href="http://browsehappy.com/">upgrade your browser</a> to improve your experience.</p>
10+
<![endif]-->
11+
<partial name="~/Views/Themes/metal/_Shared/_Header.cshtml" />
12+
13+
14+
15+
<div class="page-content">
16+
<div class="container">
17+
<div class="row">
18+
19+
<aside class="col-sm-4 pr-5">
20+
<div class="widget widget-social">
21+
<h4 class="widget-title"><span>Follow Us</span></h4>
22+
<div class="widget-body">
23+
@*@await Component.InvokeAsync("HtmlBlock", new { theme = "metal", widget = "Social Buttons" })*@
24+
<ul>
25+
<li><a class="widget-social-fb" target="_blank" href="https://facebook.com/blogifierdotnet"><i class="fa fa-facebook"></i> <span>Facebook</span></a></li>
26+
<li><a class="widget-social-tw" target="_blank" href="https://twitter.com/blogifierdotnet"><i class="fa fa-twitter"></i> <span>Twitter</span></a></li>
27+
<li><a class="widget-social-in" target="_blank" href="https://instagram.com/blogifierdotnet"><i class="fa fa-instagram"></i> <span>Instagram</span></a></li>
28+
<li><a class="widget-social-rss" target="_blank" href="/feed/rss"><i class="fa fa-rss"></i> <span>Subscribe</span></a></li>
29+
</ul>
30+
</div>
31+
</div>
32+
<div class="widget widget-posts">
33+
<h4 class="widget-title"><i class="widget-icon fa fa-file-text-o"></i> <span>Recent Posts</span></h4>
34+
<div class="widget-body">
35+
<ul class="widget-posts-list">
36+
@await Component.InvokeAsync("PostList", new { theme = "metal", widget = "Recent Posts" })
37+
</ul>
38+
</div>
39+
</div>
40+
<div class="widget widget-categories">
41+
<h4 class="widget-title"><i class="widget-icon fa fa-folder"></i> <span>Categories</span></h4>
42+
<div class="widget-body">
43+
<ul>
44+
@await Component.InvokeAsync("Categories", new { theme = "metal", widget = "Categories" })
45+
</ul>
46+
</div>
47+
</div>
48+
<div class="widget widget-tags">
49+
<h4 class="widget-title"><i class="widget-icon fa fa-tags"></i> <span>Tags</span></h4>
50+
<div class="widget-body">
51+
<ul class="clearfix">
52+
@await Component.InvokeAsync("Categories", new { theme = "metal", widget = "Tags" })
53+
</ul>
54+
</div>
55+
</div>
56+
<div class="widget widget-newsletter">
57+
<h4 class="widget-title"><i class="widget-icon fa fa-telegram"></i><span>Newsletter</span></h4>
58+
<div class="widget-body">
59+
<ul>
60+
@await Component.InvokeAsync("Newsletter", new { theme = "metal", widget = "Newsletter" })
61+
</ul>
62+
</div>
63+
</div>
64+
</aside>
65+
<div class="col-sm-8">
66+
67+
<article class="post">
68+
<div class="post-cover">
69+
70+
71+
<img src="@Model.Blog.Cover" alt="@Model.Post.Title">
72+
73+
</div>
74+
<div class="post-body">
75+
<ul class="post-categories">
76+
@if (!string.IsNullOrEmpty(Model.Post.Categories))
77+
{
78+
var cats = Model.Post.Categories.Split(',');
79+
80+
foreach (var cat in cats)
81+
{
82+
<li><a href="~/categories/@cat">@cat</a></li>
83+
}
84+
}
85+
</ul>
86+
<h2 class="post-title">@Model.Post.Title</h2>
87+
<div class="post-meta">
88+
By <a class="post-meta-author" href="~/authors/@Model.Post.Author.AppUserName">@Model.Post.Author.DisplayName</a> On
89+
<time class="post-meta-time">@string.Format("{0:MMM d, yyyy}", Model.Post.Published)</time>
90+
</div>
91+
92+
<div class="post-description">@Html.Raw(Model.Post.Content)</div>
93+
94+
95+
</div>
96+
</article>
97+
@if (Model.Older != null || Model.Newer != null)
98+
{
99+
<ul class="pagination justify-content-between">
100+
@if (Model.Older != null)
101+
{
102+
<li class="item item-prev">
103+
<a class="item-link" href="~/posts/@Model.Older.Slug" title="@Model.Older.Title">
104+
Previous Post
105+
</a>
106+
</li>
107+
}
108+
@if (Model.Newer != null)
109+
{
110+
<li class="item item-next">
111+
<a class="item-link" href="~/posts/@Model.Newer.Slug" title="@Model.Newer.Title">
112+
Next Post
113+
</a>
114+
</li>
115+
}
116+
</ul>
117+
}
118+
119+
120+
121+
122+
</div>
123+
124+
</div>
125+
</div>
126+
</div>
127+
128+
129+
130+
131+
<partial name="~/Views/Themes/metal/_Shared/_Footer.cshtml" />
132+
</body>
133+
</html>
Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
@{
2+
var returnUrl = Url.Action("Index", "Admin");
3+
}
4+
<footer class="blog-footer">
5+
<div class="container">
6+
<div class="blog-copyright">
7+
<a href="~/" class="blog-logo d-block"> <img src="~/themes/metal/img/logo.png" alt="@Model.Blog.Title" /></a>
8+
9+
<p class="">Copyright © @DateTime.Now.Year. Powered by <a href="https://github.com/blogifierdotnet/Blogifier" data-toggle="tooltip" target="_blank" title="Version - @AppSettings.Version">Blogifier</a>. Designed by <a href="https://francis.bio/" target="_blank" rel="nofollow">Francis</a>.</p>
10+
</div>
11+
@*@await Component.InvokeAsync("HtmlBlock", new { theme = "bridge", widget = "Social Buttons" })*@
12+
<ul class=" list-unstyled">
13+
@if (User.Identity.IsAuthenticated)
14+
{
15+
<li>
16+
<a href="~/admin"><i class="fa fa-user"></i></a>
17+
</li>
18+
}
19+
else
20+
{
21+
<li>
22+
<a href="~/account/login?ReturnUrl=@returnUrl"><i class="fa fa-login"></i></a>
23+
</li>
24+
}
25+
</ul>
26+
</div>
27+
</footer>
28+
29+
@*<a href="#" onclick="profileLogOut(); return false;">Logoff</a>
30+
<form method="post" id="frmLogOut" asp-controller="Account" asp-action="Logout" asp-antiforgery="true"></form>*@
31+
<script src="~/themes/metal/js/jquery.min.js"></script>
32+
<script src="~/themes/metal/js/popper.min.js"></script>
33+
<script src="~/themes/metal/js/bootstrap.min.js"></script>
34+
<script src="~/themes/metal/js/prism.js"></script>
35+
<script src="~/themes/metal/js/blog.js" asp-append-version="true"></script>
36+
37+
38+
39+
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
<meta charset="utf-8">
2+
<meta http-equiv="x-ua-compatible" content="ie=edge">
3+
<title>@Html.Raw(Model.Blog.Title)</title>
4+
<meta name="description" content="@Html.Raw(Model.Blog.Description)">
5+
<meta name="viewport" content="width=device-width, initial-scale=1">
6+
<link href="https://fonts.googleapis.com/css?family=Roboto:300,500,400,700|Merriweather:700" rel="stylesheet">
7+
<link href="~/themes/metal/css/bootstrap.min.css" rel="stylesheet">
8+
<link href="~/themes/metal/css/font-awesome.min.css" rel="stylesheet">
9+
<link href="~/themes/metal/css/prism.css" rel="stylesheet">
10+
<link href="~/themes/metal/css/styles.min.css" rel="stylesheet" asp-append-version="true">
11+
<link rel="shortcut icon" href="~/lib/img/favicon.ico">
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
<header class="blog-header">
2+
<div class="blog-nav">
3+
<div class="container d-flex">
4+
<nav class="navbar navbar-expand-lg navbar-dark mr-auto">
5+
<button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarSupportedContent" aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation">
6+
<span class="navbar-toggler-icon"></span>
7+
</button>
8+
<div class="collapse navbar-collapse" id="navbarSupportedContent">
9+
<ul class="navbar-nav mr-auto">
10+
<li class="nav-item active">
11+
<a class="nav-link" href="~/">Home <span class="sr-only">(current)</span></a>
12+
</li>
13+
<li class="nav-item">
14+
@if (User.Identity.IsAuthenticated)
15+
{
16+
<a class="nav-link" href="~/admin">Admin</a>
17+
}
18+
else
19+
{
20+
<a class="nav-link" href="~/account/login?ReturnUrl=/admin">Login</a>
21+
}
22+
</li>
23+
</ul>
24+
</div>
25+
</nav>
26+
<form class="blog-search-form my-auto" role="search" asp-controller="Blog" asp-action="Index" method="post">
27+
<input type="search" id="term" name="term" class="form-control" placeholder="Search..." autocomplete="off">
28+
<button type="submit"><i class="fa fa-search"></i></button>
29+
</form>
30+
</div>
31+
</div>
32+
<a href="~/" class="blog-logo d-block"> <img src="~/themes/metal/img/logo.png" alt="@Model.Blog.Title" /></a>
33+
</header>
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
module.exports = function (grunt) {
2+
grunt.initConfig({
3+
sass: {
4+
dist: {
5+
options: {
6+
style: 'compressed'
7+
},
8+
files: {
9+
'css/styles.min.css': 'scss/styles.scss',
10+
}
11+
}
12+
},
13+
watch: {
14+
src: {
15+
files: ['scss/**/*.scss'],
16+
tasks: ['sass']
17+
}
18+
}
19+
});
20+
grunt.loadNpmTasks('grunt-contrib-sass');
21+
grunt.loadNpmTasks('grunt-contrib-watch');
22+
grunt.registerTask('default', ['sass','watch']);
23+
};

0 commit comments

Comments
 (0)