rawfeed 0.1.4 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (102) hide show
  1. checksums.yaml +4 -4
  2. data/LICENSE.txt +20 -21
  3. data/README.md +12 -130
  4. data/_data/options.yml +270 -0
  5. data/_data/resume.yml +8 -8
  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 +6 -4
  11. data/_includes/layout/data.liquid +21 -3
  12. data/_includes/layout/disqus.html +12 -26
  13. data/_includes/layout/footer.html +33 -17
  14. data/_includes/layout/giscus.html +27 -19
  15. data/_includes/layout/head.html +41 -41
  16. data/_includes/layout/header.html +127 -101
  17. data/_includes/layout/maintenance.html +6 -10
  18. data/_includes/layout/paginator.html +6 -4
  19. data/_includes/socials +7 -5
  20. data/_includes/tabs +1 -94
  21. data/_includes/toc +11 -194
  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 -341
  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 -4
  30. data/_layouts/pixel.html +48 -0
  31. data/_layouts/pixels.html +71 -1
  32. data/_layouts/post.html +28 -29
  33. data/_layouts/resume.html +41 -34
  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 +8 -5
  39. data/_sass/includes/_footer.scss +5 -2
  40. data/_sass/includes/_header.scss +23 -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 +16 -3
  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 +8 -1
  58. data/_sass/theme/_light.scss +8 -1
  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/{_includes/layout/capture_scripts.liquid → assets/js/fallback/theme_load.js} +0 -2
  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 +3 -0
  89. data/lib/rawfeed/draft.rb +1 -1
  90. data/lib/rawfeed/layout.rb +7 -0
  91. data/lib/rawfeed/page.rb +2 -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 -1
  100. metadata +44 -12
  101. data/assets/js/avatar.js +0 -59
  102. data/assets/js/terminal.js +0 -18
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: be86e28f3f858c931e6cb9874b17eb04d07c99314d6c8bc00a914037962b2bcd
4
- data.tar.gz: 7aaa22c4f212a10039e4a8a5494f0c97c1771f0885ded4a6da3483d0eedd96a2
3
+ metadata.gz: 58794996c0f3602ff169ec079381bf2772cf34933cfab4ae3487ea244a71b03a
4
+ data.tar.gz: b9e397d957ed2a62f0151f69e4ae8df5cc986323e97963f1776ecccd32f91c13
5
5
  SHA512:
6
- metadata.gz: dc9c0beeb4ac4c2f6c9082c366f29e59ef0a440bda5cebc9084e9b8b373b998d3fa652004e51b2b78f3c560c2851d3497aea10e4ba46f387c86fb56c880b47e4
7
- data.tar.gz: 1bd79e2a2b544541e0e324499cb1845f00dfc64182c9a07001b2cdc7cd5f2a29831432697ca3b4f807bfae331233e52f66d01871f5443c8c47d55e3a16643d49
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
@@ -4,11 +4,11 @@
4
4
  <small>Rawfeed — A raw Jekyll theme for minimalists</small>
5
5
  <br>
