rawfeed 0.1.3 → 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.
Files changed (103) hide show
  1. checksums.yaml +4 -4
  2. data/LICENSE.txt +20 -21
  3. data/README.md +13 -112
  4. data/_data/options.yml +270 -0
  5. data/_data/resume.yml +8 -9
  6. data/_includes/alert +3 -1
  7. data/_includes/chart +13 -32
  8. data/_includes/details +1 -57
  9. data/_includes/image +12 -4
  10. data/_includes/layout/blog_search.html +7 -5
  11. data/_includes/layout/data.liquid +21 -3
  12. data/_includes/layout/disqus.html +12 -26
  13. data/_includes/layout/footer.html +34 -16
  14. data/_includes/layout/giscus.html +27 -19
  15. data/_includes/layout/head.html +58 -19
  16. data/_includes/layout/header.html +127 -101
  17. data/_includes/layout/maintenance.html +8 -12
  18. data/_includes/layout/paginator.html +6 -4
  19. data/_includes/socials +7 -5
  20. data/_includes/tabs +1 -94
  21. data/_includes/toc +12 -152
  22. data/_includes/video +4 -1
  23. data/_layouts/blog.html +8 -7
  24. data/_layouts/contact.html +90 -196
  25. data/_layouts/default.html +42 -339
  26. data/_layouts/error.html +6 -4
  27. data/_layouts/home.html +45 -36
  28. data/_layouts/licenses.html +10 -0
  29. data/_layouts/page.html +4 -6
  30. data/_layouts/pixel.html +48 -0
  31. data/_layouts/pixels.html +71 -0
  32. data/_layouts/post.html +28 -31
  33. data/_layouts/resume.html +43 -36
  34. data/_layouts/tag.html +14 -3
  35. data/_layouts/tag_posts.html +3 -3
  36. data/_sass/base/_index.scss +39 -3
  37. data/_sass/components/_badges.scss +10 -0
  38. data/_sass/components/_markdown.scss +20 -17
  39. data/_sass/includes/_footer.scss +18 -8
  40. data/_sass/includes/_header.scss +24 -19
  41. data/_sass/includes/_highlight.scss +20 -7
  42. data/_sass/includes/_maintenance.scss +2 -3
  43. data/_sass/includes/_terminal.scss +35 -12
  44. data/_sass/layouts/_blog.scss +13 -9
  45. data/_sass/layouts/_contact.scss +6 -5
  46. data/_sass/layouts/_default.scss +5 -5
  47. data/_sass/layouts/_index.scss +3 -0
  48. data/_sass/layouts/_licenses.scss +7 -0
  49. data/_sass/layouts/_page.scss +1 -0
  50. data/_sass/layouts/_pixel.scss +61 -0
  51. data/_sass/layouts/_pixels.scss +86 -0
  52. data/_sass/layouts/_post.scss +4 -11
  53. data/_sass/layouts/_resume.scss +17 -7
  54. data/_sass/layouts/_tag-posts.scss +1 -2
  55. data/_sass/layouts/_tag.scss +12 -1
  56. data/_sass/main.scss +16 -1
  57. data/_sass/theme/_dark.scss +15 -5
  58. data/_sass/theme/_light.scss +9 -2
  59. data/assets/images/blog/.keep +0 -0
  60. data/assets/images/pixels/luffy.jpg +0 -0
  61. data/assets/js/blog.coffee +102 -0
  62. data/assets/js/contact.coffee +105 -0
  63. data/assets/js/default.coffee +172 -0
  64. data/assets/js/discus.coffee +30 -0
  65. data/assets/js/fallback/README.md +3 -0
  66. data/assets/js/fallback/blog.js +113 -0
  67. data/assets/js/fallback/contact.js +116 -0
  68. data/assets/js/{default.js → fallback/default.js} +50 -0
  69. data/assets/js/fallback/discus.js +32 -0
  70. data/{_includes/layout/google_analytics.html → assets/js/fallback/google_analytics.js} +7 -3
  71. data/assets/js/fallback/home.js +275 -0
  72. data/assets/js/fallback/no_inframe.js +4 -0
  73. data/assets/js/fallback/page.js +423 -0
  74. data/assets/js/fallback/pixels.js +1 -0
  75. data/assets/js/fallback/resume.js +13 -0
  76. data/assets/js/fallback/tags.js +1 -0
  77. data/assets/js/fallback/theme_load.js +4 -0
  78. data/assets/js/google_analytics.coffee +24 -0
  79. data/assets/js/home.coffee +250 -0
  80. data/assets/js/no_inframe.coffee +9 -0
  81. data/assets/js/page.coffee +379 -0
  82. data/assets/js/pixels.coffee +2 -0
  83. data/assets/js/resume.coffee +9 -0
  84. data/assets/js/tags.coffee +2 -0
  85. data/assets/js/theme_load.coffee +6 -0
  86. data/assets/json/blog_search.json +2 -2
  87. data/lib/rawfeed/author.rb +59 -0
  88. data/lib/rawfeed/csp_filters.rb +19 -0
  89. data/lib/rawfeed/draft.rb +1 -1
  90. data/lib/rawfeed/layout.rb +7 -0
  91. data/lib/rawfeed/page.rb +4 -2
  92. data/lib/rawfeed/pixel.rb +32 -0
  93. data/lib/rawfeed/post.rb +2 -2
  94. data/lib/rawfeed/resume.rb +1 -0
  95. data/lib/rawfeed/typescript_liquid.rb +172 -0
  96. data/lib/rawfeed/utils.rb +1 -0
  97. data/lib/rawfeed/version.rb +1 -1
  98. data/lib/rawfeed/with_class.rb +20 -0
  99. data/lib/rawfeed.rb +5 -0
  100. metadata +46 -12
  101. data/assets/js/avatar.js +0 -50
  102. data/assets/js/terminal.js +0 -18
  103. data/assets/js/toc.js +0 -22
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 5c77c26cafbcdaddf6d5297d5ec37d0e6912e305b31055c412d5f3fb595e6011
4
- data.tar.gz: ee87b78c301ed6862181631c4b71938c8fbeb67133262f915218dc63943e9706
3
+ metadata.gz: 58794996c0f3602ff169ec079381bf2772cf34933cfab4ae3487ea244a71b03a
4
+ data.tar.gz: b9e397d957ed2a62f0151f69e4ae8df5cc986323e97963f1776ecccd32f91c13
5
5
  SHA512:
