rawfeed 0.1.4 → 0.2.1
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
| @@ -82,7 +82,7 @@ $font-size: 18px; | |
| 82 82 | 
             
                overflow-y: auto;
         | 
| 83 83 | 
             
                font-weight: bold;
         | 
| 84 84 | 
             
                padding: 10px 4px;
         | 
| 85 | 
            -
                letter-spacing:  | 
| 85 | 
            +
                letter-spacing: 1px;
         | 
| 86 86 | 
             
                text-transform: var(--terminal-screen-text-transform);
         | 
| 87 87 | 
             
                text-shadow: var(--terminal-screen-text-shadow);
         | 
| 88 88 |  | 
| @@ -100,22 +100,23 @@ $font-size: 18px; | |
| 100 100 | 
             
                  opacity: 0.7;
         | 
| 101 101 | 
             
                }
         | 
| 102 102 |  | 
| 103 | 
            +
                .socials-command {
         | 
| 104 | 
            +
                  &__desc {
         | 
| 105 | 
            +
                    margin-top: 15px !important;
         | 
| 106 | 
            +
                    white-space: pre;
         | 
| 107 | 
            +
                    display: flex;
         | 
| 108 | 
            +
                    align-items: center;
         | 
| 109 | 
            +
                    font-size: $font-size;
         | 
| 110 | 
            +
                    line-height: 1.4;
         | 
| 111 | 
            +
                    color: var(--text-color);
         | 
| 112 | 
            +
                  }
         | 
| 113 | 
            +
                }
         | 
| 114 | 
            +
             | 
| 103 115 | 
             
                .line-wrapper {
         | 
| 104 116 | 
             
                  font-size: $font-size;
         | 
| 105 117 | 
             
                  margin: 10px 0px;
         | 
| 106 118 | 
             
                  color: var(--text-color);
         | 
| 107 119 |  | 
| 108 | 
            -
                  #mcmd,
         | 
| 109 | 
            -
                  #mdesc {
         | 
| 110 | 
            -
                    font-weight: bold;
         | 
| 111 | 
            -
                    // border-bottom: 1px solid #fff;
         | 
| 112 | 
            -
                    margin-bottom: 10px;
         | 
| 113 | 
            -
                  }
         | 
| 114 | 
            -
             | 
| 115 | 
            -
                  #mcmd {
         | 
| 116 | 
            -
                    margin-right: 130px;
         | 
| 117 | 
            -
                  }
         | 
| 118 | 
            -
             | 
| 119 120 | 
             
                  a {
         | 
| 120 121 | 
             
                    color: var(--terminal-screen-link-color) !important;
         | 
| 121 122 |  | 
| @@ -123,6 +124,28 @@ $font-size: 18px; | |
| 123 124 | 
             
                      color: var(--text-color) !important;
         | 
| 124 125 | 
             
                    }
         | 
| 125 126 | 
             
                  }
         | 
| 127 | 
            +
             | 
| 128 | 
            +
                  .help-description {
         | 
| 129 | 
            +
                    p {
         | 
| 130 | 
            +
                      margin-top: 15px !important;
         | 
| 131 | 
            +
                      margin-bottom: 30px !important;
         | 
| 132 | 
            +
                    }
         | 
| 133 | 
            +
                  }
         | 
| 134 | 
            +
             | 
| 135 | 
            +
                  .help-commands {
         | 
| 136 | 
            +
             | 
| 137 | 
            +
                    &__title,
         | 
| 138 | 
            +
                    &__desc {
         | 
| 139 | 
            +
                      font-weight: bold;
         | 
| 140 | 
            +
                      text-decoration: underline;
         | 
| 141 | 
            +
                      display: inline-block;
         | 
| 142 | 
            +
                      margin-bottom: 10px !important;
         | 
| 143 | 
            +
                    }
         | 
| 144 | 
            +
             | 
| 145 | 
            +
                    &__desc {
         | 
| 146 | 
            +
                      margin-left: 120px !important;
         | 
| 147 | 
            +
                    }
         | 
| 148 | 
            +
                  }
         | 
| 126 149 | 
             
                }
         | 
