rawfeed 0.1.4 → 0.2.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 +4 -4
- data/LICENSE.txt +20 -21
- data/README.md +12 -130
- data/_data/options.yml +270 -0
- data/_data/resume.yml +8 -8
- data/_includes/alert +3 -1
- data/_includes/chart +13 -32
- data/_includes/details +1 -57
- data/_includes/image +12 -4
- data/_includes/layout/blog_search.html +6 -4
- data/_includes/layout/data.liquid +21 -3
- data/_includes/layout/disqus.html +12 -26
- data/_includes/layout/footer.html +33 -17
- data/_includes/layout/giscus.html +27 -19
- data/_includes/layout/head.html +41 -41
- data/_includes/layout/header.html +127 -101
- data/_includes/layout/maintenance.html +6 -10
- data/_includes/layout/paginator.html +6 -4
- data/_includes/socials +7 -5
- data/_includes/tabs +1 -94
- data/_includes/toc +11 -194
- data/_includes/video +4 -1
- data/_layouts/blog.html +8 -7
- data/_layouts/contact.html +90 -196
- data/_layouts/default.html +42 -341
- data/_layouts/error.html +6 -4
- data/_layouts/home.html +45 -36
- data/_layouts/licenses.html +10 -0
- data/_layouts/page.html +4 -4
- data/_layouts/pixel.html +48 -0
- data/_layouts/pixels.html +71 -1
- data/_layouts/post.html +28 -29
- data/_layouts/resume.html +41 -34
- data/_layouts/tag.html +14 -3
- data/_layouts/tag_posts.html +3 -3
- data/_sass/base/_index.scss +39 -3
- data/_sass/components/_badges.scss +10 -0
- data/_sass/components/_markdown.scss +8 -5
- data/_sass/includes/_footer.scss +5 -2
- data/_sass/includes/_header.scss +23 -19
- data/_sass/includes/_highlight.scss +20 -7
- data/_sass/includes/_maintenance.scss +2 -3
- data/_sass/includes/_terminal.scss +35 -12
- data/_sass/layouts/_blog.scss +13 -9
- data/_sass/layouts/_contact.scss +6 -5
- data/_sass/layouts/_default.scss +5 -5
- data/_sass/layouts/_index.scss +3 -0
- data/_sass/layouts/_licenses.scss +7 -0
- data/_sass/layouts/_page.scss +1 -0
- data/_sass/layouts/_pixel.scss +61 -0
- data/_sass/layouts/_pixels.scss +86 -0
- data/_sass/layouts/_post.scss +4 -11
- data/_sass/layouts/_resume.scss +16 -3
- data/_sass/layouts/_tag-posts.scss +1 -2
- data/_sass/layouts/_tag.scss +12 -1
- data/_sass/main.scss +16 -1
- data/_sass/theme/_dark.scss +8 -1
- data/_sass/theme/_light.scss +8 -1
- data/assets/images/blog/.keep +0 -0
- data/assets/images/pixels/luffy.jpg +0 -0
- data/assets/js/blog.coffee +102 -0
- data/assets/js/contact.coffee +105 -0
- data/assets/js/default.coffee +172 -0
- data/assets/js/discus.coffee +30 -0
- data/assets/js/fallback/README.md +3 -0
- data/assets/js/fallback/blog.js +113 -0
- data/assets/js/fallback/contact.js +116 -0
- data/assets/js/{default.js → fallback/default.js} +50 -0
- data/assets/js/fallback/discus.js +32 -0
- data/{_includes/layout/google_analytics.html → assets/js/fallback/google_analytics.js} +7 -3
- data/assets/js/fallback/home.js +275 -0
- data/assets/js/fallback/no_inframe.js +4 -0
- data/assets/js/fallback/page.js +423 -0
- data/assets/js/fallback/pixels.js +1 -0
- data/assets/js/fallback/resume.js +13 -0
- data/assets/js/fallback/tags.js +1 -0
- data/{_includes/layout/capture_scripts.liquid → assets/js/fallback/theme_load.js} +0 -2
- data/assets/js/google_analytics.coffee +24 -0
- data/assets/js/home.coffee +250 -0
- data/assets/js/no_inframe.coffee +9 -0
- data/assets/js/page.coffee +379 -0
- data/assets/js/pixels.coffee +2 -0
- data/assets/js/resume.coffee +9 -0
- data/assets/js/tags.coffee +2 -0
- data/assets/js/theme_load.coffee +6 -0
- data/assets/json/blog_search.json +2 -2
- data/lib/rawfeed/author.rb +59 -0
- data/lib/rawfeed/csp_filters.rb +3 -0
- data/lib/rawfeed/draft.rb +1 -1
- data/lib/rawfeed/layout.rb +7 -0
- data/lib/rawfeed/page.rb +2 -2
- data/lib/rawfeed/pixel.rb +32 -0
- data/lib/rawfeed/post.rb +2 -2
- data/lib/rawfeed/resume.rb +1 -0
- data/lib/rawfeed/typescript_liquid.rb +172 -0
- data/lib/rawfeed/utils.rb +1 -0
- data/lib/rawfeed/version.rb +1 -1
- data/lib/rawfeed/with_class.rb +20 -0
- data/lib/rawfeed.rb +5 -1
- metadata +44 -12
- data/assets/js/avatar.js +0 -59
- data/assets/js/terminal.js +0 -18
| @@ -6,138 +6,164 @@ | |
| 6 6 | 
             
              {%- if item.scope.path == "_posts" -%}
         | 
