diff --git a/abstract.typ b/abstract.typ
index a14ac15..a725463 100644
--- a/abstract.typ
+++ b/abstract.typ
@@ -1,4 +1,5 @@
#import "@preview/dashy-todo:0.0.1": todo
+#import "@preview/wordometer:0.1.3": word-count, total-words
#pagebreak()
#heading(
level: 1,
@@ -6,11 +7,20 @@
numbering: none,
"Anotācija",
)
+Kvalifikācijas darbā ir izstrādāta spēle "Maze Ascension", kas piedāvā
+spēlētājiem izaicinājumu iziet cauri proceduāli ģenerētiem sešstūrainam
+labirintiem. Spēle ir veidota, izmantojot Rust programmēšanas valodu un Bevy
+spēļu dzinēju.
-#lorem(100)
-
-#todo("Uzrakstīt anotāciju (līdz 850 rakstzīmēm)")
+Darba gaitā tika izstrādāta "hexlab" bibliotēka labirintu ģenerēšanai, kas tika
+atdalīta no galvenās spēles loģikas. Labirintu ģenerēšanai tiek izmantots
+rekursīvās atpakaļizsekošanas algoritms, kas nodrošina, ka katrai šūnai var
+piekļūt no jebkuras citas šūnas.
+Spēle ir izstrādāta kā vienspēlētāja režīmā ar progresējošu grūtības
+pakāpi, kur katrs nākamais līmenis piedāvā lielāku labirintu. Spēle ir pieejama
+gan kā lejupielādējama versija Windows, Linux un macOS platformām, gan kā
+tīmekļa versija, izmantojot WebAssembly tehnoloģiju.
#par(
first-line-indent: 0cm,
@@ -36,13 +46,20 @@ papilspējas.
numbering: none,
"Abstract",
)
- _"Maze Ascension" is a minimalist maze exploration game built using the Bevy
- engine. The game features simple visuals with hexagonal tiles forming the maze
- structure on a white background with black borders, and a stickman-style player
- character. Players navigate through multiple levels of increasing difficulty,
- progressing vertically as they climb up through levels. The game includes
- power-ups and abilities hidden throughout the maze, and later introduces the
- ability to move between levels freely._
+ The qualification work includes the game "Maze Ascension", which offers
+ players the challenge to pass through procedurally generated hexagons
+ mazes. The game is built using the Rust programming language and Bevy
+ game engine.
+
+ The work included the development of a "hexlab" library for maze generation,
+ which was separated from the main game logic. The maze generation is a
+ recursive backtracking algorithm which ensures that each cell can be
+ accessed from any other cell.
+
+ The game is designed as a single-player mode with progressive difficulty
+ with each successive level offering a larger maze. The game is available
+ as a downloadable version for Windows, Linux and macOS platforms, and as
+ as a web-based version using WebAssembly technology.
#todo("līdz 850 rakstzīmēm")
#par(
first-line-indent: 0cm,
diff --git a/assets/images/dpd/dpd2/maze-gen.svg b/assets/images/dpd/dpd2/maze-gen.svg
new file mode 100644
index 0000000..70abd65
--- /dev/null
+++ b/assets/images/dpd/dpd2/maze-gen.svg
@@ -0,0 +1,4 @@
+
+
+
+
\ No newline at end of file
diff --git a/bibliography.yml b/bibliography.yml
index 7965dd0..9337033 100644
--- a/bibliography.yml
+++ b/bibliography.yml
@@ -71,3 +71,43 @@ omg-uml:
date: 2015-03
url: https://www.omg.org/spec/UML/2.5/PDF
page-total: 794
+clippy:
+ type: Web
+ title: Clippy
+ author: Rust Projekta Izstādātāji
+ url: https://doc.rust-lang.org/clippy/usage.html
+rustfmt:
+ type: Web
+ title: Rustfmt
+ author: Rust Projekta Izstādātāji
+ url: https://github.com/rust-lang/rustfmt
+cargo-doc:
+ type: Web
+ title: cargo-doc
+ author: Rust Projekta Izstādātāji
+ url: https://doc.rust-lang.org/cargo/commands/cargo-doc.html
+rust-style:
+ type: Web
+ title: Rust stila ceļvedis
+ author: Rust Projekta Izstādātāji
+ url: https://doc.rust-lang.org/nightly/style-guide/
+hexlab:
+ type: Web
+ title: Hexlab bibliotēka
+ author: Kristiāns Francis Cagulis
+ url: https://crates.io/crates/hexlab
+hexlab-docs:
+ type: Web
+ title: Hexlab bibliotēkas dokumentācija
+ author: Kristiāns Francis Cagulis
+ url: https://docs.rs/hexlab/latest/hexlab/
+justfile:
+ type: Web
+ title: Just programmētāja rokasgrāmata
+ author: Casey Rodarmor
+ url: https://just.systems/man/en/
+gh-release:
+ type: Web
+ title: Par laidieniem
+ author: GitHub komanda
+ url: https://docs.github.com/en/repositories/releasing-projects-on-github/about-releases
diff --git a/doc.typ b/doc.typ
new file mode 100644
index 0000000..7f38411
--- /dev/null
+++ b/doc.typ
@@ -0,0 +1,88 @@
+#import "@preview/tablex:0.0.9": tablex
+
+#let vspace = 1fr
+#heading(numbering: none, outlined: false, "Dokumentārā lapa")
+#v(vspace)
+
+Kvalifikācijas darbs "Spēles izstrāde, izmantojot Bevy spēļu dzinēju" ir
+izstrādāts Latvijas Universitātes eksakto zinātņu un tehnoloģiju fakultātē.
+
+Darba autors apliecina, ka darbs ir veikts patstāvīgi, un ir izmantoti tikai
+tajā norādītie informācijas avoti.
+
+
+#v(vspace)
+#figure(
+ tablex(
+ stroke: none,
+ columns: (1fr, 1fr),
+ "Darba autors:",
+ [
+ Kristiāns Francis Cagulis, kc22015
+ ],
+ ),
+)
+
+#v(vspace)
+#figure(
+ tablex(
+ stroke: none,
+ columns: (1fr, 1fr),
+ "Darba vadītājs:",
+ "prof. Mg. dat. Jānis Iljins",
+ ),
+)
+
+#v(vspace)
+#figure(
+ tablex(
+ stroke: none,
+ columns: (1fr, 1fr),
+ "Darba galīgā versija izgatavota:",
+ "x.01.2025.",
+ ),
+)
+
+#v(vspace)
+#figure(
+ tablex(
+ stroke: none,
+ columns: (1fr, 1fr),
+ "Darba iesniegšanas datums:",
+ "06.01.2025.",
+ ),
+)
+
+#v(vspace)
+#figure(
+ tablex(
+ stroke: none,
+ columns: (1fr, 1fr),
+ "Darba aizstāvēšanas datums:",
+ "x.01.2025.",
+ ),
+)
+
+#v(vspace)
+#figure(
+ tablex(
+ stroke: none,
+ columns: (1fr, 1fr),
+ "Komisijas vērtējums:",
+ line(length: 100%, start: (0pt, 10pt)),
+ ),
+)
+
+#v(vspace)
+#figure(
+ tablex(
+ stroke: none,
+ columns: (1fr, 1fr),
+ "Komisijas sastāvs:",
+ [
+ #line(length: 100%, start: (0pt, 10pt))
+ #line(length: 100%, start: (0pt, 30pt))
+ #line(length: 100%, start: (0pt, 40pt))
+ ],
+ ),
+)
diff --git a/layout.typ b/layout.typ
index fbec183..fae574b 100644
--- a/layout.typ
+++ b/layout.typ
@@ -184,6 +184,21 @@
}
set ref(supplement: it => { }) // disable default reference suppliments
+ show ref: it => {
+ let el = it.element
+
+ if el != none and el.func() == heading {
+ return link(
+ el.location(),
+ numbering(
+ el.numbering,
+ ..counter(heading).at(el.location()),
+ ) + " " + el.body,
+ )
+ }
+
+ it
+ }
/* --- Figure/Table config end --- */
set list(marker: (
diff --git a/main.pdf b/main.pdf
new file mode 100644
index 0000000..4f7b092
Binary files /dev/null and b/main.pdf differ
diff --git a/main.typ b/main.typ
index 1a36d3d..88b666d 100644
--- a/main.typ
+++ b/main.typ
@@ -18,20 +18,20 @@
#set heading(numbering: none)
= Apzīmējumu saraksts
-/ Audio: #todo("add description")
+/ Audio: Skaņas komponentes, kas ietver gan skaņas efektus, gan fona mūziku.
/ CI/CD: nepārtraukta integrācija un nepārtraukta izvietošana;
/ DPD: datu plūsmas diagramma;
/ ECS: entitāšu komponentu sistēma (angl. Entity-Component-System#footnote[https://en.wikipedia.org/wiki/Entity_component_system]);
/ GitHub#footnote[https://en.wikipedia.org/wiki/GitHub]: izstrādātāju platforma, kas ļauj izstrādātājiem izveidot, glabāt, pārvaldīt un kopīgot savu kodu;
-/ GitHub Release #footnote[https://docs.github.com/en/repositories/releasing-projects-on-github/about-releases]: izvēršamas programmatūras iterācijas, ko varat iepakot un padarīt pieejamas plašākai auditorijai, lai lejupielādētu un izmantotu;
/ Jaucējtabula#footnote[https://lv.wikipedia.org/wiki/Jauc%C4%93jtabula]: jeb heštabula (angl. hash table#footnote[https://en.wikipedia.org/wiki/Hash_table]) ir datu struktūra, kas saista identificējošās vērtības ar piesaistītajām vērtībām.
-/ Papildspēja: objekts, kas kā spēles mehānika spēlētājam piešķir īslaicīgas priekšrocības vai papildu spējas (angl. power-up#footnote[https://en.wikipedia.org/wiki/Power-up]);
-/ Pirmkods: #todo("add description")
+/ Laidiens: Programmatūras versija, kas ir gatava izplatīšanai lietotājiem un satur īpašas funkcijas, uzlabojumus vai labojumus.
/ PPA: programmatūras projektējuma apraksts;
/ PPS: programmatūras prasību specifikācija;
-/ Renderēšana: #todo("add description")
+/ Papildspēja: objekts, kas kā spēles mehānika spēlētājam piešķir īslaicīgas priekšrocības vai papildu spējas (angl. power-up#footnote[https://en.wikipedia.org/wiki/Power-up]);
+/ Pirmkods: Cilvēkam lasāmas programmēšanas instrukcijas, kas nosaka programmatūras darbību.
+/ Renderēšana: Process, kurā tiek ģenerēts vizuāla izvade.
+/ Sēkla: Skaitliska vērtība, ko izmanto nejaušo skaitļu ģeneratora inicializēšanai.
/ Spēlētājs: lietotāja ieraksts vienas virtuālās istabas kontekstā.
-/ Sēkla: _seed_ #todo("add description")
/* Pēdējos gados spēļu izstrādes joma ir piedzīvojusi strauju popularitātes
* pieaugumu, ko veicināja neatkarīgo spēļu skaita pieaugums un jaudīgu spēļu
@@ -120,9 +120,10 @@ tostarp Linux, macOS, Windows un WebAssembly (WASM).
Tas nodrošina, ka spēle ir pieejama plašai auditorijai, nodrošinot konsekventu
un saistošu pieredzi dažādās operētājsistēmās un vidēs.
-Spēle tiek izplatīta, izmantojot GitHub releases un
-#link("http://itch.io/")[itch.io], kas ir populāra neatkarīgo spēļu
-platforma, kas ļauj viegli piekļūt un izplatīt spēles visā pasaulē.
+Spēle tiek izplatīta, izmantojot "GitHub
+releases"@gh-release
+un itch.io#footnote("https://itch.io/"), kas ir populāra neatkarīgo
+spēļu platforma, kas ļauj viegli piekļūt un izplatīt spēles visā pasaulē.
Izmantojot šīs platformas, datorspēle gūst dažādu maksājumu modeļu un kopienas
iesasaistes funkcijas, tādējādi palielinot spēles sasniedzamību un atpazīstamību.
@@ -149,7 +150,7 @@ Sistēmas izstrādē galvenā uzmanība tiks pievērsta sekojošu darījumprasī
+ Savietojamība ar vairākām platformām: sistēma būs pieejama vairākās
platformās, tostarp Linux, macOS, Windows un WebAssembly, nodrošinot plašu
pieejamību un sasniedzamību.
-+ Kopienas iesaiste: Spēle izmantos #link("http://itch.io/")[itch.io] kopienas
++ Kopienas iesaiste: Spēle izmantos itch.io@itch-io kopienas
funkcijas, lai sadarbotos ar spēlētājiem, apkopotu atsauksmes un veicinātu
atbalstošu spēlētāju kopienu.
+ Regulāri atjauninājumi un uzturēšana: CI/CD cauruļvadu veicinās regulārus
@@ -197,7 +198,7 @@ Ar lietotājiem saistītās datu plūsmas ir attēlotas sistēmas nultā līmeņ
- Windows kompilācijām;
- WebAssembly kompilāciju.
- Izplatīšanas atkarības:
- - Pastāvīga #link("http://itch.io/")[itch.io] platformas pieejamība spēļu izplatīšanai.
+ - Pastāvīga itch.io@itch-io platformas pieejamība spēļu izplatīšanai.
- CI/CD darbplūsmai nepieciešamo kompilēšanas rīku un atkarību uzturēšana.
- Izstrādes atkarības:
- Rust programmēšanas valoda (stabilā versija);
@@ -205,7 +206,7 @@ Ar lietotājiem saistītās datu plūsmas ir attēlotas sistēmas nultā līmeņ
- Nepieciešamie Bevy spraudņi un atkarības, kā norādīts projekta Cargo.toml failā.
- Lietotāja vides pieņēmumi:
- Spēlētājiem ir pamata izpratne par labirinta navigāciju un mīklu risināšanas koncepcijām.
- - Lietotāji var piekļūt un lejupielādēt spēles no #link("http://itch.io/")[itch.io] platformas.
+ - Lietotāji var piekļūt un lejupielādēt spēles no itch.io@itch-io platformas.
- Spēlētājiem ir ievadierīces (tastatūra/pele), ar kurām kontrolēt spēli.
= Programmatūras prasību specifikācija
@@ -271,7 +272,7 @@ pienākumi, un tas ietver funkcijas, kas veicina kopējo spēles sistēmu.
[Spēlētāju stāvokļa atjaunināšana], [],
rowspanx(1)[Labirinta ģenerēšanas modulis],
- [Labirinta ģenerēšana], [#link()[LGMF01]],
+ [Labirinta būvētājs], [#link()[LGMF01]],
rowspanx(5)[Līmeņu pārvaldības modulis],
[Līmeņu ielāde], [],
@@ -297,16 +298,38 @@ pienākumi, un tas ietver funkcijas, kas veicina kopējo spēles sistēmu.
=== Spēles stāvokļa pārvaldības modulis
=== Spēlētāja modulis
=== Labirinta ģenerēšanas modulis
+
+Apakšnodaļa ietver labirinta moduļa funkcijas. Moduļa funkcionalitāte ir
+izmantota sešstūraina labirinta ģenerēšanai.
+Moduļa funkciju datu
+plūsmas ir parādītas 2. līmeņa datu plūsmas diagrammā (skat. @dpd-2-maze-gen att.)
+Labirinta būvēšanas funkcija ir aprakstītas atsevišķā tabulā (skat.
+#link()[LGMF01] tab.)
+
+Modularitātes un atkārtotas lietojamības apsvērumu dēļ labirinta ģenerēšanas
+funkcionalitāte tika pārnesta uz ārēju bibliotēku "hexlib"@hexlab. Šis lēmums
+ļauj labirinta ģenerēšanas loģiku atkārtoti izmantot dažādos projektos un
+lietojumprogrammās, veicinot atkārtotu koda izmantošanu.
+Iekapsulējot labirinta ģenerēšanu atsevišķā bibliotēkā, to ir vieglāk pārvaldīt
+un atjaunināt neatkarīgi no galvenās lietojumprogrammas, nodrošinot, ka
+labirinta ģenerēšanas algoritma uzlabojumus vai izmaiņas var veikt, neietekmējot
+programmu.
+
+#figure(
+ caption: [Labirinta ģenerēšanas moduļa 2. līmeņa DPD],
+ image("assets/images/dpd/dpd2/maze-gen.svg"),
+)
+
#function-table(
- "Labirinta ģenerēšana",
+ "Labirinta būzētājs",
"LGMF01",
[Izveido sešstūrainu labirintu ar norādītajiem parametriem.],
[
- + Rādiuss: `u32` -- Labirinta rādiuss. Obligāts parametrs, kas nosaka labirinta izmēru.
- + Sēkla: `Option` -- Neobligāta sēkla nejaušo skaitļu ģeneratoram. Ja
+ + Rādiuss -- Labirinta rādiuss. Obligāts parametrs, kas nosaka labirinta izmēru.
+ + Sēkla -- Neobligāta sēkla nejaušo skaitļu ģeneratoram. Ja
norādīta, nodrošina reproducējamu labirinta ģenerēšanu ar vienādiem
parametriem. Ja nav norādīta, tiek izmantota nejauša sēkla.
- + Sākuma pozīcija: `Option` -- Neobligāta sākotnējā pozīcija labirintā.
+ + Sākuma pozīcija -- Neobligāta sākotnējā pozīcija labirintā.
Ja norādīta, labirinta ģenerēšana sāksies no šīs pozīcijas. Ja nav norādīta,
tiek izvēlēta nejauša derīga sākuma pozīcija.
// + Ģeneratora tips: `GeneratorType` -- Algoritms, kas tiks izmantots
@@ -391,55 +414,103 @@ Pret sistēmas izstrādājamo programmatūras uzturamību tiek izvirzītas sekoj
= Programmatūras projektējuma apraksts
== Daļējs funkciju projektējums
+#todo("pievienot funkciju projektējumu +diagrammas")
/* Apraksta svarīgākās, sarežģītākās funkcijas vai sistēmas darbības aspektus;
* obligāti jālieto vismaz 4 dažādi diagrammu veidi, izņemot DPD un lietošanas
* piemēru (use case) diagrammas */
-== Izmantotās bibliotēkas
-== Daļējs lietotāju saskarņu projektējums
+== Saskarņu projektējums
+#todo("pievienot saskarnes (UI/UX)")
/* 5-7 lietotāja saskarnes un to apraksts */
= Testēšanas dokumentācija
-== Dinamiskā programmatūras testēšana
+Šajā nodaļā ir aprakstīta spēles "Maze Ascension" testēšanas process.
+Testēšana tika veikta divos galvenajos virzienos -- statiskā un dinamiskā
+testēšana, izmantojot gan automatizētus rīkus, gan manuālu pārbaudi.
+
+== Statiskā testēšana
+Statiskā testēšana ir svarīga daļa no projekta kvalitātes nodrošināšanas.
+"Clippy"@clippy tiek izmantots koda analīzei, meklējot potenciālas problēmas un
+neoptimālus risinājumus. Papildus noklusētajiem noteikumiem, tika aktivizēti
+stingrāki koda kvalitātes pārbaudes līmeņi: "pedantic" režīms nodrošina
+padziļinātu koda stila pārbaudi, "nursery" aktivizē eksperimentālās pārbaudes,
+un "unwrap_used" un "expect_used" brīdina par potenciāli nedrošu kļūdu
+apstrādi. Šie papildu noteikumi palīdz uzturēt augstāku koda kvalitāti un
+samazināt potenciālo kļūdu skaitu.
+
+
+/* Programmatūras statiskai testēšanai ir izmantots rīks „clang-tidy“, kas analizē
+programmatūru, meklējot kļūdas un problēmas pirmkodā. [12] Rīks satur vairākas specifiskas
+problēmu kopas, kas var tikt izmantotas analīzē. Tika izmantota „clang-analyzer“ problēmu
+kopa. Vieglākai statisko testu darbināšanai tika izmantots vienkāršs programmēšanas valodas
+„Python“ skripts, kas atlasa visus failus, kuru paplašinājums ir „cpp“ (valodas „C++“ pirmkoda
+fails) vai „h“ (galvenes fails) un darbina statiskās analīzes rīku ar katru failu atsevišķi (skat.
+izpildes rezultātu attēlā 4.3.). */
+
+== Dinamiskā testēšana
+#todo("uztakstīt dinamisko testēšanu")
=== Manuālā integrācijas testēšana
=== Automatizēti testi
-== Statiskā programmatūras testēšana
= Programmas projekta organizācija
-= Kvalitātes nodrošināšana
-PPS ir izstrādāta, ievērojot LVS 68:1996 standarta "Programmatūras prasību specifikācijas
-ceļvedis"@lvs_68 un LVS 72:1996 standarta "Ieteicamā prakse programmatūras projektējuma
-aprakstīšanai"@lvs_72 standarta prasības.
+Kvalifikācijas darba prasības paredz, ka programmatūru un dokumentāciju autors
+veido patstāvīgi, vadoties pēc darba vadītāja norādījumiem.
+
+#todo("uzrakstīt projekta organizāciju")
+
+== Kvalitātes nodrošināšana
+Augstas koda kvalitātes nodrošināšana ir jebkura projekta būtisks aspekts.
+Lai to panāktu, tiek izmantoti vairāki rīki un prakses, kas palīdz uzturēt tīru,
+efektīvu un uzticamu koda.
+
+Viens no galvenajiem rīkiem, kas tiek izmantots ir "Clippy"@clippy, kas analizē
+iespējamās problēmas un iesaka uzlabojumus (skat. @static-tests nodaļu).
+
+Kopā ar "Clippy" tiek arī izmantots "Rustfmt"@rustfmt, koda formatētājs, lai
+uzturētu vienotu koda formatējumu visā projektā. Šis rīks automātiski formatē
+kodu saskaņā ar Rust stila vadlīnijām@rust-style.
+
+Turklāt visas publiskās funkcijas un datu struktūras
+hexlab bibliotēkā ir
+dokumentētas@hexlab-docs. Šajā dokumentācijā ir ietverti detalizēti apraksti un lietošanas
+piemēri, kas ne tikai palīdz saprast kodu, bet arī kalpo kā dokumentācijas
+testēšanas veids. Darbinot "cargo doc"@cargo-doc, tiek ģenerēja un validēja
+dokumentācija, nodrošinot, ka piemēri ir pareizi un aktuāli.
+
+Programmatūras prasības specifikācija ir izstrādāta, ievērojot LVS 68:1996
+standarta "Programmatūras prasību specifikācijas ceļvedis"@lvs_68 un LVS 72:1996
+standarta "Ieteicamā prakse programmatūras projektējuma aprakstīšanai"@lvs_72
+standarta prasības.
// Programmatūras projektējuma aprakstā iekļautās
// aktivitāšu diagrammas ir izstrādātas, ievērojot UML 2.5 versijas
// specifikāciju@omg-uml.
-= Konfigurācijas pārvaldība
+== Konfigurācijas pārvaldība
Pirmkods tiek pārvaldīts, izmantojot "git"@git versiju kontroles sistēmu.
Repozitorijs tiek izvietots platformā "GitHub".
-
Rīku konfigurācija ir definēta vairākos failos:
-- "justfile#footnote[https://github.com/casey/just]" -- satur atkļūdošanas un
- piegādes komandas dažādām vidēm:
+- "justfile" -- satur atkļūdošanas un
+ laidiena komandas dažādām vidēm@justfile:
- atkļūdošanas kompilācijas ar iespējotu pilnu atpakaļsekošanu;
- - piegādes kompilācijas ar iespējotu optimizāciju.
+ - laidiena kompilācijas ar iespējotu optimizāciju.
- "GitHub Actions" darbplūsmas, kas apstrādā:
- koda kvalitātes pārbaudes (vienībtesti, statiskie testi, formatēšana,
dokumentācijas izveide).
- kompilācijas un izvietotošanas darbplūsma, kas:
- izveido Windows, Linux, macOS un WebAssembly versijas;
- publicē bināros failus GitHub platformā;
- - izvieto tīmekļa versiju #link("http://itch.io/")[itch.io] platformā.
+ - izvieto tīmekļa versiju itch.io@itch-io platformā.
-#indent-par[Versiju kontrole notiek pēc semantiskās versiju@sem_ver atlases
- (MAJOR.MINOR.PATCH): ]
+Versiju specifikācija notiek pēc semantiskās versiju atlases@sem_ver (MAJOR.MINOR.PATCH):
+ MAJOR -- galvenā versija, nesaderīgas izmaiņas, būtiskas koda izmaiņas.
+ MINOR -- atpakaļsaderīgas funkcionalitātes papildinājumi.
+ PATCH -- ar iepriekšējo versiju saderīgu kļūdu labojumi.
-= Darbietilpības novērtējums
+== Darbietilpības novērtējums
+#todo("uzrakstīt darbietilpības novērtējumu")
-= Secinājumi
+// = Secinājumi
+// #todo("uzrakstīt secinājumus")
#bibliography(
title: "Izmantotā literatūra un avoti",
@@ -450,5 +521,5 @@ Rīku konfigurācija ir definēta vairākos failos:
// #include "doc.typ"
-// #pagebreak()
-// #total-words words
+#pagebreak()
+#total-words words