jekyll-theme-endless 0.11.2 → 0.12.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,13 +1,13 @@
1
1
  <div class="text-right">
2
2
 
3
- <time class="created" datetime="{{ include.created | date_to_xmlschema }}">
3
+ <time class="created" datetime="{{ include.created | date_to_xmlschema }}" itemprop="datePublished">
4
4
  <span class="sr-only sr-only-focusable">created:</span>
5
5
  <strong title="date of creation">{{ include.created | date: "%b %-d, %Y" }}</strong>
6
6
  </time>
7
7
 
8
8
  {% if include.edited != "" and include.edited %}
9
9
  /
10
- <time class="edited" datetime="{{ include.edited | date_to_xmlschema }}">
10
+ <time class="edited" datetime="{{ include.edited | date_to_xmlschema }}" itemprop="dateModified">
11
11
  <span class="sr-only sr-only-focusable">edited:</span>
12
12
  <strong title="date of last edit">{{ include.edited | date: "%b %-d, %Y" }}</strong>
13
13
  </time>
@@ -1,19 +1,50 @@
1
- <div class="row text-left">
2
- <div class="col">
3
- {% if page.next %}
4
- <a href="{{ page.next.url }}">
5
- <i class="fa fa-arrow-left d-md-none"></i>
6
- <span class="d-none d-md-inline">&laquo; {{page.next.title}}</span>
7
- </a>
8
- {% endif %}
9
- </div>
1
+ <div class="row">
2
+
3
+ <div class="col text-left">
4
+ {% if page.next %}
5
+ <div class="btn-group" role="group">
6
+ <!-- Arrow Button (always visible) -->
7
+ <a href="{{ page.next.url | relative_url }}" class="btn btn-secondary">
8
+ <i class="fa fa-arrow-left"></i>
9
+ </a>
10
+
11
+ <!-- Text Button -->
12
+ <a href="{{ page.next.url | relative_url }}" class="btn btn-light border-secondary text-left">
13
+ <!-- Short text on small screens -->
14
+ <span class="d-inline d-md-none">Newer Posts</span>
15
+ <!-- Full title on larger screens -->
16
+ {% comment %}
17
+ 'title' is not escaped, as the value should already be escaped by AsciiDoc through asciidocify.
18
+ {% endcomment %}
19
+ <span class="d-none d-md-inline">{{ page.next.title }}</span>
20
+ </a>
21
+ </div>
22
+ {% endif %}
23
+ </div>
24
+
25
+
26
+
10
27
  <div class="col text-right">
11
- {% if page.previous %}
12
- <a href="{{ page.previous.url }}">
13
- <span class="d-none d-md-inline">{{page.previous.title}} &raquo;</span>
14
- <i class="fa fa-arrow-right d-md-none"></i>
15
- </a>
16
- {% endif %}
17
- </div>
28
+ {% if page.previous %}
29
+ <div class="btn-group" role="group">
30
+ <!-- Text Button -->
31
+ <a href="{{ page.previous.url | relative_url }}" class="btn btn-light border-secondary text-right">
32
+ <!-- Short text on small screens -->
33
+ <span class="d-inline d-md-none">Older Posts</span>
34
+ <!-- Full title on larger screens -->
35
+ {% comment %}
36
+ 'title' is not escaped, as the value should already be escaped by AsciiDoc through asciidocify.
37
+ {% endcomment %}
38
+ <span class="d-none d-md-inline">{{ page.previous.title }}</span>
39
+ </a>
40
+
41
+ <!-- Arrow Button (always visible) -->
42
+ <a href="{{ page.previous.url | relative_url }}" class="btn btn-secondary">
43
+ <i class="fa fa-arrow-right"></i>
44
+ </a>
45
+ </div>
46
+ {% endif %}
47
+ </div>
48
+
18
49
  </div>
19
50
 
@@ -76,17 +76,47 @@ Assumption: Non of the tags occurs more than one million times.
76
76
  {% assign tagname = tag %}
77
77
 
78
78
  <a
