jekyll-lenciel-theme 1.0.13 → 1.0.28
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +4 -1
- data/assets/javascripts/Valine.min.js +11 -6
- data/assets/javascripts/app.js +0 -1
- data/assets/javascripts/umami.js +1 -0
- data/assets/stylesheets/screen.css +1 -1
- data/index.html +5 -5
- data/plugins/blockquote.rb +82 -0
- data/plugins/category_feed.xml +26 -0
- data/plugins/category_generator.rb +177 -0
- data/plugins/category_index.html +17 -0
- data/plugins/img-tag-transform.rb +5 -0
- data/plugins/margin_note.rb +17 -0
- data/plugins/raw.rb +15 -0
- data/plugins/sidenote.rb +17 -0
- data/plugins/titlecase.rb +36 -0
- data/plugins/video_tag.rb +56 -0
- metadata +47 -44
- data/_includes/after_footer.html +0 -3
- data/_includes/archive_post.html +0 -8
- data/_includes/article.html +0 -38
- data/_includes/asides/recent_posts.html +0 -10
- data/_includes/custom/after_footer.html +0 -21
- data/_includes/custom/asides/about.html +0 -4
- data/_includes/custom/baidu_analytics.html +0 -0
- data/_includes/custom/footer.html +0 -11
- data/_includes/custom/head.html +0 -23
- data/_includes/custom/header.html +0 -6
- data/_includes/custom/navigation.html +0 -5
- data/_includes/custom/post/sharing.html +0 -35
- data/_includes/disqus.html +0 -21
- data/_includes/facebook_like.html +0 -10
- data/_includes/footer.html +0 -1
- data/_includes/google_analytics.html +0 -12
- data/_includes/google_plus_one.html +0 -9
- data/_includes/head.html +0 -30
- data/_includes/header.html +0 -1
- data/_includes/navigation.html +0 -15
- data/_includes/post/author.html +0 -8
- data/_includes/post/categories.html +0 -10
- data/_includes/post/date.html +0 -5
- data/_includes/post/disqus_thread.html +0 -1
- data/_includes/post/sharing.html +0 -23
- data/_layouts/default.html +0 -14
- data/_layouts/home.html +0 -22
- data/_layouts/page.html +0 -39
- data/_layouts/post.html +0 -34
- data/assets/javascripts/libs/lazyload.min.js +0 -1
@@ -0,0 +1,82 @@
|
|
1
|
+
#
|
2
|
+
# Author: Brandon Mathis
|
3
|
+
# A full rewrite based on the work of: Josediaz Gonzalez - https://github.com/josegonzalez/josediazgonzalez.com/blob/master/_plugins/blockquote.rb
|
4
|
+
#
|
5
|
+
# Outputs a string with a given attribution as a quote
|
6
|
+
#
|
7
|
+
# {% blockquote Bobby Willis http://google.com/search?q=pants the search for bobby's pants %}
|
8
|
+
# Wheeee!
|
9
|
+
# {% endblockquote %}
|
10
|
+
# ...
|
11
|
+
# <blockquote>
|
12
|
+
# <p>Wheeee!</p>
|
13
|
+
# <footer>
|
14
|
+
# <strong>Bobby Willis</strong><cite><a href="http://google.com/search?q=pants">The Search For Bobby's Pants</a>
|
15
|
+
# </blockquote>
|
16
|
+
#
|
17
|
+
require './plugins/titlecase.rb'
|
18
|
+
|
19
|
+
module Jekyll
|
20
|
+
|
21
|
+
class Blockquote < Liquid::Block
|
22
|
+
FullCiteWithTitle = /(\S.*)\s+(https?:\/\/)(\S+)\s+(.+)/i
|
23
|
+
FullCite = /(\S.*)\s+(https?:\/\/)(\S+)/i
|
24
|
+
AuthorTitle = /([^,]+),([^,]+)/
|
25
|
+
Author = /(.+)/
|
26
|
+
|
27
|
+
def initialize(tag_name, markup, tokens)
|
28
|
+
@by = nil
|
29
|
+
@source = nil
|
30
|
+
@title = nil
|
31
|
+
if markup =~ FullCiteWithTitle
|
32
|
+
@by = $1
|
33
|
+
@source = $2 + $3
|
34
|
+
@title = $4.titlecase.strip
|
35
|
+
elsif markup =~ FullCite
|
36
|
+
@by = $1
|
37
|
+
@source = $2 + $3
|
38
|
+
elsif markup =~ AuthorTitle
|
39
|
+
@by = $1
|
40
|
+
@title = $2.titlecase.strip
|
41
|
+
elsif markup =~ Author
|
42
|
+
@by = $1
|
43
|
+
end
|
44
|
+
super
|
45
|
+
end
|
46
|
+
|
47
|
+
def render(context)
|
48
|
+
quote = paragraphize(super)
|
49
|
+
author = "<strong>#{@by.strip}</strong>" if @by
|
50
|
+
if @source
|
51
|
+
url = @source.match(/https?:\/\/(.+)/)[1].split('/')
|
52
|
+
parts = []
|
53
|
+
url.each do |part|
|
54
|
+
if (parts + [part]).join('/').length < 32
|
55
|
+
parts << part
|
56
|
+
end
|
57
|
+
end
|
58
|
+
source = parts.join('/')
|
59
|
+
source << '/…' unless source == @source
|
60
|
+
end
|
61
|
+
if !@source.nil?
|
62
|
+
cite = " <cite><a href='#{@source}'>#{(@title || source)}</a></cite>"
|
63
|
+
elsif !@title.nil?
|
64
|
+
cite = " <cite>#{@title}</cite>"
|
65
|
+
end
|
66
|
+
blockquote = if @by.nil?
|
67
|
+
quote
|
68
|
+
elsif cite
|
69
|
+
"#{quote}<footer>#{author + cite}</footer>"
|
70
|
+
else
|
71
|
+
"#{quote}<footer>#{author}</footer>"
|
72
|
+
end
|
73
|
+
"<blockquote>#{blockquote}</blockquote>"
|
74
|
+
end
|
75
|
+
|
76
|
+
def paragraphize(input)
|
77
|
+
"<p>#{input.lstrip.rstrip.gsub(/\n\n/, '</p><p>').gsub(/\n/, '<br/>')}</p>"
|
78
|
+
end
|
79
|
+
end
|
80
|
+
end
|
81
|
+
|
82
|
+
Liquid::Template.register_tag('blockquote', Jekyll::Blockquote)
|
@@ -0,0 +1,26 @@
|
|
1
|
+
---
|
2
|
+
layout: null
|
3
|
+
---
|
4
|
+
<?xml version="1.0" encoding="utf-8"?>
|
5
|
+
<feed xmlns="http://www.w3.org/2005/Atom">
|
6
|
+
|
7
|
+
<title><![CDATA[{% if site.titlecase %}{{ page.title | titlecase | cdata_escape }}{% else %}{{ page.title | cdata_escape }}{% endif %} | {{ site.title | cdata_escape }}]]></title>
|
8
|
+
<link href="{{ site.url }}/{{ page.feed_url }}" rel="self"/>
|
9
|
+
<link href="{{ site.url }}/"/>
|
10
|
+
<updated>{{ site.time | date_to_xmlschema }}</updated>
|
11
|
+
<id>{{ site.url }}/</id>
|
12
|
+
<author>
|
13
|
+
<name><![CDATA[{{ site.author | strip_html }}]]></name>
|
14
|
+
{% if site.email %}<email><![CDATA[{{ site.email }}]]></email>{% endif %}
|
15
|
+
</author>
|
16
|
+
|
17
|
+
{% for post in site.categories[page.category] limit: 5 %}
|
18
|
+
<entry>
|
19
|
+
<title type="html"><![CDATA[{% if site.titlecase %}{{ post.title | titlecase | cdata_escape }}{% else %}{{ post.title | cdata_escape }}{% endif %}]]></title>
|
20
|
+
<link href="{{ site.url }}{{ post.url }}"/>
|
21
|
+
<updated>{{ post.date | date_to_xmlschema }}</updated>
|
22
|
+
<id>{{ site.url }}{{ post.id }}</id>
|
23
|
+
<content type="html"><![CDATA[{{ post.content | expand_urls: site.url | markdownify | cdata_escape }}]]></content>
|
24
|
+
</entry>
|
25
|
+
{% endfor %}
|
26
|
+
</feed>
|
@@ -0,0 +1,177 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
#
|
3
|
+
# Jekyll category page generator.
|
4
|
+
# http://recursive-design.com/projects/jekyll-plugins/
|
5
|
+
#
|
6
|
+
# Version: 0.1.4 (201101061053)
|
7
|
+
#
|
8
|
+
# Copyright (c) 2010 Dave Perrett, http://recursive-design.com/
|
9
|
+
# Licensed under the MIT license (http://www.opensource.org/licenses/mit-license.php)
|
10
|
+
#
|
11
|
+
# A generator that creates category pages for jekyll sites.
|
12
|
+
#
|
13
|
+
# Included filters :
|
14
|
+
# - category_links: Outputs the list of categories as comma-separated <a> links.
|
15
|
+
# - date_to_html_string: Outputs the post.date as formatted html, with hooks for CSS styling.
|
16
|
+
#
|
17
|
+
# Available _config.yml settings :
|
18
|
+
# - category_dir: The subfolder to build category pages in (default is 'categories').
|
19
|
+
# - category_title_prefix: The string used before the category name in the page title (default is
|
20
|
+
# 'Category: ').
|
21
|
+
|
22
|
+
require 'stringex'
|
23
|
+
I18n.config.available_locales = :en
|
24
|
+
module Jekyll
|
25
|
+
|
26
|
+
# The CategoryIndex class creates a single category page for the specified category.
|
27
|
+
class CategoryIndex < Page
|
28
|
+
|
29
|
+
# Initializes a new CategoryIndex.
|
30
|
+
#
|
31
|
+
# +base+ is the String path to the <source>.
|
32
|
+
# +category_dir+ is the String path between <source> and the category folder.
|
33
|
+
# +category+ is the category currently being processed.
|
34
|
+
def initialize(site, base, category_dir, category)
|
35
|
+
@site = site
|
36
|
+
@base = base
|
37
|
+
@dir = category_dir
|
38
|
+
@name = 'index.html'
|
39
|
+
self.process(@name)
|
40
|
+
# Read the YAML data from the layout page.
|
41
|
+
self.read_yaml(File.join(base, 'plugins'), 'category_index.html')
|
42
|
+
self.data['category'] = category
|
43
|
+
# Set the title for this page.
|
44
|
+
title_prefix = site.config['category_title_prefix'] || 'Category: '
|
45
|
+
self.data['title'] = "#{title_prefix}#{category}"
|
46
|
+
# Set the meta-description for this page.
|
47
|
+
meta_description_prefix = site.config['category_meta_description_prefix'] || 'Category: '
|
48
|
+
self.data['description'] = "#{meta_description_prefix}#{category}"
|
49
|
+
end
|
50
|
+
|
51
|
+
end
|
52
|
+
|
53
|
+
# The CategoryFeed class creates an Atom feed for the specified category.
|
54
|
+
class CategoryFeed < Page
|
55
|
+
|
56
|
+
# Initializes a new CategoryFeed.
|
57
|
+
#
|
58
|
+
# +base+ is the String path to the <source>.
|
59
|
+
# +category_dir+ is the String path between <source> and the category folder.
|
60
|
+
# +category+ is the category currently being processed.
|
61
|
+
def initialize(site, base, category_dir, category)
|
62
|
+
@site = site
|
63
|
+
@base = base
|
64
|
+
@dir = category_dir
|
65
|
+
@name = 'atom.xml'
|
66
|
+
self.process(@name)
|
67
|
+
# Read the YAML data from the layout page.
|
68
|
+
self.read_yaml(File.join(base, 'plugins'), 'category_feed.xml')
|
69
|
+
self.data['category'] = category
|
70
|
+
# Set the title for this page.
|
71
|
+
title_prefix = site.config['category_title_prefix'] || 'Category: '
|
72
|
+
self.data['title'] = "#{title_prefix}#{category}"
|
73
|
+
# Set the meta-description for this page.
|
74
|
+
meta_description_prefix = site.config['category_meta_description_prefix'] || 'Category: '
|
75
|
+
self.data['description'] = "#{meta_description_prefix}#{category}"
|
76
|
+
|
77
|
+
# Set the correct feed URL.
|
78
|
+
self.data['feed_url'] = "#{category_dir}/#{name}"
|
79
|
+
end
|
80
|
+
|
81
|
+
end
|
82
|
+
|
83
|
+
# The Site class is a built-in Jekyll class with access to global site config information.
|
84
|
+
class Site
|
85
|
+
|
86
|
+
# Creates an instance of CategoryIndex for each category page, renders it, and
|
87
|
+
# writes the output to a file.
|
88
|
+
#
|
89
|
+
# +category_dir+ is the String path to the category folder.
|
90
|
+
# +category+ is the category currently being processed.
|
91
|
+
def write_category_index(category_dir, category)
|
92
|
+
index = CategoryIndex.new(self, self.source, category_dir, category)
|
93
|
+
index.render(self.layouts, site_payload)
|
94
|
+
index.write(self.dest)
|
95
|
+
# Record the fact that this page has been added, otherwise Site::cleanup will remove it.
|
96
|
+
self.pages << index
|
97
|
+
|
98
|
+
# Create an Atom-feed for each index.
|
99
|
+
feed = CategoryFeed.new(self, self.source, category_dir, category)
|
100
|
+
feed.render(self.layouts, site_payload)
|
101
|
+
feed.write(self.dest)
|
102
|
+
# Record the fact that this page has been added, otherwise Site::cleanup will remove it.
|
103
|
+
self.pages << feed
|
104
|
+
end
|
105
|
+
|
106
|
+
# Loops through the list of category pages and processes each one.
|
107
|
+
def write_category_indexes
|
108
|
+
dir = self.config['category_dir'] || 'categories'
|
109
|
+
self.categories.keys.each do |category|
|
110
|
+
self.write_category_index(File.join(dir, category.to_url), category)
|
111
|
+
end
|
112
|
+
end
|
113
|
+
end
|
114
|
+
|
115
|
+
# Jekyll hook - the generate method is called by jekyll, and generates all of the category pages.
|
116
|
+
class GenerateCategories < Generator
|
117
|
+
safe true
|
118
|
+
priority :low
|
119
|
+
|
120
|
+
def generate(site)
|
121
|
+
site.write_category_indexes
|
122
|
+
end
|
123
|
+
|
124
|
+
end
|
125
|
+
|
126
|
+
|
127
|
+
# Adds some extra filters used during the category creation process.
|
128
|
+
module CategoryFilter
|
129
|
+
|
130
|
+
# Outputs a list of categories as comma-separated <a> links. This is used
|
131
|
+
# to output the category list for each post on a category page.
|
132
|
+
#
|
133
|
+
# +categories+ is the list of categories to format.
|
134
|
+
#
|
135
|
+
# Returns string
|
136
|
+
#
|
137
|
+
def category_links(categories)
|
138
|
+
categories = categories.sort!.map { |c| category_link c }
|
139
|
+
|
140
|
+
case categories.length
|
141
|
+
when 0
|
142
|
+
""
|
143
|
+
when 1
|
144
|
+
categories[0].to_s
|
145
|
+
else
|
146
|
+
"#{categories[0...-1].join(', ')}, #{categories[-1]}"
|
147
|
+
end
|
148
|
+
end
|
149
|
+
|
150
|
+
# Outputs a single category as an <a> link.
|
151
|
+
#
|
152
|
+
# +category+ is a category string to format as an <a> link
|
153
|
+
#
|
154
|
+
# Returns string
|
155
|
+
#
|
156
|
+
def category_link(category)
|
157
|
+
dir = @context.registers[:site].config['category_dir']
|
158
|
+
"<a class='category' href='/#{dir}/#{category.to_url}/'>#{category}</a>"
|
159
|
+
end
|
160
|
+
|
161
|
+
# Outputs the post.date as formatted html, with hooks for CSS styling.
|
162
|
+
#
|
163
|
+
# +date+ is the date object to format as HTML.
|
164
|
+
#
|
165
|
+
# Returns string
|
166
|
+
def date_to_html_string(date)
|
167
|
+
result = '<span class="month">' + date.strftime('%b').upcase + '</span> '
|
168
|
+
result += date.strftime('<span class="day">%d</span> ')
|
169
|
+
result += date.strftime('<span class="year">%Y</span> ')
|
170
|
+
result
|
171
|
+
end
|
172
|
+
|
173
|
+
end
|
174
|
+
|
175
|
+
end
|
176
|
+
|
177
|
+
Liquid::Template.register_filter(Jekyll::CategoryFilter)
|
@@ -0,0 +1,17 @@
|
|
1
|
+
---
|
2
|
+
layout: page
|
3
|
+
footer: false
|
4
|
+
---
|
5
|
+
|
6
|
+
<div id="blog-archives" class="category">
|
7
|
+
{% for post in site.categories[page.category] %}
|
8
|
+
{% capture this_year %}{{ post.date | date: "%Y" }}{% endcapture %}
|
9
|
+
{% unless year == this_year %}
|
10
|
+
{% assign year = this_year %}
|
11
|
+
<h2>{{ year }}</h2>
|
12
|
+
{% endunless %}
|
13
|
+
<article>
|
14
|
+
{% include archive_post.html %}
|
15
|
+
</article>
|
16
|
+
{% endfor %}
|
17
|
+
</div>
|
@@ -0,0 +1,17 @@
|
|
1
|
+
module Jekyll
|
2
|
+
class RenderMarginNoteTag < Liquid::Tag
|
3
|
+
|
4
|
+
require "shellwords"
|
5
|
+
|
6
|
+
def initialize(tag_name, text, tokens)
|
7
|
+
super
|
8
|
+
@text = text.shellsplit
|
9
|
+
end
|
10
|
+
|
11
|
+
def render(context)
|
12
|
+
"<label for='#{@text[0]}' class='margin-toggle'> ⊕</label><input type='checkbox' id='#{@text[0]}' class='margin-toggle'/><span class='marginnote'>#{@text[1]} </span>"
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|
17
|
+
Liquid::Template.register_tag('marginnote', Jekyll::RenderMarginNoteTag)
|
data/plugins/raw.rb
ADDED
@@ -0,0 +1,15 @@
|
|
1
|
+
# Author: Brandon Mathis
|
2
|
+
# Description: Provides plugins with a method for wrapping and unwrapping input to prevent Markdown and Textile from parsing it.
|
3
|
+
# Purpose: This is useful for preventing Markdown and Textile from being too aggressive and incorrectly parsing in-line HTML.
|
4
|
+
module TemplateWrapper
|
5
|
+
# Wrap input with a <div>
|
6
|
+
def self.safe_wrap(input)
|
7
|
+
"<div class='bogus-wrapper'><notextile>#{input}</notextile></div>"
|
8
|
+
end
|
9
|
+
# This must be applied after the
|
10
|
+
def self.unwrap(input)
|
11
|
+
input.gsub /<div class='bogus-wrapper'><notextile>(.+?)<\/notextile><\/div>/m do
|
12
|
+
$1
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
data/plugins/sidenote.rb
ADDED
@@ -0,0 +1,17 @@
|
|
1
|
+
module Jekyll
|
2
|
+
class RenderSideNoteTag < Liquid::Tag
|
3
|
+
|
4
|
+
require "shellwords"
|
5
|
+
|
6
|
+
def initialize(tag_name, text, tokens)
|
7
|
+
super
|
8
|
+
@text = text.shellsplit
|
9
|
+
end
|
10
|
+
|
11
|
+
def render(context)
|
12
|
+
"<label for='#{@text[0]}' class='margin-toggle sidenote-number'></label><input type='checkbox' id='#{@text[0]}' class='margin-toggle'/><span class='sidenote'>#{@text[1]} </span>"
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|
17
|
+
Liquid::Template.register_tag('sidenote', Jekyll::RenderSideNoteTag)
|
@@ -0,0 +1,36 @@
|
|
1
|
+
class String
|
2
|
+
def titlecase
|
3
|
+
small_words = %w(a an and as at but by en for if in of on or the to v v. via vs vs.)
|
4
|
+
|
5
|
+
x = split(" ").map do |word|
|
6
|
+
# note: word could contain non-word characters!
|
7
|
+
# downcase all small_words, capitalize the rest
|
8
|
+
small_words.include?(word.gsub(/\W/, "").downcase) ? word.downcase! : word.smart_capitalize!
|
9
|
+
word
|
10
|
+
end
|
11
|
+
# capitalize first and last words
|
12
|
+
x.first.to_s.smart_capitalize!
|
13
|
+
x.last.to_s.smart_capitalize!
|
14
|
+
# small words are capitalized after colon, period, exclamation mark, question mark
|
15
|
+
x.join(" ").gsub(/(:|\.|!|\?)\s?(\W*#{small_words.join("|")}\W*)\s/) { "#{$1} #{$2.smart_capitalize} " }
|
16
|
+
end
|
17
|
+
|
18
|
+
def titlecase!
|
19
|
+
replace(titlecase)
|
20
|
+
end
|
21
|
+
|
22
|
+
def smart_capitalize
|
23
|
+
# ignore any leading crazy characters and capitalize the first real character
|
24
|
+
if self =~ /^['"\(\[']*([a-z])/
|
25
|
+
i = index($1)
|
26
|
+
x = self[i,self.length]
|
27
|
+
# word with capitals and periods mid-word are left alone
|
28
|
+
self[i,1] = self[i,1].upcase unless x =~ /[A-Z]/ or x =~ /\.\w+/
|
29
|
+
end
|
30
|
+
self
|
31
|
+
end
|
32
|
+
|
33
|
+
def smart_capitalize!
|
34
|
+
replace(smart_capitalize)
|
35
|
+
end
|
36
|
+
end
|
@@ -0,0 +1,56 @@
|
|
1
|
+
# Title: Simple Video tag for Jekyll
|
2
|
+
# Author: Brandon Mathis http://brandonmathis.com
|
3
|
+
# Description: Easily output MPEG4 HTML5 video with a flash backup.
|
4
|
+
#
|
5
|
+
# Syntax {% video url/to/video [width height] [url/to/poster] %}
|
6
|
+
#
|
7
|
+
# Example:
|
8
|
+
# {% video http://site.com/video.mp4 720 480 http://site.com/poster-frame.jpg %}
|
9
|
+
#
|
10
|
+
# Output:
|
11
|
+
# <video width='720' height='480' preload='none' controls poster='http://site.com/poster-frame.jpg'>
|
12
|
+
# <source src='http://site.com/video.mp4' type='video/mp4; codecs=\"avc1.42E01E, mp4a.40.2\"'/>
|
13
|
+
# </video>
|
14
|
+
#
|
15
|
+
|
16
|
+
module Jekyll
|
17
|
+
|
18
|
+
class VideoTag < Liquid::Tag
|
19
|
+
@video = nil
|
20
|
+
@poster = ''
|
21
|
+
@height = ''
|
22
|
+
@width = ''
|
23
|
+
|
24
|
+
def initialize(tag_name, markup, tokens)
|
25
|
+
if markup =~ /(\S+\.\S+)(\s+(\S+\.\S+))?(\s+(\S+\.\S+))?(\s+(\d+)\s(\d+))?(\s+(\S+\.\S+))?/i
|
26
|
+
@video = [$1, $3, $5].compact
|
27
|
+
@width = $7
|
28
|
+
@height = $8
|
29
|
+
@poster = $10
|
30
|
+
end
|
31
|
+
super
|
32
|
+
end
|
33
|
+
|
34
|
+
def render(context)
|
35
|
+
output = super
|
36
|
+
type = {
|
37
|
+
'mp4' => "type='video/mp4; codecs=\"avc1.42E01E, mp4a.40.2\"'",
|
38
|
+
'ogv' => "type='video/ogg; codecs=theora, vorbis'",
|
39
|
+
'webm' => "type='video/webm; codecs=vp8, vorbis'"
|
40
|
+
}
|
41
|
+
if @video && @video.size > 0
|
42
|
+
video = "<video width='#{@width}' height='#{@height}' preload='none' controls poster='#{@poster}'>"
|
43
|
+
@video.each do |v|
|
44
|
+
t = v.match(/([^\.]+)$/)[1]
|
45
|
+
video += "<source src='#{v}' #{type[t]}>"
|
46
|
+
end
|
47
|
+
video += "</video>"
|
48
|
+
else
|
49
|
+
"Error processing input, expected syntax: {% video url/to/video [url/to/video] [url/to/video] [width height] [url/to/poster] %}"
|
50
|
+
end
|
51
|
+
end
|
52
|
+
end
|
53
|
+
end
|
54
|
+
|
55
|
+
Liquid::Template.register_tag('video', Jekyll::VideoTag)
|
56
|
+
|
metadata
CHANGED
@@ -1,37 +1,59 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: jekyll-lenciel-theme
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.
|
4
|
+
version: 1.0.28
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- lenciel
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2024-11-30 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: jekyll
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- - "
|
17
|
+
- - "~>"
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: 4.2.0
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - "~>"
|
18
25
|
- !ruby/object:Gem::Version
|
19
|
-
version:
|
20
|
-
|
26
|
+
version: 4.2.0
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: jekyll-paginate
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - ">="
|
21
32
|
- !ruby/object:Gem::Version
|
22
|
-
version: '
|
33
|
+
version: '0'
|
23
34
|
type: :runtime
|
24
35
|
prerelease: false
|
25
36
|
version_requirements: !ruby/object:Gem::Requirement
|
26
37
|
requirements:
|
27
38
|
- - ">="
|
28
39
|
- !ruby/object:Gem::Version
|
29
|
-
version: '
|
30
|
-
|
40
|
+
version: '0'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: jekyll-gist
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - ">="
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '0'
|
48
|
+
type: :runtime
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - ">="
|
31
53
|
- !ruby/object:Gem::Version
|
32
|
-
version: '
|
54
|
+
version: '0'
|
33
55
|
- !ruby/object:Gem::Dependency
|
34
|
-
name:
|
56
|
+
name: jekyll_picture_tag
|
35
57
|
requirement: !ruby/object:Gem::Requirement
|
36
58
|
requirements:
|
37
59
|
- - ">="
|
@@ -45,7 +67,7 @@ dependencies:
|
|
45
67
|
- !ruby/object:Gem::Version
|
46
68
|
version: '0'
|
47
69
|
- !ruby/object:Gem::Dependency
|
48
|
-
name: jekyll-
|
70
|
+
name: jekyll-sitemap
|
49
71
|
requirement: !ruby/object:Gem::Requirement
|
50
72
|
requirements:
|
51
73
|
- - ">="
|
@@ -87,7 +109,7 @@ dependencies:
|
|
87
109
|
- !ruby/object:Gem::Version
|
88
110
|
version: '0'
|
89
111
|
- !ruby/object:Gem::Dependency
|
90
|
-
name:
|
112
|
+
name: jekyll-archives
|
91
113
|
requirement: !ruby/object:Gem::Requirement
|
92
114
|
requirements:
|
93
115
|
- - ">="
|
@@ -171,7 +193,7 @@ dependencies:
|
|
171
193
|
- !ruby/object:Gem::Version
|
172
194
|
version: '0'
|
173
195
|
- !ruby/object:Gem::Dependency
|
174
|
-
name:
|
196
|
+
name: htmlcompressor
|
175
197
|
requirement: !ruby/object:Gem::Requirement
|
176
198
|
requirements:
|
177
199
|
- - ">="
|
@@ -221,35 +243,6 @@ extra_rdoc_files: []
|
|
221
243
|
files:
|
222
244
|
- LICENSE.txt
|
223
245
|
- README.md
|
224
|
-
- _includes/after_footer.html
|
225
|
-
- _includes/archive_post.html
|
226
|
-
- _includes/article.html
|
227
|
-
- _includes/asides/recent_posts.html
|
228
|
-
- _includes/custom/after_footer.html
|
229
|
-
- _includes/custom/asides/about.html
|
230
|
-
- _includes/custom/baidu_analytics.html
|
231
|
-
- _includes/custom/footer.html
|
232
|
-
- _includes/custom/head.html
|
233
|
-
- _includes/custom/header.html
|
234
|
-
- _includes/custom/navigation.html
|
235
|
-
- _includes/custom/post/sharing.html
|
236
|
-
- _includes/disqus.html
|
237
|
-
- _includes/facebook_like.html
|
238
|
-
- _includes/footer.html
|
239
|
-
- _includes/google_analytics.html
|
240
|
-
- _includes/google_plus_one.html
|
241
|
-
- _includes/head.html
|
242
|
-
- _includes/header.html
|
243
|
-
- _includes/navigation.html
|
244
|
-
- _includes/post/author.html
|
245
|
-
- _includes/post/categories.html
|
246
|
-
- _includes/post/date.html
|
247
|
-
- _includes/post/disqus_thread.html
|
248
|
-
- _includes/post/sharing.html
|
249
|
-
- _layouts/default.html
|
250
|
-
- _layouts/home.html
|
251
|
-
- _layouts/page.html
|
252
|
-
- _layouts/post.html
|
253
246
|
- assets/fonts/IcoMoon.eot
|
254
247
|
- assets/fonts/IcoMoon.svg
|
255
248
|
- assets/fonts/IcoMoon.ttf
|
@@ -310,11 +303,21 @@ files:
|
|
310
303
|
- assets/javascripts/libs/jwplayer/glow/sharing/shareIcon.png
|
311
304
|
- assets/javascripts/libs/jwplayer/glow/sharing/shareScreen.png
|
312
305
|
- assets/javascripts/libs/jwplayer/player.swf
|
313
|
-
- assets/javascripts/libs/lazyload.min.js
|
314
306
|
- assets/javascripts/libs/modernizr.custom.55630.js
|
307
|
+
- assets/javascripts/umami.js
|
315
308
|
- assets/stylesheets/screen.css
|
316
309
|
- assets/stylesheets/screen.min.css
|
317
310
|
- index.html
|
311
|
+
- plugins/blockquote.rb
|
312
|
+
- plugins/category_feed.xml
|
313
|
+
- plugins/category_generator.rb
|
314
|
+
- plugins/category_index.html
|
315
|
+
- plugins/img-tag-transform.rb
|
316
|
+
- plugins/margin_note.rb
|
317
|
+
- plugins/raw.rb
|
318
|
+
- plugins/sidenote.rb
|
319
|
+
- plugins/titlecase.rb
|
320
|
+
- plugins/video_tag.rb
|
318
321
|
homepage: https://github.com/lenciel/jekyll-lenciel-theme
|
319
322
|
licenses:
|
320
323
|
- MIT
|
@@ -334,7 +337,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
334
337
|
- !ruby/object:Gem::Version
|
335
338
|
version: '0'
|
336
339
|
requirements: []
|
337
|
-
rubygems_version: 3.1.
|
340
|
+
rubygems_version: 3.1.6
|
338
341
|
signing_key:
|
339
342
|
specification_version: 4
|
340
343
|
summary: Jekyll theme made by lenciel with <3
|
data/_includes/after_footer.html
DELETED
data/_includes/archive_post.html
DELETED
@@ -1,8 +0,0 @@
|
|
1
|
-
{% capture category %}{{ post.categories | size }}{% endcapture %}
|
2
|
-
<h1><a href="{{ root_url }}{{ post.url }}">{% if site.titlecase %}{{ post.title | titlecase }}{% else %}{{ post.title }}{% endif %}</a></h1>
|
3
|
-
<time datetime="{{ post.date | datetime | date_to_xmlschema }}" pubdate>{{ post.date | date: "<span class='month'>%b</span> <span class='day'>%d</span> <span class='year'>%Y</span>"}}</time>
|
4
|
-
{% if category != '0' %}
|
5
|
-
<footer>
|
6
|
-
<span class="categories">posted in {{ post.categories | category_links }}</span>
|
7
|
-
</footer>
|
8
|
-
{% endif %}
|
data/_includes/article.html
DELETED
@@ -1,38 +0,0 @@
|
|
1
|
-
{% unless page.no_header %}
|
2
|
-
<header>
|
3
|
-
{% if index %}
|
4
|
-
<h1 class="entry-title"><a href="{{ root_url }}{{ post.url }}">{% if site.titlecase %}{{ post.title | titlecase }}{% else %}{{ post.title }}{% endif %}</a></h1>
|
5
|
-
{% else %}
|
6
|
-
<h1 class="entry-title">{% if site.titlecase %}{{ page.title | titlecase }}{% else %}{{ page.title }}{% endif %}</h1>
|
7
|
-
{% endif %}
|
8
|
-
{% unless page.meta == false %}
|
9
|
-
<p class="meta">
|
10
|
-
<time class='entry-date' datetime='{{ post.date | date_xmlschema }}'>
|
11
|
-
{% if index %}
|
12
|
-
<span class='date'>{{ post.date | date: "%Y-%m-%d" }}</span>
|
13
|
-
<span class='time'>{{ post.date | date: '%H:%M:%S' }}</span>
|
14
|
-
{% else %}
|
15
|
-
<span class='date'>{{ page.date | date: "%Y-%m-%d" }}</span>
|
16
|
-
<span class='time'>{{ page.date | date: '%H:%M:%S' }}</span>
|
17
|
-
{% endif %}
|
18
|
-
</time>
|
19
|
-
{% if site.disqus_short_name and page.comments != false and post.comments != false and site.disqus_show_comment_count == true %}
|
20
|
-
| <a href="{% if index %}{{ root_url }}{{ post.url }}{% endif %}#disqus_thread"
|
21
|
-
data-disqus-identifier="{% if post.meta.disqus_id %}{{ post.meta.disqus_id }}{% else %}{{ site.url }}{{ post.url }}{% endif %}">Comments</a>
|
22
|
-
{% endif %}
|
23
|
-
</p>
|
24
|
-
{% endunless %}
|
25
|
-
</header>
|
26
|
-
{% endunless %}
|
27
|
-
{% if index %}
|
28
|
-
<div class="entry-content">{{ content | excerpt }}</div>
|
29
|
-
{% capture excerpted %}{{ content | has_excerpt }}{% endcapture %}
|
30
|
-
{% if excerpted == 'true' %}
|
31
|
-
<footer>
|
32
|
-
<a rel="full-article" href="{{ root_url }}{{ post.url }}">{{ site.excerpt_link }}</a>
|
33
|
-
</footer>
|
34
|
-
{% endif %}
|
35
|
-
{% else %}
|
36
|
-
<div class="entry-content">{{ content }}</div>
|
37
|
-
{% endif %}
|
38
|
-
|