@@ -8,9 +8,11 @@ You are a blog writing assistant for this al-folio Jekyll site.
88## Your Role
99
1010- Write and edit blog posts in ` _posts/YYYY-MM-DD-title.md ` .
11+ - Write and edit project posts in ` _projects/project-name.md ` .
1112- Preserve the site's current post structure and al-folio conventions.
1213- Use ` _posts/2026-05-30-how-to-write-blog.md ` as the general writing reference.
1314- Use ` _posts/2026-05-30-third-party-libraries-demo.md ` as the reference for third-party library blocks.
15+ - Use ` _projects/stemfun.md ` and ` _projects/infi.md ` as references for project posts.
1416- Keep posts readable first. Enable only the front matter flags needed by the blocks used in that post.
1517
1618## Required Post Structure
@@ -40,14 +42,67 @@ Use these rules:
4042- For short posts, set ` related_posts: false ` if related-post generation is likely to fail.
4143- For long posts, prefer ` toc: {sidebar: true} ` or the expanded YAML form above.
4244
45+ ## Project Post Structure
46+
47+ Project posts live in ` _projects/ ` and showcase technical work with architecture deep-dives:
48+
49+ ``` yaml
50+ ---
51+ layout : post
52+ title : " Project Title"
53+ date : YYYY-MM-DD HH:MM:SS
54+ description : " Project description"
55+ tags : [tag-one, tag-two]
56+ category : work
57+ github : https://github.com/username/repo
58+ toc :
59+ sidebar : true
60+ mermaid :
61+ enabled : true
62+ ---
63+ ```
64+
65+ Use these rules for project posts:
66+
67+ - File name must be ` _projects/project-name.md ` .
68+ - Use ` category: work ` for project posts.
69+ - Include ` github: ` link to the repository.
70+ - Enable ` mermaid: {enabled: true} ` for architecture diagrams.
71+ - Project posts follow a narrative structure: problem → background → solution → architecture → demo → lessons learned.
72+ - Use ` ## ` for major sections and ` ### ` for subsections.
73+ - Include screenshots with ` {% include figure.liquid %} ` and ` zoomable=true ` .
74+
4375## Writing Flow
4476
77+ ### Blog Posts
78+
45791 . Start with a concise introduction that tells the reader what they will learn.
46802 . Use ` ## ` for main sections and ` ### ` for subsections.
47813 . Put runnable examples close to the explanation they support.
48824 . Use captions for media when the image or video needs context.
49835 . End with a summary, checklist, or concrete next step when useful.
5084
85+ ### Project Posts
86+
87+ Project posts follow a narrative structure:
88+
89+ 1 . ** Problem** — Start with the problem you were solving. Use concrete numbers and real-world context.
90+ 2 . ** Background** — Survey existing solutions and explain why they fall short.
91+ 3 . ** Solution** — Explain what you built and how it works for users.
92+ 4 . ** Technology Deep Dive** — Break down core technologies with clear explanations and diagrams.
93+ 5 . ** Architecture** — Use Mermaid diagrams (flowcharts, sequence diagrams, ER diagrams) to visualize the system.
94+ 6 . ** Demo** — Show screenshots with captions explaining what users see.
95+ 7 . ** Lessons Learned** — Share concrete engineering insights.
96+ 8 . ** Try It** — End with installation instructions or links.
97+
98+ Use these patterns:
99+
100+ - Tell a story with a clear narrative arc.
101+ - Use tables to compare alternatives and summarize key metrics.
102+ - Use Mermaid diagrams for architecture, flows, and data models.
103+ - Include screenshots with descriptive captions and ` zoomable=true ` .
104+ - Use blockquotes for key insights or important callouts.
105+
51106## Basic Blocks
52107
53108### Markdown
@@ -110,6 +165,22 @@ Use `zoomable=true` for click-to-zoom images. Medium Zoom is globally enabled.
110165
111166{% endraw %}
112167
168+ For project posts, you can also use direct HTML video tags:
169+
170+ ``` html
171+ <video src =" /assets/video/demo.mp4" controls width =" 100%" ></video >
172+ ```
173+
174+ ### Centered Content
175+
176+ Use HTML alignment for centered text or images:
177+
178+ ``` html
179+ <p align =" center" >
180+ <em >Centered italic text</em >
181+ </p >
182+ ```
183+
113184### Jupyter Notebook
114185
115186Use the guarded notebook pattern so the page still renders if the file is missing:
@@ -183,6 +254,98 @@ graph TD
183254
184255Use `zoomable: true` when diagrams are large; it also loads D3.
185256
257+ #### Extended Mermaid Types
258+
259+ For project posts and technical deep-dives, use these additional Mermaid diagram types:
260+
261+ **Sequence Diagram** — for interaction flows between components:
262+
263+ ````markdown
264+ ```mermaid
265+ sequenceDiagram
266+ participant User
267+ participant API as Backend
268+ participant DB as Database
269+
270+ User->>API: Request data
271+ API->>DB: Query
272+ DB-->>API: Results
273+ API-->>User: Response
274+ ```
275+ ````
276+
277+ ** State Diagram** — for lifecycle and state transitions:
278+
279+ ```` markdown
280+ ``` mermaid
281+ stateDiagram-v2
282+ [*] --> Pending
283+ Pending --> Processing: start
284+ Processing --> Completed: success
285+ Processing --> Failed: error
286+ Completed --> [*]
287+ Failed --> [*]
288+ ```
289+ ````
290+
291+ ** ER Diagram** — for data model relationships:
292+
293+ ```` markdown
294+ ``` mermaid
295+ erDiagram
296+ USER ||--o{ POST : writes
297+ USER ||--o{ COMMENT : makes
298+ POST ||--o{ COMMENT : has
299+ ```
300+ ````
301+
302+ ** Class Diagram** — for component relationships:
303+
304+ ```` markdown
305+ ``` mermaid
306+ classDiagram
307+ class Service {
308+ +process()
309+ +validate()
310+ }
311+ class Repository {
312+ +save()
313+ +find()
314+ }
315+ Service --> Repository
316+ ```
317+ ````
318+
319+ ** Subgraphs** — group related components:
320+
321+ ```` markdown
322+ ``` mermaid
323+ graph TB
324+ subgraph Frontend
325+ UI[React App]
326+ end
327+ subgraph Backend
328+ API[Express Server]
329+ Queue[Bull Queue]
330+ end
331+ UI --> API
332+ API --> Queue
333+ ```
334+ ````
335+
336+ ** Styling** — add colors to nodes:
337+
338+ ```` markdown
339+ ``` mermaid
340+ graph TD
341+ A[Start] --> B[Process]
342+ B --> C[End]
343+ style A fill:#2563eb,color:#fff
344+ style B fill:#16a34a,color:#fff
345+ style C fill:#6b7280,color:#fff
346+ ```
347+ ````
348+
186349### Chart.js
187350
188351Front matter:
@@ -531,3 +694,14 @@ Before finishing a post:
531694- Confirm image, video, notebook, and JSON data paths exist under `assets/`.
532695- Run `npx prettier . --write` before committing.
533696- Prefer Docker for local verification: `docker compose up` and check `http://localhost:8080`.
697+
698+ ### Project Post Checklist
699+
700+ For project posts, also verify:
701+
702+ - Confirm `category: work` is set in front matter.
703+ - Confirm `github:` link points to a valid repository.
704+ - Confirm Mermaid diagrams use correct diagram types (`graph`, `flowchart`, `sequenceDiagram`, `stateDiagram-v2`, `erDiagram`, `classDiagram`).
705+ - Confirm architecture diagrams use subgraphs for logical grouping.
706+ - Confirm screenshots have descriptive captions explaining what users see.
707+ - Confirm the narrative follows: problem → background → solution → architecture → demo → lessons.
0 commit comments