Estensione markdown per i pgn

In efferti, poi ho visto che i file vengono inclusi.

Il punto è: ne vengono anche eseguite le istruzioni? Non vedo errori, ma non vedo neppure quello che dovrebbe essere generato (a 30 secondi? A 30 mila miglia di profondità? Una volta ogni 30 secondi?)

Essenzialmente, quello è il mio dubbio. Perché sembra proprio che le istruzioni non siano eseguite. Ho provato a mettere delle stampe, ma nada…
Ah quella attesa, ehm, è un residuo della funzione di OTP, quindi non serve in realtà. Ma siccome aveva un lettore di tag con parametro (cosa che a me serve) mi sembrava una opzione papabile

Evoco @StellarClown . Se non si palesa, evoco il nostro tassidermista che lo esumi.

Ri-offro la mia disponibilità a impiantare un Discourse di test sull’altro server, nel caso si voglian fare test anche più invasivi.

È una offerta generosa che apprezzo molto, ma ora come ora non saprei bene cosa fare… Per me è un attimo prematuro ma se a qualcuno serve, ben venga.

Eccomi ragazzi, sono stato evocato dal cimitero. Potete farmi un riassunto in unico messaggio così che io possa aiutarvi facilmente? Thx. =)

Ciao, @StellarClown .
Stiamo tentando di far eseguire del codice (JavaScript) attraverso l’applicazione di un tema.
I file del JavaScript vengono inclusi col tema, ma il codice apparentemente non viene eseguito.

L’obiettivo finale è fare un lettore di file pgn, ma tanto per cominciare vorrei vedere un

alert(“Hello, world”);

scatenato dall’adozione di un tema.

Te, quanto a hacking di discourse, come sei messo?

certo, se @HC non ti dà superpoteri, credo ci sia poco che tu possa fare. O no?

parti da qui

poi passa da qui

se hai tempo e voglia, ovvio.
Per dire, io la guida me la vado a leggere adesso.

Prima che portiamo avanti qualsiasi cosa… Sei sicuro che questo codice non vada compilato insieme al codice esistente del tema? Magari usa gulp e non sta includendo il codice.

In ogni caso, non vedo la categoria “Configura impostazioni”.

@HC, vogliamo dare i poteri a quest’uomo? Faccio io?

Comunque, sfogliavo la guida. Molto bella: a leggerla tutta, poi scommetto che sei convinto di essere un programmatore e che programmare sia un gioco da ragazzi - come quelli che leggono il bigino della Storia e pensano di saperla tutta. Peccato manchi lo step 1: dove/come metto le cose in js perché si attivino alla scelta del tema? Il punto di partenza è quello e, nella guida (sfogliata al volo,. mica letta con attenzione), non l’ho visto: si parla genericamente di mettere il codice in fondo alla pagina HTML (avrei anche qualcosa da ridire, su questo, ma pazienza), peccato che noi non abbiamo “la pagina HTML” che ci interessa.

Il tema avrà pure un punto di inizio… Codice js o jquery?

Qui ho trovato qualcosa

@HC, i poteri a @StellarClown ? Non è che glieli do e poi mi cazzi?

@il_Babbano La guida all’inizio sembra parlare chiaro… Il codice javascript va copiato nell’head insieme a tutto lo script che viene fornito. Non in fondo alla pagina.

Ecco

eppoi anche questo è interessante

ma adesso c’ho da fare

Innanzitutto grazie @StellarClown , secondo spero tu possa perdonarmi perché scriverò un botto di roba.

L’idea è riuscire a vedere una partita a scacchi tramite notazione FEN.
Esiste un motore che fa il rendering ed è questo:

Sono riuscito a compilarlo e ho un unico .JS che si può usare.
Come integrarlo? WordPress ha una interfaccia sua e già le API per i suoi BBCode.

Noi usando la piattaforma Discourse di bianco usare altro, ma almeno il parser, ossia quello che leggerà un ipotetico BBCode così:
[pgnv width=100]
E1. d7
[\pgnv]

Penso si possa riciclare.

