elixir-toolkit-theme 1.24.0 → 1.25.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: a23efc58692538db35c4e6a665a6c9eb81bdcedd62761605c50c3135c999ea48
4
- data.tar.gz: 6369c07353e52e09bf3bbb61eb0ea66344a7f2360e873ca068510f03f1f6b988
3
+ metadata.gz: 0e271dd02e5d4621cb80d9dd514f2a27e68862e5588549c2ce9d906b79df0d21
4
+ data.tar.gz: 48f4897c4090ee5e1481f138027088d7c780a2261d82238572b995fe54df8d81
5
5
  SHA512:
6
- metadata.gz: 25476b4f5245d68ff2b13fe77f6bb477ce8073d956f93a56fea525639f62b81f3b87ce40d9877205ff324c20767026e9fe5760be98aa65a02f42c04900c662f4
7
- data.tar.gz: eb5944680a590f2aaffe7ab4de48d2280684af541b68cf868744d91631ac06727e60cc43479abf24359a2b2299934f3dd4617818e1a27e378c078634e0150684
6
+ metadata.gz: 7030ad90a9e23e7ed28dfd6085de00726ae52c5ba5d1ee95fdb87625d7d247fbc1f3e20a77c20548cc14480ad4debe71b735d599d60e3b3356e543d74101cb61
7
+ data.tar.gz: 39dbefc2537534cd79537fa1f193fcd289ea3ceb30d29de701d8f83ff6ddf0d9458ff812f8e8a4ef0d63bb9f4fb538c943a2dbcd8d572dfe02335b59495c5c1f
data/README.md CHANGED
@@ -123,6 +123,7 @@ This theme would not be possible without following open source projects:
123
123
  - [jQuery Navgoco Menus](https://github.com/tefra/navgoco) - Multi-level slide navigation with accordion effect
124
124
  - [Font-Awesome](https://github.com/FortAwesome/Font-Awesome) - The famous icon library
125
125
  - [flag-icons](https://github.com/lipis/flag-icons) - A curated collection of all country flags in SVG + css integration
126
+ - [clipboard.js](https://github.com/zenorocha/clipboard.js) - Modern copy to clipboard. No Flash. Just 3kb gzipped clipboard.
126
127
 
127
128
  ## Attribution
128
129
 
@@ -38,7 +38,23 @@
38
38
  {%- if contributors[contributor].image_url %}
39
39
  <img src="{{ contributors[contributor].image_url }}" class="card-img-top p-3 rounded-circle" alt="{{ contributor }}">
40
40
  {%- else %}
41
+ {%- if contributors[contributor].git %}
41
42
  <img src="https://avatars.githubusercontent.com/{{id}}" class="card-img-top p-3 rounded-circle" alt="{{ contributor }}">
43
+ {%- else %}
44
+ <div class="p-3">
45
+ <div class="ratio ratio-1x1">
46
+ <div class="contr-placeholder rounded-circle d-flex justify-content-center align-items-center">
47
+ {%- assign contr_name = contributor | split: " " %}
48
+ {%- assign initials = "" %}
49
+ {%- for name in contr_name %}
50
+ {%- assign initial = name | slice: 0,1 | capitalize %}
51
+ {%- assign initials = initials | append: initial %}
52
+ {%- endfor %}
53
+ <span class="fs-2 fw-bold">{{ initials }}</span>
54
+ </div>
55
+ </div>
56
+ </div>
57
+ {%- endif %}
42
58
  {%- endif %}
43
59
  </div>
44
60
  <div class="card-body text-center py-0">
@@ -1,24 +1,34 @@
1
1
  {%- if page.contributors and page.contributors.size != 0 %}
2
2
  <span class="d-block h2-like fs-2">Contributors</span>
3
- <div class="p-4 rounded mt-4 page-contributors">
3
+ <div class="p-4 rounded mt-4 page-contributors d-flex flex-wrap gap-2">
4
4
  {%- assign contributors = site.data.CONTRIBUTORS %}
5
5
  {%- assign page_contributors = page.contributors | sort %}
6
6
  {%- for contributor in page_contributors %}
7
7
  {%- assign id = contributors[contributor].git | default: 'no_github' %}
8
8
  <div class="dropup-center dropup d-inline-block">
9
- <button class="btn btn-sm dropdown-toggle contributor-link d-flex hover-primary m-1 position-relative" type="button" data-bs-toggle="dropdown" aria-expanded="false" data-bs-auto-close="outside" data-bs-offset="0,10">
10
- <div class="d-flex align-items-center">
11
- <div class="flex-shrink-0">
12
- {%- if contributors[contributor].image_url %}
13
- <img class="img-fluid rounded-circle contributor-img-sm" src="{{ contributors[contributor].image_url }}" alt="Avatar of the contributor {{ stripped_name }}">
14
- {%- else %}
15
- <img class="img-fluid rounded-circle contributor-img-sm" src="https://avatars.githubusercontent.com/{{ id }}" alt="Avatar of the contributor {{ stripped_name }}">
16
- {%- endif %}
17
- </div>
18
- <div class="flex-grow-1 ms-2">
19
- {{ contributor }}
9
+ <button class="btn btn-sm dropdown-toggle contributor-link d-flex gap-2 align-items-center hover-primary position-relative" type="button" data-bs-toggle="dropdown" aria-expanded="false" data-bs-auto-close="outside" data-bs-offset="0,10">
10
+ <div>
11
+ {%- if contributors[contributor].image_url %}
12
+ <img class="img-fluid rounded-circle contributor-img-sm" src="{{ contributors[contributor].image_url }}" alt="Avatar of the contributor {{ contributor }}">
13
+ {%- else %}
14
+ {%- if contributors[contributor].git %}
15
+ <img class="img-fluid rounded-circle contributor-img-sm" src="https://avatars.githubusercontent.com/{{ id }}" alt="Avatar of the contributor {{ contributor }}">
16
+ {%- else %}
17
+ <div class="contr-placeholder rounded-circle d-flex justify-content-center align-items-center contributor-img-sm">
18
+ {%- assign contr_name = contributor | split: " " %}
19
+ {%- assign initials = "" %}
20
+ {%- for name in contr_name %}
21
+ {%- assign initial = name | slice: 0,1 | capitalize %}
22
+ {%- assign initials = initials | append: initial %}
23
+ {%- endfor %}
24
+ <span class="fw-bold">{{ initials }}</span>
20
25
  </div>
21
- </div>
26
+ {%- endif %}
27
+ {%- endif %}
28
+ </div>
29
+ <div>
30
+ {{ contributor }}
31
+ </div>
22
32
  {%- if page.coordinators %}
23
33
  {%- for coordinator in page.coordinators %}
24
34
  {%- if coordinator == contributor %}
@@ -34,14 +44,30 @@
34
44
  {%- endif %}
35
45
  </button>
36
46
  <div class="dropdown-menu shadow p-0 border-0 contributor-cards">
37
- {%- assign stripped_name = contributor | replace: "'", "’" %}
47
+
38
48
  <div class="card">
39
49
  {%- assign id = contributors[contributor].git | default: 'no_github' %}
40
- <div class="position-relative d-flex justify-content-center">
50
+ <div class="position-relative">
41
51
  {%- if contributors[contributor].image_url %}
42
- <img src="{{ contributors[contributor].image_url }}" class="card-img-top p-3 rounded-circle" alt="{{ stripped_name }}">
52
+ <img src="{{ contributors[contributor].image_url }}" class="card-img-top p-3 rounded-circle" alt="{{ contributor }}">
53
+ {%- else %}
54
+ {%- if contributors[contributor].git %}
55
+ <img src="https://avatars.githubusercontent.com/{{id}}" class="card-img-top p-3 rounded-circle" alt="{{ contributor }}">
43
56
  {%- else %}
44
- <img src="https://avatars.githubusercontent.com/{{id}}" class="card-img-top p-3 rounded-circle" alt="{{ stripped_name }}">
57
+ <div class="p-3">
58
+ <div class="ratio ratio-1x1">
59
+ <div class="contr-placeholder rounded-circle d-flex justify-content-center align-items-center">
60
+ {%- assign contr_name = contributor | split: " " %}
61
+ {%- assign initials = "" %}
62
+ {%- for name in contr_name %}
63
+ {%- assign initial = name | slice: 0,1 | capitalize %}
64
+ {%- assign initials = initials | append: initial %}
65
+ {%- endfor %}
66
+ <span class="fs-2 fw-bold">{{ initials }}</span>
67
+ </div>
68
+ </div>
69
+ </div>
70
+ {%- endif %}
45
71
  {%- endif %}
46
72
  {%- if contributors[contributor].role %}
47
73
  <span class="badge position-absolute top-0 end-0">{{ contributors[contributor].role | capitalize }}</span>
@@ -50,7 +76,7 @@
50
76
  <div class="card-body text-center py-0">
51
77
  <p class="card-title">{{ stripped_name }}</p>
52
78
  {%- if contributors[contributor].affiliation %}
53
- <p class="card-affiliation">{{ contributors[contributor].affiliation | replace: "'", "’" }}</p>
79
+ <p class="card-affiliation">{{ contributors[contributor].affiliation }}</p>
54
80
  {%- endif %}
55
81
  </div>
56
82
  {%- if contributors[contributor].git or contributors[contributor].email or contributors[contributor].orcid %}
@@ -30,7 +30,23 @@
30
30
  {%- if contributors[contributor].image_url %}
31
31
  <img src="{{ contributors[contributor].image_url }}" class="card-img-top p-3 rounded-circle" alt="{{ contributor }}">
32
32
  {%- else %}
33
+ {%- if contributors[contributor].git %}
33
34
  <img src="https://avatars.githubusercontent.com/{{id}}" class="card-img-top p-3 rounded-circle" alt="{{ contributor }}">
35
+ {%- else %}
36
+ <div class="p-3">
37
+ <div class="ratio ratio-1x1">
38
+ <div class="contr-placeholder rounded-circle d-flex justify-content-center align-items-center">
39
+ {%- assign contr_name = contributor | split: " " %}
40
+ {%- assign initials = "" %}
41
+ {%- for name in contr_name %}
42
+ {%- assign initial = name | slice: 0,1 | capitalize %}
43
+ {%- assign initials = initials | append: initial %}
44
+ {%- endfor %}
45
+ <span class="fs-2 fw-bold">{{ initials }}</span>
46
+ </div>
47
+ </div>
48
+ </div>
49
+ {%- endif %}
34
50
  {%- endif %}
35
51
  {%- if contributors[contributor].role %}
36
52
  <span class="badge position-absolute top-0 end-0">{{ contributors[contributor].role | capitalize }}</span>
data/_includes/head.html CHANGED
@@ -56,6 +56,7 @@
56
56
  <script src="{{ 'assets/js/jquery.navgoco.js' | relative_url }}"></script>
57
57
  <script src="{{ 'assets/js/main.js' | relative_url }}"></script>
58
58
  <script src="{{ 'assets/js/search.js' | relative_url }}"></script>
59
+ <script src="{{ 'assets/js/clipboard.min.js' | relative_url }}"></script>
59
60
  {%- if page.datatable == true %}
60
61
  <!-- Include the standard DataTables bits -->
61
62
  <link rel="stylesheet" type="text/css" href="{{ 'assets/css/dataTables.bootstrap5.min.css' | relative_url }}">
data/_includes/news.html CHANGED
@@ -8,7 +8,7 @@
8
8
  {%- for new in news reversed%}
9
9
  <li>
10
10
  <span class="title mb-1">{{ new.name | escape }}</span>
11
- <p class="text-muted"><i class="far fa-calendar me-2"></i><time>{{ new.date | date_to_long_string }}</time>{% if new.linked_pr %}<b> - </b><i class="fa-solid fa-code-branch"></i><a href="{{ site.github.repository_url | append: '/pull/' | append: new.linked_pr }}">{{new.linked_pr }}</a>{% endif %}</p>
11
+ <p class="text-muted"><i class="far fa-calendar me-2"></i><time>{{ new.date | date_to_long_string }}</time>{% if new.linked_pr %} - <i class="fa-solid fa-code-branch"></i><a href="{{ site.github.repository_url | append: '/pull/' | append: new.linked_pr }}">{{new.linked_pr }}</a>{% endif %}</p>
12
12
  {%- if new.description %}
13
13
  {%- assign word_count = new.description | split: " " | size %}
14
14
  {%- if include.truncate == true and word_count > 40 %}
@@ -1,6 +1,6 @@
1
1
  {%- assign tools = site.data.tool_and_resource_list | where:"related_pages", include.tag %}
2
2
  {%- assign country_pages = site.pages | where_exp: "item", "item.search_exclude != true" | where_exp:"item","item.national_resources != nil" %}
3
- {%- unless tools.size == 0 %}
3
+ {%- unless tools.size == 0 or tools == nil %}
4
4
  {%- if include.tag %}
5
5
  <h2>Relevant tools and resources</h2>
6
6
  {%- endif %}
data/assets/css/main.scss CHANGED
@@ -118,23 +118,32 @@ code {
118
118
  }
119
119
 
120
120
  pre {
121
- padding: 9.5px;
122
- line-height: 1.42857143;
123
- color: #333;
121
+ padding: $spacer;
124
122
  word-break: break-all;
125
123
  word-wrap: break-word;
126
- border: 1px solid #ccc;
124
+ border: 1px solid $border-color;
127
125
  border-radius: $border-radius;
128
- }
126
+ margin-bottom: $spacer;
127
+ line-height: 1.42857143;
128
+ code {
129
+ padding: 0;
130
+ background-color: transparent;
129
131
 
130
- pre code {
131
- padding: 0;
132
- font-size: inherit;
133
- color: inherit;
134
- background-color: transparent;
135
- border-radius: 0;
132
+ }
136
133
  }
137
134
 
135
+ div.highlight {
136
+ background: #fafbfc;
137
+ color: $body-color;
138
+ border: 1px solid $border-color;
139
+ border-radius: $border-radius;
140
+ margin-bottom: $spacer;
141
+ pre {
142
+ margin-bottom: 0;
143
+ padding: $spacer;
144
+ border: 0;
145
+ }
146
+ }
138
147
  /*-----Top navigation-----*/
139
148
 
140
149
  header .navbar {
@@ -291,7 +300,7 @@ header .navbar {
291
300
  #side-nav .btn.sidebar-title {
292
301
  color: $sidebar-color;
293
302
  background-color: transparent;
294
- border-color: transparent
303
+ border-color: transparent;
295
304
  }
296
305
 
297
306
  .sidebar-collapse {
@@ -531,6 +540,9 @@ footer {
531
540
  color: $primary;
532
541
  font-size: 0.8em;
533
542
  }
543
+ .contr-placeholder {
544
+ background-color: rgba($dark, 0.1);
545
+ }
534
546
  }
535
547
 
536
548
  /*-----Contributors carousel-----*/
@@ -592,7 +604,8 @@ footer {
592
604
  }
593
605
 
594
606
  .contributor-img-sm {
595
- height: 1.7em;
607
+ height: 25px;
608
+ width: 25px;
596
609
  }
597
610
 
598
611
  .coordinator-crown {
@@ -606,6 +619,11 @@ footer {
606
619
  color: $contr-crown-color;
607
620
  }
608
621
  }
622
+
623
+ .contr-placeholder {
624
+ background-color: rgba($dark, 0.1);
625
+ font-size: 0.5rem;
626
+ }
609
627
  }
610
628
  }
611
629
 
@@ -1,60 +1,220 @@
1
- .highlight { background: #ffffff; }
2
- .highlight .c { color: #999988; font-style: italic } /* Comment */
3
- .highlight .err { color: #a61717; background-color: #e3d2d2 } /* Error */
4
- .highlight .k { font-weight: bold } /* Keyword */
5
- .highlight .o { font-weight: bold } /* Operator */
6
- .highlight .cm { color: #999988; font-style: italic } /* Comment.Multiline */
7
- .highlight .cp { color: #999999; font-weight: bold } /* Comment.Preproc */
8
- .highlight .c1 { color: #999988; font-style: italic } /* Comment.Single */
9
- .highlight .cs { color: #999999; font-weight: bold; font-style: italic } /* Comment.Special */
10
- .highlight .gd { color: #000000; background-color: #ffdddd } /* Generic.Deleted */
11
- .highlight .gd .x { color: #000000; background-color: #ffaaaa } /* Generic.Deleted.Specific */
12
- .highlight .ge { font-style: italic } /* Generic.Emph */
13
- .highlight .gr { color: #aa0000 } /* Generic.Error */
14
- .highlight .gh { color: #999999 } /* Generic.Heading */
15
- .highlight .gi { color: #000000; background-color: #ddffdd } /* Generic.Inserted */
16
- .highlight .gi .x { color: #000000; background-color: #aaffaa } /* Generic.Inserted.Specific */
17
- .highlight .go { color: #888888 } /* Generic.Output */
18
- .highlight .gp { color: #555555 } /* Generic.Prompt */
19
- .highlight .gs { font-weight: bold } /* Generic.Strong */
20
- .highlight .gu { color: #aaaaaa } /* Generic.Subheading */
21
- .highlight .gt { color: #aa0000 } /* Generic.Traceback */
22
- .highlight .kc { font-weight: bold } /* Keyword.Constant */
23
- .highlight .kd { font-weight: bold } /* Keyword.Declaration */
24
- .highlight .kp { font-weight: bold } /* Keyword.Pseudo */
25
- .highlight .kr { font-weight: bold } /* Keyword.Reserved */
26
- .highlight .kt { color: #445588; font-weight: bold } /* Keyword.Type */
27
- .highlight .m { color: #009999 } /* Literal.Number */
28
- .highlight .s { color: #d14 } /* Literal.String */
29
- .highlight .na { color: #008080 } /* Name.Attribute */
30
- .highlight .nb { color: #0086B3 } /* Name.Builtin */
31
- .highlight .nc { color: #445588; font-weight: bold } /* Name.Class */
32
- .highlight .no { color: #008080 } /* Name.Constant */
33
- .highlight .ni { color: #800080 } /* Name.Entity */
34
- .highlight .ne { color: #990000; font-weight: bold } /* Name.Exception */
35
- .highlight .nf { color: #990000; font-weight: bold } /* Name.Function */
36
- .highlight .nn { color: #555555 } /* Name.Namespace */
37
- .highlight .nt { color: #000080 } /* Name.Tag */
38
- .highlight .nv { color: #008080 } /* Name.Variable */
39
- .highlight .ow { font-weight: bold } /* Operator.Word */
40
- .highlight .w { color: #bbbbbb } /* Text.Whitespace */
41
- .highlight .mf { color: #009999 } /* Literal.Number.Float */
42
- .highlight .mh { color: #009999 } /* Literal.Number.Hex */
43
- .highlight .mi { color: #009999 } /* Literal.Number.Integer */
44
- .highlight .mo { color: #009999 } /* Literal.Number.Oct */
45
- .highlight .sb { color: #d14 } /* Literal.String.Backtick */
46
- .highlight .sc { color: #d14 } /* Literal.String.Char */
47
- .highlight .sd { color: #d14 } /* Literal.String.Doc */
48
- .highlight .s2 { color: #d14 } /* Literal.String.Double */
49
- .highlight .se { color: #d14 } /* Literal.String.Escape */
50
- .highlight .sh { color: #d14 } /* Literal.String.Heredoc */
51
- .highlight .si { color: #d14 } /* Literal.String.Interpol */
52
- .highlight .sx { color: #d14 } /* Literal.String.Other */
53
- .highlight .sr { color: #009926 } /* Literal.String.Regex */
54
- .highlight .s1 { color: #d14 } /* Literal.String.Single */
55
- .highlight .ss { color: #990073 } /* Literal.String.Symbol */
56
- .highlight .bp { color: #999999 } /* Name.Builtin.Pseudo */
57
- .highlight .vc { color: #008080 } /* Name.Variable.Class */
58
- .highlight .vg { color: #008080 } /* Name.Variable.Global */
59
- .highlight .vi { color: #008080 } /* Name.Variable.Instance */
60
- .highlight .il { color: #009999 } /* Literal.Number.Integer.Long */
1
+ .highlight table td {
2
+ padding: 5px;
3
+ }
4
+ .highlight table pre {
5
+ margin: 0;
6
+ }
7
+ .highlight .cm {
8
+ color: #999988;
9
+ font-style: italic;
10
+ }
11
+ .highlight .cp {
12
+ color: #999999;
13
+ font-weight: bold;
14
+ }
15
+ .highlight .c1 {
16
+ color: #999988;
17
+ font-style: italic;
18
+ }
19
+ .highlight .cs {
20
+ color: #999999;
21
+ font-weight: bold;
22
+ font-style: italic;
23
+ }
24
+ .highlight .c,
25
+ .highlight .ch,
26
+ .highlight .cd,
27
+ .highlight .cpf {
28
+ color: #999988;
29
+ font-style: italic;
30
+ }
31
+ .highlight .err {
32
+ color: #a61717;
33
+ background-color: #e3d2d2;
34
+ }
35
+ .highlight .gd {
36
+ color: #000000;
37
+ background-color: #ffdddd;
38
+ }
39
+ .highlight .ge {
40
+ color: #000000;
41
+ font-style: italic;
42
+ }
43
+ .highlight .gr {
44
+ color: #aa0000;
45
+ }
46
+ .highlight .gh {
47
+ color: #999999;
48
+ }
49
+ .highlight .gi {
50
+ color: #000000;
51
+ background-color: #ddffdd;
52
+ }
53
+ .highlight .go {
54
+ color: #888888;
55
+ }
56
+ .highlight .gp {
57
+ color: #555555;
58
+ }
59
+ .highlight .gs {
60
+ font-weight: bold;
61
+ }
62
+ .highlight .gu {
63
+ color: #aaaaaa;
64
+ }
65
+ .highlight .gt {
66
+ color: #aa0000;
67
+ }
68
+ .highlight .kc {
69
+ color: #000000;
70
+ font-weight: bold;
71
+ }
72
+ .highlight .kd {
73
+ color: #000000;
74
+ font-weight: bold;
75
+ }
76
+ .highlight .kn {
77
+ color: #000000;
78
+ font-weight: bold;
79
+ }
80
+ .highlight .kp {
81
+ color: #000000;
82
+ font-weight: bold;
83
+ }
84
+ .highlight .kr {
85
+ color: #000000;
86
+ font-weight: bold;
87
+ }
88
+ .highlight .kt {
89
+ color: #445588;
90
+ font-weight: bold;
91
+ }
92
+ .highlight .k,
93
+ .highlight .kv {
94
+ color: #000000;
95
+ font-weight: bold;
96
+ }
97
+ .highlight .mf {
98
+ color: #009999;
99
+ }
100
+ .highlight .mh {
101
+ color: #009999;
102
+ }
103
+ .highlight .il {
104
+ color: #009999;
105
+ }
106
+ .highlight .mi {
107
+ color: #009999;
108
+ }
109
+ .highlight .mo {
110
+ color: #009999;
111
+ }
112
+ .highlight .m,
113
+ .highlight .mb,
114
+ .highlight .mx {
115
+ color: #009999;
116
+ }
117
+ .highlight .sb {
118
+ color: #d14;
119
+ }
120
+ .highlight .sc {
121
+ color: #d14;
122
+ }
123
+ .highlight .sd {
124
+ color: #d14;
125
+ }
126
+ .highlight .s2 {
127
+ color: #d14;
128
+ }
129
+ .highlight .se {
130
+ color: #d14;
131
+ }
132
+ .highlight .sh {
133
+ color: #d14;
134
+ }
135
+ .highlight .si {
136
+ color: #d14;
137
+ }
138
+ .highlight .sx {
139
+ color: #d14;
140
+ }
141
+ .highlight .sr {
142
+ color: #009926;
143
+ }
144
+ .highlight .s1 {
145
+ color: #d14;
146
+ }
147
+ .highlight .ss {
148
+ color: #990073;
149
+ }
150
+ .highlight .s,
151
+ .highlight .sa,
152
+ .highlight .dl {
153
+ color: #d14;
154
+ }
155
+ .highlight .na {
156
+ color: #008080;
157
+ }
158
+ .highlight .bp {
159
+ color: #999999;
160
+ }
161
+ .highlight .nb {
162
+ color: #0086b3;
163
+ }
164
+ .highlight .nc {
165
+ color: #445588;
166
+ font-weight: bold;
167
+ }
168
+ .highlight .no {
169
+ color: #008080;
170
+ }
171
+ .highlight .nd {
172
+ color: #3c5d5d;
173
+ font-weight: bold;
174
+ }
175
+ .highlight .ni {
176
+ color: #800080;
177
+ }
178
+ .highlight .ne {
179
+ color: #990000;
180
+ font-weight: bold;
181
+ }
182
+ .highlight .nf,
183
+ .highlight .fm {
184
+ color: #990000;
185
+ font-weight: bold;
186
+ }
187
+ .highlight .nl {
188
+ color: #990000;
189
+ font-weight: bold;
190
+ }
191
+ .highlight .nn {
192
+ color: #555555;
193
+ }
194
+ .highlight .nt {
195
+ color: #000080;
196
+ }
197
+ .highlight .vc {
198
+ color: #008080;
199
+ }
200
+ .highlight .vg {
201
+ color: #008080;
202
+ }
203
+ .highlight .vi {
204
+ color: #008080;
205
+ }
206
+ .highlight .nv,
207
+ .highlight .vm {
208
+ color: #008080;
209
+ }
210
+ .highlight .ow {
211
+ color: #000000;
212
+ font-weight: bold;
213
+ }
214
+ .highlight .o {
215
+ color: #000000;
216
+ font-weight: bold;
217
+ }
218
+ .highlight .w {
219
+ color: #bbbbbb;
220
+ }
@@ -0,0 +1,7 @@
1
+ /*!
2
+ * clipboard.js v2.0.11
3
+ * https://clipboardjs.com/
4
+ *
5
+ * Licensed MIT © Zeno Rocha
6
+ */
7
+ !function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.amd?define([],e):"object"==typeof exports?exports.ClipboardJS=e():t.ClipboardJS=e()}(this,function(){return n={686:function(t,e,n){"use strict";n.d(e,{default:function(){return b}});var e=n(279),i=n.n(e),e=n(370),u=n.n(e),e=n(817),r=n.n(e);function c(t){try{return document.execCommand(t)}catch(t){return}}var a=function(t){t=r()(t);return c("cut"),t};function o(t,e){var n,o,t=(n=t,o="rtl"===document.documentElement.getAttribute("dir"),(t=document.createElement("textarea")).style.fontSize="12pt",t.style.border="0",t.style.padding="0",t.style.margin="0",t.style.position="absolute",t.style[o?"right":"left"]="-9999px",o=window.pageYOffset||document.documentElement.scrollTop,t.style.top="".concat(o,"px"),t.setAttribute("readonly",""),t.value=n,t);return e.container.appendChild(t),e=r()(t),c("copy"),t.remove(),e}var f=function(t){var e=1<arguments.length&&void 0!==arguments[1]?arguments[1]:{container:document.body},n="";return"string"==typeof t?n=o(t,e):t instanceof HTMLInputElement&&!["text","search","url","tel","password"].includes(null==t?void 0:t.type)?n=o(t.value,e):(n=r()(t),c("copy")),n};function l(t){return(l="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}var s=function(){var t=0<arguments.length&&void 0!==arguments[0]?arguments[0]:{},e=t.action,n=void 0===e?"copy":e,o=t.container,e=t.target,t=t.text;if("copy"!==n&&"cut"!==n)throw new Error('Invalid "action" value, use either "copy" or "cut"');if(void 0!==e){if(!e||"object"!==l(e)||1!==e.nodeType)throw new Error('Invalid "target" value, use a valid Element');if("copy"===n&&e.hasAttribute("disabled"))throw new Error('Invalid "target" attribute. Please use "readonly" instead of "disabled" attribute');if("cut"===n&&(e.hasAttribute("readonly")||e.hasAttribute("disabled")))throw new Error('Invalid "target" attribute. You can\'t cut text from elements with "readonly" or "disabled" attributes')}return t?f(t,{container:o}):e?"cut"===n?a(e):f(e,{container:o}):void 0};function p(t){return(p="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}function d(t,e){for(var n=0;n<e.length;n++){var o=e[n];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(t,o.key,o)}}function y(t,e){return(y=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t})(t,e)}function h(n){var o=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],function(){})),!0}catch(t){return!1}}();return function(){var t,e=v(n);return t=o?(t=v(this).constructor,Reflect.construct(e,arguments,t)):e.apply(this,arguments),e=this,!(t=t)||"object"!==p(t)&&"function"!=typeof t?function(t){if(void 0!==t)return t;throw new ReferenceError("this hasn't been initialised - super() hasn't been called")}(e):t}}function v(t){return(v=Object.setPrototypeOf?Object.getPrototypeOf:function(t){return t.__proto__||Object.getPrototypeOf(t)})(t)}function m(t,e){t="data-clipboard-".concat(t);if(e.hasAttribute(t))return e.getAttribute(t)}var b=function(){!function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),e&&y(t,e)}(r,i());var t,e,n,o=h(r);function r(t,e){var n;return function(t){if(!(t instanceof r))throw new TypeError("Cannot call a class as a function")}(this),(n=o.call(this)).resolveOptions(e),n.listenClick(t),n}return t=r,n=[{key:"copy",value:function(t){var e=1<arguments.length&&void 0!==arguments[1]?arguments[1]:{container:document.body};return f(t,e)}},{key:"cut",value:function(t){return a(t)}},{key:"isSupported",value:function(){var t=0<arguments.length&&void 0!==arguments[0]?arguments[0]:["copy","cut"],t="string"==typeof t?[t]:t,e=!!document.queryCommandSupported;return t.forEach(function(t){e=e&&!!document.queryCommandSupported(t)}),e}}],(e=[{key:"resolveOptions",value:function(){var t=0<arguments.length&&void 0!==arguments[0]?arguments[0]:{};this.action="function"==typeof t.action?t.action:this.defaultAction,this.target="function"==typeof t.target?t.target:this.defaultTarget,this.text="function"==typeof t.text?t.text:this.defaultText,this.container="object"===p(t.container)?t.container:document.body}},{key:"listenClick",value:function(t){var e=this;this.listener=u()(t,"click",function(t){return e.onClick(t)})}},{key:"onClick",value:function(t){var e=t.delegateTarget||t.currentTarget,n=this.action(e)||"copy",t=s({action:n,container:this.container,target:this.target(e),text:this.text(e)});this.emit(t?"success":"error",{action:n,text:t,trigger:e,clearSelection:function(){e&&e.focus(),window.getSelection().removeAllRanges()}})}},{key:"defaultAction",value:function(t){return m("action",t)}},{key:"defaultTarget",value:function(t){t=m("target",t);if(t)return document.querySelector(t)}},{key:"defaultText",value:function(t){return m("text",t)}},{key:"destroy",value:function(){this.listener.destroy()}}])&&d(t.prototype,e),n&&d(t,n),r}()},828:function(t){var e;"undefined"==typeof Element||Element.prototype.matches||((e=Element.prototype).matches=e.matchesSelector||e.mozMatchesSelector||e.msMatchesSelector||e.oMatchesSelector||e.webkitMatchesSelector),t.exports=function(t,e){for(;t&&9!==t.nodeType;){if("function"==typeof t.matches&&t.matches(e))return t;t=t.parentNode}}},438:function(t,e,n){var u=n(828);function i(t,e,n,o,r){var i=function(e,n,t,o){return function(t){t.delegateTarget=u(t.target,n),t.delegateTarget&&o.call(e,t)}}.apply(this,arguments);return t.addEventListener(n,i,r),{destroy:function(){t.removeEventListener(n,i,r)}}}t.exports=function(t,e,n,o,r){return"function"==typeof t.addEventListener?i.apply(null,arguments):"function"==typeof n?i.bind(null,document).apply(null,arguments):("string"==typeof t&&(t=document.querySelectorAll(t)),Array.prototype.map.call(t,function(t){return i(t,e,n,o,r)}))}},879:function(t,n){n.node=function(t){return void 0!==t&&t instanceof HTMLElement&&1===t.nodeType},n.nodeList=function(t){var e=Object.prototype.toString.call(t);return void 0!==t&&("[object NodeList]"===e||"[object HTMLCollection]"===e)&&"length"in t&&(0===t.length||n.node(t[0]))},n.string=function(t){return"string"==typeof t||t instanceof String},n.fn=function(t){return"[object Function]"===Object.prototype.toString.call(t)}},370:function(t,e,n){var f=n(879),l=n(438);t.exports=function(t,e,n){if(!t&&!e&&!n)throw new Error("Missing required arguments");if(!f.string(e))throw new TypeError("Second argument must be a String");if(!f.fn(n))throw new TypeError("Third argument must be a Function");if(f.node(t))return c=e,a=n,(u=t).addEventListener(c,a),{destroy:function(){u.removeEventListener(c,a)}};if(f.nodeList(t))return o=t,r=e,i=n,Array.prototype.forEach.call(o,function(t){t.addEventListener(r,i)}),{destroy:function(){Array.prototype.forEach.call(o,function(t){t.removeEventListener(r,i)})}};if(f.string(t))return t=t,e=e,n=n,l(document.body,t,e,n);throw new TypeError("First argument must be a String, HTMLElement, HTMLCollection, or NodeList");var o,r,i,u,c,a}},817:function(t){t.exports=function(t){var e,n="SELECT"===t.nodeName?(t.focus(),t.value):"INPUT"===t.nodeName||"TEXTAREA"===t.nodeName?((e=t.hasAttribute("readonly"))||t.setAttribute("readonly",""),t.select(),t.setSelectionRange(0,t.value.length),e||t.removeAttribute("readonly"),t.value):(t.hasAttribute("contenteditable")&&t.focus(),n=window.getSelection(),(e=document.createRange()).selectNodeContents(t),n.removeAllRanges(),n.addRange(e),n.toString());return n}},279:function(t){function e(){}e.prototype={on:function(t,e,n){var o=this.e||(this.e={});return(o[t]||(o[t]=[])).push({fn:e,ctx:n}),this},once:function(t,e,n){var o=this;function r(){o.off(t,r),e.apply(n,arguments)}return r._=e,this.on(t,r,n)},emit:function(t){for(var e=[].slice.call(arguments,1),n=((this.e||(this.e={}))[t]||[]).slice(),o=0,r=n.length;o<r;o++)n[o].fn.apply(n[o].ctx,e);return this},off:function(t,e){var n=this.e||(this.e={}),o=n[t],r=[];if(o&&e)for(var i=0,u=o.length;i<u;i++)o[i].fn!==e&&o[i].fn._!==e&&r.push(o[i]);return r.length?n[t]=r:delete n[t],this}},t.exports=e,t.exports.TinyEmitter=e}},r={},o.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return o.d(e,{a:e}),e},o.d=function(t,e){for(var n in e)o.o(e,n)&&!o.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:e[n]})},o.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},o(686).default;function o(t){if(r[t])return r[t].exports;var e=r[t]={exports:{}};return n[t](e,e.exports,o),e.exports}var n,r});
data/assets/js/main.js CHANGED
@@ -16,7 +16,7 @@ $(document).ready(function () {
16
16
  /**
17
17
  * Function to open external links in separate tab
18
18
  */
19
- $(document).ready(function external_new_window() {
19
+ $(document).ready(function () {
20
20
  for (var c = document.getElementsByTagName("a"), a = 0; a < c.length; a++) {
21
21
  var b = c[a];
22
22
  if (b.getAttribute("href") && b.hostname !== location.hostname) {
@@ -48,30 +48,6 @@ $(document).ready(function () {
48
48
  });
49
49
  });
50
50
 
51
- /**
52
- * Activate tooltips
53
- */
54
-
55
- $(function () {
56
- var tooltipTriggerList = [].slice.call(document.querySelectorAll('[data-bs-toggle="tooltip"]'))
57
- var tooltipList = tooltipTriggerList.map(function (tooltipTriggerEl) {
58
- return new bootstrap.Tooltip(tooltipTriggerEl, {
59
- animation: false
60
- })
61
- })
62
- })
63
-
64
- /**
65
- * Activate popovers
66
- */
67
-
68
- $(function () {
69
- var popoverTriggerList = [].slice.call(document.querySelectorAll('[data-bs-toggle="popover"]'))
70
- var popoverList = popoverTriggerList.map(function (popoverTriggerEl) {
71
- return new bootstrap.Popover(popoverTriggerEl)
72
- })
73
- })
74
-
75
51
  /**
76
52
  * Back to top button
77
53
  */
@@ -138,3 +114,52 @@ $(document).ready(function () {
138
114
  });
139
115
 
140
116
  });
117
+
118
+ /**
119
+ * Add clipboard button to code blocks
120
+ */
121
+ $(document).ready(function () {
122
+ var codes = document.querySelectorAll('.highlight > pre > code');
123
+ var countID = 0;
124
+ codes.forEach((code) => {
125
+ code.setAttribute("id", "code" + countID);
126
+ var btn = document.createElement('button');
127
+ var div = document.createElement('div');
128
+ btn.innerHTML = '<i class="fa-regular fa-copy"></i>';
129
+ btn.className = "btn btn-light text-secondary m-1 btn-copy py-1 px-2";
130
+ btn.title = "Copy to clipboard";
131
+ btn.type = "button";
132
+ btn.setAttribute("data-bs-toggle", "tooltip");
133
+ btn.setAttribute("data-clipboard-action", "copy");
134
+ btn.setAttribute("data-clipboard-target", "#code" + countID);
135
+ div.append(btn)
136
+ code.closest('div.highlight').classList.add("d-flex","justify-content-between");
137
+ code.closest('.highlight').after(div);
138
+ countID++;
139
+ });
140
+ });
141
+
142
+ /**
143
+ * Enabling Clipboard.js
144
+ */
145
+ $(document).ready(function () {
146
+ var clipboard = new ClipboardJS('.btn-copy')
147
+
148
+ clipboard.on('success', function (event) {
149
+ var tooltipBtn = bootstrap.Tooltip.getInstance(event.trigger)
150
+ tooltipBtn.setContent({ '.tooltip-inner': 'Copied!' })
151
+ });
152
+ });
153
+
154
+ /**
155
+ * Activate tooltips
156
+ */
157
+
158
+ $(function () {
159
+ var tooltipTriggerList = [].slice.call(document.querySelectorAll('[data-bs-toggle="tooltip"]'))
160
+ var tooltipList = tooltipTriggerList.map(function (tooltipTriggerEl) {
161
+ return new bootstrap.Tooltip(tooltipTriggerEl, {
162
+ animation: true
163
+ })
164
+ })
165
+ })
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: elixir-toolkit-theme
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.24.0
4
+ version: 1.25.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - bedroesb
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-03-14 00:00:00.000000000 Z
11
+ date: 2023-03-23 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: jekyll
@@ -470,6 +470,7 @@ files:
470
470
  - assets/js/anchor.min.js
471
471
  - assets/js/bootstrap.bundle.min.js
472
472
  - assets/js/bootstrap.bundle.min.js.map
473
+ - assets/js/clipboard.min.js
473
474
  - assets/js/dataTables.bootstrap5.min.js
474
475
  - assets/js/jquery.dataTables.min.js
475
476
  - assets/js/jquery.min.js