Looking for writing-related posts? Check out my new writing blog, www.larrykollar.com!

Monday, March 13, 2017 2 comments

The Brass Mechanism, episode 2

Part 1

Image source: Wikimedia Commons
“It’s as tight as I can make it,” said Chakan, clambering out of the hole.

“Maybe it’ll work this time, then.” Liana tugged the ox’s harness. “Pull, ya great thudding beast!”

Chakan admired his wife as she coaxed the ox to keep pulling. She even knows the right language, he thought. The animal strained against its harness, and… “Hoy, it’s coming up!”

“Keep it coming!” Liana told the ox.

“Stay on that side,” Chakan warned. “If the rope snaps…”

“Yar. Easy… easy… ha!” The block surrendered its grip on the surrounding earth and slid up the slope and into the field. “That’s it! Drag it back to the barn!”

At the barn, they returned the ox to its stall with a bag of feed, then looked over their prize. “Eh,” Liana mused, “it might make four or five pavers. Enough for our needs, anyway.”

“Aye. But… look.” Chakan knelt and ran his finger across one side. “Looks like a line here.” He brushed away dirt. “I think it runs all the way around the thing. Like it’s a lid.”

“Ha! Maybe it is a chest full of octagons, then?”

“Could be.” Chakan tugged at the “lid,” but it did not budge. “Probably sealed. Here’s where the plow hit it.” He rubbed at a scuff mark along one side. “Hate to take a hammer to it, we might could use it for something.”

“Here, let me bring the pry tool.” Liana kissed her husband. “Keep looking it over, love. You might find something.”

“Best bring a knife, too,” Chakan called after her. “I doubt I could slip that pry tool into this tiny crack.”

“Hoy, I got an idea. Wait here.”

A few minutes later, Liana had driven an old knife blade all the way around the thin crack, and pounded others into each corner. “Yar,” she said, sitting on the ground opposite from Chakan. “Now, twist your blades on your side, and I’ll twist mine. If we get it right, we might get this thing to slide up. Ready? Now.”

“Hoy, the blades are loose,” said Chakan, after a minute of twisting and pulling. “Aye, we got it up a little.”

“Yar. I think we can get the pry tools in there now.”

The afternoon rolled by, and still they strived to open their prize. At last, they worked the lid a finger’s width up, and yet it would not lift off.

“Is it my imagination,” Liana mused, “or is the lid pulling itself back down? Have you ever seen such a thing?”

“Enough,” Chakan growled, standing over the block and working his fingers into the gap on either side. “This ends now.”

“Don’t hurt your back,” Liana warned.

“Eh, I’m more worried about my hands here.” Chakan gripped the block with his boots, pushing with his legs and pulling with his hands. “Get loose, ya Goblin-spawn!” He strained, his accent and curses growing thicker. “Ah, that’s it… come off!” At last, the lid gave way with a pop and a tearing noise, neither of which had they expected to hear from a stone box. Chakan dropped the lid in the soft dirt and panted for breath.

“What in the Seventeen Hells is this?” Liana wondered, looking into the box.

“Eh. Shoulda just handed it over and let the sages do the hard work,” Chakan grumbled, thinking about the Rules of Finding, part of the agreement they signed in exchange for the land grant: Stonework, you may do with what you will. Money is yours but for the normal tax. Items of interest should be turned over to the sages, that they may be studied and benefit the entire nation. “That’s an item of interest if I ever saw one.”

“Yar. We’ll turn it over. But the Rules don’t say we have to turn it over right away. Let’s take a look at it ourselves, first. We did the hard work of getting the box out of the ground and getting it open, so we’ve earned that much.” Liana looked at the box. “Clever folk. Whoever boxed this thing up meant it to survive the ages.” She pointed at a layer of black gunk around the top edge, then turned the lid over. “They painted pitch on the inside of the box and lid, see? It sealed the box tight. That’s why it was so hard to open. I wonder how old this thing is.”

“Well, everything in the ground out here has to be from Camac That Was, nay?”

“Yar.” Liana reached into the box and lifted the contents out. Some kind of mechanism, it seemed; the tarnished brass struggled to reflect the light. “Welcome back to the sun. Now what are you?” She looked down. “Chakan, there’s a book in there. Maybe it’ll tell us what this thing is.”

