Inlining HTML tag inside a Markdown table would cause Markdown syntax to be transformed into unusable HTML structure

I has occurred a several times now, inlining an HTML tag inside a markdown table will trigger Crowdin force transformation on the table section:

Here is the file which I had trouble with (it is not available now because I need to fix the issue by fixing the wrong behavior which is inlining a HTML tag inside the markdown table.
https://crowdin.com/translate/element-plus/895/en-zhcn?filter=basic&value=3

I have this section, below is the transformed result produced by Crowdin.

<table spaces-before="0">
  <tr>
    <th>
      属性
    </th>
    
    <th>
      说明
    </th>
    
    <th>
      类型
    </th>
    
    <th>
      可选值
    </th>
    
    <th>
      默认值
    </th>
  </tr>
  
  <tr>
    <td>
      model-value / v-model
    </td>
    
    <td>
      选中项绑定值
    </td>
    
    <td>
      number / undefined
    </td>
    
    <td>
      —
    </td>
    
    <td>
      —
    </td>
  </tr>
  
  <tr>
    <td>
      min
    </td>
    
    <td>
      设置计数器允许的最小值
    </td>
    
    <td>
      number
    </td>
    
    <td>
      —
    </td>
    
    <td>
      <code>-Infinity</code>
    </td>
  </tr>
  
  <tr>
    <td>
      max
    </td>
    
    <td>
      设置计数器允许的最大值
    </td>
    
    <td>
      number
    </td>
    
    <td>
      —
    </td>
    
    <td>
      <code>Infinity</code>
    </td>
  </tr>
  
  <tr>
    <td>
      step
    </td>
    
    <td>
      计数器步长
    </td>
    
    <td>
      number
    </td>
    
    <td>
      —
    </td>
    
    <td>
      1
    </td>
  </tr>
  
  <tr>
    <td>
      step-strictly
    </td>
    
    <td>
      是否只能输入 step 的倍数
    </td>
    
    <td>
      boolean
    </td>
    
    <td>
      —
    </td>
    
    <td>
      false
    </td>
  </tr>
  
  <tr>
    <td>
      precision
    </td>
    
    <td>
      数值精度
    </td>
    
    <td>
      number
    </td>
    
    <td>
      —
    </td>
    
    <td>
      —
    </td>
  </tr>
  
  <tr>
    <td>
      size
    </td>
    
    <td>
      计数器尺寸
    </td>
    
    <td>
      string
    </td>
    
    <td>
      large/small
    </td>
    
    <td>
      default
    </td>
  </tr>
  
  <tr>
    <td>
      disabled
    </td>
    
    <td>
      是否禁用计数器
    </td>
    
    <td>
      boolean
    </td>
    
    <td>
      —
    </td>
    
    <td>
      false
    </td>
  </tr>
  
  <tr>
    <td>
      controls
    </td>
    
    <td>
      是否使用控制按钮
    </td>
    
    <td>
      boolean
    </td>
    
    <td>
      —
    </td>
    
    <td>
      true
    </td>
  </tr>
  
  <tr>
    <td>
      controls-position
    </td>
    
    <td>
      控制按钮位置
    </td>
    
    <td>
      string
    </td>
    
    <td>
      right
    </td>
    
    <td>
      -
    </td>
  </tr>
  
  <tr>
    <td>
      name
    </td>
    
    <td>
      原生 <code>name</code> 属性
    </td>
    
    <td>
      string
    </td>
    
    <td>
      —
    </td>
    
    <td>
      —
    </td>
  </tr>
  
  <tr>
    <td>
      label
    </td>
    
    <td>
      输入框关联的 label 文字
    </td>
    
    <td>
      string
    </td>
    
    <td>
      —
    </td>
    
    <td>
      —
    </td>
  </tr>
  
  <tr>
    <td>
      placeholder
    </td>
    
    <td>
      输入框默认 placeholder
    </td>
    
    <td>
      string
    </td>
    
    <td>
      -
    </td>
    
    <td>
      -
    </td>
  </tr>
  
  <tr>
    <td>
      value-on-clear <VersionTag version="2.2.1" />
    </td>
    
    <td>
      当输入框被清空时显示的值
    </td>
    
    <td>
      string / number / null
    </td>
    
    <td>
      min/max
    </td>
    
    <td>
      -
    </td>
  </tr>
</table>

This is the original structure:

| Attribute                                     | Description                                      | Type                   | Accepted Values | Default     |
| --------------------------------------------- | ------------------------------------------------ | ---------------------- | --------------- | ----------- |
| model-value / v-model                         | binding value                                    | number / undefined     | —               | —           |
| min                                           | the minimum allowed value                        | number                 | —               | `-Infinity` |
| max                                           | the maximum allowed value                        | number                 | —               | `Infinity`  |
| step                                          | incremental step                                 | number                 | —               | 1           |
| step-strictly                                 | whether input value can only be multiple of step | boolean                | —               | false       |
| precision                                     | precision of input value                         | number                 | —               | —           |
| size                                          | size of the component                            | string                 | large/small     | default     |
| disabled                                      | whether the component is disabled                | boolean                | —               | false       |
| controls                                      | whether to enable the control buttons            | boolean                | —               | true        |
| controls-position                             | position of the control buttons                  | string                 | right           | -           |
| name                                          | same as `name` in native input                   | string                 | —               | —           |
| label                                         | label text                                       | string                 | —               | —           |
| placeholder                                   | placeholder in input                             | string                 | -               | -           |
| value-on-clear <VersionTag version="2.2.1" /> | value should be set when input box is cleared    | string / number / null | min/max         | -           |

I need to figure out how should I do for fixing this issue because it has occurred a couple of times and it is really annoying for us we need this tag for rendering something special, without it the feature is not possible to be implemented unless we change the whole project’s strategy on rendering APIs

2 Likes

Hello @JeremyWuuuuu

Have you tried custom segmentation? Custom Segmentation | Crowdin Documentation

Also, maybe it’s somehow related to cdata (I’m not a developer but in overall any system can work not as good in case you mixed up tags inside of cdata)