You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
@@ -61,6 +61,28 @@ Use a short, descriptive name — for example `blog/intro-to-docker` or `blog/re
61
61
62
62
---
63
63
64
+
:::tip Blog Quality Checklist
65
+
Before starting any development, make sure your blog meets **all** of the following criteria. Your blog can be **rejected** if any requirement is not fulfilled:
66
+
67
+
-1. 5 backlinks to different external websites to support our documentation.
68
+
-2. 5 internal backlinks to other articles on recodehive.
69
+
70
+
-3.**No generic content** — avoid surface-level topics like "what is Azure" or "difference between X and Y". Write pure, high-depth technical articles with images. See [this example](https://www.recodehive.com/docs/GitHub/Maintainer-guide/milestone) for the standard we aim for. (Tip: tools like [Snagit](https://www.techsmith.com/screen-capture.html) help produce great annotated screenshots.)
71
+
72
+
-4. Image filenames must be descriptive and SEO-friendly — no random names like `screenshot123.png`.
73
+
-5.**Content-to-code ratio**: text should be more than code. Adsense flags pages at 60% code / 40% text - keep it the opposite. If code is long, link to GitHub and reference it in comments instead.
74
+
75
+
-6. Include a **bulleted summary section** at the top of the blog post.
76
+
-7. Include a **FAQ section** at the bottom.
77
+
-8. Use Docusaurus admonitions (`:::tip`, `:::info`, `:::note`) for callouts, tips, and cautions (see formatting guidelines below).
78
+
-9. Tables must be **center-aligned** - wrap them in an `:::info` block to achieve this in Docusaurus.
79
+
-10. Use **named code blocks** with a filename label when showing code (e.g., ` ```java title="Sample.java" `).
80
+
-11. When showing a query and its output together, use a **Tabs** block with separate "Query" and "Output" tabs.
81
+
-12. Screenshots must follow the naming convention and size guidelines below.
82
+
:::
83
+
84
+
---
85
+
64
86
## Step 4: Create the Blog Folder and File
65
87
66
88
All blog posts live inside the `blog/` directory. Each post gets its own folder.
@@ -149,7 +171,7 @@ After the closing `---` of your frontmatter, add the `<!-- truncate -->` comment
149
171
...frontmatter...
150
172
---
151
173
152
-
<!-- truncate -->
174
+
<!-- truncate -->
153
175
154
176
Your introduction paragraph goes here. This will appear as the preview on the blog index page.
155
177
@@ -158,18 +180,157 @@ Your introduction paragraph goes here. This will appear as the preview on the bl
158
180
Body content continues here...
159
181
```
160
182
161
-
### Formatting Tips
183
+
### Formatting Guidelines
184
+
185
+
Use `##` and `###` headings to structure your content.
186
+
187
+
---
188
+
189
+
#### Bulleted Summary Section (Required)
190
+
191
+
Every blog must begin with a bulleted summary right after the intro paragraph. This helps readers quickly understand what they'll learn.
192
+
193
+
```md
194
+
**What you'll learn in this post:**
195
+
- How to set up X from scratch
196
+
- How to configure Y for production
197
+
- Common pitfalls and how to avoid them
198
+
```
199
+
200
+
---
201
+
202
+
#### Named Code Blocks (Required)
203
+
204
+
Always label code blocks with a filename so readers know exactly what file they are editing:
205
+
206
+
````md
207
+
```java title="Sample.java"
208
+
public class Hello {
209
+
public static void main(String[] args) {
210
+
System.out.println("Hello, world!");
211
+
}
212
+
}
213
+
```
214
+
````
215
+
216
+
---
162
217
163
-
- Use `##` and `###` headings to structure your content.
164
-
- Use fenced code blocks with the language name for syntax highlighting:
218
+
#### Query + Output: Use Tabs (Required)
219
+
220
+
When showing a database query alongside its output, use a Tabs block so both fit in a single window.
221
+
222
+
First, import the components at the top of your `index.md` (after frontmatter, before any content):
223
+
224
+
```md
225
+
import Tabs from '@theme/Tabs';
226
+
import TabItem from '@theme/TabItem';
227
+
```
165
228
166
-
````md
167
-
```python
168
-
print("Hello, world!")
229
+
Then structure your query + output like this:
230
+
231
+
````md
232
+
<Tabs>
233
+
<TabItem value="Query">
234
+
235
+
```sql
236
+
-- Create the table
237
+
CREATE TABLE friends (
238
+
id INT PRIMARY KEY,
239
+
name VARCHAR(100),
240
+
username VARCHAR(100)
241
+
);
242
+
243
+
-- Insert data
244
+
INSERT INTO friends (id, name, username) VALUES
245
+
(1, 'John Doe', 'johndoe'),
246
+
(2, 'Jane Smith', 'janesmith'),
247
+
(3, 'Bob Johnson', 'bobjohnson');
169
248
```
170
-
````
171
249
172
-
- Use `>` for callout blockquotes and `---` for horizontal dividers between sections.
250
+
</TabItem>
251
+
<TabItem value="Output">
252
+
253
+
| id | name | username |
254
+
|----|-------------|-------------|
255
+
| 1 | John Doe | johndoe |
256
+
| 2 | Jane Smith | janesmith |
257
+
| 3 | Bob Johnson | bobjohnson |
258
+
259
+
</TabItem>
260
+
</Tabs>
261
+
````
262
+
263
+
:::tip
264
+
You can add as many `<TabItem>` tabs as needed — for example separate tabs per subquery type, or one tab per language variant.
265
+
:::
266
+
267
+
---
268
+
269
+
#### Admonitions: Tips, Notes, Info, and Cautions
270
+
271
+
Use Docusaurus admonitions to highlight important information. Don't overuse them — only where they add real value.
272
+
273
+
**For tips and helpful extras:**
274
+
275
+
```md
276
+
:::tip Need Git Commands?
277
+
Check out our [comprehensive Git Commands Cheatsheet](../GitHub/setup-environment/git-commands.md)
278
+
with 50 essential Git commands and examples.
279
+
:::
280
+
```
281
+
282
+
**For extra context or caution:**
283
+
284
+
```md
285
+
:::info
286
+
In the picture below, Developer 1 handles the men's shopping section, Developer 2
287
+
deals with the women's section, and Developer 3 works on the login feature.
288
+
:::
289
+
```
290
+
291
+
**For key feature callouts:**
292
+
293
+
```md
294
+
:::note
295
+
Key Features of GitLab:
296
+
- GitLab provides **built-in CI/CD pipelines**.
297
+
- Unlike GitHub, GitLab can be **self-hosted** or used on the cloud (GitLab.com).
298
+
- GitLab offers [Premium Plans](https://about.gitlab.com/pricing/) with advanced CI/CD and security features.
299
+
:::
300
+
```
301
+
302
+
---
303
+
304
+
#### Tables: Center Alignment via `:::info`
305
+
306
+
Plain Markdown tables are left-aligned by default in Docusaurus. Wrap your table in an `:::info` block to center it:
307
+
308
+
```md
309
+
:::info
310
+
311
+
| Command | Description |
312
+
|---------|----------------------|
313
+
| `git init` | Initialize a repo |
314
+
| `git clone` | Clone a repo |
315
+
316
+
:::
317
+
```
318
+
319
+
---
320
+
321
+
#### FAQ Section (Required)
322
+
323
+
Every blog post must end with a FAQ section before the conclusion. Use questions your readers are likely to have:
324
+
325
+
```md
326
+
## Frequently Asked Questions
327
+
328
+
**Q: Do I need to know X before starting this guide?**
329
+
A: Basic familiarity with Y is helpful, but the guide covers everything step by step.
330
+
331
+
**Q: Will this work on Windows?**
332
+
A: Yes, the steps are cross-platform. Windows-specific commands are noted where they differ.
333
+
```
173
334
174
335
---
175
336
@@ -188,7 +349,7 @@ Use **PNG** for UI screenshots (crisp text) and **JPEG/WebP** for photos.
188
349
189
350
### Naming Convention
190
351
191
-
Use lowercase, hyphen-separated, numbered filenames so they sort correctly:
352
+
Use lowercase, hyphen-separated, numbered filenames so they sort correctly and are SEO-friendly. **Never use random or auto-generated names.**
192
353
193
354
```
194
355
images/
@@ -208,20 +369,52 @@ Reference images relative to `index.md`:
208
369
209
370
Always write descriptive alt text — it improves accessibility and SEO.
210
371
372
+
:::tip Screenshot Tool Recommendation
373
+
Tools like [Snagit](https://www.techsmith.com/screen-capture.html) make it easy to produce annotated, professional-quality screenshots. See [this article](https://www.recodehive.com/docs/GitHub/Maintainer-guide/milestone) as a reference for the image quality standard we aim for.
374
+
:::
375
+
376
+
---
377
+
378
+
## Step 9: Update the Database
379
+
380
+
All blog data is linked in the database folder (`\database\blogs\index.tsx`). Update it with the following details:
381
+
382
+
```json
383
+
{
384
+
id: sequence_wise,
385
+
title: "Title of the post",
386
+
image: "relative path of the cover image for the blog post",
387
+
description: "A short (2-3) lines of description of the post",
388
+
slug: "The name of the blog folder (keep it exact)",
389
+
authors: ["your-author-id"],
390
+
category: "The category the blog belongs to",
391
+
tags: ["tags or topics the blog is related to (tools or technologies)"],
392
+
}
393
+
```
394
+
395
+
:::note
396
+
All details are necessary for correctly rendering the blog card on the blogs page. Take a close look and make sure everything is filled in.
397
+
:::
398
+
211
399
---
212
400
213
-
## Step 9: Preview Your Post
401
+
## Step 10: Preview Your Post
214
402
215
403
Make sure your dev server is still running (`npm start`), then navigate to [http://localhost:3000/blog](http://localhost:3000/blog) to see your post in the listing and click into it to read the full content. Verify:
216
404
217
405
- The frontmatter title, date, and author show correctly.
218
406
- The truncate preview looks right on the blog index.
407
+
- The bulleted summary section appears near the top.
219
408
- All images load and are properly sized.
220
-
- Code blocks are syntax-highlighted.
409
+
- Code blocks are syntax-highlighted and have filename labels.
410
+
- Query/output pairs use Tabs.
411
+
- Tables are center-aligned inside `:::info` blocks.
412
+
- Tips and notes use the correct admonition type.
413
+
- The FAQ section is present at the bottom.
221
414
222
415
---
223
416
224
-
## Step 10: Commit and Push Your Changes
417
+
## Step 11: Commit and Push Your Changes
225
418
226
419
Once you are happy with the preview, stage and commit your files:
0 commit comments