Markdown
Extension | .md, .markdown |
Smartling Identifier | MARKDOWN |
Example File | (see examples below) |
Resources | GitHub Flavored Markdown Spec |
Markdown comes in many flavors. The one that is supported by Smartling is the GitHub flavor of Markdown. Consult a member of your internal technical team to confirm which flavor of Markdown you are using.
Before uploading your Markdown file to Smartling, be aware of the following:
Markdown translation is accomplished by transforming content into HTML so that it can be manipulated in translation tools and viewed in context with ease. Once translation is complete, the content is converted from HTML back into Markdown while the translated content is downloaded. As a result, your original Markdown document may differ in some ways from what is downloaded in the translated documents.
During the translation process, Smartling will try to maintain the same visual layout of your file but can’t guarantee that there won’t be some noticeable differences. Some post-processing may be required to return the same formatting as the original document. See below for more details about the Markdown formatting.
ICU Message Format is not supported with Markdown due to conflicts between ICU special characters and Markdown special characters.
File directives for API Service configuration parameters are listed below. Inline directives are not supported.
Markdown Formatting
Below are some examples of known differences for Markdown formatting in the translated file returned by Smartling.
Alternate Codes
Most Markdown styling can be represented by different Markdown code sequences (or character sequences). One code sequence will be consistently returned for any given style. For example:
H1 and H2 headers (only)
Original | Downloaded |
# Header 1 |
Header 1 |
The above only applies to Markdown h1 and h2 headers. All other headers are unchanged on download.
Italic and bold:
Original | Downloaded |
Text with _Italic_, __bold__, *Italic* , **bold** |
Text with *Italic*, **bold**, *Italic* , **bold** |
Formatting of code blocks is returned with an indentation style:
Original | Downloaded |
``` |
public void main() |
Escaping
The following characters are escaped with a backslash '\' in the downloaded file if they’re in the translated text:
\ backslash
* asterisk
_ underscore
{} curly braces
[] square brackets
() parentheses
# hash mark
+ plus sign
- minus sign (hyphen)
! exclamation mark
. dot sign is escaped when it is placed after a number (e.g. 123\.
)
The greater sign (>) is escaped when it is placed on the new line, or after the beginning of a
paragraph (if it is not a blockquote).
Script Tags
Literal (HTML markup inside markdown) script tags are removed.
Original | Downloaded |
<script type="text/javascript">
|
okay |
Original | Downloaded |
<script> |
1\. \*bar\* |
Style Tags
Literal (HTML markup inside markdown) style tags are removed.
Original | Downloaded |
<style |
okay |
Blockquotes
Blockquotes can be merged.
Original | Downloaded |
> foo |
> foo |
Bullets With Headings
Extra line breaks can sometimes be returned.
Original | Downloaded |
- # Foo |
* |
Lists
An extra line break is added between lists.
Original | Downloaded |
- [x] foo |
* [x] foo |
Custom start position in numeric list currently is not supported.
Original | Downloaded |
123. Item 1 |
1. Item 1 |
Italics
Extra spacing can be added around certain styles.
Original | Downloaded |
5*6*78 |
5 *6* 78 |
Directives
Inline directives are not supported. File directives are supported via our API, in the following format:
API Parameter
smartling.[directive_name] = [value] |
Here are some examples of [directive_name], along with example values or paths.
placeholder_format_custom
primary_placeholder_format_custom
Values |
1) Custom Java compatible regular expression. |
Description | Specifies a custom placeholder format. Any text in your file matching the regular expression you provide will be captured as a placeholder. |
Examples | smartling-cli files push "markdown.md" --type markdown --directive
placeholder_format_custom="\{\{.+?\}\}" |
See custom placeholder format article for more information.
primary_placeholder_format_custom
Values |
Custom Java compatible regular expression. |
Description | Used to define custom placeholders in the raw Markdown source (before the actual parsing). This can be used only as an external api request parameter. |
Examples |
|
markdown_html_strategy
Values |
default | restore (case-insensitive) |
Description | The restore value enables the Markdown parser to retain original HTML tags in the translated markdown. This can be used only as an external api request parameter. |
Examples |
|
markdown_code_notranslate
Values |
true | false |
Description |
Used to change default behavior for specific markdown. By default, this is true, meaning all markdown code strings are excluded from translation. |
Examples |
|
yfm_block_enabled
Values |
on|yes|true or off|no|false The default value is off |
Description |
Frontmatter is a block of YAML at the top of a markdown file, e.g.: — Anything that is in between the — should be treated as YAML. The option for recognizing Frontmatter allows you to include the YAML Frontmatter (yfm) block for translation. To exclude some of YAML Frontmatter variables, the following directive can be used: smartling.no_translate_keys = title, example.custom.text |
Examples |
smartling.yfm_block_enabled = on Content between each — is ingested for translation
|
whitespace_trim
Values |
on|yes|true or off|no|false or leading|trailing The default value is on |
Description |
A whitespace is any character or series of characters that represent horizontal or vertical space in typography. When rendered, a whitespace character is not a visible mark, but does occupy an area or space on a page. Although whitespaces are necessary within a string (typically to separate words), unnecessary whitespaces can be found at the start of a string (leading) and at the end of a string (trailing). With this directive, you can trim whitespaces, as it enables or disables whitespace trim management for the ingested strings. By default, the leading and trailing whitespaces are trimmed. You can choose to disable trimming or specify trimming for leading or trailing whitespaces. The directive can be used inline or as the API request parameter. |
Examples |
Smartling will trim leading and trailing whitespaces (default)
Smartling will not trim leading or trailing whitespaces
Smartling will trim only leading whitespaces
Smartling will trim only trailing whitespaces |