portosaurus 0.14.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 (64) hide show
  1. package/.vscode/snippets.code-snippets +79 -0
  2. package/AGENTS.md +37 -0
  3. package/GG/config.js +233 -0
  4. package/GG/package.json +14 -0
  5. package/GG/static/.nojekyll +0 -0
  6. package/GG/static/docusaurus-snippet.css +3 -0
  7. package/GG/static/img/icon-bg.png +0 -0
  8. package/GG/static/img/icon-old.png +0 -0
  9. package/GG/static/img/icon.png +0 -0
  10. package/GG/static/img/project-blank.png +0 -0
  11. package/GG/static/img/social-card.jpeg +0 -0
  12. package/LICENSE +674 -0
  13. package/README.md +57 -0
  14. package/bin/portosaurus.js +136 -0
  15. package/package.json +36 -0
  16. package/src/config/iconMappings.js +329 -0
  17. package/src/config/metaTags.js +240 -0
  18. package/src/config/prism.js +179 -0
  19. package/src/config/sidebar.js +20 -0
  20. package/src/configLoader.js +99 -0
  21. package/src/index.js +79 -0
  22. package/src/pages/index.js +98 -0
  23. package/src/pages/notes.js +88 -0
  24. package/src/pages/tasks.js +251 -0
  25. package/src/theme/components/AboutSection/index.js +67 -0
  26. package/src/theme/components/AboutSection/styles.module.css +492 -0
  27. package/src/theme/components/ContactSection/index.js +87 -0
  28. package/src/theme/components/ContactSection/styles.module.css +327 -0
  29. package/src/theme/components/ExperienceSection/index.js +25 -0
  30. package/src/theme/components/ExperienceSection/styles.module.css +180 -0
  31. package/src/theme/components/HeroSection/index.js +63 -0
  32. package/src/theme/components/HeroSection/styles.module.css +471 -0
  33. package/src/theme/components/NoteIndex/index.js +119 -0
  34. package/src/theme/components/NoteIndex/styles.module.css +143 -0
  35. package/src/theme/components/ProjectsSection/index.js +529 -0
  36. package/src/theme/components/ProjectsSection/styles.module.css +830 -0
  37. package/src/theme/components/ScrollToTop/index.js +98 -0
  38. package/src/theme/components/ScrollToTop/styles.module.css +96 -0
  39. package/src/theme/components/SocialLinks/index.js +129 -0
  40. package/src/theme/components/SocialLinks/styles.module.css +55 -0
  41. package/src/theme/components/Tooltip/index.js +30 -0
  42. package/src/theme/components/Tooltip/styles.module.css +92 -0
  43. package/src/theme/css/bootstrap.css +6 -0
  44. package/src/theme/css/catppuccin.css +632 -0
  45. package/src/theme/css/custom.css +186 -0
  46. package/src/theme/css/tasks.css +868 -0
  47. package/src/theme/staticLink/.nojekyll +0 -0
  48. package/src/theme/staticLink/docusaurus-snippet.css +3 -0
  49. package/src/theme/staticLink/img/icon-bg.png +0 -0
  50. package/src/theme/staticLink/img/icon-old.png +0 -0
  51. package/src/theme/staticLink/img/icon.png +0 -0
  52. package/src/theme/staticLink/img/project-blank.png +0 -0
  53. package/src/theme/staticLink/img/social-card.jpeg +0 -0
  54. package/src/utils/HashNavigation.js +250 -0
  55. package/src/utils/appVersion.js +27 -0
  56. package/src/utils/cssUtils.js +99 -0
  57. package/src/utils/filterEnabledItems.js +21 -0
  58. package/src/utils/generateFavicon.js +256 -0
  59. package/src/utils/generateRobotsTxt.js +97 -0
  60. package/src/utils/iconExtractor.js +159 -0
  61. package/src/utils/imageDownloader.js +88 -0
  62. package/src/utils/imageProcessor.js +134 -0
  63. package/src/utils/linkShortner.js +0 -0
  64. package/src/utils/updateTitle.js +107 -0
