Materials: images with captions and video support

- markdown: new directives `:::figure assets/x.png | Подпись` and
  `:::video assets/x.mp4 | Подпись` rendered as figure/figcaption and a
  video player (works with HTML escaping on); sanitizer allows video/source/
  track/figure with safe attributes only
- assets: video extensions (mp4/webm/ogg) allowed, separate limits — images
  up to 10 MB, video up to 100 MB; correct content types
- upload limits raised: web/academic multipart 120 MB per file / 200 MB per
  request, nginx client_max_body_size 200m (covers media inside ZIP imports)
- docs: new docs/06-authoring.md (markdown, images, video, assets, limits,
  import semantics); import message now says "медиафайлов"
This commit is contained in:
2026-09-17 15:44:16 +03:00
parent a1392a469e
commit 6246d4c8d3
8 changed files with 200 additions and 17 deletions

View File

@@ -70,6 +70,11 @@ assets/ # картинки для md
Материалы видны всем; для редактирования — «Материалы» с правами администратора.
Медиа в материалах: картинки и видео кладутся в `assets/` архива и вставляются директивами
`:::figure assets/имя.png | Подпись` и `:::video assets/имя.mp4 | Подпись`. Лимиты: картинки —
до 10 МБ (`png/jpg/jpeg/gif/svg/webp`), видео — до 100 МБ (`mp4/webm/ogg`). Nginx и сервисы
настроены на загрузку до 200 МБ; подробности — в [`docs/06-authoring.md`](../docs/06-authoring.md).
## Замечания
* Данные в `*.xls`/PDF/PDF-пароли содержат персональные сведения — храните их во

View File

@@ -23,7 +23,7 @@ server {
}
# Большие загрузки: ZIP лаб, решения, материалы.
client_max_body_size 120m;
client_max_body_size 200m; # крупные ZIP с изображениями и видео
location / {
proxy_pass http://127.0.0.1:8090;
@@ -52,7 +52,7 @@ server {
# ssl_certificate_key /etc/letsencrypt/live/lms.our-place.ru/privkey.pem;
# ssl_protocols TLSv1.2 TLSv1.3;
#
# client_max_body_size 120m;
# client_max_body_size 200m; # крупные ZIP с изображениями и видео
#
# location / {
# proxy_pass http://127.0.0.1:8090;