79
- href = "/{{ site.tag_dir | default: 'tags' }}/{{ tag }}"
79
+ {% comment %}
80
+ Here 'tag' Is NOT escaped, since the plugin generates
81
+ files for tag-pages using filenames with the unescaped tag.
82
+ {% endcomment %}
83
+ {% assign tag_dir = site.tag_dir | default: 'tags' %}
84
+ href="{{ '/' | append: tag_dir | append: '/' | append: tag | relative_url }}"
80
85
  style = "font-size: {{ percent }}%"
81
86
 
82
87
  {% if site.data.tag-description[tag].short %}
83
- title = "{{ site.data.tag-description[tag].short }} Number of posts with the tag '{{ tagname }}': {{ number }}"
88
+ {% if site.tag_show_description_in_tagcloud %}
89
+ {% comment %}
90
+ 'tagname' is escaped, assuming it does not contain special characters
91
+ that were already escaped by AsciiDocify, or, if special characters are present,
92
+ the tags were set unescaped through the Jekyll front matter.
93
+ 'tag-description' is escaped, since it is set in a data-file.
94
+ {% endcomment %}
95
+ title = "{{ site.data.tag-description[tag].short | escape }} Number of posts with the tag '{{ tagname | escape }}': {{ number }}"
96
+ {% else %}
97
+ {% comment %}
98
+ 'tagname' is escaped, assuming it does not contain special characters
99
+ that were already escaped by AsciiDocify, or, if special characters are present,
100
+ the tags were set unescaped through the Jekyll front matter.
101
+ {% endcomment %}
102
+ title = "Number of posts with the tag '{{ tagname | escape }}': {{ number }}"
103
+ {% endif %}
84
104
  {% else %}
85
105
  class = "no-tag-description"
86
- title = "Number of posts with the tag '{{ tagname }}': {{ number }}"
106
+ {% comment %}
107
+ 'tagname' is escaped, assuming it does not contain special characters
108
+ that were already escaped by AsciiDocify, or, if special characters are present,
109
+ the tags were set unescaped through the Jekyll front matter.
110
+ {% endcomment %}
111
+ title = "Number of posts with the tag '{{ tagname | escape }}': {{ number }}"
87
112
  {% endif %}
88
113
 
89
- >{{ tagname }}</a>
114
+ {% comment %}
115
+ 'tagname' is escaped, assuming it does not contain special characters
116
+ that were already escaped by AsciiDocify, or, if special characters are present,
117
+ the tags were set unescaped through the Jekyll front matter.
118
+ {% endcomment %}
119
+ >{{ tagname |escape }}</a>
90
120
  </li>
91
121
 
92
122
  {% endfor %}
@@ -4,12 +4,20 @@ Requires an array of tags beeing provided via the parameter `tags`.
4
4
  {% endcomment %}
5
5
  {% assign asize = include.tags | size %}
6
6
  {% if asize > 0 %}
7
+ {% comment %}
8
+ Generate a comma-separated keyword list from page.tags for the schema.org annotation of the blog post.
9
+ {% endcomment %}
10
+ <meta itemprop="keywords" content="{{ page.tags | join: ', ' | escape }}" />
7
11
  <ul class="list-inline">
8
12
  {% for current_tag in include.tags %}
9
- <li class="list-inline-item"><a
13
+ <li class="list-inline-item mx-0 my-0"><a
10
14
  class="badge badge-pill badge-secondary"
11
- href="/{{ site.tag_dir | default: 'tags' }}/{{ current_tag }}"
12
- >{{ current_tag }}</a></li>
15
+ {% comment %}
16
+ Here 'tag' Is NOT escaped, since the plugin generates
17
+ files for tag-pages with filenames using the unescaped tag.
18
+ {% endcomment %}
19
+ href="{{ '/' | append: site.tag_dir | default: 'tags' | append: '/' | append: current_tag | relative_url }}"
20
+ >{{ current_tag | escape }}</a></li>
13
21
  {% endfor %}
14
22
  </ul>
