diff --git a/README.md b/README.md index 3c0e705..d5012d5 100644 --- a/README.md +++ b/README.md @@ -58,37 +58,37 @@ A directory of a play. A dance coordinator/director who is a lech. -## Tilbin +### Tilbin Leader of the gang. Likes to wear a duster and a wide-brimmed hat. Has a guitar. Most of the fire powers are activated through his riffs. -## Mayforn +### Mayforn His hands ignited into white flames as he threw himself in front of the stranger. As soon as he landed, he brought his hands together. Has a large pack over his shoulders. Strengthens flames and heat. -## Gabaw +### Gabaw The mechanic. Got fired from Dorsen. He can punch the ground and cause it to rupture and bend. -## City Guard +### City Guard "Dame Kabisal?" One of the city guards came up. It was a hawk-faced woman that looked like she couldn't smile if her life dependent on it. She held a clipboard in her right hand. -## Kamel da Kasin +### Kamel da Kasin fire investigator -## Tirain Valos +### Tirain Valos Hawk-faced guard. -## Cobbler's End +### Cobbler's End -## New Brunil +### New Brunil Larger city. -## Palanis, Roldal, Gainsburg, and Gamis +### Palanis, Roldal, Gainsburg, and Gamis Smaller village between X and New Brunil. @@ -96,15 +96,15 @@ Smaller village between X and New Brunil. Gainsburg is where the first time she played for money. 15 miles from home. -# Penesol (Her home town) +### Penesol (Her home town) -# Fanasis Village +### Fanasis Village -# Little Rock +### Little Rock Geb's home. -# Miska atoi pin Strali (Mis) +### Miska atoi pin Strali (Mis) Blacksmith. @@ -112,4 +112,10 @@ She was slender with startlingly golden hair. Her waist had an almost perfect ta Linsan caught sight of Miska's hands. Like her cousin and Old Gab, she had intricate designs tattooed along her hands up to her elbows. The material of her shirt, above where the corset bound her, gave a hint that there were more tattoos along her sternum and belly. -# Calibo atoi idu Oparil (Cal) +### Calibo atoi idu Oparil (Cal) + +# Quotes + +> What secrets lie underneath that man's dress, hidden in the private shadows of his body only to be hinted at as he swirls across the room in glorious finery? I seek the answers, not brazen like the warrior I am, but as a thief stealing glances between the empty words with others. --- _One Mistaken Night_ (Act 1, Scene 8) + +Brook had combined the remains of the three tea cups into a single one and had poured in enough sugar that it splashed with every step. She moved with a smoothness that hinted that she had done the same many times over the years. diff --git a/chapters/chapter-32.md b/chapters/chapter-32.md index 3d751a8..b3a9517 100644 --- a/chapters/chapter-32.md +++ b/chapters/chapter-32.md @@ -8,7 +8,7 @@ summary: > > Combat magic is shaped by the one manifesting the power which means personality, history, and themes are all reflected in the energy's appearance. --- _Crystal Spheres Techniques_ -As the people in the village said, the bird tree was impossible to miss. Hundreds of birds fluttered on leafless branches that looked more like claws than something from a tree. With all the beating wings, Linsan half expected the roots to lurch out of the ground and the entire tree to sail into the sky. +As the people in the village said, the tree was impossible to miss. Hundreds of birds fluttered on leafless branches that looked more like claws than something growing from the earth. With all the beating wings, Linsan half expected the roots to lurch out of the ground and the entire tree to sail into the sky. She clutched her violin case and stared at the tree. She couldn't tell if it was dead or twisted because of some magic spell, but nothing about the tree made her comfortable. @@ -24,7 +24,7 @@ Linsan braced herself and watched for the turn-off. She spotted it after only a Brook barely slowed down as she spun the buggy. The back end fish-tailed violently and the wheels kicked up a cloud of dirt. -Linsan barely had enough time to clamp her hands over the drinks and brace herself. The pressure drove her back into the seat as the vehicle launched itself down the bumping road. As they did, she tried to prepare herself for a fight. It was hopeless to even imagine how it would go, they were going blindly into a battle with nothing more than untried skills and a few hours of practice. +Linsan barely had enough time to clamp her hands over the drinks and brace herself. The pressure drove her back into the seat as the vehicle launched itself down the bumping road. As they did, she tried to prepare herself for a fight. It was hopeless to even imagine how it would go, they were going blindly into a battle with nothing more than untried skills, a few hours of practice, and dreams of success. She glanced at Brook. Seeing the dark-haired beauty's face twisted in a scowl, Linsan knew that she wouldn't be able to stop Brook either. They were committed to getting the murderers and recovering the violin. @@ -42,11 +42,11 @@ It took a few minutes before they saw the blue barns along the horizon. Linsan s Then she caught sight of the main village roofs off to the side. It was pathetically close, less than a few hundred feet. "Damn the Couple!" -"What!?" +"What!?" Brook glanced to the side but then snapped her head forward to keep the car on the road. -"That's the village. It's right next door. Those old bastards sent us the long way around---" +"That's the village! It's right next door. Those old bastards sent us the long way around---" -Brook slammed on the accelerator and the engine's roar became a high-pitched scream. Needles on gauges rose rapidly, dipping into the bright yellow areas that warned of danger. +Brook slammed on the accelerator and the engine's roar became a high-pitched scream. Needles on gauges rose rapidly, dipping into the bright yellow areas and then into the red. Behind them, something began to whistle and a deep rattling shook the vehicle. @@ -62,7 +62,7 @@ Brook grinned, her eyes scanning back and forth on the road. Her dress ruffles f "_My Lady of the---_" -"Yes!" Brook rolled her eyes and smacking the steering. "Is the name that important? How can you remember all that?" +"Yes!" Brook rolled her eyes and smacking the steering. "Is the name that important right now!? How can you remember all that?" Linsan grinned. "Been living it all my life. A thousands songs are stuck in my head." @@ -76,11 +76,11 @@ Linsan threw herself into the rapid bars of _My Lady of the Dark Unders_, a drin The car burst out of the tree line. They were still a quarter mile away. -Ahead of them, she caught sight of the man wearing a duster and the wide-brimmed hat. It was Tilbin, the leader of the killers and thieves. Even from a distance, she could see his guitar swung over his shoulder as he rapidly threw what appeared to be bags into the back of a vehicle of his own. +Ahead of them, she caught sight of the man wearing a duster and the wide-brimmed hat. It was Tilbin, the leader of the trio of killers. Even from a distance, she could see his guitar swung over his shoulder as he rapidly threw what appeared to be bags into the back of a vehicle of his own. Compared to Brook's Glasscoaster, Dukan's Black Thunder was a startling different vehicle. It looked low to the ground with a buggy near the back third. Mechanical ports and gears shone along the entire length of the trunk. Nestled between fat tires, the chassis looked more like a cat stretching out with its rear rising up where Tilbin threw possessions into the open trunk. -Another man stood up from the front of the car where he had been peering under one of the hoods. He bolted straight and then turned to the barns. He waved his arms. +Another man leaned on the front of the car where he had been peering under one of the hoods. He bolted to his feet and then turned to the barns. He waved his arms. Judging from the way Tilbin responded, he was yelling but Linsan couldn't hear from the distance or the roar of the Glasscoaster. @@ -114,7 +114,7 @@ Brook smiled and her tapping grew more confident. In the briefest of moments, Linsan heard the beat of the song match the throb of the engine. -"Brace." +"Brace!" screamed Brook. The buggy slammed into a fence surrounding the yard with the Black Thunder. The entire chassis shuddered violently. It bounced hard on the thick tires. @@ -122,7 +122,7 @@ Brook twisted the steering wheel hard to the side. Her feet slammed against the The pressure of their speed shifted and drove Linsan against the car door. She let out a cry of surprise as she slammed one hand against the frame and the other to the violin. The sound faded. -The buggy twisted to the side, then began to scream as it slid sideways toward the front of the Black Thunder. +The buggy twisted to the side, then the engine began to scream as they slid sideways toward the front of the Black Thunder. Just as the two cars met, a powerful boom exploded from the back of the Black Thunder. @@ -158,7 +158,7 @@ The air around him ignited into flames. The musical notes hung in the air for a "Got it!" Linsan accelerated her own play, shaping the notes of her own song into tendrils of force. The rippling of song and magic snapped forward and twisted, directing the fireballs to the side where they exploded into the field. A crescendo came up. Knowing the beat after it, Linsan formed it into a sharp point of pure energies. -Right at her moment, Brook released the steering wheel and slammed her hands together. The concussive blast exploded from her palms. It shattered the remains of the front windshield and threw twisted metal and glass along with Linsan's magical attack. +Right at her moment, Brook released the steering wheel and slammed her hands together. The concussive blast exploded from her palms. It blasted the remains of the front windshield and threw twisted metal and glass along with Linsan's magical attack. Tilbin stumbled back as he was peppered by the attack. @@ -166,7 +166,7 @@ Brook grabbed the steering wheel and wrestled the car back underneath control Linsan grinned at their triumph. -He came back without his cocky grin. With a glare, he slammed through riffs of his own. More fireballs formed around him but they didn't shoot forward. +He came back without his cocky grin and blood dripping down the side of his face. With a glare, his hands raced along the strings, sending off riffs faster than she could. More fireballs formed around him but they didn't shoot forward. Linsan worried as she tried to catch his song. It sounded familiar, but the instrument and the wind made it difficult to identify. She focused on her song and used it to form protective energies in front of them. @@ -178,7 +178,7 @@ She focused on turning the defensive energies into another attack. "Three. Two." Tilbin grinned and his teeth shone. He punched down on his strings. -Mayforn surged up from the driver's seat. The Black Thunder swayed back and forth. He slapped his hands together and then threw them apart. As he did, a barely perceptible wave of force slammed into the fireballs. +Mayforn surged up from the driver's seat. The Black Thunder swayed back and forth. He slapped his hands together and then threw them apart. As he did, a barely perceptible wave of force struck the fireballs. Accelerated by Mayforn's magic, the fireballs shot out in all directions faster than Linsan could track. They blossomed out before streaking in toward the Glasscoaster from too many angles to redirect. @@ -232,7 +232,7 @@ Linsan let out a cry and buried her face into Brook's dress. She clamped her eye Something punched her from above. A powerful boom drove the buggy into the ground. Linsan could feel the clods of dirt and rocks scraping along the undercarriage. Then it bounced back up and there was nothing but silence for a single terrible moment before it crashed back into the ground. -Brook grabbed the steering wheel and pulled herself up. With her other hand, she grabbed Linsan's hair and pulled her out of her dresses. "Get playing." +Brook grabbed the steering wheel and pulled herself up. With her other hand, she grabbed Linsan's hair and pulled her out of her clothes. "Get playing!" Linsan looked around with curiosity and fear. Then she realized there was nothing above her, no metal or wood. Just bright blue sky creeping past her. @@ -316,6 +316,6 @@ The ground in a hundred feet behind them shot straight up in a column of flame a A sickening feeling caught her as the world stopped, a brutal silence. -Then the buggy fell. +Then the buggy plunged into into the crater with brutal efficiency. Linsan only had time to wrap her body around the Sterlig and grab Brook's hand before they crashed to earth. diff --git a/chapters/chapter-33.md b/chapters/chapter-33.md index db0074e..554b848 100644 --- a/chapters/chapter-33.md +++ b/chapters/chapter-33.md @@ -52,7 +52,7 @@ Brook flinched. "S-Sorry. I wanted to see how badly you're hurt." -Without looking down, Brook gestured to her other side where strips of her dress had been bundled up. The fabric had been stained and soaked. Then she lifted her injured leg and flexed it. The heel on her shoe creaked and swung independently with only two nails keeping it in place. +Without looking down, Brook gestured to her other side where strips of her dress had been bundled up. The fabric had been stained and soaked crimson. Then she lifted her injured leg and flexed it. The heel on her shoe creaked and swung independently with only two nails keeping it in place. "Good, no broken bones. Nothing else?" @@ -84,7 +84,11 @@ Linsan stroked Brook's hair. "It's okay." "We'll find them." Linsan sniffed on the edge of tears herself. "We know where they live. Even if we have to stay here and watch the place, we can wait. We aren't going to give up." -Brook shook her head but didn't look up. "They'll sell your violin." +The words between the faltered and Linsan kept holding Brook until the shuddering stopped. + +Then silence, punctuated by sniffs and tears. + +Finally, Brook spoke. "They'll sell your violin." Freezing for a second, Linsan thought about Palisis. There was no question the murderers were going to sell it now. She looked down. "It's just a violin." @@ -112,4 +116,4 @@ Linsan blinked past her own tears. "I don't know yet. But we will. Somehow." Brook took a deep breath and then buried her face into Linsan's shoulder again. Her sobs wracked her body but the sharpness had faded. -Unable to do anything else, Linsan held her friend and said anything more. +Unable to do anything else, Linsan held her friend and said nothing more. diff --git a/chapters/chapter-34.md b/chapters/chapter-34.md index 7b06024..0cf1a5c 100644 --- a/chapters/chapter-34.md +++ b/chapters/chapter-34.md @@ -90,7 +90,7 @@ Even though she was confused and there were no songs or plays she could use to s "It doesn't mean anything, don't ask." -Miska turned away, her hands still in her pockets and walked over the edge fo the crater. In the last few hours, most of the flames and smoke had faded. She leaned over and then shook her head. "Gab again?" +Miska turned away, her hands still in her pockets and walked over the edge of the crater. In the last few hours, most of the flames and smoke had faded. She leaned over and then shook her head. "Gab again?" "Looks like it," Cal said as he joined her. "What happened, Music Girl?" @@ -106,15 +106,15 @@ Linsan started to ask then realized what she was talking about. "The tree with a "Bad luck, no surprise you ended up here." -Calibo leaned over. "That tree gives bad luck for strangers who pass it. Until sunset, things won't go your way." +Calibo leaned over. "That tree curses strangers who pass it. Until sunset, things won't go your way." It was Brook's turn to snort. Miska leaned over, sticking her rear out as she did. -Brook's eyes flickered down. +Brook's eyes flickered down toward it. Then she looked away sharply. -"Looks like he tried to set this thing on fire." +"Looks like he tried to set this thing on fire," said Miska. Linsan turned back to the damage. She sighed and nodded. "Fire hammer attack of some sort. He brought it down on the hood and we fell in. Broke my bow." @@ -122,11 +122,11 @@ Linsan turned back to the damage. She sighed and nodded. "Fire hammer attack of "Yeah, sorry. The car is also ruined." -A smile crossed Miska's face. "No, not ruined. Just looks like the metal is twisted." Then she jumped into the pit to land on the hood. +A smile crossed Miska's face. "No, not ruined. Just looks like the metal is twisted." Then she jumped into the pit to land on the hood. There was a powerful bang when she hit and the hood deformed underneath her weight. -There was a powerful bang when she hit and the hood deformed underneath her weight. Finally, she pulled her tattooed hands from her pockets and slid down the rest of the way to start inspecting the damage. +Linsan was impressed how easily she moved while wearing a corset. -"What happened to the roof?" +Miska pulled her tattooed hands from her pockets and slid down the rest of the way to the smoldering ground to start inspecting the damage. "What happened to the roof?" "Brook removed it." @@ -146,7 +146,7 @@ Calibo chuckled. "You weren't toying with them, were you?" Linsan tensed. -Calibo chuckled. "We all heard you practice. Butterfly kisses and roses don't make that kind of impact with the ground." As to make a point, he slammed his foot into the ground and the soil shuddered. +Calibo chuckled. "We all heard you practice. Butterfly kisses and roses don't make shake the ground in the village. You intended to hurt those men." As to make a point, he slammed his foot into the ground and the soil shuddered. "Careful, Cal!" snapped Miska. "I don't want to be buried." @@ -160,11 +160,11 @@ Linsan nodded. "Her father," she whispered. "They were robbing my family and kil "We thought we had a chance." -Calibo patted Linsan on the back. "You were damn close. That loud monster they were driving was on its last legs. I'll be surprised if it takes it more than a few leagues before giving up." +Calibo patted Linsan on the back. "You were damn close. That loud monster they were driving was on its last legs and leaking oil. I'll be surprised if it takes it more than a few leagues before giving up." Hope blossomed. "They might be in town?" -"No chance. They wouldn't be caught dead, but they are going to be stuck for a few days down the road repairing their damage. If we can get you back on the road and give you some help, maybe you can succeed." +"No chance. They wouldn't be caught dead near Miska, but they are going to be stuck for a few days down the road repairing their damage. If we can get you back on the road and give you some help, maybe you can catch up." Linsan stared at him, her jaw slack. @@ -174,7 +174,7 @@ Miska glared up at him. "I don't know, Bobo," she spat out the name bitterly. "B "Ah, blessed soil, that means I'm not going home tonight?" -Miska grinned with just a hint of malice. "You be nice to the _jinko_, you suffer. Plus you'll be paying for the iron work." She followed by something in a different language, a foreign tongue that sounded bitter and mocking. +Miska grinned with just a hint of malice. "You be nice to the _jinko_, you suffer. Plus one of you has to pay for the iron work." She followed by something in a different language, a foreign tongue that sounded bitter and mocking. He shook his head. Then he pointed at her. "Be nice, _Achil deablo_ made your grandmother smile." @@ -182,10 +182,22 @@ He shook his head. Then he pointed at her. "Be nice, _Achil deablo_ made your gr Linsan worried her lip. "What can I do?" -"Just stay out of our way, Music Girl. Our bones are of the earth and we know how to move among the stones." Calibo said before turning and heading to the wagon to retrieve heavy ropes and bales of straw. +"Just stay out of our way, Music Girl. Our bones are of the earth and we know how to move among the stones." Calibo said before turning and heading to the wagon. + +Brook came up to Linsan. "How much is this going to cost?" + +"Nothing. You stop those men and we'll call it an even trade." + +She shook her head. "No, I can't---" + +Calibo looked at her. "Nothing." + +"But---" + +"Nothing," he said in a tone that allowed no argument. When Brook sighed, he reached in and grabbed a large coil of heavy rope and pulleys. From inside the hole, there was a groan of metal. Linsan peered down to see Miska lifting up the front of the buggy with one hand. The weight of the vehicle drover Miska's feet deep into the earth but it didn't look like she strained with the effort to kick one foot free and roll a large rock underneath the corner of the Glasscoaster to brace it. On the edge of her vision, Linsan watched as Calibo picked up the end of the wagon that easily weighed hundreds of pounds. Without even a grunt, he dragged it until it lined up with the edge of the crater. -She decided to stay out of their way. +Linsan decided to stay out of their way and tugged Brook to the side. diff --git a/chapters/chapter-35.md b/chapters/chapter-35.md index acb8cf4..6c84d36 100644 --- a/chapters/chapter-35.md +++ b/chapters/chapter-35.md @@ -32,7 +32,7 @@ Miska shrugged. "No one I wouldn't have kicked out of my bed for you." "You know what they say about cold _masago_." -Rolling her head to give her cousin a sardonic look, Miska said, "If Gab made it, finish the bowl at the latrine?" +Rolling her head to give her cousin a sardonic look, Miska said, "If Gab made it, remember to finish the bowl at the latrine." Calibo laughed. "She isn't that bad of a cook. We all survived her meals for years. Besides, she puts all of her sweetness in her deserts. Oh," he said with a groan, "I could use a bowl of _onigi_ right now." @@ -58,17 +58,17 @@ Exhausted and aching, the two women backed away as the cousins maneuvered the wa "Let's get rooms for the night. Then come back and see if we can help." -"Good idea," Brook said. The defeated tone in her voice was heartbreaking. Her hands shook as she opened up the boot of her car and fumbled through the cases before pulling out a mid-sized one. She reached for another one but then shook her head. +"Good idea," Brook said. The defeated tone in her voice was heartbreaking. Her hands shook as she opened up the boot of her car and fumbled through the cases before pulling out a mid-sized case. She reached for another one but then shook her head. "Are you sure?" asked Linsan as she gathered her relatively smaller bag from the seat of the car. She took more time to pull out the violin case and cradled it in her arm instead of slinging it over her shoulder. -"You won't be able to do much at first," Miska called out. "Get some sleep, if you can, and find me in the morning." +"You won't be able to do much at first," Miska called out. "Get some sleep, if you can, and find me in the morning. I'll probably be in here." "Are rooms okay?" "Yes, but you should consider getting one for Bobo too since it will be too dark to make it home with a large pit on the road." -Calibo shook his head. "No, I'll sleep in the wagon. Don't worry about me, the inn is going to be packed with the game. It sounds like Saint Gaveil won so they are going to be drinking well past midnight. I'm still being held in the firepit for last night, so I'd also rather not risk being banned for life." +Calibo shook his head. "No, I'll sleep in the wagon. Don't worry about me, the inn is going to be packed with the game. It sounds like Saint Gaveil won so they are going to be drinking well past midnight. I'm still being held in the fire for last night, so I'd also rather not risk being banned for life." Linsan frowned. "I'm sure---" @@ -84,7 +84,7 @@ Har's eyes opened wide at the sight of them. "What happened?" he bellowed to be "Fireball!" Linsan responded just as loudly. "Any chance of a room and a bath?" -Har's pained look didn't need to be told. "We're completely ful." +Har's pained look didn't need to be told. "We're completely full." Brook leaned over. "Can I ask for one?" @@ -94,13 +94,13 @@ Har frowned and then pointed to a large group that was slightly less enthusiasti A half-drunk man looked up. "What you want, Dresses?" -Brook seemed to ignore the insult. "How much for a room?" +Brook seemed to ignore the insult. "How much for one of your rooms?" They laughed. -Linsan looked around. There was no chance she could busk with this crowd. They were more interesting the game they had returned from, not anything she could play. +Linsan looked around. There was no chance she could busk with this crowd. They were more interested the game they had returned from and would make poor pickings. -"Two hundred crowns for two rooms!" +Brook's voice sharpened. "Two hundred crowns for two rooms?" Linsan froze and then stared at Brook. That was easily four times what any of them had paid. @@ -120,7 +120,7 @@ Someone kicked him. He glared at them and then back. "Fine, two-fifty." "Cash, Dresses, right---" -Brook slapped a pile of currency cards on the table. "Key, now," she snapped. +Brook slapped a pile of currency cards on the table. "Key, now," she snapped with her hand open. He started for the money. @@ -128,11 +128,11 @@ He started for the money. There was a brief moment of quiet. -Linsan cringed at being the center of attention, or at lest next to Brook. +Linsan cringed at being the center of attention, or at least standing next to Brook. The other man dug into his pocket and pulled out a key. He started to hand it over, but then changed his mind. He snapped his fingers at one of his companions who fished out their own key and handed it over. -Brook took it, looked at the symbol engraved into the side, and then lifted her hand away from the cukdins. +Brook took it, looked at the symbol engraved into the side, and then lifted her hand away from the cukdins. The brightly color money spread out slightly. By the time she turned around, the money had been pocketed. "Come on, Lin, let's see about hot water. I need a bath." @@ -156,4 +156,4 @@ Brook sighed and dug into a small pocket in her dress. She pulled out a few gree Har swept the bar and pocketed the money. Then he dug into his own trousers to pull out a well-worn key. "You're in seven, I'm in one. I'll bring over some hot food, once I get a chance, and leave it by the door. You know where to draw water?" -When they both nodded, he smiled grimly. "Don't tarry, that's my room and I better not find you when I go in there." +When they both nodded, he smiled grimly. "Don't tarry, that's my room and I better not find you when I go in there. You look like good girls and I'd hate to throw you out." diff --git a/chapters/chapter-36.md b/chapters/chapter-36.md index 936566f..36b3e4f 100644 --- a/chapters/chapter-36.md +++ b/chapters/chapter-36.md @@ -8,15 +8,15 @@ summary: > > Why did I fell upon your arms? Was gravity dragging me down or your beauty tugging me beneath your sheets? I pride myself on being the stronger man, but in your presence, I am but the weakest. --- _One Mistaken Night_ (Act 2, Scene 1) -Still covered in soot and dust, Linsan was afraid to sit on the bed. If she did, she had no doubt she would be sleeping in a matter of seconds. It was also the one truly clean thing in the cramped room that Brook had paid too much money for. +Still covered in soot and dust, Linsan was afraid to sit on the bed. If she did, she had no doubt she would be ruining the blankets in a matter of seconds. It was also the one truly clean thing in the cramped room that Brook had paid too much money for. Two hundred and fifty crowns for a single room? That was far more than Linsan's father made in a month and Brook had slapped it down in a fit of rage and impatience. -She had to admit, having access to money, on the other hand, made life easier. Though, there was no money in the world that would bring Dukan back or return Palisis. Well, money would probably get Palisis back, but it would far more money than Brook had access to. +She had to admit, having access to money made life easier. Though, there was no money in the world that would bring Dukan to life or return Palisis. Well, money would probably get Palisis back, but it would far more money than Brook had access to. Linsan sighed and shook her head. She didn't know what she was doing at the moment, other than struggling with her skin crawling with disgust and the desperate need to sleep away the rest of the night. -She glanced at the bed. It was about the same as her bed at home, which was barely enough for her spread out. She couldn't even imagine how both Brook and her were going to sleep in it. +She glanced at the bed. It was about the same as her bed at home, which was barely enough for her to spread out. She couldn't even imagine how both Brook and her were going to sleep in it. For the countless time since entering the room, she considered sneaking out and taking up Calibo on his offer. Sleeping out in the air wouldn't be comfortable, but she had never shared a bed with anyone before and she had only her mother's plays and stories to fall back on. @@ -24,13 +24,13 @@ Somehow, she doubted sharing a bed with Brook would result in the romantic drama Exhaustion turned her chuckle into a giggle. Linsan blushed and covered her mouth until she could control herself. -She looked at the foot of the bed where Brook had put her traveling case. It took over much of the remaining space in the room but she didn't want to move it. Brook had left it open to reveal a neatly packed container with dividers separating bathing supplies, sleeping outfits, and even a morning dress. The corset that Brook had been wearing earlier hung off one edge from where she had tossed it. +She looked at the foot of the bed where Brook had put her traveling case. It took over much of the remaining space in the room but she didn't want to move it. Brook had left it open to reveal a neatly packed container with dividers separating bathing supplies, sleeping outfits, and even a pair of morning dresses. The corset that Brook had been wearing earlier hung off one edge from where she had tossed it. To Linsan, Brook's case looked more a case for the costumer, the woman who did makeup and hair for larger plays. It also smelled much the same, with multiple flowery perfumes filling the room. The source came from four bottles neatly tied to the side of a divider with ribbon. There were other containers with hair oils and lip waxes, various dishes of makeup, and even a small sewing kit. Linsan yawned and she glanced at the door. "Come on, I need a bath too." -She decided to distract herself by walking over to the case and looking over Brook's outfits. With the tips of her fingers, she teased up the top one to look at the one below. It had lace and embroidery on it, which surprised Linsan. She set it down before she noticed her fingers left a faint smear on the white fabric. +She decided to distract herself by walking over to the case and looking over Brook's outfits. Wiping her fingertips clear first, she teased up the top one to look at the one below. It had lace and embroidery on it, which surprised Linsan. She set it down before she noticed her fingers left a faint smear on the white fabric. Swearing to herself, she clasped her hands and looked over the rest of the case. The morning dress caught her attention. It was the plainest thing she had ever seen in Brook's outfits. Only a little embroidery but with no ruffles or lace. Compares to the frilly dress Brook had tossed behind the lid of the case, the morning dress would have been a far better choice for their fight. diff --git a/chapters/chapter-38.md b/chapters/chapter-38.md index 420682c..3b989c5 100644 --- a/chapters/chapter-38.md +++ b/chapters/chapter-38.md @@ -8,9 +8,9 @@ summary: > > As for being your lover, I'll be honored to take the job until you find another warrior who wields a sword as mighty as yours. --- _What Lurks at the Heart of the River Sin_ (Act 2, Scene 5) -For the first time in her life, Linsan woke up with the feeling of contentment. She took a deep breath and drank in the scents of perfumes and sex. It was a sweet smell, light. It brought a smile to her lips and she felt a welcoming warmth along her body at the memories the smells recalled. +For the first time in her life, Linsan woke up with the feeling of contentment. She took a deep breath and drank in the scents of perfumes and sex. It was a sweet smell, light and musky. It brought a smile to her lips and she felt a welcoming warmth along her body at the memories the smells recalled. -It was the first time she ever been with anyone sexually. Her mother's plays talked about it constantly, but Linsan had never felt the urge or desire. Male or female, no one had ever "ignited a flame" or brought "a flutter to her breath" which happened constantly in the plays. In fact, if Brook had not started the kiss, Linsan may have never even considered the possibly. +It was the first time she ever been with anyone sexually. Her mother's plays talked about it constantly, but Linsan had never felt the urge or desire. Male or female, no one had ever "ignited a flame" or brought "a flutter to her breath" which happened constantly in the plays. In fact, if it had not been for Brook, Linsan may have never even considered the possibly. Linsan was happy Brook made the first move. She smiled to herself, lifted her head, and opened her eyes. The cramped bed was otherwise empty except for twisted blankets and pulled sheets. A few of Brook's dark hairs curled delicately on the pillow and there was a faint smear of hair oil on the edge. @@ -20,17 +20,15 @@ The door rattled for a moment before it opened. Linsan stiffened and straightened, pulling the thin material to her chest. -Brook looked at her and smiled broadly. There was no hesitation, no pulling back, no flickering anger. For the first time, Linsan realized she was seeing true happiness in her former enemy. Holding up a tray of steaming food and three mugs, Brook said, "Good morning." +Brook looked at her and smiled broadly. There was no hesitation, no pulling back, no flickering anger. For the first time, Linsan realized she was seeing true happiness in her former nemesis. Holding up a tray of steaming food and three mugs, Brook said, "Good morning." Even her voice was cheerful. -"Good morning. Thank you." +Linsan grinned back with the fading pleasures tickling the back of her thoughts. "Good morning. Thank you." -"They didn't have much to drink, just cider and tea. I got you a tea and breakfast. It looks like eggs, potatoes, and some sort of purple vegetables." +"They didn't have much to drink, just cider and tea. I got you a tea and breakfast. It looks like eggs, potatoes, and some purple vegetables that I'm sure aren't poisonous." -Linsan thanked her. Brook held up the tray for a moment and then brought it over to the suitcase. With Linsan's help, she closed the lid and set the tray on top of it. She hesitated with the last step, her hands hovering over the surface for a moment. Then, she straightened slowly, turning until she faced Linsan. - -"Um, Lin?" +Linsan thanked her. Brook held up the tray for a moment and then brought it over to the suitcase. With Linsan's help, she closed the lid and set the tray on top of it. She hesitated with the last step, her hands hovering over the surface for a moment. Then, she straightened slowly, turning until she faced Linsan. "Um, Lin?" "Yes?" @@ -50,7 +48,7 @@ Linsan reached out with her hand. Brook took it with her own gloved hand. Her hand was shaking and she griped Linsan tightly. "Are we... are we still enemies?" -Not expecting the question, Linsan could only laugh. "No, Brook, we aren't enemies." She giggled. "I don't think we've been that way for quite a while." +Not expecting the question, Linsan could only laugh. "No, Brook, we aren't enemies." She giggled. "I meant that last night. I don't think we've been that way for quite a while." "When?" @@ -66,7 +64,7 @@ She gestured to the bed with her chin and then to where Linsan had her other han Linsan looked down at her other hand. She didn't have an answer herself. Everything was new to her, terrifying and excitedly new. "What do you want to be?" -Brook looked away as she tightened her grip. "I don't know. I didn't even know that this was possible until years ago. Remember when we had that big fight? You limped home. That was the day I fought out that your mother had a wife first." +Brook looked away as she tightened her grip. "I don't know. I didn't even know that this was possible until years ago. Remember when we had that big fight? You limped home. That was the day I found out that your mother had a wife first." Linsan thought about Marin. She would never meet her mother's first wife nor the woman that Marin would marry later, Junith. Learning about the relationship was a revelation to both Linsan and Brook that day. "I was more surprised my father's first wife married my mother's. How did that work out?" @@ -80,7 +78,7 @@ Linsan smiled and reached down to kiss the hands clasping her own. The memories "Always fancied boys?" -"No," Linsan said with a shrug. "Didn't really think about it?" +"No," Linsan said with a shrug. "I guess... I didn't really think about it?" Brook's lips tightened. "Didn't you think I was pretty?" @@ -94,7 +92,11 @@ Brook smiled, and then she let out a little snort. "That's a quote, isn't it?" "Yes.... from _What Lurks at the Heart of the River Sin_." -Brook's shoulders shook with her laughter. "Oh, how could you? Even I know that play. And that was the worst line in it! How could you?" +Brook's lips tightened. + +Linsan cringed, afraid she said the wrong thing. + +Then a smirk. A snort before Brook's shoulders shook with her laughter. "Oh, how could you use that line? Even I know that play. And that was the worst line in it! How could you?" Linsan smiled bashfully. "This is all new to me. I don't know what to do, what to say." @@ -104,7 +106,7 @@ Another line came up. Linsan leaned forward. "We will always be friends, that pa Brook smiled, her eyes shimmering. She obviously never been to a showing of _Haston and Grail_. -Linsan grinned as another line came up from _What Lurks at the Heart of the River Sin_. It was terrible but playful. "As for being your lover, I'll be honored to take the job---" +Linsan grinned as another line came up from _What Lurks at the Heart of the River Sin_. It was terribly written but playful in the right places. "As for being your lover, I'll be honored to take the job---" Brook's eyes softened and she leaned forward to kiss Linsan. diff --git a/chapters/chapter-39.md b/chapters/chapter-39.md index 91d9de6..71c6250 100644 --- a/chapters/chapter-39.md +++ b/chapters/chapter-39.md @@ -1,17 +1,14 @@ --- title: Estimation -teaser: > - Hand-in-hand, Linsan and Brook return to the smithy to find out how much damage was done to the Glasscoaster. -summary: > +teaser: &teaser > Hand-in-hand, Linsan and Brook return to the smithy to find out how much damage was done to the Glasscoaster. +summary: *teaser --- > Beyond the basics of blacksmithing, the skill to do detailed repairs was rare. This ensured the prices remained high for many years after auto-drivers took to the roads. --- Padid Has-Glorian, _Early Years of the Auto-Drivers_ An hour later, Linsan and Brook walked hand-in-hand from the public house and across the road. She couldn't see the buggy but she heard a steady banging from a hammer striking metal. -Brook had combined the remains of the three tea cups into a single one and had poured in enough sugar that it splashed with every step. She moved with a smoothness that hinted that she had done the same many times over the years. - No one else was moving about town. There was not even sign of the party from the previous night. Almost everyone had left before sunrise and returned to their homes for duties and jobs. The starkness of the abandoned village was overwhelming. @@ -24,23 +21,23 @@ Linsan looked at her worriedly. He shrugged, then hopped down. Like his cousin, the ground shook from the impact. "You didn't come back to the wagon or head over to cousin's, so I hoped you found yourselves room." -"Oh. We did. It was a pleasant night." Brook's tone softened and she squeezed Linsan's hand. Sharing a smile, she gestured to the entrance of the smithy. "Is she working on my Glasscoaster?" +"Oh." Brook's grip relaxed. "We did. It was a pleasant night." Her tone softened and she squeezed Linsan's hand. Sharing a smile, she gestured to the entrance of the smithy. "Is she working on my Glasscoaster?" "Head on it, it's safe if she isn't banging on things." Linsan spoke up. "What are the planks for?" -"I figured I'd build a bridge over that hole those assholes made. Or least make something to warn other wagons before they fall in." +"I figured I'd build a bridge over that hole those assholes made. Or least make something to warn other wagons before they fall in. You folks with combat arts don't always think about the damage left behind your fights." With a blush, Linsan looked at it. "Sorry, I didn't mean to do that." -He shrugged. "It wasn't your fault they decided to start killing and stealing. You weren't the one that put them in Greol's barn that night. You weren't the reason for who they are. You were trying to do the right thing." +He shrugged. "It wasn't your fault they decided to start killing and stealing. You weren't the one that put them in Greol's barn that night. You weren't the reason for who they are." With a groan, Calibo arched his back. "No, you were trying to do the right thing. And, if you happened to get them tied up, I suspect you wouldn't be thinking about cutting throats, right?" Nausea rose up, choking Linsan. She had not considered what would happen if she managed to stun them, other than a vague idea of finding authorities. She held up and her hand and shook her head. "No, no! I wouldn't do that." -"Well, then I don't blame you for a hole in the road," Calibo said with a smile. +"Well, then I won't blame you for a hole in the road," Calibo said with a smile. "I'm a man of earth, I can patch her wounds with a smile." Brook tugged on Linsan's hands. @@ -52,7 +49,7 @@ Brook looked at the wagon and then to the blacksmith. She whispered back, "Pleas Brook nodded and whispered thanks. -Linsan held up her hand. "Cal, mind if I help you? I can't lift much, but I helped make that whole. But I want to see the buggy first." +Linsan held up her hand. "Cal, mind if I help you? I can't lift much, but I helped make that hole. But I want to see the buggy first." Brook stepped toward the forge. @@ -60,7 +57,7 @@ Calibo grunted and shook his head again. "It's going to take me hours to finish "Are you sure?" -"Yes. Why don't you see if cousin needs your help and then maybe work on fixing your bow? It sounds like you'll need that if you're going to keep going." +"Yes. Why don't you see if Miska needs your help and then maybe work on fixing your bow? It sounds like you'll need that if you're going to keep going." The sick feeling from before rose up. In the rush of sex and emotions, she had forgotten that her bow had been cracked. "Sorry... thank you." @@ -78,17 +75,17 @@ Brook leaned over. "Is she...?" Miska slammed her hand down again, flattening the metal against her thigh. -Linsan shook her head in amusement. "Fixing your buggy with her bare hands? Yes." +Linsan shook her head in amusement. "Fixing your buggy with her bare hands and against her thigh? Yes." Miska groaned and released the metal. Standing up, she ran her gloved hand across the side of her face. Sweat sluices off the leather and splashed down to soak her shirt. She caught sight of Linsan and Brook before doing a double take. A scowl etched across her face. "I didn't hear you come in." -"Y-You were pounding," Brook said in her quiet voice. Her eyes scanned up and down, taking in the look of Miska with more than a little desire. It was a new expression for Linsan, but there was no question that something about Miska that excited Brook. +"Y-You were pounding," Brook said in her quiet voice. Her eyes scanned up and down, taking in the look of Miska with more than a little desire. It was a new expression for Linsan, but there was no question that something about Miska that excited Brook. After the morning's revelation, Linsan wondered if their night together had opened new possibilities for her. Brook's eyes flickered to Linsan's and then a blush burned on her cheeks. She reached out and grabbed Linsan's hand and held it tight. Given what happened the night before, Linsan was surprised that she didn't feel a surge of jealousy or anger. The plays and stories said that it would happen, something that would eventually poison whatever had grown between her in Brook. -However, Linsan knew the plays by heart. She had seen how relationships had been ruined by those two emotions and misunderstanding. Her own earlier thoughts came back, was she in love with Brook or was it lust? Was it something forever or just two lovers in the same bed? She still didn't know, only that what feelings she had were not in any play that she had seen. +However, Linsan knew the plays by heart. She had seen how relationships had been ruined by those two emotions and misunderstanding. Her own earlier thoughts came back, was she in love with Brook or was it lust or just a moment in time? Was it something forever or just two lovers in the same bed? She still didn't know, only that what feelings she had were not in any play that she had seen. She clasped Brook's hand and gave her a comforting smile. They would figure it out, together. @@ -114,7 +111,7 @@ Linsan grinned. "That or repair my bow and figure out how we're going to defeat Brook's smile dropped instantly. -As much as Linsan wanted to crawl back into bed and enjoy some time with Brook, they had a duty before them. "We obviously can't reuse the same song from before, Til figured it on the second play. That means we need to learn and practice a lot more if we're going to have a chance." +As much as Linsan wanted to crawl back into bed and explore Brook's body, they had a duty before them. She took a deep breath. "Tonight? I promise. But Miska is right, we have to plan better. And that means learning new songs. We obviously can't reuse the same song from before, Til figured it on the second play. That means we need to learn and practice a lot more if we're going to have a chance." For a moment, Brook resisted. Then her shoulders slumped. "Very well. What do you need?" diff --git a/chapters/chapter-40.md b/chapters/chapter-40.md new file mode 100644 index 0000000..dbd07e9 --- /dev/null +++ b/chapters/chapter-40.md @@ -0,0 +1,72 @@ +--- +title: Centuries +teaser: &teaser > + Linsan and Brook talk as Linsan repairs her bow and Brook learns about how much the fire devastated the Sterlig name. +summary: *teaser +--- + +Linsan sat at one of the tables in the public house. An array of tools---borrowed from almost half the village---spread out around her as she worked a thin knife back and forth to create a channel for the spline. It was tedious and precise work but also something she had been doing since she was a little girl. + +"Why not just wrap it together?" Brook asked. + +"Because..." Linsan said in a distracted voice, "my dad would kill me if I didn't repair this right. And that type of fix would never last with the amount of playing I'm going to do." + +"And this will?" + +Linsan let out her breath and carefully tapped the opening to dislodge the wooden slivers. "Better than wrapping. I couldn't find a good spline to use, much of the wood around here is too brittle to use and that big tree that we found was too oily and crumbled." + +"Then couldn't you just replace it? You can carve a new one, right?" + +When she was a child, Linsan had asked the same question. She grinned at her father's lecture and tried to boil it down. "I could carve a new one in no time. It just wouldn't last long because a bow is more than shape, it's moisture, flexibility, and strength. Good bow wood is seasoned for half a century before---" + +"Half a century!?" + +Linsan looked up. "That's why the Sterlig family was devastated when we lost our forest. We had the right wood and we were curing generations of musical instruments when it went up in flames. People would pay us a century ahead to make the perfect instrument for their grandchildren and then..." She choked on the sad memories. Closing her eyes, she took a deep breath and set down the knife. "... when everything burned up, we had to pay back those commissions to avoid debt collectors. Our income and reputation were ruined forever in that night." + +Brook said nothing as she looked down at her tea. + +Linsan shook her head. "It will probably take us two or three centuries until our lands can grow good instrument wood again. And then another fifty before we can even start to make an instrument. After that... no one knows how long it would take before Sterlig meant something in the music world again." + +"Four hundred years... what do you?" + +"Learn as much as I can from my father and then teach my children in hopes they will pass it down before we forget everything. Have faith, I guess." + +She worked the slice open until it was ready for the spline. + +"I guess you'll have to find a husband then." Brook's voice was low. + +Even though her parents never brought it up, Linsan knew she was the last of her line. But, as she told Brook earlier, she had no interest in man or woman. She shrugged. "I don't have to birth a child to call it my own nor do I have to share blood to call someone family. I don't even need them to have my name to walk in our traditions." + +She looked up and smiled. "With those rules, I have plenty of time before I need to make a choice. I will not abandon you, Brook." + +Brook looked up and there was a brief flash of vulnerability, and then she smiled sadly. + +It took another half hour before Linsan dipped the spline in glue and then slid it into place. Carefully, she worked the halves of her bow back together and tapped a pair of brass nails to seal it into place. It was an impromptu fix, but she was confident it would perform its duty to find Dukan's killers. + +She carefully wiped it down and then set it down. Her breath came in a ragged exhalation as doubt and fear bubbled up. She had never had to repair anything in the field before, nor for something so critical in her life. If she made a mistake, then she had no doubt the bow would fail her in the middle of a fight when she needed it most. + +Pushing everything down, she carefully picked it up and carried to their new room, paid for with a reasonable about of money once the crowds had left. She took a second trip for the rest of her supplies: the borrowed tools, the metal pieces of the bow, and the horse hair they had gathered from around the village. + +Brook was standing by the front door when she came back. She had a piece of paper in her hand. + +"What's that?" + +She held it up. "Y-You said we had to learn new songs. I had a few that I thought might work but... I don't know their names or anything." + +Linsan grinned as she picked them up. While Brook's handwriting was beautiful and calligraphic, she had never learned how to write or read music. She had "lots of string instruments and..." with a line showing the notes. + +Brook blushed and looked away. "It's okay if we use your songs." + +"No, I know these." + +Her dark hair fluttered. "You do?" + +Linsan hummed through the first one. + +"That's it!" + +"_Ode to the Champion_ and this one is _What Comes of the Nightbird_, my mother auditioned for the play that carried that song. These are really good songs, Brook, they all have solid beats for you and I can adapt the music to my violin." + +"R-Really?" Brook looked surprised. Then she beamed with a relieved smile. + +Encouraged, Linsan hugged her. "Come on, let's learn how to turn these songs into something violent." diff --git a/chapters/chapter-41.md b/chapters/chapter-41.md new file mode 100644 index 0000000..c180dce --- /dev/null +++ b/chapters/chapter-41.md @@ -0,0 +1,60 @@ +--- +title: Song and Dance +teaser: &teaser > + Linsan and Brook learn new songs despite not having a violin. +summary: *teaser +--- + +Linsan's ears rang from Brook's concussion blasts. Her hand dipped for a moment before she brought it up. "Almost. This time, remember it's one... two... three... clap. You want to clap just as I hit the high note." + +Sweat trickling down her brow, Brook signed. "It would be a lot easier if I could hear you play." + +Linsan groaned. She felt useless practicing without being able to play. She was a poor conductor when the songs were inside her head were Brook couldn't hear them. "I know, but what else can we do? Give up for---?" + +"No. We don't give up." Brook straightened. She had on a pair of black lace gloves that were pristine when she started. After only an hour, the material had started to break and the delicate strands of lace curled out and gave the backs of her hands a fuzzy appearance. + +Linsan wiped the sweat from her face and then straighten. "Okay, so the drum of _Ode to the Champion_ goes ba-da ba-da ba-da-da-dum. So, you want to have your blast---" + +"Dance for me." + +Linsan stumbled on her words. "W-What?" + +Brook worried her bottom lip. "You used to dance when you played, remember?" + +It had been a while since Linsan had done that, it felt like a different life. + +"You were always jumping and twirling. It was... I thought it was pretty." + +Linsan grinned. "That's why you beat me up?" + +Brook flushed. "Look, I was---" + +Holding up a finger to Brook's lip, Linsan grinned. "Under the bridge. You want me to dance for you." + +Brook's cheeks colored. "Yes." + +Stepping back, Linsan pictured the movement. "Okay, so about about this... ba-da ba-da?" As she said the beats, she swayed her body and stepped high, striking her feet in time with the beat. A familiar rush came. "And then we ba-da-da-dum!" + +Her foot thudded on the ground. Peeking up, she saw Brook watching intently. Linsan smiled and felt a thrill of desire rushing through her. Despite being in the middle of the field, it felt as if they were once again in the bed exploring each other's bodies. "Again?" + +Brook nodded. + +Linsan closed her eyes and moved to the music, first saying the beats, but then using her voice to mimic her violin's notes." + +At the beat came the thud but instead of slamming against Linsan, it buoyed her movement. Her footsteps were lighter, but the impact of Brook's clap made it feel like she had punched a hole in the ground. With a giggle, Linsan threw herself into a leap and continued the song, belting out the sounds that were close to what she would have played. + +The beat came with her, thudding the ground even as it pushed her into keep moving. She could easily imagine how much easier it would be to play with Brook's steady encouragement beating a rhythm for her. + +When the song began to end, Linsan worked her way up to Brook so the final note brought them only inches apart. The heat of their bodies mingled together as they looked at each other. + +Brook kissed her, a light peck on the lips. It was hesitant + +Linsan returned the gesture, but firmly pressing their heated bodies together before breaking apart. "Again?" + +With her cheeks colored, Brook nodded. "One more time." + +"The song or the kiss?" + +The color darkened. "I want to say kiss... but the song first." + +Linsan kissed her anyways before breaking apart. "Then on one... two... three... go!" She danced away with the first boom of Brook's clap. diff --git a/language.json b/language.json index 5f7739a..7c18f33 100644 --- a/language.json +++ b/language.json @@ -1,58 +1,60 @@ { - "knownWords": [ - "Bobo", - "Brunil", - "Calibo", - "Dorsen", - "Dukan", - "Dukan's", - "Fanasis", - "Gabaw", - "Gabaw's", - "Gainsburg", - "Gepaul's", - "Glasscoaster", - "Itanith", - "Junith", - "Kabisal", - "Kamel", - "Kamel's", - "Katsaril", - "Kavinar", - "Klaston-Garis", - "Kormar", - "Koson", - "Koson's", - "Lankerni", - "Linsan", - "Linsan's", - "Lorban", - "Maril", - "Maril's", - "Mayforn", - "Melodol", - "Mis", - "Miska", - "Miska's", - "Palisis", - "Penesol", - "Ragon", - "Ragon's", - "Ralonix", - "Salamin", - "Sian", - "Sian's", - "Sterlig", - "Sterlig's", - "Sterligs", - "Tabil", - "Tilbin", - "Tirain", - "Tisin", - "Tisin's", - "Unders", - "Valian", - "Wendil", - "Wendil's" - ] -} + "knownWords": [ + "Bobo", + "Brunil", + "Calibo", + "Dorsen", + "Dukan", + "Dukan's", + "Fanasis", + "Gabaw", + "Gabaw's", + "Gainsburg", + "Gepaul's", + "Glasscoaster", + "Itanith", + "Junith", + "Kabisal", + "Kamel", + "Kamel's", + "Katsaril", + "Kavinar", + "Klaston-Garis", + "Kormar", + "Koson", + "Koson's", + "Lankerni", + "Linsan", + "Linsan's", + "Lorban", + "Maril", + "Maril's", + "Mayforn", + "Melodol", + "Mis", + "Miska", + "Miska's", + "Palisis", + "Penesol", + "Ragon", + "Ragon's", + "Ralonix", + "Salamin", + "Sian", + "Sian's", + "Sterlig", + "Sterlig's", + "Sterligs", + "Tabil", + "Tilbin", + "Tirain", + "Tisin", + "Tisin's", + "Unders", + "Valian", + "Wendil", + "Wendil's", + "ba-da", + "ba-da-da-dum" + ] +} \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index 67ebfe2..9f2aebc 100644 --- a/package-lock.json +++ b/package-lock.json @@ -35,6 +35,7 @@ "commitlint-gitlab-ci": "^0.0.4", "cz-conventional-changelog": "^2.1.0", "husky": "^7.0.2", + "markdowny": "^0.2.1", "npm-run-all": "^4.1.5", "prettier": "^2.0.5", "semantic-release": "^18.0.1" @@ -1461,17 +1462,6 @@ "node": ">=0.10.0" } }, - "node_modules/@mfgames-writing/format/node_modules/find-up": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", - "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", - "dependencies": { - "locate-path": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, "node_modules/@mfgames-writing/format/node_modules/load-json-file": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", @@ -1487,51 +1477,6 @@ "node": ">=0.10.0" } }, - "node_modules/@mfgames-writing/format/node_modules/locate-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", - "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", - "dependencies": { - "p-locate": "^3.0.0", - "path-exists": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/@mfgames-writing/format/node_modules/p-limit": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.2.tgz", - "integrity": "sha512-WGR+xHecKTr7EbUEhyLSh5Dube9JtdiG78ufaeLxTgpudf/20KqyMioIUZJAezlTIi6evxuoUs9YXc11cU+yzQ==", - "dependencies": { - "p-try": "^2.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@mfgames-writing/format/node_modules/p-locate": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", - "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", - "dependencies": { - "p-limit": "^2.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/@mfgames-writing/format/node_modules/p-try": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", - "engines": { - "node": ">=6" - } - }, "node_modules/@mfgames-writing/format/node_modules/parse-json": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", @@ -1564,18 +1509,6 @@ "node": ">=0.10.0" } }, - "node_modules/@mfgames-writing/format/node_modules/read-pkg-up": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-4.0.0.tgz", - "integrity": "sha512-6etQSH7nJGsK0RbG/2TeDzZFa8shjQ1um+SwQQ5cwKy0dhSXdOncEhb1CPpvQG4h7FyOV6EB6YlV0yJvZQNAkA==", - "dependencies": { - "find-up": "^3.0.0", - "read-pkg": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, "node_modules/@mfgames-writing/format/node_modules/strip-bom": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", @@ -2693,6 +2626,15 @@ "integrity": "sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA==", "dev": true }, + "node_modules/add-commas": { + "version": "0.0.4", + "resolved": "https://registry.npmjs.org/add-commas/-/add-commas-0.0.4.tgz", + "integrity": "sha512-nxpqSWsIx4WfuercalDWBj5iAmBTcq+jj5z4AvfjTE8fAG/Jk5WM3KwGEjaqgk3r40VnE6WtdIz/C+/heUts8g==", + "dev": true, + "dependencies": { + "is-nan": "^1.0.1" + } + }, "node_modules/agent-base": { "version": "6.0.2", "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", @@ -4439,15 +4381,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/conventional-changelog-writer/node_modules/yargs-parser": { - "version": "20.2.9", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", - "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", - "dev": true, - "engines": { - "node": ">=10" - } - }, "node_modules/conventional-commit-types": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/conventional-commit-types/-/conventional-commit-types-2.3.0.tgz", @@ -4843,15 +4776,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/conventional-commits-parser/node_modules/yargs-parser": { - "version": "20.2.9", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", - "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", - "dev": true, - "engines": { - "node": ">=10" - } - }, "node_modules/core-js": { "version": "2.6.11", "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.11.tgz", @@ -6384,15 +6308,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/git-raw-commits/node_modules/yargs-parser": { - "version": "20.2.9", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", - "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", - "dev": true, - "engines": { - "node": ">=10" - } - }, "node_modules/glob": { "version": "7.1.6", "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", @@ -7192,6 +7107,22 @@ "node": ">=0.10.0" } }, + "node_modules/is-nan": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/is-nan/-/is-nan-1.3.2.tgz", + "integrity": "sha512-E+zBKpQ2t6MEo1VsonYmluk9NxGrbzpeeLC2xIViuO2EjU2xsXsBPwTr3Ykv9l08UYEVEdWeRZNouaZqF6RN0w==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.0", + "define-properties": "^1.1.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/is-negative-zero": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz", @@ -7807,6 +7738,193 @@ "url": "https://github.com/fb55/entities?sponsor=1" } }, + "node_modules/markdown-table": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/markdown-table/-/markdown-table-1.1.3.tgz", + "integrity": "sha512-1RUZVgQlpJSPWYbFSpmudq5nHY1doEIv89gBtF0s4gW1GF2XorxcA/70M5vq7rLv0a6mhOUccRsqkwhwLCIQ2Q==", + "dev": true + }, + "node_modules/markdowny": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/markdowny/-/markdowny-0.2.1.tgz", + "integrity": "sha512-cv35FqNVttfSp6LoCW2EkWm2gGofoxESDJS+iuoSYcpmwjeUL0KAgxVcVF/b647blbmBwrHmNKd7ow4shPeiYg==", + "dev": true, + "dependencies": { + "add-commas": "0.0.4", + "lodash": "^4.16.5", + "markdown-table": "^1.0.0", + "read-pkg-up": "^4.0.0", + "yaml-front-matter": "^3.4.0", + "yargs": "^16.2.0" + }, + "bin": { + "markdowny": "bin/markdowny", + "markdowny-wc": "bin/markdowny-wc" + } + }, + "node_modules/markdowny/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/markdowny/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/markdowny/node_modules/cliui": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", + "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", + "dev": true, + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" + } + }, + "node_modules/markdowny/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/markdowny/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/markdowny/node_modules/commander": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-1.0.0.tgz", + "integrity": "sha512-ypAKENwAvjA+utibuxSPeduXV/tIX73+9IyWMkFNnbxiJTeY2xdcM8C2KZo3KEGlDnO5tSm2BVZ65QfuRcR8DQ==", + "dev": true, + "engines": { + "node": ">= 0.4.x" + } + }, + "node_modules/markdowny/node_modules/get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "dev": true, + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, + "node_modules/markdowny/node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/markdowny/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/markdowny/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/markdowny/node_modules/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/markdowny/node_modules/y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/markdowny/node_modules/yaml-front-matter": { + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/yaml-front-matter/-/yaml-front-matter-3.4.1.tgz", + "integrity": "sha512-/sDeHR8GD6JIJ8j/2h28QsjXS9XsWp2WnjU8RQODri/u6INSEF9Q5w4mZVl0KtXsM1UCBYQhOwTvJKTsnmusBQ==", + "dev": true, + "dependencies": { + "commander": "1.0.0", + "js-yaml": "^3.5.2" + }, + "bin": { + "yaml-front-matter": "bin/js-yaml-front.js" + } + }, + "node_modules/markdowny/node_modules/yargs": { + "version": "16.2.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", + "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", + "dev": true, + "dependencies": { + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.0", + "y18n": "^5.0.5", + "yargs-parser": "^20.2.2" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/marked": { "version": "0.3.19", "resolved": "https://registry.npmjs.org/marked/-/marked-0.3.19.tgz", @@ -12024,6 +12142,74 @@ "node": ">=4" } }, + "node_modules/read-pkg-up": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-4.0.0.tgz", + "integrity": "sha512-6etQSH7nJGsK0RbG/2TeDzZFa8shjQ1um+SwQQ5cwKy0dhSXdOncEhb1CPpvQG4h7FyOV6EB6YlV0yJvZQNAkA==", + "dependencies": { + "find-up": "^3.0.0", + "read-pkg": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/read-pkg-up/node_modules/find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "dependencies": { + "locate-path": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/read-pkg-up/node_modules/locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "dependencies": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/read-pkg-up/node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/read-pkg-up/node_modules/p-locate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "dependencies": { + "p-limit": "^2.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/read-pkg-up/node_modules/p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "engines": { + "node": ">=6" + } + }, "node_modules/readable-stream": { "version": "2.3.6", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", @@ -12833,15 +13019,6 @@ "node": ">=10" } }, - "node_modules/semantic-release/node_modules/yargs-parser": { - "version": "20.2.9", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", - "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", - "dev": true, - "engines": { - "node": ">=10" - } - }, "node_modules/semver": { "version": "7.3.5", "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", @@ -13835,6 +14012,15 @@ "node": ">=12" } }, + "node_modules/yargs-parser": { + "version": "20.2.9", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", + "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", + "dev": true, + "engines": { + "node": ">=10" + } + }, "node_modules/yargs/node_modules/ansi-regex": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", @@ -15100,14 +15286,6 @@ "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz", "integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo=" }, - "find-up": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", - "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", - "requires": { - "locate-path": "^3.0.0" - } - }, "load-json-file": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", @@ -15120,36 +15298,6 @@ "strip-bom": "^2.0.0" } }, - "locate-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", - "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", - "requires": { - "p-locate": "^3.0.0", - "path-exists": "^3.0.0" - } - }, - "p-limit": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.2.tgz", - "integrity": "sha512-WGR+xHecKTr7EbUEhyLSh5Dube9JtdiG78ufaeLxTgpudf/20KqyMioIUZJAezlTIi6evxuoUs9YXc11cU+yzQ==", - "requires": { - "p-try": "^2.0.0" - } - }, - "p-locate": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", - "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", - "requires": { - "p-limit": "^2.0.0" - } - }, - "p-try": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==" - }, "parse-json": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", @@ -15173,15 +15321,6 @@ "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=" }, - "read-pkg-up": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-4.0.0.tgz", - "integrity": "sha512-6etQSH7nJGsK0RbG/2TeDzZFa8shjQ1um+SwQQ5cwKy0dhSXdOncEhb1CPpvQG4h7FyOV6EB6YlV0yJvZQNAkA==", - "requires": { - "find-up": "^3.0.0", - "read-pkg": "^3.0.0" - } - }, "strip-bom": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", @@ -16071,6 +16210,15 @@ "integrity": "sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA==", "dev": true }, + "add-commas": { + "version": "0.0.4", + "resolved": "https://registry.npmjs.org/add-commas/-/add-commas-0.0.4.tgz", + "integrity": "sha512-nxpqSWsIx4WfuercalDWBj5iAmBTcq+jj5z4AvfjTE8fAG/Jk5WM3KwGEjaqgk3r40VnE6WtdIz/C+/heUts8g==", + "dev": true, + "requires": { + "is-nan": "^1.0.1" + } + }, "agent-base": { "version": "6.0.2", "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", @@ -17400,12 +17548,6 @@ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.18.1.tgz", "integrity": "sha512-OIAYXk8+ISY+qTOwkHtKqzAuxchoMiD9Udx+FSGQDuiRR+PJKJHc2NJAXlbhkGwTt/4/nKZxELY1w3ReWOL8mw==", "dev": true - }, - "yargs-parser": { - "version": "20.2.9", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", - "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", - "dev": true } } }, @@ -17699,12 +17841,6 @@ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.18.1.tgz", "integrity": "sha512-OIAYXk8+ISY+qTOwkHtKqzAuxchoMiD9Udx+FSGQDuiRR+PJKJHc2NJAXlbhkGwTt/4/nKZxELY1w3ReWOL8mw==", "dev": true - }, - "yargs-parser": { - "version": "20.2.9", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", - "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", - "dev": true } } }, @@ -18864,12 +19000,6 @@ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.18.1.tgz", "integrity": "sha512-OIAYXk8+ISY+qTOwkHtKqzAuxchoMiD9Udx+FSGQDuiRR+PJKJHc2NJAXlbhkGwTt/4/nKZxELY1w3ReWOL8mw==", "dev": true - }, - "yargs-parser": { - "version": "20.2.9", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", - "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", - "dev": true } } }, @@ -19468,6 +19598,16 @@ "is-extglob": "^2.1.1" } }, + "is-nan": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/is-nan/-/is-nan-1.3.2.tgz", + "integrity": "sha512-E+zBKpQ2t6MEo1VsonYmluk9NxGrbzpeeLC2xIViuO2EjU2xsXsBPwTr3Ykv9l08UYEVEdWeRZNouaZqF6RN0w==", + "dev": true, + "requires": { + "call-bind": "^1.0.0", + "define-properties": "^1.1.3" + } + }, "is-negative-zero": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz", @@ -19966,6 +20106,149 @@ "resolved": "https://registry.npmjs.org/markdown-it-multimd-table/-/markdown-it-multimd-table-4.2.0.tgz", "integrity": "sha512-wFpb8TSQ9josQrAlOg1toEAHHSGYQZ4krBKfpejPQ+lq3oudnxCNW4S6gYMcRbkrtrfX/ND2njr4belnKt3fBg==" }, + "markdown-table": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/markdown-table/-/markdown-table-1.1.3.tgz", + "integrity": "sha512-1RUZVgQlpJSPWYbFSpmudq5nHY1doEIv89gBtF0s4gW1GF2XorxcA/70M5vq7rLv0a6mhOUccRsqkwhwLCIQ2Q==", + "dev": true + }, + "markdowny": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/markdowny/-/markdowny-0.2.1.tgz", + "integrity": "sha512-cv35FqNVttfSp6LoCW2EkWm2gGofoxESDJS+iuoSYcpmwjeUL0KAgxVcVF/b647blbmBwrHmNKd7ow4shPeiYg==", + "dev": true, + "requires": { + "add-commas": "0.0.4", + "lodash": "^4.16.5", + "markdown-table": "^1.0.0", + "read-pkg-up": "^4.0.0", + "yaml-front-matter": "^3.4.0", + "yargs": "^16.2.0" + }, + "dependencies": { + "ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true + }, + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "cliui": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", + "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", + "dev": true, + "requires": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "commander": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-1.0.0.tgz", + "integrity": "sha512-ypAKENwAvjA+utibuxSPeduXV/tIX73+9IyWMkFNnbxiJTeY2xdcM8C2KZo3KEGlDnO5tSm2BVZ65QfuRcR8DQ==", + "dev": true + }, + "get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true + }, + "string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + } + }, + "strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "requires": { + "ansi-regex": "^5.0.1" + } + }, + "wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "requires": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + } + }, + "y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "dev": true + }, + "yaml-front-matter": { + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/yaml-front-matter/-/yaml-front-matter-3.4.1.tgz", + "integrity": "sha512-/sDeHR8GD6JIJ8j/2h28QsjXS9XsWp2WnjU8RQODri/u6INSEF9Q5w4mZVl0KtXsM1UCBYQhOwTvJKTsnmusBQ==", + "dev": true, + "requires": { + "commander": "1.0.0", + "js-yaml": "^3.5.2" + } + }, + "yargs": { + "version": "16.2.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", + "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", + "dev": true, + "requires": { + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.0", + "y18n": "^5.0.5", + "yargs-parser": "^20.2.2" + } + } + } + }, "marked": { "version": "0.3.19", "resolved": "https://registry.npmjs.org/marked/-/marked-0.3.19.tgz", @@ -23035,6 +23318,55 @@ "path-type": "^3.0.0" } }, + "read-pkg-up": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-4.0.0.tgz", + "integrity": "sha512-6etQSH7nJGsK0RbG/2TeDzZFa8shjQ1um+SwQQ5cwKy0dhSXdOncEhb1CPpvQG4h7FyOV6EB6YlV0yJvZQNAkA==", + "requires": { + "find-up": "^3.0.0", + "read-pkg": "^3.0.0" + }, + "dependencies": { + "find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "requires": { + "locate-path": "^3.0.0" + } + }, + "locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "requires": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + } + }, + "p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "requires": { + "p-limit": "^2.0.0" + } + }, + "p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==" + } + } + }, "readable-stream": { "version": "2.3.6", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", @@ -23633,12 +23965,6 @@ "y18n": "^5.0.5", "yargs-parser": "^20.2.2" } - }, - "yargs-parser": { - "version": "20.2.9", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", - "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", - "dev": true } } }, @@ -24520,6 +24846,12 @@ } } }, + "yargs-parser": { + "version": "20.2.9", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", + "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", + "dev": true + }, "yn": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", diff --git a/package.json b/package.json index 1347888..d36a595 100644 --- a/package.json +++ b/package.json @@ -59,9 +59,9 @@ "commitlint-gitlab-ci": "^0.0.4", "cz-conventional-changelog": "^2.1.0", "husky": "^7.0.2", + "markdowny": "^0.2.1", "npm-run-all": "^4.1.5", "prettier": "^2.0.5", "semantic-release": "^18.0.1" - }, - "private": true + } }