@@ -0,0 +1,79 @@
1
+ {
2
+ "Note Frontmatter": {
3
+ "scope": "markdown,mdx",
4
+ "prefix": "---",
5
+ "description": "Add frontmatter for a note page",
6
+ "body": [
7
+ "---",
8
+ "title: \"${1:Title}\"",
9
+ "description: \"${3:Description of the topic}\"",
10
+ "sidebar_position: ${2:1}",
11
+ "---"
12
+ ],
13
+ },
14
+
15
+ "Note Index Page": {
16
+ "scope": "markdown,mdx",
17
+ "prefix": "index",
18
+ "description": "\"Add a standard index page structure for note directories\"",
19
+ "body": [
20
+ "---",
21
+ "title: \"${1:Title}\"",
22
+ "page_type: ${index}",
23
+ "description: \"${3:Description of the topic}\"",
24
+ "sidebar_position: ${2:1}",
25
+ "---",
26
+ "",
27
+ "<div class=\"hide-lines\">",
28
+ "import { TopicList } from \"@site/src/components/NoteIndex\";",
29
+ "",
30
+ "<TopicList/>",
31
+ "</div>",
32
+ "",
33
+ "<div class=\"hide-this\" align=\"center\">",
34
+ " <h1>DO NOT EDIT</h1>",
35
+ " <h3>This File is Used for Entrypoint of this note.<br/>Do not edit/delete. </h3>",
36
+ "</div>"
37
+
38
+ ]
39
+ },
40
+
41
+ "DataView JS": {
42
+ "scope": "markdown,mdx",
43
+ "prefix": "dataview",
44
+ "description": "Add a dataview JS code block",
45
+ "body": [
46
+ "<h1 align=\"center\" class=\"hide-this\"> Topics</h1>",
47
+ " ",
48
+ "",
49
+ "```dataviewjs",
50
+ "const currentFolder = dv.current().file.folder;",
51
+ "",
52
+ "const pages = dv.pages(`\"\\${currentFolder}\"`).filter(p =>",
53
+ " !p.file.name.toLowerCase().includes(\"index\")",
54
+ ");",
55
+ "",
56
+ "const sortedPages = pages.sort((a, b) => {",
57
+ " const aPos = a.sidebar_position !== null ? Number(a.sidebar_position) : null;",
58
+ " const bPos = b.sidebar_position !== null ? Number(b.sidebar_position) : null;",
59
+ "",
60
+ " if (aPos !== null && bPos !== null) return aPos - bPos;",
61
+ " if (aPos !== null) return -1;",
62
+ " if (bPos !== null) return 1;",
63
+ "",
64
+ " return a.file.name.localeCompare(b.file.name);",
65
+ "});",
66
+ "",
67
+ "const tableData = [",
68
+ " [\"\\u200B\", \"\\u200B\"],",
69
+ " ...sortedPages.map(p => [",
70
+ " `- ${p.title || p.file.name}`,",
71
+ " dv.fileLink(p.file.path)",
72
+ " ])",
73
+ "];",
74
+ "",
75
+ "dv.table([\"📌 Title\", \"🔗 Link\"], tableData);",
76
+ "```"
77
+ ]
78
+ }
79
+ }
package/AGENTS.md ADDED
@@ -0,0 +1,37 @@
1
+ # Portosaurus Agent Context
2
+
3
+ ## Project Overview
4
+
5
+ Portosaurus is a **Zero-Config Docusaurus Preset** for creating personal portfolio websites.
6
+ It is an NPM package (`portosaurus`) that handles all the complex configuration, theming, and build scripts.
7
+
8
+ ## Architecture
9
+
10
+ - **Package**: `portosaurus` (NPM)
11
+ - **Core Logic**: `src/index.js` (Docusaurus Preset), `bin/portosaurus.js` (CLI).
12
+ - **User Project**: A minimal folder containing just `config.js` and their content (`blog/`, `notes/`).
13
+
14
+ ## CLI Usage
15
+
16
+ ### Initialize a new project
17
+
18
+ ```bash
19
+ npx portosaurus init my-website
20
+ ```
21
+
22
+ ### Run the project
23
+
24
+ ```bash
25
+ # Inside your project folder
26
+ npm run start
27
+ npm run build
28
+ ```
29
+
30
+ ## Configuration
31
+
32
+ The user only interacts with [`config.js`](./config.js). The `portosaurus` CLI automatically generates the necessary Docusaurus configuration behind the scenes.
33
+
34
+ ## Development
35
+
36
+ - **Codebase**: The `portosaurus` repo contains the Preset code and the Theme components (`src/theme`).
37
+ - To test changes locally, you can link the package or run the `bin/portosaurus.js` script against a test directory.
package/GG/config.js ADDED
@@ -0,0 +1,233 @@
1
+ exports.usrConf = {
2
+
3
+ auto_update: true,
4
+
5
+ dark_mode: true,
6
+
7
+ site_url: "https://example.com",
8
+ site_path: "/",
9
+
10
+ srt_url: "${site_url}${site_path}/l",
11
+
12
+ rebots_txt: true,
13
+ social_card: "img/social-card.jpeg",
14
+ colapsable_sidebar: true,
15
+ hide_navbar_on_scroll: true,
16
+ disable_theme_switch: false,
17
+ rss: true,
18
+
19
+ hero_section: {
20
+ title: "Your Name",
21
+ profession: "Your Profession",
22
+ description: "Short description about you, your passion, your goals etc.",
23
+ profile_pic: "https://raw.githubusercontent.com/soymadip/portosaurus/refs/heads/compiler/static/img/icon.png",
24
+ },
25
+
26
+ about_me: {
27
+ enable: true,
28
+
29
+ image: "${hero_section.profile_pic}",
30
+
31
+ description: [
32
+ "I'm a passionate FOSS developer with expertise in designing and building solutions for real-world problems.",
33
+ "My journey in software development started with a simple desire to automate repetitive tasks, specially in my PC.",
34
+ ],
35
+
36
+ skills: [
37
+ "skill 1",
38
+ "Skill 2",
39
+ "Skill 3",
40
+ ],
41
+ resume_link: "https://exapmple.com/resume",
42
+ },
43
+
44
+ project_shelf: {
45
+ enable: true,
46
+ projects: [
47
+ {
48
+ title: "Your Awesome Project",
49
+ featured: true,
50
+ state: "active",
51
+ desc: "Desctiption about your awesome project.",
52
+ image: "https://raw.githubusercontent.com/soymadip/portosaurus/refs/heads/compiler/static/img/icon.png",
53
+ website: null,
54
+ github: "https://github.com/soymadip/portosaurus",
55
+ Demo: "https://soymadip.github.io",
56
+ tags: ["your project's topic", "this is a tag", "another tag"],
57
+ },
58
+ ],
59
+ },
60
+
61
+
62
+ social_links: {
63
+
64
+ enable: true,
65
+ links: [
66
+ {
67
+ name: "Email",
68
+ icon: "mail",
69
+ desc: "Send me an email",
70
+ url: "${srt_url}/mail",
71
+ },
72
+ {
73
+ name: "LinkedIn",
74
+ icon: "linkedin",
75
+ desc: "Connect on LinkedIn",
76
+ url: "${srt_url}/linkedin",
77
+ pin: true,
78
+ },
79
+ {
80
+ name: "Telegram",
81
+ icon: "telegram",
82
+ desc: "Reach me on Telegram",
83
+ url: "${srt_url}/telegram",
84
+ pin: true,
85
+ },
86
+ {
87
+ name: "Instagram",
88
+ icon: "instagram",
89
+ desc: "Reach me on Instagram",
90
+ url: "/instagram",
91
+ pin: true,
92
+ },
93
+ ],
94
+ },
95
+
96
+ link_shortener: {
97
+ // Uses StaticShort
98
+
99
+ enable: true,
100
+ deploy_path: "/l",
101
+
102
+ short_links: {
103
+ mail: "mailto://you@yourDomain.com",
104
+ github: "https://github.com/yourUserName",
105
+ gitlab: "https://gitlab.com/yourUserName",
106
+ linkedin: "https://linkedin.com/in/yourUserName",
107
+ telegram: "https://telegram.me/yourUserName",
108
+ },
109
+ },
110
+
111
+ experience: {
112
+ enable: false,
113
+ list: [
114
+ {
115
+ company: "Company A",
116
+ position: "Software Engineer",
117
+ duration: "Jan 2020 - Present",
118
+ description: [
119
+ "Developed and maintained web applications using JavaScript, HTML, and CSS.",
120
+ "Collaborated with cross-functional teams to define, design, and ship new features.",
121
+ "Identified and fixed bugs to improve application performance.",
122
+ ],
123
+ },
124
+ {
125
+ company: "Company B",
126
+ position: "Intern",
127
+ duration: "Jun 2019 - Dec 2019",
128
+ description: [
129
+ "Assisted in the development of internal tools using Python and Bash.",
130
+ "Participated in code reviews and provided feedback to improve code quality.",
131
+ "Conducted research and provided recommendations for new technologies.",
132
+ ],
133
+ },
134
+ ],
135
+ },
136
+
137
+
138
+ tasks_page: {
139
+ enable: true,
140
+ tasks: [
141
+ {
142
+ title: "Add more Callouts",
143
+ description: "like question..",
144
+ status: "pending",
145
+ priority: "medium",
146
+ },
147
+ {
148
+ title: "Add colors to Markdown Headings",
149
+ description: "Take from Obsidian",
150
+ status: "pending",
151
+ priority: "high",
152
+ },
153
+ {
154
+ title: "Improve the Note card Icon extractor",
155
+ description:
156
+ "make it strip number before dir name, currently It shows blank icon(default book).",
157
+ status: "completed",
158
+ priority: "high",
159
+ },
160
+ {
161
+ title: "Improve Roadmap page",
162
+ description:
163
+ "add sub todos, shift from vibe code to orignal code, make mobile friendly",
164
+ status: "pending",
165
+ priority: "low",
166
+ },
167
+ {
168
+ title: "Fix Mermaid Diagram support",
169
+ description:
170
+ "showing: Hook is called outside the <ColorModeProvider>. Please see https://docusaurus.io/docs/api/themes/configuration#use-color-mode.",
171
+ status: "pending",
172
+ priority: "medium",
173
+ },
174
+ {
175
+ title: "check prism js, dark and light background swap",
176
+ status: "completed",
177
+ description: "Looking better now.",
178
+ priority: "low",
179
+ },
180
+ {
181
+ title: "Make standalone Project.",
182
+ description: "Convert to Portosaurus project. remove personal stuff.",
183
+ priority: "high",
184
+ status: "active",
185
+ },
186
+ {
187
+ title: "Separate portfolio config",
188
+ description: "Separate portfolio specific settings to config.js.",
189
+ priority: "high",
190
+ status: "completed",
191
+ },
192
+ {
193
+ title: "make shortlinks icon field optional",
194
+ description:
195
+ "lower the title, then match in mapping. if icon key is defined, use it.",
196
+ priority: "low",
197
+ status: "pending",
198
+ },
199
+ {
200
+ title: "Rearrange the config.js",
201
+ description:
202
+ "Rearrange config, make more abstract. Add hero section configs.",
203
+ status: "active",
204
+ priority: "high",
205
+ },
206
+ {
207
+ title: "Fix favicon logic",
208
+ description:
209
+ "Fix favicon gen failed even if given diff value in usrConf.favicon, also when usrConf.hero_section.profile_pic to /img/some-pic.png",
210
+ status: "active",
211
+ priority: "high",
212
+ },
213
+ {
214
+ title: "Fix project shelf image placing",
215
+ description: "The image should align in the middle of card. Then fill the space if needed.",
216
+ status: "active",
217
+ priority: "low",
218
+ },
219
+ {
220
+ title: "Add shortlink generation",
221
+ description: "setup StaticShort while compiling portosaurus.",
222
+ status: "active",
223
+ priority: "normal",
224
+ },
225
+ {
226
+ title: "Add placeholder notice When no note is there",
227
+ description: null,
228
+ status: "active",
229
+ priority: "low",
230
+ },
231
+ ],
232
+ }
233
+ }
@@ -0,0 +1,14 @@
1
+ {
2
+ "name": "GG",
3
+ "version": "0.0.0",
4
+ "private": true,
5
+ "dependencies": {
6
+ "portosaurus": "^0.14.0",
7
+ "react": "^18.0.0",
8
+ "react-dom": "^18.0.0"
9
+ },
10
+ "scripts": {
11
+ "start": "portosaurus start",
12
+ "build": "portosaurus build"
13
+ }
14
+ }
File without changes
@@ -0,0 +1,3 @@
1
+ .hide-lines {
2
+ display: none;
3
+ }
Binary file
Binary file
Binary file
Binary file
Binary file