2015-05-20 5 views
9

मैं एक आसान तरीका ढूंढ रहा हूं कि अंतिम उपयोगकर्ता अंतिम स्ट्रिंग उत्पन्न करने के तरीके पर "छद्म कोड" उत्पन्न कर सकता है। मुझे लगता है कि अगर मैंने एक उदाहरण दिया तो यह आसान होगा।टैग/चर के साथ टेक्स्टटेरा बनाना

मेरे पास निम्न चर:

  • Round
  • Game
  • Wins
  • Losses
  • Player
  • Opponent
  • Rating

मेरे आवेदन के पीछे के अंत में, मैं यह सब मैन्युअल रूप से कर रहा हूं।

echo Player + " is currently playing " + Opponent + ". Round: " + Round + ", Game: " + Game; 
if (Wins > Losses) { 
    echo " (Up a Game)"; 
} else if (Wins < Losses) { 
    echo " (Down a game)"; 
} 

जो मैं अंततः करना चाहता हूं वह इस स्ट्रिंग को प्रदर्शित करने के तरीके के अंतिम उपयोगकर्ता को नियंत्रण दे रहा है। मैं उन्हें वेरिएबल्स जोड़ना चाहता हूं जहां वे चाहते हैं, साथ ही साथ/else कथन भी जोड़ें।

मैंने selectize और select2 में थोड़ा सा देखा, और वे जो भी मैं ढूंढ रहा हूं उसके सही रास्ते पर प्रतीत होता है, लेकिन वास्तव में मुझे कोई और/कार्यक्षमता की आवश्यकता नहीं है। अतीत में मैंने जो कुछ उपयोग किया है वह Blockly है जिसमें/अन्य तर्क शामिल है, लेकिन यह अंतिम उपयोगकर्ता के लिए थोड़ा जटिल हो सकता है। क्या किसी के पास जावास्क्रिप्ट/jQuery प्लगइन्स/स्क्रिप्ट्स की कोई अन्य सिफारिशें हैं जिनका उपयोग मैं इसे पूरा करने के लिए कर सकता हूं?

+0

आप एक php फ़ाइल खोज करता है और मान आप चाहते थे, जिसमें उन कीवर्ड्स की जगह के माध्यम से ऐसा कर सकता है। इसे गतिशील रूप से प्राप्त करने के लिए इस एजेक्स कॉल को सेट अप करने के लिए! – user3633383

+0

फिर आप वास्तव में क्या देख रहे हैं? क्या आप मौजूदा प्लगइन की तलाश में हैं? क्या आपको एक कंपाइलर की आवश्यकता है? – rst

+0

अवरुद्ध कुछ ऐसा उदाहरण है जो मैं खोज रहा हूं। संकलन/इसे स्ट्रिंग में लाने की रसद के बारे में बहुत चिंतित नहीं है, अंत उपयोगकर्ता के लिए इन तारों को उत्पन्न करने के लिए एक अच्छा दृश्य है। यदि कोई मौजूदा प्लगइन है या एक है कि मैं कार्यक्षमता को काफी आसानी से बढ़ा सकता हूं, तो यह भी कुछ उपयोगी होगा। वेबसाइट/प्लगइन्स/ऐप्स के लिए कोई भी लिंक, सभी उपयोगी होंगे। – FrankerZ

उत्तर

0

मान लें कि आप स्ट्रिंग में महत्वपूर्ण शब्दों को देखने के लिए PHP का उपयोग करते हैं और उन्हें वास्तव में इच्छित सामग्री के साथ प्रतिस्थापित करते हैं!

$s="Player is currently playing Opponent [ROUND], Game: Game"; 
$s = str_replace("[ROUND]", "Round: $Round", $s); 

उदाहरण के लिए [ROUND] देखें और इसे अपनी वांछित सामग्री से प्रतिस्थापित करें।

फिर पृष्ठ को फिर से लोड करने के साथ, आपके लिए काम करने के लिए php फ़ाइल को कॉल करने के लिए AJAX का उपयोग करें!

+0

मैं प्रयास की सराहना करता हूं, लेकिन मैं चर को बदलने के लिए अंतिम समाधान की तलाश नहीं कर रहा हूं। मैं एक अच्छा इंटरफ़ेस ढूंढ रहा हूं जहां वे टेक्स्टबॉक्स (या टेक्स्टरेरा) में चर को "प्लग और प्ले" कर सकते हैं, और उस जानकारी को सर्वर पर पास कर सकते हैं। – FrankerZ

