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

vgsvg enhancement: avoid transform instructions in svg code

Abierto
#518 3 comentarios 0 reacciones 0 asignados Ver en GitHub

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
4/5
Tiempo estimado
3-5 días
Aptitud para principiantes
35/100
Tipo de issue
Nueva funcionalidad
Claridad
Bastante claro
Estado de actividad
Estancado
Stack tecnológico
go

Línea de trabajo

Comienza localizando el código de generación de SVG responsable de los atributos de transformación de grupos y texto; después, sigue cómo se convierten las coordenadas del gráfico antes de la salida SVG. Compara el SVG generado con y sin transformaciones repetidas e identifica las pruebas de renderizado relevantes, si las hay. Se considera terminado cuando se producen gráficos equivalentes tras eliminar las instrucciones de transformación redundantes y la salida SVG es más pequeña.

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

Descripción

Suggestion

To make generated svg code more compact, I suggest to make the transform in the Go code instead of the svg code.

The change would allow to change

  1. <g transform="scale(1, -1) translate(0, -216)"> into <g> which occur once in the svg code.
  2. <text x="462.81" y="-0.2002" transform="scale(1, -1)" style=... into <text x="462.81" y="-0.2002" style=... which occur for every text tag in the svg code.

Benefits :

  • reduce the size of the SVG code for plots,
  • execute the transform once at svg code generation, not at each plot rendering.

Disadvantages :

  • make the go code a little more complex by adding the transform instruction

Another optimization could be to use style definition in the svg code to avoid repeating the style in each text tag. This would be more beneficial to the size, but also slightly more complex to implement.

If you agree, I may work on a PR proposal.

The use case I have is that I attach multiple svg plots to mails which has a maximum size limit. Whoever would want to save/archive many plots would be glad that they are small. They are already smaller than PNG plots, but we could do better than that.

Lenguaje dominante
Go
Estrellas
3k
Forks
202
Métricas de merge de PR
Sin PR fusionados en 30 d

Preparar el entorno

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 gonum/plot

Todos los issues de gonum/plot

Issues similares

Más issues de Go

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.