dotfolio-theme 0.1.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 (62) hide show
  1. checksums.yaml +7 -0
  2. data/LICENSE +21 -0
  3. data/LICENSE.txt +21 -0
  4. data/README.md +50 -0
  5. data/_data/theme.yml +88 -0
  6. data/_includes/footer.html +18 -0
  7. data/_includes/head.html +24 -0
  8. data/_includes/hero.html +32 -0
  9. data/_includes/nav.html +39 -0
  10. data/_includes/projects.html +36 -0
  11. data/_includes/recent-posts.html +32 -0
  12. data/_layouts/default.html +11 -0
  13. data/_layouts/home.html +10 -0
  14. data/_layouts/page.html +13 -0
  15. data/_layouts/post.html +23 -0
  16. data/_layouts/search.html +13 -0
  17. data/assets/css/main.css +1478 -0
  18. data/assets/css/tailwind.css +411 -0
  19. data/assets/icons/angular.svg +1 -0
  20. data/assets/icons/bootstrap.svg +1 -0
  21. data/assets/icons/css.svg +1 -0
  22. data/assets/icons/django.svg +1 -0
  23. data/assets/icons/docker.svg +1 -0
  24. data/assets/icons/gatsbyjs.svg +1 -0
  25. data/assets/icons/git.svg +1 -0
  26. data/assets/icons/github.svg +1 -0
  27. data/assets/icons/heroku.svg +1 -0
  28. data/assets/icons/html5.svg +1 -0
  29. data/assets/icons/instagram.svg +1 -0
  30. data/assets/icons/javascript.svg +1 -0
  31. data/assets/icons/jekyll.svg +1 -0
  32. data/assets/icons/jira.svg +1 -0
  33. data/assets/icons/linkedin.svg +1 -0
  34. data/assets/icons/mysql.svg +1 -0
  35. data/assets/icons/netlify.svg +1 -0
  36. data/assets/icons/php.svg +1 -0
  37. data/assets/icons/postgresql.svg +1 -0
  38. data/assets/icons/python.svg +1 -0
  39. data/assets/icons/rubyonrails.svg +1 -0
  40. data/assets/icons/symfony.svg +1 -0
  41. data/assets/icons/tailwind.svg +1 -0
  42. data/assets/icons/twitter.svg +1 -0
  43. data/assets/icons/vscode.svg +1 -0
  44. data/assets/images/about.txt +6 -0
  45. data/assets/images/android-chrome-192x192.png +0 -0
  46. data/assets/images/android-chrome-512x512.png +0 -0
  47. data/assets/images/apple-touch-icon.png +0 -0
  48. data/assets/images/favicon-16x16.png +0 -0
  49. data/assets/images/favicon-32x32.png +0 -0
  50. data/assets/images/favicon.ico +0 -0
  51. data/assets/images/profile.jpg +0 -0
  52. data/assets/images/site.webmanifest +1 -0
  53. data/assets/js/search.js +48 -0
  54. data/assets/js/theme-switcher.js +16 -0
  55. data/assets/projects/project.png +0 -0
  56. data/bin/dotfolio-theme +3 -0
  57. data/lib/dotfolio-theme/installer.rb +42 -0
  58. data/lib/dotfolio-theme/templates/_config.yml +101 -0
  59. data/lib/dotfolio-theme/templates/about.markdown +75 -0
  60. data/lib/dotfolio-theme/templates/notes-index.html +38 -0
  61. data/lib/dotfolio-theme/templates/search.json +13 -0
  62. metadata +134 -0