“If we can make heads or tails of it.” Chakan picked up the book, wincing at the twinge in his back. “I just hope this was worth the effort.”

continued…

Tuesday, March 07, 2017 No comments

Tech Tuesday: Roll Your Own Writing System, part 4: MultiMarkdown and Pandoc

The series rolls on…

In Part 1, we had a look at Markdown and the five or six formatting symbols that cover 97% of written fiction. Part 2, showed how you can use Markdown without leaving the comfort of Scrivener. Part 3 began exploring eBook publishing using files generated from both Scrivener and directly from MultiMarkdown.

Today, we’re going to take a brief look at a different tool you can use to publish MultiMarkdown files.

Pandoc describes itself as a Swiss Army knife for markup languages, but it goes farther than that. More than markup languages, it converts to and from common word processor formats and can even convert directly to EPUB. You can mess with templates to get the output really close to production-ready, but that's a little beyond the scope of our series here. In real terms, it’s not any faster than loading a prepared HTML file into a skeleton EPUB; both methods need a little cleanup afterwards.

This sounds at first like it’s just an alternative to using MultiMarkdown, but it goes a little farther than that. One problem with embedding HTML in your Markdown files, none of it gets converted to other formats. So you can’t just take your MultiMarkdown file and create an OpenOffice file by running:

multimarkdown --to=odf story.md >story.fodt

Because all your section breaks disappear. Pandoc ignores embedded HTML as well… so again, what does Pandoc buy you?

Well, once you have your HTML file, you can use Pandoc to convert that HTML file to the word processor format of your choice.

pandoc -f html -t odt -o story.odt story.html

And there’s the answer to how you make your story available for beta readers who want a word processor file. If you’re willing to tolerate some sloppy typesetting, you could use it for your print document as well. Pandoc also supports docx and rtf as output formats.

Now What?


Now you can output your MultiMarkdown file in a number of formats, including eBook (direct and indirect) and common word processor formats.

Next week, we’ll look at some special features of MultiMarkdown that you might find useful.

Comments? Questions? Floor’s open!

Monday, March 06, 2017 3 comments

The Brass Mechanism, episode 1

Difference engine
Image source: Wikimedia Commons
The thought crossed Chakan’s mind: Plowing’s a man’s work.

The better part of himself spoke up immediately. You know better, ya lout. Reacher women plow when they have to. Two years you’ve been a Matriarchy man now, you shouldn’t think like that anymore.

He looked across the field, where his wife Liana plowed with the other ox. And she’s plenty able to do it, a third part of him thought, with mixed admiration and desire. Chakan had always found sturdy women more attractive than either the willowy Reacher standard, or the round soft kind favored in Westmarch and the Alliance cities. They would be married a year, come the autumn equinox, and Chakan often thought how lucky he was, to—

The plow lurched, nearly jerking out of Chakan’s hands. His surprised “Hoy!” did not cover the scraping of the plow blade dragging across a rock. “Hold up, ya lump!” he yelled at the ox.

“What happened?” Liana called from her side of the field. They had each taken half to plow, and now they were close together. Closer than Chakan had thought; they were nearly finished.

“We found another paver, like as not.”

“That’s good. We need a few more to finish the walkway.”

“Maybe that’s why the Crown granted us this patch,” said Chakan. “We’ll never find the end of clearing it.”

“Every time I think about it, I marvel at how vast Old Stolevan must have been. You can hear legends of Camac and Stolevan carrying a million folk each until your ears fall off, but to think this was part of the city…” Liana trailed off, looking toward Queensport, visible to the southeast. “Its boundaries stretched clear out to here and beyond. Well, mark the spot and we’ll dig it up after lunch.” She gave him a wicked grin. “But not right after lunch, mind you.”


“How much longer?” Chakan asked, somewhat later, lying in bed with his wife. This was their favorite dessert after any meal.

“Oh, the Healer said not to worry about it right away. I’m not even showing yet.” Liana had kindled two months ago, to their mutual delight. “If all goes well, we might not have to stop.”

“That’s good to know.” He rolled onto his side, draping an arm across his wife.

“Will you love a daughter as much as a son?” she asked.

“Of course. She won’t be the only one we have.”

Liana stroked his hip, then slid her fingers down. “Good. Hoy… I think you’re ready for more.”

