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.
- package/.vscode/snippets.code-snippets +79 -0
- package/AGENTS.md +37 -0
- package/GG/config.js +233 -0
- package/GG/package.json +14 -0
- package/GG/static/.nojekyll +0 -0
- package/GG/static/docusaurus-snippet.css +3 -0
- package/GG/static/img/icon-bg.png +0 -0
- package/GG/static/img/icon-old.png +0 -0
- package/GG/static/img/icon.png +0 -0
- package/GG/static/img/project-blank.png +0 -0
- package/GG/static/img/social-card.jpeg +0 -0
- package/LICENSE +674 -0
- package/README.md +57 -0
- package/bin/portosaurus.js +136 -0
- package/package.json +36 -0
- package/src/config/iconMappings.js +329 -0
- package/src/config/metaTags.js +240 -0
- package/src/config/prism.js +179 -0
- package/src/config/sidebar.js +20 -0
- package/src/configLoader.js +99 -0
- package/src/index.js +79 -0
- package/src/pages/index.js +98 -0
- package/src/pages/notes.js +88 -0
- package/src/pages/tasks.js +251 -0
- package/src/theme/components/AboutSection/index.js +67 -0
- package/src/theme/components/AboutSection/styles.module.css +492 -0
- package/src/theme/components/ContactSection/index.js +87 -0
- package/src/theme/components/ContactSection/styles.module.css +327 -0
- package/src/theme/components/ExperienceSection/index.js +25 -0
- package/src/theme/components/ExperienceSection/styles.module.css +180 -0
- package/src/theme/components/HeroSection/index.js +63 -0
- package/src/theme/components/HeroSection/styles.module.css +471 -0
- package/src/theme/components/NoteIndex/index.js +119 -0
- package/src/theme/components/NoteIndex/styles.module.css +143 -0
- package/src/theme/components/ProjectsSection/index.js +529 -0
- package/src/theme/components/ProjectsSection/styles.module.css +830 -0
- package/src/theme/components/ScrollToTop/index.js +98 -0
- package/src/theme/components/ScrollToTop/styles.module.css +96 -0
- package/src/theme/components/SocialLinks/index.js +129 -0
- package/src/theme/components/SocialLinks/styles.module.css +55 -0
- package/src/theme/components/Tooltip/index.js +30 -0
- package/src/theme/components/Tooltip/styles.module.css +92 -0
- package/src/theme/css/bootstrap.css +6 -0
- package/src/theme/css/catppuccin.css +632 -0
- package/src/theme/css/custom.css +186 -0
- package/src/theme/css/tasks.css +868 -0
- package/src/theme/staticLink/.nojekyll +0 -0
- package/src/theme/staticLink/docusaurus-snippet.css +3 -0
- package/src/theme/staticLink/img/icon-bg.png +0 -0
- package/src/theme/staticLink/img/icon-old.png +0 -0
- package/src/theme/staticLink/img/icon.png +0 -0
- package/src/theme/staticLink/img/project-blank.png +0 -0
- package/src/theme/staticLink/img/social-card.jpeg +0 -0
- package/src/utils/HashNavigation.js +250 -0
- package/src/utils/appVersion.js +27 -0
- package/src/utils/cssUtils.js +99 -0
- package/src/utils/filterEnabledItems.js +21 -0
- package/src/utils/generateFavicon.js +256 -0
- package/src/utils/generateRobotsTxt.js +97 -0
- package/src/utils/iconExtractor.js +159 -0
- package/src/utils/imageDownloader.js +88 -0
- package/src/utils/imageProcessor.js +134 -0
- package/src/utils/linkShortner.js +0 -0
- 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
|
+
}
|
package/GG/package.json
ADDED
|
File without changes
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|