1.0.18 • Published 7 years ago

stringfplus v1.0.18

Weekly downloads
3
License
MIT
Repository
github
Last release
7 years ago

stringfplus

Stringf è una classe che gestisce la formattazione del testo.

Può essere usata per generare qualsiasi file di testo. (txt,html,documenti)

plus è dovuto, rispetto alla classe base stringf, per il fatto di avere supporto a codice js e altre funzioni particolari.

Creazione istanza

let mystr = new stringfplus("stringa",opt?:{languageDefault?:'en_gb',

throwOnMissing?:false,

languageFieldName?:'type',

languageId?:'language',

splitter?:'@@',

isHtml?:false});

// opt è opzionale, opzioni per la classe

//language è opzionale, il valore di defaultr è 'en_gb', indica la lingua di default per la compilazione

//splitter è opzionale e il valore di default è '@@', indica i caratteri da cercare per effettuare la sostituzione/interpretazione dei valori

// throwOnMissing è opzionale e il valore di default è false. Indica se, durante il format della stringa, deve generare degli errori nel caso mancassero uno o più fields inseriti nella stringa di formata

// isHtml è opzionale e il valore di default è false. Indica se il testo da formattare è html. Esegue l'escape delle stringhe quando si utilizza @@field

// languageFieldName è opzionale e il valore di default è 'type'.

// languageId è opzionale e il valore di default è 'language'.

Per poter formattare correttamente un oggetto che contiene informazioni sulla lingua, bisogna indicare come poter capire che tale oggetto è o non è un oggetto da gestire come "lingua".

{

type:'language' derivato da => languageFieldName:languageId

en_gb: any, //il codice è stato leggermente straformato per essere un attributo valido.

...

}

lista codici lingua: https://msdn.microsoft.com/en-us/library/ee825488(v=cs.20).aspx

per formattare il valore

let result = mystr.format(arg ,language = 'languageDefault');

//arg è un json/interface es. {test:'ciao'}

//language rappresenta la lingua in cui si vuole formattare la stringa, default = languageDefault

console.log(result);

Creare un 'codice' formattabile

Leggenda:

[separator]: valore del separatore, default '@@'

arg: oggetto passato alla funzione format.

Dentro le espressioni js si può accedere a questo oggetto direttamente.\ Esempio: arg.field.

language: oggetto passato alla funzione format.

Dentro le espressioni js si può accedere a questo oggetto direttamente.\ Esempio: @@if( language === 'en_gb')....

exp: qualuqnue** **espressione js.

text: testo, stringa, che può essere formattato.

{}: oggetto/interface

[separator]field

stampa il valore di arg.field.

Esempio:

arg = {test:'test',len:10};

str = `questo è un @@test.

Il valore di len è [@@len]

`;

let mystr = new stringfplus(str);

ler risultato = mystr.format(arg);

/*il valore di risultato sarà:

questo è un test.

Il valore di len è [10]

*/

[separator]echo(exp)

stampa il valore di exp cosi com'è.

Esempio:

arg = {test:'test',len:10};

str = `

@@echo("ciao")

@@echo(1 === 1)

`;

let mystr = new stringfplus(str);

ler risultato = mystr.format(arg);

/*il valore di risultato sarà:

ciao

true

*/

[separator]if(exp){

text

}else{

text

}

Valuta l'espressione, se true, stampa il testo (e lo formatta se necessario) tra le {}.

else, opzionale, nel caso l'espressione fosse false.

Esempio:

arg = {test:'test',len:10};

str = `

@@if( @@len === 10 ){

il valore di len è 10

}else{

il valore di len è diverso da 10

}

@@if( arg.test === 'test' ){

il valore di test [@@test] fa schifo!

}

`;

let mystr = new stringfplus(str);

ler risultato = mystr.format(arg);

/*il valore di risultato sarà:

il valore di len è 10

il valore di test [test] fa schifo!

*/

[separator]for(exp){

text

}

Esegue un ciclo for js.

Esempio:

arg = {test:'test',len:10};

str = `

@@for(let i =0;i<arg.len;i++){

@@test:@echo(i)

}

`;

let mystr = new stringfplus(str);

ler risultato = mystr.format(arg);

/*il valore di risultato sarà:

test:0

test:1

test:2

test:3

test:4

test:5

test:6

test:7

test:8

test:9

*/

[separator]{ exp }

Esegue del codice js, cosi come viene fornito.

la funzione echo si può utilizzare per stampare qualcosa.

arg è disponibile.

Esempio:

arg = {test:'test',len:10};

str = `

@@{

//il mio codice js!

If (arg.len >10)

arg.len = 5; // ho modificato il valore di len

echo("ciao da {}");

if (@@len === 5) echo('io funziono!');

}

@@len

`;

let mystr = new stringfplus(str);

ler risultato = mystr.format(arg);

/*il valore di risultato sarà:

ciao da {}io funziono!

5

*/

[separator]<name:value,...,nameN:valueN>

Imposta un valore di default per il field [name] con il valore [value].

Con questo metodo è possibile impostare/creare field.

Esempio:

arg = {};

str = `

@@<len:0 , test:'test'>

@@len

@@test

`;

let mystr = new stringfplus(str);

ler risultato = mystr.format(arg);

/*il valore di risultato sarà:

0

test

*/

[separator]name({}){

text

}

Esegue una funzione interna e passa un oggetto come parametro.

Text viene stampato dopo l'esecuzione della funzione, alcune funzioni prevedono una parte di testo

finale da aggiungere, per questo bisogna utilizzare {}

Esempio:

arg = {test:'test',len:10};

str = `

@@a({href:'#top'}){

cliccami

}

`;

let mystr = new stringfplus(str);

ler risultato = mystr.format(arg);

/*il valore di risultato sarà:

<a href="#top">

cliccami

</a>

*/

Funzioni Html

Hanno il nome del tag di origine, tutte le chiavi del parametro della funzione vengono stampate nel tag html.

1.0.18

7 years ago

1.0.17

7 years ago

1.0.16

7 years ago

1.0.15

7 years ago

1.0.14

7 years ago

1.0.13

7 years ago

1.0.12

7 years ago

1.0.11

7 years ago

1.0.10

7 years ago

1.0.9

7 years ago

1.0.8

7 years ago

1.0.7

7 years ago

1.0.6

7 years ago

1.0.5

7 years ago

1.0.4

7 years ago

1.0.3

7 years ago

1.0.2

7 years ago

1.0.1

7 years ago

1.0.0

7 years ago