jekyll-theme-profile 1.10.0 → 1.10.2

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 1f8cc59151f896025fdc45d90b5cbfc6c6093070bf8cf45161606e275d6f4dc9
4
- data.tar.gz: 9a9307ad9ded9450fa3854c92b3d005f6ea4c8e2ffaa5bb525932cd71fb8deff
3
+ metadata.gz: 7a1d2f9e2a913ba7deee4135f8a164a850828e6614ff37a775e5f4938ad3330f
4
+ data.tar.gz: ec9bb4bc55e8ffd6038d3baaba11a66ea8c86a21ae24a3e50374a9df229d8820
5
5
  SHA512:
6
- metadata.gz: 47da1253dba00f0e9e6be2ac3aa3bbb12fc67c677d94cd3f99c34d29bca2dd3bd36469dbe01f6db8716508258220ed44c88b6e3f186cb59af14c659e30a2f2b1
7
- data.tar.gz: '09a4bb3c0c1a596fd25c95c3ef55a33a5f7353995aa9605091953f37cf8661ed6e6eb683b2f22d83291cfb1889075bdfacc400208e59115c6b47af9464da7e03'
6
+ metadata.gz: 3054ab265121c2c8132d7dee6c483d5092c8bfd07a54397ccc76a961f558291200037699f3f8ae52ec36be38ebeda03e43a3157b2f099d78916ac0265dc66528
7
+ data.tar.gz: 7fcb2884718ae5ce88847198d116b5175519c0989f6961df1b155810861b42f9a9b4fd4d2016daa37faa102dea137832b5ddb27e6d9f12ea5266fbb626a79dff
data/README.md CHANGED
@@ -5,7 +5,7 @@
5
5
 
6
6
  This theme is based on GitHub's primer style. It supports both light and dark modes, and four style options: appbar, sidebar, topbar, and stacked. Setting up is a breeze, as it automatically populates your profile using your GitHub user info. Add custom links like Linktree and share engaging blog posts effortlessly.
7
7
 
8
- ## Installation
8
+ ## Quickstart
9
9
 
10
10
  Add this line to your Jekyll site's `Gemfile`:
11
11
 
@@ -19,342 +19,7 @@ And add this line to your Jekyll site's `_config.yml`:
19
19
  theme: jekyll-theme-profile