It was mid-afternoon before they pushed themselves grumbling out of bed. But Liana was right; they needed a few more pavers. They had dug up many cut stones last fall and laid them between their house and the barn—a tiny barn by the standards Chakan had grown up with, big enough to house their oxen and what little hay they needed for a southern winter. They were plowing two months before farmers would in the Northern Reach, and needed far less hay to keep their livestock fed through the winter. Still, what they called “winter” along the southern coast was wet, and the paving stones helped them stay out of the mud.

They took shovels, a pick, and rope from the barn, then trudged across the field toward the stick that Chakan had used to mark the spot.

“Maybe this one will be a chest full of octagons,” Liana quipped, getting to work.

“Aye. And maybe we’ll get a winter without snow,” Chakan laughed, digging next to her.

“Snow?”

“Oh, aye. A Reacher saying. The land up there is still covered with it, and here we are getting ready to plant.”

“No, love.” Liana tossed another shovel of dirt aside. “What is snow?”

“You don’t—of course you don’t know about snow, if ya grew up in Queensport. Well…” Chakan stopped to think. “It’s like rain, but it’s frozen before it falls from the sky. Instead of drops, it comes down in tiny little flakes. Enough to bury the land, sometimes as high as me.”

“Ah, I’ve seen that a time or two. Enough to cover the ground, sometimes, but…” Liana grounded the shovel. “Tell me true, Chakan. Is that a tall tale you tell about it covering the land?”

“Tell ya true, Liana. The ground around the warm springs stays clear, but everywhere else? Snow as far as ya can see.”

“No wonder you moved south,” she grinned.

“Nay, nay. I moved here…” he stopped, realizing she was teasing him. But the warmer climate was the least of his reasons to leave his old home for this strange nation where women ruled. As a younger son, he had little to inherit. In his youth, he learned he was not cut out for the military. The one girl he fancied took up with a boy with better prospects. He hired himself out as a roustabout, a freelance farm hand, and found he liked the work. But that desire for one’s own land, one’s own place, was in the Northerner blood. The Matriarchy’s embassy promised land to those who would emigrate and embrace their customs…

“Hoy, ya lazy lout, stop woolgathering!” Liana laughed. “I think I just hit it.”

“Eh? Sorry.” Chakan put his back into it, and soon they looked at the corner of a stone.

“That might be enough to finish the walkway,” Liana mused. “Depends on how deep it goes.”

“Only one way to find out,” Chakan grinned, and began digging around it.

A few minutes later, they stopped. “Eh,” Liana grumbled. “Looks like a block. ‘Twould make a fine cornerstone for a tavern, but it ain’t much good for us.”

“We could always hire a stonecutter to split it,” Chakan pointed out. “That’s enough stone to finish the walkway, and give us a good start on a walk to the road.”

“If she don’t shatter the thing. No telling how long that block has been buried. Well, fetch an ox, husband. We’ll get this out of the field, then we’ll decide what to do with it.”

continued…

Saturday, March 04, 2017 7 comments

Kneecapped, 2017 edition

Tonya, Queen of Kneecaps
image source: about.com
Last Wednesday, the knee started twinging. I didn’t give it much thought, because it does that once or twice a year. I baby it a few days, it gets better. This time, it waited until Monday to kick it up a… dozen notches or more. It hasn’t hurt this bad since before the surgery, and that was before Mason was born.

The normal RICE (Rest, Ice, Compression, Elevation) routine hasn’t seemed to help—in fact, icing it seems to only make it worse, and it can only stand being in a knee brace for an hour or so. Sleeping has been a chore all week, because I can’t find a comfortable position. One of the recliners almost works, and I got a relatively decent amount of sleep last night, but I’m having to watch myself to not get cranky with the kids or the wife. I’ve had to work at home all week, and the wife has done her usual “leave Charlie with me while I’m supposed to be working and go take care of everyone else” routine.

When it had not improved by Tuesday, I got a doctor’s appointment. It started feeling a little better by the time I arrived, of course. They sent me out for X-rays anyway, and I got the results yesterday: arthritis and bone spurs.

Next step is the orthopedist who roto-rooted this knee almost eight years ago. That visit’s scheduled for Tuesday, and I wonder how it’s going to turn out. Maybe scraping the thing every seven or eight years will keep it mostly functional. I’m not sure how I feel about a replacement just yet.