| 7 7 | 
             
                {%- assign blog_page = item.values.published -%}
         | 
| 8 8 | 
             
              {%- endif -%}
         | 
| 9 | 
            +
              {%- if item.scope.path == "_pixels" -%}
         | 
| 10 | 
            +
                {%- assign pixels_page = item.values.published -%}
         | 
| 11 | 
            +
              {%- endif -%}
         | 
| 9 12 | 
             
            {%- endfor -%}
         | 
| 10 13 |  | 
| 14 | 
            +
            {%- assign menu_separator = default_.separator -%}
         | 
| 15 | 
            +
             | 
| 16 | 
            +
            <!-- modal avatar -->
         | 
| 11 17 | 
             
            <div class="modal fade" id="avatarModal" tabindex="-1" aria-hidden="true">
         | 
| 12 18 | 
             
              <div class="modal-dialog modal-dialog-centered">
         | 
| 13 19 | 
             
                <div class="modal-content bg-transparent border-0 shadow-none">
         | 
| 14 20 | 
             
                  <div class="modal-body d-flex justify-content-center">
         | 
| 15 | 
            -
                    <img id="modalAvatar" class="avatar-img" src="" alt="">
         | 
| 21 | 
            +
                    <img id="modalAvatar" class="avatar-img{% if default_.rounding %} rounding{% endif %}" src="" alt="">
         | 
| 16 22 | 
             
                  </div>
         | 
| 17 23 | 
             
                </div>
         | 
| 18 24 | 
             
              </div>
         | 
| 19 25 | 
             
            </div>
         | 
| 26 | 
            +
            <!-- modal avatar -->
         | 
| 20 27 |  | 
| 21 | 
            -
            <header class=" | 
| 22 | 
            -
              <div class=" | 
| 23 | 
            -
             | 
| 24 | 
            -
             | 
| 25 | 
            -
             | 
| 26 | 
            -
             | 
| 27 | 
            -
             | 
| 28 | 
            -
             | 
| 29 | 
            -
             | 
| 30 | 
            -
             | 
| 31 | 
            -
             | 
| 32 | 
            -
             | 
| 33 | 
            -
             | 
| 34 | 
            -
             | 
| 35 | 
            -
             | 
| 36 | 
            -
             | 
| 37 | 
            -
             | 
| 38 | 
            -
             | 
| 39 | 
            -
             | 
| 40 | 
            -
             | 
| 41 | 
            -
             | 
| 42 | 
            -
             | 
| 43 | 
            -
             | 
| 44 | 
            -
             | 
| 45 | 
            -
             | 
| 46 | 
            -
                   | 
| 47 | 
            -
                   | 
| 48 | 
            -
             | 
| 49 | 
            -
             | 
| 50 | 
            -
             | 
| 51 | 
            -
                     | 
| 52 | 
            -
             | 
| 53 | 
            -
             | 
| 54 | 
            -
             | 
| 55 | 
            -
             | 
| 56 | 
            -
             | 
| 57 | 
            -
                           | 
| 58 | 
            -
             | 
| 59 | 
            -
             | 
| 60 | 
            -
                            </div>
         | 
| 61 | 
            -
                            <div class="avatar-back">
         | 
| 62 | 
            -
                              <img class="avatar-img" src="{{ avatar_path_back | relative_url }}" alt="{{ site.title }}">
         | 
| 63 | 
            -
                            </div>
         | 
| 28 | 
            +
            <header class="header" style="max-width: {{ header_.width | default: "860" }}px !important; font-family: {{ default_.font.style }} !important; font-size: {{ default_.font.size }} !important; letter-spacing:{{ default_.font.spacing }} !important;">
         | 
| 29 | 
            +
              <div class="row ">
         | 
| 30 | 
            +
             | 
| 31 | 
            +
                <!-- column home -->
         | 
| 32 | 
            +
                <div class="col-sm-3 d-flex flex-column justify-content-end header__column-home">
         | 
| 33 | 
            +
                  {%- if index.layout == "blog" -%}
         | 
| 34 | 
            +
                    <span>[{{ header_.menu.home.emoji | with_class: "spacer" }}<a class="{% if page.url == "/" or page.url == "/index.html" %}menu-active{% endif %}" href="{{home_url}}">{{ header_.menu.blog.title | default: "blog" | downcase }}</a> ]</span>
         | 
| 35 | 
            +
                  {%- else -%}
         | 
| 36 | 
            +
                    <span>[{{ header_.menu.home.emoji | with_class: "spacer" }}<a class="{% if page.url == "/" or page.url == "/index.html" %}menu-active{% endif %}" href="{{home_url}}">{{ header_.menu.home.title | default: "home" | downcase }}</a> ]</span>
         | 
| 37 | 
            +
                  {%- endif -%}
         | 
| 38 | 
            +
                </div>
         | 
| 39 | 
            +
                <!-- column home -->
         | 
| 40 | 
            +
             | 
| 41 | 
            +
                <!-- column description -->
         | 
| 42 | 
            +
                <div class="col-sm-6 d-flex flex-column justify-content-end">
         | 
| 43 | 
            +
                  <span class="title">{{ header_.title | default: theme_name }}</span>
         | 
| 44 | 
            +
                  <small class="description">
         | 
| 45 | 
            +
                    {{ header_.description | default: "A raw Jekyll theme for minimalists" }}
         | 
