Estoy intentando incrustar un archivo PGN en un tema. Esto requiere incluir CSS y JavaScript en el tema. ¿Podría alguien, por favor, ayudarme a saber cómo usar CSS y JavaScript en un tema?
Esto no es posible en Discourse. ¿Qué es un archivo PGN? ¿Podrías describir tu objetivo un poco más claramente?
PGN significa Notación de Partida Portátil. Generalmente, todos los movimientos de una partida de ajedrez se pueden exportar a formato de texto y leerse mediante un lector PGN para volver a reproducir la partida.
Por lo general, se ve así:
[Event "Campeonato Mundial 28"]
[White "Spassky, Boris V"]
[Black "Fischer, Robert James"]
[Site "Reikiavik"]
[Result "1–0"]
[Date "1972.08.06"]
[WhiteElo "2660"]
[BlackElo "2785"]
1. e4 c5 2. Nf3 d6 3. d4 cxd4 4. Nxd4 Nf6 5. Nc3 a6 6. Bg5 e6 7. f4 Qb6 8. Qd2 Qxb2 9. Nb3 Qa3 10. Bxf6 gxf6 11. Be2 h5 12. 0-0 Nc6 13. Kh1 Bd7 14. Nb1 Qb4 15. Qe3 d5 16. exd5 Ne7 17. c4 Nf5 18. Qd3 h4 19. Bg4 Nd6 20. N1d2 f5 21. a3 Qb6 22. c5 Qb5 23. Qc3 fxg4 24. a4 h3 25. axb5 hxg2+ 26. Kxg2 Rh3 27. Qf6 Nf5 28. c6 Bc8 29. dxe6 fxe6 30. Rfe1 Be7 31. Rxe6
¡Sin duda haría un plugin divertido! Añadiendo la etiqueta “se aceptan pull requests” a este tema.
¿Sería posible que publicaras las notas del juego en algo como chess.com y luego tomaras el código de inserción que te proporcionan para tu sitio web?
No solo en Chess.com.
Puedo jugar una partida en cualquier plataforma de ajedrez en línea. Debería poder copiar mi PGN y publicarlo en mi foro.
Hola @codinghorror,
Sería realmente genial tener un plugin así ![]()
¿Te das cuenta de lo nicho que es esto?
Esto NO debería ser una característica de Discourse. El 98% de los foros nunca lo usará.
Tienes 3 opciones:
- Codifícalo tú mismo
- Contrata a alguien para que lo codifique
- Usa la solución que proporcioné hace 13 horas, la cual resuelve tu problema
Hola @Monkey
Sí, reconozco que tienes toda la razón.
Llevamos 15 años gestionando un foro muy técnico (unix, linux) y tuvimos muchos jugadores de ajedrez entre nuestros miembros (yo incluido), pero nadie mostró interés por el ajedrez en el foro (a lo largo de los años instalamos varios plugins relacionados con el ajedrez).
Lo que mejor funcionó fue simplemente tener miembros interesados en jugar al ajedrez o en el ajedrez en general que se reunieran en uno de los grandes sitios de ajedrez en línea disponibles.
Por lo tanto, puedo confirmar que jugar al ajedrez en foros es un nicho muy pequeño, debido a todas las excelentes alternativas que existen.
Incorporar código de uno de los sitios de ajedrez en línea más populares sería, estoy de acuerdo, una excelente estrategia a seguir.
Hola @neounix,
Tú gestionas un foro técnico y, por lo tanto, es posible que tu audiencia no esté interesada en el ajedrez.
Yo puedo gestionar un foro de Deportes y Videojuegos donde hay muchos jugadores y entusiastas del ajedrez que dedican mucho tiempo a discutir y debatir sobre movimientos de ajedrez. Depende de quién sea tu público objetivo. Es muy miope verificar y confirmar mis requisitos cuando nunca has gestionado un foro deportivo, y tu verificación no es válida en relación con mi solicitud.
Hola @Monkey,
Ya existen muchas incrustaciones basadas en JavaScript para alojar un PGN. Sin embargo, Discourse actualmente no admite incrustaciones de JavaScript en sus publicaciones; solo se permiten incrustaciones de iFrame. Por lo tanto, si a Discourse le interesa tener un plugin disponible para PGNs, estoy bastante seguro de que atraerá a muchos foros deportivos.
No creo que los plugins relacionados con el ajedrez sean una característica de nicho si Discourse tiene muchos foros relacionados con deportes y videojuegos en su lista de clientes.
La solución que has proporcionado solo nos permitirá utilizar lo que transmita chess.com. Pero eso no nos ayudará a diferenciarnos, ya que hay muchos jugadores que simplemente alojarán los puzzles diarios de Chess.com. Por lo tanto, tu sugerencia en realidad no es una solución para mi problema.
Soy un entusiasta del ajedrez y he estado tratando de animar a un foro finlandés de ajedrez a que migre a Discourse. Por eso, he investigado esta misma pregunta y he hecho algunas pruebas recientemente. Mi recomendación principal es aprovechar la función de iframe integrada de Discourse, como ya mencionó alguien. Solo tienes que buscar “iframes permitidos” en la configuración de administración y añadir chess.com, lichess.org y quizás algunos otros a la lista blanca. Todos ellos admiten iframes en sus plataformas. Entonces, un usuario puede copiar y pegar una cadena como:
iframe src="https://lichess.org/embed/jYSkjcuG?theme=auto&bg=auto" width=600 height=397 frameborder=0</iframe>
Se crea una caja realmente genial. La caja muestra un tablero de ajedrez con flechas que permiten navegar hacia adelante y hacia atrás en la partida. Si la fuente tiene comentarios, también se muestran. Si el destinatario realmente necesita el archivo PGN, por ejemplo para analizar la partida con su motor, puede acceder al archivo en el sitio de origen. Solo hace falta educar un poco a tus usuarios y les encantará.
Hola @rizka,
Tengo un caso muy extraño aquí,
En la vista previa puedo ver la inserción de iFrame. Pero, cuando guardo la publicación, la inserción de iFrame no es visible. ¿Me estoy perdiendo algo?
Captura de pantalla después de guardar la publicación:
¿Ves algún error en la consola de tu navegador? (quizás relacionado con CSP)
Tengo este error:
Se estableció una cookie asociada con un recurso de un sitio diferente en https://lichess.org/ sin el atributo `SameSite`. Ha sido bloqueada, ya que Chrome ahora solo entrega cookies con solicitudes de sitios diferentes si están configuradas con `SameSite=None` y `Secure`. Puedes revisar las cookies en las herramientas de desarrollador bajo Aplicación>Almacenamiento>Cookies y ver más detalles en https://www.chromestatus.com/feature/5088147346030592 y https://www.chromestatus.com/feature/5633521622188032.
He configurado la opción a SameSite=None.
Pero, no ayuda.
Creo que el sitio que estás incrustando (https://lichess.org/) debería agregar esa configuración a la cookie (asumiendo que quieren permitir que otros sitios usen sus cookies). Dicho esto, no sé si el iframe no se muestra por esa razón (normalmente las cookies son para sesiones o anuncios, así que incluso si el iframe no tiene sesión, creo que aún se cargaría).
Actualización
Parece que lo permiten.
Además, puedes ver la vista previa, y si agrego el iframe aquí en Discourse Meta (directamente en el HTML, a través del inspector del navegador), funciona, como en la imagen de abajo:
Podrías intentar agregarlo directamente en tu página, usando el inspector del navegador. Si no funciona, podría ser alguna regla de CSP o que Discourse esté bloqueando iframes (si es CSP, deberías ver un error o advertencia en la consola del navegador).
Aquí en Meta, si intento incluir el iframe también obtengo una publicación en blanco (aunque ni siquiera puedo ver una vista previa):
<iframe src="https://lichess.org/tv/frame?theme=wood&bg=light" style="width: 400px; height: 444px;" allowtransparency="true" frameborder="0"></iframe>
Actualización 2
La configuración del sitio allowed_iframes podría ser lo que buscas (para permitir iframes de ese dominio):
He habilitado temporalmente los iframes de lichess.org en try.discourse.org para que cualquiera pueda probar el comportamiento allí:
Esto estará disponible hasta el reinicio diario.
Se ve mejor en Firefox:
que en Chrome:
¡Hola @supermathie,
En lugar de usar una inserción con iframe, tengo un código JavaScript como este:
<link rel="stylesheet" type="text/css" href="https://pgn.chessbase.com/CBReplay.css" />
<div class="cbreplay">
[Event "World Championship 28th"]
[White "Spassky, Boris V"]
[Black "Fischer, Robert James"]
[Site "Reykjavik"]
[Result "1–0"]
[Date "1972.08.06"]
[WhiteElo "2660"]
[BlackElo "2785"]
1. e4 c5 2. Nf3 d6 3. d4 cxd4 4. Nxd4 Nf6 5. Nc3 a6 6. Bg5 e6 7. f4 Qb6 8. Qd2 Qxb2 9. Nb3 Qa3 10. Bxf6 gxf6 11. Be2 h5 12. 0-0 Nc6 13. Kh1 Bd7 14. Nb1 Qb4 15. Qe3 d5 16. exd5 Ne7 17. c4 Nf5 18. Qd3 h4 19. Bg4 Nd6 20. N1d2 f5 21. a3 Qb6 22. c5 Qb5 23. Qc3 fxg4 24. a4 h3 25. axb5 hxg2+ 26. Kxg2 Rh3 27. Qf6 Nf5 28. c6 Bc8 29. dxe6 fxe6 30. Rfe1 Be7 31. Rxe6
</div>
¿Se puede usar un código como este para insertarlo en las publicaciones? Muchos de mis usuarios prefieren simplemente copiar y pegar scripts como este en lugar de tener que ir a un sitio web de terceros para generar el iframe.
¡Sí!
Parece que estás muy cerca de tener todas las piezas necesarias para convertir esto en un componente de tema (creo que esto se puede hacer con un componente de tema, pero no estoy muy familiarizado con ellos, así que no lo tomes como algo definitivo).
Lo siguiente será o bien codificarlo tú mismo o contratar a alguien para que haga el trabajo, como sugirió @Monkey.
(Me encantaría ocuparme de esto para aprender sobre componentes de tema, pero en este momento no puedo dedicar el tiempo necesario).
Sí, podrías basarlo en un proyecto como este:
Hay varios en GitHub, pero este es uno de los más destacados.
Combínalo con BBCode personalizado: Developer's guide to Markdown extensions
Solo debes tener cuidado con los problemas relacionados con la integración de esto en el pipeline de renderizado de Ember…
@supermathie tiene razón: necesitas encontrar a un entusiasta dispuesto a aprender los fundamentos y dedicar tiempo a implementarlo, o contratar a alguien en Marketplace
Hola @merefield,
He personalizado mi tema para incluir el siguiente script:
<link rel="stylesheet" type="text/css" href="https://pgn.chessbase.com/CBReplay.css" />
He añadido “https://pgn.chessbase.com/CBReplay.css” a la lista blanca de CSS para permitirlo en incrustaciones.
Sin embargo, al copiar y pegar el script en mi publicación, la etiqueta Div se está ignorando y solo se muestra el texto:
<div class="cbreplay">
[Event "World Championship 28th"]
[White "Spassky, Boris V"]
[Black "Fischer, Robert James"]
[Site "Reykjavik"]
[Result "1–0"]
[Date "1972.08.06"]
[WhiteElo "2660"]
[BlackElo "2785"]
1. e4 c5 2. Nf3 d6 3. d4 cxd4 4. Nxd4 Nf6 5. Nc3 a6 6. Bg5 e6 7. f4 Qb6 8. Qd2 Qxb2 9. Nb3 Qa3 10. Bxf6 gxf6 11. Be2 h5 12. 0-0 Nc6 13. Kh1 Bd7 14. Nb1 Qb4 15. Qe3 d5 16. exd5 Ne7 17. c4 Nf5 18. Qd3 h4 19. Bg4 Nd6 20. N1d2 f5 21. a3 Qb6 22. c5 Qb5 23. Qc3 fxg4 24. a4 h3 25. axb5 hxg2+ 26. Kxg2 Rh3 27. Qf6 Nf5 28. c6 Bc8 29. dxe6 fxe6 30. Rfe1 Be7 31. Rxe6
</div>
¿Hay algo más que deba hacer para utilizar este script en mis publicaciones? Agradecería alguna sugerencia.
No tengo tiempo para ver esto ahora mismo. Por favor, haz lo que sugiero.