But I’ll keep you posted.

Friday, March 03, 2017 3 comments

Pilgrims Charlie's Progress

I won’t sit here forever!
While the evaluations show significant development issues, most related to Fetal Alcohol Syndrome, Charlie is making progress. In the last week, he’s finally started sitting himself up, and he’s almost crawling. The report from the psychs lays it out—he’s about six months behind, and they want to confirm he doesn’t have cerebral palsy.

“He’ll have issues with this pretty much his whole life,” they said. I asked if Charlie would be able to become a functioning adult. “It’s too early to tell at this point.” While I won’t, I SO want to punch Badger Boobs for what she did to him. At least she’s been fixed, so she can’t do that to another baby.

Charlie, on the other hand, is a very happy little rugrat. His appetite came roaring back a couple days ago, after the congestion (probably associated with teething) went away. He’s up to ten teeth now, and continues to want to let you feel them. Especially the sharp ends.

He gave me a little scare the other morning. He woke up, chattering contentedly in the crib, about the same time I was getting up. I walked by on the way to the coffee pot, and he had rolled against the end of the crib, legs in the air and playing with the bars. When I came back, he had gotten into his knees and was looking over the side rail with his hands dangling over. Suddenly, the coffee had to be put down while I grabbed the kid. It’s high time to lower the crib mattress, as much as we like the height for diaper changes.

The Pack&Play that used to be his bed is now his playpen. He’ll spend a lot of time in it, until he wears himself out; then he lays down and cries until someone rescues him. Sit him next to Mason, and his mood goes Instant Sunshine, though. I swear, I’ve never known anyone who loves someone the way Charlie loves Mason.

The stationary “roundabout” (it’s like a walker with a base instead of wheels) is also a common play area for him, but for some reason… put him in it, wait 15 minutes, Atomic Diaper. Every time.

Chewed right through the story
His favorite thing these days (besides people) is paper. I keep a sheaf of an old manuscript next to my keyboard, and he likes to pull a sheet (or a bunch of sheets), wave them around, crumple them, maybe chew on them, then drop them on the floor and get another handful. If my books ever become some cult classics for the ages, historians are going to wail and gnash their teeth at what Charlie did to some of that early work, nyuk nyuk.

Ah, if Charlie could talk, what would he say? “Play with me, Mason!” or “Feed me!” would be the top two.

Wednesday, March 01, 2017 No comments

Tech Tuesday: Roll Your Own Writing System, part 3: Publishing MultiMarkdown

The series rolls on…

In Part 1, we had a look at Markdown and the five or six formatting symbols that cover 97% of written fiction. Last week, we saw how you can use Markdown without leaving the comfort of Scrivener.

This week, it's time to build an eBook using MultiMarkdown output. If you have been cleaning up Scrivener’s EPUB output in Sigil, you should find the process familiar—only, without most of the cleanup part.

First thing, output an HTML file through MultiMarkdown. In Scrivener, click the Compile button and select MultiMarkdown→Web Page in the dropdown at the bottom of the screen.

Under the Overhead

Open Sigil, then import your HTML into a new eBook—or better yet, a “skeleton” eBook with all the boilerplate files already in place.

All you have to do now is to break the file into separate chapters and generate a table of contents. You can save even more time by creating a custom text and folder separator in the last part of Scrivener’s Compile Separators pane:

<hr class="sigil_split_marker"/>

Then, when you’ve imported your HTML file, just press F6 and Sigil breaks up the file for you. If you start with a skeleton EPUB file, you can have a perfectly-formatted EPUB in a matter of minutes. Seeing as it takes me an entire evening to clean spurious classes out of Scrivener’s direct EPUB output, this is a gigantic step forward.

One thing to watch out for: MultiMarkdown inserts a tag, <meta charset="utf-8"/>, at the beginning of the HTML output. EPUB validators choke on this, insisting on an older version of this definition, but all you have to do is remove the line before you split the file.

Breaking Free

Perhaps you want to slip the surly bonds of Scrivener. Maybe your computer died, and your temporary replacement does not have Scrivener—but you saved a Markdown version of the latest in your Dropbox, and your beta readers are waiting.