+0

@ फ्रैंकरजेड आपको सर्वर पर रेंडर किए गए लॉग या खिलाड़ियों के छद्म कोड को पास करने की आवश्यकता है? –

+0

मैं बिल्कुल कोड नहीं ढूंढ रहा हूं। मैं कुछ प्रकार के कोड उत्पन्न करने के लिए एक समाधान की तलाश में हूं जो मैं आउटपुट के लिए आवश्यक स्ट्रिंग जेनरेट करने के लिए सर्वर पक्ष में पास करूंगा (वेरिएबल्स को बदलना, अगर/अन्य कथन आदि को पार्स करना ...)। उदाहरण के लिए: [Markup.js] (https://github.com/adammark/Markup.js/) एक शानदार टूल है जिसे मैं एक साथ टेम्पलेट में उपयोग कर सकता हूं (मैं पार्सर सर्वर पक्ष भी बना सकता हूं), इसमें यह है क्लाइंट एक जीयूआई के माध्यम से टेम्पलेट को एक आसान तरीके से बनाते हैं। वह जीयूआई जो मैं ढूंढ रहा हूं। – FrankerZ

1

आप अभी भी चयन का उपयोग कर सकते हैं और कुछ अच्छी सीएसएस सुविधाओं को जोड़ सकते हैं। जैसे आप डेटा-वैल्यू सिलेक्टर

[data-value="if"] { 
    background-color: red; 
} 

अन्य टैग्स से टैग्स को अलग करने के लिए उपयोग कर सकते हैं। इसके बाद आप अगर बयान चिह्नित करने के लिए एक के बाद आसन्न भाई सीएसएस चयनकर्ता (http://www.w3.org/TR/CSS2/selector.html#adjacent-selectors) इस्तेमाल कर सकते हैं अगले टैग खोजने के लिए इस

[data-value="if"] + div { 
    background-color: anything; 
} 

रूप में अच्छी तरह इसके अलावा आप भी एक ही तकनीक का उपयोग कर चर भेद कर सकते हैं। बाद में, एक पार्सर regexp का उपयोग करके if/else कथन को पार्स कर सकता है या जो भी आपको सबसे अच्छा लगा। जहां कोष्ठक से संकेत मिलता है "टैग"

किसी ने तो

[Player][" is currently playing "][Opponent][". Round: "][Round] 
[", Game: "][Game][if][Wins>Losses][" (Up a Game)"][else][" (Down a game)"] 

की तरह कुछ लिख सकते हैं। तब आपके पार्सर को स्ट्रिंग के रूप में कोटेशन के साथ टैग चलाना चाहिए।

0

यदि आप टेक्स्ट के कस्टम क्लाइंट साइड पार्सिंग की तलाश में हैं, तो यह आपकी मदद करेगा।

var keywords = { 
 
    
 
    Round: 'red', 
 
    Game: 'green', 
 
    if: 'blue', 
 
    else: 'blue', 
 
    then: 'blue' 
 

 
} 
 

 
$('#input').keyup(function(){ 
 

 
    var parsedInputTags = $(this).val().split(/[\[\]]/); 
 
    
 
    $('#output').html(''); 
 
    
 
    parsedInputTags.forEach(function(text){ 
 
    
 
    if(text in keywords){ 
 
    
 
     $('#output').append('<span data-tag="' + text + '" class="tag-' + keywords[text] + '">' + text + '</span>'); 
 
    
 
    } 
 
    else $('#output').append('<span>' + text + '</span>'); 
 
    
 
    }); 
 

 
});
.tag-red { 
 
    color: red; 
 
} 
 

 
.tag-green { 
 
    color: green; 
 
} 
 

 
[data-tag="if"] + span { 
 
    color: cyan; 
 
} 
 

 
.tag-blue { 
 
    color: blue; 
 
} 
 

 
textarea { 
 
    width: 200px; 
 
    height: 200px; 
 
} 
 

 
#output { display: inline-block; vertical-align: top; }
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<textarea id="input" placeholder="Type this: This is game [Game] in round [Round]. [if] something > smth [then] type this [else] type that"></textarea> 
 
<div id="output"></div>

संबंधित मुद्दे