Quindi abbiamo una sorta di gerarchia di wrapper:

  • il motore (chiamato anche dist.js) vero e proprio che interpreta il FEN dentro il tag di apertura e di chiusura
  • il.parser (quello di WS?) Che leggere i parametri accessori (tipo il width di cui sopra), sovrascrivendo i valori di default e creerà la stringa per la chiamata al motore.
    Tale stringa è un HTML di questo tipo:

JavaScript
var board = PGNV.pgnBoard(‘board’, {});
HTML
<div id=“board” style=“width: 400px”>

Qui tutta la documentazione:

Ossia usando questo

function amazingMarkdownItInline(state, silent) {
// standard markdown it inline extension goes here.
return false;
}

export function setup(helper) {
if(!helper.markdownIt) { return; }

helper.registerOptions((opts,siteSettings)=>{
opts.features.[‘my_extension’] = !!siteSettings.my_extension_enabled;
});

helper.allowList([‘span.amazing’, ‘div.amazing’]);

helper.registerPlugin(md=>{
md.inline.push(‘amazing’, amazingMarkdownItInline);
});
}

Il secondo cercando di creare un nuovo BBCode usando alcuni nuovi creati in awesome BBCode

E un terzo cercando di sfruttare l’interfaccia (con tasto ad icona!) di un altro plugin, come l’OTP

GitHub - discourse/discourse-totp-markdown: Theme component for displaying totp codes in markdown.

Problemi.

  • non conosco JavaScript quindi ho fatto accrocchi basandomi su revese engineering totalmente euristico (leggi mezzo a casaccio).
  • se metto il motore dist.js, il tema non viene caricato. Quindi mi sono concentrato sull’interfaccia (vedi i tre temi)
  • i temi sono caricati ma sembra che non venga eseguito nulla o non sia caricato il JS introdotto.

I temi si possono vedere in anteprima senza metterli subito in uso, e c’è la console di amministrazione per vedere errori e messaggi.

io insisto che prima è meglio provare a fare una cosa stupida come un tema che ti mostra un alert del piffero.

Poi lo step due: inserire un tema che ti crea un bottone che, premuto, ti fa un alert del piffero.

Poi lo step 3: il bottone, invece dell’alert del piffero, ti va a cercare il fen o il pgn e ti mostra la scacchiera. Ma questo dopo.

Non ti preoccupare per js. Anch’io non lo conosco se non a livello aziendale quando ho bisogno di aiutare qualche collega. In quel caso, gli accrocchi e il buon senso verso il clean code, ti saranno veramente utili.

Ok appena posso provo a usare questo tuo approccio, diciamo inverso.

Penso di partire di nuovo dal OTP, anche solo visualizzando il plugin di partenza buttandolo dentro il tema. Se dovessi vedere che funziona, allora procedo con cambiamenti progressivi.

Visto che lo stato attuale è un po’ complicato, @StellarClown , non ho domande esatte da porre (se non piagnucolare “non funzionaaaaaa”), ma l’idea nel suo complesso è quella esposta sopra, coi risultati parziali a disposizione come temi visibili in anteprima.

nessuno conosce davvero il JS se non chi lo ha fatto - siamo tutti utilizzatori, ma S. Google aiuta nei casi più frequenti.

Intanto, se il plug in non va, non credo ci si metterà a disegnare una scacchiera e a muovere i pezzi col js, da zero, vero?

Quindi forse ci serve di capire come si installa quel plug in. Se c’è di mezzo il JQuery (lo do al 90%), in effetti può servire l’installazione di qualcosa -anche solo della versione giusta - e lì ci vuole @HC per farglielo fare, che noi mica accediamo alla consolle.
Comunque ieri sera ero riuscito a debuggare un qualche script sott la pagina (non quelli del pgn, però) e in effetti era JQuery, quindi almeno la base c’è.

Allora come promesso, provo a rifare qualcosa. CMq i JavaScript son ocaricati dal tema “in automatico”:

This means you just put *.js.es6 files into the javascripts directory and it works exactly like plugins do, this is glorious.

per cui parto meglio da qui e vedo di studiare la cosa per partire, come dicevo dal OTP e far puntare anzché il motore per le one time password, una stampa o il parser. Dopo il parser, il motore PGN vero e proprio.
Vediamo…