| 46 | 
            +
                  </small>
         | 
| 47 | 
            +
                </div>
         | 
| 48 | 
            +
                <!-- column description -->
         | 
| 49 | 
            +
             | 
| 50 | 
            +
                <!-- column avatar -->
         | 
| 51 | 
            +
                <div class="col-sm-3 d-flex justify-content-end avatar">
         | 
| 52 | 
            +
                  {%- assign images_ = site.static_files | map: "path" -%}
         | 
| 53 | 
            +
                  {%- assign avatar_path_light = "/assets/images/" | append: header_.avatar.image.front.light -%}
         | 
| 54 | 
            +
                  {%- assign avatar_path_dark = "/assets/images/" | append: header_.avatar.image.front.dark -%}
         | 
| 55 | 
            +
                  {%- assign avatar_path_back = "/assets/images/" | append: header_.avatar.image.back -%}
         | 
| 56 | 
            +
             | 
| 57 | 
            +
                  {%- if images_ contains avatar_path_light and images_ contains avatar_path_dark and images_ contains avatar_path_back -%}
         | 
| 58 | 
            +
                    <div class="avatar-wrapper">
         | 
| 59 | 
            +
             | 
| 60 | 
            +
                      <div class="avatar-flipper light-theme {% if header_.avatar.open %}avatar-flipper__open-true{% endif %}{% if header_.avatar.flip %} can-flip{% endif %}">
         | 
| 61 | 
            +
                        <div class="avatar-card">
         | 
| 62 | 
            +
                          <div class="avatar-front">
         | 
| 63 | 
            +
                            <img id="avatarImgLight" class="avatar-img{% if default_.rounding %} rounding{% endif %}" src="{{ avatar_path_light | relative_url }}" alt="{{ site_title }}">
         | 
| 64 | 
            +
                          </div>
         | 
| 65 | 
            +
                          <div class="avatar-back">
         | 
| 66 | 
            +
                            <img class="avatar-img{% if default_.rounding %} rounding{% endif %}" src="{{ avatar_path_back | relative_url }}" alt="{{ site_title }}">
         | 
| 64 67 | 
             
                          </div>
         | 
| 65 68 | 
             
                        </div>
         | 
| 69 | 
            +
                      </div>
         | 
| 66 70 |  | 
| 67 | 
            -
             | 
| 68 | 
            -
             | 
| 69 | 
            -
             | 
| 70 | 
            -
             | 
| 71 | 
            -
             | 
| 72 | 
            -
             | 
| 73 | 
            -
             | 
| 74 | 
            -
                            </div>
         | 
| 71 | 
            +
                      <div class="avatar-flipper dark-theme {% if header_.avatar.open %} avatar-flipper__open-true{% endif %}{% if header_.avatar.flip %} can-flip{% endif %}">
         | 
| 72 | 
            +
                        <div class="avatar-card">
         | 
| 73 | 
            +
                          <div class="avatar-front">
         | 
| 74 | 
            +
                            <img id="avatarImgDark" class="avatar-img{% if default_.rounding %} rounding{% endif %}" src="{{ avatar_path_dark | relative_url }}" alt="{{ site_title }}">
         | 
| 75 | 
            +
                          </div>
         | 
| 76 | 
            +
                          <div class="avatar-back">
         | 
| 77 | 
            +
                            <img class="avatar-img{% if default_.rounding %} rounding{% endif %}" src="{{ avatar_path_back | relative_url }}" alt="{{ site_title }}">
         | 
| 75 78 | 
             
                          </div>
         | 
| 76 79 | 
             
                        </div>
         | 
| 77 | 
            -
             | 
| 78 80 | 
             
                      </div>
         | 
| 79 | 
            -
             | 
| 80 | 
            -
             | 
| 81 | 
            +
             | 
| 82 | 
            +
                    </div>
         | 
| 83 | 
            +
                  {%- endif -%}
         | 
| 81 84 | 
             
                </div>
         | 
| 85 | 
            +
                <!-- column avatar -->
         | 
| 82 86 |  | 
| 83 | 
            -
             | 
| 87 | 
            +
              </div>
         | 
| 88 | 
            +
             | 
| 89 | 
            +
              <!-- row separator -->
         | 
| 90 | 
            +
              <div class="row ">
         | 
| 91 | 
            +
                <div class="col-sm d-flex justify-content-center">
         | 
| 92 | 
            +
                  <div class="line-separator"></div>
         | 
| 93 | 
            +
                </div>
         | 
| 94 | 
            +
              </div>
         | 
| 95 | 
            +
              <!-- row separator -->
         | 
| 84 96 |  | 
| 85 | 
            -
             | 
| 86 | 
            -
             | 
| 97 | 
            +
              <!-- row menu -->
         | 
| 98 | 
            +
              <div class="row">
         | 
| 99 | 
            +
                <div class="col-sm d-flex justify-content-center menu">
         | 
| 87 100 | 
             
                  {%- if index.layout == "blog" -%}
         | 
| 88 | 
            -
                    < | 
| 89 | 
            -
                        | 
| 90 | 
            -
             | 
| 91 | 
            -
                    {% assign sorted_pages = site.pages | sort: 'order' %}
         | 
| 92 | 
            -
                      {%- for item in sorted_pages -%}
         | 
| 93 | 
            -
                        {%- if item.path contains '_pages/' and item.published != false -%}
         | 
| 94 | 
            -
                          {%- unless item.url contains "/tags/" or item.url contains "404.html" -%}
         | 
