From 80e30294db697e1bbaadeb10d8b526f9887b5cc6 Mon Sep 17 00:00:00 2001 From: Bernhard Radermacher Date: Sun, 21 Sep 2025 19:43:16 +0200 Subject: [PATCH] wip --- Karen.md | 1728 ++++++++++++++++++++++++++++++++++++++ README.md | 8 + markepub/__init__.py | 0 markepub/de_meta.py | 156 ++++ markepub/frontmatter.py | 215 +++++ markepub/normalize-md.py | 49 ++ markepub/title_page.py | 165 ++++ markepub/util.py | 9 + pyproject.toml | 10 + 9 files changed, 2340 insertions(+) create mode 100644 Karen.md create mode 100644 markepub/__init__.py create mode 100644 markepub/de_meta.py create mode 100644 markepub/frontmatter.py create mode 100644 markepub/normalize-md.py create mode 100644 markepub/title_page.py create mode 100644 markepub/util.py create mode 100644 pyproject.toml diff --git a/Karen.md b/Karen.md new file mode 100644 index 0000000..bd5e262 --- /dev/null +++ b/Karen.md @@ -0,0 +1,1728 @@ +--- +title: Karen +author: E.Z. Riter +description: Karen meets the man she can't resist — the man who can do anything to her, and she will love it — and him. +genre: BDSM +subject: + - M/f + - pregnant + - spanking + - D/s + - real + - reluctant + - Serious +source: "https://www.bdsmlibrary.info/stories/story.php?storyid=1101" +language: en +published: 2002-07-24 +--- + +Have you ever met a man you instantly feared? +Who made you quake deep down inside? + +I don't mean a physical fear. +I mean a sexual fear. + +A fear he would possess you as his own. +A fear he would reach deep into your woman's heart to seize your innermost feelings, making you eager to do what he wished of you. + +And a fear he might do nothing. +A fear the deep gut longing for him would be unfulfilled, leaving you aching and wanting. + +I'd heard other women speak of such fears. +They're referring to movie stars or rock musicians they drool over in a fantasy. +In my life, my real life, I'd never met such a man. + +I was almost forty. +My husband, George Phillips, and I had been married twenty-one years. +We have two wonderful daughters, Polly, 20, and Patty, 18. + +For the past twelve years, George and I worked hard to build our business. +For ten of those years, the business grew and prospered. +But for the last two years, the business suffered a steady and steep decline because George's overly ambitious expansion plans exploded in our faces. +We were threatened with bankruptcy. + +George started to drink heavily. +Alcohol and stress turned his previously kind disposition to a sour and depressed mania. +Our children suffered with us. +Seeing their parents depressed was hard on them. +We couldn't afford for either of them to go to college. + +George is fifteen years older than I. +In a way, our relationship was father and daughter. +We began dating when I was seventeen. +He took my virginity when I was eighteen. +When I became pregnant with Polly, we married. +I'd never had another man. +Our major marital disagreement had been over the number of children. +I wanted four. +George insisted we have only two. +He had a vasectomy to prevent additional children. +I missed those days. +I missed the feel of a baby, of the life in me, of nursing my child. +I missed the closeness with the man who made that baby with me. +George and I began to drift apart after those early, baby days. + +Sex with George was pleasant and sweet, but never exciting. +When I married him, I knew it would never be the bomb bursts my friends gossiped of. +Our sex was more passive than that. +When the business began its downturn, he became impotent. +It'd been two years since we made love. +For the last year, we slept in separate beds, not even touching during the night. + +I'm five-five and in good physical condition. +I'm told I'm pretty. +My daughters inherited my dark blonde hair and green eyes, my smile with the one dimple. +My breasts are still high and firm, but my bottom and legs are my most attractive feature. + +I never intended to attract men. +I dressed demurely, preferring loose blouses and long, full skirts to hide myself from prying male eyes. +I lived a life without carnal desires, keeping myself chaste except for my husband. +I was a modest and faithful wife. + +During this siege of unhappiness, our bright spot was Polly. +She'd fallen desperately in love with a man. +We hadn't met him yet, but she said he was magnificent, very intelligent, well-educated, and successful in business. +His name was Eric Winston. + +His only negative, from what she told me, was that he was thirty-two, twelve years older than she was. +As Polly pointed out, George was fifteen years my senior so I couldn't complain about the age difference. +Polly gushed about him, revealing a depth of love and wanting beyond anything I'd experienced. + +During the next month, the business continued its relentless slide toward bankruptcy. +George fought to survive, even if the hope of survival seemed dim. +I knew if he failed after redoubling his efforts, the loss would be much more devastating. +Too often it seems, a man's self-worth is tied inexorably to his company and his position. +I worried constantly about his mental and physical health. + +George and I were home one Friday night about ten, getting ready to go to bed. +We were exhausted from the demands of the business. +As usual, it had been a long and difficult week. +Patty was already asleep. +The front door burst open. +Polly, giggling and wiggling with happiness, charged into the room with a man right behind her. + +“Mother! +Dad! +Eric asked me to marry him! +I said yes.” + +I saw Eric Winston for the first time. +Hot, prickly fingers walked down my spine. +I flushed. +Lights dimmed except around him. +I was giddy and nauseous. +Every sense was overloaded. +I stared at him as he shook George's hand in greeting. +He turned to me and smiled. +His eyes held me. +Heat flashed through me, like a heavy blush, leaving my nipples erect and a wetness seeping between my legs. + +I'd met him—the man who could possess me. +The man who could take me and make me his. +Never before had I felt the intense, demanding, female need to throw myself at a man. + +“Mother, are you all right?” +Polly asked, taking my hands. +“Why are you crying?” + +“Your mother's just happy for you, dear,” Eric said. +“Let me help you, Karen.” + +My right hand in his, his left hand at my waist, he guided me to a chair. +Was my robe on fire from the heat of his hand on me? +Could no one else smell the scent I extruded? +When I sat, I looked up at him. +He could feel it. +He could smell it. +He knew. + +Polly and George solicitously murmured around me. +Didn't they see the sexual need in me? +Didn't they feel my agony? +Oh, god, what was I going to do? +I wanted him so much. + +I must resist him! +I must! +He was my daughter's fiancée, her man not mine. +I took a deep breath and prayed. +Karen Phillips, wife and mother, pushed her unbridled carnal desire to the background and smiled benignly. +For the first time since he arrived, I took a normal breath. + +Physically, Eric was about six three. +He was lean and raw-boned, with big wrists and hands. +His chest looked powerful, his arms strong. +His hair was black and cut short. +He was graying at the temples. +His face was ruggedly masculine and handsome. + +His most dominant feature was his eyes. +They were large and deep set in large eyeholes, under thick, long black lashes and below heavy black eyebrows. +Their color was a startling, deep, blue. +They were compelling eyes, demanding eyes, eyes which might well be cruel. +Those eyes could be soft and kind, too, as they were now. + +He sat on the couch with Polly next to him, both her hands hidden by one of his. +His voice was very pleasant, a well-modulated baritone. +Its smoothness, the easy rhythm of his words, the timbre, all were pleasing and reassuring. +It was hypnotic. + +I was dressed in a long flannel nightgown which covered me head to toe and wore over it a thick and fleecy terry cloth bathrobe. +But when he looked at me, I felt naked. + +Polly was ecstatic, beaming brightly in her joy. +She extended her hand to flash a solitaire diamond engagement ring. +Her wriggling fingers distorted our view, but its size and quality were self-evident. +I noticed a new necklace around her lovely neck. +It was a gold choker with a small ring in front. +From the ring dangled another diamond which matched the one on her finger. + +We visited about wedding plans and their future. +My eyes were constantly drawn to his, requiring conscious effort on my part to look away. +They were as hypnotic as his voice. +He enjoyed our eye game and my distress from it. +Once a special smile flickered across his face. +It made me shiver. +It was the smile a man gives a woman when he intends to have intercourse with her. + +I don't know why Polly and George were oblivious to his flirting with me. +Couldn't they see what I saw? +Couldn't they see how he appealed to me, how I wanted him? +Couldn't they see this seduction in progress? +Couldn't they see I was helpless? + +Polly's exuberance invigorated us, but it was the presence of Eric Winston which energized me. +We'd talked almost an hour when Eric changed the topic. + +“Polly told me a few things about your business problems. +That's my area of expertise. +I'll be happy to assist you anyway I can,” he said. + +We talked until two in the morning. +George and I unburdened ourselves, releasing our business worries like a dam burst releasing the water of a thousand brutal rains. +Eric acted truly interested. +His knowledge, insight, and certainty impressed me. +Every thing about him impressed me. + +During those hours, our eye game continued. +I saw that look again and again. +Its implications were constantly in my mind. +As a mother, I was angered my daughter's fiancée would look at me like that. +As a wife, I resented his giving me that look in my own living room with my husband present. +As a woman, I was terrified. +He wanted me. +He'd stop at nothing to have me. +My anxiety bubbled like a cauldron. + +Karen, it's you that's flirting with him. +Stop it, a voice in my head said. +It's not me, I thought in reply. + +“I think I can help,” Eric said. +“When can I take a look at the books?” + +“I've got a golf tournament with my biggest customer this weekend. +How about Monday?” +George answered anxiously. + +“I'd like to do it tomorrow,” Eric replied. +“Karen's the accountant, isn't she?” + +“Of course! +She can show you everything. +You two won't need me,” George said. + +“No, I couldn't,” escaped me. + +“Sure you can, honey,” George said emphatically. + +George's tone of voice and expression were clear. +He wanted me to meet Eric on Saturday. +Polly still hadn't noticed Eric's dance with me. +And Eric smiled at me in a way which drove me mad. +I was horrified I would be spending the better part of my Saturday alone with him, no matter the reason. +I hid my reservations, warmly saying I'd be glad to meet him. +We set a time and ended our evening. +After he left with Polly, George and I went to bed. + +“Karen, he's the answer to our prayers. +Don't hold anything back. +Give Eric whatever he wants,” George said intently. + +I slipped out of my bed and walked to his. +I knelt beside it and took his hands in mine. + +“I love you, George,” I whispered. + +“I love you, too,” he replied. +“Why are you crying? +You've sure been teary this evening.” + +“It's been an emotional evening, what with Polly getting married and help in the business,” I lied. + +“Can you believe it, Karen? +Eric may help us. +He's the first person in two years to give us hope. +Real hope. +We've got to make it work! +There's something about him that makes me trust him. +I know this will work, unless we blow it. +We can't do that.” + +“What if he wants more than you're willing to give?” + +“He can't,” George said with a snicker. +“I'd give anything. +Damn it, Karen. +This may be our last chance.” +George patted my hand. +“But I'm exhausted now. +I'll sleep the sleep of the dead tonight.” + +“I hope I do,” I replied. + +“Get some sleep. +You need to be sharp for him tomorrow. +He'll probably run you through the wringer.” + +“I'm sure he will,” I said and kissed him on the cheek. + +Sleep was long in coming. +I was dreading tomorrow. +When sleep finally came, I had an erotic dream, a dream stronger than I had in years. +The dream was of Eric Winston… and me. +Agitated and fearful, I awoke in a sweat. +George's snoring and my labored breathing were the only sounds in the room. +I prayed for strength and fell asleep again. + +I was tired and confused in the morning. +I selected my least appealing outfit. +I wore no makeup and old, scuffed, flat-heeled boots. + +George greeted me in the kitchen with a kiss. +He was ready to walk out the door to go to the golf course. + +“Karen, you look frumpy. +Put on something nicer. +Something with some oomph. +We want Eric to think the best of us,” he said. + +I cried when I redressed. +My husband had ordered me to make myself prettier for a man who wanted me. +My emotions were overloaded just thinking about Eric Winston. +As I looked at myself in my full length mirror, I felt like a lamb being led to the slaughter. +No, you don't, the voice in my head said. +You're looking forward to it. +No, I wasn't. +I wasn't. + +As I drove to the plant to meet him, I reviewed my situation. +It was surreal. +I was eight years older, his mother-in-law to be, and married to someone else. +He was considering assisting my husband and me in our business. +For him to give me such sexual signals didn't make sense, not in my experience, at least. + +The drive to the office was slow. +I talked to myself the whole way, telling me this was wrong. +The last block of the drive I saw Eric in a blue Mercedes in my rearview mirror. +He followed me into the driveway, parking beside me. +Apprehensively, I watched him walk toward me. +He was dressed in a button down, Oxford cloth, blue shirt, blue jeans, and white sneakers. +He looked long and lanky and strong, like a modern day westerner. + +“Mr. +Winston,” I said coolly. + +“Mrs. +Phillips,” he replied, a twinkle in his eye. +“Shall we begin?” + +Eric and I worked hard. +Like a huge vacuum, he sucked up information I struggled to feed him at the pace he demanded. +His clarity and precision of thought, his quick mind, had me in awe. +However, I lived those six hours in fear of what would happen later. +I was constantly aware of his maleness and dominant air, even as we discussed such mundane and non-sexual things as lease financing. +I felt the sexual tension the entire time. + +It wasn't my imagination. +He touched me every chance he got. +First, it was fingertips on my hand when I passed a file to him. +I didn't respond, telling myself I didn't want to offend him. +The touches became bolder. +When he looked at me, he had a devilish twinkle in his eyes. +I knew what he was thinking. +He was thinking about taking me. +He wanted me to think about it, too. +I could think of nothing else. + +His toying with me was discreet except for one overt comment made after we'd been there about four hours. +I'd finished telling him the relationship with our largest customer. + +“Do you have any questions?” +I asked. + +“Tell me, is your pussy wet from wanting to fuck me?” + +The room reeled as I started to faint. +He grabbed me, his strong arms around me, his body hot against mine as he guided me to a chair and eased me into it. +His hands slipped down my body, leaving a trail of fire. + +“Are you all right?” +he asked. + +“What? +What did you say?” + +“I said, 'Tell me your percentage net on the Fulton contract'. +What did you think I said?” + +Was I going crazy? +He hadn't said that! +Had he? +Had he asked a question so innocuous? +No. +No. +He was playing with me. +He must be. +He must. +I couldn't read his expression. +Had he said it? + +“Oh. +I thought you said something else.” + +His hands were on my knees. +The pressure was gentle but increasing. +He was trying to pull my knees apart! +No. +Was he trying to hold them together? +Oh, god, what was happening? +I started to cry again, burying my head in my hands as I sobbed. +He disappeared and returned with a Coke. +He took my hand and wrapped it around the cold can. +I shivered from the coldness. +Or was it from his touch? + +“It's going to be all right, Karen,” he said softly. +His hand stroked my hair. + +Stop! +Stop! +Don't touch me! +I wanted to scream. +I'm a wife, not a slut. +I'm a mother. +My daughter is your fiancée. +This is wrong. +It's wrong for me to want you so much. + +I fought for composure. +Eric waited patiently. +When I was ready, we started the business review again. +He continued his game of cat and mouse, leaving the mouse exhausted and her feelings raw and exposed. + +After six hours, he said we were through with the business review and excused himself. +I collapsed in the chair at my desk as I tried to sort through my confused mind the reason behind Eric's treatment of me and my acceptance of it. +Acceptance? +No. +Desire. +Why was I silent when he touched me? +That's the reason his touches became bolder. +The last time his hand slid down my back to stroke my bottom before pulling away. + +When I looked up, he was sitting in the straight chair across from me. +One leg was bent, his foot on the edge of my desk; the other was splayed straight, foot on the desk. +He was displaying his crotch to me. + +The bastard was teasing me! +I felt the blush rise. +My face was beet red. +My hands trembled. +I took several deep breaths, trying to control myself. +I could feel his eyes burning into me, see him rocking gently back and forth as he leaned back in the chair. +Finally, I looked him in the eye. + +“What do you want?” +I asked. +My voice was tense, forced. + +“I know what I want,” he replied quietly. +“I know what you want. +We both want the same thing. +The question is how do we start.” + +No. +Not now. +I'm not ready to resist. +I'm too weak right now. +Please god, give me strength. + +“What do you think of the business?” +I asked. + +“Don't change the subject,” he said. +There was a twinkle in his eyes. + +Maybe I'm wrong. +Maybe he means something else. + +“What do you think I want?” + +Why did I say that? +Why? + +“You want to be hot and sweaty and naked, writhing in desire on my bed, begging me to fuck you.” + +“You disgust me, you perverted bastard!” +I spit out at him without thinking. + +I was in a rage! +Every muscle and sinew tightened. +I shook in anger at this overbearing male. +My fists were clenched, my jaw set. +In my mind, my own mother stood over me. +Was that what my resistance was about? +My mother's mores? +My mother's prejudices? + +“I'll tell my daughter! +And my husband! +How dare you treat me like this!” + +He laughed. +The sonofabitch laughed at me. + +“I'm glad you're resisting, Karen. +I love playing the taking game with a woman, particularly a woman who desperately wants to be taken.” + +“Touch me, and I'll charge you with rape!” + +He didn't respond as I glared at him. +His expression was inscrutable. +His eyes held mine. +The emotion drained from me. +Anger ebbed; frustration and helplessness flowed. +I looked away as I started crying again. +I couldn't stifle my sobs. +He waited, letting me stew in my own juices. +I was unable to get away. +A prisoner in my own office, I sat awaiting his next comment. +It seemed hours before he spoke. + +“Karen, look at me.” + +He spoke so quietly I had to struggle to hear, but there was no doubt it was a command. +Once again, I looked at him. +Those eyes. +They held me as if he held me in his arms. + +“Karen, if I'm wrong, get up and walk out. +Walk out the door and leave. +I won't stop you.” + +Stand up, my mind screamed. +Stand up and run from him. +Run. +Get away. +Hide. +Don't look in his eyes. +Fight for control of your emotions, Karen, Polly's mother in me said. +Oh, please god, help me. +The tension's killing me. + +“Eric, I can't leave.” + +“Yes, you can. +Go ahead.” + +“I can't. +Our company needs you.” + +“I'll assist the company no matter what happens between us. +This is between us, you know. +I want you and you want me. +You're afraid to admit it, that's all.” + +“I can't trust you to help us if I don't give myself to you,” I gasped out. +Of course, you can trust him, you stupid woman, the voice said. +You've told him how to take you. +Isn't that what you want? +Eric Winston to take you? +Yes! +No, no! +I don't know. + +He looked puzzled. +Then a big grin crossed his face and a devilish gleam appeared in his eyes. + +“Ah. +I understand. +I'll build a box around you so you'll have no choice.” + +No choice? +I already had no choice. +I wanted him so much I was dying inside. +Couldn't he see that? +A storm rose on his face, but the sunlight glimmered through the clouds in his eyes. + +“Don't fight me. +I'll leave you and George homeless and penniless unless you do exactly as I want. +Karen, I want you on your knees. +I want your obedience. +I want your surrender.” + +“George would rather lose everything then have me give myself to you,” I said weakly. +George's words rang in my ears. +'Give Eric whatever he wants,' he'd said. +Did George know that meant me? +Was he trading me for his financial future? +No. +He couldn't mean that. +Could he see I wanted Eric? +Was he giving me permission to have an affair? +Why had he told me to dress in something nicer? +Did he know? + +I wanted five minutes. +That's all. +Just five minutes alone someplace quiet where I could think. +I couldn't think. +The world was spinning in wild, erotic gyrations. +I wanted it to stop so I could think. + +“Undress, Karen. +Let me see your body.” + +I shook my head no. +Quickly he stood, towering over me like an implacable giant. +My tears started anew. +I staggered to my feet and stumbled to the plate glass window overlooking the plant floor. +It was a magnificent overview, letting me see the product of so many years of hard work. +George and I would have nothing to show for those years if we lost it. + +I sagged against the air-conditioning unit that extended from the wall at desk height. +I sensed him behind me. +I started to turn. +He drove his body against mine. +The timing and force of his assault drove my legs apart, his knees inside my thighs. +His height and strength trapped me with only my toes touching the floor. +He crossed my wrists in front of me. +The long, powerful fingers of his left hand wrapped around my wrists and forced them downward. + +“No! +Goddamn you! +No!” +I screamed. + +“Sshh. +It's okay, Karen. +It's all right for you to surrender to me,” he whispered soothingly. + +I slammed my head back, hoping to hit him in the face. +He trapped my head with his right hand and held it there. +Trapped, unable to get leverage with my legs, his strong arms wrapped around me, I screamed and cursed, fought and struggled, using every ounce of energy and power in me. +When my struggles slowed, he relaxed his grip, giving me false hope of escape. +I struggled harder which exhausted me more quickly. + +Like an insect in a spider web, I futilely struggled against an unavoidable fate. +Like the insect, I was ultimately exhausted. +I collapsed against him, lying still and helpless in his arms. + +Somewhere in my bifurcated mind, the woman who was me watched us from above. +She saw me in his arms. +She felt his strength and my struggles and futility. +She felt his cock hardening against my bottom as I rubbed against him. +She felt our muscles war. +She smelled our sweat, mine made pungent by my fear. +She heard our sounds, the gasps, and grunting, the words spewed mindlessly by me. +She felt the heat. + +The woman knew the outcome before it occurred. +She relished the delicious male/female battle she observed. +She tingled in anticipation of the female's surrender to the male who entrapped her. + +His erection laying against the crack of my bottom and his arms around me dominated my thoughts. +My bottom moved against the bulge in his trousers. +Stop rubbing against him like some wanton hussy, the voice said. +I can't, I cried. + +I didn't feel him unbutton the two lower buttons of my blouse. +I first felt his fingers on the wet, hot skin of my belly. +His fingers moved over my rib cage. +I groaned as they unsnapped my front attaching bra. +Gently, those fingers wrapped around my breast, squeezing, testing, evaluating, and, yes, tantalizing. +Thumb and forefinger closed on my nipple and rolled it back and forth. +Desire raced through me. + +“Please. +For God's sake,” I whimpered. + +“You have lovely breasts, Karen. +I'm going to enjoy them,” he whispered in my ear. +“I'm going to enjoy all of you. +You're a very sexual woman. +Why you've repressed it, I'll never know. +But you'll repress it no more. +You're my woman now, and I expect unbridled sexuality from my women.” + +His woman? +How could that be? + +His voice was soothing and reassuring. +It was warm, the kind of warmth a man's voice has when he has bedded a woman who has pleased him, or when he is pleased with the woman he'll soon bed. +I didn't misconstrue warmth as weakness. +He intended for me to fully comply with his demands. + +“You have a lovely neck, too,” he murmured as he nuzzled the side of my neck under my hair. + +His lips, his tongue nibbled and caressed my neck. +Electricity flickered through me. +Chills went down my spine. +He pulled my head back and kissed me, nibbling at my lips, tongue caressing mine, his breath hot and sweet in my nose. +He kissed me again. + +Strange, isn't it? +Cursing and weeping, I'd struggled until exhaustion. +Now I lay passively in his arms as he kissed me and fondled my breasts. +I felt secure and warm. +I was weightless, his body still supporting mine as my toes brushed the ground. +His hardness throbbed against me. +Heat was rising again and sweat oozed from me. +Heat from a different source; heat of a different kind. + +My resistance ceased. +Limply my hands lay before me. +Eagerly his hands sought the button and zipper at my waist. +Resistance flared. +I grunted and pushed against him. +He jerked me hard against him, knocking the wind from me. +His teeth dug into the muscles of my neck, like a stallion holding a mare in place as he mounts her. +Something happened: maybe release of hormones from primordial urges. +A warm tingling sensation overcame me. +I resisted no more. + +He slipped my blouse and bra off, lay me back on the soft carpet and finished removing my clothes. +I watched as he dropped his trousers and boxers. +When I saw his cock, I gasped. +It was so red and hard. +I wanted it so much. +He knelt between my legs. +My wrists were crossed and pinned over my head. +My legs were doubled and trapped under his arms. +His cock nestled between my lower lips. +Our eyes were open. +His face was a picture of male pride and conquest. +I felt every millimeter of his skin as he slowly entered me. +I juiced to ease his way. +I spasmed around him, expanding for him. +He stopped, only partially in me. + +I lifted my hips to hurry him. +“Please don't stop.” +I whimpered. + +A victor's smile on his face, he slammed against me, driving me into the floor. +His cock head hit my cervix. + +“Oh, God. +I'm cumming,” I murmured. + +Large, hard, demanding, his cock plundered me again and again, drawing from me orgasms I didn't believe possible. +I, who'd never experienced more than one orgasm, felt the power of multiple ones crashing over me. +Sweat covered us. +Heat radiated. +I whimpered and mewed under him, rewarding his taking of me with my pleasure at having been taken. + +“Look at me!” +he demanded. +Buried in me to the hilt, he stopped. +His face contorted. +He began to shake as he pumped his seed into me. +Ecstasy covered his face as he emptied himself. +He released his hold on my legs and slumped on me. + +I should've pushed him away. +Instead, I put my arms around him and held his hard body tightly against mine. +His cock softened in me as our bodies cooled. +My hands stroked his back. +My lips nuzzled his neck. +He raised up to look in my eyes. +I saw a gentleness in him. +I saw pride: pride of bringing a woman to sexual nirvana; pride of ownership. +What did he see in me? +Happiness? +Satisfaction? +Joy? +They were there. + +“Now Karen, we'll always end the same way. +Use your mouth to clean me,” he said after he rolled to lay beside me. + +I had no urge to resist or disobey. +I took him in my mouth, tasting our juices coating him. +He stroked my sweat soaked hair as I eagerly complied. +His hand was gentle, his touch reassuring. + +“Well done,” he said softly. + +I stopped to gaze into his eyes. + +“Take your hand and gather my cum from your pussy. +Lick your fingers clean. +No, Karen. +Always look at me when you do it so I can share your joy at tasting me.” + +My eyes were locked to his as my fingers sought the nectar he left. +The tingling urge to again open myself for him crept over me. +As I licked my fingers, I saw his cock jump and swell. +He wanted me again. +Me! +I was thrilled and eager for him. +“I'm sorry to end this,” he whispered in my ear, “but we need to go to dinner. +Polly's cooking. +We're all eating together.” + +I cringed at the mention of my daughters and husband. +Shame filled me. +A cold, sick dampness crept across my skin. +Even my tears seemed cold on my face. +With my back to him, I sought my clothes and quickly redressed. +When I turned to face him, he had a soft smile. + +“Why are you doing this to me, Eric?” +I asked timidly. + +“Does it matter? +It's happening.” + +“Please tell me. +I need to know.” + +“You shouldn't feel guilty about this, Karen. +You resisted, but I was too strong. +I took you. +All you need to know is that you're mine now. +Mine. +And I'll do with you as I wish.” + +Guilty? +My guilt was an albatross around my neck. +It devastated me. +I was crushed by the weight of it… but, oh god, why did I feel this way? +Why did I feel warm and happy? +Why did I enjoy him so much? +He extended his hand to me. +He helped me to my feet and pulled me against him. + +“You're a good lover, Karen,” he said softly. +“You'll be better when you surrender. +You'll be a sexual animal. +My animal.” +He kissed me. +“I'll see you at my house.” + +He kissed me again and left me in the quiet of my own office. + +I thought of nothing else but his taking of me as I drove home to bathe and change. +As I drove to his home, I lectured myself. +You need to end this affair, I said. +You must stop it for Polly's sake, and for George's. +I was George's wife. +I was Polly's mother. +I couldn't be Eric's woman, too. +Could I? +Could I answer the sexual call my body gave me each moment I was with him? + +By the time I parked my car in front of his house, I was eaten by turmoil and indecision. + +I fought back tears as I rang the bell. +Polly answered and greeted me warmly. +Dinner was delicious. +My daughters were scintillating. +My husband was buoyant from a day's victory at the golf course and the promise of relief in the business. +Eric was the perfect host and son-in-law to be. + +No one noticed the change in me. +What did you expect? +the voice said. +You're not wearing a scarlet letter. +But do they know? + +At first, I was very self-conscious. +Numbness infused me. +With great effort, I successfully compartmentalized the day, letting me enjoy part of the evening with my family. + +George's golf tournament continued through Sunday. +Eric and I agreed to meet at the plant in the morning to “continue what we started.” +The others believed what we'd started was his review of our company. +Only he and I knew what those words really meant. + +He spoke but once of the relationship he insisted we have. +We were alone in the kitchen. +He cupped my mound through my dress. +He squeezed, his finger finding my opening. +“Mine,” he whispered in my ear. +Chills went through me. + +Standing there in his kitchen, I bolstered my resolve to fight him. +I decided to tell my family his plans, to tell them right now. +I couldn't allow further assignations with him. +But when I reentered the living room, they were on the floor in an intimate and animated discussion. + +“Oh, Eric, will you really pay for my college?” +Patty was saying. + +“Of course, until your dad gets back on his feet again,” Eric replied positively. +Patty threw her arms around him and hugged him warmly, her happiness radiating from her face. + +“And that'll be real soon, honey,” George responded, getting his warm hug from Patty as he did. + +I couldn't confront him in front of them. +I couldn't crush their hopes and joys even for my own protection. +As I looked at Eric with them, he appeared to be happy and a part of the group. + +I wondered what in him was driving him to do what he was doing to me. +How could he be so sexually tyrannical with me, and pleasant with them? +Whatever it was, I must deal with it by myself. +Deal with it? +Relish it. +Be honest with yourself, Karen. + +That night at home, George quickly succumbed to sleep. +My sleep was intermittent. +Wild sexual dreams repeatedly awakened me in a hot sweat and with a pounding heart. +Once my hand was between my legs when I awakened. +I cried myself back to sleep. +Each time, a troubled sleep brought dreams again. + +When the alarm aroused me, I stumbled into the bathroom dazed from lack of sleep and hurrying not to be late. +I don't remember dressing. +I was halfway to the office before I realized what I wore. +Once again, I'd selected one of my all encompassing blouse and skirt combinations. +This one was the most revealing I owned. +Its materials were silky and clingy and tight around me. +And I was braless. +I'd never gone braless in my life. +The weight and movement of my freed breasts was a constant reminder of the conflict in me. + +Twice I pulled off the street to cry. +I told myself it's only a lack of sleep. +It's guilt. +Yesterday won't happen again I said. +But I knew it would. +He would have me again. +Only this time, there'd be no going back. +This time I'd belong to Eric Winston. + +I called George from my car phone. +He was pulling into the parking lot at the golf club. +He didn't even notice I was crying as he told me to make sure Eric was impressed. +Impressed? +Yes, Eric was impressed. +By me. +By my wanton surrender. +By my whimpering as he fucked me. +I cried I could cry no more. + +I resolved to resist Eric. +Why? +Who knows? +The war in me was titanic. +I wouldn't let him take me as he had only yesterday. +I must end what he had begun. + +When I arrived at the office, Eric was sitting in his car reading the Sunday newspaper. +He hopped out and gave me a big smile. +When he leaned over to kiss me, I turned away. +Both his arms were full so he couldn't grab me and make me kiss him. +He lugged a suitcase and a sack of food as he followed me to my office. +As I was making coffee for us, I heard the furnace roar to life. +Soon, hot air was blowing into the room. +I wondered why he'd turned up the heat. + +In my office, he'd moved a straight chair to the center of the floor. +In front of it was a blue exercise mat big enough to lie down on. +The mat extended to the edge of my desk. +He was sitting in my chair. +His blue eyes locked onto me. + +“Coffee's ready,” I said, trying to make my voice light and happy. +I placed his coffee on the desk in front of him and started to sit down. + +“Don't sit, Karen,” he said. +“Today's devoted to our pleasure. +I expect total obedience from you.” + +“No, Eric. +I'm ending it,” I said as I sat in the chair in flagrant disobedience to his order. + +Don't listen to my words, Eric. +Please. +Listen to my body language. +Take me. +How could I think that? +How could I not think it? +End my turmoil, Eric. +End it! + +“Don't try to resist, Karen. +I took you yesterday. +I'll take you again today and every day I desire.” + +“Eric, I'm to be your mother-in-law. +I'm married to another man. +This is wrong.” + +“No. +It's right. +I won't allow you a way out. +If you disobey me, you'll be punished.” + +He opened the suitcase and removed a flexible leather shaft about three feet long. +Blood crashed through my veins. +I feared his answer, but I asked. + +“What is that?” + +“A whip. +I'll whip you for your disobedience.” + +“You wouldn't?” +I gasped. + +“Yes, I would. +I'd do it without hesitation. +Would you like a demonstration?” + +My head shook “no.” + +Gracefully and quickly, he moved beside me, taking my hand. +He guided me to the mat and instructed me to kneel on it facing the chair. +The sweat broke out between my breasts, a droplet running down my belly. +For a moment, I considered resisting. +His grip tightened on my arm. +Trembling and red-faced, I knelt on the mat. +My eyes teared and overflowed, silent wetness running down my cheek. + +“Spread your knees shoulder width,” he ordered. + +What was I to do? +He'd left me no choice. +I couldn't risk the loss of everything for an act of disobedience. +Now he had added the fear of swift and painful punishment if I resisted but a moment. +Slowly, I opened my knees, making me acutely aware of my femaleness. +He's making me ready for him, I thought. + +Eric handed my coffee to me and sat in the chair I faced. +He moved it forward until his knees, which were spread wide, were on either side of my head. +Suddenly, my world was the small V-shaped area bound by his legs. +Acutely aware his cock at the tip of the V would soon be in me again, I unsuccessfully struggled to look away. +I sipped my coffee and waited. +Waited for him to take me again. + +The office and the coffee were hot. +My blood was churning. +Perspiration rolled down me in torrents. +My blouse was soaked. +It was plastered to my over hot and wet skin, making me more visually tantalizing than if I wore nothing. +My nipples were erect and easily seen. +I didn't pull the blouse from my skin to hide myself from him. +My skirt stuck to my legs. +I adjusted it, smoothing it over my thighs. +After I did, I realized my legs were more visible that way. +Why hadn't I thought of that before? + +I waited, the minutes numbing my senses, the tension playing with my mind. +Finally, he lifted my chin to look in his face. +His countenance was hard, his sexual need open and obvious. +He sat back. +When I looked away, the stiff tip of his whip under my chin brought my eyes to him again. + +“We both know you wouldn't hurt your family. +I saw that in your face when you left the kitchen last night. +Is that correct, Karen?” + +“Yes.” + +“My taking of you is between us. +You and me. +We both know I'll win. +We both know I'll have you as mine.” + +“You can take me. +You can rape me and I won't report it. +But I'll never be yours.” + +I said it with all the strength in me. +Was I convincing? +Was I believable as I knelt obediently between his legs, my own legs spread in inviting supplication, my body hot with wanting? + +“You've already mine, Karen.” + +Was he right? +I thought as he sipped coffee and stared at me with those hypnotic blue eyes. +I was on the edge. +— the very edge—of that great canyon called surrender. +I was at the precipice: herded there as a sheep herded by a sheepdog; trapped there by the box he built around me. +The unwalled side was the precipice. + +I'd go off the edge. +I had no doubt about that. +He would accept nothing less. +Would I make him push me off that edge? +Or would I jump? + +All my senses were on full alert. +The color of his jeans was vivid and bright. +Their tightness around his muscular legs enthralled me. +The bulge at the V of his legs was never out of sight or mind. +The weight of my breasts was full and heavy. +I felt them move enticingly with each breath I took. +My spread legs created an emptiness needing to be filled. +My cheeks were wet with my tears. +I could feel each drop of the sweat slipping down my body. +I could smell us, both of us. +I could smell my moisture excreted between my legs. +When, absentmindedly, I stroked my skirt taut over my thighs, it seemed I could feel the pattern of the cloth. + +I waited. +The tension increased. + +“I'm going to give you a mantra, Karen. +When I say 'mantra', you'll repeat it continuously until I say 'stop'. +You'll live by this mantra. +It'll be the thought which governs you. +Do you understand?” + +“Yes,” I whispered. + +“Yes, sir, is your proper response,” he said. + +“Yes, sir,” I repeated. +If I had any will to resist, my voice didn't reveal it. + +“Good. +This is your mantra. +'I'm Eric's hot, willing woman.” + +“I'm not yours. +I'm not,” I whimpered. + +The whip hissed through the air, slamming into the blue mat beside my leg. +It sounded like a rifle shot. +I screamed in panic, doubling over, holding myself in fear. +Eric was a patient man, a patient man with laughter in his eyes he struggled to hide. +He'll never use that whip on you, the voice in my head said. +I know, I answered, but isn't it erotic to think he might? +Eric waited until I composed myself. +When I looked up at him, I saw the message in his expression: Surrender. +You have no choice. + +“Shall we try again? +Say your mantra, Karen.” + +You know he'll win, why are you fighting? +The voice inside my head said. +Yes, I know it. +I want him to take me. +I want to surrender. +Why am I resisting? +“Eric, please,” I begged, my tear filled eyes on him. + +“Say it!” +he demanded. + +“I'm Eric's hot, willing woman,” I said. +Each syllable caught in my throat like gravel. +I forced myself to form the words and utter them, my voice constricted as if bound in steel. +I wanted to scream this is wrong. +Instead, I repeated my mantra. +I knew I would live by it. +That thought terrified and excited me. + +The tip of the whip moved into my sight. +I froze, not breathing, as it traced the outline of my nipple plainly visible through my blouse. +I jerked in reflex at the thought of that rod striking me on such a tender spot. +“Keep saying it.” + +“I'm Eric's hot, willing woman.” + +I repeated my mantra again and again, but my eyes never left the whip resting against my nipple. +I'd said my mantra maybe twenty times, when the tip of the whip slowly pulled back a few inches from my nipple. +It flicked against me. +The flick of the whip on my erect and tender nipple was a match, creating a bright and white but short flame. +It lit a fuse which sizzled down my body to ignite the firecracker nestled between my legs. +My thighs and back tightened. +My breasts were pushed toward him as my back arched. +I shuddered. +A groan escaped me. +Through my unfocused eyes, I could see his knowing smile. + +“Say it,” he whispered gently as his eyes shone at me. + +I said it, the words coming easier this time. +Again I said it, and again. +I repeated it until it was a natural to say those words as calling my children's names. + +Eric took my head in his two giant hands. +His thumbs wiped the sweat from my forehead. +The rhythm of my voice, my hypnotic chanting, never wavered as I said my mantra over and over. +With his thumbs, he closed my eyes. +All was dark as I continued chanting. +I felt him stand, heard the rustle of his undressing, felt his movement to kneel behind me. + +Slowly. +He did everything so excruciatingly slowly. +He moved my hair from my neck. +I felt his lips at my nape. +Tingles shot through me. +The top button of my blouse moved. +The air, warmed by the heater but so much cooler than my skin, chilled me where my blouse was opened. +Again, his lips on my spine. +Again, tingles. + +Coolness of the air. +The heat of his lips, of his hands, as they released another button. +The greatest heat was between my legs. +It was a swamp of wetness and heat. +I felt that moisture on my thighs. + +Slowly. +Another button. +Another tantalizing touch of his hands, his lips. + +I don't remember leaping off the precipice, but I knew I was in the air falling toward him. +I'd surrendered. + +He made me wait, torturing me by the slow removal of my blouse as his lips and hands and the very air itself teased and caressed my naked back. +When he pushed the blouse over my shoulder, and it floated toward the floor, I ached for relief, ached to have his hands on my breasts, ached to have him in me. +I felt each fingertip slide from back to front across my rib cage to close firmly on my breasts, to feel their softness and tweak my diamond hard nipples. +I moaned. + +He whispered in my ear, “Stop and keep your eyes closed.” + +My heart pounded in my throat as he gently lifted me into the air. +I extended my legs and stood. +His hands were on my skirt. +The cool air rushed over me when the skirt fell away. +He slipped my panties down and pulled them off my feet. +I was naked before him. + +“Mantra,” he whispered. + +Smoothly, easily, without effort and with desire, I said, “I'm Eric's hot, willing woman.” + +The words flowed from me. +They were true. +I was his. +I was burning with heat. +I desperately wanted him to take me. + +How I longed to see his face, see his reaction to my nakedness, to the hot and willing body which belonged to him. +But, obediently, my eyes were closed. +He knelt behind me as I remained standing. +His touch, his lips were hot on my skin, his hands insistent as they traversed the plains between my legs, sliding on the lubricant my desire had excreted. +I was ready, so very ready, yet he caressed me further. +A groan escaped my lips as his lips traced the tendon down the back of my leg. + +“Oh, God, yes!” +I moaned as his two long, strong fingers plumed my depths and a thumb found my clitoris. +The strongest orgasm I could remember exploded in me. +I collapsed on him, softly landing in his arms. +He rolled me on my back. + +He took me quickly, my legs bent and pushed against my breasts, pounding into me in a carnal rhythm. +The power of my explosions was beyond my experience, even beyond my fantasies, as he brought me pleasures undreamed of. +There on a Sunday in my office, on a blue mat slickened by our sweat, he introduced me to the power of our sexuality. +I orgasmed until I was too weak to raise my head. + +He hadn't cum when he pulled out of me. +His strong hands moved me as he wished. +His cock touched my lips. +Without thinking, I took him there, tasting my own sweet juices on him. +Like a child on its mother's breast, I sucked him as I drifted in and out of consciousness. + +Something very cold fell on my cooling, but still hot, body. +Startled, I squirmed to get away. +His hand was tangled in my hair. +His cock was in my mouth. +My head was anchored against him. +I squealed against his cock as he ran an ice cube down my spine. +He laughed when he released me. +I twisted away to look at him. +His eyes were tender, twinkling. +A broad smile covered his face. + +“Back to the land of the living?” +he asked with a sweet softness in his voice. +I blushed and smiled back at him. + +“Refreshments?” + +He offered me a glass of juice and a donut. +I ate and drank as I knelt as his feet with my legs spread. +Deliberately, his eyes moved from mine to traverse down my body. +His eyes were like fingers. +I could feel their touch on me, feel their caress. +My breasts tingled when they lingered there. +I felt them tracing down my stomach. +I twitched between my legs from the heat they created. + +Refreshments finished, the guided me to the position he wanted. +I knelt on all fours. +My legs were spread wantonly, but not to his satisfaction. +He spread me wider. +My breasts swung freely under me. + +“Mantra,” he said softly. + +“I'm Eric's hot, willing woman,” I answered. + +His hand touched my leg. +I groaned. +After a lifetime of small, infrequent orgasms, I'd experienced the greatest ones ever only minutes ago. +How could it be? + +I wanted more. +I wanted him to fuck me until our fucking comprised my entire reality. +This is wrong, the voice inside my head said. +Be quiet, I told it. + +His hands traced my tendons. +They slipped over my skin which was again slick with sweat. +I felt his fingers at the back of my left knee as he gently stroked there. + +“Eric, please.” +My voice caught. + +“Mantra,” he replied. + +“I'm Eric's hot, willing woman.” + +His fingers leisurely caressed my leg and slipped over my ass. +One finger traced down the crack until it rested on the opening. +I felt it quiver as he tested it and withdrew. +My voice continued as his hands kneaded my ass cheeks and tantalized my stomach and legs. + +“Stop,” he said as his hands left my body. + +“Karen, I want you to be more vocal. +When we make love, you're a quiet as a little mouse. +I want to hear from you. +Share your joy, your passion. +Talk. +Talk when I touch you, when I fuck you.” + +“Yes, Eric,” I replied. + +“Not only do I want to hear screams of passion from you, I want you to talk freely about your feelings.” + +“Yes, Eric.” + +My voice was soft and sexy, making the saying of his name a caress of us both. +He heard it as I did. +He gently stroked my face. +Like a kitten, I pushed my head against his hand. + +“Where do you want me to touch you?” +he asked. + +“Between my legs.” + +“That's your pussy. +Say it. +Say 'pussy'.” + +“Pussy.” + +“What do you want?” + +“Stroke my pussy, Eric. +Oh. +Oh. +Yes. +Like that. +No. +Don't stop. +Please.” + +“What are you?” + +“I'm your hot, willing woman. +Please take me again.” + +My words reverberated in my head. +I'd said it voluntarily. +I said what I'd been denying. +Tears moistened my cheeks. +The admission was a weight lifted from me. +A weight of sexual denial. +I sobbed tears of joy. +Oh, god, it felt so good! +Free of the weight of denial. +Free from self-imposed restraints on my sexuality. +Free to be his. +But you're not free. +You're George's wife, the voice said. +No, I'm Eric's hot, willing woman. +I'm his, I told the voice. + +Eric pulled me into his arms. +Crying, I curled up in his lap as he whispered sweet nothings in my ear and comforted me. +He was tender and loving. +It felt good to be there, surrounded by him, held against the strength of his body. +He kissed me. +Not a controlling, demanding kiss, it was soft and gentle. +His hands caressed me. + +I looked up into his eyes. + +“What are you? +Tell me again.” + +“I'm yours, Eric. +I'm your hot, willing woman. +Please make love to me.” + +“Make love?” + +He was teasing me. +Yes, I wanted him to make love to me, to possess me sweetly and tenderly. +Later. +Now I wanted him to fuck me, to overpower me, to pin me against the floor with his cock. + +“Fuck me,” I whispered. +“Fuck me long and hard. +Fuck your woman until she passes out.” + +I turned beet red and goose bumps popped out all over me. +My own shyness and modesty had always prevented me from using dirty words like fuck. +Those words weren't dirty now. +They were good words, words which expressed how I felt about a man. + +Eric smiled as he said, “Get on all fours again, Karen.” + +As I took the position he wanted, I began to shake in eager anticipation of what we were doing, of his commanding me, of my own willing surrender. +Wetness again oozed from between my legs. +Sweat formed on my skin. + +“Talk to me,” he said. +His voice was soft but firm. +Very firm. +“Tell me where my hands are, what they're doing to you, how you feel.” + +“Yes, Eric. +No. +Don't stop.” + +“Stop what?” + +“Eric, please.” + +“Talk to me.” + +“Stroke my breasts again.” + +“How?” + +“Oh. +Like that. +Your fingers sliding down. +Pulling my nipples. +Squeezing them.” + +“You like that?” + +“Yes. +Please.” + +“And this?” + +“Yes.” + +“Be still.” + +“I can't be still. +Your hand. +On my leg.” + +“What do you want?” + +“Move it. +No. +Not like that. +Higher. +More. +Eric, why are you torturing me?” + +“Is this torture?” + +“Yes. +Oh, god. +Don't stop!” + +“Stop what? +Tell me.” + +“My… my pussy. +Stroke my pussy. +And my breasts. +Pull my nipples. +Oh, yes.” + +“You like that?” + +“Yes. +Oh, yes.” + +“And this? +Do you want me there?” + +“Yes. +There too. +I want you everywhere.” + +“Do you like this, Karen?” + +“Yes.” + +“Talk. +Tell me what you like.” + +“I like you touching me, your hands caressing my body. +All of my body. +I like you commanding me, taking me, owning me. +Please, Eric, don't ever stop.” + +“Stop what?” + +“Pull them. +Pull my pussy hairs. +It sends shocks through me. +Oh, god, Eric. +Fuck me! +Eric, enough foreplay! +I need to be fucked!” + +“When I'm ready,” he said. + +In a flash, I spun. +Like a tigress, I sprang, knocking him on his back. +He looked startled as I straddled him. +I grabbed his cock and held it where I wanted it. + +“Now! +Like this!” +I snapped as I slammed my hips downward, burying him in me. + +An orgasm started in my curling toes. +I threw back my head and laughed. +I heard him grunt as I was lifted up. +His cock came out of me, leaving my orgasm unfulfilled. + +“No!” +I screamed as he slammed me on my back. +His strong hands held my crossed wrists over my head, pinning me. +I squirmed trying to find his cock with my pussy. +I struggled to breathe, gasping loudly. +My skin was on fire. +I was crying again. + +“Goddamn you, Eric,” I yelled in his face which was over me like an animal over its prey. +“Fuck me, you sonofabitch! +Fuck me hard! +Fill me with your cum! +Make me preg…” + +The word caught. +Pregnant. + +We were frozen in time: he over me; I pinned under him. +He looked shocked. +It'd never occurred to him, I wasn't using birth control. + +Why was I unprotected? +Why had she tricked me? +She—the woman who wanted to be possessed by him. +Why didn't I realize it? +I hadn't thought of it before that instant. +It dawned on me like a light clicking on. +She wanted it. +She wanted this powerful, masculine creature to give her his child. +She wanted her belly bloated from him. +Hers? +My belly. +Me. +Not she. +Me. + +Stop! +You can't have another man's child! +the voice is my head screamed. +The humiliation, the shame. +Stop! +Do it! +You want another child. +You want Eric's child. +What am I doing? +What? + +I screamed “no, stop” and pushed with all my might to free myself. +I didn't break his hold on me as he pinned me to the floor. +I didn't budge him. +It wasn't my decision. +Not now. +It was his. +One word. +One thought. +Such power in one little thought. + +Eric's intensity exploded. +His face was red and wild. +His were animal's eyes, like a lion on the scent. +Roughly his hand spread the lips of my pussy. +His cock slammed into me. +He rutted like a wild beast, with small grunts—uh, uh, uh— each time his pubis hit mine. + +He wants you to have his baby, the voice said. +Yes, I replied. + +I felt the warmness again, the same warmness I felt when he bit my neck. +My body opened to him, my legs wide and relaxed, my arms flaccid above my head. +Externally I felt a numbness. +Internally, I felt my pussy relax on each powerful thrust to give him the deepest access to me, and tighten on each withdrawal to keep him from leaving. + +I felt like my womb was opening, like a flower in the sun—a flower who wanted to be pollinated. + +“Fuck. +Me. +Fuck. +Me. +Fuck. +Me,” I chanted. + +Eric growled as his face contorted. +His frantic pounding intensified. + +“Hard. +er. +Hard. +er. +Put. +your. +seed. +in. +me.” + +Incoherent words spewed from me as his fingers dug into my shoulders. +He gasped and thrust with a last mighty lunge, holding himself deep in me. +I felt his explosion. +I heard his laugh. + +The muscles of my pussy spasmed in a rolling, pulling motion. +My pussy held him in her and milked his seed from him. +She pulled his seed toward the opening of her womb—toward her egg. +There was no blinding orgasm, only a series of small ones: an orgasm each time my pussy milked his cock. + +“So good. +So good,” I mewed. + +He collapsed on me. +Neither of us moved except the twitching of relaxing muscles. +He softened there, his cock plugging me to prevent the escape of his precious liquid. +When he slipped from me, I cleaned him as I'd been taught. +I took from me what he had left, tasting his nectar and licking my fingers clean. + +We dressed in silence. +He had not spoken since he pulled out of me that last time. +He was lost in thoughts he didn't share. +He locked the office door and helped me to my car. + +“Eric?” + +He looked at me for the first time since he was in me. + +“All you all right?” + +“Yes. +Are you?” + +“Yes. +I'm very much all right.” + +“Are you fertile?” +he asked. + +“I'm ovulating now,” I answered. + +I said it proudly. +I stood erect with my shoulders back and breasts thrust forward. +My head was held high. +Unabashedly, I looked him in the eyes. +I was a female animal, confident of my sexuality. +I relished myself, my gender. +I was woman. +I was the woman this powerful, virile man wanted, took and made his. + +His eyes were questioning, probing. +Then, his expression changed. +He smiled and exuded masculine power and confidence. +It was not evil or cruel. +It was loving, showing the pride of a man with his woman. + +“You're my woman now, Karen. +You belong to me.” + +How can that be? +the voice said. +He's engaged to Polly. +You're married to George. + +“Yes, Eric. +I do.” + +“We're just beginning. +I'll expect much from you.” + +I moved against him, pressing my breasts into his chest, my arms around his waist, my face raised toward his. +His leg was between mine. +I rubbed my pussy against his thigh. + +“I'll take whatever you give. +I'll do whatever you ask,” I said before I kissed him. + +No one was home when I arrived. +I took a long, hot bath. +My shoulders and hips were bruised where he'd held me. +I could see the tips of his fingers blue in my flesh. +My muscles ached from exertion. +My pussy was sore, a good soreness from the pleasure we'd shared. +My heart soared. +My over wrought mind daydreamed of him. + +I'd surrendered. +I was Eric's. +His woman. +His hot, willing woman. +Anyone could see that in me. +See it in my face, my eyes, in the marks on my body he left when his passion took me. + +What they could not yet see was the greatest evidence of my surrender. +It was hidden deep in my body. +It would grow there until it was hidden no more, until I blossomed as proof of my belonging to him. + +Exhausted and satisfied, I crawled into bed. + +You've given yourself to him, the voice said. +Yes, I answered. +You'll feel horrible about what you've done. +Maybe, but for now I'm floating on air. +You're pregnant with his child, she said. +Yes. +I am. +But what about tomorrow? +I'll worry about tomorrow, tomorrow. +Hush now. +I want to sleep. + +In a moment, I was in a deep and sweet slumber. \ No newline at end of file diff --git a/README.md b/README.md index d4df603..5b1c0df 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,10 @@ # markepub + +normalize-md + +inplace, take markdown and + +- remove double empty lines +- add line break after every full-stop + diff --git a/markepub/__init__.py b/markepub/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/markepub/de_meta.py b/markepub/de_meta.py new file mode 100644 index 0000000..f9380c6 --- /dev/null +++ b/markepub/de_meta.py @@ -0,0 +1,156 @@ +from collections.abc import Mapping, Sequence + +import pandoc +from lxml import etree +from lxml.builder import E +# noinspection PyUnresolvedReferences +from pandoc.types import Meta, MetaMap, MetaList, MetaBool, MetaString, MetaInlines, MetaBlocks, Str, Emph, Underline, \ + Strong, Strikeout, Superscript, Subscript, SmallCaps, Quoted, Cite, Code, Space, SoftBreak, LineBreak, Math + +from util import get_xhtml_template + + +def resolve_inline(value): + if isinstance(value, Str): return value[0] + # if isinstance(value, Emph): return value + # if isinstance(value, Underline): return value + # if isinstance(value, Strong): return value + # if isinstance(value, Strikeout): return value + # if isinstance(value, Superscript): return value + # if isinstance(value, Subscript): return value + # if isinstance(value, SmallCaps): return value + # if isinstance(value, Quoted): return value + # if isinstance(value, Cite): return value + # if isinstance(value, Code): return value + if isinstance(value, Space): return ' ' + if isinstance(value, SoftBreak): return ' ' + if isinstance(value, LineBreak): return '\n' + # if isinstance(value, Math): return value + return value + +def resolve_meta_value(value): + if isinstance(value, MetaMap): return PyMetaMap(value) + if isinstance(value, MetaList): return PyMetaList(value) + if isinstance(value, (MetaBool, MetaString)): return value[0] + if isinstance(value, MetaInlines): return PyMetaInlines(value) + if isinstance(value, MetaBlocks): return PyMetaBlocks(value) + return value + +class _Sequence(Sequence): + + def __getitem__(self, index: int): + return self._data[index] + + def __len__(self) -> int: + return len(self._data) + + def __init__(self, p) -> None: + self._data = [v for v in p[0]] + + +class PyMetaBlocks(_Sequence): pass +class PyMetaInlines(_Sequence): pass + + +# noinspection PyMissingConstructor +class PyMetaList(_Sequence): + + def __init__(self, p) -> None: + self._data = [resolve_meta_value(v) for v in p[0]] + + +class PyMetaMap(Mapping): + + def __getitem__(self, key: str, /): + return self._data[key] + + def __len__(self) -> int: + return len(self._data) + + def __iter__(self): + return iter(self._data) + + def __init__(self, pandoc_meta): + self._data = {k: resolve_meta_value(v) for k, v in self._pandoc[0].items()} + + +if __name__ == '__main__': + data = Meta({ + 'creator': MetaList([ + MetaMap({ + 'file-as': MetaInlines([ + Str('Riter,'), + Space(), + Str('E.Z.')]), + 'role': MetaInlines([ + Str('aut')]), + 'text': MetaInlines([ + Str('E.Z.'), + Space(), + Str('Riter')])})]), + 'description': MetaInlines([ + Str('Karen'), + Space(), + Str('meets'), + Space(), + Str('the'), + Space(), + Str('man'), + Space(), + Str('she'), + Space(), + Str('can’t'), + Space(), + Str('resist'), + Space(), + Str('—'), + Space(), + Str('the'), + Space(), + Str('man'), + Space(), + Str('who'), + Space(), + Str('can'), + Space(), + Str('do'), + Space(), + Str('anything'), + Space(), + Str('to'), + Space(), + Str('her,'), + Space(), + Str('and'), + Space(), + Str('she'), + Space(), + Str('will'), + Space(), + Str('love'), + Space(), + Str('it'), + Space(), + Str('—'), + Space(), + Str('and'), + Space(), + Str('him.')]), + 'language': MetaInlines([Str('en')]), + 'published': MetaInlines([Str('2002-07-24')]), + 'source': MetaInlines([Str('https://www.bdsmlibrary.info/stories/story.php?storyid=1101')]), + 'subject': MetaList([ + MetaInlines([Str('M/f')]), + MetaInlines([Str('pregnant')]), + MetaInlines([Str('spanking')]), + MetaInlines([Str('D/s')]), + MetaInlines([Str('real')]), + MetaInlines([Str('reluctant')]), + MetaInlines([Str('Serious')])]), + 'title': MetaMap({ + 'file-as': MetaInlines([Str('Karen')]), + 'text': MetaInlines([Str('Karen')])})}) + + m = PyMetaMap(data) + + print(m) diff --git a/markepub/frontmatter.py b/markepub/frontmatter.py new file mode 100644 index 0000000..cda3def --- /dev/null +++ b/markepub/frontmatter.py @@ -0,0 +1,215 @@ +import datetime +import uuid +from lxml import etree +from lxml.builder import E + +import yaml + +from markepub.util import get_xhtml_template + +# DublinCore Elements: +# - contributor +# - coverage +# + creator +# + date +# + description +# - format +# + identifier +# + language +# + publisher +# - relation +# - rights +# + source +# + subject +# + title +# - type + +# Calibre +# + series +# + series_index + + +DC_NAMESPACE = "http://purl.org/dc/elements/1.1/" +OPF_NAMESPACE = "http://www.idpf.org/2007/opf" +DC = f'{{{DC_NAMESPACE}}}' +OPF = f'{{{OPF_NAMESPACE}}}' + + + + +class _Scalar: + CLASS = '' + TAG = DC + CLASS + + def __init__(self, value): + self.value = value.strip() if isinstance(value, str) else value + + def __str__(self): + return str(self.value) + + def __repr__(self): + return self.value + + @property + def element(self): + e = etree.Element(self.TAG) + e.text = self.value + return e + + @property + def as_title_page(self): + return E.tr(E.td(self.value, **{'class': self.CLASS})) + + +class _HasFileAs(_Scalar): + + def __init__(self, value: str, file_as: str = None): + super().__init__(value=value) + self.file_as = file_as.strip() + + @classmethod + def from_yaml(cls, value: str | dict[str, str]): + if isinstance(value, str): + return cls(value=value) + return cls(value=value.get('text', value['value']), file_as=value.get('file-as', None)) + + @property + def element(self): + e = super().element + if self.file_as: + e.set(OPF + 'file-as', self.file_as) + return e + + +class Author(_HasFileAs): + CLASS = 'author' + TAG = DC + 'creator' + + @property + def element(self): + e = super().element + e.set(OPF + 'role', 'aut') + return e + +class Title(_HasFileAs): + CLASS = 'title' + + +class _Date(_Scalar): + TAG = DC + 'date' + + +class Published(_Date): + + @property + def element(self): + e = super().element + e.set(OPF + 'event', 'publication') + return e + +class Modified(_Date): + + def __init__(self): + super().__init__(value=None) + + @property + def element(self): + e = super().element + e.text = datetime.datetime.now(datetime.UTC).strftime('%Y-%m-%d %H-%M-%S') + e.set(OPF + 'event', 'modification') + return e + +class Description(_Scalar): + CLASS = 'description' + + +class Identifier(_Scalar): + CLASS = 'identifier' + + def __init__(self, value: str = None): + if value is None: + value = uuid.uuid4().urn + super().__init__(value=value) + + @property + def element(self): + e = super().element + e.set('id', 'BookId') + e.set(OPF + 'scheme', 'UUID') + return e + +class Language(_Scalar): + CLASS = 'language' + +class Publisher(_Scalar): + CLASS = 'publisher' + +class Source(_Scalar): + CLASS = 'source' + +class Subject(_Scalar): + CLASS = 'Subject' + +class _Calibre(_Scalar): + + def element(self): + return etree.Element('meta', name=f'calibre:{self.TAG}', content=self.value) + +class Series(_Calibre): + TAG = 'series' + +class Index(_Scalar): + TAG = 'series_index' + + + +class Frontmatter: + creators: list[Author] = None + description: Description = None + identifier: Identifier = None + index: Index = None + language: Language = None + published: Published = None + publisher: Publisher = None + series: Series = None + source: Source = None + subjects: list[Subject] = None + title: Title = None + + def __init__(self, **kwargs): + self.creators = [kwargs['creator']] if 'creator' in kwargs else None + self.subjects = [kwargs['subject']] if 'subject' in kwargs else None + self.__dict__.update(kwargs) + + @property + def as_title_page(self): + doc = get_xhtml_template() + root = doc.getroot() + root.append( + E.head( + E.title(self.title), + E.link(href="../Styles/title-page.css", type="text/css", rel="stylesheet"), + ) + ) + table_body = E.tbody() + root.append(E.body(E.table(table_body), **{'class': 'title-page'})) + + if self.creators: + items = [str(self.creators[0])] + for i in range(1, len(self.creators)): + items.extend((E.br(), self.creators[i])) + table_body.append(E.tr(E.td(*items), **{'class': 'author'})) + + table_body.append(self.title.as_title_page) + + if self.series: + items = [str(self.series)] + if self.index: + items.extend((E.br(), str(self.index))) + table_body.append(E.tr(E.td(*items), **{'class': 'sub-title'})) + + if self.description: + table_body.append(self.description.as_title_page) + + return doc + diff --git a/markepub/normalize-md.py b/markepub/normalize-md.py new file mode 100644 index 0000000..3a796e1 --- /dev/null +++ b/markepub/normalize-md.py @@ -0,0 +1,49 @@ +import re + + +def normalize_markdown(text: list[str]): + + front_matter = [] + + if text[0] == "---": + text.pop(0) + while text: + line = text.pop(0) + if line == "---": + break + front_matter.append(line) + + main_matter = [] + buffer = [] + + while text: + line = text.pop(0) + if not line: + if len(buffer) > 0: + main_matter.append(' '.join(buffer)) + buffer.clear() + else: + buffer.append(line) + + if len(buffer) > 0: + main_matter.append(' '.join(buffer)) + + SPACES = re.compile(r' +') + ENDS = re.compile(r'([!?.])\s') + ENDS2 = re.compile(r'([!?.])”\s') + # normalize spaces... + for i in range(len(main_matter)): + main_matter[i] = SPACES.sub(' ', main_matter[i]) + main_matter[i] = ENDS.sub(r'\1\n', main_matter[i]) + main_matter[i] = ENDS2.sub(r'\1”\n', main_matter[i]) + + result = '---\n' + '\n'.join(front_matter) + '\n---\n\n' if front_matter else '' + return result + '\n\n'.join(main_matter) + + +if __name__ == '__main__': + with open('Karen.md', encoding='utf-8') as f: + result = normalize_markdown([l.rstrip() for l in f.readlines()]) + + with open('Karen.md', 'w', encoding='utf-8') as f: + f.write(result) diff --git a/markepub/title_page.py b/markepub/title_page.py new file mode 100644 index 0000000..c12c456 --- /dev/null +++ b/markepub/title_page.py @@ -0,0 +1,165 @@ +from lxml.builder import E +from lxml import etree +import pandoc +from pandoc.types import * +from util import get_xhtml_template + + +def class_(*args): # class is a reserved word in Python + return {"class": ' '.join(args)} + + +def make_title_page(pandoc_meta: Meta) -> etree.ElementTree: + meta_dict = pandoc_meta[0] + items = [] + if 'creator' in meta_dict: + # either scarlar (used as value) + # or a List + author = None + if isinstance(meta_dict['creator'], MetaInlines): + author = pandoc.write(meta_dict['creator']) + elif isinstance(meta_dict['creator'], MetaList): + for i in meta_dict['creator'][0]: + if 'role' in i[0] and i[0]['role'] != 'aut': + continue + if 'text' in i[0]: + author = pandoc.write(i[0]['text']) + if author: + items.append(E.tr(E.td(author.strip(), class_('author')))) + + title = '' + if 'title' in meta_dict: + if isinstance(meta_dict['title'], MetaInlines): + title = pandoc.write(meta_dict['title']) + elif isinstance(meta_dict['title'], MetaMap): + if 'text' in meta_dict['title'][0]: + title = pandoc.write(meta_dict['title'][0]['text']) + if title: + items.append(E.tr(E.td(title.strip(), class_('title')))) + + + if 'sub-title' in meta_dict: + sub_title = None + if isinstance(meta_dict['sub-title'], MetaInlines): + sub_title = pandoc.write(meta_dict['sub-title']) + elif isinstance(meta_dict['sub-title'], MetaMap): + if 'text' in meta_dict['sub-title'][0]: + sub_title = pandoc.write(meta_dict['sub-title'][0]['text']) + if sub_title: + items.append(E.tr(E.td(sub_title.strip(), class_('sub-title')))) + + + if 'description' in meta_dict: + description = None + if isinstance(meta_dict['description'], MetaInlines): + description = pandoc.write(meta_dict['description'], + format='html5', + options=["--wrap=none"] + ) + if description: + items.append(E.tr(E.td(description.strip(), class_('description')))) + + doc = get_xhtml_template() + root = doc.getroot() + root.append( + E.head( + E.title(title.strip()), + E.link(href="../Styles/title-page.css", type = "text/css", rel = "stylesheet"), + ) + ) + if items: + root.append( + E.body( + E.table( + E.tbody(*items), + ) + ) + ) + + return doc + + +def prettyprint(element, **kwargs): + xml = etree.tostring(element, pretty_print=True, **kwargs) + print(xml.decode(), end='') + +if __name__ == '__main__': + data = Meta({ + 'creator': MetaList([ + MetaMap({ + 'file-as': MetaInlines([ + Str('Riter,'), + Space(), + Str('E.Z.')]), + 'role': MetaInlines([ + Str('aut')]), + 'text': MetaInlines([ + Str('E.Z.'), + Space(), + Str('Riter')])})]), + 'description': MetaInlines([ + Str('Karen'), + Space(), + Str('meets'), + Space(), + Str('the'), + Space(), + Str('man'), + Space(), + Str('she'), + Space(), + Str('can’t'), + Space(), + Str('resist'), + Space(), + Str('—'), + Space(), + Str('the'), + Space(), + Str('man'), + Space(), + Str('who'), + Space(), + Str('can'), + Space(), + Str('do'), + Space(), + Str('anything'), + Space(), + Str('to'), + Space(), + Str('her,'), + Space(), + Str('and'), + Space(), + Str('she'), + Space(), + Str('will'), + Space(), + Str('love'), + Space(), + Str('it'), + Space(), + Str('—'), + Space(), + Str('and'), + Space(), + Str('him.')]), + 'language': MetaInlines([Str('en')]), + 'published': MetaInlines([Str('2002-07-24')]), + 'source': MetaInlines([Str('https://www.bdsmlibrary.info/stories/story.php?storyid=1101')]), + 'subject': MetaList([ + MetaInlines([Str('M/f')]), + MetaInlines([Str('pregnant')]), + MetaInlines([Str('spanking')]), + MetaInlines([Str('D/s')]), + MetaInlines([Str('real')]), + MetaInlines([Str('reluctant')]), + MetaInlines([Str('Serious')])]), + 'title': MetaMap({ + 'file-as': MetaInlines([Str('Karen')]), + 'text': MetaInlines([Str('Karen')])})}) + + doc = make_title_page(data) + + print(etree.tostring(doc, pretty_print=True, xml_declaration=True, encoding='utf-8').decode(), end='') \ No newline at end of file diff --git a/markepub/util.py b/markepub/util.py new file mode 100644 index 0000000..a0a83f7 --- /dev/null +++ b/markepub/util.py @@ -0,0 +1,9 @@ +from lxml import etree + +def get_xhtml_template(): + html = etree.XML('' + '' + '') + tree = etree.ElementTree(html) + return tree \ No newline at end of file diff --git a/pyproject.toml b/pyproject.toml new file mode 100644 index 0000000..69cbf66 --- /dev/null +++ b/pyproject.toml @@ -0,0 +1,10 @@ +[project] +name = "markepub" +version = "0.1.0" +description = "Add your description here" +requires-python = ">=3.13" +dependencies = [ + "lxml>=6.0.1", + "pandoc>=2.4", + "pyyaml>=6.0.2", +]