6
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>
7
- <br>
8
- <a href="https://williamcanin.github.io/rawfeed" target="_blank">Theme Preview</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,151 +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
- - and more [here](#vendors)
45
-
46
- # Installation
47
-
48
- In the terminal/Command Prompt, run the commands below according to the OS.
49
-
50
- **Unix:**
51
-
52
- ```shell
53
- curl -fsSL https://raw.githubusercontent.com/williamcanin/rawfeed/refs/heads/main/tools/installer/unix/install.sh | sh
54
- ```
55
22
 
56
- **Windows:**
23
+ ## Clone
57
24
 
58
25
  ```shell
59
- iwr -useb https://raw.githubusercontent.com/williamcanin/rawfeed/refs/heads/main/tools/installer/win/install.ps1 | iex
60
- ```
61
-
62
- # Usage
63
-
64
- After installation, run the command below to see the **rawfeed** command menu:
65
-
66
- ```shell
67
- npm run help
68
- ```
69
-
70
- # Settings
71
-
72
- ## Avatar
73
-
74
- **(1)** - Create the folder directory: `assets/images`.
75
-
76
- **(2)** - Place your website's images (.jpg|.png) inside this `assets/images` directory.
77
-
78
- > Recommendation: Use a 4x4 image.
79
-
80
- **(3)** - In the `_config.yml` file, in the `section: [avatar]`, change the value of "`avatar.image`"
81
- to the name of your images. For example:
82
-
83
- ```yml
84
- avatar:
85
- open: true
86
- flip: true
87
- # note: the image (.jpg|.png) will be searched in the directory: assets/images/
88
- image:
89
- front:
90
- light: your_image_light.png
91
- dark: your_image_dark.png
92
- back: your_image_back.png
26
+ git clone https://github.com/rawfeed/rawfeed-jekyll.git "rawfeed"; cd rawfeed; npm install
93
27
  ```
94
28
 
95
- ## Posts
96
-
97
- Creating a blog post is very easy, first you create a draft (`npm run draft`) and after you finish
98
- the draft, you move it to the post with the command `npm run posts`.
99
-
100
- > Note: If you start the server (`npm run serve`), drafts will appear in posts, but they will not
101
- go into production mode (`npm run build`).
102
-
103
- **Comments:**
104
-
105
- Post comments use [Giscus](https://giscus.app) or [Disqus](https://disqus.com),
106
- configurable in the `_config.yml` file under `section: [blog]`. Whichever one you choose,
107
- you must set the appropriate settings in the `_config.yml` file under `section: [blog]`, and
108
- each post must have `comments: true` set.
109
-
110
- To learn more about both, such as how to set them up, visit [Giscus](https://giscus.app) or
111
- [Disqus](https://disqus.com).
112
-
113
- # For developer
114
-
115
- **Clone and install:**
116
-
117
- ```shell
118
- git clone https://github.com/williamcanin/rawfeed.git; cd rawfeed; npm install
119
- ```
120
-
121
- **Manage gem:**
29
+ ## Gem
122
30
 
123
31
  **(1)** - Compile the gem:
124
32
 
125
33
  ```shell
126
- npm run gem
34
+ npm run generate:gem
127
35
  ```
128
36
 
129
37
  **(2)** - Publish the gem:
130
38
 
131
39
  ```shell
132
- npm run publish
40
+ npm run publish:gem
133
41
  ```
134
42
 
135
- For more tasks, see: `bundle exec rake --tasks`
136
-
137
- # Vendors
138
-
139
- [ Technologies and Services Used ]
140
-
141
- This [Jekyll](https://jekyllrb.com) theme was developed using the following services and
142
- technologies, to whom we would like to thank for their work and availability:
143
-
144
- | Vendor | Link | Use in Theme |
145
- | -------- | ------- | ------- |
146
- | **Bootstrap 5** | [https://getbootstrap.com](https://getbootstrap.com/) | Framework for responsive design and base components |
147
- | **Font Awesome** | [https://fontawesome.com](https://fontawesome.com/) | Providing vector icons |
148
- | **Google Fonts** | [https://fonts.google.com](https://fonts.google.com/) | Styling and appearance of texts (custom fonts) |
149
- | **Google Apps Script** | [https://developers.google.com/apps-script](https://developers.google.com/apps-script) | Email sending and form processing functionality (Contact page). |
150
- | **Google reCAPTCHA** | [https://www.google.com/recaptcha/about/](https://www.google.com/recaptcha/about/) | Form spam protection (if implemented). |
151
- | **Giscus** | [https://giscus.app](https://giscus.app/) | *GitHub Discussions-based commenting system option* |
152
- | **Disqus** | [https://disqus.com](https://disqus.com/) | *Comment system option* |
153
- | **Gulp** | [https://gulpjs.com](https://gulpjs.com/) | Minification and cleaning |
154
-
155
- ## Donation
156
-
157
- Click on the image below to be redirected the donation forms:
43
+ For more tasks, see: `npm run rake:tasks`
158
44
 
159
- <div class="donate">
160
- <a href="https://github.com/williamcanin/donations/blob/main/README.md">
161
- <img width="160" height="100" src="https://raw.githubusercontent.com/williamcanin/donations/main/svg/donate/donate-hand.svg" alt="Donations"/>
162
- </a>
163
- </div>
45
+ # Changelog
164
46
 
165
- See the list of our [CONTRIBUTORS](CONTRIBUTING.md).
47
+ See [here](https://rawfeed.github.io/rawfeed-jekyll/changelog/)
166
48
 
167
49
  # License
168
50
 
169
- 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
@@ -148,7 +148,7 @@ body:
148
148
  caption: Certificates
149
149
  section:
150
150
  - course: LPIC-2
151
- certificate: https://github.com/williamcanin/rawfeed
151
+ certificate: https://rawfeed.github.io/rawfeed-jekyll
152
152
  period:
153
153
  year: 2020
154
154
  hours: 20 hours
@@ -157,7 +157,7 @@ body:
157
157
  site: https://www.lpi.org
158
158
 
159
159
  - course: LPIC-1
160
- certificate: https://github.com/williamcanin/rawfeed
160
+ certificate: https://rawfeed.github.io/rawfeed-jekyll
161
161
  period:
162
162
  year: 2018
163
163
  hours: 19 hours
@@ -173,7 +173,7 @@ body:
173
173
  caption: Publications
174
174
  section:
175
175
  - title: Presentation of the functionality of F47X1 chip
176
- link: https://github.com/williamcanin/rawfeed
176
+ link: https://rawfeed.github.io/rawfeed-jekyll
177
177
  authors: John A. Doe, Jane Doe
178
178
  conference: Conference Tech Central Park, 2016
179
179
 
@@ -184,7 +184,7 @@ body:
184
184
  caption: Projects
185
185
  section:
186
186
  - title: Support for the F47X1 chip in the Linux kernel
187
- link: https://github.com/williamcanin/rawfeed
187
+ link: https://rawfeed.github.io/rawfeed-jekyll
188
188
  details: |
189
189
  - I implemented the F47X1 chip to recognize macOS applications with plug-play on USB 3.1
190
190
 
@@ -202,7 +202,7 @@ body:
202
202
  section:
203
203
  - role: AI Professor
204
204
  company: Seeds of Tomorrow Engineering School
205
- link: https://github.com/williamcanin/rawfeed
205
+ link: https://rawfeed.github.io/rawfeed-jekyll
206
206
  time: 2020-2022
207
207
  details: |
208
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>