20
20
  ```
21
21
 
22
- And then execute:
23
-
24
- $ bundle
25
-
26
- Or install it yourself as:
27
-
28
- $ gem install jekyll-theme-profile
29
-
30
- ## Usage
31
-
32
- Start with a [sample config](https://github.com/athackst/jekyll-theme-profile/blob/main/demo/_config.yml) that you can copy and customize.
33
-
34
-
35
- You can also use this with github acions. Below is a typical worfklow file
36
-
37
- ```yaml
38
- # Sample workflow for building and deploying a Jekyll site to GitHub Pages
39
- name: Docs
40
-
41
- on:
42
- # Runs on pushes targeting the default branch
43
- push:
44
- branches: ["main"]
45
-
46
- # Run on every pull request
47
- pull_request:
48
- types: [opened, reopened, synchronize ]
49
-
50
- # Allows you to run this workflow manually from the Actions tab
51
- workflow_dispatch:
52
-
53
- schedule:
54
- # This will refresh your repositories and other user information every day
55
- # * is a special character in YAML so you have to quote this string
56
- # Generate from https://crontab.guru/
57
- # ┌───────────── minute (0 - 59)
58
- # │ ┌───────────── hour (0 - 23)
59
- # │ │ ┌───────────── day of the month (1 - 31)
60
- # │ │ │ ┌───────────── month (1 - 12 or JAN-DEC)
61
- # │ │ │ │ ┌───────────── day of the week (0 - 6 or SUN-SAT)
62
- # │ │ │ │ │
63
- # │ │ │ │ │
64
- # │ │ │ │ │
65
- # * * * * *
66
- - cron: "0 0 * * *"
67
-
68
- # Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages
69
- permissions:
70
- contents: read # needed to read your repository
71
- pages: write # needed to enable and deploy github pages
72
- id-token: write
73
-
74
- # Allow only one concurrent deployment, skipping runs queued between the run in-progress and latest queued.
75
- # However, do NOT cancel in-progress runs as we want to allow these production deployments to complete.
76
- concurrency:
77
- group: "pages"
78
- cancel-in-progress: false
79
-
80
- jobs:
81
- # Build job
82
- build:
83
- runs-on: ubuntu-latest
84
- steps:
85
- - name: Checkout
86
- uses: actions/checkout@v3
87
- - name: Setup Ruby
88
- uses: ruby/setup-ruby@v1.152.0
89
- with:
90
- bundler-cache: true # runs 'bundle install' and caches installed gems automatically
91
- - name: Setup Pages
92
- id: pages
93
- uses: actions/configure-pages@v3
94
- with:
95
- enablement: true # Enable github pages if it's not
96
- - name: Build
97
- run: bundle exec jekyll build
98
- env:
99
- JEKYLL_ENV: production
100
- JEKYLL_GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
101
- - name: Upload artifact
102
- uses: actions/upload-pages-artifact@v3
103
-
104
- # Deployment job
105
- deploy:
106
- if: github.ref == 'refs/heads/main' # Only deploy from the main branch
107
- environment:
108
- name: github-pages
109
- url: ${{ steps.deployment.outputs.page_url }}
110
- runs-on: ubuntu-latest
111
- needs: build
112
- steps:
113
- - name: Deploy to GitHub Pages
114
- id: deployment
115
- uses: actions/deploy-pages@v4
116
-
117
- ```
118
-
119
- ### Choose your style
120
-
121
- Select the default style for your theme by adding `style` to your config file:
122
-
123
- ```yaml
124
- style: sidebar # One of "stacked", "sidebar", "topbar", "appbar"
125
- ```
126
-
127
- You can also set the style of a particular page by adding `style` to your frontmatter.
128
-
129
- ```yaml
130
- ---
131
- style: sidebar # One of "stacked", "sidebar", "topbar", "appbar
132
- ---
133
- ```
134
-
135
- #### [Sidebar](https://www.althack.dev/jekyll-theme-profile/sidebar.html)
136
-
137
- ![Sidebar image](https://raw.githubusercontent.com/athackst/jekyll-theme-profile/main/demo/media/sidebar-preview.png)
138
-
139
- #### [Stacked](https://www.althack.dev/jekyll-theme-profile/stacked.html)
140
-
141
- ![Stacked image](https://raw.githubusercontent.com/athackst/jekyll-theme-profile/main/demo/media/stacked-preview.png)
142
-
143
- #### [Topbar](https://www.althack.dev/jekyll-theme-profile/topbar.html)
144
-
145
- ![Topbar image](https://raw.githubusercontent.com/athackst/jekyll-theme-profile/main/demo/media/topbar-preview.png)
146
-
147
- #### [Appbar](https://www.althack.dev/jekyll-theme-profile/appbar.html)
148
-
149
- ![Appbar image](https://raw.githubusercontent.com/athackst/jekyll-theme-profile/main/demo/media/appbar-preview.png)
150
-
151
- #### Background
152
-
153
- You can even change the background by adding the following to your `_config.yml` file.
154
-
155
- ```yaml
156
- background:
157
- image: /media/background-img.jpg
158
- overlay: rgba(0, 0, 0, 0.5) # Overlay for both light and dark styles
159
- ```
160
-
161
- or
162
-
163
- ```yaml
164
- background:
165
- image: /media/background-img.jpg
166
- light: # custom overlay for light and dark styles
167
- overlay: rgba(255, 255, 255, 0.5)
168
- dark:
169
- overlay: rgba(0, 0, 0, 0.5)
170
- ```
171
-
172
- [Example page](https://www.althack.dev/jekyll-theme-profile/page/background)
173
-
174
- #### Header
175
-
176
- You can change the header color by adding the following to your `_config.yml` file
177
-
178
- ```yaml
179
- header:
180
- color: "#4051b5"
181
- text: "rgba(255,255,255,0.7)"
182
- accent: "#ffffff"
183
- ```
184
-
185
- ### Nav
186
-
187
- In the `nav` section, you can add navigation links that will show up on every page of your website.
188
-
189
- ![Nav](https://raw.githubusercontent.com/athackst/jekyll-theme-profile/main/demo/media/nav.png){: .border}
190
-
191
- ```yaml
192
- nav:
193
- - name: Topbar
194
- url: /demo/topbar.html
195
- - name: Sidebar
196
- url: /demo/sidebar.html
197
- - name: Stacked
198
- url: /demo/stacked.html
199
- ```
200
-
201
- ### Links
202
-
203
- In the `links` section, you can add links to showcase various pages on the web or your website.
204
-
205
- ![Links](https://raw.githubusercontent.com/athackst/jekyll-theme-profile/main/demo/media/links.png){: .border}
206
-
207
- ```yaml
208
- links:
209
- - name: Example full entry
210
- url: https://www.example.com
211
- thumbnail: /media/icon-topbar.png
212
- description: Example description
213
- - name: Example entry with url and image
214
- url: https://www.example.com
215
- thumbnail: /media/icon-sidebar.png
216
- - name: Example entry with image
217
- thumbnail: /media/icon-stacked.png
218
- - name: Example entry with description
219
- description: Example Description
220
- - name: Example entry with only a name
221
- ```
222
-
223
- ### Repositories
224
-
225
- The `repositories` section allows you to display your GitHub repositories on your page. You can sort them by stars or latest pushes, set a limit to the number of repositories displayed, and exclude archived, forked, or specific repositories from the list
226
-
227
- ![Repositories](https://raw.githubusercontent.com/athackst/jekyll-theme-profile/main/demo/media/repositories.png){: .border}
228
-
229
- ```yaml
230
- repositories:
231
- sort_by: stars
232
- # sort_by options:
233
- # - pushed
234
- # - stars
235
- limit: 24
236
- exclude:
237
- archived: true
238
- forks: true
239
- repositories:
240
- # - respositories to exclude
241
- ```
242
-
243
- ### Social media and SEO
244
-
245
- #### Setting the social media card
246
-
247
- You can set the social media image for your site with the setting
248
-
249
- ```yaml
250
- image: /screenshot.jpg
251
- ```
252
-
253
- This works on both yaml frontmatter for a page and in the `_config.yml` file. Page settings will override site settings.
254
-
255
- Set the default for posts through the default settings in the `_config.yml` file.
256
-
257
- ```yaml
258
- defaults:
259
- - scope:
260
- path: "" # an empty string here means all files in the project
261
- type: "posts"
262
- values:
263
- layout: "post"
264
- permalink: /blog/:year/:month/:day/:title.html
265
- image: /assets/img/default.png # The default image used for social and posts.
266
- toc: true
267
- ```
268
-
269
- #### Adding your socials
270
-
271
- Utilize the `social_media` section to add links to your various social media profiles. For each platform simply provide your username or user ID to have the corresponding icon and link appear on your profile.
272
-
273
- ![Social Media](https://raw.githubusercontent.com/athackst/jekyll-theme-profile/main/demo/media/social-media.png){: .border}
274
-
275
- ```yaml
276
- social_media:
277
- behance: your_username
278
- dribbble: your_username
279
- docker: your_username
280
- facebook: your_username
281
- github: your_username
282
- hackerrank: your_username
283
- instagram: your_username
284
- keybase: your_username
285
- linkedin: your_username
286
- mail: email@address
287
- mastodon: your_username
288
- medium: your_username
289
- stackoverflow: your_user_id
290
- telegram: your_username
291
- threads: your_username
292
- tiktok: your_username
293
- twitter: your_username
294
- unsplash: your_username
295
- vk: your_username
296
- vscode: your_username
297
- youtube: your_username
298
- x: your_username
299
- ```
300
-
301
- You can also set the icon color. If you don't set an icon color, the original icon colors will be used.
302
-
303
- ```yaml
304
- icon_color: "#959da5"
305
- ```
306
-
307
- ### Blog timeline
308
-
309
- Make entries for the blog the same way you normally would by placing entries in the `_posts` folder. You can adjust the number of entries that show up in the main page by adjusting `posts_limit` in the `_config.yml` file. If you have paginate installed and more posts than the limit, a `Read more` button will link to the paginated blog post page /blog/index.html.
310
-
311
- ![Blog](https://raw.githubusercontent.com/athackst/jekyll-theme-profile/main/demo/media/blog.png){: .border}
312
-
313
- ```yaml
314
- posts_limit: 3
315
- ```
316
-
317
- Additionally, the theme provides a paginate layout you can use.
318
-
319
- To use, add `gem jekyll-paginate` to your gemfile and the following lines to your `_config.yml`
320
-
321
- ```yaml
322
- paginate: 6
323
- paginate_path: "/blog/page:num"
324
- ```
325
-
326
- And adding a `index.html` page at the `pagenate_path`
327
-
328
- ```yaml
329
- ---
330
- layout: paginate
331
- title: My Blog
332
- ---
333
- ```
334
-
335
- ## Custom styles
336
-
337
- ### Site style
338
-
339
- You can override any style with styles defined in `/assets/css/style.css` or `/assets/css/style.scss` files. This is to support config based styling which needs jekyll variables.
340
-
341
- ### Page style
342
-
343
- You can add css to any page through the `css_style` variable in front matter.
344
-
345
- ```yaml
346
- ---
347
- css_style: |
348
- .Link-btn {
349
- background: rgba(0.1, 0.1, 0.1, 0.4);
350
- color: #FFFF;
351
- }
352
- h1 {
353
- color: #FFFF;
354
- }
355
- ---
356
-
357
- ```
22
+ See the [documentation](https://www.althack.dev/jekyll-theme-profile/docs) for additional details.
358
23
 
359
24
  ## Contributing
360
25
 
data/_config.yml CHANGED
@@ -2,14 +2,8 @@
2
2
  theme: jekyll-theme-profile
3
3
  title: Jekyll Theme Profile
4
4
  description: Theme built with jekyll-theme-profile
5
- image: /media/appbar-preview.png
5
+ # image: /assets/img/social-preview.png
6
6
  # repository: athackst/jekyll-theme-profile
7
- # base_url: "jekyll-theme-profile"
8
-
9
- collections:
10
- docs:
11
- output: true
12
- sort_by: order
13
7
 
14
8
  defaults:
15
9
  - scope:
@@ -22,13 +16,10 @@ defaults:
22
16
  toc: true
23
17
  - scope:
24
18
  path: "" # an empty string here means all files in the project
25
- type: "docs"
19
+ type: "pages"
26
20
  values:
27
- layout: "docs"
21
+ layout: "page"
28
22
  image: /assets/img/default.png # The default image used for social and posts.
29
- index: /docs/index.html
30
- permalink: /docs/:path:output_ext
31
- toc: true
32
23
 
33
24
  # ########### Theme settings ###############
34
25
  # The style of the website
@@ -36,8 +27,8 @@ style: appbar # One of "stacked", "sidebar", "topbar", "appbar"
36
27
  # The user/project avatar. If not set the avatar of the project owner will be used.
37
28
  # user_image: /assets/img/user-image.jpg
38
29
  # The themes to use for dark and light
39
- dark_theme: dark_dimmed
40
- light_theme: light
30
+ dark_theme: dark # One of dark, dark_dimmed, dark_colorblind, dark_high_contrast, dark_tritanopia
31
+ light_theme: light # One of light, light_colorblind, light_high_contrast, light_tritanopia
41
32
 
42
33
  repo_info: true # Show the information for the source of this project
43
34
  user_metadata: true # Show the metadata associated with the user
@@ -72,71 +63,61 @@ profile_link: true # Show a link to the github profile for the user
72
63
 
73
64
  ####################
74
65
  # Navigation links
75
- nav:
76
- - name: Posts
77
- url: /blog
78
- - name: Categories
79
- url: /category/
66
+ # nav:
67
+ # - name: Posts
68
+ # url: /blog
69
+ # - name: Categories
70
+ # url: /category/
80
71
 
81
72
  ####################
82
73
  # List of links for link cards
83
- links:
84
- - name: All blog posts
85
- url: /blog
86
- thumbnail: /assets/img/blog-post-icon.png
87
- - name: Browse by category
88
- url: /category/
89
- thumbnail: /assets/img/category-icon.png
74
+ # links:
75
+ # - name: All blog posts
76
+ # url: /blog
77
+ # thumbnail: /assets/img/blog-post-icon.png
78
+ # - name: Browse by category
79
+ # url: /category/
80
+ # thumbnail: /assets/img/category-icon.png
90
81
 
91
82
  ###################
92
83
  # Repositories to show on home page
93
84
  repositories:
94
- sort_by: stars
95
- # sort_by options:
96
- # - pushed
97
- # - stars
85
+ sort_by: stars #pushed or stars
98
86
  limit: 24
99
87
  exclude:
100
88
  archived: true
101
89
  forks: true
102
90
  repositories:
103
- # - list of respositories to exclude
91
+ # - list of repositories to exclude
104
92
 
105
93
  ########################
106
- # Post timeline
107
- posts_limit: 3 # The number of posts to show in home (also can be defined in page)
94
+ # Post settings
95
+ related_by: "tags or categories"
108
96
 
109
97
  # ########### Plugin settings ###############
110
98
  plugins:
111
99
  - jekyll-github-metadata
112
100
  - jekyll-octicons
113
- - jekyll-relative-links
114
101
  - jekyll-seo-tag
115
102
  - jekyll-toc
116
103
  - jemoji
117
104
 
118
105
  ####################
119
106
  # jekyll-paginate settings
120
- paginate: 6 # The number of posts to show per page of pagination of blog posts
121
- paginate_path: "/blog/page:num"
122
- ###################
107
+ # Include `gem jekyll-paginate` in your gemfile
108
+ # paginate: 6 # The number of posts to show per page of pagination of blog posts
109
+ # paginate_path: "/blog/page:num"
110
+ # ###################
123
111
  # jekyll-tagging settings
124
112
  # Include `gem jekyll-tagging` in your gemfile
125
- tag_page_layout: tags
126
- tag_page_dir: tags
127
- # related
128
- related_by: "tags or categories"
129
-
130
- ####################
113
+ # tag_page_layout: tags
114
+ # tag_page_dir: tags
115
+ # ####################
131
116
  # jekyll-category-pages settings
132
- category_path: category
133
- category_layout: category_layout.html
134
-
117
+ # Include `gem jekyll-category-pages` in your gemfile
118
+ # category_path: category
119
+ # category_layout: category_layout.html
135
120
  ######################
136
- # jekyll-relative-links settings
137
- relative_links:
138
- enabled: true
139
- collections: true
140
121
 
141
122
  # ########### Build settings ###############
142
123
  exclude:
@@ -1,53 +1,77 @@
1
+ {%- comment -%}
2
+ collection-menu.html
3
+
4
+ Generates a dropdown menu for a Jekyll collection, grouping items by their "category" front matter.
5
+ Useful for documentation, guides, or any collection-based navigation.
6
+
7
+ Parameters:
8
+ - collection (defaults to site.docs): The Jekyll collection to display.
9
+ - name: Display name for the collection header.
10
+ - index: Optional index page object for the collection (e.g., site.docs_index).
11
+ - id (default: "collection-menu"): HTML ID for the menu container (useful when multiple menus are present).
12
+
13
+ Example Usage:
14
+ {% include collection-menu.html collection=site.docs name="Documentation" index=site.docs_index id="docs-menu" %}
15
+ {%- endcomment -%}
16
+
1
17
  {%- assign collection = include.collection | default: site.docs %}
2
18
  {%- assign collection_name = include.name %}
3
19
  {%- assign collection_index = include.index %}
20
+ {%- assign collection_id = include.id | default: "collection-menu" %}
21
+ {% comment %}computed variables{% endcomment %}
4
22
  {%- assign index_url = collection_index.url %}
5
23
  {%- assign collection_without_index = collection | where_exp: "item", "item.url != index_url" %}
6
24
 
7
- <div class="Overlay-backdrop--side Overlay-backdrop--placement-left" data-modal-dialog-overlay>
8
- <modal-dialog class="Overlay Overlay--width-medium Overlay--motion-slideDown height-fit height-full">
9
- <div class="Overlay-headerContentWrap d-flex flex-row py-3 px-2 border-bottom">
10
- <div class="Overlay-titleWrap d-flex flex-1">
11
- <div tabindex="-1" class="d-flex flex-1 ml-3" id="github-logo">
12
- {% if collection_index %}
25
+ <script>
26
+ $(document).ready(function () {
27
+ const $menu = $("#{{ collection_id }}");
28
+ const $closeButton = $(".close-menu");
29
+
30
+ if ($menu.length && $closeButton.length) {
31
+ $closeButton.click(() => $menu.removeAttr("open")); // Properly closes the dropdown
32
+ }
33
+ });
34
+ </script>
35
+
36
+ <details class="details-reset details-overlay" id="{{ collection_id }}">
37
+ <summary class="btn btn-invisible" aria-haspopup="true">
38
+ <svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
39
+ <path d="M4 6H20M4 12H20M4 18H20" stroke="currentColor" stroke-width="2" stroke-linecap="round" />
40
+ </svg>
41
+ </summary>
42
+ <details-menu class="SelectMenu" role="menu">
43
+ <div class="SelectMenu-modal">
44
+
45
+ <div class="SelectMenu-header">
46
+ <div tabindex="-1" class="SelectMenu-title" id="github-logo">
47
+ {%- if collection_index %}
13
48
  <a href="{{ collection_index.url | relative_url }}"
14
49
  class="AppHeader-link d-flex flex-items-center no-underline mr-3">
15
50
  <span class="h3 color-fg-default text-bold">{{ collection_name }}</span>
16
51
  </a>
17
- {% else %}
52
+ {%- else %}
18
53
  <div class="AppHeader-link d-flex flex-items-center no-underline mr-3">
19
54
  <span class="h3 color-fg-default text-bold">{{ collection_name }}</span>
20
55
  </div>
21
- {% endif %}
56
+ {%- endif %}
57
+ </div>
58
+ <div class="d-flex flex-justify-end">
59
+ <button class="SelectMenu-closeButton close-menu" type="button">
60
+ {% octicon x height: 16 %}
61
+ </button>
22
62
  </div>
23
63
  </div>
24
- <div class="Overlay-actionWrap d-flex flex-justify-end">
25
- <button id="close-contents-btn" class="close-button Overlay-closeButton">
26
- {% octicon x height: 16 %}
27
- </button>
28
- </div>
29
- </div>
30
- <div class="Overlay-body d-flex flex-column p-2">
31
- <ul data-overflow-nav class="ActionList border-0">
64
+ <div class="SideNav border overflow-y-auto">
32
65
  {%- assign collection_categories = collection_without_index | group_by: "category" %}
33
66
  {%- for category in collection_categories %}
34
67
  {%- assign category_name = category.name | default: collection_name %}
35
- <li class="ActionListItem no-underline h4">{{ category_name | capitalize }}
36
- <ul>
37
- {%- for nav_item in category.items %}
38
- {%- if nav_item.url != collection_index %}
39
- <a href="{{ nav_item.url | relative_url }}" class="ActionListItem-label no-underline">
40
- <li class="menu-item ActionList-item border-0" {% if page.url==nav_item.url %}
41
- aria-current="page" {% endif %}>
42
- {{ nav_item.title }}
43
- </li>
44
- </a>
45
- {%- endif %}
46
- {%- endfor %}
47
- </ul>
48
- </li>
68
+ <div class="SideNav-item no-underline h4">{{ category_name | capitalize }}</div>
69
+ {%- for nav_item in category.items %}
70
+ <a href="{{ nav_item.url }}" class="SideNav-item" role="menuitem" {% if page.url contains nav_item.url
71
+ %} aria-current="page" {% endif %}>{{ nav_item.title }}</a>
72
+ {%- endfor %}
49
73
  {%- endfor %}
50
- </ul>
74
+ </div>
51
75
  </div>
52
- </modal-dialog>
53
- </div>
76
+ </details-menu>
77
+ </details>