| 127 150 |  | 
| 128 151 | 
             
                .line {
         | 
    
        data/_sass/layouts/_blog.scss
    CHANGED
    
    | @@ -1,18 +1,23 @@ | |
| 1 1 | 
             
            @use "../components/index";
         | 
| 2 2 |  | 
| 3 3 | 
             
            .blog {
         | 
| 4 | 
            -
              // TODO: version: 0.2.0 - Create background light
         | 
| 5 | 
            -
              // box-shadow: 0px 2px 4px rgba(0, 0, 0, 0.2);
         | 
| 6 | 
            -
              // border: 1px solid #ddd;
         | 
| 7 | 
            -
              // background-color: white;
         | 
| 8 | 
            -
              // padding: 20px 10px;
         | 
| 9 | 
            -
             | 
| 10 4 | 
             
              &-subtitle {
         | 
| 11 5 | 
             
                font-size: 1.05rem;
         | 
| 12 6 | 
             
                font-weight: bold;
         | 
| 13 7 | 
             
                margin: 0px 0px 10px 0px;
         | 
| 14 8 | 
             
              }
         | 
| 15 9 |  | 
| 10 | 
            +
              &-description {
         | 
| 11 | 
            +
                line-height: 1.6 !important;
         | 
| 12 | 
            +
                display: flex;
         | 
| 13 | 
            +
                align-items: center;
         | 
| 14 | 
            +
                margin-bottom: 40px;
         | 
| 15 | 
            +
             | 
| 16 | 
            +
                p {
         | 
| 17 | 
            +
                  margin: 0;
         | 
| 18 | 
            +
                }
         | 
| 19 | 
            +
              }
         | 
| 20 | 
            +
             | 
| 16 21 | 
             
              &-list {
         | 
| 17 22 | 
             
                list-style: none;
         | 
| 18 23 | 
             
                padding: 0;
         | 
| @@ -34,8 +39,8 @@ | |
| 34 39 |  | 
| 35 40 | 
             
                &__meta {
         | 
| 36 41 | 
             
                  display: inline-block;
         | 
| 37 | 
            -
                  min-width: 115px !important;
         | 
| 38 | 
            -
                  font-family: "SUSE Mono", sans-serif;
         | 
| 42 | 
            +
                  // min-width: 115px !important;
         | 
| 43 | 
            +
                  // font-family: "SUSE Mono", sans-serif;
         | 
| 39 44 | 
             
                  font-optical-sizing: auto;
         | 
| 40 45 | 
             
                  font-style: normal;
         | 
| 41 46 | 
             
                  line-height: 1rem;
         | 
| @@ -48,7 +53,6 @@ | |
| 48 53 |  | 
| 49 54 | 
             
                &__link {
         | 
| 50 55 | 
             
                  text-transform: none !important;
         | 
| 51 | 
            -
                  font-weight: bold;
         | 
| 52 56 | 
             
                  text-decoration: underline;
         | 
| 53 57 | 
             
                }
         | 
| 54 58 | 
             
              }
         | 
    
        data/_sass/layouts/_contact.scss
    CHANGED
    
    | @@ -18,14 +18,15 @@ | |
| 18 18 | 
             
              }
         | 
| 19 19 | 
             
            }
         | 
| 20 20 |  | 
| 21 | 
            -
             | 
| 22 | 
            -
              // box-shadow: 0px 2px 4px rgba(0, 0, 0, 0.2);
         | 
| 23 | 
            -
              // border: 1px solid #ddd;
         | 
| 24 | 
            -
              // background-color: white;
         | 
| 25 | 
            -
              // padding: 20px 40px;
         | 
| 21 | 
            +
            // -disabled
         | 
| 26 22 |  | 
| 23 | 
            +
            .contact,
         | 
| 24 | 
            +
            .contact-disabled {
         | 
| 27 25 | 
             
              @extend %markdown;
         | 
| 26 | 
            +
              margin-bottom: 35px !important;
         | 
| 27 | 
            +
            }
         | 
| 28 28 |  | 
| 29 | 
            +
            .contact {
         | 
| 29 30 | 
             
              &-message-error .modal-header {
         | 
| 30 31 | 
             
                background-color: #f8d7da;
         | 
| 31 32 | 
             
                color: #842029;
         | 
    
        data/_sass/layouts/_default.scss
    CHANGED
    
    | @@ -1,10 +1,10 @@ | |
| 1 1 | 
             
            .default {
         | 
| 2 | 
            -
              margin: 0 auto;
         | 
| 3 | 
            -
              transition: transform 0.3s ease;
         | 
| 2 | 
            +
              margin: 0 auto !important;
         | 
| 3 | 
            +
              // transition: transform 0.3s ease;
         | 
| 4 4 |  | 
| 5 | 
            -
              .content {
         | 
| 6 | 
            -
             | 
| 7 | 
            -
              }
         | 
| 5 | 
            +
              // .content {
         | 
| 6 | 
            +
              //   margin-bottom: 30px !important;
         | 
| 7 | 
            +
              // }
         | 
| 8 8 |  | 
| 9 9 | 
             
              .content code,
         | 
| 10 10 | 
             
              .content pre {
         | 
    
        data/_sass/layouts/_index.scss
    CHANGED
    
    
    
        data/_sass/layouts/_page.scss
    CHANGED
    
    
| @@ -0,0 +1,61 @@ | |
| 1 | 
            +
            @use "../components/index";
         | 
| 2 | 
            +
             | 
| 3 | 
            +
            .pixel {
         | 
| 4 | 
            +
              @extend %markdown;
         | 
| 5 | 
            +
              margin-bottom: 35px !important;
         | 
| 6 | 
            +
             | 
| 7 | 
            +
              li {
         | 
| 8 | 
            +
                list-style: disc;
         | 
| 9 | 
            +
              }
         | 
| 10 | 
            +
             | 
| 11 | 
            +
              &-title {
         | 
| 12 | 
            +
                margin-top: 0px !important;
         | 
| 13 | 
            +
                font-size: 1.3rem !important;
         | 
| 14 | 
            +
                font-weight: bold !important;
         | 
| 15 | 
            +
                margin-bottom: 40px !important;
         | 
| 16 | 
            +
              }
         | 
| 17 | 
            +
             | 
| 18 | 
            +
              &-image {
         | 
| 19 | 
            +
                text-align: center;
         | 
| 20 | 
            +
                margin: 50px 0px;
         | 
| 21 | 
            +
             | 
| 22 | 
            +
                figure {
         | 
| 23 | 
            +
                  display: block;
         | 
| 24 | 
            +
                  max-width: 100%;
         | 
| 25 | 
            +
                  line-height: 1;
         | 
| 26 | 
            +
                  margin-left: auto;
         | 
| 27 | 
            +
                  margin-right: auto;
         | 
| 28 | 
            +
             | 
| 29 | 
            +
                  img {
         | 
| 30 | 
            +
                    display: block;
         | 
| 31 | 
            +
                    width: 100%;
         | 
| 32 | 
            +
                    height: auto;
         | 
| 33 | 
            +
                    object-fit: cover;
         | 
| 34 | 
            +
                    border-radius: 12px !important;
         | 
| 35 | 
            +
                    border-top: 4px solid var(--text-color);
         | 
| 36 | 
            +
                    border-bottom: 4px solid var(--text-color);
         | 
| 37 | 
            +
                  }
         | 
| 38 | 
            +
             | 
| 39 | 
            +
                  figcaption {
         | 
| 40 | 
            +
                    display: block;
         | 
| 41 | 
            +
                    margin-top: 6px;
         | 
| 42 | 
            +
                    font-size: 0.85rem;
         | 
| 43 | 
            +
                    color: #777;
         | 
| 44 | 
            +
                  }
         | 
| 45 | 
            +
                }
         | 
| 46 | 
            +
              }
         | 
| 47 | 
            +
             | 
| 48 | 
            +
              .comments {
         | 
| 49 | 
            +
                &-title {
         | 
| 50 | 
            +
                  font-size: 1rem !important;
         | 
| 51 | 
            +
                }
         | 
| 52 | 
            +
              }
         | 
| 53 | 
            +
             | 
| 54 | 
            +
              &-content {
         | 
| 55 | 
            +
                margin-bottom: 100px;
         | 
| 56 | 
            +
             | 
| 57 | 
            +
                p::first-letter {
         | 
| 58 | 
            +
                  text-transform: uppercase;
         | 
| 59 | 
            +
                }
         | 
| 60 | 
            +
              }
         | 
| 61 | 
            +
            }
         | 
| @@ -0,0 +1,86 @@ | |
| 1 | 
            +
            .pixels {
         | 
| 2 | 
            +
              margin: 0 auto;
         | 
| 3 | 
            +
              margin-bottom: 35px !important;
         | 
| 4 | 
            +
             | 
| 5 | 
            +
              &-title {
         | 
| 6 | 
            +
                font-size: 1.05rem;
         | 
| 7 | 
            +
                font-weight: 700;
         | 
| 8 | 
            +
              }
         | 
| 9 | 
            +
             | 
| 10 | 
            +
              &-description {
         | 
| 11 | 
            +
                line-height: 1.6 !important;
         | 
| 12 | 
            +
                margin-bottom: 40px;
         | 
| 13 | 
            +
                display: flex;
         | 
| 14 | 
            +
                align-items: center;
         | 
| 15 | 
            +
             | 
| 16 | 
            +
                p {
         | 
| 17 | 
            +
                  margin: 0;
         | 
| 18 | 
            +
                }
         | 
| 19 | 
            +
              }
         | 
| 20 | 
            +
             | 
| 21 | 
            +
              &-grid {
         | 
| 22 | 
            +
                display: grid;
         | 
| 23 | 
            +
                grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
         | 
| 24 | 
            +
                gap: 1rem;
         | 
| 25 | 
            +
              }
         | 
| 26 | 
            +
             | 
| 27 | 
            +
              &-item {
         | 
| 28 | 
            +
                position: relative;
         | 
| 29 | 
            +
                overflow: hidden;
         | 
| 30 | 
            +
                border: 2px dotted var(--primary-color);
         | 
| 31 | 
            +
             | 
| 32 | 
            +
                &:hover {
         | 
| 33 | 
            +
                  .overlay {
         | 
| 34 | 
            +
                    opacity: 0;
         | 
| 35 | 
            +
                  }
         | 
| 36 | 
            +
             | 
| 37 | 
            +
                  img {
         | 
| 38 | 
            +
                    // transform: scale(1.03);
         | 
| 39 | 
            +
                    filter: brightness(1.1);
         | 
| 40 | 
            +
                  }
         | 
| 41 | 
            +
                }
         | 
| 42 | 
            +
             | 
| 43 | 
            +
                img {
         | 
| 44 | 
            +
                  width: 100%;
         | 
| 45 | 
            +
                  height: 100%;
         | 
| 46 | 
            +
                  object-fit: cover;
         | 
| 47 | 
            +
                  // faz o recorte automático
         | 
| 48 | 
            +
                  aspect-ratio: 1 / 1;
         | 
| 49 | 
            +
                  // mantém todas as imagens quadradas (como Instagram)
         | 
| 50 | 
            +
                  // transition: transform 0.4s ease, filter 0.4s ease;
         | 
| 51 | 
            +
                }
         | 
| 52 | 
            +
              }
         | 
| 53 | 
            +
             | 
| 54 | 
            +
              &-overlay-card {
         | 
| 55 | 
            +
                position: relative;
         | 
| 56 | 
            +
             | 
| 57 | 
            +
                .overlay {
         | 
| 58 | 
            +
                  position: absolute;
         | 
| 59 | 
            +
                  inset: 0;
         | 
| 60 | 
            +
                  background: var(--pixels-overlay-bg); // rgba(0, 0, 0, 0.55);
         | 
| 61 | 
            +
                  display: flex;
         | 
| 62 | 
            +
                  justify-content: center;
         | 
| 63 | 
            +
                  align-items: center;
         | 
| 64 | 
            +
                  text-align: center;
         | 
| 65 | 
            +
                  // transition: opacity 0.4s ease;
         | 
| 66 | 
            +
             | 
| 67 | 
            +
                  &-content {
         | 
| 68 | 
            +
                    padding: 0.5rem;
         | 
| 69 | 
            +
             | 
| 70 | 
            +
                    .date {
         | 
| 71 | 
            +
                      background: rgba(0, 0, 0, 0.8);
         | 
| 72 | 
            +
                      padding: 0.25rem 0.5rem;
         | 
| 73 | 
            +
                      border-radius: 0.25rem;
         | 
| 74 | 
            +
                      display: inline-block;
         | 
| 75 | 
            +
                      font-weight: bold;
         | 
| 76 | 
            +
                      color: white;
         | 
| 77 | 
            +
                      margin-bottom: 20px;
         | 
| 78 | 
            +
                    }
         | 
| 79 | 
            +
             | 
| 80 | 
            +
                    .desc {
         | 
| 81 | 
            +
                      color: var(--pixels-overlay-color);
         | 
| 82 | 
            +
                    }
         | 
| 83 | 
            +
                  }
         | 
| 84 | 
            +
                }
         | 
| 85 | 
            +
              }
         | 
| 86 | 
            +
            }
         | 
    
        data/_sass/layouts/_post.scss
    CHANGED
    
    | @@ -1,14 +1,8 @@ | |
| 1 1 | 
             
            @use "../components/index";
         | 
| 2 2 |  | 
| 3 3 | 
             
            .post {
         | 
| 4 | 
            -
              // TODO: version: 0.2.0 - Create background light
         | 
| 5 | 
            -
              // box-shadow: 0px 2px 4px rgba(0, 0, 0, 0.2);
         | 
| 6 | 
            -
              // border: 1px solid #ddd;
         | 
| 7 | 
            -
              // background-color: white;
         | 
| 8 | 
            -
              // padding: 10px 30px;
         | 
| 9 | 
            -
             | 
| 10 4 | 
             
              @extend %markdown;
         | 
| 11 | 
            -
              margin-bottom:  | 
| 5 | 
            +
              margin-bottom: 35px;
         | 
| 12 6 |  | 
| 13 7 | 
             
              li {
         | 
| 14 8 | 
             
                list-style: disc;
         | 
| @@ -45,7 +39,7 @@ | |
| 45 39 | 
             
              .dt-published,
         | 
| 46 40 | 
             
              .dt-modified {
         | 
| 47 41 | 
             
                font-weight: normal !important;
         | 
| 48 | 
            -
                font-family: "SUSE Mono", sans-serif;
         | 
| 42 | 
            +
                // font-family: "SUSE Mono", sans-serif;
         | 
| 49 43 | 
             
                color: var(--text-muted-color);
         | 
| 50 44 | 
             
              }
         | 
| 51 45 |  | 
| @@ -81,8 +75,8 @@ | |
| 81 75 |  | 
| 82 76 | 
             
                  &__meta {
         | 
| 83 77 | 
             
                    display: inline-block;
         | 
| 84 | 
            -
                    min-width: 115px !important;
         | 
| 85 | 
            -
                    font-family: "SUSE Mono", sans-serif;
         | 
| 78 | 
            +
                    // min-width: 115px !important;
         | 
| 79 | 
            +
                    // font-family: "SUSE Mono", sans-serif;
         | 
| 86 80 | 
             
                    font-optical-sizing: auto;
         | 
| 87 81 | 
             
                    font-style: normal;
         | 
| 88 82 | 
             
                    line-height: 1rem;
         | 
| @@ -90,7 +84,6 @@ | |
| 90 84 | 
             
                  }
         | 
| 91 85 |  | 
| 92 86 | 
             
                  &__link {
         | 
| 93 | 
            -
                    font-weight: bold;
         | 
| 94 87 | 
             
                    text-decoration: underline;
         | 
| 95 88 | 
             
                  }
         | 
| 96 89 | 
             
                }
         | 
    
        data/_sass/layouts/_resume.scss
    CHANGED
    
    | @@ -4,7 +4,10 @@ | |
| 4 4 | 
             
            @media print {
         | 
| 5 5 | 
             
              @page {
         | 
| 6 6 | 
             
                size: A4 portrait;
         | 
| 7 | 
            -
             | 
| 7 | 
            +
              }
         | 
| 8 | 
            +
             | 
| 9 | 
            +
              a[target="_blank"]::after {
         | 
| 10 | 
            +
                all: unset !important;
         | 
| 8 11 | 
             
              }
         | 
| 9 12 |  | 
| 10 13 | 
             
              #btn-print,
         | 
| @@ -49,6 +52,12 @@ | |
| 49 52 | 
             
                  }
         | 
| 50 53 | 
             
                }
         | 
| 51 54 |  | 
| 55 | 
            +
                &-content__sidebar {
         | 
| 56 | 
            +
                  .section-item {
         | 
| 57 | 
            +
                    break-inside: avoid; // avoid breaking the content
         | 
| 58 | 
            +
                  }
         | 
| 59 | 
            +
                }
         | 
| 60 | 
            +
             | 
| 52 61 | 
             
                .section {
         | 
| 53 62 | 
             
                  &-title {
         | 
| 54 63 | 
             
                    font-size: 12pt;
         | 
| @@ -58,12 +67,16 @@ | |
| 58 67 | 
             
                  &-item {
         | 
| 59 68 | 
             
                    font-size: 10.5pt;
         | 
| 60 69 | 
             
                    margin-bottom: 0.4em;
         | 
| 61 | 
            -
             | 
| 70 | 
            +
                    break-inside: avoid; // avoid breaking the content
         | 
| 62 71 | 
             
                    a {
         | 
| 63 72 | 
             
                      color: black;
         | 
| 64 73 | 
             
                      text-decoration: none;
         | 
| 65 74 | 
             
                      font-weight: normal;
         | 
| 66 75 | 
             
                    }
         | 
| 76 | 
            +
             | 
| 77 | 
            +
                    .details {
         | 
| 78 | 
            +
                      break-inside: avoid; // avoid breaking the content
         | 
| 79 | 
            +
                    }
         | 
| 67 80 | 
             
                  }
         | 
| 68 81 | 
             
                }
         | 
| 69 82 |  | 
| @@ -113,9 +126,9 @@ | |
| 113 126 | 
             
              margin: 0 auto;
         | 
| 114 127 | 
             
              line-height: 1.5;
         | 
| 115 128 | 
             
              font-size: 11pt;
         | 
| 116 | 
            -
              box-shadow: 0px 2px 4px rgba(0, 0, 0, 0.2);
         | 
| 117 129 | 
             
              border: 1px solid var(--resume-border-color);
         | 
| 118 130 | 
             
              margin-bottom: 50px;
         | 
| 131 | 
            +
              // box-shadow: 0px 2px 4px rgba(0, 0, 0, 0.2);
         | 
| 119 132 |  | 
| 120 133 | 
             
              .role-company {
         | 
| 121 134 |  | 
| @@ -32,7 +32,7 @@ | |
| 32 32 | 
             
                &__meta {
         | 
| 33 33 | 
             
                  display: inline-block;
         | 
| 34 34 | 
             
                  min-width: 100px;
         | 
| 35 | 
            -
                  font-family: "SUSE Mono", sans-serif;
         | 
| 35 | 
            +
                  // font-family: "SUSE Mono", sans-serif;
         | 
| 36 36 | 
             
                  font-optical-sizing: auto;
         | 
| 37 37 | 
             
                  font-style: normal;
         | 
| 38 38 | 
             
                  line-height: 1rem;
         | 
| @@ -41,7 +41,6 @@ | |
| 41 41 |  | 
| 42 42 | 
             
                &__link {
         | 
| 43 43 | 
             
                  text-transform: none !important;
         | 
| 44 | 
            -
                  font-weight: bold;
         | 
| 45 44 | 
             
                  text-decoration: underline;
         | 
| 46 45 | 
             
                }
         | 
| 47 46 | 
             
              }
         | 
    
        data/_sass/layouts/_tag.scss
    CHANGED
    
    | @@ -10,13 +10,24 @@ | |
| 10 10 | 
             
              &-title {
         | 
| 11 11 | 
             
                font-size: 1.05rem !important;
         | 
| 12 12 | 
             
                font-weight: bold;
         | 
| 13 | 
            -
                margin: 0px 0px  | 
| 13 | 
            +
                margin: 0px 0px 30px 0px !important;
         | 
| 14 | 
            +
              }
         | 
| 15 | 
            +
             | 
| 16 | 
            +
              &-description {
         | 
| 17 | 
            +
                margin-bottom: 40px;
         | 
| 18 | 
            +
                display: flex;
         | 
| 19 | 
            +
                align-items: center;
         | 
| 20 | 
            +
             | 
| 21 | 
            +
                p {
         | 
| 22 | 
            +
                  margin: 0;
         | 
| 23 | 
            +
                }
         | 
| 14 24 | 
             
              }
         | 
| 15 25 |  | 
| 16 26 | 
             
              &-list {
         | 
| 17 27 | 
             
                &__item {
         | 
| 18 28 | 
             
                  display: inline-block;
         | 
| 19 29 | 
             
                  margin-bottom: 12px;
         | 
| 30 | 
            +
                  @extend %tags-badge;
         | 
| 20 31 | 
             
                }
         | 
| 21 32 | 
             
              }
         | 
| 22 33 | 
             
            }
         | 
    
        data/_sass/main.scss
    CHANGED
    
    | @@ -6,7 +6,7 @@ | |
| 6 6 | 
             
            @use "layouts";
         | 
| 7 7 | 
             
            @use "includes";
         | 
| 8 8 |  | 
| 9 | 
            -
            /* TODO: version 0. | 
| 9 | 
            +
            /* TODO: version 0.3.0:
         | 
| 10 10 | 
             
            1 - create other dark and light themes for compilation, and have the option in
         | 
| 11 11 | 
             
            "_config.yml" for example:
         | 
| 12 12 | 
             
            layout:
         | 
| @@ -70,6 +70,14 @@ layout: | |
| 70 70 | 
             
              --resume-content-text-color: #{theme.theme-color(resume-content-text-color, light)};
         | 
| 71 71 | 
             
              --resume-text-muted-color: #{theme.theme-color(resume-text-muted-color, light)};
         | 
| 72 72 | 
             
              --resume-border-color: #{theme.theme-color(resume-border-color, light)};
         | 
| 73 | 
            +
              --background-focus-color: #{theme.theme-color(background-focus-color, light)};
         | 
| 74 | 
            +
              --background-focus-border-color: #{theme.theme-color(background-focus-border-color, light)};
         | 
| 75 | 
            +
              --background-focus-box-shadow: #{theme.theme-color(background-focus-box-shadow, light)};
         | 
| 76 | 
            +
              --tags-bg-color: #{theme.theme-color(tags-bg-color, light)};
         | 
| 77 | 
            +
              --tags-border-color: #{theme.theme-color(tags-border-color, light)};
         | 
| 78 | 
            +
              --pixels-overlay-bg: #{theme.theme-color(pixels-overlay-bg, light)};
         | 
| 79 | 
            +
              --pixels-overlay-color: #{theme.theme-color(pixels-overlay-color, light)};
         | 
| 80 | 
            +
             | 
| 73 81 | 
             
            }
         | 
| 74 82 |  | 
| 75 83 | 
             
            :root[data-theme="dark"] {
         | 
| @@ -125,4 +133,11 @@ layout: | |
| 125 133 | 
             
              --resume-content-text-color: #{theme.theme-color(resume-content-text-color, dark)};
         | 
| 126 134 | 
             
              --resume-text-muted-color: #{theme.theme-color(resume-text-muted-color, dark)};
         | 
| 127 135 | 
             
              --resume-border-color: #{theme.theme-color(resume-border-color, dark)};
         | 
| 136 | 
            +
              --background-focus-color: #{theme.theme-color(background-focus-color, dark)};
         | 
| 137 | 
            +
              --background-focus-border-color: #{theme.theme-color(background-focus-border-color, dark)};
         | 
| 138 | 
            +
              --background-focus-box-shadow: #{theme.theme-color(background-focus-box-shadow, dark)};
         | 
| 139 | 
            +
              --tags-bg-color: #{theme.theme-color(tags-bg-color, dark)};
         | 
| 140 | 
            +
              --tags-border-color: #{theme.theme-color(tags-border-color, dark)};
         | 
| 141 | 
            +
              --pixels-overlay-bg: #{theme.theme-color(pixels-overlay-bg, dark)};
         | 
| 142 | 
            +
              --pixels-overlay-color: #{theme.theme-color(pixels-overlay-color, dark)};
         | 
| 128 143 | 
             
            }
         | 
    
        data/_sass/theme/_dark.scss
    CHANGED
    
    | @@ -46,7 +46,7 @@ $theme-colors: ( | |
| 46 46 | 
             
              terminal-cursor-color: #7cff6b,
         | 
| 47 47 | 
             
              terminal-screen-link-color: aqua,
         | 
| 48 48 | 
             
              details-bg-color: #383838,
         | 
| 49 | 
            -
              video-border-color: # | 
| 49 | 
            +
              video-border-color: #e9e9e9,
         | 
| 50 50 | 
             
              chart-bg-color: #fff,
         | 
| 51 51 | 
             
              chart-box-shadow-color: rgba(0, 0, 0, 0.9),
         | 
| 52 52 | 
             
              tabs-bg-color: #303030,
         | 
| @@ -61,6 +61,13 @@ $theme-colors: ( | |
| 61 61 | 
             
              resume-title-text-color: white,
         | 
| 62 62 | 
             
              resume-content-text-color: #d3d3d3,
         | 
| 63 63 | 
             
              resume-text-muted-color: #9d9d9d,
         | 
| 64 | 
            +
              background-focus-color: #222222,
         | 
| 65 | 
            +
              background-focus-border-color: #727272,
         | 
| 66 | 
            +
              background-focus-box-shadow: "0px 1px 0px 0px #6363634d inset, 0px 2px 4px 0px #00000044",
         | 
| 67 | 
            +
              tags-bg-color: #1e1e1e,
         | 
| 68 | 
            +
              tags-border-color: #8f8f8f,
         | 
| 69 | 
            +
              pixels-overlay-bg: rgba(0, 0, 0, 0.70),
         | 
| 70 | 
            +
              pixels-overlay-color: var(--text-color),
         | 
| 64 71 | 
             
            );
         | 
| 65 72 |  | 
| 66 73 | 
             
            /* matrix */
         | 
    
        data/_sass/theme/_light.scss
    CHANGED
    
    | @@ -38,7 +38,7 @@ $theme-colors: ( | |
| 38 38 | 
             
              terminal-cursor-color: #020202,
         | 
| 39 39 | 
             
              terminal-screen-link-color: var(--primary-color),
         | 
| 40 40 | 
             
              details-bg-color: #fbfbfb,
         | 
| 41 | 
            -
              video-border-color: # | 
| 41 | 
            +
              video-border-color: #000000,
         | 
| 42 42 | 
             
              chart-bg-color: #fff,
         | 
| 43 43 | 
             
              chart-box-shadow-color: rgba(0, 0, 0, 0.7),
         | 
| 44 44 | 
             
              tabs-bg-color: #fdfdfd,
         | 
| @@ -53,4 +53,11 @@ $theme-colors: ( | |
| 53 53 | 
             
              resume-title-text-color: black,
         | 
| 54 54 | 
             
              resume-content-text-color: #222,
         | 
| 55 55 | 
             
              resume-text-muted-color: #555,
         | 
| 56 | 
            +
              background-focus-color: #f9f9f9,
         | 
| 57 | 
            +
              background-focus-border-color: #353535,
         | 
| 58 | 
            +
              background-focus-box-shadow: "0px 1px 0px 0px #6363634d inset, 0px 2px 4px 0px #00000044",
         | 
| 59 | 
            +
              tags-bg-color: #e8e8e8,
         | 
| 60 | 
            +
              tags-border-color: #1f1f1f,
         | 
| 61 | 
            +
              pixels-overlay-bg: rgba(255, 255, 255, 0.63),
         | 
| 62 | 
            +
              pixels-overlay-color: var(--text-color),
         | 
| 56 63 | 
             
            );
         | 
| 
            File without changes
         | 
| Binary file | 
| @@ -0,0 +1,102 @@ | |
| 1 | 
            +
            ---
         | 
| 2 | 
            +
            ---
         | 
| 3 | 
            +
             | 
| 4 | 
            +
            {%- include layout/data.liquid -%}
         | 
| 5 | 
            +
             | 
| 6 | 
            +
            document.addEventListener "DOMContentLoaded", ->
         | 
| 7 | 
            +
             | 
| 8 | 
            +
              blog = document.getElementById "blog"
         | 
| 9 | 
            +
             | 
| 10 | 
            +
              if blog
         | 
| 11 | 
            +
                btn = document.getElementById 'blog-search__btn'
         | 
| 12 | 
            +
                box = document.querySelector '.blog-search'
         | 
| 13 | 
            +
                searchInput = document.getElementById 'blog-search__input'
         | 
| 14 | 
            +
                blogPosts = document.getElementById 'posts'
         | 
| 15 | 
            +
                searchResults = document.getElementById 'blog-search__results'
         | 
| 16 | 
            +
                searchResultsWrapper = document.getElementById 'blog-search__results-wrapper'
         | 
| 17 | 
            +
                btnSearchClean = document.getElementById 'blog-search__btn-clean'
         | 
| 18 | 
            +
                blogSeachInput = document.getElementById 'blog-search__input'
         | 
| 19 | 
            +
             | 
| 20 | 
            +
                openSearch = ->
         | 
| 21 | 
            +
                  box.classList.add 'is-open'
         | 
| 22 | 
            +
                  box.removeAttribute 'inert'
         | 
| 23 | 
            +
                  box.style.maxHeight = "#{box.scrollHeight}px"
         | 
| 24 | 
            +
                  box.style.opacity = '1'
         | 
| 25 | 
            +
                  box.addEventListener 'transitionend', onOpened = (e) ->
         | 
| 26 | 
            +
                    if e.propertyName is 'max-height'
         | 
| 27 | 
            +
                      box.style.maxHeight = 'none'
         | 
| 28 | 
            +
                      box.removeEventListener 'transitionend', onOpened
         | 
| 29 | 
            +
                  blogSeachInput.focus()
         | 
| 30 | 
            +
             | 
| 31 | 
            +
                closeSearch = ->
         | 
| 32 | 
            +
                  box.style.maxHeight = "#{box.scrollHeight}px"
         | 
| 33 | 
            +
                  _ = box.offsetHeight  # reflow force
         | 
| 34 | 
            +
                  requestAnimationFrame ->
         | 
| 35 | 
            +
                    box.style.maxHeight = '0'
         | 
| 36 | 
            +
                    box.style.opacity = '0'
         | 
| 37 | 
            +
                  box.setAttribute 'inert', ''
         | 
| 38 | 
            +
                  box.classList.remove 'is-open'
         | 
| 39 | 
            +
             | 
| 40 | 
            +
                btn.addEventListener 'click', (e) ->
         | 
| 41 | 
            +
                  e.preventDefault()
         | 
| 42 | 
            +
             | 
| 43 | 
            +
                  # if are already in /blog/, toggle
         | 
| 44 | 
            +
                  pathname = location.pathname.replace /\/$/, ''
         | 
| 45 | 
            +
                  isBlog = pathname is '/blog' or pathname is '/blog/index.html'
         | 
| 46 | 
            +
             | 
| 47 | 
            +
                  unless isBlog
         | 
| 48 | 
            +
                    # if are on another page, go to /blog/ and open it
         | 
| 49 | 
            +
                    window.location.href = "{{ search_url }}"
         | 
| 50 | 
            +
                    return
         | 
| 51 | 
            +
             | 
| 52 | 
            +
                  # toggle
         | 
| 53 | 
            +
                  if box.classList.contains 'is-open'
         | 
| 54 | 
            +
                    closeSearch()
         | 
| 55 | 
            +
                    searchInput.value = ''
         | 
| 56 | 
            +
                    blogPosts.classList.remove 'disabled'
         | 
| 57 | 
            +
                    searchResultsWrapper.classList.add 'disabled'
         | 
| 58 | 
            +
                  else
         | 
| 59 | 
            +
                    openSearch()
         | 
| 60 | 
            +
             | 
| 61 | 
            +
                # opens automatically if arrived from another link with ?search=open
         | 
| 62 | 
            +
                params = new URLSearchParams location.search
         | 
| 63 | 
            +
                if params.get('search') is 'open'
         | 
| 64 | 
            +
                  setTimeout openSearch, 30
         | 
| 65 | 
            +
             | 
| 66 | 
            +
                # clean button input blog search
         | 
| 67 | 
            +
                # ----------------------------------------------------------------------------------------------
         | 
| 68 | 
            +
             | 
| 69 | 
            +
                clearSearch = ->
         | 
| 70 | 
            +
                  blogSeachInput.value = ''
         | 
| 71 | 
            +
                  blogPosts.classList.remove 'disabled'
         | 
| 72 | 
            +
                  searchResults.classList.add 'disabled'
         | 
| 73 | 
            +
                  searchResultsWrapper.classList.add 'disabled'
         | 
| 74 | 
            +
                  blogSeachInput.focus()
         | 
| 75 | 
            +
             | 
| 76 | 
            +
                btnSearchClean.addEventListener 'click', clearSearch
         | 
| 77 | 
            +
             | 
| 78 | 
            +
                document.addEventListener 'keydown', (e) ->
         | 
| 79 | 
            +
                  if e.key is 'Escape'
         | 
| 80 | 
            +
                    clearSearch()
         | 
| 81 | 
            +
                    closeSearch()
         | 
| 82 | 
            +
             | 
| 83 | 
            +
                # open results and close posts in search (toggle)
         | 
| 84 | 
            +
                # ----------------------------------------------------------------------------------------------
         | 
| 85 | 
            +
             | 
| 86 | 
            +
                searchInput.addEventListener 'input', ->
         | 
| 87 | 
            +
                  if searchInput.value.trim().length > 0
         | 
| 88 | 
            +
                    blogPosts.classList.add 'disabled'
         | 
| 89 | 
            +
                    searchResults.classList.remove 'disabled'
         | 
| 90 | 
            +
                    searchResultsWrapper.classList.remove 'disabled'
         | 
| 91 | 
            +
                  else
         | 
| 92 | 
            +
                    blogPosts.classList.remove 'disabled'
         | 
| 93 | 
            +
                    searchResults.classList.add 'disabled'
         | 
| 94 | 
            +
                    searchResultsWrapper.classList.add 'disabled'
         | 
| 95 | 
            +
             | 
| 96 | 
            +
                sjs = SimpleJekyllSearch
         | 
| 97 | 
            +
                  searchInput: document.getElementById 'blog-search__input'
         | 
| 98 | 
            +
                  resultsContainer: document.getElementById 'blog-search__results'
         | 
| 99 | 
            +
                  searchResultTemplate: '<li><span class="blog-list__meta"><time datetime="{date}">{date}</time></span> »  <a class="blog-list__link" href="{{ site.url }}{url}">{title}</a></li>'
         | 
| 100 | 
            +
                  noResultsText: '<p>{{ blog_.no_results | default: "No results found" }}</p>'
         | 
| 101 | 
            +
                  json: "{{ '/assets/json/blog_search.json' | relative_url }}"
         | 
| 102 | 
            +
             |