general-writing-guide
Differences
This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
| general-writing-guide [June 11, 2026 at 00:03] – Ivan Janevski | general-writing-guide [June 11, 2026 at 07:44] (current) – external edit 127.0.0.1 | ||
|---|---|---|---|
| Line 2: | Line 2: | ||
| **General writing guide** (this article) is a guide to writing articles in this wiki. | **General writing guide** (this article) is a guide to writing articles in this wiki. | ||
| - | ## Structure | + | ## Audience |
| - | ### Main section | + | |
| - | Every article should preferably start with a main section followed by a few paragraphs. The first paragraph | + | The intended audience is someone technically inclined — comfortable reading code and following a logical argument, but not necessarily |
| + | |||
| + | - Explain things from first principles before introducing notation. | ||
| + | - When a derivation relies on a property that is not self-evident from the notation, it can be worth slipping in a brief reminder in prose at the point of use. One sentence is enough — the article | ||
| + | - Occasional analogies with computer technology (hardware, software, systems) help ground abstract concepts in familiar territory. | ||
| + | |||
| + | ## Article structure | ||
| + | |||
| + | ### First paragraph | ||
| + | |||
| + | Every article opens with the name of the article in **bold**, followed by 2–3 sentences that define | ||
| ### Paragraphs | ### Paragraphs | ||
| - | Paragraphs should describe | + | |
| + | Each paragraph covers | ||
| ### Sections | ### Sections | ||
| - | Sections should have a certain flavor. For example, if a section is titled "List of concepts related to X" it should only contain a list and no additional description. Similarily, if a section is titled "C++ code illustrating X" it should only contain a code block and preferably no prose. Any additional description can be added in the code comments. Same goes for equations. A section like " | ||
| - | The first section should | + | A section should |
| - | ### Code block | + | The first section is always the unnamed lead section (no `##` heading). Named sections follow once the intro is complete. |
| - | A code block is a larger piece of code that. Preferably all code blocks should be self-contained MVEs (minimum viable examples). At the top there should be a comment block on how to compile and run the code. | + | |
| - | ```cpp | + | ## Code blocks |
| - | // Compile: g++ main.c -o main | + | |
| - | // Run: | + | There are two kinds of code blocks: **snippets** and **full examples**. |
| - | // Description: echo "Hello world!" | + | |
| + | A **snippet** appears inside a concept article to illustrate one idea. It shows only the essential lines — no `#include`, no `main()`, no boilerplate. The reader should be able to grasp the point in a few seconds. | ||
| + | |||
| + | A **full example** is a self-contained MVE (minimum viable example) that the reader can copy, compile, and run as-is. It belongs in a dedicated implementation article, not in a concept article. At the top of the block, include a comment header with three fields: how to compile (if applicable), | ||
| + | |||
| + | ```c | ||
| + | // compile: gcc -o hello hello.c | ||
| + | // run: | ||
| + | // desc: | ||
| #include < | #include < | ||
| - | int main() | + | int main(void) { |
| - | { | + | printf(" |
| - | printf(" | + | |
| return 0; | return 0; | ||
| } | } | ||
| ``` | ``` | ||
| - | ### Equations | + | Python and other interpreted languages omit the compile line: |
| - | Equations should be written | + | |
| + | ```python | ||
| + | # run: python3 hello.py | ||
| + | # desc: print " | ||
| + | |||
| + | print(" | ||
| + | ``` | ||
| + | |||
| + | Prefer explicit variable names over brevity | ||
| + | |||
| + | ## Equations | ||
| + | |||
| + | Inline Greek letters | ||
| $$X = \begin{pmatrix} 0 & 1 \\ 1 & 0 \end{pmatrix}$$ | $$X = \begin{pmatrix} 0 & 1 \\ 1 & 0 \end{pmatrix}$$ | ||
| + | |||
| + | Use `$$...$$` for display equations and `$...$` for inline. When equations appear in a derivation, give each step its own display line. Don't embed intermediate steps in sentences — it forces the reader to parse prose and algebra simultaneously. | ||
| + | |||
| + | ## Tone | ||
| + | |||
| + | Write in a direct, technical voice. Avoid marketing language, superlatives, | ||
| + | |||
| + | Don't use em-dashes. Don't use them as parenthetical interruptions ("the compiler — not the programmer — inserts" | ||
| + | |||
| + | Analogies from classical computing and embedded systems are welcome and natural — the audience relates to registers, interrupts, and buses more readily than to abstract mathematical structures. | ||
| + | |||
| + | ## WIP articles | ||
| + | |||
| + | Articles that are not yet complete start with `(WIP)` in the heading: `# (WIP) Article name`. The site renders these links in yellow to signal to visitors that the article is in progress. | ||
general-writing-guide.1781136219.txt.gz · Last modified: by Ivan Janevski
