YourOtherMind Markup is a lightweight markup language to write entirely with plain-text and then, via an exporter, transform into Word documents or ePub files.
NOTE: Some of the screenshots taken here were using an earlier version of the YourOtherMind markup formats — the exact visuals depicted may be different in the latest release.
Its advantages include:
- Keeping text format independent of content. This is valuable when submitting stories to markets because many markets request submissions in various formats (fonts/sizes/formatting styles). It is also useful when producing self published writings, reducing format headaches when generating ePub formats and the like.
- It allows traditional formatting to be used to markup the text (bold, italic, strikethru), to help the writer navigate the written work, without this “helping” formatting showing up in the final version sent to markets.
- The text editor highlights certain codes, as noted below, so they are more easily seen during editing (i.e., it calls attention to them)
In this example the ‘green blocks’ show particular control codes on the note, drawing attention to them. All the visual details are part of the markup language except where Storyboard List is highlighted in blue, this was done manually by myself.
Here is a list of valid markup codes.
Paired Codes (Text enclosed between pairs of symbol)
''''' Bold and Italic
--- strike thru
## Subscript (i.e., O##2## would be O2)
^ Superscript( i.e., 2^3^ would be 23)
= Level 1 heading
== Level 2 heading
=== Level 3 heading
==== Level 4 heading
<<< For highlighting non-verbal communication (perhaps showing a chat-stream in a novel, for example) Unpaired Codes * Bullet, Normal # Bullet, Number Facts
[[anything]] any word or phrase, if enclosed between double brackets, is a fact
[[~Display anything]] will list all items tagged with the [[anything]]
[[~Tally anything]] will count how many [[anythings]] were found
[[~var=VariableName:VariableValue]] Creates a variable named VariableName with the value VariableValue
[[~var VariableName]] if used in text, will grab the variable previously defined for VariableName
[[footnotelink footnote1]] places an anchor for a footnote at a particular location in the text
[[footnoteadd foonote1|the text you want to show up on the footnote itself]] The definition fulfilled for the footnote.
[[~Footnotecount]] counts the number of footnotes
<t>[[title]] Name of Chapter</t> This will automatically label the chapter, and incrememnt, as new [[title]] tags are found. Basically, title each new chapter like this and, if exporting through the SendTextAway plugin, each will be placed in their own chapter file.
[[~scene]] Scene break
[[~pagebreak]] Page break
[[~left]] Left justifies
[[~right]] Right justifies
[[~center]] Centers text
<t>Title</t> -- Creates a basic title, but the [[title]] approach, above, is the preferred.
|link url|link title| Creates links
|path to image file| will insert an image (a handy trick with big projects is to encode an image path as a Variable and just include the variable reference here)
[[Anchor #AnchorName]] creates an anchor to link to
|##AnchorName|Label for link to Anchor| Creates a link to the Anchor defined as AnchorName.
[[~TOC]] Generates a table of contents based on headings
There are also a few ePub specific features. The following allows identifiers to be filled in that are later used when creating the ePub
[[~id title|Ice Onion version 1.0]]
[[~id creator|Brent Knowles]]
[[~id copyright|(c) 2010 Brent Knowles]]
[[~id publisher|Review copy only, not for public viewing]]
It is possible to add tag elements to the markup language for a specific requirement. These are discussed in more depth on the Addin_SendTextAway page (where we discuss the exporter).
Parse Facts and Search All Text On Layout
This markup also brings in the ability to create Storyboards with links to notes containing specific text.
Creating a Factlist
A fact list takes text that has been marked like [[such]] and creates groups in a Storyboard, using the fact titles (in this case “such”). That is, any text matches with [[such]] would appear in a group on the storyboard called “such”. This lets the writer track various plot points more readily, or to leave notes in sections that require more elaboration.
Special codes are required to indicate where the fact parser needs to look for facts. Here is an example.
In this situation a storyboard named “factlist” must exist; this is where the fact information will be stored. The [[bygroup]] indicates we want to sort by the group name (the “such”, as noted, above). If we used [[bychapter]] instead, then the found facts would be sorted by chapter instead of by fact type.
The final line tells the fact parser to look for the information on the storyboard named “Storyboard”, inside any groups that start with the word “Chapters”.
Every note in those groups will be parsed for facts. The final output will be spit into the storyboard named “factlist”.
To run the fact check right click and select PARSE FACTS/SEARCH.
Searching text works much the same as grabbing facts. It will create a list in the indicated storyboard (in the following example that is named “searchlist”). The next line is the text to search for. The final line is where to look.
Running this will generate a list of any notes with the specified TextToSearchFor.
NOTE: The naming of the storyboard where the user wants the facts or search terms to go is important. It must start with search for search terms and it must start with fact for fact parses.
See the SendAwayText AddIn for how this markup can be used to export Word Documents and ePub files (for distribution to Kindle, Kobo, Nook, Apple devices, and so on).