| 95 | 
            -
                            <a class="{% if page.url == item.url %}menu-active{% endif %}" href="{{ item.url | relative_url }}">{{ item.title | downcase }}</a><strong> . </strong>
         | 
| 96 | 
            -
                          {%- endunless -%}
         | 
| 97 | 
            -
                        {%- endif -%}
         | 
| 98 | 
            -
                      {%- endfor -%}
         | 
| 99 | 
            -
                      <a class="blog-menu__link" href="{{feed_url}}">{{ site.strings.menu.feed | default: "feed" }}</a><strong> . </strong>
         | 
| 100 | 
            -
                  {%- else index.layout == "home" -%}
         | 
| 101 | 
            -
                    {%- if page.url contains "/blog/" -%}
         | 
| 102 | 
            -
                      <span class="blog-menu">{{ site.strings.menu.blog.title }} »
         | 
| 103 | 
            -
                        <a class="blog-menu__link{% if page.url == "/blog/" or page.url == "/blog/index.html" or page.url contains "/blog/page/" %} menu-active{% endif %}" href="{{blog_url}}">{{site.strings.menu.blog.emoji}}{{site.strings.menu.blog.subtitle}}</a><strong> . </strong>{%- if site.blog.search.enable -%}{{site.strings.menu.search.emoji}}<a id="blog-search__btn" class="blog-menu__link" href="{{search_url}}">{{ site.strings.menu.search.text | default: "search" }}</a><strong> . </strong>{%- endif -%}{{site.strings.menu.tags.emoji}}<a class="blog-menu__link{% if page.url == "/blog/tags/" or page.url == "/blog/tags/index.html" %} menu-active{% endif %}" href="{{tags_url}}">{{ site.strings.menu.tags.text | default: "tags" }}</a><strong> . </strong>{{site.strings.menu.feed.emoji}}<a class="blog-menu__link" href="{{feed_url}}">{{ site.strings.menu.feed.title | default: "feed" }}</a><strong> . </strong>
         | 
| 104 | 
            -
                      </span>
         | 
| 105 | 
            -
                    {%- else -%}
         | 
| 106 | 
            -
                      {%- assign published_pages = site.pages | where_exp:"p","p.path contains '_pages/' and p.published" -%}
         | 
| 107 | 
            -
                      {%- if published_pages.size > 0 -%}
         | 
| 108 | 
            -
                        <span class="blog-menu">menu »</span> 
         | 
| 109 | 
            -
                      {%- endif -%}
         | 
| 110 | 
            -
                      {%- if site.pagination.enabled == true -%}
         | 
| 111 | 
            -
                        {%- if blog_page -%}
         | 
| 112 | 
            -
                          {{ site.strings.menu.blog.emoji }}<a href="{{blog_url}}">{{ site.strings.menu.blog.title }}</a><strong> . </strong>
         | 
| 113 | 
            -
                        {%- endif -%}
         | 
| 114 | 
            -
                        {% assign sorted_pages = site.pages | sort: 'order' %}
         | 
| 115 | 
            -
                        {%- for item in sorted_pages -%}
         | 
| 116 | 
            -
                          {%- if item.path contains '_pages/' and item.in_menu -%}
         | 
| 117 | 
            -
                            {%- unless item.url contains "blog" or item.url contains "404.html" -%}
         | 
| 118 | 
            -
                              {{ item.emoji }}<a class="{% if page.url == item.url %}menu-active{% endif %}" href="{{ item.url | relative_url }}">{{ item.title | downcase }}</a><strong> . </strong>
         | 
| 119 | 
            -
                            {%- endunless -%}
         | 
| 120 | 
            -
                          {%- endif -%}
         | 
| 121 | 
            -
                        {%- endfor -%}
         | 
| 122 | 
            -
                      {%- else -%}
         | 
| 123 | 
            -
                        {% assign sorted_pages = site.pages | sort: 'order' %}
         | 
| 101 | 
            +
                    <div>
         | 
| 102 | 
            +
                      {{ header_.menu.title }} » <div class="menu-wrap-link">{{ header_.menu.blog.search.emoji | with_class: "spacer" }}{%- if blog_.search.enable -%}<a id="blog-search__btn" href="{{search_url}}">{{ header_.menu.blog.search.title | default: "search" }}</a><strong class="separator">{{menu_separator}}</strong>{%- endif -%}</div><div class="menu-wrap-link">{{ header_.menu.blog.tags.emoji | with_class: "spacer" }}<a class="{% if page.url == "/blog/tags/" or page.url == "/blog/tags/index.html" %} menu-active{% endif %}" href="{{tags_url}}">{{ header_.menu.blog.tags.title | default: "tags" }}</a><strong class="separator">{{menu_separator}}</strong></div>
         | 
| 103 | 
            +
                      {%- assign sorted_pages = site.pages | sort: 'order' -%}
         | 
| 124 104 | 
             
                        {%- for item in sorted_pages -%}
         | 
| 125 105 | 
             
                          {%- if item.path contains '_pages/' and item.published != false and item.in_menu -%}
         | 
| 126 106 | 
             
                            {%- unless item.url contains "/tags/" or item.url contains "404.html" -%}
         | 
| 127 | 
            -
                              {{ item.emoji }}<a class="{% if page.url == item.url %}menu-active{% endif %}" href="{{ item.url | relative_url }}">{{ item.title | downcase }}</a><strong | 
