Transclusion dans une macro Javascript


#1

Bonjour à tous,
J’arrive à faire fonctionner des macros JavaScript qui réalisent des calculs simples. Mais est ce que quelqu’un sais comment transclure le contenue d’un Tiddler ou d’un dataTiddler qui me servirait de variable, dans une macro JavaScript ?

Exemple qui ne fonctionne pas :

(function(){

"use strict";
exports.name = "adition";

exports.params = [
    { name: "AAA" },
    { name: "BBB" }
];

exports.run = function(AAA, BBB) {
    var output =AAA+BBB+{{CCC}}; /*CCC : contenu du tiddler CCC*/
    return output;
};

})();

#2

Bonjour,

à mon avis tu ne peux pas appeler la transclusion sous cette forme depuis un code javascript. Peut-être avec getTiddlerText ?

var output =AAA+BBB+this.wiki.getTiddlerText("CCC");

(non testé)

Sylvain


#3

Parfait !!! Cela fonctionne :smiley: .
Par contre, juste pour ne pas oublier, pour du calcul, il faut pas oublié de convertir la valeur TEXT en CHIFFRE (string to number), avec cette commande :

var valeurNombre = Number(valeurText);

Merci Sycom ! :slight_smile:


#4

Bonjour @Djodo, si un jour tu as un exemple à nous montrer en démo, par curiosité ça m’intéresse :grinning:


#5

Pas de problème, mais avant, comment fait-on sur le forum pour afficher du code comme là fait @sycom ?


#6

Comme TiddlyWiki, simplissime n’est-ce pas :sunglasses:

J’ai posté il y a pas si longtemps pour info, j’édite quand je retrouve : à voilà :


#7

Okay !!! :wink:

Je vais essayer de poster cela demain, parce que je vient de réussir à faire en sorte que le résultat mathématique s’actualise en même temps que de rentrer des variables. Faut que mette tous cela en forme…


#8

Donc voilà ce que j’ai fais : (je précise que je ne suis pas développeur donc si vous avez des améliorations à apporter…)
Imaginons une macro qui fait une addition et une multiplication avec deux constantes et une variable.
1.Donc j’ai m’a macro JavaScript :

(function(){

exports.name = "addition";

exports.params = [
    { name: "constante1" },
    { name: "constante2" },
    { name: "variable1" }
];

exports.run = function(constante1,constante2,variable1) {
    var variable1 = Number(this.wiki.getTiddlerText("$:/Variable"));
    var output = constante1*constante2+variable1;
    return output;
};

})();

2.Un Tiddler temporaire juste nommé “$:/Variable” avec rien dedans.

3.Et un Tiddler avec le code suivant pour éditer ma variable et afficher le résultat :

\define calcul()
<<addition "20" "20""$(CCC)$">>
\end

Variable à saisir : <$edit-text tiddler="$:/Variable" tag="input"/>

Réultat : <$set name="CCC" value={{$:/Variable}}>
<<calcul>>

</$set>

Commande JavaScript
#9

Bonjour @Djodo

Pour ce qui est des fonctions mathématiques, ce plugin devrait te plaire et te donner des sources d’inspiration:
http://mathcell.tiddlyspot.com/

A titre personnel quand j’ai vu ce que cela permettait de faire, je suis tombé de ma chaise :astonished: