rawfeed 0.3.1 → 1.0.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.
Files changed (195) hide show
  1. checksums.yaml +4 -4
  2. data/.editorconfig +25 -0
  3. data/.gitignore +19 -0
  4. data/.gitlab/ci/gitlab-pages.yml +51 -0
  5. data/.hidden +6 -0
  6. data/404.html +6 -0
  7. data/Gemfile +51 -0
  8. data/README.md +102 -26
  9. data/_config.yml +77 -0
  10. data/_data/generic.yml +29 -0
  11. data/_data/screen/blog.yml +46 -0
  12. data/_data/screen/contact.yml +31 -0
  13. data/_data/screen/donate.yml +45 -0
  14. data/_data/screen/footer.yml +17 -0
  15. data/_data/screen/head.yml +49 -0
  16. data/_data/screen/home.yml +24 -0
  17. data/_data/screen/maintenance.yml +8 -0
  18. data/_data/screen/navbar.yml +41 -0
  19. data/_data/screen/page.yml +12 -0
  20. data/_data/screen/pixels.yml +7 -0
  21. data/_data/screen/pub.yml +4 -0
  22. data/_data/{resume.yml → screen/resume.yml} +8 -8
  23. data/_data/screen/socials.yml +20 -0
  24. data/_includes/assigned +36 -0
  25. data/_includes/layout/blog_search.html +22 -15
  26. data/_includes/layout/disqus.html +7 -8
  27. data/_includes/layout/footer.html +43 -28
  28. data/_includes/layout/giscus.html +15 -19
  29. data/_includes/layout/head.html +97 -75
  30. data/_includes/layout/maintenance.html +14 -11
  31. data/_includes/layout/navbar.html +253 -0
  32. data/_includes/layout/paginator.html +12 -13
  33. data/_includes/{alert → markdown/alert} +2 -2
  34. data/_includes/{chart → markdown/chart} +3 -3
  35. data/_includes/{image → markdown/image} +4 -4
  36. data/_includes/{socials → markdown/socials} +5 -5
  37. data/_includes/{video → markdown/video} +2 -2
  38. data/_layouts/blog/index.html +53 -0
  39. data/_layouts/{post.html → blog/post.html} +50 -36
  40. data/_layouts/blog/posts_by_tag.html +27 -0
  41. data/_layouts/blog/tags.html +32 -0
  42. data/_layouts/contact.html +156 -114
  43. data/_layouts/default.html +53 -48
  44. data/_layouts/donate.html +112 -0
  45. data/_layouts/error.html +9 -7
  46. data/_layouts/home.html +22 -19
  47. data/_layouts/licenses.html +2 -2
  48. data/_layouts/page.html +18 -17
  49. data/_layouts/pixels/index.html +75 -0
  50. data/_layouts/{pixel.html → pixels/post.html} +5 -5
  51. data/_layouts/pub.html +50 -44
  52. data/_layouts/resume.html +308 -265
  53. data/_pages/any-page.md +336 -0
  54. data/_pages/contact.md +16 -0
  55. data/_pages/donate.md +16 -0
  56. data/_pages/licenses.md +17 -0
  57. data/_pages/resume.md +14 -0
  58. data/_pixels/2025-10-15-first-my-pixel.md +34 -0
  59. data/_posts/2025-09-20-welcome-to-jekyll.md +36 -0
  60. data/_posts/2025-09-25-this-post-demonstrates-post-codeblocks.md +141 -0
  61. data/_posts/2025-09-25-this-post-demonstrates-post-content-styles.md +133 -0
  62. data/_posts/2025-10-04-content-styles-and-codeblocks.md +330 -0
  63. data/_sass/components/_markdown.scss +2 -2
  64. data/_sass/includes/_index.scss +2 -2
  65. data/_sass/includes/{_header.scss → _navbar.scss} +2 -6
  66. data/_sass/includes/_toc.scss +146 -0
  67. data/_sass/layouts/_blog.scss +1 -1
  68. data/_sass/layouts/_index.scss +2 -2
  69. data/_sass/layouts/_page.scss +0 -5
  70. data/_sass/layouts/_post.scss +8 -138
  71. data/_sass/layouts/{_tag-posts.scss → _posts_by_tag.scss} +3 -3
  72. data/_sass/layouts/_resume.scss +1 -1
  73. data/_sass/layouts/{_tag.scss → _tags.scss} +10 -6
  74. data/_sass/main.scss +2 -2
  75. data/_sass/theme/_dark.scss +2 -2
  76. data/_sass/theme/_light.scss +1 -1
  77. data/assets/js/blog.js +52 -18
  78. data/assets/js/contact.js +21 -20
  79. data/assets/js/default.js +67 -50
  80. data/assets/js/discus.js +2 -2
  81. data/assets/js/{donation.js → donate.js} +10 -9
  82. data/assets/js/home.js +18 -16
  83. data/assets/js/page.js +50 -172
  84. data/assets/js/toc.js +133 -0
  85. data/assets/json/blog_search.json +6 -6
  86. data/assets/vendors/fuse.min.js +9 -0
  87. data/blog/index.md +14 -0
  88. data/blog/tags/index.md +12 -0
  89. data/exe/rawfeed +29 -0
  90. data/index.md +15 -0
  91. data/lib/rawfeed/build/cleaner.rb +60 -0
  92. data/lib/rawfeed/build/image_minifier.rb +163 -0
  93. data/lib/rawfeed/build/minifier.rb +89 -0
  94. data/lib/rawfeed/build.rb +9 -0
  95. data/lib/rawfeed/command/backup.rb +124 -0
  96. data/lib/rawfeed/command/cli.rb +118 -0
  97. data/lib/rawfeed/command/installer.rb +156 -0
  98. data/lib/rawfeed/command/tools.rb +138 -0
  99. data/lib/rawfeed/{author.rb → content/author.rb} +7 -7
  100. data/lib/rawfeed/content/contact.rb +51 -0
  101. data/lib/rawfeed/content/donate.rb +48 -0
  102. data/lib/rawfeed/{draft.rb → content/draft.rb} +5 -3
  103. data/lib/rawfeed/content/licenses.rb +46 -0
  104. data/lib/rawfeed/{page.rb → content/page.rb} +4 -3
  105. data/lib/rawfeed/{pixel.rb → content/pixel.rb} +7 -4
  106. data/lib/rawfeed/content/post.rb +107 -0
  107. data/lib/rawfeed/{resume.rb → content/resume.rb} +23 -19
  108. data/lib/rawfeed/{layout.rb → core/layout.rb} +1 -1
  109. data/lib/rawfeed/core/utils.rb +103 -0
  110. data/lib/rawfeed/{version.rb → core/version.rb} +1 -1
  111. data/lib/rawfeed/{datelang.rb → plugin/datelang.rb} +5 -6
  112. data/lib/rawfeed/{pub.rb → plugin/pub.rb} +33 -31
  113. data/lib/rawfeed/{reading_time.rb → plugin/reading_time.rb} +5 -4
  114. data/lib/rawfeed/root.rb +3 -0
  115. data/lib/rawfeed.rb +36 -14
  116. data/pixels/index.md +11 -0
  117. data/robots.txt +26 -0
  118. metadata +167 -119
  119. data/_data/options.yml +0 -329
  120. data/_includes/layout/data.liquid +0 -31
  121. data/_includes/layout/header.html +0 -173
  122. data/_layouts/blog.html +0 -52
  123. data/_layouts/donation.html +0 -113
  124. data/_layouts/pixels.html +0 -71
  125. data/_layouts/tag.html +0 -33
  126. data/_layouts/tag_posts.html +0 -28
  127. data/assets/vendor/simple-jekyll-search.js +0 -433
  128. data/assets/vendor/simple-jekyll-search.min.js +0 -6
  129. data/lib/rawfeed/installer.rb +0 -37
  130. data/lib/rawfeed/post.rb +0 -60
  131. data/lib/rawfeed/utils.rb +0 -75
  132. /data/_includes/{details → markdown/details} +0 -0
  133. /data/_includes/{enddetails → markdown/enddetails} +0 -0
  134. /data/_includes/{endtabs → markdown/endtabs} +0 -0
  135. /data/_includes/{tabs → markdown/tabs} +0 -0
  136. /data/assets/images/{avatar_back.png → avatars/back.png} +0 -0
  137. /data/assets/images/{avatar_dark.png → avatars/dark.png} +0 -0
  138. /data/assets/images/{avatar_light.png → avatars/light.png} +0 -0
  139. /data/assets/images/{icons → donate}/bitcoin.svg +0 -0
  140. /data/assets/images/{icons → donate}/card.svg +0 -0
  141. /data/assets/images/{icons → donate}/donation.svg +0 -0
  142. /data/assets/images/{icons → donate}/lightning_network.svg +0 -0
  143. /data/assets/images/{icons → donate}/paypal.svg +0 -0
  144. /data/assets/images/{icons → donate}/pix.svg +0 -0
  145. /data/assets/images/{qrcode_btc_binance.jpg → donate/qrcode_btc_binance.jpg} +0 -0
  146. /data/assets/images/{qrcode_inter.jpg → donate/qrcode_inter.jpg} +0 -0
  147. /data/assets/images/{qrcode_wos.jpg → donate/qrcode_wos.jpg} +0 -0
  148. /data/assets/images/{icons → donate}/wos.png +0 -0
  149. /data/assets/{vendor/bootstrap → vendors/bootstrap-5.2.3}/css/bootstrap-grid.css +0 -0
  150. /data/assets/{vendor/bootstrap → vendors/bootstrap-5.2.3}/css/bootstrap-grid.css.map +0 -0
  151. /data/assets/{vendor/bootstrap → vendors/bootstrap-5.2.3}/css/bootstrap-grid.min.css +0 -0
  152. /data/assets/{vendor/bootstrap → vendors/bootstrap-5.2.3}/css/bootstrap-grid.min.css.map +0 -0
  153. /data/assets/{vendor/bootstrap → vendors/bootstrap-5.2.3}/css/bootstrap-grid.rtl.css +0 -0
  154. /data/assets/{vendor/bootstrap → vendors/bootstrap-5.2.3}/css/bootstrap-grid.rtl.css.map +0 -0
  155. /data/assets/{vendor/bootstrap → vendors/bootstrap-5.2.3}/css/bootstrap-grid.rtl.min.css +0 -0
  156. /data/assets/{vendor/bootstrap → vendors/bootstrap-5.2.3}/css/bootstrap-grid.rtl.min.css.map +0 -0
  157. /data/assets/{vendor/bootstrap → vendors/bootstrap-5.2.3}/css/bootstrap-reboot.css +0 -0
  158. /data/assets/{vendor/bootstrap → vendors/bootstrap-5.2.3}/css/bootstrap-reboot.css.map +0 -0
  159. /data/assets/{vendor/bootstrap → vendors/bootstrap-5.2.3}/css/bootstrap-reboot.min.css +0 -0
  160. /data/assets/{vendor/bootstrap → vendors/bootstrap-5.2.3}/css/bootstrap-reboot.min.css.map +0 -0
  161. /data/assets/{vendor/bootstrap → vendors/bootstrap-5.2.3}/css/bootstrap-reboot.rtl.css +0 -0
  162. /data/assets/{vendor/bootstrap → vendors/bootstrap-5.2.3}/css/bootstrap-reboot.rtl.css.map +0 -0
  163. /data/assets/{vendor/bootstrap → vendors/bootstrap-5.2.3}/css/bootstrap-reboot.rtl.min.css +0 -0
  164. /data/assets/{vendor/bootstrap → vendors/bootstrap-5.2.3}/css/bootstrap-reboot.rtl.min.css.map +0 -0
  165. /data/assets/{vendor/bootstrap → vendors/bootstrap-5.2.3}/css/bootstrap-utilities.css +0 -0
  166. /data/assets/{vendor/bootstrap → vendors/bootstrap-5.2.3}/css/bootstrap-utilities.css.map +0 -0
  167. /data/assets/{vendor/bootstrap → vendors/bootstrap-5.2.3}/css/bootstrap-utilities.min.css +0 -0
  168. /data/assets/{vendor/bootstrap → vendors/bootstrap-5.2.3}/css/bootstrap-utilities.min.css.map +0 -0
  169. /data/assets/{vendor/bootstrap → vendors/bootstrap-5.2.3}/css/bootstrap-utilities.rtl.css +0 -0
  170. /data/assets/{vendor/bootstrap → vendors/bootstrap-5.2.3}/css/bootstrap-utilities.rtl.css.map +0 -0
  171. /data/assets/{vendor/bootstrap → vendors/bootstrap-5.2.3}/css/bootstrap-utilities.rtl.min.css +0 -0
  172. /data/assets/{vendor/bootstrap → vendors/bootstrap-5.2.3}/css/bootstrap-utilities.rtl.min.css.map +0 -0
  173. /data/assets/{vendor/bootstrap → vendors/bootstrap-5.2.3}/css/bootstrap.css +0 -0
  174. /data/assets/{vendor/bootstrap → vendors/bootstrap-5.2.3}/css/bootstrap.css.map +0 -0
  175. /data/assets/{vendor/bootstrap → vendors/bootstrap-5.2.3}/css/bootstrap.min.css +0 -0
  176. /data/assets/{vendor/bootstrap → vendors/bootstrap-5.2.3}/css/bootstrap.min.css.map +0 -0
  177. /data/assets/{vendor/bootstrap → vendors/bootstrap-5.2.3}/css/bootstrap.rtl.css +0 -0
  178. /data/assets/{vendor/bootstrap → vendors/bootstrap-5.2.3}/css/bootstrap.rtl.css.map +0 -0
  179. /data/assets/{vendor/bootstrap → vendors/bootstrap-5.2.3}/css/bootstrap.rtl.min.css +0 -0
  180. /data/assets/{vendor/bootstrap → vendors/bootstrap-5.2.3}/css/bootstrap.rtl.min.css.map +0 -0
  181. /data/assets/{vendor/bootstrap → vendors/bootstrap-5.2.3}/js/bootstrap.bundle.js +0 -0
  182. /data/assets/{vendor/bootstrap → vendors/bootstrap-5.2.3}/js/bootstrap.bundle.js.map +0 -0
  183. /data/assets/{vendor/bootstrap → vendors/bootstrap-5.2.3}/js/bootstrap.bundle.min.js +0 -0
  184. /data/assets/{vendor/bootstrap → vendors/bootstrap-5.2.3}/js/bootstrap.bundle.min.js.map +0 -0
  185. /data/assets/{vendor/bootstrap → vendors/bootstrap-5.2.3}/js/bootstrap.esm.js +0 -0
  186. /data/assets/{vendor/bootstrap → vendors/bootstrap-5.2.3}/js/bootstrap.esm.js.map +0 -0
  187. /data/assets/{vendor/bootstrap → vendors/bootstrap-5.2.3}/js/bootstrap.esm.min.js +0 -0
  188. /data/assets/{vendor/bootstrap → vendors/bootstrap-5.2.3}/js/bootstrap.esm.min.js.map +0 -0
  189. /data/assets/{vendor/bootstrap → vendors/bootstrap-5.2.3}/js/bootstrap.js +0 -0
  190. /data/assets/{vendor/bootstrap → vendors/bootstrap-5.2.3}/js/bootstrap.js.map +0 -0
  191. /data/assets/{vendor/bootstrap → vendors/bootstrap-5.2.3}/js/bootstrap.min.js +0 -0
  192. /data/assets/{vendor/bootstrap → vendors/bootstrap-5.2.3}/js/bootstrap.min.js.map +0 -0
  193. /data/lib/rawfeed/{csp_filters.rb → plugin/csp_filters.rb} +0 -0
  194. /data/lib/rawfeed/{typescript_liquid.rb → plugin/typescript_liquid.rb} +0 -0
  195. /data/lib/rawfeed/{with_class.rb → plugin/with_class.rb} +0 -0