6
- metadata.gz: fb7020880c461a817305c26e2a5076cd7418b2509aaf0207e5b3352e071f4ea86595a24bb9a9791043e23d122686131066b3fb33f062fc0a5c2f16f9e676dd6e
7
- data.tar.gz: 99d68cc1a6ea32e42c900f8e3bf2d6bc4561bad407ee50bd83449586e562ba6aba4bcfcf4b8023acc30260f98e893e2fe8ae52ba0ff46e157128c08fcf0c9a9e
6
+ metadata.gz: fefe7ba577226303678b1dbe4509fe47ef0e289411484a9641755e98b27684029ce841f55c551756d6b0d2bc433a0e75824a049080415b236b755bb046495ff3
7
+ data.tar.gz: b3f891e58952291526e8a7b69e4f13c8683e2db608414c88c27eaddb65a81e42177be2c6c0427da7a07a2714ec56d63c68dffb3a42d87ecbb694b229cc8c6db0
data/LICENSE.txt CHANGED
@@ -1,21 +1,20 @@
1
- The MIT License (MIT)
2
-
3
- Copyright (c) 2025 William C. Canin <william.costa.canin@gmail.com>
4
-
5
- Permission is hereby granted, free of charge, to any person obtaining a copy
6
- of this software and associated documentation files (the "Software"), to deal
7
- in the Software without restriction, including without limitation the rights
8
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
- copies of the Software, and to permit persons to whom the Software is
10
- furnished to do so, subject to the following conditions:
11
-
12
- The above copyright notice and this permission notice shall be included in all
13
- copies or substantial portions of the Software.
14
-
15
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
- SOFTWARE.
1
+ Creative Commons Attribution 4.0 International (CC BY 4.0)
2
+
3
+ Copyright (c) 2025 {rawfeed} <https://rawfeed.github.io>
4
+
5
+ This theme is licensed under the Creative Commons Attribution 4.0 International License.
6
+
7
+ You are free to:
8
+
9
+ Share copy and redistribute the material in any medium or format
10
+ Adapt remix, transform, and build upon the material for any purpose, even commercially
11
+
12
+ Under the following conditions:
13
+
14
+ • Attribution — You must give appropriate credit, provide a link to the license, and indicate if changes were made.
15
+ You may do so in any reasonable manner, but not in any way that suggests the licensor endorses you or your use.
16
+ The attribution must include the author’s name and the original link, visible on the website or derivative product.
17
+
18
+ No additional restrictions You may not apply legal terms or technological measures that legally restrict others from doing anything the license permits.
19
+
20
+ License text: https://creativecommons.org/licenses/by/4.0/
data/README.md CHANGED
@@ -3,12 +3,12 @@
3
3
  <br>
