Проверка подсветки синтаксиса 🎨: код-блоки на разных языках
Технический пост для проверки подсветки синтаксиса в Hugo: примеры код-блоков на Go, JS/TS, Python, Bash, YAML, TOML, JSON, SQL и других языках.
· 3 мин чтения
Этот пост нужен как практический тест подсветки синтаксиса после обновления настроек Hugo.
Ниже собрана «матрица» из разных языков программирования и форматов данных, чтобы быстро увидеть, где всё хорошо, а где стоит донастроить стили. 🔍
Go #
package main
import "fmt"
func fib(n int) int {
if n < 2 {
return n
}
return fib(n-1) + fib(n-2)
}
func main() {
fmt.Printf("fib(10) = %d\n", fib(10))
}JavaScript #
const users = [
{ id: 1, name: "Alice" },
{ id: 2, name: "Bob" },
];
const upper = users.map((u) => ({
...u,
name: u.name.toUpperCase(),
}));
console.log(upper);TypeScript #
type ApiResult<T> = {
data: T;
error?: string;
};
interface Post {
id: number;
title: string;
published: boolean;
}
function formatPost(p: Post): string {
return `${p.id}: ${p.title} (${p.published ? "published" : "draft"})`;
}
const result: ApiResult<Post> = {
data: { id: 42, title: "Hugo Test", published: true },
};
console.log(formatPost(result.data));Python #
from dataclasses import dataclass
from datetime import datetime
@dataclass
class Event:
title: str
created_at: datetime
def is_recent(event: Event, days: int = 7) -> bool:
delta = datetime.now() - event.created_at
return delta.days <= days
e = Event("syntax-check", datetime(2026, 3, 1, 9, 30))
print(is_recent(e))Bash #
#!/usr/bin/env bash
set -euo pipefail
echo "Build Hugo site"
hugo --minify
if hugo list future | rg -q "content/posts/"; then
echo "Found future posts, fix date first"
exit 1
fi
echo "OK"YAML #
name: deploy
on:
push:
branches: [main]
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Build
run: hugo --minifyTOML #
baseURL = "https://example.org/"
languageCode = "ru-RU"
title = "Demo"
[markup]
[markup.highlight]
noClasses = falseJSON #
{
"name": "blog",
"private": true,
"scripts": {
"build": "hugo --minify",
"check:future": "hugo list future"
},
"engines": {
"node": ">=20"
}
}SQL #
SELECT id, title, published_at
FROM posts
WHERE published_at >= '2026-01-01'
ORDER BY published_at DESC
LIMIT 10;HTML #
<article class="post-card">
<h2>Проверка рендера</h2>
<p>Если подсветка читается легко, значит тема настроена корректно.</p>
</article>CSS #
.code-block {
border-radius: 10px;
padding: 1rem;
overflow-x: auto;
}
.code-block code {
font-family: "JetBrains Mono", monospace;
}Dockerfile #
FROM klakegg/hugo:0.157.0-ext
WORKDIR /src
COPY . .
RUN hugo --minifyRust #
fn factorial(n: u64) -> u64 {
match n {
0 | 1 => 1,
_ => n * factorial(n - 1),
}
}
fn main() {
println!("10! = {}", factorial(10));
}Diff #
[markup]
[markup.highlight]
- style = "algol"
+ noClasses = false
Go HTML Template (Hugo) #
{{ with .GitInfo }}
<p class="meta">
Обновлено: {{ .AuthorDate.Format "2006-01-02 15:04" }} · {{ .AuthorName }}
</p>
{{ else }}
<p class="meta">GitInfo недоступен</p>
{{ end }}Итог #
Если на этой странице все блоки читаются комфортно в светлой и тёмной теме, значит базовая конфигурация подсветки работает нормально.
Если какой-то язык выглядит плохо, можно точечно донастроить custom.css или заменить syntax-highlighting.css на другой chroma-стиль. ✅