15
23
  {% endif %}
@@ -33,14 +33,20 @@ layout: html
33
33
 
34
34
  <!-- Page title -->
35
35
  {% if site.title or site.subtitle %}
36
- <div class="jumbotron border-bottom bg-light py-4">
36
+ <div class="jumbotron bg-light py-4">
37
37
  <div class="container">
38
38
 
39
39
  {% if site.title %}
40
+ {% comment %}
41
+ 'site.title' is intentionally not escaped to allow formatting with HTML.
42
+ {% endcomment %}
40
43
  <div class="h1">{{ site.title }}</div>
41
44
  {% endif %}
42
45
 
43
46
  {% if site.subtitle %}
47
+ {% comment %}
48
+ 'site.subtitle' is intentionally not escaped to allow formatting with HTML.
49
+ {% endcomment %}
44
50
  <div class="h2">{{ site.subtitle }}</div>
45
51
  {% endif %}
46
52
 
@@ -50,6 +56,13 @@ layout: html
50
56
 
51
57
 
52
58
 
59
+ <!-- Add specific content above the content secion. -->
60
+ <div class="container">
61
+ {% include container_start-of-main.html %}
62
+ </div>
63
+
64
+
65
+
53
66
  <!-- Page content -->
54
67
  <main class="container pt-4" style="flex-grow: 1;" aria-label="Content">
55
68
 
@@ -60,13 +73,9 @@ layout: html
60
73
  </div>
61
74
 
62
75
  <div class="col-lg-4 pb-5">
63
- <aside>
64
- <h3>Blog Navigation</h3>
65
-
66
- <!-- Tag-cloud -->
67
- {% include function_tag-cloud.html %}
68
-
69
- </aside>
76
+ {% include aside_navigation.html %}
77
+ {% include aside_info.html %}
78
+ {% include aside_more.html %}
70
79
  </div>
71
80
 
72
81
  </div>
@@ -75,8 +84,15 @@ layout: html
75
84
 
76
85
 
77
86
 
87
+ <!-- Add specific content below the content secion. -->
88
+ <div class="container">
89
+ {% include container_end-of-main.html %}
90
+ </div>
91
+
92
+
93
+
78
94
  <!-- Footer -->
79
- <footer class="footer border-top bg-light">
95
+ <footer class="footer bg-light">
80
96
  <div class="container">
81
97
 
82
98
  <div class="row">
@@ -84,14 +100,16 @@ layout: html
84
100
  <div class="col-lg-3 col-md-4 text-left py-3">
85
101
  <address>
86
102
  <div class="h4">Contact me:</div>
103
+
87
104
  {% include content_footer-usernames.html %}
105
+
88
106
  </address>
89
107
  </div>
90
108
 
91
109
  <div class="col-lg-6 col-md-5 text-left py-3">
92
110
  {% if site.disclaimer %}
93
111
  <h4>Disclaimer:</h4>
94
- {{ site.disclaimer }}
112
+ {{ site.disclaimer | escape }}
95
113
  {% endif %}
96
114
  </div>
97
115
 
@@ -99,12 +117,12 @@ layout: html
99
117
  <h4>Note:</h4>
100
118
  {% if site.copydate and site.author %}
101
119
  <p>
102
- &copy; {{ site.copydate }} by <em>{{ site.author }}</em>
120
+ &copy; {{ site.copydate | escape }} by <em>{{ site.author | escape }}</em>
103
121
  </p>
104
122
  {% endif %}
105
- <p>
106
- Powered by <a href="https://jekyll-theme-endless.gitlab.io/">jekyll-theme-endless</a>.
107
- </p>
123
+
124
+ {% include content_footer-powered-by.html %}
125
+
108
126
  </div>
109
127
 
110
128
  </div>
data/_layouts/html.html CHANGED
@@ -7,25 +7,51 @@
7
7
  <head>
8
8
  <meta charset="utf-8">
9
9
  <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