| 107 | 
            +
                              <div class="menu-wrap-link">{{ item.emoji | with_class: "spacer" }}<a class="{% if page.url == item.url %}menu-active{% endif %}" href="{{ item.url | relative_url }}">{{ item.title | downcase }}</a><strong class="separator">{{menu_separator}}</strong></div>
         | 
| 128 108 | 
             
                            {%- endunless -%}
         | 
| 129 109 | 
             
                          {%- endif -%}
         | 
| 130 110 | 
             
                        {%- endfor -%}
         | 
| 131 | 
            -
             | 
| 111 | 
            +
                        <div class="menu-wrap-link">{{ header_.menu.blog.feed.emoji | with_class: "spacer" }}<a href="{{feed_url}}">{{ header_.menu.blog.feed.title | default: "feed" }}</a><strong class="separator">{{menu_separator}}</strong></div>
         | 
| 112 | 
            +
                    </div>
         | 
| 113 | 
            +
                  {%- else index.layout == "home" -%}
         | 
| 114 | 
            +
                    {%- if page.url contains "/blog/" -%}
         | 
| 115 | 
            +
                      <div>
         | 
| 116 | 
            +
                      {{ header_.menu.blog.title | replace: "/", "" | replace: "ls ", "" }} »
         | 
| 117 | 
            +
                        <div class="menu-wrap-link">{{ header_.menu.blog.emoji | with_class: "spacer" }}<a class="{% if page.url == "/blog/" or page.url == "/blog/index.html" or page.url contains "/blog/page/" %} menu-active{% endif %}" href="{{blog_url}}">{{ header_.menu.blog.subtitle }}</a><strong class="separator">{{menu_separator}}</strong></div>{%- if blog_.search.enable -%}<span style="display: inline-block;">{{ header_.menu.blog.search.emoji | with_class: "spacer" }}<a id="blog-search__btn" href="{{search_url}}">{{ header_.menu.blog.search.title | default: "search" }}</a><strong class="separator">{{menu_separator}}</strong></span>{%- endif -%}<div class="menu-wrap-link">{{ header_.menu.blog.tags.emoji | with_class: "spacer" }}<a class="{% if page.url == "/blog/tags/" or page.url == "/blog/tags/index.html" %} menu-active{% endif %}" href="{{tags_url}}">{{ header_.menu.blog.tags.title | default: "tags" }}</a><strong class="separator">{{menu_separator}}</strong></div><div class="menu-wrap-link">{{ header_.menu.blog.feed.emoji | with_class: "spacer" }}<a href="{{feed_url}}">{{ header_.menu.blog.feed.title | default: "feed" }}</a><strong class="separator">{{menu_separator}}</strong></div>
         | 
| 118 | 
            +
                      </div>
         | 
| 119 | 
            +
                    {%- else -%}
         | 
| 120 | 
            +
                      <div>
         | 
| 121 | 
            +
                        {%- assign published_pages = site.pages | where_exp:"p","p.path contains '_pages/' and p.published" -%}
         | 
| 122 | 
            +
                        {%- if published_pages.size > 0 -%}
         | 
| 123 | 
            +
                          <span>{{ header_.menu.title }} »</span> 
         | 
| 124 | 
            +
                        {%- endif -%}
         | 
| 125 | 
            +
                        {%- if site.pagination.enabled == true -%}
         | 
| 126 | 
            +
                          {%- if blog_page -%}
         | 
| 127 | 
            +
                          <div class="menu-wrap-link">{{ header_.menu.blog.emoji | with_class: "spacer" }}<a href="{{blog_url}}">{{ header_.menu.blog.title |  replace: "ls ", "" }}</a><strong class="separator">{{menu_separator}}</strong></div>
         | 
| 128 | 
            +
                          {%- endif -%}
         | 
| 129 | 
            +
                          {%- if pixels_page -%}
         | 
| 130 | 
            +
                          <div class="menu-wrap-link">{{ header_.menu.pixels.emoji | with_class: "spacer" }}<a href="{{pixels_url}}">{{ header_.menu.pixels.title }}</a><strong class="separator">{{menu_separator}}</strong></div>
         | 
| 131 | 
            +
                          {%- endif -%}{% assign sorted_pages = site.pages | sort: 'order' %}
         | 
| 132 | 
            +
                          {%- for item in sorted_pages -%}
         | 
| 133 | 
            +
                            {%- if item.path contains '_pages/' and item.in_menu -%}
         | 
| 134 | 
            +
                              {%- unless item.url contains "blog" or item.url contains "404.html" -%}
         | 
| 135 | 
            +
                                <div class="menu-wrap-link">{{ item.emoji | with_class: "spacer" }}<a class="{% if page.url == item.url %}menu-active{% endif %}" href="{{ item.url | relative_url }}">{{ item.title | downcase }}</a><strong class="separator">{{menu_separator}}</strong></div>
         | 
| 136 | 
            +
                              {%- endunless -%}
         | 
| 137 | 
            +
                            {%- endif -%}
         | 
| 138 | 
            +
                          {%- endfor -%}
         | 
| 139 | 
            +
                        {%- else -%}
         | 
| 140 | 
            +
                          {%- if blog_page -%}
         | 
| 141 | 
            +
                            <div class="menu-wrap-link">{{ header_.menu.blog.emoji | with_class: "spacer" }}<a href="{{blog_url}}">{{ header_.menu.blog.title | replace: "/", "" }}</a><strong class="separator">{{menu_separator}}</strong></div>
         | 
