Category: Announcements

  • TypeMetal 1.1

    …is now live on the App Store! This update adds a feature that I’ve understandably had many requests for: spelling and grammar checking! Let’s just say that in the course of living without spell-check, I’ve learned that I’m a much less consistent typist than I believed myself to be. If you’re in the same boat as me, or if you inherit documents from people like me, TypeMetal 1.1 will be a welcome update. (Not coincidentally, this update also brings spelling fixes to nearly every page of TypeMetal’s in-app Help / User Guide.)

    An interesting aspect of HTML is that it’s set up to allow for mixed-language documents, in which the language of each text run can be explicitly indicated using a “lang” or “xml:lang” attribute on an element that wraps it. You aren’t required to annotate your documents with these attributes, but when they’re present, TypeMetal 1.1 uses the language identification they provide to ensure that each part of your document is checked against a language-appropriate dictionary and grammar rule set. When explicit language identification isn’t present, TypeMetal can still usually make a good best guess based on the document’s content and your OS X language preferences. But if you’re writing mixed-language content, you might want to make a practice of applying “lang” or “xml:lang” attributes where appropriate, to assist browsers and Web-crawlers that might be able to take advantage of such language info. (Per the HTML 5 spec, by the way, the value for either of these attributes is a “BCP 47” language tag, which in common practice just means an abbreviation with optional region qualifier, such as “en” for English, “fr” for French, “pt-PT” for Portuguese as spoken in Portugal, “pt-BR” for Brazilian Portuguese, etc.)

    Grammar checking is mostly working in this build, with one glitch to watch out for: If you begin a grammar-check operation from a mid-sentence insertion point or selection, grammar-check may falsely indicate that you have a sentence fragment. Either disregard such indications or position the insertion point at the start of a sentence before initiating grammar checking for now. I’ll be fixing this in a future update, and I didn’t want to delay the release of spell-checking because of it.

    One thing I haven’t yet implemented in 1.1 is the red-underlining, continuous spell-checking that you’re probably accustomed to using in other writing apps. For now, you’ll want to remember to hit Cmd+; once in a while (especially before publishing), to check your document for suspected misspellings.

    Adding that nifty red underlining requires character-/glyph-level line layout information that the public WebKit API doesn’t currently provide. To date, I’ve managed to achieve a great deal without having to embed a custom WebKit build in TypeMetal, and there are numerous worthwhile benefits to sticking with OS X’s WebKit if I possibly can, but there are also things I’d like to do that seemingly can’t be done otherwise. So I face a decision point, that’s going to take a little longer to sort out. Manually-invoked spelling and grammar checking seemed worth releasing in the meantime, and I hope users won’t find it too inconvenient to revive the old Cmd+; habit as I have, while I do some further work on this.

    I hope you’ll enjoy this newest version of TypeMetal! As always, please feel welcome to bring questions and feedback to the TypeMetal Support Forum! — Thanks again for your support!

  • TypeMetal Featured in “New and Noteworthy”!

    TypeMetal has been featured in the “New and Noteworthy” category on the front page of the Mac App Store!

    Mac App Store screen grab showing TypeMetal on the front page, August 8, 2013

    It’s a deeply appreciated honor that puts us in some excellent company, and means a great deal to TypeMetal’s future. The more Mac users TypeMetal reaches the better, as there’s nothing in the world we’d love more than to get to continue refining and building on its innovative feature set — bringing content authors ever-easier, more powerful, and more rewarding ways to work with their HTML. (We have some very exciting enhancements and major features in the works!)

    Please make yourselves at home on the public TypeMetal Support Forum! It’s a great place to get questions answered and bring us your suggestions. We want our customers to be 100% happy, and our prospective customers to have every opportunity to learn all there is to know about TypeMetal.

    Some introductory posts that may be of interest to new and potential TypeMetal users:

    They help explain the design motivation that drove TypeMetal’s development, and provide some handy tips that will help you get productive with it.

    Sincerest thanks to all who’ve purchased TypeMetal! Be sure to let us know what you’d like to see in future updates. (You can reach us on Twitter too, @CoherenceLabs.) We’re dedicated to making TypeMetal a powerful tool and a delight to use. Hope you enjoy!

  • TypeMetal 1.0.4

    …is now live on the Mac App Store.

    This update makes the path bar context menu work again, fixing the regression that appeared in version 1.0.3. (Sorry for the inconvenience that caused — we’ll be more careful next time!)

    1.0.4 also fixes a bug wherein using the arrow keys inside a <pre> element would collapse whitespace, just as TypeMetal does in ordinary text. Condensing whitespace makes sense in most parts of an HTML document, but it’s not something you want in a preformatted text block, where whitespace and newlines are significant. With the fix in 1.0.4, you now can safely use the arrow keys inside a <pre> element, without disturbing the formatting of its content.

    <pre> elements are especially useful for featuring clippings of literal markup or program source code in your writing, by the way. A common construct for this is a <pre> wrapped around a <code>, where the <pre> element preserves spaces and line breaks, and the <code> element marks the content as being some kind of program source code, typically prompting appropriate styling such as use of a monospaced font.

    You can assemble a <pre><code> construct easily by inserting a <pre> element (Control+/ p r [return]), then inserting a <code> element (Control+/ c o [return]). This leaves you inside the <code> element ready to type. Note that when you’re all done typing the content of this code block, and you want to type what follows the <pre><code> block, you can simply hit the [tab] key to pop out of both the <code> and the enclosing <pre>.

    Creating this kind of construct will give you something like this in your HTML:

    <pre><code>for (id thing in collection) {
        [thing doYourThing];
    }</pre></code>

    which, with CSS styling applied, might be rendered something like this:

    for (id thing in collection) {
        [thing doYourThing];
    }

    If this is a construct you use a lot, you might want to create a snippet to make it even quicker to assemble. The snippet body would look like this:

    <pre><code>{content}</code></pre>

    With that snippet added to my HTML file’s associated snippet set, I’m able to insert a <pre><code> construct by typing Control+/ p r e c [return].

    If you ever want to paste some HTML markup for people to read as markup, note that you’ll need to use TypeMetal’s “Paste as Plain Text” command (Command+Shift+Option+V). Ordinary “Paste” (Command+V) would interpret the HTML markup, putting the described elements in your document, instead of the HTML source code description of them. By pasting “as Plain Text”, you get the exact text that’s on the pasteboard, without any interpretation of HTML element tags it might contain. (Relevant User Guide page: Paste)

    I hope you’ll enjoy this update! Stay tuned for more improvements to come!