4
4
  <small>Rawfeed — A raw Jekyll theme for minimalists</small>
5
5
  <br>
6
- <a href="https://badge.fury.io/rb/rawfeed"><img src="https://badge.fury.io/rb/rawfeed.svg" alt="Gem Version" height="18"></a>
7
- <br>
8
- <a href="https://williamcanin.github.io/rawfeed" target="_blank">Theme Preview</a>
6
+ <a href="https://badge.fury.io/rb/rawfeed"><img src="https://badge.fury.io/rb/rawfeed.svg?icon=si%3Arubygems" alt="Gem Version" height="18"></a>
9
7
  </p>
10
8
 
11
- # Requirements
9
+ # For developer
10
+
11
+ ## Requirements
12
12
 
13
13
  | Required | Version | How to verify | How to install |
14
14
  | -------- | ------- | ------------- | --------------------------------- |
@@ -19,132 +19,33 @@
19
19
  | NodeJs | >= 20 | `node -v` | [NodeJS](https://nodejs.org) |
20
20
  | Npm | >= 9 | `npm -v` | **NodeJS** contains **Npm** |
21
21
 
22
- # Features
23
-
24
- - [x] One-command installation (via Unix|PowerShell);
25
- - [x] A terminal emulator on the home page with commands;
26
- - [x] Commands for manipulating page headers, posts and drafts in markdown;
27
- - [x] Smart floating TOC in posts;
28
- - [x] Theme change: light/dark;
29
- - [x] Chart in posts;
30
- - [x] Stylized Markdown;
31
- - [x] Avatar opens in modal with inversion animation for each different theme (light/dark);
32
- - [x] Enables and Disables weblog;
33
- - [x] Home page with about or blog, you decide with one command;
34
- - [x] A quick search field on the weblog using keyword and date;
35
- - [x] Weblog pagination;
36
- - [x] YouTube video in weblog posts;
37
- - [x] Social network link on the home page or by command in the terminal;
38
- - [x] Feed in weblog;
39
- - [x] SEO-rich website;
40
- - [x] Entire site minified in build: html, images, css and javascript.
41
- - [x] Maintenance page;
42
- - [x] Comments on blog posts with Giscus or Disqus (only in production [jekyll build]);
43
- - [x] Google Analytics (only in production [jekyll build]);
44
-
45
- # Installation
46
-
47
- In the terminal/Command Prompt, run the commands below according to the OS.
48
-
49
- **Unix:**
50
22
 
51
- ```shell
52
- curl -fsSL https://raw.githubusercontent.com/williamcanin/rawfeed/refs/heads/main/tools/installer/unix/install.sh | sh
53
- ```
54
-
55
- **Windows:**
23
+ ## Clone
56
24
 
57
25
  ```shell
58
- iwr -useb https://raw.githubusercontent.com/williamcanin/rawfeed/refs/heads/main/tools/installer/win/install.ps1 | iex
26
+ git clone https://github.com/rawfeed/rawfeed-jekyll.git "rawfeed"; cd rawfeed; npm install
59
27
  ```
60
28
 
61
- # Usage
62
-
63
- After installation, run the command below to see the **rawfeed** command menu:
64
-
65
- ```shell
66
- npm run help
67
- ```
68
-
69
- # Settings
70
-
71
- ## Avatar
72
-
73
- **(1)** - Create the folder directory: `assets/images`.
74
-
75
- **(2)** - Place your website's images (.jpg|.png) inside this `assets/images` directory.
76
-
77
- > Recommendation: Use a 4x4 image.
78
-
79
- **(3)** - In the `_config.yml` file, in the `section: [avatar]`, change the value of "`avatar.image`"
80
- to the name of your images. For example:
81
-
82
- ```yml
83
- avatar:
84
- open: true
85
- flip: true
86
- # note: the image (.jpg|.png) will be searched in the directory: assets/images/
87
- image:
88
- front:
89
- light: your_image_light.png
90
- dark: your_image_dark.png
91
- back: your_image_back.png
92
- ```
93
-
94
- ## Posts
95
-
96
- Creating a blog post is very easy, first you create a draft (`npm run draft`) and after you finish
97
- the draft, you move it to the post with the command `npm run posts`.
98
-
99
- > Note: If you start the server (`npm run serve`), drafts will appear in posts, but they will not
100
- go into production mode (`npm run build`).
101
-
102
- **Comments:**
103
-
104
- Post comments use [Giscus](https://giscus.app) or [Disqus](https://disqus.com),
105
- configurable in the `_config.yml` file under `section: [blog]`. Whichever one you choose,
106
- you must set the appropriate settings in the `_config.yml` file under `section: [blog]`, and
107
- each post must have `comments: true` set.
108
-
109
- To learn more about both, such as how to set them up, visit [Giscus](https://giscus.app) or
110
- [Disqus](https://disqus.com).
111
-
112
- # For developer
113
-
114
- **Clone and install:**
115
-
116
- ```shell
117
- git clone https://github.com/williamcanin/rawfeed.git; cd rawfeed; npm install
118
- ```
119
-
120
- **Manage gem:**
29
+ ## Gem
121
30
 
122
31
  **(1)** - Compile the gem:
123
32
 
124
33
  ```shell
125
- npm run gem
34
+ npm run generate:gem
126
35
  ```
127
36
 
128
37
  **(2)** - Publish the gem:
129
38
 
130
39
  ```shell
131
- npm run publish
40
+ npm run publish:gem
132
41
  ```
133
42
 
134
- For more tasks, see: `bundle exec rake --tasks`
135
-
136
- ## Donation
137
-
138
- Click on the image below to be redirected the donation forms:
43
+ For more tasks, see: `npm run rake:tasks`
139
44
 
140
- <div class="donate">
141
- <a href="https://github.com/williamcanin/donations/blob/main/README.md">
142
- <img width="160" height="100" src="https://raw.githubusercontent.com/williamcanin/donations/main/svg/donate/donate-hand.svg" alt="Donations"/>
143
- </a>
144
- </div>
45
+ # Changelog
145
46
 
146
- See the list of our [CONTRIBUTORS](CONTRIBUTING.md).
47
+ See [here](https://rawfeed.github.io/rawfeed-jekyll/changelog/)
147
48
 
148
49
  # License
149
50
 
150
- The theme is available as open source under the terms of [this License](https://github.com/williamcanin/rawfeed/blob/dev/LICENSE.txt).
51
+ The theme is available as open source under the terms of [this License](https://rawfeed.github.io/rawfeed-jekyll/license/).
data/_data/options.yml ADDED
@@ -0,0 +1,270 @@
1
+ title: rawfeed
2
+ author: "William C. Canin"
3
+
4
+ # section: [maintenance]
5
+ maintenance:
6
+ enable: false
7
+ gif: "https://media4.giphy.com/media/v1.Y2lkPTc5MGI3NjExczV3aGMxcnAzdnJ1eWp3cjk5OXdhdTYzdzB0dWVlMGFkbTd2ZDR0ZCZlcD12MV9pbnRlcm5hbF9naWZfYnlfaWQmY3Q9Zw/jwKC0qlOoXmcLDB4vC/giphy.gif"
8
+ title: "Under maintenance"
9
+ subtitle: |
10
+ We are undergoing maintenance, with no return date yet.
11
+ Sorry for the inconvenience :/
12
+
13
+ # section: [social network]
14
+ # note: if you want more, just add more "title" and "url".
15
+ socials:
16
+ enable: true
17
+ description:
18
+ text: |
19
+ These are my social networks:
20
+ terminal:
21
+ about:
22
+ description: |
23
+ If you want to know our other links, use the "socials" command.
24
+ command:
25
+ description: |
26
+ Click on a link and go directly to my social network:
27
+ links:
28
+ - title: github
29
+ url: https://github.com/rawfeed/rawfeed-jekyll
30
+
31
+ - title: rubygems
32
+ url: https://rubygems.org/gems/rawfeed
33
+
34
+ # section: [Reading time]
35
+ reading_time:
36
+ enable: true
37
+ words_per_minute: 180
38
+ message: ["Read this post in approximately", "Read this post in less than"]
39
+ minutes_label: ["minute", "minutes"]
40
+
41
+ # section: [datelang]
42
+ # Here you change the language of the months of the date
43
+ datelang:
44
+ format: "%b %d, %Y"
45
+ lang: "en_US" # en_US | pt_PT | jp_JP | ch_CH | es_ES | fr_FR | it_IT | de_DE | ru_RU
46
+
47
+ # section: [head]
48
+ head:
49
+ # (CSP - Content-Security-Policy)
50
+ # IMPORTANT!!! If you use any external script from any website in your posts that is not on this
51
+ # list, you must put it here.
52
+ # --- If you don't use it, don't remove what's already there. ---
53
+ csp:
54
+ frame-src:
55
+ - https://www.google.com
56
+ - https://www.youtube.com
57
+ - https://giscus.app
58
+ - https://disqus.com
59
+ connect-src:
60
+ - https://www.google.com
61
+ - https://api.github.com
62
+ img-src:
63
+ - https://www.google.com
64
+ - https://media0.giphy.com
65
+ - https://media4.giphy.com
66
+ - https://github.githubassets.com
67
+ script-src:
68
+ - https://www.google.com
69
+ - https://www.gstatic.com
70
+ - https://cdn.jsdelivr.net
71
+ - https://cdnjs.cloudflare.com
72
+ - https://giscus.app
73
+ - https://disqus.com
74
+ style-src:
75
+ - https://cdnjs.cloudflare.com
76
+ - https://fonts.googleapis.com
77
+ - https://cdn.jsdelivr.net
78
+ - https://giscus.app
79
+ - https://disqus.com
80
+ font-src:
81
+ - https://fonts.gstatic.com
82
+ - https://cdnjs.cloudflare.com
83
+ google:
84
+ site_verification: ""
85
+ analytics:
86
+ enable: false
87
+ id: "" # tracking id, e.g. "UA-200341029-1"
88
+ apps_script:
89
+ url:
90
+ recaptcha:
91
+ pubkey:
92
+
93
+ # section: [default]
94
+ default:
95
+ lang: en-US
96
+ # Some compatible separators: ⨟∫⦁;⬨⬖︙︰𐄛🢝
97
+ separator: ⨟
98
+ width: 860 # default: 860
99
+ background_focus: true
100
+ rounding: false
101
+ font:
102
+ # Fonts Style Options: [default: monospace]
103
+ # "'Ubuntu', sans-serif"
104
+ # "'Inconsolata', monospace"
105
+ # "'JetBrains Mono', monospace"
106
+ # "'Roboto Mono', monospace"
107
+ # "'Open Sans', sans-serif"
108
+ style: monospace
109
+ size: 16.34px
110
+ spacing: -0.05em
111
+
112
+ # section: [header]
113
+ header:
114
+ title: hey, i'm rawfeed-jekyll!
115
+ description: "A raw Jekyll theme for minimalists"
116
+ width: 860 # default: 860
117
+ # your website image or logo
118
+ avatar:
119
+ open: true
120
+ flip: true
121
+ # note: the image (.jpg|.png) will be searched in the directory: assets/images/
122
+ image:
123
+ front:
124
+ light: avatar_light.png
125
+ dark: avatar_dark.png
126
+ back: avatar_back.png
127
+ # menu: use emoji unicode 6.0, to have greater compatibility
128
+ menu:
129
+ title: "menu"
130
+ # default: 🏠📝🔍🔖📰 legacy: ⌂✐⌕▮▤
131
+ home:
132
+ emoji: "🏠"
133
+ title: "/home"
134
+ blog:
135
+ emoji: "📝"
136
+ title: "weblog"
137
+ subtitle: "posts"
138
+ search:
139
+ emoji: "🔍"
140
+ title: "search"
141
+ tags:
142
+ emoji: "🔖"
143
+ title: "tags"
144
+ feed:
145
+ emoji: "📰"
146
+ title: "feed"
147
+ pixels:
148
+ emoji: "📷"
149
+ title: "pixels"
150
+
151
+ # section: [home]
152
+ home:
153
+ terminal:
154
+ enable: true
155
+ user: "rawfeed"
156
+ hostname: "linux"
157
+ welcome: " type 'help'"
158
+ error: ": command not found."
159
+ no_socials: "No socials found"
160
+ help:
161
+ description: |
162
+ Use the commands below:
163
+ commands:
164
+ title: "Commands:"
165
+ description: "Description:"
166
+ menu: |
167
+ about ------------- A brief summary about 'rawfeed'
168
+ socials ----------- Links to my active social networks
169
+ clear ------------- Clear the terminal screen (or press Esc)
170
+ date -------------- Print the system date and time
171
+ help -------------- Print this menu
172
+
173
+ # section: [blog]
174
+ blog:
175
+ subtitle: "posts"
176
+ search:
177
+ enable: true
178
+ placeholder: "type here to search for a post or Esc to exit"
179
+ button_clean:
180
+ text: "clean"
181
+ results: "results"
182
+ no_results: "No results found"
183
+ pagination:
184
+ newer_text: "newer posts"
185
+ counter: ["page", "of"]
186
+ older_text: "older posts"
187
+ post:
188
+ author: "Posted by"
189
+ related_posts:
190
+ enable: true
191
+ title: "related posts"
192
+ updated_on: "Post updated on"
193
+ comments:
194
+ title: "comments"
195
+ provider: "giscus" # choose between. options: giscus | disqus.
196
+ giscus:
197
+ repo: "" # your repository, e.g: username/repo-name
198
+ repo_id: "" # copied from giscus.app, e.g: R_kgD...
199
+ repo_category: "" # copied category name GitHub
200
+ category_id: "" # copied from giscus.app, e.g: DIC_kwD...
201
+ mapping: "pathname"
202
+ reactions_enabled: 1
203
+ theme: "light" # initial theme. default: light
204
+ theme_light: "noborder_light" # light theme. default: noborder_light
205
+ theme_dark: "noborder_gray" # dark theme. default: noborder_gray
206
+ lang: "en" # en,pt,..
207
+ disqus:
208
+ shortname: "" # your shortname disqus
209
+ tags_posts:
210
+ title: "posts by tag"
211
+
212
+ # section: [pixels]
213
+ pixels:
214
+ title: "pixels"
215
+ layout:
216
+ width: 860 # default: 860
217
+ # section: [page]
218
+ page:
219
+ updated_on: "Page updated on"
220
+ error:
221
+ image: https://media4.giphy.com/media/v1.Y2lkPTc5MGI3NjExNXlxYzc5eXp1Nm01cmtldzM5bHhwdzJ2Njk2c2E4b2RkdTBkeGs5eCZlcD12MV9pbnRlcm5hbF9naWZfYnlfaWQmY3Q9Zw/c20UV66B7zCWA/giphy.gif
222
+ title: Error 404
223
+ message: |
224
+ It appears this content does not exist or has been removed by the author.
225
+
226
+ # section: [contact]
227
+ contact:
228
+ name:
229
+ placeholder: "first and last name"
230
+ email:
231
+ placeholder: "your best email address"
232
+ help: "we'll never share your email with anyone else."
233
+ message:
234
+ placeholder: "write your message here"
235
+ status: "sending...wait"
236
+ caracters:
237
+ min: 50
238
+ warning:
239
+ title: "Warning"
240
+ content: "the message must have at least 50 characters."
241
+ success:
242
+ title: "Message sent"
243
+ content: "your message has been sent successfully!"
244
+ error:
245
+ title: "Error"
246
+ content: "something went wrong while sending your message."
247
+ button:
248
+ text: "send!"
249
+ recaptcha:
250
+ warning:
251
+ title: Warning
252
+ content: "Please tick the 'I'm not a robot' box."
253
+ fail: "Verification failed. Please reload the page and try again."
254
+ error: "An error occurred while sending the message. Please try again."
255
+
256
+ # section: [footer]
257
+ footer:
258
+ top_button:
259
+ # Some compatible icons: ↑ ⇡ ▴ 🢙
260
+ icon: ⇡
261
+ enable: true
262
+ copyright:
263
+ title: "rawfeed-jekyll"
264
+ since: 2025
265
+ message:
266
+ licenses:
267
+ title: "Licenses"
268
+ page_url: "/licenses/"
269
+ message: |
270
+ Your impactful phrase!
data/_data/resume.yml CHANGED
@@ -29,13 +29,13 @@ sidebar:
29
29
  link: #
30
30
  - key: Site
31
31
  value: johndoe.com
32
- link: https://github.com/williamcanin/rawfeed
32
+ link: https://rawfeed.github.io/rawfeed-jekyll
33
33
  - key: Phone
34
34
  value: +1 9 99999-9999
35
35
  link: #
36
36
  - key: GitHub
37
37
  value: "@rawfeed"
38
- link: https://github.com/williamcanin/rawfeed
38
+ link: https://rawfeed.github.io/rawfeed-jekyll
39
39
 
40
40
  # section: [Personal Details]
41
41
  # IMPORTANT!!!: "Personal details" are sensitive data. For security reasons, enable it ONLY if
@@ -72,7 +72,7 @@ sidebar:
72
72
  - degree: MSc in Informatics
73
73
  time: 2014-2016
74
74
  university: Ionian University
75
- link: https://github.com/williamcanin/rawfeed
75
+ link: https://rawfeed.github.io/rawfeed-jekyll
76
76
 
77
77
  - degree: BSc in Computer Science
78
78
  time: 2010-2014
@@ -143,13 +143,12 @@ body:
143
143
 
144
144
  # section: [Certificates]
145
145
  # Full links will only appear in print mode. Online and PDF modes are clickable.
146
- # TODO: Bugfix: Quando tem muitos certificados, existe uma quebra de espaço absurda na impressão
147
146
  certificates:
148
147
  enable: true
149
148
  caption: Certificates
150
149
  section:
151
150
  - course: LPIC-2
152
- certificate: https://github.com/williamcanin/rawfeed
151
+ certificate: https://rawfeed.github.io/rawfeed-jekyll
153
152
  period:
154
153
  year: 2020
155
154
  hours: 20 hours
@@ -158,7 +157,7 @@ body:
158
157
  site: https://www.lpi.org
159
158
 
160
159
  - course: LPIC-1
161
- certificate: https://github.com/williamcanin/rawfeed
160
+ certificate: https://rawfeed.github.io/rawfeed-jekyll
162
161
  period:
163
162
  year: 2018
164
163
  hours: 19 hours
@@ -174,7 +173,7 @@ body:
174
173
  caption: Publications
175
174
  section:
176
175
  - title: Presentation of the functionality of F47X1 chip
177
- link: https://github.com/williamcanin/rawfeed
176
+ link: https://rawfeed.github.io/rawfeed-jekyll
178
177
  authors: John A. Doe, Jane Doe
179
178
  conference: Conference Tech Central Park, 2016
180
179
 
@@ -185,7 +184,7 @@ body:
185
184
  caption: Projects
186
185
  section:
187
186
  - title: Support for the F47X1 chip in the Linux kernel
188
- link: https://github.com/williamcanin/rawfeed
187
+ link: https://rawfeed.github.io/rawfeed-jekyll
189
188
  details: |
190
189
  - I implemented the F47X1 chip to recognize macOS applications with plug-play on USB 3.1
191
190
 
@@ -203,7 +202,7 @@ body:
203
202
  section:
204
203
  - role: AI Professor
205
204
  company: Seeds of Tomorrow Engineering School
206
- link: https://github.com/williamcanin/rawfeed
205
+ link: https://rawfeed.github.io/rawfeed-jekyll
207
206
  time: 2020-2022
208
207
  details: |
209
208
  - I led a class of **Computer Engineering** students in the modern **AI course**.
data/_includes/alert CHANGED
@@ -1,3 +1,5 @@
1
- <div class="alert alert-{{ include.type | default: 'info' }}">
1
+ {%- include layout/data.liquid -%}
2
+
3
+ <div class="alert alert-{{ include.type | default: 'info' }}{% if default_.rounding %} rounding-plugins{% endif %}">
2
4
  {{ include.content | markdownify }}
3
5
  </div>
data/_includes/chart CHANGED
@@ -1,34 +1,15 @@
1
- <canvas class="chart" id="chart-{{ include.label | slugify }}"> </canvas>
1
+ {%- include layout/data.liquid -%}
2
+
3
+ <canvas
4
+ class="chart{% if default_.rounding %} rounding-plugins{% endif %}"
5
+ id="chart-{{ include.label | slugify }}"
6
+ data-label="{{ include.label | default: 'Dataset' }}"
7
+ data-type="{{ include.type | default: 'line' }}"
8
+ data-labels="{{ include.labels }}"
9
+ data-data="{{ include.data }}"
10
+ data-color="{{ include.color | default: '#00bfff' }}"
11
+ >
12
+ </canvas>
2
13
 
3
14
  <script src="https://cdn.jsdelivr.net/npm/chart.js"></script>
4
- <script>
5
- document.addEventListener("DOMContentLoaded", function () {
6
- const ctx = document.getElementById("chart-{{ include.label | slugify }}");
7
- if (!ctx) return;
8
- new Chart(ctx, {
9
- type: "{{ include.type | default: 'line' }}",
10
- data: {
11
- labels: "{{ include.labels }}".split(","),
12
- datasets: [{
13
- label: "{{ include.label | default: 'Dataset' }}",
14
- data: "{{ include.data }}".split(",").map(Number),
15
- borderColor: "{{ include.color | default: '#00bfff' }}",
16
- backgroundColor: "{{ include.color | default: '#00bfff' }}33",
17
- fill: true,
18
- tension: 0.3,
19
- borderWidth: 2,
20
- pointRadius: 4,
21
- pointHoverRadius: 6
22
- }]
23
- },
24
- options: {
25
- responsive: true,
26
- plugins: { legend: { display: true, labels: { color: '#444444' } } },
27
- scales: {
28
- x: { ticks: { color: '#131313' }, grid: { color: '#111111' } },
29
- y: { ticks: { color: '#131313' }, grid: { color: '#111111' } }
30
- }
31
- }
32
- });
33
- });
34
- </script>
15
+
data/_includes/details CHANGED
@@ -1,57 +1 @@
1
- <div class="details-start" data-summary="{{ include.summary | escape }}"></div>
2
-
3
- <script>
4
- (function(){
5
- if (window.__jekyll_details_setup) return;
6
- window.__jekyll_details_setup = true;
7
-
8
- function initDetails(){
9
- const starts = document.querySelectorAll('.details-start');
10
- starts.forEach(start => {
11
- const summary = start.getAttribute('data-summary') || 'Detalhes';
12
-
13
- let end = start.nextSibling;
14
- while(end && !(end.nodeType === 1 && end.classList.contains('details-end'))){
15
- end = end.nextSibling;
16
- }
17
- if(!end) return;
18
-
19
- let node = start.nextSibling;
20
- const content = [];
21
- while(node && node !== end){
22
- const next = node.nextSibling;
23
- if(node.nodeType === Node.ELEMENT_NODE || (node.nodeType === Node.TEXT_NODE && node.textContent.trim())){
24
- content.push(node.cloneNode(true));
25
- }
26
- node = next;
27
- }
28
-
29
- const details = document.createElement('details');
30
- const sum = document.createElement('summary');
31
- sum.textContent = summary;
32
- details.appendChild(sum);
33
-
34
- const wrapper = document.createElement('div');
35
- wrapper.className = 'details-content-wrapper';
36
-
37
- content.forEach(el => wrapper.appendChild(el));
38
-
39
- details.appendChild(wrapper);
40
-
41
- start.parentNode.insertBefore(details, start);
42
- let cur = start;
43
- while(cur){
44
- const next = cur.nextSibling;
45
- cur.remove();
46
- if(cur === end) break;
47
- cur = next;
48
- }
49
- });
50
- }
51
-
52
- if(document.readyState === 'loading')
53
- document.addEventListener('DOMContentLoaded', initDetails);
54
- else
55
- initDetails();
56
- })();
57
- </script>
1
+ <div id="details-start" class="details-start" data-summary="{{ include.summary | escape }}"></div>