@@ -0,0 +1,42 @@
1
+ require "fileutils"
2
+
3
+ module DotfolioTheme
4
+ class Installer
5
+ TEMPLATE_DIR = File.expand_path("templates", __dir__)
6
+
7
+ def self.install
8
+ files_to_copy = ["about.markdown", "search.json", "_config.yml"]
9
+
10
+ files_to_copy.each do |filename|
11
+ src_file = File.join(TEMPLATE_DIR, filename)
12
+ dest_file = File.join(Dir.pwd, filename)
13
+
14
+ if File.exist?(dest_file)
15
+ print "Warning: #{filename} already exists. Overwrite? (Y/N): "
16
+ answer = $stdin.gets.chomp.strip.downcase
17
+ next unless answer == "y"
18
+ end
19
+
20
+ FileUtils.cp(src_file, dest_file)
21
+ puts "#{filename} installed!"
22
+ end
23
+
24
+ # Create notes directory
25
+ notes_dir = File.join(Dir.pwd, "notes")
26
+ FileUtils.mkdir_p(notes_dir)
27
+
28
+ # Copy index.html into notes/
29
+ src_index = File.join(TEMPLATE_DIR, "notes-index.html")
30
+ dest_index = File.join(notes_dir, "index.html")
31
+
32
+ if File.exist?(dest_index)
33
+ print "Warning: notes/index.html already exists. Overwrite? (Y/N): "
34
+ answer = $stdin.gets.chomp.strip.downcase
35
+ return unless answer == "y"
36
+ end
37
+
38
+ FileUtils.cp(src_index, dest_index)
39
+ puts "notes/index.html installed!"
40
+ end
41
+ end
42
+ end
@@ -0,0 +1,101 @@
1
+ title: Dotfolio
2
+ description: A dotted notebook-style Jekyll theme for minimal and structured developer portfolios.
3
+
4
+ hero:
5
+ name: Brainy Smurf
6
+ title: Curious Engineer
7
+ location: Smurf Village of Innovation
8
+ bio: I smurf in crafting the most clever, tidy, and delightfully smurfy solutions in all of Smurf Village. With my superior smurfing methods and impeccable smurf-logic, I ensure everything is organized, efficient, and properly smurfed to perfection.
9
+
10
+ headings:
11
+ projects:
12
+ heading: Projects
13
+ subheading: A smurfy mix of freelance, volunteer, and passion smurfjects.
14
+ more:
15
+ label: More on GitHub
16
+ link: https://github.com/username
17
+ posts:
18
+ heading: Recent Notes
19
+ subheading: Smurfy notes, bookmarks, and handy smurfources.
20
+ more:
21
+ label: Older notes
22
+
23
+ tools:
24
+ - name: HTML5
25
+ icon: /assets/icons/html5.svg
26
+ - name: CSS3
27
+ icon: /assets/icons/css.svg
28
+ - name: JavaScript
29
+ icon: /assets/icons/javascript.svg
30
+ - name: Bootstrap
31
+ icon: /assets/icons/bootstrap.svg
32
+ - name: Tailwind
33
+ icon: /assets/icons/tailwind.svg
34
+ - name: PHP
35
+ icon: /assets/icons/php.svg
36
+ - name: MySQL
37
+ icon: /assets/icons/mysql.svg
38
+ - name: Postgres
39
+ icon: /assets/icons/postgresql.svg
40
+ - name: Python
41
+ icon: /assets/icons/python.svg
42
+ - name: Django
43
+ icon: /assets/icons/django.svg
44
+ - name: Symfony
45
+ icon: /assets/icons/symfony.svg
46
+ - name: Ruby on Rails
47
+ icon: /assets/icons/rubyonrails.svg
48
+ - name: Angular
49
+ icon: /assets/icons/angular.svg
50
+ - name: GatsbyJS
51
+ icon: /assets/icons/gatsbyjs.svg
52
+ - name: Jekyll
53
+ icon: /assets/icons/jekyll.svg
54
+ - name: Heroku
55
+ icon: /assets/icons/heroku.svg
56
+ - name: Netlify
57
+ icon: /assets/icons/netlify.svg
58
+ - name: Git
59
+ icon: /assets/icons/git.svg
60
+ - name: Docker
61
+ icon: /assets/icons/docker.svg
62
+ - name: Visual Studio
63
+ icon: /assets/icons/vscode.svg
64
+ - name: Jira
65
+ icon: /assets/icons/jira.svg
66
+
67
+ projects:
68
+ - title : Smurfboard
69
+ description: A smurfy app to keep track of all village tasks, from mushroom gardening to potion brewing.
70
+ link: https://example.com
71
+ image: assets/projects/project.png
72
+ - title : SmurfLib
73
+ description: A magical collection of scrolls, recipes, and Smurf lore, for every Smurf to learn and share.
74
+ link: https://example.com
75
+ image: assets/projects/project.png
76
+
77
+ socials:
78
+ - name: GitHub
79
+ url: https://github.com/yourusername
80
+ icon: /assets/icons/github.svg
81
+
82
+ - name: Instagram
83
+ url: https://instagram.com/yourusername
84
+ icon: /assets/icons/instagram.svg
85
+
86
+ - name: LinkedIn
87
+ url: https://linkedin.com/in/yourusername
88
+ icon: /assets/icons/linkedin.svg
89
+
90
+ theme: dotfolio-theme
91
+
92
+ plugins:
93
+ - jekyll-paginate-v2
94
+
95
+ pagination:
96
+ enabled: true
97
+ per_page: 5
98
+ permalink: '/notes/:num/'
99
+ title: ':title - page :num'
100
+ sort_field: 'date'
101
+ sort_reverse: true
@@ -0,0 +1,75 @@
1
+ ---
2
+ layout: page
3
+ title: About Dotfolio
4
+ permalink: /about/
5
+ ---
6
+
7
+ # 📘 Dotfolio
8
+
9
+ > A calm, dotted notebook-style Jekyll theme with a minimal, structured layout for showcasing projects and documenting ideas.
10
+
11
+ ---
12
+
13
+
14
+ ## ✨ Features
15
+
16
+ - 🧭 Simple, focused homepage layout
17
+ - 📝 Notes system with **pagination + search**
18
+ - 🗂 Centralized configuration via a single YAML file
19
+ - ✍️ Consistent styling across Markdown and HTML
20
+ - 🌗 Dark mode / light mode toggle
21
+ - ⚡ Installer script for quick setup
22
+ - 📦 Fully static (no runtime dependencies)
23
+ - 🪶 Lightweight and fast
24
+ - 🔓 Open source
25
+
26
+ ---
27
+
28
+ ## 📄 Pages
29
+
30
+ ### 🏠 Home
31
+ - Hero section (name tag + short intro)
32
+ - Tech stack overview
33
+ - Recent projects (with GitHub profile link)
34
+ - Recent notes
35
+
36
+ ### 📝 Notes
37
+ - Paginated index
38
+ - Built-in search (non-paginated results)
39
+
40
+ ### 👤 About
41
+ - Dedicated page to introduce yourself
42
+
43
+ ---
44
+
45
+ ## 🎯 Use Cases
46
+
47
+ Dotfolio is ideal for:
48
+
49
+ - Developer portfolios
50
+ - Project showcases
51
+ - Personal blogs
52
+ - Digital gardens / notes
53
+
54
+ ---
55
+
56
+ ## 🤝 Contributing
57
+
58
+ Contributions, issues, and feature requests are welcome!
59
+
60
+ Feel free to:
61
+ - [Open an issue](https://github.com/jennieablog/dotfolio-theme/contribute)
62
+ - [Submit a pull request](https://github.com/jennieablog/dotfolio-theme/pulls)
63
+
64
+ ---
65
+
66
+ ## 📄 License
67
+
68
+ MIT License © Jennie Ron Ablog
69
+
70
+ ---
71
+
72
+ ## 💡 Acknowledgements
73
+
74
+ - Built with ❤️ using [Jekyll](https://jekyllrb.com).
75
+ - Styled using [Tailwind CSS](https://tailwindcss.com) during development, then compiled into a standalone stylesheet for production.
@@ -0,0 +1,38 @@
1
+ ---
2
+ layout: search
3
+ title: "Notes"
4
+ pagination:
5
+ enabled: true
6
+ ---
7
+ <section class="notes-index">
8
+ <div class="heading">Notes</div>
9
+ <p class="subheading">Developer notes, bookmarks, and resources.</p>
10
+
11
+ <input type="text" id="search-input" class="search-input" placeholder="Search notes..." />
12
+
13
+ <ul id="search-results" class="search-results"></ul>
14
+ <div id="paginated-posts" class="paginated-posts">
15
+ <ul>
16
+ {% for post in paginator.posts %}
17
+ <li>
18
+ <h3>
19
+ <a href="{{ post.url | relative_url }}">{{ post.title }}</a>
20
+ </h3>
21
+ <p>
22
+ {{ post.excerpt | strip_html | truncate: 160 }}
23
+ </p>
24
+ <small>{{ post.date | date: "%B %-d, %Y" }}</small>
25
+ </li>
26
+ {% endfor %}
27
+ </ul>
28
+ <div id="pagination-links" class="pagination">
29
+ {% if paginator.previous_page %}
30
+ <a href="{{ paginator.previous_page_path | relative_url }}">&larr; Newer notes</a>
31
+ {% endif %}
32
+ {% if paginator.next_page %}
33
+ <a href="{{ paginator.next_page_path | relative_url }}">Older notes &rarr;</a>
34
+ {% endif %}
35
+ </div>
36
+ </div>
37
+ <script type="text/javascript" src="{{ '/assets/js/search.js' | relative_url }}"></script>
38
+ </section>
@@ -0,0 +1,13 @@
1
+ ---
2
+ layout: null
3
+ ---
4
+ [
5
+ {% for post in site.posts %}
6
+ {
7
+ "title": {{ post.title | jsonify }},
8
+ "url": {{ post.url | relative_url | jsonify }},
9
+ "excerpt": {{ post.excerpt | strip_html | strip_newlines | jsonify }},
10
+ "date": "{{ post.date | date: "%B %-d, %Y" }}"
11
+ }{% unless forloop.last %},{% endunless %}
12
+ {% endfor %}
13
+ ]
metadata ADDED
@@ -0,0 +1,134 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: dotfolio-theme
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - Jennie Ron Ablog
8
+ bindir: bin
9
+ cert_chain: []
10
+ date: 2026-04-09 00:00:00.000000000 Z
11
+ dependencies:
12
+ - !ruby/object:Gem::Dependency
13
+ name: jekyll
14
+ requirement: !ruby/object:Gem::Requirement
15
+ requirements:
16
+ - - ">="
17
+ - !ruby/object:Gem::Version
18
+ version: '4.0'
19
+ type: :runtime
20
+ prerelease: false
21
+ version_requirements: !ruby/object:Gem::Requirement
22
+ requirements:
23
+ - - ">="
24
+ - !ruby/object:Gem::Version
25
+ version: '4.0'
26
+ - !ruby/object:Gem::Dependency
27
+ name: jekyll-paginate-v2
28
+ requirement: !ruby/object:Gem::Requirement
29
+ requirements:
30
+ - - ">="
31
+ - !ruby/object:Gem::Version
32
+ version: '0'
33
+ type: :runtime
34
+ prerelease: false
35
+ version_requirements: !ruby/object:Gem::Requirement
36
+ requirements:
37
+ - - ">="
38
+ - !ruby/object:Gem::Version
39
+ version: '0'
40
+ description: Dotfolio is a calm, dotted notebook-style Jekyll theme with a minimal,
41
+ structured layout for showcasing projects and documenting ideas.
42
+ email:
43
+ - hello@jennieablog.dev
44
+ executables:
45
+ - dotfolio-theme
46
+ extensions: []
47
+ extra_rdoc_files: []
48
+ files:
49
+ - LICENSE
50
+ - LICENSE.txt
51
+ - README.md
52
+ - _data/theme.yml
53
+ - _includes/footer.html
54
+ - _includes/head.html
55
+ - _includes/hero.html
56
+ - _includes/nav.html
57
+ - _includes/projects.html
58
+ - _includes/recent-posts.html
59
+ - _layouts/default.html
60
+ - _layouts/home.html
61
+ - _layouts/page.html
62
+ - _layouts/post.html
63
+ - _layouts/search.html
64
+ - assets/css/main.css
65
+ - assets/css/tailwind.css
66
+ - assets/icons/angular.svg
67
+ - assets/icons/bootstrap.svg
68
+ - assets/icons/css.svg
69
+ - assets/icons/django.svg
70
+ - assets/icons/docker.svg
71
+ - assets/icons/gatsbyjs.svg
72
+ - assets/icons/git.svg
73
+ - assets/icons/github.svg
74
+ - assets/icons/heroku.svg
75
+ - assets/icons/html5.svg
76
+ - assets/icons/instagram.svg
77
+ - assets/icons/javascript.svg
78
+ - assets/icons/jekyll.svg
79
+ - assets/icons/jira.svg
80
+ - assets/icons/linkedin.svg
81
+ - assets/icons/mysql.svg
82
+ - assets/icons/netlify.svg
83
+ - assets/icons/php.svg
84
+ - assets/icons/postgresql.svg
85
+ - assets/icons/python.svg
86
+ - assets/icons/rubyonrails.svg
87
+ - assets/icons/symfony.svg
88
+ - assets/icons/tailwind.svg
89
+ - assets/icons/twitter.svg
90
+ - assets/icons/vscode.svg
91
+ - assets/images/about.txt
92
+ - assets/images/android-chrome-192x192.png
93
+ - assets/images/android-chrome-512x512.png
94
+ - assets/images/apple-touch-icon.png
95
+ - assets/images/favicon-16x16.png
96
+ - assets/images/favicon-32x32.png
97
+ - assets/images/favicon.ico
98
+ - assets/images/profile.jpg
99
+ - assets/images/site.webmanifest
100
+ - assets/js/search.js
101
+ - assets/js/theme-switcher.js
102
+ - assets/projects/project.png
103
+ - bin/dotfolio-theme
104
+ - lib/dotfolio-theme/installer.rb
105
+ - lib/dotfolio-theme/templates/_config.yml
106
+ - lib/dotfolio-theme/templates/about.markdown
107
+ - lib/dotfolio-theme/templates/notes-index.html
108
+ - lib/dotfolio-theme/templates/search.json
109
+ homepage: https://github.com/jennieablog/dotfolio-theme
110
+ licenses:
111
+ - MIT
112
+ metadata:
113
+ jekyll-theme: 'true'
114
+ homepage_uri: https://github.com/jennieablog/dotfolio-theme
115
+ source_code_uri: https://github.com/jennieablog/dotfolio-theme
116
+ rdoc_options: []
117
+ require_paths:
118
+ - lib
119
+ required_ruby_version: !ruby/object:Gem::Requirement
120
+ requirements:
121
+ - - ">="
122
+ - !ruby/object:Gem::Version
123
+ version: '0'
124
+ required_rubygems_version: !ruby/object:Gem::Requirement
125
+ requirements:
126
+ - - ">="
127
+ - !ruby/object:Gem::Version
128
+ version: '0'
129
+ requirements: []
130
+ rubygems_version: 3.6.2
131
+ specification_version: 4
132
+ summary: A dotted notebook-style Jekyll theme for minimal and structured developer
133
+ portfolios.
134
+ test_files: []