Hacktoberfest 2026: los issues que los mantenedores marcaron para octubre, abiertos y aptos para principiantes. Explorar issues de Hacktoberfest

Replace CSSOM so new CSS features are supported

Abierto
#318 6 comentarios 0 reacciones 0 asignados Ver en GitHub

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
5/5
Tiempo estimado
Más de una semana
Aptitud para principiantes
25/100
Tipo de issue
Refactorización
Claridad
Necesita aclaración
Estado de actividad
Estancado
Stack tecnológico
css, javascript
Área
frontend, web-dev

Línea de trabajo

Comienza con el ejemplo de parseHTML del issue e inspecciona cómo linkedom integra CSSOM; no se menciona ningún archivo fuente ni ninguna prueba. Compara el comportamiento actual de CSSOM con los parsers candidatos del benchmark enlazado. Se considera terminado cuando el CSS anidado y otras reglas CSS modernas se procesan sin excepciones, mientras la funcionalidad CSS necesaria y el rendimiento siguen siendo aceptables.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

Hi,

I noticed that currently linkedom fails to parse styles with nested CSS rules. Here's a sample code:

import {parseHTML} from "linkedom";

const doc = parseHTML(`
<style>
	.parent { .child { color: red; }}
</style>
`).document;
console.log(doc.children[0].sheet);

Looking into it, it seems like this is an issue with CSSOM, which makes sense considering that project stopped receiving updates 5 years ago and is marked as unmaintained. Although I didn't check, I assume other kinds of 'modern' CSS rules will also raise an exception when parsed.

I would like to know if there is interest in replacing it with an up-to-date CSS parser implementation.

Looking online, I found a benchmark that shows that a few other CSS parsers more or less match the performance of CSSOM, which I know is an important factor for this project.

If this is desired I can take a look into changing the backing implementation, probably trying the projects in the order they appear in that benchmark (I don't know which of those provides the functionalities linkedom requires).

Lenguaje dominante
HTML
Estrellas
2.1k
Forks
108
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

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de WebReflection/linkedom

Todos los issues de WebReflection/linkedom

Issues similares

Más issues de Web Dev

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.