| 142 | 
            +
                          {%- endif -%}
         | 
| 143 | 
            +
                          {%- if pixels_page -%}
         | 
| 144 | 
            +
                          <div class="menu-wrap-link">{{ header_.menu.pixels.emoji | with_class: "spacer" }}<a href="{{pixels_url}}">pixels</a><strong class="separator">{{menu_separator}}</strong></div>
         | 
| 145 | 
            +
                          {%- endif -%}{% assign sorted_pages = site.pages | sort: 'order' %}
         | 
| 146 | 
            +
                          {%- for item in sorted_pages -%}
         | 
| 147 | 
            +
                            {%- if item.path contains '_pages/' and item.published != false and item.in_menu -%}
         | 
| 148 | 
            +
                              {%- unless item.url contains "/tags/" or item.url contains "404.html" -%}
         | 
| 149 | 
            +
                                <div class="menu-wrap-link">{{ item.emoji | with_class: "spacer" }}<a class="{% if page.url == item.url %}menu-active{% endif %}" href="{{ item.url | relative_url }}">{{ item.title | downcase }}</a><strong class="separator">{{menu_separator}}</strong></div>
         | 
| 150 | 
            +
                              {%- endunless -%}
         | 
| 151 | 
            +
                            {%- endif -%}
         | 
| 152 | 
            +
                          {%- endfor -%}
         | 
| 153 | 
            +
                        {%- endif -%}
         | 
| 154 | 
            +
                      </div>
         | 
| 132 155 | 
             
                    {%- endif -%}
         | 
| 133 156 | 
             
                  {%- endif -%}
         | 
| 134 | 
            -
                  </div>
         | 
| 135 157 | 
             
                </div>
         | 
| 158 | 
            +
              </div>
         | 
| 159 | 
            +
              <!-- row menu -->
         | 
| 136 160 |  | 
| 137 | 
            -
             | 
| 138 | 
            -
             | 
| 139 | 
            -
             | 
| 140 | 
            -
                   | 
| 161 | 
            +
              <!-- row button light/dark -->
         | 
| 162 | 
            +
              <div class="row justify-content-end">
         | 
| 163 | 
            +
                <div class="col-sm-2 d-flex justify-content-end">
         | 
| 164 | 
            +
                  <span id="toggle-theme"><i class="fa-solid fa-moon"></i></span>
         | 
| 141 165 | 
             
                </div>
         | 
| 142 166 | 
             
              </div>
         | 
| 167 | 
            +
              <!-- row button light/dark -->
         | 
| 168 | 
            +
             | 
| 143 169 | 
             
            </header>
         | 
| @@ -1,27 +1,23 @@ | |
| 1 1 | 
             
            {% include layout/data.liquid %}
         | 
| 2 2 |  | 
| 3 3 | 
             
            <!DOCTYPE html>
         | 
| 4 | 
            -
            <html lang="{{  | 
| 4 | 
            +
            <html lang="{{ default_.lang | default: 'en-US' }}" data-theme="light">
         | 
| 5 5 | 
             
              {%- include layout/head.html -%}
         | 
| 6 6 | 
             
              <body>
         | 
| 7 | 
            -
                <div class="mt-4 maintenance">
         | 
| 7 | 
            +
                <div class="mt-4 maintenance" style="font-family: {{ default_.font.style }} !important; font-size: {{ default_.font.size }} !important; letter-spacing:{{ default_.font.spacing }} !important;">
         | 
| 8 8 | 
             
                  <div class="container">
         | 
