Skip to content

Commit 2f9d417

Browse files
committed
guidelines
1 parent 06cac74 commit 2f9d417

3 files changed

Lines changed: 222 additions & 17 deletions

File tree

docs/getting_started.md

Lines changed: 220 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,28 @@ Use a short, descriptive name — for example `blog/intro-to-docker` or `blog/re
6161

6262
---
6363

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+
6486
## Step 4: Create the Blog Folder and File
6587

6688
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
149171
...frontmatter...
150172
---
151173
152-
<!-- truncate -->
174+
<!-- truncate -->
153175
154176
Your introduction paragraph goes here. This will appear as the preview on the blog index page.
155177
@@ -158,18 +180,157 @@ Your introduction paragraph goes here. This will appear as the preview on the bl
158180
Body content continues here...
159181
```
160182

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+
---
162217

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+
```
165228

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');
169248
```
170-
````
171249

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+
```
173334
174335
---
175336
@@ -188,7 +349,7 @@ Use **PNG** for UI screenshots (crisp text) and **JPEG/WebP** for photos.
188349
189350
### Naming Convention
190351
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.**
192353
193354
```
194355
images/
@@ -208,20 +369,52 @@ Reference images relative to `index.md`:
208369

209370
Always write descriptive alt text — it improves accessibility and SEO.
210371

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+
211399
---
212400

213-
## Step 9: Preview Your Post
401+
## Step 10: Preview Your Post
214402

215403
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:
216404

217405
- The frontmatter title, date, and author show correctly.
218406
- The truncate preview looks right on the blog index.
407+
- The bulleted summary section appears near the top.
219408
- 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.
221414

222415
---
223416

224-
## Step 10: Commit and Push Your Changes
417+
## Step 11: Commit and Push Your Changes
225418

226419
Once you are happy with the preview, stage and commit your files:
227420

@@ -239,7 +432,7 @@ git push origin blog/your-blog-title
239432

240433
---
241434

242-
## Step 11: Open a Pull Request
435+
## Step 12: Open a Pull Request
243436

244437
1. Go to your fork on GitHub — you will see a **"Compare & pull request"** banner. Click it.
245438
2. Set the **base repository** to `recodehive/recode-website` and **base branch** to `main`.
@@ -272,9 +465,20 @@ Before submitting your PR, go through this checklist:
272465
- [ ] Frontmatter is complete (title, authors, tags, date, description, draft: false)
273466
- [ ] Author entry exists in `blog/authors.yml`
274467
- [ ] `<!-- truncate -->` comment placed after the intro paragraph
275-
- [ ] All images are in `blog/your-blog-title/images/` and named with the convention
468+
- [ ] **Bulleted summary section** included near the top of the post
469+
- [ ] **FAQ section** included at the bottom of the post
470+
- [ ] No generic content — article is high-depth and technical with images
471+
- [ ] 5 external backlinks to supporting websites
472+
- [ ] 5 internal backlinks to other recodehive articles
473+
- [ ] Text is more than code — long code blocks link to GitHub instead
474+
- [ ] Code blocks use filename labels — e.g., opening fence followed by `python title="app.py"`
475+
- [ ] Query + output pairs use Tabs blocks
476+
- [ ] Tables are wrapped in `:::info` for center alignment
477+
- [ ] Tips, notes, and cautions use the correct Docusaurus admonition
478+
- [ ] All images are in `blog/your-blog-title/images/` with SEO-friendly names
276479
- [ ] Cover image is 1200 × 630 px; step screenshots are no wider than 1280 px
277480
- [ ] Image file sizes are under 500 KB each
278481
- [ ] Post previews correctly at `localhost:3000/blog`
482+
- [ ] Database entry added in `\database\blogs\index.tsx`
279483
- [ ] Committed on a feature branch (not `main`)
280-
- [ ] Pull request targets `recodehive/recode-website` `main` branch
484+
- [ ] Pull request targets `recodehive/recode-website` `main` branch

docs/image.png

201 KB
Loading

src/database/blogs/index.tsx

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -176,7 +176,8 @@ const blogs: Blog[] = [
176176
authors: ["Aditya-Singh-Rathore"],
177177
category: "data engineering",
178178
tags: ["Streaming Pipelines", "Real-Time Data Processing", "Data Consistency", "Data Reliability", "Resource Consumption", "Complexity", "Data Engineering"],
179-
179+
},
180+
{
180181
id: 15,
181182
title: "Azure Synapse Analytics: When to Use It (And When to Choose Fabric Instead)",
182183
image: "/img/blogs/azure-synapse-cover.png",

0 commit comments

Comments
 (0)