started documentation

This commit is contained in:
jorenchik
2024-09-28 11:05:59 +03:00
parent cde695da2a
commit bad73f4f35
5 changed files with 528 additions and 0 deletions

49
docs/abstract.typst Normal file
View File

@@ -0,0 +1,49 @@
#import "layout.typst": indent-par
#pagebreak()
#heading(
level: 1,
outlined: false,
numbering: none,
"Anotācija",
)
#indent-par([
// LV abstract
])
#par(
first-line-indent: 0cm,
[*Atslēgvārdi:*],
)
// LV keywords
#text(
hyphenate: auto,
lang: "en",
[
#pagebreak()
#heading(
level: 1,
outlined: false,
numbering: none,
"Abstract",
)
#indent-par([
// EN abstract
])
#par(
first-line-indent: 0cm,
[*Keywords:*],
)
// EN keywords
],
)

205
docs/layout.typst Normal file
View File

@@ -0,0 +1,205 @@
#import "@preview/i-figured:0.1.0"
#import "@preview/big-todo:0.2.0": *
#import "@preview/tablex:0.0.6": tablex
#let indent = 1cm
#let indent-par(
body,
) = par(h(indent) + body)
#let project(
university: "",
faculty: "",
title: [],
authors: (),
advisor: "",
date: "",
body,
) = {
set document(author: authors)
set page(
margin: (
left: 30mm,
right: 20mm,
top: 20mm,
bottom: 20mm,
),
number-align: center,
paper: "a4",
)
set text(
//font: "New Computer Modern",
font: "CMU", size: 12pt, hyphenate: auto, lang: "lv", region: "LV",
)
show raw: set text(font: "New Computer Modern Mono")
show math.equation: set text(weight: 400)
// Formatting for regular text
set par(
justify: true,
leading: 1.5em,
first-line-indent: indent,
)
show par: set block(spacing: 1.5em) // Set 1.5em gap between paragraphs
show heading: set block(spacing: 1.5em)
set terms(separator: [ -- ])
// Headings
set heading(numbering: "1.1.")
show heading: it => {
if it.level == 1 {
// pagebreak(weak: true)
text(
14pt,
align(
center,
upper(it),
),
)
} else {
it
}
}
/* Title page config start */
align(
center,
upper(
text(
size: 16pt,
[
#university\
#faculty
],
),
),
)
v(1fr)
align(
center,
text(
20pt,
weight: "bold",
title,
),
)
v(1fr)
// Author information
align(
right,
[
#if authors.len() > 1 {
text(
weight: "bold",
"Darba autori:",
)
} else {
text(
weight: "bold",
"Darba autors:",
)
}\
#authors.join("\n")
#v(2em)
#if advisor != "" {
text(
weight: "bold",
"Darba vadītājs:\n",
)
advisor
}
],
)
v(0.5fr)
align(
center,
upper(
text(date),
),
)
/* Title page config end */
// WARNING: removove before sending
// todo_outline
/* --- Figure/Table conf start --- */
show heading: i-figured.reset-counters
show figure: i-figured.show-figure.with(numbering: "1.1.")
show figure.where(kind: "i-figured-table"): set block(breakable: true)
show figure.where(kind: "i-figured-table"): set figure.caption(position: top)
show figure: set par(justify: false) // disable justify for figures (tables)
show figure.caption: it => {
if it.kind == "i-figured-table" {
align(
end,
emph(it.counter.display(it.numbering) + " tabula ") + text(
weight: "bold",
it.body,
),
)
} else if it.kind == "i-figured-image" {
align(
start,
emph(it.counter.display(it.numbering) + " att. ") + text(
weight: "bold",
it.body,
),
)
} else {
it
}
}
set ref(supplement: it => { }) // disable default reference suppliments
/* --- Figure/Table conf end --- */
set list(marker: (
[•],
[--],
[\*],
[·],
))
set enum(numbering: "1aiA)") // TODO: make the same style as LaTeX: 1. | (a) | i. | A.
// Abstract
include "abstract.typst"
/* ToC config start */
// Uppercase 1st level headings in ToC
show outline.entry.where(level: 1): it => {
upper(it)
}
pagebreak()
outline(
depth: 3,
indent: 1cm,
title: text(
size: 14pt,
"SATURS",
),
)
/* ToC config end */
// Start page numering
set page(
numbering: "1",
number-align: center,
)
// Main bdy.
body
}

BIN
docs/main.pdf Normal file

Binary file not shown.

69
docs/main.typst Normal file
View File

