{"id":7087,"date":"2026-07-31T18:19:18","date_gmt":"2026-08-01T01:19:18","guid":{"rendered":"https:\/\/rorohiko.com\/wordpress\/?page_id=7087"},"modified":"2026-08-02T01:39:22","modified_gmt":"2026-08-02T08:39:22","slug":"style-o-matic-for-adobe-indesign","status":"publish","type":"page","link":"https:\/\/rorohiko.com\/wordpress\/indesign-downloads\/style-o-matic-for-adobe-indesign\/","title":{"rendered":"Style-O-Matic for Adobe InDesign"},"content":{"rendered":"<h2>What does <em>Style-O-Matic<\/em> do?<\/h2>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-7088 alignleft\" src=\"https:\/\/rorohiko.com\/wordpress\/wp-content\/uploads\/2026\/07\/StyleOMatic.png\" alt=\"\" width=\"192\" height=\"192\" srcset=\"https:\/\/rorohiko.com\/wordpress\/wp-content\/uploads\/2026\/07\/StyleOMatic.png 192w, https:\/\/rorohiko.com\/wordpress\/wp-content\/uploads\/2026\/07\/StyleOMatic-150x150.png 150w\" sizes=\"auto, (max-width: 192px) 100vw, 192px\" \/> <strong>Style-O-Matic<\/strong> reads text frames in an open document, finds frames that contain a <code class=\"bg-text-200\/5 border border-0.5 border-border-300 text-danger-000 whitespace-pre-wrap rounded-[0.4rem] px-1 py-px text-[0.9rem]\">[style-o-matic]<\/code> config section, parses the markup rules defined in that config, then scans a story and applies InDesign character styles wherever it finds matching markup.<\/p>\n<p class=\"font-claude-response-body break-words whitespace-normal\" dir=\"ltr\" data-sourcepos=\"17:1-17:30;528-557\">The result is that text like:<\/p>\n<div class=\"relative group\/copy bg-bg-000\/50 border-0.5 border-border-400 rounded-lg focus:outline-none focus-visible:ring-2 focus-visible:ring-accent-100\" tabindex=\"0\" role=\"group\" aria-label=\"Code\" data-sourcepos=\"19:1-21:4;559-640\">\n<div class=\"overflow-x-auto\">\n<pre class=\"code-block__code !my-0 !rounded-lg !text-sm !leading-relaxed p-3.5\"><code>This is **bold** or *italic*<\/code>.<\/pre>\n<\/div>\n<\/div>\n<p class=\"font-claude-response-body break-words whitespace-normal\" dir=\"ltr\" data-sourcepos=\"23:1-24:19;642-732\">\u2026becomes properly styled InDesign text, optionally with the markup tokens removed,\u00a0 with just a click.<\/p>\n<p>YouTube demo: <a href=\"https:\/\/www.youtube.com\/watch?v=tLDMlJwsoew\">Style-O-Matic Demo<\/a><\/p>\n<p><span class=\"md-plain\">This is useful whenever text arrives with some ad-hoc convention for marking<\/span> <span class=\"md-plain\">up formatting (copy from a CMS, a spec written by someone else, Markdown,<\/span> <span class=\"md-plain\">home-grown HTML-ish tags, etc.) and you don&#8217;t want to hand-apply character<\/span> <span class=\"md-plain\">styles run by run.<\/span><\/p>\n<h2 class=\"md-end-block md-heading\"><span class=\"md-plain\">Installing<\/span><\/h2>\n<p>First, download and install the latest PluginInstaller from<\/p>\n<p><a href=\"https:\/\/creativedevelopertools.com\/plugininstaller-download-and-instructions\/\">https:\/\/PluginInstaller.com<\/a><\/p>\n<p>You need at least version 0.2.6#769.<\/p>\n<p>After unzipping and moving the application to your preferred location, you need to run PluginInstaller at least once.<\/p>\n<p>If you have not registered for PluginInstaller before you will be asked to create an account first. Make sure to write down the unlock code you choose \u2013 if you lose it it cannot be retrieved.<\/p>\n<p>After registering you will need to confirm your email address. Check your spam filter if necessary; you will need to click a link in an email to confirm the account.<\/p>\n<p>Then click the following link which should open in PluginInstaller. It will install Style-O-Matic in your InDesign Scripts Panel. If your browser asks for permission to launch PluginInstaller, allow it to do so.<\/p>\n<p><a href=\"tightenercatalogentry:https%3A%2F%2Fstore.tgrg.net%2Fproducts%2FStyleOMatic.cate\">Install Style-O-Matic for InDesign<\/a><\/p>\n<p>You can also uninstall the script by way of PluginInstaller, or install the script in older versions of InDesign.<\/p>\n<h2 class=\"md-end-block md-heading\"><span class=\"md-plain\">Running<\/span><\/h2>\n<p class=\"md-end-block md-p\"><span class=\"md-plain\">Style-O-Matic adds two entries in InDesign&#8217;s Scripts panel<\/span> <span class=\"md-plain\">(<\/span><span class=\"md-pair-s \"><strong><span class=\"md-plain\">Window &gt; Utilities &gt; Scripts<\/span><\/strong><\/span><span class=\"md-plain\">, then look under the User folder):<\/span><\/p>\n<ul class=\"ul-list\" data-mark=\"-\">\n<li class=\"md-list-item\">\n<p class=\"md-end-block md-p\"><span class=\"md-pair-s \"><strong><span class=\"md-plain\">Style-O-Matic.jsx<\/span><\/strong><\/span><span class=\"md-plain\"> \u2014 the script that does the actual work.<\/span><\/p>\n<\/li>\n<li class=\"md-list-item\">\n<p class=\"md-end-block md-p\"><span class=\"md-pair-s \"><strong><span class=\"md-plain\">Copy Sample File with Documentation to Desktop.jsx<\/span><\/strong><\/span><span class=\"md-plain\"> \u2014 copies a demo document<\/span> <span class=\"md-plain\">(<\/span><span class=\"md-pair-s\" spellcheck=\"false\"><code>Style-O-MaticDemo.indd<\/code><\/span><span class=\"md-plain\">) to your desktop and opens it, so you have something to<\/span> <span class=\"md-plain\">experiment with right away.<\/span><\/p>\n<\/li>\n<\/ul>\n<p class=\"md-end-block md-p\"><span class=\"md-plain\">To run Style-O-Matic: open a document that has a config frame on the pasteboard, <\/span> <span class=\"md-plain\">select a text frame (or click\/select inside one), and double-click <\/span><span class=\"md-pair-s \"><strong><span class=\"md-plain\">Style-O-Matic<\/span><\/strong><\/span> <span class=\"md-plain\">in the Scripts panel.<\/span><\/p>\n<div class=\"md-hr md-end-block\" tabindex=\"-1\">\n<hr \/>\n<\/div>\n<h2 class=\"md-end-block md-heading\"><span class=\"md-plain\">Quick Start<\/span><\/h2>\n<ol class=\"ol-list\" start=\"\">\n<li class=\"md-list-item\">\n<p class=\"md-end-block md-p\"><span class=\"md-plain\">Run <\/span><span class=\"md-pair-s \"><strong><span class=\"md-plain\">Copy Sample File with Documentation to Desktop<\/span><\/strong><\/span><span class=\"md-plain\"> once to get a demo<\/span> <span class=\"md-plain\">document with a working config frame and sample text already in place.<\/span><\/p>\n<\/li>\n<li class=\"md-list-item\">\n<p class=\"md-end-block md-p\"><span class=\"md-plain\">Select the frame with the sample body text (not the config note).<\/span><\/p>\n<\/li>\n<li class=\"md-list-item\">\n<p class=\"md-end-block md-p\"><span class=\"md-plain\">Double-click <\/span><span class=\"md-pair-s \"><strong><span class=\"md-plain\">Style-O-Matic<\/span><\/strong><\/span><span class=\"md-plain\"> in the Scripts panel.<\/span><\/p>\n<\/li>\n<li class=\"md-list-item\">\n<p class=\"md-end-block md-p\"><span class=\"md-plain\">A dialog reports how many marker pairs were found and styled.<\/span><\/p>\n<\/li>\n<li class=\"md-list-item\">\n<p class=\"md-end-block md-p\"><span class=\"md-plain\">Undo (<\/span><span class=\"md-pair-s\" spellcheck=\"false\"><code>Cmd\/Ctrl+Z<\/code><\/span><span class=\"md-plain\">) reverts everything in one step if you want to try<\/span> <span class=\"md-plain\">again \u2014 Style-O-Matic runs as a single undoable action.<\/span><\/p>\n<\/li>\n<\/ol>\n<p class=\"md-end-block md-p\"><span class=\"md-plain\">Once you understand the sample config, adapt it (or write your own from<\/span> <span class=\"md-plain\">scratch) to match whatever convention your own text uses. Copy the config<\/span> <span class=\"md-plain\">frame into your own document to enable <\/span><span class=\"md-pair-s \"><strong><span class=\"md-plain\">Style-O-Matic<\/span><\/strong><\/span><span class=\"md-plain\">.<\/span><\/p>\n<div class=\"md-hr md-end-block\" tabindex=\"-1\">\n<hr \/>\n<\/div>\n<h2 class=\"md-end-block md-heading\"><span class=\"md-plain\">Why a Pasteboard Config Frame<\/span><\/h2>\n<p class=\"md-end-block md-p\"><span class=\"md-plain\">The rules that tell Style-O-Matic what to look for live in a plain text frame<\/span> <span class=\"md-plain\">on the pasteboard of the document itself, rather than in a separate settings<\/span> <span class=\"md-plain\">file. A frame is recognized as a config frame purely by containing a<\/span> <span class=\"md-pair-s\" spellcheck=\"false\"><code>[style-o-matic]<\/code><\/span><span class=\"md-plain\"> line \u2014 every other text frame in the document is scanned<\/span> <span class=\"md-plain\">and skipped if it doesn&#8217;t have one.<\/span><\/p>\n<p class=\"md-end-block md-p\"><span class=\"md-plain\">Benefits:<\/span><\/p>\n<ul class=\"ul-list\" data-mark=\"-\">\n<li class=\"md-list-item\">\n<p class=\"md-end-block md-p\"><span class=\"md-plain\">Visible and editable right there in the document, no external file to lose<\/span> <span class=\"md-plain\">or keep in sync<\/span><\/p>\n<\/li>\n<li class=\"md-list-item\">\n<p class=\"md-end-block md-p\"><span class=\"md-plain\">Travels with the document when it&#8217;s copied or handed to someone else<\/span><\/p>\n<\/li>\n<li class=\"md-list-item\">\n<p class=\"md-end-block md-p\"><span class=\"md-plain\">Can contain free-form comments and notes anywhere \u2014 anything not in<\/span> <span class=\"md-pair-s\" spellcheck=\"false\"><code>[section]<\/code><\/span><span class=\"md-plain\"> or <\/span><span class=\"md-pair-s\" spellcheck=\"false\"><code>key = value<\/code><\/span><span class=\"md-plain\"> form is ignored<\/span><\/p>\n<\/li>\n<li class=\"md-list-item\">\n<p class=\"md-end-block md-p\"><span class=\"md-plain\">Straight and curly quotes are both understood, so it survives InDesign&#8217;s<\/span> <span class=\"md-plain\">automatic &#8220;smart quotes&#8221; substitution<\/span><\/p>\n<\/li>\n<\/ul>\n<div class=\"md-hr md-end-block\" tabindex=\"-1\">\n<hr \/>\n<\/div>\n<h2 class=\"md-end-block md-heading\"><span class=\"md-plain\">Setting Up Your Config Frame<\/span><\/h2>\n<h3 class=\"md-end-block md-heading\"><span class=\"md-plain\">1. The Marker Line<\/span><\/h3>\n<p class=\"md-end-block md-p\"><span class=\"md-plain\">Every config frame must contain this line, on its own, to be recognized:<\/span><\/p>\n<pre class=\"md-fences md-end-block ty-contain-cm modeLoaded\" lang=\"ini\" spellcheck=\"false\"><span role=\"presentation\"><span class=\"cm-header\">[style-o-matic]<\/span><\/span><\/pre>\n<p class=\"md-end-block md-p\"><span class=\"md-plain\">You can optionally give the config a name (purely for your own reference \u2014<\/span> <span class=\"md-plain\">it has no effect on how Style-O-Matic runs):<\/span><\/p>\n<pre class=\"md-fences md-end-block ty-contain-cm modeLoaded\" lang=\"ini\" spellcheck=\"false\"><span role=\"presentation\"><span class=\"cm-header\">[style-o-matic]<\/span><\/span>\r\n<span role=\"presentation\"><span class=\"cm-def\">name <\/span>=<span class=\"cm-quote\"> My Markdown Config<\/span><\/span><\/pre>\n<p class=\"md-end-block md-p\"><span class=\"md-plain\">A rule&#8217;s definition is split into two parts, kept in two separate places in<\/span> <span class=\"md-plain\">the config note: first you declare the marker pairs (the <\/span><span class=\"md-pair-s\" spellcheck=\"false\"><code>on<\/code><\/span><span class=\"md-plain\">\/<\/span><span class=\"md-pair-s\" spellcheck=\"false\"><code>off<\/code><\/span> <span class=\"md-plain\">markers), then \u2014 separately \u2014 you map marker pairs to character styles. Style-O-Matic<\/span> <span class=\"md-plain\">reassembles same-named sections back into one rule regardless of where they<\/span> <span class=\"md-plain\">sit in the note, so it reads naturally to declare <\/span><span class=\"md-pair-s \"><em><span class=\"md-plain\">all<\/span><\/em><\/span><span class=\"md-plain\"> your marker pairs first,<\/span> <span class=\"md-plain\">then <\/span><span class=\"md-pair-s \"><em><span class=\"md-plain\">all<\/span><\/em><\/span><span class=\"md-plain\"> your style mappings afterward.<\/span><\/p>\n<h3 class=\"md-end-block md-heading\"><span class=\"md-plain\">2. Declare Each Marker Pair&#8217;s On\/Off<\/span><\/h3>\n<p class=\"md-end-block md-p\"><span class=\"md-plain\">One section per marker pair, giving it a name and its <\/span><span class=\"md-pair-s\" spellcheck=\"false\"><code>on<\/code><\/span><span class=\"md-plain\">\/<\/span><span class=\"md-pair-s\" spellcheck=\"false\"><code>off<\/code><\/span><span class=\"md-plain\"> markup. Easiest if you don&#8217;t<\/span> <span class=\"md-plain\">add <\/span><span class=\"md-pair-s\" spellcheck=\"false\"><code>charstyle<\/code><\/span><span class=\"md-plain\"> here \u2014 that&#8217;s mapped separately in the next part:<\/span><\/p>\n<pre class=\"md-fences md-end-block ty-contain-cm modeLoaded\" lang=\"ini\" spellcheck=\"false\"><span role=\"presentation\"><span class=\"cm-header\">[bold]<\/span><\/span>\r\n<span role=\"presentation\"><span class=\"cm-def\">on \u00a0<\/span>=<span class=\"cm-quote\"> **<\/span><\/span>\r\n<span role=\"presentation\"><span class=\"cm-def\">off <\/span>=<span class=\"cm-quote\"> **<\/span><\/span>\r\n<span role=\"presentation\">\u200b<\/span>\r\n<span role=\"presentation\"><span class=\"cm-header\">[italic]<\/span><\/span>\r\n<span role=\"presentation\"><span class=\"cm-def\">on \u00a0<\/span>=<span class=\"cm-quote\"> *<\/span><\/span>\r\n<span role=\"presentation\"><span class=\"cm-def\">off <\/span>=<span class=\"cm-quote\"> *<\/span><\/span>\r\n<span role=\"presentation\">\u200b<\/span>\r\n<span role=\"presentation\"><span class=\"cm-header\">[underline]<\/span><\/span>\r\n<span role=\"presentation\"><span class=\"cm-def\">on \u00a0<\/span>=<span class=\"cm-quote\"> _<\/span><\/span>\r\n<span role=\"presentation\"><span class=\"cm-def\">off <\/span>=<span class=\"cm-quote\"> _<\/span><\/span>\r\n<span role=\"presentation\">\u200b<\/span>\r\n<span role=\"presentation\"><span class=\"cm-header\">[htmlbold]<\/span><\/span>\r\n<span role=\"presentation\"><span class=\"cm-def\">on \u00a0<\/span>=<span class=\"cm-quote\"> &lt;b&gt;<\/span><\/span>\r\n<span role=\"presentation\"><span class=\"cm-def\">off <\/span>=<span class=\"cm-quote\"> &lt;\/b&gt;<\/span><\/span><\/pre>\n<p class=\"md-end-block md-p\"><span class=\"md-plain\">Notes:<\/span><\/p>\n<ul class=\"ul-list\" data-mark=\"-\">\n<li class=\"md-list-item\">\n<p class=\"md-end-block md-p\"><span class=\"md-pair-s\" spellcheck=\"false\"><code>on<\/code><\/span><span class=\"md-plain\"> and <\/span><span class=\"md-pair-s\" spellcheck=\"false\"><code>off<\/code><\/span><span class=\"md-plain\"> can be the same string (like <\/span><span class=\"md-pair-s\" spellcheck=\"false\"><code>**...**<\/code><\/span><span class=\"md-plain\">) or different<\/span> <span class=\"md-plain\">(like <\/span><span class=\"md-pair-s\" spellcheck=\"false\"><code>&lt;b&gt;...&lt;\/b&gt;<\/code><\/span><span class=\"md-plain\">).<\/span><\/p>\n<\/li>\n<li class=\"md-list-item\">\n<p class=\"md-end-block md-p\"><span class=\"md-plain\">Lines starting with <\/span><span class=\"md-pair-s\" spellcheck=\"false\"><code>#<\/code><\/span><span class=\"md-plain\"> are comments and are ignored.<\/span><\/p>\n<\/li>\n<\/ul>\n<p class=\"md-end-block md-p\"><span class=\"md-plain\">A marker pair section can also carry any of these optional settings:<\/span><\/p>\n<figure class=\"md-table-fig table-figure\">\n<table class=\"md-table\">\n<thead>\n<tr class=\"md-end-block\">\n<th><span class=\"td-span\"><span class=\"md-plain\">Setting<\/span><\/span><\/th>\n<th><span class=\"td-span\"><span class=\"md-plain\">Values<\/span><\/span><\/th>\n<th><span class=\"td-span\"><span class=\"md-plain\">Effect<\/span><\/span><\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr class=\"md-end-block\">\n<td><span class=\"td-span\"><span class=\"md-pair-s\" spellcheck=\"false\"><code>literal<\/code><\/span><\/span><\/td>\n<td><span class=\"td-span\"><span class=\"md-pair-s\" spellcheck=\"false\"><code>yes<\/code><\/span><span class=\"md-plain\"> \/ <\/span><span class=\"md-pair-s\" spellcheck=\"false\"><code>no<\/code><\/span><span class=\"md-plain\"> (default <\/span><span class=\"md-pair-s\" spellcheck=\"false\"><code>no<\/code><\/span><span class=\"md-plain\">)<\/span><\/span><\/td>\n<td><span class=\"td-span\"><span class=\"md-plain\">If <\/span><span class=\"md-pair-s\" spellcheck=\"false\"><code>yes<\/code><\/span><span class=\"md-plain\">, nothing inside this marker pair is treated as another marker pair \u2014 only this rule&#8217;s own <\/span><span class=\"md-pair-s\" spellcheck=\"false\"><code>off<\/code><\/span><span class=\"md-plain\"> can close it. Use this for things like inline code, where <\/span><span class=\"md-pair-s\" spellcheck=\"false\"><code>*<\/code><\/span><span class=\"md-plain\"> or <\/span><span class=\"md-pair-s\" spellcheck=\"false\"><code>_<\/code><\/span><span class=\"md-plain\"> inside the code shouldn&#8217;t be styled.<\/span><\/span><\/td>\n<\/tr>\n<tr class=\"md-end-block\">\n<td><span class=\"td-span\"><span class=\"md-pair-s\" spellcheck=\"false\"><code>word-boundary<\/code><\/span><\/span><\/td>\n<td><span class=\"td-span\"><span class=\"md-pair-s\" spellcheck=\"false\"><code>yes<\/code><\/span><span class=\"md-plain\"> \/ <\/span><span class=\"md-pair-s\" spellcheck=\"false\"><code>no<\/code><\/span><span class=\"md-plain\"> (default <\/span><span class=\"md-pair-s\" spellcheck=\"false\"><code>no<\/code><\/span><span class=\"md-plain\">)<\/span><\/span><\/td>\n<td><span class=\"td-span\"><span class=\"md-plain\">If <\/span><span class=\"md-pair-s\" spellcheck=\"false\"><code>yes<\/code><\/span><span class=\"md-plain\">, the marker pair only triggers when it sits at a word boundary. Prevents, e.g., the <\/span><span class=\"md-pair-s\" spellcheck=\"false\"><code>_<\/code><\/span><span class=\"md-plain\"> in <\/span><span class=\"md-pair-s\" spellcheck=\"false\"><code>file_name<\/code><\/span><span class=\"md-plain\"> from being read as an underline\/italic marker.<\/span><\/span><\/td>\n<\/tr>\n<tr class=\"md-end-block\">\n<td><span class=\"td-span\"><span class=\"md-pair-s\" spellcheck=\"false\"><code>case-insensitive<\/code><\/span><\/span><\/td>\n<td><span class=\"td-span\"><span class=\"md-pair-s\" spellcheck=\"false\"><code>yes<\/code><\/span><span class=\"md-plain\"> \/ <\/span><span class=\"md-pair-s\" spellcheck=\"false\"><code>no<\/code><\/span><span class=\"md-plain\"> (default <\/span><span class=\"md-pair-s\" spellcheck=\"false\"><code>no<\/code><\/span><span class=\"md-plain\">)<\/span><\/span><\/td>\n<td><span class=\"td-span\"><span class=\"md-plain\">If <\/span><span class=\"md-pair-s\" spellcheck=\"false\"><code>yes<\/code><\/span><span class=\"md-plain\">, matching ignores upper\/lower case \u2014 useful for HTML-style tags like <\/span><span class=\"md-pair-s\" spellcheck=\"false\"><code>&lt;B&gt;<\/code><\/span><span class=\"md-plain\"> vs <\/span><span class=\"md-pair-s\" spellcheck=\"false\"><code>&lt;b&gt;<\/code><\/span><span class=\"md-plain\">.<\/span><\/span><\/td>\n<\/tr>\n<tr class=\"md-end-block\">\n<td><span class=\"td-span\"><span class=\"md-pair-s\" spellcheck=\"false\"><code>trim-whitespace<\/code><\/span><\/span><\/td>\n<td><span class=\"td-span\"><span class=\"md-pair-s\" spellcheck=\"false\"><code>yes<\/code><\/span><span class=\"md-plain\"> \/ <\/span><span class=\"md-pair-s\" spellcheck=\"false\"><code>no<\/code><\/span><span class=\"md-plain\"> (default <\/span><span class=\"md-pair-s\" spellcheck=\"false\"><code>no<\/code><\/span><span class=\"md-plain\">)<\/span><\/span><\/td>\n<td><span class=\"td-span\"><span class=\"md-plain\">If <\/span><span class=\"md-pair-s\" spellcheck=\"false\"><code>yes<\/code><\/span><span class=\"md-plain\">, leading\/trailing spaces just inside the marker pair are removed before the style is applied.<\/span><\/span><\/td>\n<\/tr>\n<tr class=\"md-end-block\">\n<td><span class=\"td-span\"><span class=\"md-pair-s\" spellcheck=\"false\"><code>retain<\/code><\/span><\/span><\/td>\n<td><span class=\"td-span\"><span class=\"md-pair-s\" spellcheck=\"false\"><code>yes<\/code><\/span><span class=\"md-plain\"> \/ <\/span><span class=\"md-pair-s\" spellcheck=\"false\"><code>no<\/code><\/span><span class=\"md-plain\"> (default <\/span><span class=\"md-pair-s\" spellcheck=\"false\"><code>no<\/code><\/span><span class=\"md-plain\">)<\/span><\/span><\/td>\n<td><span class=\"td-span\"><span class=\"md-plain\">If <\/span><span class=\"md-pair-s\" spellcheck=\"false\"><code>yes<\/code><\/span><span class=\"md-plain\">, the <\/span><span class=\"md-pair-s\" spellcheck=\"false\"><code>on<\/code><\/span><span class=\"md-plain\">\/<\/span><span class=\"md-pair-s\" spellcheck=\"false\"><code>off<\/code><\/span><span class=\"md-plain\"> markup themselves are kept in the text instead of being stripped, and get styled along with the text they wrap. Handy for quotes, where you want the styled result to still show the quote marks.<\/span><\/span><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/figure>\n<p class=\"md-end-block md-p\"><span class=\"md-plain\">Example \u2014 inline code that ignores markup inside it, an underline tag<\/span> <span class=\"md-plain\">that isn&#8217;t case-sensitive, and quotes that keep their quote marks:<\/span><\/p>\n<pre class=\"md-fences md-end-block ty-contain-cm modeLoaded\" lang=\"ini\" spellcheck=\"false\"><span role=\"presentation\"><span class=\"cm-header\">[code]<\/span><\/span>\r\n<span role=\"presentation\"><span class=\"cm-def\">on \u00a0<\/span>=<span class=\"cm-quote\"> `<\/span><\/span>\r\n<span role=\"presentation\"><span class=\"cm-def\">off <\/span>=<span class=\"cm-quote\"> `<\/span><\/span>\r\n<span role=\"presentation\"><span class=\"cm-def\">literal <\/span>=<span class=\"cm-quote\"> yes<\/span><\/span>\r\n<span role=\"presentation\">\u200b<\/span>\r\n<span role=\"presentation\"><span class=\"cm-header\">[htmlunderline]<\/span><\/span>\r\n<span role=\"presentation\"><span class=\"cm-def\">on \u00a0<\/span>=<span class=\"cm-quote\"> &lt;u&gt;<\/span><\/span>\r\n<span role=\"presentation\"><span class=\"cm-def\">off <\/span>=<span class=\"cm-quote\"> &lt;\/u&gt;<\/span><\/span>\r\n<span role=\"presentation\"><span class=\"cm-def\">case-insensitive <\/span>=<span class=\"cm-quote\"> yes<\/span><\/span>\r\n<span role=\"presentation\">\u200b<\/span>\r\n<span role=\"presentation\"><span class=\"cm-header\">[quote]<\/span><\/span>\r\n<span role=\"presentation\"><span class=\"cm-def\">on \u00a0<\/span>=<span class=\"cm-quote\"> \"<\/span><\/span>\r\n<span role=\"presentation\"><span class=\"cm-def\">off <\/span>=<span class=\"cm-quote\"> \"<\/span><\/span>\r\n<span role=\"presentation\"><span class=\"cm-def\">retain <\/span>=<span class=\"cm-quote\"> yes<\/span><\/span><\/pre>\n<h3 class=\"md-end-block md-heading\"><span class=\"md-plain\">3. Map Marker Pairs to Character Styles<\/span><\/h3>\n<p class=\"md-end-block md-p\"><span class=\"md-plain\">Separately, list which character style applies to each marker pair \u2014 and to any<\/span> <span class=\"md-plain\">combination of marker pairs you care about (see <\/span><span class=\"md-pair-s \"><em><span class=\"md-plain\">Nested Marker Pairs<\/span><\/em><\/span><span class=\"md-plain\"> below). Repeat<\/span> <span class=\"md-plain\">a marker pair&#8217;s own name to give it its plain style; two different marker pairs<\/span>\u00a0<span class=\"md-plain\">can map to the same style:<\/span><\/p>\n<pre class=\"md-fences md-end-block ty-contain-cm modeLoaded\" lang=\"ini\" spellcheck=\"false\"><span role=\"presentation\"><span class=\"cm-header\">[bold]<\/span><\/span>\r\n<span role=\"presentation\"><span class=\"cm-def\">charstyle <\/span>=<span class=\"cm-quote\"> MyBold<\/span><\/span>\r\n<span role=\"presentation\">\u200b<\/span>\r\n<span role=\"presentation\"><span class=\"cm-header\">[italic]<\/span><\/span>\r\n<span role=\"presentation\"><span class=\"cm-def\">charstyle <\/span>=<span class=\"cm-quote\"> MyItalic<\/span><\/span>\r\n<span role=\"presentation\">\u200b<\/span>\r\n<span role=\"presentation\"><span class=\"cm-header\">[underline]<\/span><\/span>\r\n<span role=\"presentation\"><span class=\"cm-def\">charstyle <\/span>=<span class=\"cm-quote\"> MyUnderline<\/span><\/span>\r\n<span role=\"presentation\">\u200b<\/span>\r\n<span role=\"presentation\"><span class=\"cm-header\">[htmlbold]<\/span><\/span>\r\n<span role=\"presentation\"><span class=\"cm-def\">charstyle <\/span>=<span class=\"cm-quote\"> MyBold<\/span><\/span><\/pre>\n<p class=\"md-end-block md-p\"><span class=\"md-plain\">Here both <\/span><span class=\"md-pair-s\" spellcheck=\"false\"><code>[bold]<\/code><\/span><span class=\"md-plain\"> and <\/span><span class=\"md-pair-s\" spellcheck=\"false\"><code>[htmlbold]<\/code><\/span><span class=\"md-plain\"> apply <\/span><span class=\"md-pair-s\" spellcheck=\"false\"><code>MyBold<\/code><\/span><span class=\"md-plain\">.<\/span><\/p>\n<div class=\"md-hr md-end-block\" tabindex=\"-1\">\n<hr \/>\n<\/div>\n<h2 class=\"md-end-block md-heading\"><span class=\"md-plain\">Nested Marker Pairs: Combining Styles<\/span><\/h2>\n<p class=\"md-end-block md-p\"><span class=\"md-plain\">When one marker pair is nested inside another, say, <strong>bold<\/strong> wrapping <em>italic<\/em>, you<\/span> <span class=\"md-plain\">often want a <\/span><span class=\"md-pair-s \"><em><span class=\"md-plain\">different, purpose-built<\/span><\/em><\/span><span class=\"md-plain\"> character style for that combination<\/span> <span class=\"md-plain\">rather than just the inner style stomping the outer one. <\/span><\/p>\n<p class=\"md-end-block md-p\"><span class=\"md-plain\">There&#8217;s no way for<\/span> <span class=\"md-plain\">Style-O-Matic to guess that style for you: the font that gives you bold <\/span><span class=\"md-pair-s \"><em><span class=\"md-plain\">and<\/span><\/em><\/span> <span class=\"md-plain\">italic together is very often a completely different font style from either<\/span> <span class=\"md-plain\">one alone (e.g. <\/span><span class=\"md-pair-s\" spellcheck=\"false\"><code>Bold<\/code><\/span><span class=\"md-plain\"> might be &#8220;Font Heavy&#8221; and <\/span><span class=\"md-pair-s\" spellcheck=\"false\"><code>Italic<\/code><\/span><span class=\"md-plain\"> might be &#8220;Font<\/span> <span class=\"md-plain\">Slanted&#8221;, while bold+italic together might need &#8220;Font Medium Italic&#8221; \u2014 there&#8217;s no<\/span> <span class=\"md-plain\">mechanical way to combine those font names). <\/span><\/p>\n<p class=\"md-end-block md-p\"><span class=\"md-plain\">So combinations must be spelled<\/span> <span class=\"md-plain\">out \u2014 as another entry in the marker pair-mapping part of the note, named after the<\/span> <span class=\"md-plain\">two (or more) marker pairs involved, joined with a dash:<\/span><\/p>\n<pre class=\"md-fences md-end-block ty-contain-cm modeLoaded\" lang=\"ini\" spellcheck=\"false\"><span role=\"presentation\"><span class=\"cm-header\">[bold-italic]<\/span><\/span>\r\n<span role=\"presentation\"><span class=\"cm-def\">charstyle <\/span>=<span class=\"cm-quote\"> MyBoldItalic<\/span><\/span><\/pre>\n<p class=\"md-end-block md-p\"><span class=\"md-plain\">With that in place, text like:<\/span><\/p>\n<pre class=\"md-fences md-end-block ty-contain-cm modeLoaded\" lang=\"\" spellcheck=\"false\"><span role=\"presentation\">**bold *and italic* text**<\/span><\/pre>\n<p class=\"md-end-block md-p\"><span class=\"md-plain\">applies <\/span><span class=\"md-pair-s\" spellcheck=\"false\"><code>MyBold<\/code><\/span><span class=\"md-plain\"> to the whole run, and <\/span><span class=\"md-pair-s\" spellcheck=\"false\"><code>MyBoldItalic<\/code><\/span><span class=\"md-plain\"> specifically to the<\/span> <span class=\"md-plain\">&#8220;and italic&#8221; portion.<\/span><\/p>\n<p class=\"md-end-block md-p\"><span class=\"md-plain\">Points to know:<\/span><\/p>\n<ul class=\"ul-list\" data-mark=\"-\">\n<li class=\"md-list-item\">\n<p class=\"md-end-block md-p\"><span class=\"md-pair-s \"><strong><span class=\"md-plain\">Order doesn&#8217;t matter.<\/span><\/strong><\/span> <span class=\"md-pair-s\" spellcheck=\"false\"><code>[bold-italic]<\/code><\/span><span class=\"md-plain\"> and <\/span><span class=\"md-pair-s\" spellcheck=\"false\"><code>[italic-bold]<\/code><\/span><span class=\"md-plain\"> mean exactly<\/span> <span class=\"md-plain\">the same thing \u2014 only write one of them.<\/span><\/p>\n<\/li>\n<li class=\"md-list-item\">\n<p class=\"md-end-block md-p\"><span class=\"md-pair-s \"><strong><span class=\"md-plain\">One entry covers it either way round.<\/span><\/strong><\/span><span class=\"md-plain\"> You don&#8217;t need a matching entry<\/span> <span class=\"md-plain\">under a different name \u2014 declaring <\/span><span class=\"md-pair-s\" spellcheck=\"false\"><code>[bold-italic]<\/code><\/span><span class=\"md-plain\"> is enough whether bold<\/span> <span class=\"md-plain\">wraps italic or italic wraps bold.<\/span><\/p>\n<\/li>\n<li class=\"md-list-item\">\n<p class=\"md-end-block md-p\"><span class=\"md-pair-s \"><strong><span class=\"md-plain\">More than two is fine.<\/span><\/strong><\/span> <span class=\"md-pair-s\" spellcheck=\"false\"><code>[bold-italic-underline]<\/code><\/span><span class=\"md-plain\"> is a valid combo<\/span> <span class=\"md-plain\">section for three-deep nesting.<\/span><\/p>\n<\/li>\n<li class=\"md-list-item\">\n<p class=\"md-end-block md-p\"><span class=\"md-pair-s \"><strong><span class=\"md-plain\">If no matching combo is declared, the innermost marker pair simply wins<\/span><\/strong><\/span><span class=\"md-plain\"> \u2014<\/span> <span class=\"md-plain\">its own plain <\/span><span class=\"md-pair-s\" spellcheck=\"false\"><code>charstyle<\/code><\/span><span class=\"md-plain\"> is applied to its content, same as if the<\/span> <span class=\"md-plain\">nested-style feature didn&#8217;t exist at all. Style-O-Matic never tries to<\/span> <span class=\"md-plain\">merge or guess a combined look on its own.<\/span><\/p>\n<\/li>\n<li class=\"md-list-item\">\n<p class=\"md-end-block md-p\"><span class=\"md-plain\">A combo only matches when it names <\/span><span class=\"md-pair-s \"><em><span class=\"md-plain\">exactly<\/span><\/em><\/span><span class=\"md-plain\"> the full set of marker pairs<\/span>\u00a0<span class=\"md-plain\">currently nested at that point. E.g. if only <\/span><span class=\"md-pair-s\" spellcheck=\"false\"><code>[bold-italic]<\/code><\/span><span class=\"md-plain\"> is declared<\/span> <span class=\"md-plain\">but the actual nesting is bold &gt; italic &gt; underline (three deep), that<\/span> <span class=\"md-plain\">combo won&#8217;t match the underline run \u2014 you&#8217;d need a separate<\/span> <span class=\"md-pair-s\" spellcheck=\"false\"><code>[bold-italic-underline]<\/code><\/span><span class=\"md-plain\"> entry for that specific depth, otherwise the<\/span> <span class=\"md-plain\">underline style alone is applied there.<\/span><\/p>\n<\/li>\n<\/ul>\n<p class=\"md-end-block md-p\"><span class=\"md-plain\">Full example:<\/span><\/p>\n<pre class=\"md-fences mock-cm md-end-block\" lang=\"ini\" spellcheck=\"false\"># Marker pair declarations\r\n[bold]\r\non  = **\r\noff = **\r\n\r\n[italic]\r\non  = *\r\noff = *\r\n\r\n[underline]\r\non  = _\r\noff = _\r\n\r\n# Style mappings, including combos\r\n[bold]\r\ncharstyle = MyBold\r\n\r\n[italic]\r\ncharstyle = MyItalic\r\n\r\n[underline]\r\ncharstyle = MyUnderline\r\n\r\n[bold-italic]\r\ncharstyle = MyBoldItalic\r\n\r\n[bold-underline]\r\ncharstyle = MyBoldUnderline<\/pre>\n<blockquote>\n<p class=\"md-end-block md-p\"><span class=\"md-pair-s \"><strong><span class=\"md-plain\">Important \u2014 use a dash in section\/key names.<\/span><\/strong><\/span><span class=\"md-plain\"> Style-O-Matic&#8217;s<\/span> <span class=\"md-plain\">config reader strips colons out of names entirely, so anything written with<\/span> <span class=\"md-plain\">another separator (like <\/span><span class=\"md-pair-s\" spellcheck=\"false\"><code>bold:italic<\/code><\/span><span class=\"md-plain\">) silently turns into a useless run-together<\/span> <span class=\"md-plain\">name. Always use a dash: <\/span><span class=\"md-pair-s\" spellcheck=\"false\"><code>bold-italic<\/code><\/span><span class=\"md-plain\">.<\/span><\/p>\n<\/blockquote>\n<div class=\"md-hr md-end-block\" tabindex=\"-1\">\n<hr \/>\n<\/div>\n<h2 class=\"md-end-block md-heading\"><span class=\"md-plain\">Missing Character Styles Are Created Automatically<\/span><\/h2>\n<p class=\"md-end-block md-p\"><span class=\"md-plain\">If a <\/span><span class=\"md-pair-s\" spellcheck=\"false\"><code>charstyle<\/code><\/span><span class=\"md-plain\"> you reference (whether a plain rule&#8217;s style or a combo&#8217;s<\/span> <span class=\"md-plain\">style) doesn&#8217;t already exist in the document, Style-O-Matic creates it for<\/span> <span class=\"md-plain\">you automatically as an empty placeholder with that exact name, applies it,<\/span> <span class=\"md-plain\">and reports a warning so you know it happened. This means Style-O-Matic never<\/span> <span class=\"md-plain\">silently fails to apply <\/span><span class=\"md-pair-s \"><em><span class=\"md-plain\">a<\/span><\/em><\/span><span class=\"md-plain\"> style \u2014 but a freshly auto-created placeholder has<\/span> <span class=\"md-plain\">no formatting of its own yet.<\/span><\/p>\n<p class=\"md-end-block md-p\"><span class=\"md-plain\">After a run, check the warnings list for anything like:<\/span><\/p>\n<pre class=\"md-fences mock-cm md-end-block\" lang=\"\" spellcheck=\"false\">Character style 'MyBoldItalic' not found - created placeholder style (rule 'italic')<\/pre>\n<p class=\"md-end-block md-p\"><span class=\"md-plain\">and go define that style&#8217;s actual appearance (font, weight, color, etc.) in<\/span> <span class=\"md-plain\">the Character Styles panel. On the next run, Style-O-Matic will find it and<\/span> <span class=\"md-plain\">use it as-is.<\/span><\/p>\n<div class=\"md-hr md-end-block\" tabindex=\"-1\">\n<hr \/>\n<\/div>\n<h2 class=\"md-end-block md-heading\"><span class=\"md-plain\">Running the Script &amp; Reading the Results<\/span><\/h2>\n<p class=\"md-end-block md-p\"><span class=\"md-plain\">Select the frame you want processed (not the config frame itself \u2014 Style-O-Matic<\/span> <span class=\"md-plain\">refuses to run on a frame it recognizes as a config note) and run the script.<\/span> <span class=\"md-plain\">The results dialog reports:<\/span><\/p>\n<ul class=\"ul-list\" data-mark=\"-\">\n<li class=\"md-list-item\">\n<p class=\"md-end-block md-p\"><span class=\"md-pair-s \"><strong><span class=\"md-plain\">Spans found<\/span><\/strong><\/span><span class=\"md-plain\"> \u2014 how many marked runs of text were detected.<\/span><\/p>\n<\/li>\n<li class=\"md-list-item\">\n<p class=\"md-end-block md-p\"><span class=\"md-pair-s \"><strong><span class=\"md-plain\">Spans styled<\/span><\/strong><\/span><span class=\"md-plain\"> \u2014 how many were successfully styled.<\/span><\/p>\n<\/li>\n<li class=\"md-list-item\">\n<p class=\"md-end-block md-p\"><span class=\"md-pair-s \"><strong><span class=\"md-plain\">Warnings<\/span><\/strong><\/span><span class=\"md-plain\"> \u2014 non-fatal issues, such as an auto-created placeholder style<\/span> <span class=\"md-plain\">(see above), or an opening marker that was never closed.<\/span><\/p>\n<\/li>\n<li class=\"md-list-item\">\n<p class=\"md-end-block md-p\"><span class=\"md-pair-s \"><strong><span class=\"md-plain\">Errors<\/span><\/strong><\/span><span class=\"md-plain\"> \u2014 anything that stopped a particular span from being processed.<\/span><\/p>\n<\/li>\n<\/ul>\n<p class=\"md-end-block md-p\"><span class=\"md-plain\">An unmatched-opener warning looks like:<\/span><\/p>\n<pre class=\"md-fences md-end-block ty-contain-cm modeLoaded\" lang=\"\" spellcheck=\"false\"><span role=\"presentation\">Unmatched opener '**' (rule 'bold') at story position 234<\/span><\/pre>\n<p class=\"md-end-block md-p\"><span class=\"md-plain\">This means an <\/span><span class=\"md-pair-s\" spellcheck=\"false\"><code>on<\/code><\/span><span class=\"md-plain\"> marker was found with no matching <\/span><span class=\"md-pair-s\" spellcheck=\"false\"><code>off<\/code><\/span><span class=\"md-plain\"> before the end of<\/span> <span class=\"md-plain\">the story \u2014 check your source text for a missing closing marker.<\/span><\/p>\n<div class=\"md-hr md-end-block\" tabindex=\"-1\">\n<hr \/>\n<\/div>\n<h2 class=\"md-end-block md-heading\"><span class=\"md-plain\">Troubleshooting<\/span><\/h2>\n<ul class=\"ul-list\" data-mark=\"-\">\n<li class=\"md-list-item\">\n<p class=\"md-end-block md-p\"><span class=\"md-pair-s \"><strong><span class=\"md-plain\">A rule doesn&#8217;t seem to do anything at all.<\/span><\/strong><\/span><span class=\"md-plain\"> Double-check the section has<\/span> <span class=\"md-plain\">all three of <\/span><span class=\"md-pair-s\" spellcheck=\"false\"><code>on<\/code><\/span><span class=\"md-plain\">, <\/span><span class=\"md-pair-s\" spellcheck=\"false\"><code>off<\/code><\/span><span class=\"md-plain\">, and <\/span><span class=\"md-pair-s\" spellcheck=\"false\"><code>charstyle<\/code><\/span><span class=\"md-plain\"> (whether in one section or split<\/span> <span class=\"md-plain\">across two same-named sections as described above) \u2014 a rule missing any of<\/span> <span class=\"md-plain\">these is skipped, and that particular skip is not shown in the results<\/span> <span class=\"md-plain\">dialog.<\/span><\/p>\n<\/li>\n<li class=\"md-list-item\">\n<p class=\"md-end-block md-p\"><span class=\"md-pair-s \"><strong><span class=\"md-plain\">A combo style never gets applied.<\/span><\/strong><\/span><span class=\"md-plain\"> Check the section name is spelled<\/span> <span class=\"md-plain\">with a dash (<\/span><span class=\"md-pair-s\" spellcheck=\"false\"><code>bold-italic<\/code><\/span><span class=\"md-plain\">), and that both names exactly match<\/span> <span class=\"md-plain\">the names of existing rule sections.<\/span><\/p>\n<\/li>\n<li class=\"md-list-item\">\n<p class=\"md-end-block md-p\"><span class=\"md-pair-s \"><strong><span class=\"md-plain\">Text looks styled but not quite how you expected.<\/span><\/strong><\/span><span class=\"md-plain\"> Remember nesting only<\/span> <span class=\"md-plain\">produces a combo look where you&#8217;ve explicitly declared that exact<\/span> <span class=\"md-plain\">combination \u2014 otherwise the innermost marker&#8217;s own style wins outright.<\/span><\/p>\n<\/li>\n<li class=\"md-list-item\">\n<p class=\"md-end-block md-p\"><span class=\"md-pair-s \"><strong><span class=\"md-plain\">Nothing happens when you run the script.<\/span><\/strong><\/span><span class=\"md-plain\"> Make sure you selected a text<\/span> <span class=\"md-plain\">frame, insertion point, or text \u2014 not just clicked on the pasteboard \u2014 and<\/span> <span class=\"md-plain\">that at least one text frame in the document contains a <\/span><span class=\"md-pair-s\" spellcheck=\"false\"><code>[style-o-matic]<\/code><\/span> <span class=\"md-plain\">config note.<\/span><\/p>\n<\/li>\n<\/ul>\n<div class=\"md-hr md-end-block\" tabindex=\"-1\">\n<hr \/>\n<\/div>\n<h2 class=\"md-end-block md-heading\"><span class=\"md-plain\">Known Limitations<\/span><\/h2>\n<ul class=\"ul-list\" data-mark=\"-\">\n<li class=\"md-list-item\">\n<p class=\"md-end-block md-p\"><span class=\"md-plain\">Inline (character-level) styling only \u2014 no paragraph-style support.<\/span><\/p>\n<\/li>\n<li class=\"md-list-item\">\n<p class=\"md-end-block md-p\"><span class=\"md-plain\">No live preview: run the script to apply, undo to revert.<\/span><\/p>\n<\/li>\n<li class=\"md-list-item\">\n<p class=\"md-end-block md-p\"><span class=\"md-plain\">Wrapping the <\/span><span class=\"md-pair-s \"><em><span class=\"md-plain\">same<\/span><\/em><\/span><span class=\"md-plain\"> rule inside itself (e.g. bold inside bold) isn&#8217;t<\/span> <span class=\"md-plain\">supported \u2014 the first closing marker closes the first opening one,<\/span> <span class=\"md-plain\">regardless of how deep you nested.<\/span><\/p>\n<\/li>\n<li class=\"md-list-item md-focus-container\">\n<p class=\"md-end-block md-p md-focus\"><span class=\"md-plain\">Auto-created placeholder styles have no formatting until you define it<\/span> <span class=\"md-plain md-expand\">yourself in the Character Styles panel.<\/span><\/p>\n<\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>What does Style-O-Matic do? Style-O-Matic reads text frames in an open document, finds frames that contain a [style-o-matic] config section, parses the markup rules defined in that config, then scans a story and applies InDesign character styles wherever it finds &hellip; <a href=\"https:\/\/rorohiko.com\/wordpress\/indesign-downloads\/style-o-matic-for-adobe-indesign\/\">Continue reading <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":143,"featured_media":0,"parent":295,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-7087","page","type-page","status-publish","hentry"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.8 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Style-O-Matic for Adobe InDesign - Rorohiko Workflow Resources<\/title>\n<meta name=\"description\" content=\"What does Style-O-Matic do? Style-O-Matic reads text frames in an open document, finds frames that contain a config section, parses the markup rules\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/rorohiko.com\/wordpress\/indesign-downloads\/style-o-matic-for-adobe-indesign\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Style-O-Matic for Adobe InDesign - Rorohiko Workflow Resources\" \/>\n<meta property=\"og:description\" content=\"What does Style-O-Matic do? Style-O-Matic reads text frames in an open document, finds frames that contain a config section, parses the markup rules\" \/>\n<meta property=\"og:url\" content=\"https:\/\/rorohiko.com\/wordpress\/indesign-downloads\/style-o-matic-for-adobe-indesign\/\" \/>\n<meta property=\"og:site_name\" content=\"Rorohiko Workflow Resources\" \/>\n<meta property=\"article:modified_time\" content=\"2026-08-02T08:39:22+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/rorohiko.com\/wordpress\/wp-content\/uploads\/2026\/07\/StyleOMatic.png\" \/>\n\t<meta property=\"og:image:width\" content=\"192\" \/>\n\t<meta property=\"og:image:height\" content=\"192\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"twitter:label1\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data1\" content=\"8 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/rorohiko.com\\\/wordpress\\\/indesign-downloads\\\/style-o-matic-for-adobe-indesign\\\/\",\"url\":\"https:\\\/\\\/rorohiko.com\\\/wordpress\\\/indesign-downloads\\\/style-o-matic-for-adobe-indesign\\\/\",\"name\":\"Style-O-Matic for Adobe InDesign - Rorohiko Workflow Resources\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/rorohiko.com\\\/wordpress\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/rorohiko.com\\\/wordpress\\\/indesign-downloads\\\/style-o-matic-for-adobe-indesign\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/rorohiko.com\\\/wordpress\\\/indesign-downloads\\\/style-o-matic-for-adobe-indesign\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/rorohiko.com\\\/wordpress\\\/wp-content\\\/uploads\\\/2026\\\/07\\\/StyleOMatic.png\",\"datePublished\":\"2026-08-01T01:19:18+00:00\",\"dateModified\":\"2026-08-02T08:39:22+00:00\",\"description\":\"What does Style-O-Matic do? Style-O-Matic reads text frames in an open document, finds frames that contain a config section, parses the markup rules\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/rorohiko.com\\\/wordpress\\\/indesign-downloads\\\/style-o-matic-for-adobe-indesign\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/rorohiko.com\\\/wordpress\\\/indesign-downloads\\\/style-o-matic-for-adobe-indesign\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/rorohiko.com\\\/wordpress\\\/indesign-downloads\\\/style-o-matic-for-adobe-indesign\\\/#primaryimage\",\"url\":\"https:\\\/\\\/rorohiko.com\\\/wordpress\\\/wp-content\\\/uploads\\\/2026\\\/07\\\/StyleOMatic.png\",\"contentUrl\":\"https:\\\/\\\/rorohiko.com\\\/wordpress\\\/wp-content\\\/uploads\\\/2026\\\/07\\\/StyleOMatic.png\",\"width\":192,\"height\":192},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/rorohiko.com\\\/wordpress\\\/indesign-downloads\\\/style-o-matic-for-adobe-indesign\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/rorohiko.com\\\/wordpress\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"InDesign Downloads\",\"item\":\"https:\\\/\\\/rorohiko.com\\\/wordpress\\\/indesign-downloads\\\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Style-O-Matic for Adobe InDesign\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/rorohiko.com\\\/wordpress\\\/#website\",\"url\":\"https:\\\/\\\/rorohiko.com\\\/wordpress\\\/\",\"name\":\"Rorohiko Workflow Resources\",\"description\":\"Custom InDesign Development\",\"publisher\":{\"@id\":\"https:\\\/\\\/rorohiko.com\\\/wordpress\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/rorohiko.com\\\/wordpress\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/rorohiko.com\\\/wordpress\\\/#organization\",\"name\":\"Rorohiko Ltd.\",\"url\":\"https:\\\/\\\/rorohiko.com\\\/wordpress\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/rorohiko.com\\\/wordpress\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/www.rorohiko.com\\\/wordpress\\\/wp-content\\\/uploads\\\/2018\\\/03\\\/roro-logo-3d-v2.png\",\"contentUrl\":\"https:\\\/\\\/www.rorohiko.com\\\/wordpress\\\/wp-content\\\/uploads\\\/2018\\\/03\\\/roro-logo-3d-v2.png\",\"width\":207,\"height\":200,\"caption\":\"Rorohiko Ltd.\"},\"image\":{\"@id\":\"https:\\\/\\\/rorohiko.com\\\/wordpress\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/x.com\\\/zwettemaan\",\"https:\\\/\\\/www.instagram.com\\\/kriscoppieters\\\/\",\"https:\\\/\\\/www.linkedin.com\\\/in\\\/kristiaan\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Style-O-Matic for Adobe InDesign - Rorohiko Workflow Resources","description":"What does Style-O-Matic do? Style-O-Matic reads text frames in an open document, finds frames that contain a config section, parses the markup rules","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/rorohiko.com\/wordpress\/indesign-downloads\/style-o-matic-for-adobe-indesign\/","og_locale":"en_US","og_type":"article","og_title":"Style-O-Matic for Adobe InDesign - Rorohiko Workflow Resources","og_description":"What does Style-O-Matic do? Style-O-Matic reads text frames in an open document, finds frames that contain a config section, parses the markup rules","og_url":"https:\/\/rorohiko.com\/wordpress\/indesign-downloads\/style-o-matic-for-adobe-indesign\/","og_site_name":"Rorohiko Workflow Resources","article_modified_time":"2026-08-02T08:39:22+00:00","og_image":[{"width":192,"height":192,"url":"https:\/\/rorohiko.com\/wordpress\/wp-content\/uploads\/2026\/07\/StyleOMatic.png","type":"image\/png"}],"twitter_misc":{"Est. reading time":"8 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/rorohiko.com\/wordpress\/indesign-downloads\/style-o-matic-for-adobe-indesign\/","url":"https:\/\/rorohiko.com\/wordpress\/indesign-downloads\/style-o-matic-for-adobe-indesign\/","name":"Style-O-Matic for Adobe InDesign - Rorohiko Workflow Resources","isPartOf":{"@id":"https:\/\/rorohiko.com\/wordpress\/#website"},"primaryImageOfPage":{"@id":"https:\/\/rorohiko.com\/wordpress\/indesign-downloads\/style-o-matic-for-adobe-indesign\/#primaryimage"},"image":{"@id":"https:\/\/rorohiko.com\/wordpress\/indesign-downloads\/style-o-matic-for-adobe-indesign\/#primaryimage"},"thumbnailUrl":"https:\/\/rorohiko.com\/wordpress\/wp-content\/uploads\/2026\/07\/StyleOMatic.png","datePublished":"2026-08-01T01:19:18+00:00","dateModified":"2026-08-02T08:39:22+00:00","description":"What does Style-O-Matic do? Style-O-Matic reads text frames in an open document, finds frames that contain a config section, parses the markup rules","breadcrumb":{"@id":"https:\/\/rorohiko.com\/wordpress\/indesign-downloads\/style-o-matic-for-adobe-indesign\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/rorohiko.com\/wordpress\/indesign-downloads\/style-o-matic-for-adobe-indesign\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/rorohiko.com\/wordpress\/indesign-downloads\/style-o-matic-for-adobe-indesign\/#primaryimage","url":"https:\/\/rorohiko.com\/wordpress\/wp-content\/uploads\/2026\/07\/StyleOMatic.png","contentUrl":"https:\/\/rorohiko.com\/wordpress\/wp-content\/uploads\/2026\/07\/StyleOMatic.png","width":192,"height":192},{"@type":"BreadcrumbList","@id":"https:\/\/rorohiko.com\/wordpress\/indesign-downloads\/style-o-matic-for-adobe-indesign\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/rorohiko.com\/wordpress\/"},{"@type":"ListItem","position":2,"name":"InDesign Downloads","item":"https:\/\/rorohiko.com\/wordpress\/indesign-downloads\/"},{"@type":"ListItem","position":3,"name":"Style-O-Matic for Adobe InDesign"}]},{"@type":"WebSite","@id":"https:\/\/rorohiko.com\/wordpress\/#website","url":"https:\/\/rorohiko.com\/wordpress\/","name":"Rorohiko Workflow Resources","description":"Custom InDesign Development","publisher":{"@id":"https:\/\/rorohiko.com\/wordpress\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/rorohiko.com\/wordpress\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/rorohiko.com\/wordpress\/#organization","name":"Rorohiko Ltd.","url":"https:\/\/rorohiko.com\/wordpress\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/rorohiko.com\/wordpress\/#\/schema\/logo\/image\/","url":"https:\/\/www.rorohiko.com\/wordpress\/wp-content\/uploads\/2018\/03\/roro-logo-3d-v2.png","contentUrl":"https:\/\/www.rorohiko.com\/wordpress\/wp-content\/uploads\/2018\/03\/roro-logo-3d-v2.png","width":207,"height":200,"caption":"Rorohiko Ltd."},"image":{"@id":"https:\/\/rorohiko.com\/wordpress\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/x.com\/zwettemaan","https:\/\/www.instagram.com\/kriscoppieters\/","https:\/\/www.linkedin.com\/in\/kristiaan"]}]}},"_links":{"self":[{"href":"https:\/\/rorohiko.com\/wordpress\/wp-json\/wp\/v2\/pages\/7087","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/rorohiko.com\/wordpress\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/rorohiko.com\/wordpress\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/rorohiko.com\/wordpress\/wp-json\/wp\/v2\/users\/143"}],"replies":[{"embeddable":true,"href":"https:\/\/rorohiko.com\/wordpress\/wp-json\/wp\/v2\/comments?post=7087"}],"version-history":[{"count":17,"href":"https:\/\/rorohiko.com\/wordpress\/wp-json\/wp\/v2\/pages\/7087\/revisions"}],"predecessor-version":[{"id":7109,"href":"https:\/\/rorohiko.com\/wordpress\/wp-json\/wp\/v2\/pages\/7087\/revisions\/7109"}],"up":[{"embeddable":true,"href":"https:\/\/rorohiko.com\/wordpress\/wp-json\/wp\/v2\/pages\/295"}],"wp:attachment":[{"href":"https:\/\/rorohiko.com\/wordpress\/wp-json\/wp\/v2\/media?parent=7087"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}