Optimize tight/loose list parsing (new algorithm from commonmark-java)
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Aptitud para principiantes
- 42/100
- Tipo de issue
- Refactorización
- Claridad
- Bastante claro
- Estado de actividad
- Estancado
- Stack tecnológico
- javascript
- Área
- tooling
Línea de trabajo
Comienza leyendo el commit vinculado de commonmark-java y localiza los métodos del parser de list-item y list-block mencionados en el issue: continue y canContain. Rastrea cómo las líneas en blanco afectan actualmente a tightness y, a continuación, compara el seguimiento de estado propuesto con la implementación existente. Ejecuta las pruebas de la especificación de CommonMark y confirma que el comportamiento de tightness de las listas no cambia, mientras que el rendimiento mejora.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Hey! The commonmark-java implementation was using the same algorithm as commonmark.js and cmark for determining whether a list is tight or loose. I recently re-implemented it because it showed up in a profiling session.
The results for the new algorithm are pretty good: a 10% performance improvement! See details here: https://github.com/atlassian/commonmark-java/commit/cfd28faa221056a1a28ce402ed8a278afe9e527d
I'm opening this issue because you might be interested in porting it back to the reference implementations :). I don't know if the improvement will be as significant, but it's worth a try.
It works like this (but see the commit above for details):
- In the parser for list items:
- in
continue, remember when there was a blank line (except when a code block is being parsed) - in
canContain(which is called when a new child will be added), settighttofalseif we saw a blank line before
- in
- In the parser for list blocks:
- in
continue, remember when we had a blank line (and how many lines back it was) - in
canContain, settighttofalseif the previous line was blank
- in
(The new algorithm also feels simpler, hopefully there's no holes in it. It passes all the spec tests and some extra ones.)
- Lenguaje dominante
- JavaScript
- Estrellas
- 1.6k
- Forks
- 231
- Merge medio
- 2 d 17 h
- PR fusionados (30 d)
- 2
Preparar el entorno
- Sin Dockerfile ni archivo de Docker Compose
- Sin plantilla de pull request
- Leer la guía de contribución
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.js
-
White space handling looks inconsistent between HTML block element vs HTML inline elementPosiblemente ocupada @mamicicekel la tomó hace 3 días. Abierto
Dificultad 3/5 1-2 días Aptitud para principiantes 35/100
commonmark/commonmark.js#303 · 2 comentarios ·
-
Dificultad 4/5 3-5 días Aptitud para principiantes 38/100
commonmark/commonmark.js#298 ·
-
Dificultad 4/5 3-5 días Aptitud para principiantes 35/100
commonmark/commonmark.js#287 · 1 reacción ·
-
Dificultad 3/5 1-2 días Aptitud para principiantes 20/100
commonmark/commonmark.js#275 ·
-
Delegate node walking to othersAbierto
Dificultad 5/5 Más de una semana Aptitud para principiantes 25/100
commonmark/commonmark.js#267 · 3 comentarios ·
Todos los issues de commonmark/commonmark.js
Issues similares
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 65/100
processing/p5.sound.js#123 ·
-
Dificultad 1/5 1-3 horas Aptitud para principiantes 82/100
PhilflowIO/dav-mcp#146 ·
Los mantenedores suelen responder en 1 día
-
Add a light/dark theme toggleAbiertogood first issue hacktoberfest
Dificultad 2/5 1-3 horas Aptitud para principiantes 82/100
Tanishq964/trail-kit.#4 ·
-
Request: <brand-name>Abiertonew icon permissions in review
Dificultad 2/5 1-3 horas Aptitud para principiantes 62/100
simple-icons/simple-icons#15067 ·
Los mantenedores suelen responder en 1 día
-
status: needs triage
Dificultad 2/5 1-3 horas Aptitud para principiantes 62/100
mastra-ai/mastra#26562 · 1 comentario · 1 reacción ·
Los mantenedores suelen responder en 1 día