10
+
11
+ {% if page.summary and page.summary != '' %}
12
+ <meta name="description" content="{{ page.summary | strip_html | normalize_whitespace | truncate: 160 }}">
13
+ {% endif %}
14
+ {% if site.author %}
15
+ <meta name="author" content="{{ site.author | escape_once }}">
16
+ {% endif %}
17
+ {% if page.tags %}
18
+ <meta name="keywords" lang="en" content="{{ page.tags | join: ', ' | escape }}">
19
+ {% endif %}
20
+
10
21
  <title>
22
+ {% comment %}
23
+ 'title' is not escaped, as the value should already be escaped by AsciiDoc through asciidocify.
24
+ HTML commands are removed because they have no effect in the title and
25
+ would otherwise be displayed as the commands themselves.
26
+ {% endcomment %}
11
27
  {{ page.title | default: page.menu_label | strip_html }}
12
28
  </title>
13
29
 
30
+ {% if site.use-cdn == true or site.use-cdn == nil %}
31
+ <!-- Load from CDN -->
14
32
  <!-- Font-awesome CSS: https://www.bootstrapcdn.com/fontawesome/ -->
15
33
  <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css" integrity="sha384-wvfXpqpZZVQGK6TAh5PVlGOfQNHSoD2xbE+QkPxCAFlNEevoEH3Sl0sibVcOQVnN" crossorigin="anonymous">
16
34
  <!-- Bootstrap CSS -->
17
35
  <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@4.5.3/dist/css/bootstrap.min.css" integrity="sha256-93wNFzm2GO3EoByj9rKZCwGjAJAwr0nujPaOgwUt8ZQ=" crossorigin="anonymous">
36
+ {% else %}
37
+ <!-- Load local versions -->
38
+ {% endif %}
18
39
 
19
40
  <!-- Theme CSS -->
20
- <link rel="stylesheet" href="/assets/css/main.css">
41
+ <link rel="stylesheet" href="{{ '/assets/css/main.css' | relative_url }}">
21
42
 
22
43
  </head>
23
44
  <body>
24
45
 
25
46
  {{ content }}
26
47
 
48
+ {% if site.use-cdn == true or site.use-cdn == nil %}
49
+ <!-- Load from CDN -->
27
50
  <script src="https://cdn.jsdelivr.net/npm/jquery@3.5.1/dist/jquery.min.js" integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin="anonymous"></script>
28
51
  <script src="https://cdn.jsdelivr.net/npm/bootstrap@4.5.3/dist/js/bootstrap.bundle.min.js" integrity="sha256-jXCJJT3KKcnNjZ3rfsabCj1EX4j2omR4xxm+H5CtywE=" crossorigin="anonymous"></script>
52
+ {% else %}
53
+ <!-- Load local versions -->
54
+ {% endif %}
29
55
 
30
56
  {% include container_end-of-document.html %}
31
57
 
@@ -1,23 +1,31 @@
1
1
  ---
2
- layout: default
2
+ layout: page
3
3
  menu_position: -10
4
4
  ---
5
5
  {% comment %}
6
6
  page.tag and page.title are set by the plugin `generate-taglist`.
7
7
  {% endcomment %}
8
- {% if page.title %}
9
- <h1>{{ page.title }}</h1>
10
- {% endif %}
11
8
 
12
9
  {% if site.data.tag-description[page.tag].short %}
13
- <p>
14
- In this blog, the tag <dfn>{{page.tag}}</dfn> is used with the meaning
15
- "<em>{{ site.data.tag-description[page.tag].short }}</em>".
16
- </p>
10
+ <p>
11
+ {% comment %}
12
+ 'tag' is escaped, assuming it does not contain special characters
13
+ that were already escaped by AsciiDocify, or, if special characters are present,
14
+ the tags were set unescaped through the Jekyll front matter.
15
+ 'tag-description' is escaped, since it is set in a data-file.
16
+ {% endcomment %}
17
+ In this blog, the tag <dfn>{{ page.tag | escape }}</dfn> is used with the meaning
18
+ "<em>{{ site.data.tag-description[page.tag].short | escape }}</em>".
19
+ </p>
17
20
  {% endif %}