Scrivener has its own copy bundled inside the app, so you’ll need to download MultiMarkdown yourself. It runs from the command line, which is not as scary as it sounds. In fact, Markdown and MultiMarkdown are very well-suited to a distraction-free writing environment.

After you’ve installed MultiMarkdown, start a Terminal (or Command Line on that Microsoft thing). On OSX, press Cmd-Space to bring up Spotlight. Type term, and that should be enough for Spotlight to complete Terminal. If you prefer, you can start it directly from /Applications/Utilities.

Next, move to the right directory. For example, if your file is in Dropbox/fiction, type cd Dropbox/fiction (remember to reverse the slash on the Microsoft thing).

Here we go…

multimarkdown mybook.md >mybook.html

Now you have an HTML file that you can import into Sigil (just don’t forget to remove that pesky meta tag).

Silly CSS Tricks

Last week, I mentioned a couple of things you can do with CSS to help things along.

First, when you Compile your Scrivener project to MultiMarkdown, click Meta-Data in the options list. You should see some pre-filled options: Title, Author, and Base Header Level. Click the + above the Compile button to add a new entry. Call the entry CSS then click in the text box below and enter ../Styles/styles.css—if you’re using Sigil, it puts all stylesheets in the Styles directory. You can give it another name if you have a stylesheet pre-defined (mine is called novel.css).

Pre-define your CSS

Now open your stylesheet, or create one if you need to. Add the following entries:

p.sectionbrk {
    text-indent:0; text-align:center;
    margin-top:0.2em; margin-bottom:0.2em
}
.sectionbrk + p { text-indent: 0; }
h1 + p { text-indent: 0; }

The first entry formats the sectionbrk class to be centered, with some extra space above and below. The second one is more interesting: it cancels the text indent for the paragraph after a section break. The third entry does the same thing for a paragraph following a chapter heading (you can do this for h2 if needed as well). This is the proper typographical way to format paragraphs following headings or breaks, and you don’t have to go look for each one and do it yourself. I told you this can save a ton of time!

Again… Now What?

Now you can work with MultiMarkdown within Scrivener. You can export it, generate an eBook, and work with the file outside of Scrivener.

Next week, I’ll show you another way to make an eBook from your MultiMarkdown file.

Comments? Questions? Floor’s open!

Tuesday, February 21, 2017 1 comment

Tech Tuesday: Roll Your Own Writing System, Part 2: Markdown in Scrivener

Last week, I showed you a brief introduction to Markdown. I only hinted at why you might want to use Markdown instead of comfortable old bold/italic (and other decorations). I’ll get detailed next week, but here’s a hint: you can save yourself an entire evening of work getting your eBook prepared for publication.

This week, though, we’re going to look at how Scrivener and Markdown work together. TL;DR: Very well, actually.

Scrivener supports a Markdown extension called MultiMarkdown. You don’t have to worry about the extensions, unless you’re writing more technical fiction with tables and the like. For fiction, what I showed you last week should cover all but decorative stuff.

Make a copy of your WIP. Got it open? Original one is closed? Okay, let’s get started.

In Scrivener, click the Scrivenings icon in the toolbar, then click the Draft or Manuscript icon in your Binder (whichever one your story is in). You should now see your entire story laid out in Scrivener.

Click anywhere in the story text, then go to Format menu→Convert→Bold and Italics to MultiMarkdown Syntax. If you use anything other than bold/italic in your writing—like typewriter font for text messages, or blockquotes for letters—you’ll have to go through your manuscript and mark those yourself. This is that other 10% I mentioned last week.

Stylin’

Scrivener has formatting presets, since it only remembers the formatting and not the preset name after you apply it. Not as good as styles, but they work for our purposes.

Markdown uses backticks (a/k/a accent grave) to define typewriter font: `this is a text message`. You can either insert your backticks by hand, or let Scrivener insert them when you publish. I have a preset called Typewriter for this, but we can define a new preset or redefine an existing one. Here’s how it works: any string of text marked “Preserve Formatting” (Format menu→Formatting→Preserve Formatting) gets the backtick treatment at Compile time.

So go find a text message or other small string of typewriter text in your manuscript, and select it. Apply Preserve Formatting as described above, and the text gets highlighted in cyan or light blue.

Now, go Format menu→Formatting and:

  • for a new preset: New Preset from Selection
  • to redefine a preset: Redefine Preset from Selection→(preset name)

