Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -3,3 +3,4 @@
dist/
node_modules/
out/
target/
Binary file added s3_cse/module01/assets/fonts/times.ttf
Binary file not shown.
Binary file added s3_cse/module01/assets/fonts/timesbd.ttf
Binary file not shown.
15 changes: 15 additions & 0 deletions s3_cse/module01/justfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
_default:
@just --list

fonts_dir := join("assets", "fonts")
typst_flags := "--font-path " + fonts_dir + " --ignore-system-fonts"

typst_dst := join("target", "typst", "main.pdf")
typst_src := join("typst", "main.typ")

compile:
mkdir -p {{ parent_directory(typst_dst) }}
typst compile {{ typst_flags }} {{ typst_src }} {{ typst_dst }}

preview:
tinymist preview {{ typst_flags }} {{ typst_src }}
7 changes: 7 additions & 0 deletions s3_cse/module01/typst/abbrev.typ
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
#set heading(outlined: false)

= ПЕРЕЛІК УМОВНИХ ПОЗНАЧЕНЬ

/ LAN: Local area network -- об'єднання певного числа комп'ютерів на відносно невеликій території.
/ ПЗ: Програмне забезпечення -- сукупність комп'ютерних програм, які керують роботою комп'ютера.
/ ЦП: Центральний процессор -- функціональна частина комп'ютера, що призначена для інтерпретації команд.
60 changes: 60 additions & 0 deletions s3_cse/module01/typst/body.typ
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
= ПЕРЕДПРОЄКТНЕ ОБСТЕЖЕННЯ ПРЕДМЕТНОЇ ОБЛАСТІ

== Аналіз предметної області

== Аналіз наявних рішень

=== Аналіз відомих програмних продуктів

#let g(body) = table.cell(body, fill: green.lighten(90%))
#let r(body) = table.cell(body, fill: red.lighten(90%))
#let y(body) = table.cell(body, fill: yellow.lighten(90%))

#[
#set page(flipped: true)
#show figure: set block(breakable: true)
#figure(table(
align: horizon,
columns: (1fr, 1.5fr, 1.5fr, 1.5fr, 3fr),
inset: 0.75em,
table.header([Функціонал], [Курсова робота], [Jellyfin @jellyfin], [Plex @plex], [Пояснення]),
//
[Апаратне прискорення],
g[Є],
g[Є],
y[За підпискою],
[Використання спеціального обладнання для більш ефективного виконання, ніж ЦП загального призначення],
//
[Віддалене управління],
y[Автоматичне виявлення LAN-сервера],
y[Автоматичне виявлення LAN-сервера],
g[Доступ через обліковий запис],
[Підключення до системи, коли користувач фізично знаходиться далеко],
//
[Ліцензія],
g[MIT],
g[GPL-2.0],
r[Freemium],
[Право використовувати, модифікувати та розповсюджувати ПЗ],
//
[Підтримка платформ],
y[ЩНВ],
g[Web, Linux, Windows, macOS, Android, iOS],
g[Web, Linux, Windows, macOS, Android, iOS],
[Нативний застосунок забезпечує кращу швидкодію, стабільність і задовільний користувацький досвід],
//
[Реклама],
g[Немає],
g[Немає],
y[Безкоштовна версія],
[Спосіб відшкодування витрат на розробку та отримання прибутку],
), caption: [Порівняння з аналогом])
]

=== Аналіз відомих алгоритмічних та технічних рішень

== Опис бізнес-процесів

== Постановка задачі

#heading(depth: 2, numbering: none)[Висновки до розділу]
14 changes: 14 additions & 0 deletions s3_cse/module01/typst/hayagriva.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
# yaml-language-server: $schema=https://raw.githubusercontent.com/mkdjr/hayagriva/refs/heads/main/hayagriva.schema.json
# @help: https://github.com/typst/hayagriva/blob/main/docs/file-format.md

# TODO: https://github.imc.re/typst/hayagriva/pull/192

jellyfin:
title: "The Free Software Media System | Jellyfin"
type: "web"
url: "https://jellyfin.org"

plex:
title: "Stream Movies & Find Shows On The Best Streaming Services"
type: "web"
url: "https://plex.tv"
4 changes: 4 additions & 0 deletions s3_cse/module01/typst/intro.typ
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
= ВСТУП

Самостійний хостинг стає дедалі популярнішою альтернативою для тих, хто прагне уникнути десятків платних сервісів
потокового контенту і особисто володіти своєю медіа-колекцією.
60 changes: 60 additions & 0 deletions s3_cse/module01/typst/main.typ
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
// TODO: https://github.com/typst/typst/issues/4224
#let leading = 1.5em
#let leading = leading - 0.75em

#set page(margin: (bottom: 2cm, left: 2cm, right: 1cm, top: 2cm), paper: "a4")
#set par(first-line-indent: 1.25cm, leading: leading, spacing: leading)
#set text(font: "Times New Roman", lang: "ua", region: "ua", size: 14pt)

#set figure(numbering: i => numbering("1.1", counter(heading).get().first(), i))
#show figure.where(kind: table): it => {
set figure.caption(position: top, separator: [ -- ])
show figure.caption: set align(left)
it
}
#show heading: it => {
counter(figure.where(kind: image)).update(0)
counter(figure.where(kind: table)).update(0)
it
}

// @see: https://forum.typst.app/t/how-to-create-a-pagebreak-before-every-depth-1-heading-except-for-the-outline/904
#show outline: set heading(supplement: [Outline])
#show heading.where(depth: 1): it => {
if it.supplement != [Outline] {
pagebreak(weak: true)
}
it
}

#show heading: set text(weight: "regular")
#show heading.where(level: 1): set align(center)
#show heading.where(level: 1): set text(weight: "bold")

// TODO: https://github.com/typst/typst/issues/311
#show heading: it => {
it
""
v(-1em)
}

#include "title.typ"
#set page(number-align: top + right, numbering: "1")

#pagebreak(weak: true)
#outline(title: "ЗМІСТ")

#include "abbrev.typ"
#include "intro.typ"

#[
#set heading(numbering: "1.1")
#include "body.typ"
]

#bibliography(
"./hayagriva.yml",
// @see: https://zakon.rada.gov.ua/laws/show/z0155-17
style: "institute-of-electrical-and-electronics-engineers",
title: "СПИСОК ВИКОРИСТАНИХ ДЖЕРЕЛ",
)
11 changes: 11 additions & 0 deletions s3_cse/module01/typst/title.typ
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
#set heading(outlined: false)

#align(center + horizon, [
= Пояснювальна записка до курсової роботи\
на тему: "Система для аналізу, фільтрації та структурування мультимедійного контенту" \
КПІ.ІП-3501.045480.02.81
])

#align(center + bottom, [
Київ - #datetime.today().year()
])