jekyll-theme-zer0 0.10.6 → 0.15.2

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 (65) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +428 -0
  3. data/README.md +79 -31
  4. data/_data/README.md +419 -17
  5. data/_data/generate_statistics.rb +216 -9
  6. data/_data/generate_statistics.sh +106 -0
  7. data/_data/github-actions-example.yml +210 -0
  8. data/_data/navigation/about.yml +39 -11
  9. data/_data/navigation/docs.yml +53 -23
  10. data/_data/navigation/home.yml +27 -9
  11. data/_data/navigation/main.yml +27 -8
  12. data/_data/navigation/posts.yml +22 -6
  13. data/_data/navigation/quickstart.yml +19 -6
  14. data/_data/posts_organization.yml +153 -0
  15. data/_data/prerequisites.yml +112 -0
  16. data/_data/statistics_config.yml +203 -0
  17. data/_data/ui-text.yml +321 -0
  18. data/_data/update_statistics.sh +126 -0
  19. data/_includes/README.md +2 -0
  20. data/_includes/components/js-cdn.html +4 -1
  21. data/_includes/components/post-card.html +2 -11
  22. data/_includes/components/preview-image.html +32 -0
  23. data/_includes/content/intro.html +9 -10
  24. data/_includes/core/header.html +14 -0
  25. data/_includes/navigation/sidebar-categories.html +20 -9
  26. data/_includes/navigation/sidebar-folders.html +8 -7
  27. data/_includes/navigation/sidebar-right.html +16 -10
  28. data/_layouts/blog.html +15 -45
  29. data/_layouts/category.html +4 -24
  30. data/_layouts/collection.html +2 -12
  31. data/_layouts/default.html +1 -1
  32. data/_layouts/journals.html +2 -12
  33. data/_layouts/notebook.html +296 -0
  34. data/_sass/core/_docs.scss +1 -1
  35. data/_sass/custom.scss +54 -17
  36. data/_sass/notebooks.scss +458 -0
  37. data/assets/images/notebooks/test-notebook_files/test-notebook_4_0.png +0 -0
  38. data/assets/js/sidebar.js +511 -0
  39. data/scripts/README.md +131 -105
  40. data/scripts/analyze-commits.sh +9 -311
  41. data/scripts/bin/build +22 -22
  42. data/scripts/build +7 -111
  43. data/scripts/convert-notebooks.sh +415 -0
  44. data/scripts/features/validate_preview_urls.py +500 -0
  45. data/scripts/fix-markdown-format.sh +8 -262
  46. data/scripts/generate-preview-images.sh +7 -787
  47. data/scripts/install-preview-generator.sh +8 -528
  48. data/scripts/lib/README.md +5 -5
  49. data/scripts/lib/changelog.sh +89 -57
  50. data/scripts/lib/gem.sh +19 -7
  51. data/scripts/release +7 -236
  52. data/scripts/setup.sh +9 -153
  53. data/scripts/test/lib/run_tests.sh +1 -2
  54. data/scripts/test-auto-version.sh +7 -256
  55. data/scripts/test-mermaid.sh +7 -287
  56. data/scripts/test.sh +9 -154
  57. metadata +16 -10
  58. data/scripts/features/preview_generator.py +0 -646
  59. data/scripts/lib/test/run_tests.sh +0 -140
  60. data/scripts/lib/test/test_changelog.sh +0 -87
  61. data/scripts/lib/test/test_gem.sh +0 -68
  62. data/scripts/lib/test/test_git.sh +0 -82
  63. data/scripts/lib/test/test_validation.sh +0 -72
  64. data/scripts/lib/test/test_version.sh +0 -96
  65. data/scripts/version.sh +0 -178