18
21
 
19
22
  <p>
20
- Number of posts tagged with "<em>{{ page.tag }}</em>": <strong>{{ site.tags[ page.tag ] | size }}</strong>
23
+ {% comment %}
24
+ 'tag' is escaped, assuming it does not contain special characters
25
+ that were already escaped by AsciiDocify, or, if special characters are present,
26
+ the tags were set unescaped through the Jekyll front matter.
27
+ {% endcomment %}
28
+ Number of posts tagged with "<em>{{ page.tag | escape }}</em>": <strong>{{ site.tags[ page.tag ] | size }}</strong>
21
29
  </p>
22
30
 
23
31
  {% assign tag_posts = site.tags[page.tag] %}
data/_layouts/page.html CHANGED
@@ -1,12 +1,25 @@
1
1
  ---
2
2
  layout: default
3
3
  ---
4
+ <section>
5
+
4
6
  {% comment %}
5
7
  In Markdown pages, page.title is not filled.
6
8
  Either set `title` in the frontmater, or use a `# Heading` on the page.
7
9
  {% endcomment %}
8
10
  {% if page.title %}
9
- <h1>{{ page.title }}</h1>
11
+ {% comment %}
12
+ 'title' is not escaped, as the value should already be escaped by AsciiDoc through asciidocify.
13
+ {% endcomment %}
14
+ <h1>{{ page.title }}</h1>
10
15
  {% endif %}
11
16
 
17
+ <!-- Add specific content at the start of each page. -->
18
+ {% include container_start-of-page.html %}
19
+
12
20
  {{ content }}
21
+
22
+ <!-- Add specific content at the end of each page. -->
23
+ {% include container_end-of-page.html %}
24
+
25
+ </section>
data/_layouts/post.html CHANGED
@@ -1,24 +1,36 @@
1
1
  ---
2
2
  layout: default
3
3
  ---
4
- <article>
4
+ <article itemscope itemtype="http://schema.org/BlogPosting">
5
5
  <header>
6
6
 
7
- {% comment %}Show link to previous/next post.{% endcomment %}
8
- {% include function_show-prev-next-navigation.html %}
7
+ <div class="post-navigation-top">
8
+ {% comment %}Show link to previous/next post.{% endcomment %}
9
+ {% include function_show-prev-next-navigation.html %}
10
+ </div>
9
11
 
10
- {% comment %}Show dates of the post.{% endcomment %}
12
+ {% comment %}
13
+ Assign the edited date with fallback logic.
14
+ "page.lastedit" was the value used between version 0.4.0 und 0.12.0.
15
+ {% endcomment %}
16
+ {% assign edited_date = page.last_modified_at | default: page.lastedit | default: "" %}
17
+ {% comment %}
18
+ Show dates of the post.
19
+ {% endcomment %}
11
20
  {% include function_show-dates.html
12
21
  created = page.date
13
- edited = page.lastedit
22
+ edited = edited_date
14
23
  %}
15
24
 
16
25
  {% comment %}
17
- In Markdown posts, page.title defaults to parts of the filename.
18
- Thus, do not use `# Heading` in Blog posts, otherwise two H1-heading will appear.
26
+ In Markdown posts, page.title defaults to parts of the filename.
27
+ Thus, do not use `# Heading` in Blog posts, otherwise two H1-heading will appear.
19
28
  {% endcomment %}
20
29
  {% if page.title %}
21
- <h1>{{ page.title }}</h1>
30
+ {% comment %}
31
+ 'title' is not escaped, as the value should already be escaped by AsciiDoc through asciidocify.
32
+ {% endcomment %}
33
+ <h1 itemprop="headline">{{ page.title }}</h1>
22
34
  {% endif %}
23
35
 
24
36
  {% comment %}Show tags of the post.{% endcomment %}
@@ -28,12 +40,20 @@ layout: default
28
40
 
29
41
  </header>
30
42
 