For a new preset, enter the name in the dialog box. In both cases, select Save Character Attributes in the dropdown to create a text (as opposed to a paragraph) preset. Now, any time you mark a selection of text as Typewriter (or TextMsg, or whatever you called it), you’ll see it highlighted and in your designated typewriter font.

Looks good, gets converted to backticks. What’s not to like?

To make a block quote, put a > at the beginning of each paragraph in the block, and in any blank lines in between. Add a blank line to the end of the blockquote so the next paragraph doesn’t get picked up as well. Scrivener assumes that preserved-format paragraphs are code blocks, and displayed as-is, so you can’t use its Block Quote preset this way unless you turn off Preserve Formatting. In either case, you’ll have to add the > character.

Okay, ship it!

Not quite. There are still a few things you need to set up before you can get to the Efficiency Nirvana that Scrivener and MultiMarkdown offer.

To see where we need to go, let’s have a look at the output. In Scrivener, click Compile, then go to the Compile For: dropdown at the bottom of the compile window and select MultiMarkdown. You could also try MultiMarkdown→Web Page. Don’t forget to check which directory it’s going in, so you’ll be able to find it. Open it an a text editor (Text Edit, Notepad, whatever you like).

You should now see a few lines at the top with the story and author name, followed by the rest of the story. If you don’t use blank lines between paragraphs, your paragraphs run together in one big blob. There may not be any chapter titles, and likely no section breaks beyond blank lines. So let’s start fixing things. You’ll only have to do these once, or (at worst) once for each project.

Close the file, go back to Compile, and click Separators in the list. For Text Separator, click Custom and then enter the following:

<p class="sectionbrk">&bull; &bull; &bull;</p>

This tells Scrivener to put three bullets between each scene. (Anything Markdown or MultiMarkdown can’t do directly, you can do with HTML.) You’ll want to create or edit a CSS file to format the sectionbrk class the way you want (most people want it centered with a little space above and below). We’ll go over how to automatically link the CSS file to your HTML in a later post.

Set the other parts to Single Return. That’s all you have to do for Separators. In the other options:

  • Formatting: Check Title for Level 1 (and lower levels, if needed) folders.
  • Transformations: Check:
    • Straighten Quotes
    • Convert em-dashes
    • Convert ellipses
    • Convert multiple spaces
    • Convert to plain text: Paragraph Spacing
  • Replacements:
    • Replace (Option-Return twice); With (Option-Return)<p class="sectionbrk">&nbsp;</p>(Option-Return twice)

The Transformations section sounds a little scary, but MultiMarkdown re-converts those text entries to their nice typographical equivalents. I suggest you do it this way for more consistent results. The Replacements entry just inserts a blank section break that won’t get deleted during a conversion. You could just insert a non-breaking space, but (again) a later blog post will show you how you can use this to eliminate formatting issues.

Converting paragraph spacing to plain text replaces a paragraph break with two paragraphs, inserting a blank line between paragraphs as Markdown expects. It works if your Body paragraph format puts space at the beginning or end of the paragraph. If you use indents instead, try “Paragraph Spacing and Indents” and hope the indents are deep enough for Scrivener to catch.

If that doesn’t work, add two more entries to Replacements:

  • Replace (Option-Return); With (Option-Return twice)
  • Replace (Option-Return four times); With (Option-Return twice)

The two replacements are needed because of a bug in Scrivener. It converts one return to four instead of two, but the second time through fixes it.

Now hit Compile, then open the generated file in a text editor. You should see a plain text file, with a blank line between each paragraph and Markdown syntax for various highlighting. You can go back into Scrivener and try MultiMarkdown→Web Page to see what that looks like, too.

Now What?

Now that you can export a clean MultiMarkdown file from Scrivener, you can work with it in any text editor. Sometimes, just looking at the same text in a different way is enough to get you moving on a WIP and get it done. If you have an iPad, you can still edit your Markdown-ified project using Scrivener on iOS, or you can use an iOS Markdown editor like Byword to edit your Markdown file (and import it back into your Scrivener project later).

But that’s only scratching the surface. Next week, we’ll start looking at ways to prep your MultiMarkdown file for beta or final publishing.

Comments? Questions? Floor’s open!

LinkWithin

Related Posts Plugin for WordPress, Blogger...