@@ -0,0 +1,69 @@
#import "layout.typst": project, indent-par
#import "@preview/i-figured:0.1.0"
#import "@preview/tablex:0.0.6": tablex, rowspanx, colspanx, cellx
#import "utils.typst": *
#show: project.with(
university: "Latvijas Universitāte",
faculty: "Eksakto zinātņu un tehnoloģiju fakultāte",
title: [Atmiņas kartīšu lietotne ar domēna specifiskās valodas izmantošanu\ Kvalifikācijas darbs],
authors: ( "Jorens Štekeļs, js21283", ),
advisor: "prof. Dr. sc. comp. Laila Niedrīte",
date: "Rīga 2025",
)
#set heading(numbering: none)
#pagebreak(weak: true)
= Apzīmējumu saraksts
#par(
first-line-indent: 0cm,
[
/ API: lietojumprogrammu saskarne (angl. Application Program Interface);
],
)
#pagebreak(weak: true)
= Ievads
== Nolūks
#indent-par([
Šī darba nolūks ir specificēt lietotnes programmatūras prasības un
aprakstīt tās projektējumu, kas tiek aprakstīta un izstrādāta
kvalifikācijas darba ietvaros.
])
== Darbības sfēra
#indent-par([
Atmiņas kartītes (Angl. flashcards) ir izplatīts veids, kā skolēni, studenti un
citi macošies cilvēki iegaumē materiālu. Šādu kartīšu pamatā parasti ir priekša
un aizmugura. Priekšā atrodas jautājums vai uzdevums vai cita informācija, kas
uzstāda mentālu vai praktisku uzdevumu, iespējams iekļaujot arī mājieni.
Aizmugurā atrodas atbildes teksts, kas ar sevi atbild vai parāda pareizu
atbildi uz priekšā uzstādītu jautājumu vai uzdevumu.
])
Tiek veidotas vairākas atmiņas kartītes uz līdzīgu tēmu, veidojas kartīšu kaudzes.
Mācīšanas seansā, tiek vērtēts, cik grūti vai viegli jautājumi vai uzdevumi ir
atbildāmi vai atrisināmi attiecīgi. Balstoties uz grūtību vai iespēju atbildēt,
kartītes tiek grupētas noteiktās grupās, kas, savukārt, nosaka intervālu, pēc kura
kartīte figurēs nākamā mācīšanās seansā. Piemēram, grupas - ļoti viegli, vidēji,
grūti, neizdevās -, kam atbilst 5 dienas, 3 dienas, 1 diena, 0 dienas attiecīgi.
Jo lielāka ir subjektīva piepūle, atbildējot uz jautājumu vai risinot uzdevumu,
jo TK.
Veidojot atmiņas kartītes manuāli, var rasties grūtības, kā nozaudēšana,
kļūdas sagatavojot tekstu, mācīšanās algoritma uzstādīšanas sarežģītība.
#pagebreak(weak: true)
#set heading(numbering: "1.1.")
= Vispārējais apraksts

205
docs/utils.typst Normal file
View File

@@ -0,0 +1,205 @@
#import "@preview/tablex:0.0.6": tablex
#import "@preview/big-todo:0.2.0": todo as TODO
#let custom-block(
item,
) = {
set align(start)
block(
inset: 8pt,
stroke: black,
width: 100%,
spacing: 0pt,
breakable: true,
item,
)
}
#let longtable(
title: "",
titles: (),
caption: "",
..items,
) = {
set par(first-line-indent: 0pt)
figure(
gap: 1.5em,
kind: table,
caption: if caption != "" {
caption
} else {
if titles.len() == 0 {
title
} else {
titles.first()
}
},
[
#if titles.len() == 0 {
custom-block(
text(
weight: "bold",
title,
),
)
}
#for i in range(
items.pos().len(),
) {
if titles.len() > 0 {
custom-block(
text(
weight: "bold",
titles.at(i),
),
)
}
custom-block(
items.pos().at(i),
)
}
],
)
linebreak()
}
#let parameter-table(
caption: "",
..items,
) = {
if caption == "" {
caption = items.pos().first()
}
longtable(
titles: (
"Parametra nosaukums",
"Parametra identifikators",
"Parametra apraksts",
"Parametra prasības",
"Parametra piemērs (/-i)",
),
caption: caption,
..items,
)
}
#let procedure-table(
caption: "",
..items,
) = {
if caption == "" {
caption = items.pos().first()
}
longtable(
titles: (
"Procedūras nosaukums",
"Procedūras identifikators",
"Procedūras apraksts",
"Ievade",
"Apstrāde",
"Izvade",
),
caption: caption,
..items,
)
}
#let function-table(
caption: "",
..items,
) = {
if caption == "" {
caption = items.pos().first()
}
longtable(
titles: (
"Funkcijas nosaukums",
"Funkcijas identifikators",
"Ievads",
"Ievade",
"Apstrāde",
"Izvade",
"Paziņojumi",
),
caption: caption,
..items,
)
}
#let entity-table-row(
..items,
) = {
(
items.pos().at(0),
upper(
raw(
items.pos().at(1),
block: false,
),
),
upper(
raw(
items.pos().at(2),
block: false,
),
),
items.pos().at(3),
)
}
#let entity-table(
caption: "",
id: (),
..items,
) = {
if id == () {
id = (
"id",
"serial8",
"primary key, not null",
"Unikālais identifikators",
)
}
figure(
caption: caption,
kind: table,
tablex(
columns: (4cm, 3cm, auto, auto),
repeat-header: true,
/* Header */
[*Lauks*], [*Datu tips*], [*Lauka atribūti*], [*Apraksts*],
..entity-table-row(..id), // id row
..for i in range(items.pos().len(), step:4){
entity-table-row(..items.pos().slice(i, i+4))
},
),
)
}
#let todo(
..body,
) = {
TODO(
..body,
inline: true,
big_text: 14pt,
small_text: 12pt,
)
}
#let hyperlink-source(
author,
title,
link_str,
date,
) = {
if link_str == "" {
[#author #title Aplūkots #date.display("[day].[month].[year]")]
} else {
[#author #title Pieejams: #link(link_str) aplūkots #date.display("[day].[month].[year]")]
}
}