Skip to content

Commit f905ea9

Browse files
authored
Feat/add tagging system (#636)
* docs: add guidelines for tagging content * chore: add guidelines for tagging in blog archetype * chore(tagging-content): update contents tags according to tagging system * chore: implement feedback from Pedro * chore: implement improvements required for LLM tag suggestions
1 parent 8cd135e commit f905ea9

File tree

10 files changed

+338
-9
lines changed

10 files changed

+338
-9
lines changed

archetypes/blog.md

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,8 @@ summary: "Replace it with a brief summary that captures the essence of (1) what
1111
# - Add author name(s) below
1212
authors:
1313
- "author-name" # same as in the file paths above
14-
# Add tags
15-
tags: ["Tag1", "Tag2"]
14+
# Add tags (for details, see https://developer.espressif.com/pages/contribution-guide/tagging-content/)
15+
tags:
16+
- tag1
17+
- tag2
1618
---

content/blog/2025/01/wled-powered-by-the-community/index.md

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,13 @@ date: 2025-01-06
44
showAuthor: false
55
authors:
66
- "pedro-minatel"
7-
tags: ["WLED", "Community", "LED", "Arduino", "OSS"]
7+
tags:
8+
- Arduino
9+
- beginner
10+
- how-to
11+
- community software
12+
- WLED
13+
- LED
814
---
915

1016
Making amazing lighting installations might seem very complex, requiring a lot of expensive hardware and software. However, it can't be further from the truth. With an ESP32 or ESP8266 at hand and with the help of some software from our wonderful community, this is not that complex. Try it yourself, and you will be pleasantly surprised.

content/blog/2025/06/basic_http_server/index.md

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,11 @@ showAuthor: false
55
summary: "This article shows how to create a simple HTTP server. It explains the functions you need and the setup required. After reading this, you should be able to create your own HTTP server on Espressif devices."
66
authors:
77
- "francesco-bez"
8-
tags: ["ESP32C3", "HTTP", "Connectivity"]
8+
tags:
9+
- ESP-IDF
10+
- practitioner
11+
- tutorial
12+
- HTTP server
913
---
1014

1115
## Introduction

content/blog/2025/10/debugging-embedded-graphics-with-wokwi-and-ai/index.md

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,14 @@ summary: "Learn how Wokwi simulation and AI-assisted debugging solved a subtle R
55
showAuthor: false
66
authors:
77
- "juraj-michalek"
8-
tags: ["ESP32-S3", "Raylib", "Wokwi", "CI/CD", "Graphics", "Debugging", "Simulation", "AI"]
8+
tags:
9+
- Wokwi
10+
- practitioner
11+
- debugging
12+
- porting
13+
- library
14+
- AI
15+
- CI/CD
916
---
1017

1118
## Introduction

content/blog/2025/11/esp32c2-ram-optimization/index.md

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,12 @@ summary: ESP32-C2 has 256 KB of physical RAM, but with default configurations, o
55
authors:
66
- zheng-zhong
77
- he-xin-lin
8-
tags: ["ESP32-C2", "Memory Optimization", "Performance", "ESP-IDF"]
8+
tags:
9+
- ESP32-C2
10+
- ESP-IDF
11+
- practitioner
12+
- how-to
13+
- memory management
914
---
1015

1116
## Overview

content/blog/2025/11/nuttx-external-lib/index.md

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,13 @@
22
title: "Integrating External Libraries into NuttX Applications"
33
date: 2025-11-19
44
lastmod: 2025-11-27
5-
tags: ["NuttX", "Apache", "ESP32", "ESP32-C6", "RISC-V", "cross-compilation", "static-library"]
5+
tags:
6+
- NuttX
7+
- practitioner
8+
- how-to
9+
- RISC-V
10+
- cross-compilation
11+
- library
612
showAuthor: false
713
authors:
814
- "filipe-cavalcanti"

content/blog/2025/12/arduino-library-creation/index.md

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,11 @@
11
---
22
title: "Creating an Arduino Library for ESP32"
33
date: 2025-12-15
4-
tags: ["Arduino", "ESP32", "Library", "Tutorial"]
4+
tags:
5+
- Arduino
6+
- beginner
7+
- tutorial
8+
- library
59
showAuthor: false
610
authors:
711
- "lucas-vaz"

content/blog/2025/12/configuration-in-esp-idf-6-defaults/index.md

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,12 @@ date: 2025-12-22
44
authors:
55
- "jan-beran"
66
tags:
7-
- Configuration
7+
- ESP-IDF
8+
- practitioner
9+
- overview
810
- esp-idf-kconfig
11+
- idf.py
12+
- sdkconfig
913
summary: This article explains what are the default values in the ESP-IDF configuration and how they are managed in the configuration system in ESP-IDF 6.1. The purpose and behavior of default values are described. This article also explains what is a conflict in default values and how to resolve it with the "idf.py refresh-config" command.
1014
---
1115

Lines changed: 286 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,286 @@
1+
---
2+
title: "Tagging content"
3+
date: 2026-01-13
4+
tags: ["Contribute"]
5+
showTableOfContents: true
6+
showAuthor: false
7+
authors:
8+
- "kirill-chalov"
9+
---
10+
11+
This article is split into the following parts:
12+
13+
- **Guidelines for assigning tags** -- gives you some background information
14+
- **Assign tags** -- instructs you on how to and what tags to assign
15+
16+
17+
## Guidelines for assigning tags
18+
19+
In this section, you will find the following guidelines:
20+
21+
- [Choosing tags](#choosing-tags)
22+
- [Spelling tags](#spelling-tags)
23+
24+
Once you familiarize yourself with these guidelines, go to [Assign tags](#assign-tags).
25+
26+
### Choosing tags
27+
28+
- **Carefully choose tags** and make sure they give a rough idea of **who the article is for** and **what it is about**.
29+
If the current tagging system does not cover important aspects, please share your feedback.
30+
- To **avoid unnecessary specificity**, prefer broader taxonomy terms, or omit tags entirely, when the content applies across multiple items in the same classification:
31+
- For content applicable to both `Zephyr` and `NuttX`, consider using the broader tag `RTOS`.
32+
- Do not add a specific SoC tag, such as `ESP32`, to content applicable to `ESP32-C3` or other Espressif SoCs.
33+
- To avoid **overly granular tagging**, use only widely known hardware and software product names as tags. For lesser known hardware or software, use higher-level taxonomy terms instead:
34+
- :x: (`ESP32-C3-DevKit-RUST-1` → :white_check_mark: `DevKit`
35+
- :x: `Esp-Audio-Effects` → :white_check_mark: `ESP-IDF component`
36+
- If a higher-level term is too broad and multiple articles fit a more specific tag, feel free to introduce such a tag (for example, use `face recognition` instead of the broader `machine vision`).
37+
38+
### Spelling tags
39+
40+
- Use lower case letters.<br>
41+
**Exceptions**: Capitalize proper nouns and established terms, such as:
42+
- Product names: `ESP32-P4`, `ESP-IDF`, `NuttX`
43+
- Terms, protocols, and features: `SoC`, `Ethernet`, `WebRTC`
44+
- Abbreviations: `IDE`, `LED`, `LLVM`
45+
- Use tags in singular.<br>
46+
**Exceptions**: Singular (uncountable) words that end in `s`:
47+
- Mass nouns: `graphics`, `robotics`
48+
- Established terms: `ESP Insights`, `DevOps`
49+
- Use spaces to separate words.<br>
50+
**Exceptions**: Use hyphens only in established terms:
51+
- Compound terms: `ESP32-C3`, `esp-idf-kconfig`, `Wi-Fi`
52+
53+
54+
## Assign tags
55+
56+
Take the following steps:
57+
58+
1. Choose appropriate tags as explained in [Tagging process](#tagging-process).
59+
2. In your article's YAML frontmatter, add these tags as follows:
60+
```sh
61+
tags:
62+
- tag1
63+
- tag2
64+
- ...
65+
```
66+
67+
### Tagging process
68+
69+
Navigate to mandatory and lower-priority tag category subsections listed below and choose **four to six** tags in total that best describe your content. Please note that the actual tags are marked in `monospace`, the rest is taxonomy words and comments to assist in choosing tags.
70+
71+
Mandatory categories:
72+
73+
<!-- no toc -->
74+
- [Hardware type / Software framework / OS / IDE](#hardware-type--software-framework--os--ide)
75+
- [Complexity](#complexity) (optional for in-depth explanations)
76+
- [Content type](#content-type)
77+
78+
Lower-priority categories:
79+
80+
<!-- no toc -->
81+
- [Community involvement](#community-involvement)
82+
- [Additional hardware information](#additional-hardware-information)
83+
- [Additional software information](#additional-software-information)
84+
- [Security](#security)
85+
- [Application domains](#application-domains)
86+
- [Industry keywords](#industry-keywords)
87+
- [Third-party products and titles](#third-party-products-and-titles)
88+
- [Other](#other)
89+
90+
91+
### Hardware type / Software framework / OS / IDE
92+
93+
- hardware type
94+
- SoC
95+
- module
96+
- `DevKit` -- use for Espressif boards
97+
- `development board` -- use for 3rd party boards
98+
- `M5Stack`
99+
- BSP
100+
- software framework
101+
- `ESP-IDF`
102+
- `ESP RainMaker`
103+
- `ESP-ADF`
104+
- `Arduino`
105+
- OS
106+
- `bare metal`
107+
- `Linux` (POSIX?)
108+
- `Windows`
109+
- `RTOS`
110+
- `FreeRTOS`
111+
- `NuttX`
112+
- `Zephyr`
113+
- `IDE`
114+
- `Espressif-IDE`
115+
- `ESP-IDF Extension for VS Code`
116+
117+
### Complexity
118+
119+
- `beginner` -- assumes no prior domain knowledge
120+
- `practitioner` -- assumes familiarity with core concepts
121+
- `expert` -- assumes strong domain knowledge
122+
123+
### Content type
124+
125+
If content is a mixture of overview and how-to / tutorial, how-to and tutorial tags take precedence.
126+
127+
- `new product` (NPI)
128+
- `announcement` (news, newsletter)
129+
- `release` (software releases)
130+
- `overview`
131+
- `how-to`
132+
- `tutorial`
133+
- `workshop`
134+
- roadmap
135+
- benchmarks / performance
136+
- product development
137+
- DIY project
138+
139+
### Community involvement
140+
141+
- `community software` -- overview of community software for Espressif products
142+
- `community hardware` -- overview of community hardware based on Espressif products
143+
- `community contribution` -- contribution from outside Espressif
144+
- `community event` -- announcement or overview of a community event
145+
146+
### Additional hardware information
147+
148+
- Hardware peripheral
149+
- `display`: `LCD`, `MIPI-CSI`
150+
- communication bus: `I2C`, `SPI`, `USB`, `Ethernet`, `CAN`
151+
- debug interface: `JTAG`, `UART`
152+
- `ADC`
153+
- `camera`
154+
- `LED`
155+
- `motor`
156+
- `IMU`
157+
- `PIE`
158+
- Hardware concept
159+
- CPU architecture: `RISC-V`, `Xtensa`
160+
- `driver`
161+
- `memory` (PSRAM, flash)
162+
- `low power` (power efficiency, low power core, deep sleep)
163+
- `memory management`
164+
- `bootloader`
165+
- `MCUboot`
166+
167+
### Additional software information
168+
169+
- Programming language
170+
- `Assembly`
171+
- `Python`
172+
- `MicroPython`
173+
- `Lua`
174+
- `Rust`
175+
- `Swift`
176+
- `C`
177+
- `C++`
178+
- ESP-IDF tool or part
179+
- `build system`
180+
- `ESP-IDF component`
181+
- `ESP-IDF tool`
182+
- `idf.py`
183+
- `esp-idf-kconfig`
184+
- `EIM`
185+
- `esptool`
186+
- `sdkconfig`
187+
- Communication protocol (Wireless)
188+
- `Wi-Fi` (Wi-Fi 6?)
189+
- `Bluetooth`
190+
- `BLE`
191+
- `BLE Mesh`
192+
- `MQTT`
193+
- `Matter`
194+
- `Thread`
195+
- `ESP-NOW`
196+
- `Zigbee`
197+
- `WebRTC`
198+
- `Compiling`
199+
- `GCC`
200+
- `CMake`
201+
- `LLVM`
202+
- `partition table`
203+
- `cross-compilation`
204+
- Software concepts
205+
- `simulation`
206+
- `QEMU`
207+
- `Wokwi`
208+
- `graphics`
209+
- `GUI`
210+
- `Qt`
211+
- `lvgl`
212+
- `HTTP server`
213+
- `porting`
214+
- `library` -- use for 3rd party libraries
215+
- `zero-code`
216+
- `low-code`
217+
- `CLI`
218+
- `debugging`
219+
- `multimedia processing` (multimedia)
220+
- `video processing` (H.264, H.265, motion detection)
221+
- `image processing` (JPEG)
222+
- `audio processing` (speech recognition, voice assistant)
223+
224+
### Security
225+
226+
- `Secure Boot`
227+
- `Flash Encryption`
228+
- `ESP-TEE`
229+
- `NVS encryption`
230+
- `ESP Privilege Separation`
231+
232+
### Application domains
233+
234+
- `IoT`
235+
- `smart home`
236+
- `industrial automation`
237+
- `wearables`
238+
- `smart agriculture`
239+
- `programming`
240+
- `robotics`
241+
- `machine vision`
242+
- `audio`
243+
244+
### Industry keywords
245+
246+
- `HMI`
247+
- `deep learning`
248+
- `AI`
249+
- `LLM`
250+
- `MCP`
251+
- `edge computing` (neural networks)
252+
- `AIoT`
253+
254+
### Third-party products and titles
255+
256+
- `OpenOCD`
257+
- `ChatGPT`
258+
- `GitHub CoPilot`
259+
- `KiCad`
260+
- `CLion`
261+
- `Jupyter Notebooks` (Jupyter)
262+
- `WLED`
263+
- `Eclipse`
264+
- `VS Code`
265+
- `Alexa`
266+
- `Home Assistant`
267+
268+
### Other
269+
270+
- `infrastructure`
271+
- `CI/CD`
272+
- `embedded DevOps`
273+
- `API`
274+
- `Cloud`
275+
- `phone app`
276+
- `OTA`
277+
- Artifact
278+
- `book`
279+
- `example code`
280+
- `reference design`
281+
- `Event`
282+
- `DevCon`
283+
- `Documentation`
284+
- `datasheet`
285+
- `TRM`
286+
- `ESP Insights`

0 commit comments

Comments
 (0)