Description on how soft line breaks are treated in browsers doesn't consider the combination of Firefox & Chinese/Japanese text and should be improved
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Aptitud para principiantes
- 38/100
- Tipo de issue
- Documentación
- Claridad
- Bastante claro
- Estado de actividad
- Estancado
- Stack tecnológico
- css, html
- Área
- documentation
Línea de trabajo
Start with the soft-break section at spec.commonmark.org/0.30/#softbreak and compare its wording with CSS Text Module 4's line-break transformation rules. Reproduce the linked CodePen and Dingus examples in Firefox and Chromium-based browsers, including the Chinese, Japanese, and Korean cases. Done means the specification text accurately describes browser-dependent rendering and the relevant language behavior.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
https://spec.commonmark.org/0.30/#softbreak
The description on a soft line break looked ambiguous or questionable for me.
A soft line break may be rendered in HTML either as a line ending or as a space.
Does it mean Markdown-to-HTML converters are allowed to convert a soft line break in Markdown to either of "\n" (or possibly "\r" or "\r\n") or " " in HTML? Generally "may" in specifications means "is allowed to and does not have to" (RFC 2119) and confused me.
I have no idea when "a soft line break is rendered in HTML as a line ending". Is it when whitespace: preserve or some other values is passed in CSS? Also is there a case when a soft line break is rendered in HTML as other than a line ending or a space?
The result will be the same in browsers.
This is wrong. How "\n" in HTML is rendered differs among browsers when Chinese or Japanese are contained.
https://drafts.csswg.org/css-text-4/#line-break-transform
Then any remaining segment break is either transformed into a space (U+0020) or removed depending on the context before and after the break. The rules for this operation are UA-defined in this level.
This means how a soft line break is rendered depends on browsers' implementations.
In languages that have no word separators, such as Chinese, “unbreaking” a line requires joining the two lines with no intervening space.
這個段落是那麼長,
在一行寫不行。最好
用三行寫。
↓
這個段落是那麼長,在一行寫不行。最好用三行寫。
Only Firefox follows this recommendation as of now. (However, spaces are inserted like the other browsers when copied and pasted on somewhere else!)
https://codepen.io/tats-u/pen/YzdKKyN
<p lang="zh-Hant-tw">這個段落是那麼長,
在一行寫不行。最好
用三行寫。</p>
↑Firefox (intended)
↑Edge (WebKit / Blink / IE; not intended; space after "," is selected)
https://codepen.io/tats-u/pen/poQQVyR (what kind of CJK letters remove a newline between them? → Korean is treated like alphanumeric characters unlike Japanese)
<p>잘자
(
잘자
)
잘자
잘자
あああ
(
あああ
)
ああああ
1
ああ
ああ
。
1
。</p>
↑ FIrefox
↑Edge (and other WebKit & Blink based browsers / IE)
↑Firefox (looks natural)
↑Edge (Wekit / Blink / IE; doesn't look natural)
From these results, we can conclude only "\n" between Chinese or Japanese letters (han/kana) or punctuation marks is removed instead of replaced with " " in Firefox.
Also,
The result will be the same in browsers.
This sentence must be replaced with like:
The result will follow the CSS Text Module specification and might depend on browsers (but should be same in languages that use a space to segment words).
- Lenguaje dominante
- Python
- Estrellas
- 5.2k
- Forks
- 360
- Métricas de merge de PR
- Sin PR fusionados en 30 d
Preparar el entorno
Este proyecto no incluye contenedor de desarrollo, Dockerfile ni guía de contribución, así que la configuración corre por tu cuenta: empieza por su README y consulta nuestra guía para la primera contribución para los pasos generales.
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de commonmark/commonmark-spec
-
NBSP written two different waysAbierto
Dificultad 1/5 Menos de una hora Aptitud para principiantes 88/100
commonmark/commonmark-spec#843 ·
-
Dificultad 1/5 Menos de una hora Aptitud para principiantes 68/100
commonmark/commonmark-spec#838 · 2 comentarios ·
-
Dificultad 1/5 Menos de una hora Aptitud para principiantes 62/100
commonmark/commonmark-spec#728 · 2 comentarios ·
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 38/100
commonmark/commonmark-spec#847 ·
-
Dificultad 5/5 Más de una semana Aptitud para principiantes 25/100
commonmark/commonmark-spec#844 · 5 comentarios · 1 reacción ·
Todos los issues de commonmark/commonmark-spec
Issues similares
-
Dificultad 1/5 1-3 horas Aptitud para principiantes 85/100
WLAN-Pi/wlanpi-profiler#341 ·
Los mantenedores suelen responder en 1 día
-
Memory leak: the shared `validation_aborted_error` keeps every traceback it is raised throughPosiblemente ocupada @Fire162 la tomó hoy. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
graphql-python/graphql-core#287 ·
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 67/100
roman-corgi/ctc-dip#160 ·
Los mantenedores suelen responder en 1 día
-
type-bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
Los mantenedores suelen responder en 1 día
-
render_findings.py reads and writes in the host's default encoding, so findings.html breaks on a cp1252 Windows hostPosiblemente ocupada @Aaqibhafeezkhan la tomó hoy. Abiertobug good first issue mentored python size: XS up-for-grabs
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
dheerajjha/mcp-migrate#366 · 1 comentario ·
Los mantenedores suelen responder en 1 día