31
- <div>
43
+ <!-- Add specific content at the start of each post. -->
44
+ {% include container_start-of-post.html %}
45
+
46
+ <div class="post-content" itemprop="articleBody">
32
47
  {{ content }}
33
48
  </div>
34
49
 
35
- {% comment %}Show link to previous/next post.{% endcomment %}
36
- {% include function_show-prev-next-navigation.html %}
50
+ <div class="post-navigation-bottom">
51
+ {% comment %}Show link to previous/next post.{% endcomment %}
52
+ {% include function_show-prev-next-navigation.html %}
53
+ </div>
54
+
55
+ <!-- Add specific content at the end of each post. -->
56
+ {% include container_end-of-post.html %}
37
57
 
38
58
  </article>
39
59
 
@@ -1,7 +1,6 @@
1
1
  ---
2
- layout: default
2
+ layout: page
3
3
  ---
4
- <h1>{{ page.title }}</h1>
5
4
 
6
5
  {{ content }}
7
6
 
@@ -42,7 +41,26 @@ layout: default
42
41
  {% endfor %}
43
42
 
44
43
 
45
- <h3>Overview</h3>
44
+
45
+ <h3>Versions</h3>
46
+ <ul>
47
+ <li>Built with <a href ="https://jekyllrb.com">Jekyll</a> {{ jekyll.version }}.</li>
48
+ {% comment %}
49
+
50
+ https://jekyllrb.com/docs/variables/#theme-variables
51
+
52
+ <li>Theme version: {{ theme.version }}</li>
53
+
54
+ theme.version does not seem to be available
55
+
56
+ <li>Theme version: {{ theme.version | inspect }}</li>
57
+
58
+ {% endcomment %}
59
+ </ul>
60
+
61
+
62
+
63
+ <h3>Content statistics</h3>
46
64
 
47
65
  {% comment %}
48
66
  Bei Änderungen auch den entsprechenden Blog-Eintrag vom 28.10.2020 anpassen!
@@ -81,6 +99,7 @@ Bei Änderungen auch den entsprechenden Blog-Eintrag vom 28.10.2020 anpassen!
81
99
  {% endif %}
82
100
 
83
101
 
102
+
84
103
  {% assign number_twd = tags_without_description | size %}
85
104
  {% if number_twd > 0 %}
86
105
  <h3>Tags without description</h3>
data/_sass/adoc-code.scss CHANGED
@@ -25,4 +25,30 @@
25
25
  display: none;
26
26
  }
27
27
 
28
+ /*
29
+ * Ensure that code annotation symbols are not selected along with the code.
30
+ */
31
+ i.conum, i.conum + b {
32
+ user-select: none;
33
+ }
34
+
35
+ i.conum + b {
36
+ display: none; // Hides the <b> element
37
+ }
38
+
39
+ i.conum::after {
40
+ content: attr(data-value); // Displays the value of data-value in the <i> element
41
+ font-weight: bold; // Optional: for bold styling if desired
42
+
43
+ display: inline-block; // Enables circular styling
44
+ background-color: #f0f0f0; // Light gray background
45
+ border: 1px solid #555; // Thin dark gray border
46
+ border-radius: 50%; // Rounds the element into a circle
47
+ padding: 2px 6px; // Adjusts spacing for a circular shape
48
+ text-align: center; // Centers the text in the circle
49
+ line-height: 1; // Ensures the character is vertically centered
50
+ margin: 0 .5em;
51
+ }
52
+
53
+
28
54
 
data/_sass/posts.scss CHANGED
@@ -14,3 +14,15 @@ time {
14
14
  }
15
15
  }
16
16
  }
17
+
18
+ div.post-navigation-top {
19
+ border-bottom: 3px dotted #dee2e6;
20
+ padding-bottom: 1em;
21
+ margin-bottom: 1em;
22
+ }
23
+
24
+ div.post-navigation-bottom {
25
+ border-top: 3px dotted #dee2e6;
26
+ padding-top: 1em;
27
+ margin-top: 5em;
28
+ }
@@ -6,8 +6,10 @@
6
6
  @at-root pre#{&} {