@@ -0,0 +1,133 @@
1
+ ---
2
+ layout: blog/post
3
+ title: "Content styles - Demonstration in the post"
4
+ description: "This post demonstrates post content styles"
5
+ author: "William Canin"
6
+ date: 2025-09-22 17:24:04 -0300
7
+ update_date: 2025-09-28 07:16:01 -0300
8
+ comments: true
9
+ tags: [example, style, include, chart]
10
+ toc:
11
+ enable: true
12
+ ---
13
+
14
+ > Note: This post create with command: `bundle exec rawfeed create:draft`
15
+ > And then using the: `bundle exec rawfeed post:draft`
16
+
17
+ # Theology (h1)
18
+
19
+ Lorem ipsum dolor sit amet, `consectetur` adipiscing elit. Fusce bibendum neque eget nunc mattis eu sollicitudin enim tincidunt. Vestibulum lacus tortor, ultricies id dignissim ac, bibendum in velit.
20
+
21
+ ## Eschatology
22
+
23
+ Lorem ipsum dolor sit amet, consectetur adipiscing elit. Fusce bibendum neque eget nunc mattis eu sollicitudin enim tincidunt. Vestibulum lacus tortor, ultricies id dignissim ac, bibendum in velit.
24
+
25
+ > Curabitur dignissim accumsan rutrum.
26
+
27
+ # Animals (h1)
28
+
29
+ Proin convallis mi ac felis pharetra aliquam. Curabitur [dignissim accumsan](/){:target="\_blank"} rutrum. In arcu magna, aliquet vel pretium et, molestie et arcu.
30
+
31
+ _Mauris lobortis nulla et felis ullamcorper bibendum._ Phasellus et hendrerit mauris. Proin eget nibh a massa vestibulum pretium. Suspendisse eu nisl a ante aliquet bibendum quis a nunc. Praesent varius interdum vehicula. Aenean risus libero, placerat at vestibulum eget, ultricies eu enim. Praesent nulla tortor, malesuada adipiscing adipiscing sollicitudin, adipiscing eget est.
32
+
33
+ ## Feline (h2)
34
+
35
+ Lorem ipsum dolor sit amet, consectetur adipiscing elit. **Fusce bibendum neque eget nunc mattis eu sollicitudin enim tincidunt.** Vestibulum lacus tortor, ultricies id dignissim ac, bibendum in velit.
36
+
37
+ ### Cat (h3)
38
+
39
+ Proin convallis mi ac felis pharetra aliquam. Curabitur dignissim accumsan rutrum. In arcu magna, aliquet vel pretium et, molestie et arcu. Mauris lobortis nulla et felis ullamcorper bibendum.
40
+
41
+ Phasellus et hendrerit mauris. Proin eget nibh a massa vestibulum pretium. Suspendisse eu nisl a ante aliquet bibendum quis a nunc.
42
+
43
+ ### Tiger (h3)
44
+
45
+ Praesent varius interdum vehicula. Aenean risus libero, placerat at vestibulum eget, ultricies eu enim. Praesent nulla tortor, malesuada adipiscing adipiscing sollicitudin, adipiscing eget est.
46
+
47
+ Lorem ipsum dolor sit amet, consectetur adipiscing elit. Fusce bibendum neque eget nunc mattis eu sollicitudin enim tincidunt.
48
+
49
+ # Lists
50
+
51
+ ## Ordered list
52
+
53
+ 1. First item, yo
54
+ 2. Second item, dawg
55
+ 3. Third item, what what?!
56
+ 4. Fourth item, fo sheezy my neezy
57
+ 5. Fifth item, nested!
58
+
59
+ ## List with subtitles
60
+
61
+ - First item, yo
62
+ - Second item, dawg
63
+ - Third item, what what?!
64
+ - Fourth item, fo sheezy my neezy
65
+ - Fifth item, nested!
66
+ - So la ti do
67
+ - Ba-da-bing!
68
+ - Ba-da-boom!
69
+
70
+ ## Whaaat, a checklist??
71
+
72
+ - [ ] Milk
73
+ - [x] Cookies
74
+ - [x] Classic Choco-chip
75
+ - [x] Sourdough Choco-chip
76
+ - [ ] Chee-ee-eeee-zzze!!!!
77
+
78
+ # Table
79
+
80
+ | Title 1 | Title 2 | Title 3 | Title 4 |
81
+ | --------------------- | --------------------- | --------------------- | --------------------- |
82
+ | lorem | lorem ipsum | lorem ipsum dolor | lorem ipsum dolor sit |
83
+ | lorem ipsum dolor sit | lorem ipsum dolor sit | lorem ipsum dolor sit | lorem ipsum dolor sit |
84
+ | lorem ipsum dolor sit | lorem ipsum dolor sit | lorem ipsum dolor sit | lorem ipsum dolor sit |
85
+ | lorem ipsum dolor sit | lorem ipsum dolor sit | lorem ipsum dolor sit | lorem ipsum dolor sit |
86
+
87
+ # Tabs example
88
+
89
+ {% include markdown/tabs %}
90
+
91
+ tab1: Installation
92
+
93
+ Tab 1 content — can contain **markdown**, images, code, etc.
94
+
95
+ tab2: Settings
96
+
97
+ Tab 2 content — everything is set up normally.
98
+
99
+ {% include markdown/endtabs %}
100
+
101
+ # Alerts
102
+
103
+ ## Success
104
+
105
+ {% include markdown/alert type="success" content="
106
+ Congratulations! Your theme is working.
107
+ "%}
108
+
109
+ ## Danger
110
+
111
+ {% include markdown/alert type="danger" content="
112
+ Danger! Do not remove this example
113
+ "%}
114
+
115
+ ## Warning
116
+
117
+ {% include markdown/alert type="warning" content="
118
+ Warning! This is just an example
119
+ "%}
120
+
121
+ # Charts example
122
+
123
+ {% include markdown/chart
124
+ type="bar"
125
+ labels="January,February,March,April,May"
126
+ data="10,13,20,25,50"
127
+ label="Sales"
128
+ color="#3c7052ff"
129
+ %}
130
+
131
+ # Socials networks links
132
+
133
+ {% include markdown/socials pos="center" %}
@@ -0,0 +1,330 @@
1
+ ---
2
+ layout: blog/post
3
+ title: "Content styles and Codeblocks - Demonstration in the post"
4
+ description: "An example post for: Code Block and Styles"
5
+ author: "William C. Canin"
6
+ date: 2025-10-04 17:09:18 -0300
7
+ update_date:
8
+ comments: true
9
+ tags: [example, codeblocks, style, include, chart, ruby, html, rust, raw]
10
+ toc:
11
+ enable: true
12
+ ---
13
+
14
+ > Note: This post create with command: `bundle exec rawfeed create:draft`
15
+ > And then using the: `bundle exec rawfeed post:draft`
16
+
17
+ # Theology (h1)
18
+
19
+ Lorem ipsum dolor sit amet, `consectetur` adipiscing elit. Fusce bibendum neque eget nunc mattis eu sollicitudin enim tincidunt. Vestibulum lacus tortor, ultricies id dignissim ac, bibendum in velit.
20
+
21
+ ## Eschatology
22
+
23
+ Lorem ipsum dolor sit amet, consectetur adipiscing elit. Fusce bibendum neque eget nunc mattis eu sollicitudin enim tincidunt. Vestibulum lacus tortor, ultricies id dignissim ac, bibendum in velit.
24
+
25
+ > Curabitur dignissim accumsan rutrum.
26
+
27
+ # Animals (h1)
28
+
29
+ Proin convallis mi ac felis pharetra aliquam. Curabitur [dignissim accumsan](/){:target="\_blank"} rutrum. In arcu magna, aliquet vel pretium et, molestie et arcu.
30
+
31
+ _Mauris lobortis nulla et felis ullamcorper bibendum._ Phasellus et hendrerit mauris. Proin eget nibh a massa vestibulum pretium. Suspendisse eu nisl a ante aliquet bibendum quis a nunc. Praesent varius interdum vehicula. Aenean risus libero, placerat at vestibulum eget, ultricies eu enim. Praesent nulla tortor, malesuada adipiscing adipiscing sollicitudin, adipiscing eget est.
32
+
33
+ ## Feline (h2)
34
+
35
+ Lorem ipsum dolor sit amet, consectetur adipiscing elit. **Fusce bibendum neque eget nunc mattis eu sollicitudin enim tincidunt.** Vestibulum lacus tortor, ultricies id dignissim ac, bibendum in velit.
36
+
37
+ ### Cat (h3)
38
+
39
+ Proin convallis mi ac felis pharetra aliquam. Curabitur dignissim accumsan rutrum. In arcu magna, aliquet vel pretium et, molestie et arcu. Mauris lobortis nulla et felis ullamcorper bibendum.
40
+
41
+ Phasellus et hendrerit mauris. Proin eget nibh a massa vestibulum pretium. Suspendisse eu nisl a ante aliquet bibendum quis a nunc.
42
+
43
+ ### Tiger (h3)
44
+
45
+ Praesent varius interdum vehicula. Aenean risus libero, placerat at vestibulum eget, ultricies eu enim. Praesent nulla tortor, malesuada adipiscing adipiscing sollicitudin, adipiscing eget est.
46
+
47
+ Lorem ipsum dolor sit amet, consectetur adipiscing elit. Fusce bibendum neque eget nunc mattis eu sollicitudin enim tincidunt.
48
+
49
+ # Lists
50
+
51
+ ## Ordered list
52
+
53
+ 1. First item, yo
54
+ 2. Second item, dawg
55
+ 3. Third item, what what?!
56
+ 4. Fourth item, fo sheezy my neezy
57
+ 5. Fifth item, nested!
58
+
59
+ ## List with subtitles
60
+
61
+ - First item, yo
62
+ - Second item, dawg
63
+ - Third item, what what?!
64
+ - Fourth item, fo sheezy my neezy
65
+ - Fifth item, nested!
66
+ - So la ti do
67
+ - Ba-da-bing!
68
+ - Ba-da-boom!
69
+
70
+ ## Whaaat, a checklist??
71
+
72
+ - [ ] Milk
73
+ - [x] Cookies
74
+ - [x] Classic Choco-chip
75
+ - [x] Sourdough Choco-chip
76
+ - [ ] Chee-ee-eeee-zzze!!!!
77
+
78
+ # Quotes
79
+
80
+ > normal citation
81
+
82
+ > > double quote
83
+
84
+ # Line separators
85
+
86
+ ---
87
+
88
+ ---
89
+
90
+ ---
91
+
92
+ # Escaping special characters
93
+
94
+ \*not in italics\*
95
+
96
+ # Table
97
+
98
+ | Title 1 | Title 2 | Title 3 | Title 4 |
99
+ | --------------------- | --------------------- | --------------------- | --------------------- |
100
+ | lorem | lorem ipsum | lorem ipsum dolor | lorem ipsum dolor sit |
101
+ | lorem ipsum dolor sit | lorem ipsum dolor sit | lorem ipsum dolor sit | lorem ipsum dolor sit |
102
+ | lorem ipsum dolor sit | lorem ipsum dolor sit | lorem ipsum dolor sit | lorem ipsum dolor sit |
103
+ | lorem ipsum dolor sit | lorem ipsum dolor sit | lorem ipsum dolor sit | lorem ipsum dolor sit |
104
+
105
+ # Images or Gifs example
106
+
107
+ {% include markdown/image
108
+ src= "https://media0.giphy.com/media/v1.Y2lkPTc5MGI3NjExMXNqM21hNWtxeWtkMTh0ajIwc3prYmt3dmV0a3ptY2RyMDJrejlrYiZlcD12MV9pbnRlcm5hbF9naWZfYnlfaWQmY3Q9Zw/xT9IgG50Fb7Mi0prBC/giphy.gif"
109
+ title="Hello!"
110
+ caption="Example animated GIF — © Giphy"
111
+ width="300"
112
+ height="auto"
113
+ border-radius="2"
114
+ align="left"
115
+ border-color="#858585" %}
116
+
117
+ Lorem ipsum dolor sit amet, consectetur adipiscing elit. Fusce bibendum neque eget nunc mattis eu sollicitudin enim tincidunt.
118
+ _Mauris lobortis nulla et felis ullamcorper bibendum._ Phasellus et hendrerit mauris. Proin eget nibh a massa vestibulum pretium. Suspendisse eu nisl a ante aliquet bibendum quis a nunc. Praesent varius interdum vehicula. Aenean risus libero, placerat at vestibulum eget, ultricies eu enim. Praesent nulla tortor, malesuada adipiscing adipiscing sollicitudin, adipiscing eget est.
119
+
120
+ {% include markdown/image
121
+ src= "https://media0.giphy.com/media/v1.Y2lkPTc5MGI3NjExMXNqM21hNWtxeWtkMTh0ajIwc3prYmt3dmV0a3ptY2RyMDJrejlrYiZlcD12MV9pbnRlcm5hbF9naWZfYnlfaWQmY3Q9Zw/xT9IgG50Fb7Mi0prBC/giphy.gif"
122
+ title="Hello!"
123
+ caption="Example animated GIF — © Giphy"
124
+ width="300"
125
+ height="auto"
126
+ border-radius="2"
127
+ align="right" %}
128
+
129
+ Lorem ipsum dolor sit amet, consectetur adipiscing elit. Fusce bibendum neque eget nunc mattis eu sollicitudin enim tincidunt.
130
+ _Mauris lobortis nulla et felis ullamcorper bibendum._ Phasellus et hendrerit mauris. Proin eget nibh a massa vestibulum pretium. Suspendisse eu nisl a ante aliquet bibendum quis a nunc. Praesent varius interdum vehicula. Aenean risus libero, placerat at vestibulum eget, ultricies eu enim. Praesent nulla tortor, malesuada adipiscing adipiscing sollicitudin, adipiscing eget est.
131
+
132
+ {% include markdown/image
133
+ src= "https://media0.giphy.com/media/v1.Y2lkPTc5MGI3NjExMXNqM21hNWtxeWtkMTh0ajIwc3prYmt3dmV0a3ptY2RyMDJrejlrYiZlcD12MV9pbnRlcm5hbF9naWZfYnlfaWQmY3Q9Zw/xT9IgG50Fb7Mi0prBC/giphy.gif"
134
+ title="Hello!"
135
+ caption="Example animated GIF — © Giphy"
136
+ width="100%"
137
+ height="auto"
138
+ border-radius="2"
139
+ align="center"
140
+ border-color="#46e038" %}
141
+
142
+ Praesent varius interdum vehicula. Aenean risus libero, placerat at vestibulum eget, ultricies eu enim. Praesent nulla tortor, malesuada adipiscing adipiscing sollicitudin, adipiscing eget est.
143
+
144
+ # Video YouTube
145
+
146
+ > Note: You must copy the embed link
147
+
148
+ {% include markdown/video title="Video" url="https://www.youtube.com/embed/xHusjrb_34A?si=th-S_gaVdKqtrJjj" %}
149
+
150
+ # Tabs example
151
+
152
+ {% include markdown/tabs %}
153
+
154
+ tab1: Installation
155
+
156
+ Tab 1 content — can contain **markdown**, images, code, etc.
157
+
158
+ tab2: Settings
159
+
160
+ Tab 2 content — everything is set up normally.
161
+
162
+ {% include markdown/endtabs %}
163
+
164
+ # Details example
165
+
166
+ {% include markdown/details summary="How install" %}
167
+
168
+ Here's the **expanded** content — it may have Markdown, code, lists, etc.
169
+
170
+ {% include markdown/enddetails %}
171
+
172
+ # Alerts
173
+
174
+ ## Success
175
+
176
+ {% include markdown/alert type="success" content="
177
+ Congratulations! Your theme is working.
178
+ "%}
179
+
180
+ ## Danger
181
+
182
+ {% include markdown/alert type="danger" content="
183
+ Danger! Do not remove this example
184
+ "%}
185
+
186
+ ## Warning
187
+
188
+ {% include markdown/alert type="warning" content="
189
+ Warning! This is just an example
190
+ "%}
191
+
192
+ # Charts example
193
+
194
+ {% include markdown/chart
195
+ type="bar"
196
+ labels="January,February,March,April,May"
197
+ data="10,13,20,25,50"
198
+ label="Sales"
199
+ color="#00bfffff"
200
+ %}
201
+
202
+ # Socials networks links
203
+
204
+ {% include markdown/socials pos="center" %}
205
+
206
+ # Blockcodes
207
+
208
+ An article with various blocks of highlighted code snippets.
209
+
210
+ ## HTML code using crase ` ` `
211
+
212
+ ```html
213
+ <html>
214
+ <head> </head>
215
+ <body>
216
+ <p>Hello, World!</p>
217
+ </body>
218
+ </html>
219
+ ```
220
+
221
+ ## Ruby code using crase ` ` `
222
+
223
+ ```ruby
224
+ include Enumerable
225
+
226
+ module Foo
227
+ class Bar
228
+ LIPSUM = "lorem ipsum dolor sit"
229
+
230
+ attr_reader :layout
231
+
232
+ def initialize
233
+ @layout = Layout.new
234
+ end
235
+
236
+ # instance method
237
+ def profile
238
+ measure_time do
239
+ compile layout
240
+ layout.render_with Bar::LIPSUM
241
+ end
242
+ rescue ArgumentError
243
+ false
244
+ end
245
+ end
246
+ end
247
+
248
+ # Execute code
249
+ Foo::Bar.new.profile
250
+ ```
251
+
252
+ ## Sass code using crase ` ` `
253
+
254
+ ```sass
255
+ @import "base"
256
+
257
+ .card
258
+ display: inline-block
259
+ margin: 0
260
+ padding: 0
261
+
262
+ &:hover
263
+ color: #ab45ef;
264
+ ```
265
+
266
+ ## Block raw
267
+
268
+ {% raw %}
269
+
270
+ ```liquid
271
+ {%- assign foo = page.foo | bar: 'baz' -%}
272
+ {{ foo }}
273
+ ```
274
+
275
+ {% endraw %}
276
+
277
+ ## HTML using { % highlight % } with numbers
278
+
279
+ {% highlight html linenos %}
280
+
281
+ <html>
282
+ <head>
283
+ <meta charset="utf-8" />
284
+ <title>Hello World</title>
285
+ </head>
286
+ <body>
287
+ <p>Hello, World!</p>
288
+ </body>
289
+ </html>
290
+ {% endhighlight %}
291
+
292
+ ## Rust using { % highlight % } with numbers and marking lines
293
+
294
+ {% highlight rust linenos mark_lines="1 7 15 32" %}
295
+
296
+ // main.rs
297
+
298
+ use std::collections::HashMap;
299
+
300
+ fn main() {
301
+
302
+ let workflow: HashMap<&str, HashMap<&str, Vec<&str>>> = HashMap::from([
303
+ (
304
+ "My Main Tech Stack",
305
+ HashMap::from([
306
+ ("Languages", vec!["Rust", "Python", "Shell Script"]),
307
+ ("Frontend", vec!["HTML", "CSS", "SASS", "Bootstrap", "Jekyll"]),
308
+ ("Database", vec!["PostGreSQL", "MySQL"]),
309
+ ("Tools", vec!["VSCode", "Vim", "JetBrains IDEs", "Git"]),
310
+ ("OS", vec!["Linux", "Windows"]),
311
+ ]),
312
+ ),
313
+ ]);
314
+
315
+ let yt_link: &str = "https://www.youtube.com/c/williamcanin";
316
+
317
+ println!("Hello, World!");
318
+ println!("My name is William, and I am a programming and hacking enthusiast.");
319
+
320
+ for (key, value) in &workflow {
321
+ println!("{}:", key);
322
+ for (inner_key, inner_value) in value {
323
+ println!(" {}: {:?}", inner_key, inner_value);
324
+ }
325
+ }
326
+
327
+ println!("YouTube::> {}", yt_link);
328
+
329
+ }
330
+ {% endhighlight %}
@@ -292,11 +292,11 @@
292
292
  color: var(--text-color) !important;
293
293
  }
294
294
 
295
- /* toc/sumary */
295
+ /* toc/summary */
296
296
  .toc {
297
297
  padding: 1rem 2rem;
298
298
  margin: 1rem 0;
299
- background: var(--sumary-bg-color);
299
+ background: var(--summary-bg-color);
300
300
  color: var(--text-color);
301
301
  border: 1px solid var(--border-color);
302
302
  // box-shadow: 0 2px 8px var(--shadow-color);
@@ -1,4 +1,4 @@
1
- @use "header";
1
+ @use "navbar";
2
2
  @use "rouge-light";
3
3
  @use "rouge-dark";
4
4
  @use "highlight";
@@ -6,4 +6,4 @@
6
6
  @use "terminal";
7
7
  @use "paginator";
8
8
  @use "maintenance";
9
-
9
+ @use "toc";
@@ -39,7 +39,7 @@
39
39
  border-bottom: 1px solid var(--text-color);
40
40
  }
41
41
 
42
- .header {
42
+ .navigation {
43
43
  margin: 0 auto;
44
44
  margin-top: 20px;
45
45
  margin-bottom: 20px;
@@ -102,13 +102,9 @@
102
102
  // margin: 0px 5px;
103
103
  }
104
104
 
105
-
106
- // O contêiner que reage ao hover
107
-
108
-
109
105
  .avatar {
110
106
  &-wrapper {
111
- // Define a perspectiva para o efeito 3D
107
+ // Define the perspective for the 3D effect.
112
108
  perspective: 1000px;
113
109
  }
114
110
 
@@ -0,0 +1,146 @@
1
+
2
+ /* Automatic TOC */
3
+ .auto-toc {
4
+ position: fixed;
5
+ left: 0;
6
+ top: 15vh;
7
+ height: auto;
8
+ max-height: 70vh;
9
+ width: 24px;
10
+ background: transparent;
11
+ z-index: 10000;
12
+ transition: width 0.3s cubic-bezier(0.4, 0, 0.2, 1), background 0.3s ease, box-shadow 0.3s ease;
13
+ display: flex;
14
+ align-items: center;
15
+ overflow: hidden;
16
+ // border-radius: 0 12px 12px 0;
17
+ border: 2px solid transparent !important;
18
+ padding: 20px 0;
19
+
20
+ &:hover {
21
+ width: 380px;
22
+ background: var(--bg-color);
23
+ box-shadow: 8px 0 25px rgba(0, 0, 0, 0.15);
24
+ border: 2px dotted var(--background-focus-border-color) !important;
25
+ border-left: none;
26
+
27
+ .auto-toc-bars {
28
+ opacity: 0;
29
+ pointer-events: none;
30
+ }
31
+
32
+ .auto-toc-content {
33
+ opacity: 1;
34
+ transform: translateX(0);
35
+ pointer-events: all;
36
+ }
37
+ }
38
+
39
+ .auto-toc-bars {
40
+ position: absolute;
41
+ left: 6px;
42
+ display: flex;
43
+ flex-direction: column;
44
+ gap: 4px;
45
+ transition: opacity 0.2s ease;
46
+
47
+ .toc-bar {
48
+ width: 12px;
49
+ height: 3px;
50
+ background: var(--primary-color);
51
+ border-radius: 2px;
52
+ opacity: 0.8;
53
+
54
+ &:nth-child(even) {
55
+ width: 8px;
56
+ }
57
+ }
58
+ }
59
+
60
+ .auto-toc-content {
61
+ width: 100%;
62
+ height: 100%;
63
+ max-height: 70vh;
64
+ padding: 1.5rem;
65
+ opacity: 0;
66
+ transform: translateX(-20px);
67
+ transition: opacity 0.3s ease, transform 0.3s ease;
68
+ pointer-events: none;
69
+ display: flex;
70
+ flex-direction: column;
71
+ background: var(--bg-color);
72
+
73
+ h2 {
74
+ font-size: 0.85rem;
75
+ text-transform: uppercase;
76
+ letter-spacing: 0.12em;
77
+ color: var(--text-muted-color);
78
+ margin-bottom: 1.2rem;
79
+ font-weight: 800;
80
+ border-bottom: 1px solid var(--border-color);
81
+ padding-bottom: 0.5rem;
82
+ }
83
+
84
+ .auto-toc-list {
85
+ flex: 1;
86
+ overflow-y: auto;
87
+ list-style: none;
88
+ padding: 0;
89
+ margin: 0;
90
+ padding-right: 10px;
91
+
92
+ &::-webkit-scrollbar {
93
+ width: 4px;
94
+ }
95
+
96
+ &::-webkit-scrollbar-thumb {
97
+ background: var(--border-color);
98
+ border-radius: 2px;
99
+ }
100
+
101
+ ul {
102
+ list-style: none;
103
+ padding-left: 1rem;
104
+ margin: 0.4rem 0;
105
+ border-left: 1px solid var(--border-color);
106
+ }
107
+
108
+ li {
109
+ margin: 0.5rem 0;
110
+ font-size: 0.88rem;
111
+
112
+ a {
113
+ color: var(--text-muted-color);
114
+ text-decoration: none;
115
+ transition: all 0.2s ease;
116
+ display: block;
117
+ line-height: 1.4;
118
+
119
+ &:hover {
120
+ color: var(--primary-color);
121
+ padding-left: 4px;
122
+ }
123
+
124
+ &.active {
125
+ color: var(--primary-color);
126
+ font-weight: 700;
127
+ border-left: 3px solid var(--primary-color);
128
+ padding-left: 12px;
129
+ margin-left: 0;
130
+
131
+ &::before {
132
+ display: none;
133
+ }
134
+ }
135
+ }
136
+ }
137
+ }
138
+ }
139
+ }
140
+
141
+ /* Ensure post content doesn't get weird gaps if TOC is floating */
142
+ @media (max-width: 1200px) {
143
+ .auto-toc {
144
+ display: none !important;
145
+ }
146
+ }
@@ -72,7 +72,7 @@
72
72
  pointer-events: auto;
73
73
  }
74
74
 
75
- &__wapper {
75
+ &__wrap {
76
76
  display: flex;
77
77
  align-items: center;
78
78
  gap: 0;
@@ -3,8 +3,8 @@
3
3
  @use "blog";
4
4
  @use "page";
5
5
  @use "post";
6
- @use "tag";
7
- @use "tag-posts";
6
+ @use "tags";
7
+ @use "posts_by_tag";
8
8
  @use "contact";
9
9
  @use "error";
10
10
  @use "resume";
@@ -10,9 +10,4 @@
10
10
  font-family: "SUSE Mono", sans-serif;
11
11
  color: var(--text-muted-color);
12
12
  }
13
-
14
- &-reading_time {
15
- margin-top: 15px;
16
- color: var(--text-muted-color);
17
- }
18
13
  }