jekyll-rtd-theme 1.1.0 → 1.1.5

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: b629411d3d74c24a69ba9ef73ece57bd3c002921eed7f78894dba51b71a24199
4
- data.tar.gz: 5b8f754497e66c35af98199a8f077e207fd259bf29c6e74111aa152b3c6323d1
3
+ metadata.gz: 0fe2af4a55863950ce67d80e629b1b91e87a7381598baf0a39e66d8d577e48b3
4
+ data.tar.gz: d7735dedfcf430ab8cbb1d6f4708aa2ae036d4faff449cc8af18b9e4b5d3e4f2
5
5
  SHA512:
6
- metadata.gz: 3fb991c0098234c7d1c551c912d693a583bf84a507817722c38f89ca91b4812aa38919825726a8bf26fd51d81579e1a0e87e7ec3cc3897355edeca2418843e98
7
- data.tar.gz: d717925336199e3242e956b6108d9f36e438cff3f291891b27ffde8385598ed72ef7a010d145e6230125c7492adfd367021c186ddb393779b90809bcb2414d5a
6
+ metadata.gz: cd1194ed2522bb51043228ca16f92cc44fb79eb4cb5e12806a6f655b2d04a264cc57efa0382ade4e08887dd6729e8ff0f3e23e9979a173b5abe20935f7662067
7
+ data.tar.gz: ef92a03c1da2d455219a4f65f3a89d352ecbc4379fe3e24882f14381bb6e5c8d53687a60c0b90370476f63f2761ef6b80622f9fd805601c95409f181a967752a
data/README.md CHANGED
@@ -5,31 +5,35 @@
5
5
  [![](https://data.jsdelivr.com/v1/package/gh/rundocs/jekyll-rtd-theme/badge)][cdn]
6
6
  [![](https://www.codefactor.io/repository/github/rundocs/jekyll-rtd-theme/badge)][codefactor]
7
7
  [![](https://img.shields.io/badge/featured%20on-JekyllThemes-red.svg)](https://jekyll-themes.com)
8
+ [![](https://badges.gitter.im/rundocs/jekyll-rtd-theme.svg)][gitter]
8
9
 
9
- Just another documentation theme compatible with GitHub Pages, based on sphinx_rtd_theme
10
+ GitHub-flavored docs theme for Jekyll, based on sphinx_rtd_theme
10
11
 
11
- ![](https://user-images.githubusercontent.com/68011645/89026666-ad3a8680-d35b-11ea-9f4b-d3fe26ae12ed.png)
12
+ <img class="shadow-box" width="50%" alt="jekyll-rtd-theme" src="https://user-images.githubusercontent.com/68011645/89026666-ad3a8680-d35b-11ea-9f4b-d3fe26ae12ed.png">
13
+
14
+ ## Quick start
15
+ ```yml
16
+ remote_theme: rundocs/jekyll-rtd-theme
17
+ ```
18
+ You can [generate](https://github.com/rundocs/starter-slim/generate) with the same files and folders from [rundocs/starter-slim](https://github.com/rundocs/starter-slim/)
12
19
 
13
20
  ## Features
14
- - Automatically generate sidebar based on directory
15
- - Only need one file `_config.yml` to configure site
16
- - Search engine optimized
21
+ - Automatically generate nested sidebar based on directory
17
22
  - Multi-language supported
23
+ - Search engine optimized
18
24
  - Document search (RegExp supported)
19
25
  - Support third-party comments
20
- - Google, Baidu, CNZZ Analytics support
21
-
22
- ## Roadmap
23
- See the [open issues](https://github.com/rundocs/jekyll-rtd-theme/issues) for a list of proposed features (and known issues)
26
+ - Google, Baidu, CNZZ Analytics supported
27
+ - Just need one file `_config.yml` to configure site
24
28
 
25
29
  ## Documents
26
- You can view theme related [tests](https://jekyll-rtd-theme.rundocs.io), For full documentation, please refer to [https://rundocs.io](https://rundocs.io)
30
+ For full documentation, please refer to [rundocs.io](https://rundocs.io/), You can also view [the theme related tests documentation](https://rundocs.github.io/jekyll-rtd-theme)
27
31
 
28
- ## The License
32
+ ## License
29
33
  The theme is available as open source under the terms of the [MIT License](https://github.com/rundocs/jekyll-rtd-theme/blob/master/LICENSE).
30
34
 
31
-
32
35
  [repository]: https://github.com/rundocs/jekyll-rtd-theme
33
36
  [rubygem]: https://rubygems.org/gems/jekyll-rtd-theme
34
37
  [cdn]: https://cdn.jsdelivr.net/gh/rundocs/jekyll-rtd-theme/
35
38
  [codefactor]: https://www.codefactor.io/repository/github/rundocs/jekyll-rtd-theme
39
+ [gitter]: https://gitter.im/rundocs/jekyll-rtd-theme?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge
@@ -2,13 +2,17 @@
2
2
  <dt>{{ __statistics }}</dt>
3
3
  <dd>
4
4
  <a href="https://github.com/rundocs/analytics" target="_blank">
5
- {{ __total_visits }} <span id="counter"></span> <i class="fa fa-eye"></i>
5
+ {{ __total_visits }} <span id="counter"><span class="progress"></span></span> <i class="fa fa-eye"></i>
6
6
  </a>
7
7
  </dd>
8
8
  </dl>
9
9
 
10
10
  <script>
11
11
  $(document).ready(function() {
12
- $.getJSON("https://rundocs-analytics.glitch.me/analytics?host=" + location.host, (data) => $("#counter").html(data.count));
12
+ let analytics = new URL("https://rundocs-analytics.glitch.me/collect?v={{ version }}&lang={{ lang }}");
13
+ analytics.searchParams.append("user_lang", navigator.language);
14
+ analytics.searchParams.append("host", location.host);
15
+ analytics.searchParams.append("platform", navigator.platform);
16
+ $.getJSON(analytics.toString(), (data) => $("#counter").html(data.count));
13
17
  });
14
18
  </script>
@@ -1,21 +1,75 @@
1
1
  $(document).ready(function() {
2
- let highlight = new URL(location.href).searchParams.get("highlight");
2
+ function set(name, value) {
3
+ return localStorage.setItem(name, value);
4
+ }
5
+
6
+ function get(name) {
7
+ return localStorage.getItem(name) || false;
8
+ }
9
+
10
+ /* anchors */
11
+ anchors.add();
3
12
 
4
- SphinxRtdTheme.Navigation.reset = function() {
5
- const link = $(".wy-menu-vertical").find(`[href="${location.pathname}"]`);
6
- if (link.length > 0) {
7
- $(".wy-menu-vertical .current").removeClass("current");
8
- link.addClass("current");
9
- link.closest("li.toctree-l1").parent().addClass("current");
10
- link.closest("li.toctree-l1").addClass("current");
11
- link.closest("li.toctree-l2").addClass("current");
12
- link.closest("li.toctree-l3").addClass("current");
13
- link.closest("li.toctree-l4").addClass("current");
14
- link.closest("li.toctree-l5").addClass("current");
13
+ /* generate content TOC (id from anchors) */
14
+ $(".wy-menu-vertical li.current").append('<ul class="content-toc"></ul>').html(function() {
15
+ let level = parseInt(this.dataset.level);
16
+ let temp = 0;
17
+ let stack = [$(this).find(".content-toc")];
18
+
19
+ $(".document").find("h2,h3,h4,h5,h6").each(function() {
20
+ let anchor = $("<a/>").addClass("reference internal").text($(this).text()).attr("href", `#${this.id}`);
21
+ let tagLevel = parseInt(this.tagName.slice(1)) - 1;
22
+
23
+ if (tagLevel > temp) {
24
+ let parent = stack[0].children("li:last")[0];
25
+ if (parent) {
26
+ stack.unshift($("<ul/>").appendTo(parent));
27
+ }
28
+ } else {
29
+ stack.splice(0, Math.min(temp - tagLevel, Math.max(stack.length - 1, 0)));
30
+ }
31
+ temp = tagLevel;
32
+
33
+ $("<li/>").addClass(`toctree-l${level + tagLevel}`).append(anchor).appendTo(stack[0]);
34
+ });
35
+ /* if TOC is empty remove ul */
36
+ if (!stack[0].html()) {
37
+ stack[0].remove();
15
38
  }
16
- };
39
+ });
40
+
41
+ /* display current file in TOC */
42
+ let link = $(".wy-menu-vertical").find(`[href="${location.pathname}"]`);
43
+ if (link.length > 0) {
44
+ link.closest("li.toctree-l1").parent().addClass("current");
45
+ link.closest("li.toctree-l1").addClass("current");
46
+ link.closest("li.toctree-l2").addClass("current");
47
+ link.closest("li.toctree-l3").addClass("current");
48
+ link.closest("li.toctree-l4").addClass("current");
49
+ link.closest("li.toctree-l5").addClass("current");
50
+ }
51
+
52
+ /* restore sidebar scroll within 10 minutes */
53
+ let scroll = get("scroll");
54
+ let scrollTime = get("scrollTime");
55
+ let scrollHost = get("scrollHost");
56
+
57
+ if (scroll && scrollTime && scrollHost) {
58
+ if (scrollHost == location.host && (Date.now() - scrollTime < 6e5)) {
59
+ $(".wy-side-scroll").scrollTop(scroll);
60
+ }
61
+ }
62
+ $(".wy-side-scroll").scroll(function() {
63
+ set("scroll", this.scrollTop);
64
+ set("scrollTime", Date.now());
65
+ set("scrollHost", location.host);
66
+ });
67
+
68
+ /* native nav */
17
69
  SphinxRtdTheme.Navigation.enable(true);
18
70
 
71
+ /* search highlight */
72
+ let highlight = new URL(location.href).searchParams.get("highlight");
19
73
  if (highlight) {
20
74
  $(".section").find("*").each(function() {
21
75
  try {
@@ -23,7 +77,7 @@ $(document).ready(function() {
23
77
  $(this).addClass("highlighted-box");
24
78
  }
25
79
  } catch (e) {
26
- feedback(["highlight", e.message]);
80
+ debug(e.message);
27
81
  }
28
82
  });
29
83
  $(".section").find(".highlighted-box").each(function() {
@@ -32,9 +86,9 @@ $(document).ready(function() {
32
86
  }
33
87
  });
34
88
  }
35
- for (let item in ui.admonition) {
36
- let content = $(`.language-${item}`).html();
37
- $(`.language-${item}`).replaceWith(`<div class="admonition ${item}"><p class="admonition-title">${ui.admonition[item]}</p><p>${content}</p></div>`);
38
- }
39
- anchors.add();
40
- });
89
+
90
+ /* admonition */
91
+ $(".admonition-title").each(function() {
92
+ $(this).html(ui.admonition[$(this).attr("ui")]);
93
+ });
94
+ });
@@ -13,7 +13,7 @@ function search(data) {
13
13
  $(".search").empty();
14
14
  $(".search-summary").html(i18n[lang].search_results_not_found);
15
15
  $("#search-results h2").html(i18n[lang].search_results);
16
- return feedback(["search", e.message]);
16
+ return debug(e.message);
17
17
  }
18
18
 
19
19
  function slice(content, min, max) {
@@ -32,7 +32,7 @@ function search(data) {
32
32
  }
33
33
  }
34
34
  } catch (e) {
35
- feedback(["search", e.message]);
35
+ debug(e.message);
36
36
  }
37
37
  try {
38
38
  if (page.content) {
@@ -40,7 +40,7 @@ function search(data) {
40
40
  content = page.content.match(regexp);
41
41
  }
42
42
  } catch (e) {
43
- feedback(["search", e.message]);
43
+ debug(e.message);
44
44
  }
45
45
  if (title || content) {
46
46
  let result = [`<a href="${ui.baseurl}${page.url}?highlight=${text}">${page.title}</a>`];
@@ -72,5 +72,5 @@ function search(data) {
72
72
  }
73
73
 
74
74
  $(document).ready(function() {
75
- $.ajax(`${ui.baseurl}/pages.json`).done(search).fail((xhr, message) => feedback(["search", message]));
75
+ $.ajax(`${ui.baseurl}/pages.json`).done(search).fail((xhr, message) => debug(message));
76
76
  });
@@ -0,0 +1,33 @@
1
+ self.addEventListener("activate", function(event) {
2
+ let cacheWhitelist = ["rundocs-{{ version }}"];
3
+
4
+ event.waitUntil(
5
+ caches.keys().then(function(keyList) {
6
+ return Promise.all(keyList.map(function(key) {
7
+ if (cacheWhitelist.indexOf(key) === -1) {
8
+ return caches.delete(key);
9
+ }
10
+ }));
11
+ })
12
+ );
13
+ });
14
+
15
+ self.addEventListener("fetch", function(e) {
16
+ if (/^https:\/\/cdn\.jsdelivr\.net\/gh\/rundocs\/jekyll-rtd-theme@.+/.exec(e.request.url)) {
17
+ e.respondWith(
18
+ caches.match(e.request).then(function(resp) {
19
+ if (resp !== undefined) {
20
+ return resp;
21
+ } else {
22
+ return fetch(e.request, { cache: "no-store" }).then(function(resp) {
23
+ let clone = resp.clone();
24
+ caches.open("rundocs-{{ version }}").then(function(cache) {
25
+ cache.put(e.request, clone);
26
+ });
27
+ return resp;
28
+ }).catch(console.log);
29
+ }
30
+ })
31
+ );
32
+ }
33
+ });
@@ -1,18 +1,22 @@
1
1
  {%- include reset/workdir.liquid %}
2
2
 
3
+ {% comment %} display the directory name {% endcomment %}
3
4
  {%- assign dir = site_pages | where: "url", workdir | first -%}
4
5
  {%- if site_lang != lang -%}
6
+ {% comment %} current in language directory (level-1) {% endcomment %}
5
7
  {%- assign workdir_level = workdir_level | minus: 1 -%}
6
8
  {%- endif -%}
7
9
  {%- if workdir_level == 2 %}
10
+ {% comment %} display the root sub-directory as "p.caption" {% endcomment %}
8
11
  <p class="caption"><span class="caption-text">{{ dir.title | default: dir.url }}</span></p>
9
12
  {%- else %}
10
13
  <a class="reference internal" href="{{ dir.url | relative_url }}">{{ dir.title | default: dir.url }}</a>
11
14
  {%- endif -%}
12
15
 
13
16
  <ul>
17
+ {% comment %} list file {% endcomment %}
14
18
  {%- for item in workdir_files -%}
15
- {%- assign level = item.dir | append: "temp/" | split: "/" | size | minus: 2 -%}
19
+ {%- assign level = item.dir | append: "temp" | replace_first: "/", "" | split: "/" | size | minus: 1 -%}
16
20
  {%- capture current -%}
17
21
  {%- if page.url == item.url %}current{% endif -%}
18
22
  {%- endcapture %}
@@ -20,7 +24,7 @@
20
24
  {%- assign level = level | minus: 1 -%}
21
25
  {%- endif -%}
22
26
 
23
- <li class="toctree-l{{ level }} {{ current }}">
27
+ <li class="toctree-l{{ level }} {{ current }}" data-sort="{{ item.sort }}" data-level="{{ level }}">
24
28
  <a class="reference internal {{ current }}" href="{{ item.url | relative_url }}">
25
29
  {%- if item.sort and site.show_sorted != false -%}
26
30
  {{ item.sort }}. {{ item.title | default: item.url }}
@@ -30,8 +34,10 @@
30
34
  </a>
31
35
  </li>
32
36
  {%- endfor -%}
37
+
38
+ {% comment %} list dirs {% endcomment %}
33
39
  {%- for workdir in workdir_dirs -%}
34
- {%- assign level = workdir | append: "temp/" | split: "/" | size | minus: 3 %}
40
+ {%- assign level = workdir | append: "temp" | replace_first: "/", "" | split: "/" | size | minus: 2 %}
35
41
  {%- if site_lang != lang -%}
36
42
  {%- assign level = level | minus: 1 -%}
37
43
  {%- endif -%}
File without changes
File without changes
@@ -32,6 +32,6 @@
32
32
  </div>
33
33
  {%- endif -%}
34
34
  <div role="contentinfo" class="copyright rundocs">
35
- <p>Powered by <a href="https://rundocs.io">rundocs.io</a> using the jekyll docs theme <a href="https://jekyll-rtd-theme.rundocs.io">jekyll-rtd-theme</a></p>
35
+ <p>Powered by <a href="https://rundocs.io">rundocs.io</a> using the jekyll docs theme <a href="https://rundocs.github.io/jekyll-rtd-theme">jekyll-rtd-theme</a></p>
36
36
  </div>
37
37
  </footer>
@@ -0,0 +1,29 @@
1
+ {% comment %} Spanish {% endcomment %}
2
+ {%- assign __github = "Github" -%}
3
+ {%- assign __homepage = "Página principal" -%}
4
+ {%- assign __issues = "Cuestiones" -%}
5
+ {%- assign __download = "Descargar" -%}
6
+ {%- assign __plugins = "Complementos temáticos" -%}
7
+ {%- assign __translations = "Traducciones" -%}
8
+ {%- assign __statistics = "Estadísticas" -%}
9
+ {%- assign __total_visits = "Visitas totales:" -%}
10
+
11
+ {%- assign __note = "Observaciones" -%}
12
+ {%- assign __tip = "Consejos" -%}
13
+ {%- assign __warning = "Advertencia" -%}
14
+ {%- assign __danger = "Peligro" -%}
15
+
16
+ {%- assign __next = "Siguiente página" -%}
17
+ {%- assign __previous = "Pagina anterior" -%}
18
+ {%- assign __copyright = "Derechos de autor" -%}
19
+ {%- assign __revision = "Revisión" -%}
20
+
21
+ {%- assign __404 = "404" -%}
22
+ {%- assign __not_found = "¡Esta página aún no existe!" -%}
23
+
24
+ {%- assign __searching = "Buscando" -%}
25
+ {%- assign __search = "Buscar" -%}
26
+ {%- assign __search_docs = "Buscar documentos" -%}
27
+ {%- assign __search_results = "Resultados de la búsqueda" -%}
28
+ {%- assign __search_results_found = "Búsqueda finalizada, se encontraron # páginas que coinciden con la consulta de búsqueda." -%}
29
+ {%- assign __search_results_not_found = "Su búsqueda no coincide con ningún documento, asegúrese de que todos los caracteres estén escritos correctamente." -%}
@@ -0,0 +1,29 @@
1
+ {% comment %} Swedish {% endcomment %}
2
+ {%- assign __github = "Github" -%}
3
+ {%- assign __homepage = "Hemsida" -%}
4
+ {%- assign __issues = "frågor" -%}
5
+ {%- assign __download = "Ladda ner" -%}
6
+ {%- assign __plugins = "Tema Plugins" -%}
7
+ {%- assign __translations = "översättningar" -%}
8
+ {%- assign __statistics = "Statistik" -%}
9
+ {%- assign __total_visits = "Totalt antal besök:" -%}
10
+
11
+ {%- assign __note = "Anmärkningar" -%}
12
+ {%- assign __tip = "tips" -%}
13
+ {%- assign __warning = "Varning" -%}
14
+ {%- assign __danger = "Fara" -%}
15
+
16
+ {%- assign __next = "Nästa sida" -%}
17
+ {%- assign __previous = "Föregående sida" -%}
18
+ {%- assign __copyright = "upphovsrätt" -%}
19
+ {%- assign __revision = "Revision" -%}
20
+
21
+ {%- assign __404 = "404" -%}
22
+ {%- assign __not_found = "Den här sidan finns inte ännu!" -%}
23
+
24
+ {%- assign __searching = "Sökande" -%}
25
+ {%- assign __search = "Sök" -%}
26
+ {%- assign __search_docs = "Sök i dokument" -%}
27
+ {%- assign __search_results = "sökresultat" -%}
28
+ {%- assign __search_results_found = "Sökningen är klar, hittade # sida (er) som matchar sökfrågan." -%}
29
+ {%- assign __search_results_not_found = "Din sökning matchade inga dokument, se till att alla tecken stavas korrekt!" -%}
@@ -1,13 +1,14 @@
1
1
  {%- assign description = content | strip_html | split: " " | join: " " | escape | truncate: 150 -%}
2
- {%- assign version = "1.1.0" -%}
2
+ {%- assign version = "1.1.5" -%}
3
3
  {%- assign addons = "github, i18n, plugins, analytics" | split: ", " -%}
4
4
 
5
- {%- assign schema_lastmod = site.time | date_to_xmlschema -%}
6
- {%- assign schema_url = page.url | absolute_url | replace: 'http://', 'https://' | xml_escape -%}
5
+ {%- assign schema_date = page.date | default: site.time | date_to_xmlschema -%}
6
+ {%- assign schema_modi = site.time | date_to_xmlschema -%}
7
+ {%- assign schema_surl = page.url | absolute_url | xml_escape -%}
7
8
 
8
9
  {% comment %} scss {% endcomment %}
9
10
  {%- capture site_scss -%}
10
- @import "site.scss";
11
+ @import "jekyll-rtd-theme.scss";
11
12
  {% if site.fluid %}@import "fluid.scss";{% endif %}
12
13
  {% include assets/custom.scss %} {{ site.scss }}
13
14
  {%- endcapture -%}
@@ -21,25 +22,15 @@
21
22
 
22
23
  {% comment %} github-metadata {% endcomment %}
23
24
  {%- if site.github_metadata != false -%}
24
- {%- if jekyll.environment == "production" -%}
25
- {%- assign author = site.author | default: site.github.owner_name -%}
26
- {%- assign branch = site.github.source.branch -%}
27
- {%- assign commit = site.github.build_revision | slice: 0, 7 -%}
28
- {%- assign repository_url = site.github.repository_url -%}
29
- {%- assign issues_url = site.github.issues_url -%}
30
- {%- assign zip_url = site.github.zip_url -%}
31
- {%- capture github_edit_link %}{% github_edit_link %}{% endcapture -%}
32
- {%- else -%}
33
- {%- assign author = site.author | default: "[author]" -%}
34
- {%- assign branch = "[branch]" -%}
35
- {%- assign commit = "[commit]" -%}
36
- {%- assign repository_url = "#" -%}
37
- {%- assign issues_url = "#" -%}
38
- {%- assign zip_url = "#" -%}
39
- {%- assign github_edit_link = "#" -%}
40
- {%- endif -%}
25
+ {%- assign author = site.author | default: site.github.owner_name -%}
26
+ {%- assign branch = site.github.source.branch -%}
27
+ {%- assign commit = site.github.build_revision | slice: 0, 7 -%}
28
+ {%- assign repository_url = site.github.repository_url -%}
29
+ {%- assign issues_url = site.github.issues_url -%}
30
+ {%- assign zip_url = site.github.zip_url -%}
31
+ {%- capture github_edit_link %}{% github_edit_link %}{% endcapture -%}
41
32
  {%- else -%}
42
- {%- assign author = site.author | default: "[author]" -%}
33
+ {%- assign author = site.author -%}
43
34
  {%- assign branch = "" -%}
44
35
  {%- assign commit = "" -%}
45
36
  {%- assign repository_url = "" -%}
@@ -67,8 +58,8 @@
67
58
  {% comment %} content {% endcomment %}
68
59
  {%- assign content = content
69
60
  | replace: '’', "'"
70
- | replace: '<pre class="highlight"><code>', "<pre>"
71
- | replace: '<pre><code class=', "<pre class="
61
+ | replace: '<pre class="highlight"><code>', '<pre class="notranslate">'
62
+ | replace: '<pre><code class="', '<pre class="notranslate '
72
63
  | replace: "</code></pre>", "</pre>"
73
64
  | replace: '<code class="language-plaintext highlighter-rouge">', '<code class="literal">'
74
65
  | replace: "<table>", '<table class="docutils align-default">' -%}
@@ -8,12 +8,12 @@
8
8
  {%- endif -%}
9
9
  {%- endif -%}
10
10
 
11
- {%- assign workdir_level = workdir | append: "temp/" | split: "/" | size | minus: 1 -%}
11
+ {%- assign workdir_level = workdir | append: "temp" | replace_first: "/", "" | split: "/" | size -%}
12
12
  {%- assign workdir_files = site_files | where_exp: "item", "item.dir == workdir" -%}
13
13
 
14
14
  {%- capture items -%}
15
15
  {%- for item in site_dirs -%}
16
- {%- assign current_m1 = item.dir | append: "temp/" | split: "/" | size | minus: 2 -%}
16
+ {%- assign current_m1 = item.dir | append: "temp" | replace_first: "/", "" | split: "/" | size | minus: 1 -%}
17
17
  {%- if workdir_level == current_m1 -%}
18
18
  {%- assign temp = workdir | append: "@@" -%}
19
19
  {%- assign dir = item.dir | replace: workdir, temp | split: "@@" | first -%}