7
7
  -moz-tab-size: 2;
8
8
  tab-size: 2;
9
- background-color: #f8f8f8;
9
+ background-color: white;
10
10
  padding: .5em 1em;
11
+ border: 1px solid #ccc;
12
+ border-radius: 4px;
11
13
  }
12
14
  .hll { background-color: #ffffcc }
13
15
  .c { color: #080; font-style: italic } /* Comment */
data/_sass/structure.scss CHANGED
@@ -1,8 +1,46 @@
1
1
  /*
2
2
  * Styles of structuring elements.
3
3
  */
4
- h2 {
5
- padding-top: 1em;
4
+ article, section {
5
+ h2, h3 {
6
+ padding-top: 1.5em;
7
+ }
6
8
  }
7
9
 
10
+ /*
11
+ * Main elements (boxes for content):
12
+ * * <section> for pages
13
+ * * <article> for posts
14
+ * * <aside> for blog navigation
15
+ */
16
+ aside, article, section {
17
+ color: #111;
18
+ padding: 1.3em;
19
+ margin-bottom: 3em;
20
+ border-radius: 10px;
21
+
22
+ background-color: #f8f9fa;
23
+ border: 1px solid #dee2e6;
24
+ box-shadow: 5px 5px 2px #6b6b6b82;
25
+
26
+ h3 {
27
+ margin-top: 0;
28
+ }
29
+ h4 {
30
+ margin-top: 1.5em;
31
+ margin-bottom: 0.25em;
32
+ ~ ul {
33
+ padding-left: 1.5em;
34
+ }
35
+ }
36
+ }
37
+
38
+
39
+ footer {
40
+ border-top: 4px solid #dee2e6;
41
+ padding: .5em 0 2em 0;
42
+ }
43
+ div.jumbotron {
44
+ border-bottom: 4px solid #dee2e6;
45
+ }
8
46
 
data/assets/css/main.scss CHANGED
@@ -1,5 +1,6 @@
1
1
  ---
2
2
  # The frontmatter ensures that Jekyll reads the file and transforms it to CSS.
3
+ # See https://jekyllrb.com/docs/themes/#assets
3
4
  # Only main files contain this front matter, not partials that are placed in _scss.
4
5
  ---
5
6
 
@@ -24,6 +24,9 @@
24
24
  # See also: https://jekyllrb.com/docs/plugins/
25
25
  # See also: https://jekyllrb.com/docs/plugins/generators/
26
26
 
27
+ # Required to escape strings
28
+ require 'cgi'
29
+
27
30
  module Jekyll
28
31
 
29
32
  module Endless
@@ -69,12 +72,15 @@ module Jekyll
69
72
  @name = 'index.html'
70
73
 
71
74
  self.process(@name)
75
+ #puts "[DEBUG] Generating file in folder: #{dir}"
72
76
  self.read_yaml(File.join(base, '_layouts'), 'page-tag.html')
73
77
 
74
78
  # The prefix for the generated title is set via `tag_title_prefix` in `_config.yml` and defaults to `Tag: `
75
79
  tag_title_prefix = site.config['tag_title_prefix'] || 'Tag: '
76
80
  # Generates the title for the tag page and makes it available in the layout file as `page.title`
77
- self.data['title'] = "#{tag_title_prefix}#{tag}"
81
+ # Since AsciiDoc escapes the title, the plugin must also escape the content of the title (otherwise the tag would be unescaped).
82
+ self.data['title'] = CGI.escapeHTML("#{tag_title_prefix}#{tag}")
83
+ #puts "[DEBUG] Generating title for tag page: #{self.data['title']}"
78
84
  # Makes `page.tag` available in the layout file
79
85
  self.data['tag'] = tag
80
86
 
@@ -1,5 +1,5 @@
1
1
  module Jekyll
2
2
  module Endless
3
- VERSION = '0.11.2'
3
+ VERSION = '0.12.0'
4
4
  end
5
5
  end