@@ -0,0 +1,458 @@
1
+ // ==============================================================================
2
+ // NOTEBOOK STYLES - Jupyter Notebook Display Styling
3
+ // ==============================================================================
4
+ //
5
+ // File: _notebooks.scss
6
+ // Path: _sass/notebooks.scss
7
+ // Purpose: Styles for Jupyter notebook cells, outputs, and code blocks
8
+ //
9
+ // Features:
10
+ // - Code cell styling with execution counts
11
+ // - Output area styling (text, images, tables)
12
+ // - Responsive design for mobile and desktop
13
+ // - Syntax highlighting integration with Rouge
14
+ // - MathJax equation display
15
+ // - Bootstrap 5 compatible
16
+ //
17
+ // Dependencies:
18
+ // - Bootstrap 5 variables and utilities
19
+ // - Rouge syntax highlighter
20
+ // - MathJax for mathematical notation
21
+ // ==============================================================================
22
+
23
+ // Notebook article container
24
+ .notebook-article {
25
+ // Ensure proper spacing and readability
26
+ line-height: 1.6;
27
+
28
+ .notebook-header {
29
+ border-bottom: 2px solid var(--bs-border-color);
30
+ padding-bottom: 1.5rem;
31
+ }
32
+
33
+ .notebook-title {
34
+ color: var(--bs-heading-color);
35
+ font-weight: 700;
36
+ margin-bottom: 1rem;
37
+ }
38
+
39
+ .notebook-meta {
40
+ font-size: 0.9rem;
41
+
42
+ .bi {
43
+ font-size: 1rem;
44
+ vertical-align: text-bottom;
45
+ }
46
+ }
47
+
48
+ .notebook-description {
49
+ color: var(--bs-secondary-color);
50
+ font-size: 1.1rem;
51
+ border-left: 4px solid var(--bs-primary);
52
+ padding-left: 1rem;
53
+ margin: 1.5rem 0;
54
+ }
55
+ }
56
+
57
+ // Notebook content area
58
+ .notebook-content {
59
+ margin-top: 2rem;
60
+
61
+ // Headings within notebook
62
+ h1, h2, h3, h4, h5, h6 {
63
+ margin-top: 2rem;
64
+ margin-bottom: 1rem;
65
+ font-weight: 600;
66
+ }
67
+
68
+ h1 { font-size: 2rem; }
69
+ h2 { font-size: 1.75rem; }
70
+ h3 { font-size: 1.5rem; }
71
+ h4 { font-size: 1.25rem; }
72
+ h5 { font-size: 1.1rem; }
73
+ h6 { font-size: 1rem; }
74
+
75
+ // Paragraphs
76
+ p {
77
+ margin-bottom: 1rem;
78
+ line-height: 1.7;
79
+ }
80
+
81
+ // Lists
82
+ ul, ol {
83
+ margin-bottom: 1rem;
84
+ padding-left: 2rem;
85
+
86
+ li {
87
+ margin-bottom: 0.5rem;
88
+ }
89
+ }
90
+
91
+ // Blockquotes
92
+ blockquote {
93
+ border-left: 4px solid var(--bs-secondary);
94
+ padding-left: 1rem;
95
+ margin: 1.5rem 0;
96
+ font-style: italic;
97
+ color: var(--bs-secondary-color);
98
+ }
99
+
100
+ // Links
101
+ a {
102
+ color: var(--bs-link-color);
103
+ text-decoration: underline;
104
+
105
+ &:hover {
106
+ color: var(--bs-link-hover-color);
107
+ }
108
+ }
109
+
110
+ // Images
111
+ img {
112
+ max-width: 100%;
113
+ height: auto;
114
+ margin: 1rem 0;
115
+ border-radius: 0.375rem;
116
+ box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
117
+ }
118
+
119
+ // Tables
120
+ table {
121
+ width: 100%;
122
+ margin: 1.5rem 0;
123
+ border-collapse: collapse;
124
+ font-size: 0.9rem;
125
+
126
+ thead {
127
+ background-color: var(--bs-secondary-bg);
128
+ border-bottom: 2px solid var(--bs-border-color);
129
+
130
+ th {
131
+ padding: 0.75rem;
132
+ text-align: left;
133
+ font-weight: 600;
134
+ }
135
+ }
136
+
137
+ tbody {
138
+ tr {
139
+ border-bottom: 1px solid var(--bs-border-color);
140
+
141
+ &:hover {
142
+ background-color: var(--bs-tertiary-bg);
143
+ }
144
+ }
145
+
146
+ td {
147
+ padding: 0.75rem;
148
+ }
149
+ }
150
+ }
151
+
152
+ // Horizontal rules
153
+ hr {
154
+ margin: 2rem 0;
155
+ opacity: 0.3;
156
+ }
157
+ }
158
+
159
+ // Code cells and code blocks
160
+ .notebook-content {
161
+ // Inline code
162
+ code {
163
+ background-color: var(--bs-secondary-bg);
164
+ color: var(--bs-code-color);
165
+ padding: 0.2rem 0.4rem;
166
+ border-radius: 0.25rem;
167
+ font-size: 0.875em;
168
+ font-family: 'Monaco', 'Menlo', 'Consolas', monospace;
169
+ }
170
+
171
+ // Code blocks
172
+ pre {
173
+ background-color: var(--bs-secondary-bg);
174
+ border: 1px solid var(--bs-border-color);
175
+ border-radius: 0.375rem;
176
+ padding: 1rem;
177
+ overflow-x: auto;
178
+ margin: 1.5rem 0;
179
+
180
+ code {
181
+ background-color: transparent;
182
+ color: inherit;
183
+ padding: 0;
184
+ border-radius: 0;
185
+ font-size: 0.875rem;
186
+ line-height: 1.5;
187
+ }
188
+ }
189
+
190
+ // Jupyter code cells with execution counts
191
+ .highlight {
192
+ position: relative;
193
+ background-color: var(--bs-secondary-bg);
194
+ border-radius: 0.375rem;
195
+ margin: 1.5rem 0;
196
+
197
+ pre {
198
+ margin: 0;
199
+ border: none;
200
+ background-color: transparent;
201
+ border-radius: 0;
202
+ }
203
+ }
204
+
205
+ // Input prompts (In [1]:)
206
+ .input-prompt {
207
+ color: var(--bs-primary);
208
+ font-weight: 600;
209
+ user-select: none;
210
+ padding-right: 0.5rem;
211
+
212
+ &::before {
213
+ content: 'In [';
214
+ }
215
+
216
+ &::after {
217
+ content: ']:';
218
+ }
219
+ }
220
+
221
+ // Output prompts (Out [1]:)
222
+ .output-prompt {
223
+ color: var(--bs-danger);
224
+ font-weight: 600;
225
+ user-select: none;
226
+ padding-right: 0.5rem;
227
+
228
+ &::before {
229
+ content: 'Out[';
230
+ }
231
+
232
+ &::after {
233
+ content: ']:';
234
+ }
235
+ }
236
+ }
237
+
238
+ // Jupyter output areas
239
+ .jp-OutputArea,
240
+ .output-area,
241
+ .cell-output {
242
+ margin: 1rem 0;
243
+ padding: 1rem;
244
+ background-color: var(--bs-light-bg-subtle);
245
+ border-left: 4px solid var(--bs-success);
246
+ border-radius: 0.375rem;
247
+
248
+ // Text output
249
+ pre {
250
+ background-color: transparent;
251
+ border: none;
252
+ padding: 0;
253
+ margin: 0;
254
+ color: var(--bs-body-color);
255
+ }
256
+
257
+ // Image output
258
+ img {
259
+ display: block;
260
+ max-width: 100%;
261
+ height: auto;
262
+ margin: 0 auto;
263
+ }
264
+
265
+ // Table output (pandas DataFrames)
266
+ table {
267
+ margin: 0;
268
+ font-size: 0.85rem;
269
+ }
270
+
271
+ // Error output
272
+ &.error {
273
+ border-left-color: var(--bs-danger);
274
+ background-color: var(--bs-danger-bg-subtle);
275
+ color: var(--bs-danger-text);
276
+
277
+ pre {
278
+ color: var(--bs-danger-text);
279
+ }
280
+ }
281
+ }
282
+
283
+ // Jupyter cell containers
284
+ .jp-Cell,
285
+ .cell {
286
+ margin: 2rem 0;
287
+
288
+ // Code cells
289
+ &.jp-CodeCell,
290
+ &.code-cell {
291
+ .jp-InputArea,
292
+ .input-area {
293
+ position: relative;
294
+ }
295
+ }
296
+
297
+ // Markdown cells
298
+ &.jp-MarkdownCell,
299
+ &.markdown-cell {
300
+ // Inherits from .notebook-content styles
301
+ }
302
+ }
303
+
304
+ // MathJax equations
305
+ .MathJax,
306
+ .MathJax_Display {
307
+ font-size: 1.1em !important;
308
+
309
+ // Inline math
310
+ &.MathJax_Inline {
311
+ margin: 0 0.2em;
312
+ }
313
+
314
+ // Display math (centered)
315
+ &.MathJax_Display {
316
+ margin: 1.5rem 0;
317
+ text-align: center;
318
+ }
319
+ }
320
+
321
+ // LaTeX equations (before MathJax processes them)
322
+ .tex,
323
+ .latex {
324
+ font-family: 'Computer Modern', serif;
325
+ }
326
+
327
+ // Notebook footer
328
+ .notebook-footer {
329
+ margin-top: 3rem;
330
+ padding-top: 2rem;
331
+
332
+ .share-buttons {
333
+ .btn {
334
+ display: inline-flex;
335
+ align-items: center;
336
+ gap: 0.5rem;
337
+ }
338
+ }
339
+
340
+ .download-notebook {
341
+ .btn {
342
+ display: inline-flex;
343
+ align-items: center;
344
+ gap: 0.5rem;
345
+ }
346
+ }
347
+
348
+ .related-notebooks {
349
+ .card {
350
+ transition: transform 0.2s, box-shadow 0.2s;
351
+
352
+ &:hover {
353
+ transform: translateY(-4px);
354
+ box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
355
+ }
356
+ }
357
+ }
358
+ }
359
+
360
+ // Notebook navigation
361
+ .notebook-navigation {
362
+ margin-top: 3rem;
363
+
364
+ .pagination {
365
+ .page-link {
366
+ display: flex;
367
+ align-items: center;
368
+ padding: 0.75rem 1rem;
369
+
370
+ &.disabled {
371
+ opacity: 0.5;
372
+ cursor: not-allowed;
373
+ }
374
+ }
375
+ }
376
+ }
377
+
378
+ // Responsive adjustments
379
+ @media (max-width: 768px) {
380
+ .notebook-content {
381
+ // Smaller font sizes on mobile
382
+ font-size: 0.95rem;
383
+
384
+ h1 { font-size: 1.75rem; }
385
+ h2 { font-size: 1.5rem; }
386
+ h3 { font-size: 1.25rem; }
387
+ h4 { font-size: 1.1rem; }
388
+
389
+ // Scrollable code blocks
390
+ pre {
391
+ font-size: 0.8rem;
392
+ }
393
+
394
+ // Scrollable tables
395
+ table {
396
+ display: block;
397
+ overflow-x: auto;
398
+ white-space: nowrap;
399
+ }
400
+ }
401
+
402
+ .notebook-footer {
403
+ .related-notebooks {
404
+ .col-md-4 {
405
+ margin-bottom: 1rem;
406
+ }
407
+ }
408
+ }
409
+
410
+ .notebook-navigation {
411
+ .pagination {
412
+ flex-direction: column;
413
+ gap: 0.5rem;
414
+
415
+ .page-item {
416
+ width: 100%;
417
+
418
+ .page-link {
419
+ width: 100%;
420
+ text-align: center;
421
+ }
422
+ }
423
+ }
424
+ }
425
+ }
426
+
427
+ // Print styles
428
+ @media print {
429
+ .notebook-article {
430
+ .notebook-footer,
431
+ .share-buttons,
432
+ .notebook-comments,
433
+ .notebook-navigation {
434
+ display: none;
435
+ }
436
+ }
437
+ }
438
+
439
+ // Dark mode support (if theme implements dark mode)
440
+ @media (prefers-color-scheme: dark) {
441
+ .notebook-content {
442
+ .highlight,
443
+ pre {
444
+ background-color: var(--bs-dark-bg-subtle);
445
+ border-color: var(--bs-border-color-translucent);
446
+ }
447
+ }
448
+
449
+ .jp-OutputArea,
450
+ .output-area,
451
+ .cell-output {
452
+ background-color: var(--bs-dark-bg-subtle);
453
+
454
+ &.error {
455
+ background-color: rgba(220, 53, 69, 0.1);
456
+ }
457
+ }
458
+ }