You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: public/stories/README.md
+85-36Lines changed: 85 additions & 36 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -10,6 +10,13 @@ The content is organized as follows:
10
10
public/stories/
11
11
├── authors.piml
12
12
├── books.piml
13
+
├── characters.piml
14
+
├── places.piml
15
+
├── MarkdownExample.md
16
+
├── _items_/
17
+
│ ├── items.piml
18
+
│ ├── [item-image].png
19
+
│ └── ...
13
20
└── [book-directory-name]/
14
21
├── episode1.txt
15
22
└── episode2.txt
@@ -18,7 +25,11 @@ public/stories/
18
25
19
26
*`authors.piml`: This PIML file contains the definitions for all authors.
20
27
*`books.piml`: This PIML file serves as the main index for all story books and their respective episodes.
21
-
*`[book-directory-name]/`: Each book's individual episode content files are stored in their own dedicated subdirectories. For example, `book-one/` would contain episodes for "Book One".
28
+
*`characters.piml`: This PIML file contains the definitions for all characters (Dramatis Personae).
29
+
*`places.piml`: This PIML file contains the definitions for all places and locations (The Atlas).
30
+
*`_items_/`: Contains item definitions and their respective images.
31
+
*`items.piml`: Definitions for artifacts and tools (The Armory).
32
+
*`[book-directory-name]/`: Each book's individual episode content files are stored in their own dedicated subdirectories.
22
33
*`episodeX.txt`: These are plain text files containing the actual narrative content for each episode.
23
34
24
35
## Episode File Contents
@@ -48,63 +59,101 @@ The `books.piml` file is a PIML document that, when parsed, results in an object
48
59
(author) fezcode
49
60
(date) 2025-11-14
50
61
(updated) 2025-11-14
51
-
> (episode)
52
-
(id) 2
53
-
(filename) book-one/episode2.txt
54
-
(title) Episode 2: The Goblin Ambush
55
-
(author) fezcode
56
-
(date) 2025-11-14
57
-
(updated) 2025-11-14
58
62
(overlay) red
59
-
60
-
> (book)
61
-
# ... more book objects
62
63
```
63
64
64
-
### Root Object Properties:
65
+
### Book Object Properties:
66
+
67
+
*`bookId` (Number): A unique identifier for the book.
68
+
*`bookTitle` (String): The full title of the book.
69
+
*`episodes` (Array): An array of episode objects belonging to this book.
70
+
*`overlay` (String): A color string (e.g., "red", "blue", "black") used for visual styling in the application.
71
+
72
+
### Episode Object Properties:
65
73
66
-
*`books` (Array): An array of book objects.
74
+
*`id` (Number): A unique identifier for the episode within its book.
75
+
*`filename` (String): The relative path to the plain text file. Relative to the `public/stories/` directory.
76
+
*`title` (String): The title of the episode.
77
+
*`author` (String): The alias of the author, matching an `alias` in `authors.piml`.
78
+
*`date` (String): Original release date.
79
+
*`updated` (String): Last update date.
67
80
68
81
## Author Structure (authors.piml)
69
82
70
-
The `authors.piml` file is a PIML document that, when parsed, results in an object containing an `authors` array.
*`alias` (String): A unique alias for the author, used to link episodes to this author.
91
-
*`website` (String, Optional): The website or URL associated with the author.
95
+
*`alias` (String): A unique alias for the author.
96
+
*`website` (String, Optional): The website URL.
92
97
*`image` (String): A URL to the author's profile picture.
93
98
94
-
### Book Object Properties:
99
+
##Character Structure (characters.piml)
95
100
96
-
*`bookId` (Number): A unique identifier for the book.
97
-
*`bookTitle` (String): The full title of the book.
98
-
*`episodes` (Array): An array of episode objects belonging to this book.
99
-
*`overlay` (String): A color string (e.g., "red", "blue", "black") used for visual styling in the application.
101
+
```piml
102
+
(characters)
103
+
> (character)
104
+
(name) Corrigan
105
+
(role) Private Investigator
106
+
(book) The Broken Path
107
+
(description) A cynical detective...
108
+
(status) Alive (Haunted)
109
+
```
100
110
101
-
### Episode Object Properties:
111
+
### Character Object Properties:
102
112
103
-
*`id` (Number): A unique identifier for the episode within its book.
104
-
*`filename` (String): The relative path to the plain text file containing the episode's content. This path is relative to the `public/stories/` directory (e.g., `book-one/episode1.txt`).
105
-
*`title` (String): The title of the episode.
106
-
*`author` (String): The alias of the author of the episode, matching an `alias` in the `authors` section.
107
-
*`date` (String): The original release date of the episode.
108
-
*`updated` (String): The last update date of the episode.
113
+
*`name` (String): The name of the character.
114
+
*`role` (String): The occupation or role.
115
+
*`book` (String): Primary book appearance.
116
+
*`description` (String): Brief biography.
117
+
*`status` (String): Current status (e.g., Alive, Deceased).
118
+
119
+
## Place Structure (places.piml)
120
+
121
+
```piml
122
+
(places)
123
+
> (place)
124
+
(name) Blade's Clinic
125
+
(type) Medical Facility
126
+
(book) The Tales of Doctor Blade
127
+
(description) A sanctuary of white marble...
128
+
(status) Active
129
+
```
130
+
131
+
### Place Object Properties:
132
+
133
+
*`name` (String): The name of the location.
134
+
*`type` (String): The type of place (e.g., Tavern, City).
135
+
*`book` (String): The book where it is featured.
136
+
*`description` (String): Description of the atmosphere.
137
+
*`status` (String): Current status (e.g., Active, Destroyed).
138
+
139
+
## Item Structure (_items_/items.piml)
140
+
141
+
```piml
142
+
(items)
143
+
> (item)
144
+
(name) Alilberry Extract
145
+
(type) Potion / Poison
146
+
(book) The Tales of Doctor Blade
147
+
(description) A pearlescent grey mist...
148
+
(owner) Doctor Blade
149
+
(image) /stories/_items_/alilberry_extract.png
150
+
```
151
+
152
+
### Item Object Properties:
109
153
110
-
This structure allows the application to dynamically load and display story content, organizing it into books and episodes with associated metadata, and also provides a central place for author information.
154
+
*`name` (String): The name of the artifact or item.
155
+
*`type` (String): The classification (e.g., Weapon, Tool, Potion).
156
+
*`book` (String): The book where it first appears.
157
+
*`description` (String): Detailed description of the item.
158
+
*`owner` (String): The character or entity that owns the item.
159
+
*`image` (String, Optional): Relative path to the item's image file.
(description) A pearlescent grey mist derived from a rare herb, processed through dwarven glass and sung over by a mute bard. One drop cures; two drops kill.
7
+
(owner) Doctor Blade
8
+
(image) /stories/_items_/alilberry_extract.png
9
+
10
+
> (item)
11
+
(name) Soul of Viyu
12
+
(type) Artifact
13
+
(book) The Broken Path
14
+
(description) A fragment of an ancient soul, pulsating with a faint, rhythmic light. It whispers to those who hold it, promising power at a terrible cost.
Klinik her zaman sessizdi, beyaz mermerin ve hafif lavanta kokusunun hakim olduğu bir sığınak. Hastalar Doktor Blade'e sadece efsanevi yeteneği için değil, aynı zamanda gizliliği için de gelirlerdi. O, iyileştirilemezi iyileştirebilen, kemiği ve eti neredeyse ilahi bir dokunuşla birbirine örebilen adamdı. Ama Doktor Blade'in bir sırrı vardı, hem de çok kazançlı bir sır.
2
+
3
+
Ona "Alilberry Damlası" diyordu.
4
+
5
+
Eğitimsiz bir göze göre, Alilberry sinirleri yatıştırmak için çayda kullanılan nadir, zararsız bir ottu. Konsantre dozlarda, cüce camından yapılmış bir imbikten geçirilip dilsiz bir ozan tarafından üzerine şarkılar söylendiğinde, tamamen başka bir şeye dönüşüyordu. Mükemmel bir şifaya. Ve mükemmel bir silaha.
6
+
7
+
Blade gözlüklerini düzeltti, masada inleyen tüccara bakarak. "Gut korkunç bir şey, Efendi Vorn," dedi, sesi cilalı taş kadar pürüzsüzdü. "Ama bende çaresi var."
8
+
9
+
Küçük bir şişenin mantarını açtı. İçindeki sıvı sedefli gri bir sisle dönüyordu. Bir damla gutu anında iyileştirir, ürik asidi kandan sihir gibi temizlerdi. İki damla... eh, iki damla da aynısını yapardı, ama hastanın kalbi, klinikten ayrıldıktan yaklaşık bir saat sonra nazikçe, sessizce dururdu. Uykularında huzurlu bir geçiş. Doğal nedenler.
10
+
11
+
Kontrat dün gelmişti. Rakip bir lonca Vorn'un gitmesini istiyordu. Ödeme yüklüydü, Blade'in Aşağı Bölge'de gizlice desteklediği yetimhaneyi finanse etmeye yetecek kadardı. Ahlak kaygan bir zemindi, dedi Blade kendine. Vorn bir hilekâr ve köle tüccarıydı. O olmadan dünya daha temiz olacaktı.
12
+
13
+
"Açın ağzınızı," diye talimat verdi Blade.
14
+
15
+
Şişeyi eğdi. Bir damla düştü, Vorn'un diline yumuşak bir tıslamayla indi. Tüccarın yüzündeki rahatlama anındaydı.
16
+
17
+
"Mucizevi!" diye nefes nefese kaldı Vorn, doğrulurken. "Acı... gitti!"
18
+
19
+
"Memnun oldum," diye gülümsedi Blade, küçük, sıkı bir ifadeyle. "Ancak, bu kadar ilerlemiş bir vaka için, geri dönmemesini sağlamak adına bir takviye gereklidir."
20
+
21
+
"Her şey, Doktor! Her şey!"
22
+
23
+
Blade şişeyi tekrar eğdi. İlkine eşdeğer ikinci bir damla düştü.
24
+
25
+
"İşte," dedi Blade, şişeyi mantarlayarak. "İyileştiniz, Efendi Vorn. Eve gidin. Dinlenin. Önünüzde uzun bir uyku var."
26
+
27
+
Tüccar aceleyle dışarı çıkıp masaya ağır bir kese altın bırakırken, Doktor Blade şişeyi aldı ve ışığa tuttu. İçindeki sis dönüyor, kapana kısılmış bir ruh gibi dans ediyordu. O bir canavar değildi, diye mantık yürüttü. O sadece her rahatsızlık için tam dozajı bilen bir doktordu. Yaşam rahatsızlığı için bile.
0 commit comments