| 9 | 
            -
                    {%- if  | 
| 9 | 
            +
                    {%- if maintenance_.gif != "" -%}
         | 
| 10 10 | 
             
                    <div class="row">
         | 
| 11 11 | 
             
                      <div class="col-sm text-center">
         | 
| 12 | 
            -
                        { | 
| 13 | 
            -
                          <img class="maintenance-gif" src="{{ '/assets/gifs/under_maintenance.gif' | relative_url }}" alt="under maintenance">
         | 
| 14 | 
            -
                        {%- else -%}
         | 
| 15 | 
            -
                          <img class="maintenance-gif" src="{{ site.maintenance.gif }}" alt="under maintenance">
         | 
| 16 | 
            -
                        {%- endif -%}
         | 
| 12 | 
            +
                        <img class="maintenance-gif" src="{{ maintenance_.gif | relative_url }}" alt="under maintenance">
         | 
| 17 13 | 
             
                      </div>
         | 
| 18 14 | 
             
                    </div>
         | 
| 19 15 | 
             
                    {%- endif -%}
         | 
| 20 16 | 
             
                    <div class="row mt-5 text-center">
         | 
| 21 | 
            -
                      <h1 class="maintenance-title">[ {{  | 
| 17 | 
            +
                      <h1 class="maintenance-title">[ {{ maintenance_.title }} ]</h1>
         | 
| 22 18 | 
             
                    </div>
         | 
| 23 19 | 
             
                    <div class="row text-center">
         | 
| 24 | 
            -
                      <h3 class="maintenance-subtitle">{{  | 
| 20 | 
            +
                      <h3 class="maintenance-subtitle">{{ maintenance_.subtitle | markdownify }}</h3>
         | 
| 25 21 | 
             
                    </div>
         | 
| 26 22 | 
             
                  </div>
         | 
| 27 23 | 
             
                </div>
         | 
| @@ -1,3 +1,5 @@ | |
| 1 | 
            +
            {% include layout/data.liquid %}
         | 
| 2 | 
            +
             | 
| 1 3 | 
             
            {%- if page.pagination.enabled == true and site.pagination.enabled == true -%}
         | 
| 2 4 | 
             
              {%- assign total_page = paginator.total_pages -%}
         | 
| 3 5 | 
             
              {%- if total_page > 1 -%}
         | 
| @@ -6,7 +8,7 @@ | |
| 6 8 | 
             
                    {%- if paginator.previous_page -%}
         | 
| 7 9 | 
             
                    <li class="page-item">
         | 
| 8 10 | 
             
                      <a class="page-link blog-pagination__newer" href="{{ paginator.previous_page_path | prepend: site.baseurl | prepend: site.url }}">
         | 
| 9 | 
            -
                        ← {{  | 
| 11 | 
            +
                        ← {{ blog_.pagination.newer_text }}
         | 
| 10 12 | 
             
                      </a>
         | 
| 11 13 | 
             
                    </li>
         | 
| 12 14 | 
             
                    {%- endif -%}
         | 
| @@ -14,9 +16,9 @@ | |
| 14 16 | 
             
                    {%- if total_page > 1 -%}
         | 
| 15 17 | 
             
                      <li class="page-item">
         | 
| 16 18 | 
             
                        <span class="page-link blog-pagination__counter">
         | 
| 17 | 
            -
                          [ {{  | 
| 19 | 
            +
                          [ {{ blog_.pagination.counter[0] }}
         | 
| 18 20 | 
             
                          {{ paginator.page }}
         | 
| 19 | 
            -
                          {{  | 
| 21 | 
            +
                          {{ blog_.pagination.counter[1] }}
         | 
| 20 22 | 
             
                          {{ total_page }} ]
         | 
| 21 23 | 
             
                        </span>
         | 
| 22 24 | 
             
                      </li>
         | 
| @@ -25,7 +27,7 @@ | |
| 25 27 | 
             
                    {%- if paginator.next_page -%}
         | 
| 26 28 | 
             
                    <li class="page-item">
         | 
| 27 29 | 
             
                      <a class="page-link blog-pagination__older" href="{{ paginator.next_page_path | prepend: site.baseurl | prepend: site.url }}">
         | 
| 28 | 
            -
                        {{  | 
| 30 | 
            +
                        {{ blog_.pagination.older_text }} →
         | 
| 29 31 | 
             
                      </a>
         | 
| 30 32 | 
             
                    </li>
         | 
| 31 33 | 
             
                    {%- endif -%}
         | 
    
        data/_includes/socials
    CHANGED
    
    | @@ -1,3 +1,7 @@ | |
| 1 | 
            +
            {%- include layout/data.liquid -%}
         | 
| 2 | 
            +
             | 
| 3 | 
            +
            {%- assign separator = default_.separator -%}
         | 
| 4 | 
            +
             | 
| 1 5 | 
             
            <div class="container socials">
         | 
| 2 6 | 
             
              <div class="row">
         | 
| 3 7 |  | 
| @@ -9,12 +13,10 @@ | |
| 9 13 | 
             
                  {%- assign pos = "justify-content-end" -%}
         | 
| 10 14 | 
             
                {%- endif -%}
         | 
| 11 15 |  | 
| 12 | 
            -
                <div class="col-sm d-flex {{pos}}" | 
| 13 | 
            -
                  {% assign links =  | 
| 16 | 
            +
                <div class="col-sm d-flex {{pos}}" style="padding: 0 !important;">
         | 
| 17 | 
            +
                  {% assign links = socials_.links %}
         | 
| 14 18 | 
             
                  {% for item in links %}
         | 
| 15 | 
            -
                    <a class="socials-link" title="{{ item.title }}" href="{{ item.url }}" target="_blank">
         | 
| 16 | 
            -
                      {{ item.title }}
         | 
| 17 | 
            -
                    </a><strong> . </strong>
         | 
| 19 | 
            +
                    <a class="socials-link" title="{{ item.title }}" href="{{ item.url }}" target="_blank">{{ item.title }}</a><strong class="separator">{{separator}}</strong>
         | 
| 18 20 | 
             
                  {% endfor %}
         | 
| 19 21 | 
             
                </div>
         | 
| 20 22 |  | 
    
        data/_includes/tabs
    CHANGED
    
    | @@ -1,94 +1 @@ | |
| 1 | 
            -
            <div class="tabs-start" aria-hidden="true"></div>
         | 
| 2 | 
            -
             | 
| 3 | 
            -
            <script>
         | 
| 4 | 
            -
              (function () {
         | 
| 5 | 
            -
                if (window.__simple_tabs_installed) return;
         | 
| 6 | 
            -
                window.__simple_tabs_installed = true;
         | 
| 7 | 
            -
             | 
| 8 | 
            -
                function processTabs() {
         | 
| 9 | 
            -
                  var starts = Array.from(document.querySelectorAll('.tabs-start'));
         | 
| 10 | 
            -
                  starts.forEach(function (start) {
         | 
| 11 | 
            -
                    var end = start.nextSibling;
         | 
| 12 | 
            -
                    while (end && !(end.nodeType === 1 && end.classList && end.classList.contains('tabs-end'))) {
         | 
| 13 | 
            -
                      end = end.nextSibling;
         | 
| 14 | 
            -
                    }
         | 
| 15 | 
            -
                    if (!end) return;
         | 
| 16 | 
            -
             | 
| 17 | 
            -
                    var node = start.nextSibling;
         | 
| 18 | 
            -
                    var tabs = [];
         | 
| 19 | 
            -
                    var currentTab = null;
         | 
| 20 | 
            -
                    while (node && node !== end) {
         | 
| 21 | 
            -
                      var next = node.nextSibling;
         | 
| 22 | 
            -
                      if (node.nodeType === Node.TEXT_NODE && !node.textContent.trim()) {
         | 
| 23 | 
            -
                        node = next; continue;
         | 
| 24 | 
            -
                      }
         | 
| 25 | 
            -
                      var text = (node.textContent || '').trim();
         | 
| 26 | 
            -
                      var m = text.match(/^\s*tab\d*\s*:\s*(.+)$/i);
         | 
| 27 | 
            -
                      if (m) {
         | 
| 28 | 
            -
                        currentTab = { title: m[1].trim(), nodes: [] };
         | 
| 29 | 
            -
                        tabs.push(currentTab);
         | 
| 30 | 
            -
                        if (node.parentNode) node.parentNode.removeChild(node);
         | 
| 31 | 
            -
                      } else if (currentTab) {
         | 
| 32 | 
            -
                        currentTab.nodes.push(node);
         | 
| 33 | 
            -
                      } else {
         | 
| 34 | 
            -
                      }
         | 
| 35 | 
            -
                      node = next;
         | 
| 36 | 
            -
                    }
         | 
| 37 | 
            -
             | 
| 38 | 
            -
                    if (tabs.length === 0) {
         | 
| 39 | 
            -
                      return;
         | 
| 40 | 
            -
                    }
         | 
| 41 | 
            -
             | 
| 42 | 
            -
                    var wrap = document.createElement('div');
         | 
| 43 | 
            -
                    wrap.className = 'tabs-wrap';
         | 
| 44 | 
            -
             | 
| 45 | 
            -
                    var nav = document.createElement('div');
         | 
| 46 | 
            -
                    nav.className = 'tabs-nav';
         | 
| 47 | 
            -
             | 
| 48 | 
            -
                    var panels = document.createElement('div');
         | 
| 49 | 
            -
                    panels.className = 'tabs-panels';
         | 
| 50 | 
            -
             | 
| 51 | 
            -
                    tabs.forEach(function (tab, i) {
         | 
| 52 | 
            -
                      var btn = document.createElement('button');
         | 
| 53 | 
            -
                      btn.type = 'button';
         | 
| 54 | 
            -
                      btn.className = 'tab-btn' + (i === 0 ? ' active' : '');
         | 
| 55 | 
            -
                      btn.setAttribute('data-idx', i);
         | 
| 56 | 
            -
                      btn.textContent = tab.title;
         | 
| 57 | 
            -
                      btn.addEventListener('click', function () {
         | 
| 58 | 
            -
                        var idx = +this.getAttribute('data-idx');
         | 
| 59 | 
            -
                        wrap.querySelectorAll('.tab-btn').forEach(function (b) {
         | 
| 60 | 
            -
                          b.classList.toggle('active', +b.getAttribute('data-idx') === idx);
         | 
| 61 | 
            -
                        });
         | 
| 62 | 
            -
                        wrap.querySelectorAll('.tab-panel').forEach(function (p, pi) {
         | 
| 63 | 
            -
                          p.classList.toggle('active', pi === idx);
         | 
| 64 | 
            -
                        });
         | 
| 65 | 
            -
                      });
         | 
| 66 | 
            -
                      nav.appendChild(btn);
         | 
| 67 | 
            -
             | 
| 68 | 
            -
                      var panel = document.createElement('div');
         | 
| 69 | 
            -
                      panel.className = 'tab-panel' + (i === 0 ? ' active' : '');
         | 
| 70 | 
            -
                      tab.nodes.forEach(function (n) {
         | 
| 71 | 
            -
                        panel.appendChild(n.cloneNode(true));
         | 
| 72 | 
            -
                      });
         | 
| 73 | 
            -
                      panels.appendChild(panel);
         | 
| 74 | 
            -
                    });
         | 
| 75 | 
            -
             | 
| 76 | 
            -
                    wrap.appendChild(nav);
         | 
| 77 | 
            -
                    wrap.appendChild(panels);
         | 
| 78 | 
            -
             | 
| 79 | 
            -
                    start.parentNode.insertBefore(wrap, start);
         | 
| 80 | 
            -
             | 
| 81 | 
            -
                    var cur = start;
         | 
| 82 | 
            -
                    while (cur) {
         | 
| 83 | 
            -
                      var nx = cur.nextSibling;
         | 
| 84 | 
            -
                      if (cur.parentNode) cur.parentNode.removeChild(cur);
         | 
| 85 | 
            -
                      if (cur === end) break;
         | 
| 86 | 
            -
                      cur = nx;
         | 
| 87 | 
            -
                    }
         | 
| 88 | 
            -
                  });
         | 
| 89 | 
            -
                }
         | 
| 90 | 
            -
             | 
| 91 | 
            -
                if (document.readyState === 'loading') document.addEventListener('DOMContentLoaded', processTabs);
         | 
| 92 | 
            -
                else processTabs();
         | 
| 93 | 
            -
              })();
         | 
| 94 | 
            -
            </script>
         | 
| 1 | 
            +
            <div id="tabs-start" class="tabs-start" aria-hidden="true"></div>
         |