أحاول كتابة مكون زر بسيط لاستدعاء دالة تسمى toUni لمعالجة كل النص أو النص المحدد (المحدد هو المفضل). يمكنني إنشاء زر بسيط من البرنامج التعليمي ومعالجة نص الملحن بالكامل وإضافة النص المعالج الخاص بي إلى منطقة الملحن. (النص المكرر المزدوج هو النتيجة).
كيف أستبدل كل النص من نافذة الملحن (بمجرد أن أقوم ببعض المعالجة)
كيف أحصل على النص المحدد من نافذة الملحن
كيف أستبدل النص المحدد من نافذة الملحن (بمجرد أن أقوم بالمعالجة).
أرى بعض الكود الذي يحتوي على
getSelected();
replaceText();
ولكن عندما أدمجها مع e.getSelected(); أو e.replaceText(old, new);، فإنها لا تعمل وأفترض أن هناك بعض عدم تطابق في الوظائف أو تعطل لأنها لا تعرض مربع التنبيه الخاص بي لمنحي ردود فعل.
يمكنني استخدام getText(); و addText() بنجاح من رمز git الخاص بك هنا. لكن لا يمكنني معرفة كيفية حذف المحتويات بعد المعالجة (حتى أتمكن من استخدام addText() ثم استبدال كل شيء).
لكنني أفضل العثور على النص المحدد واستبداله.
حالياً الكود الخاص بي أدناه يضيف نسخة ثانية من نص الملحن بالكامل مباشرة أسفلها ولكن مع بعض التعديلات. هذا مربك للمستخدم.
أحتاج إما إلى استبدال النص بالكامل … أو معالجة الكلمات “المحددة” فقط. (أو كليهما)
لقد قمت بإنشاء نسخة مباشرة هنا
<script type="text/discourse-plugin" version="0.8">
api.onToolbarCreate(function(toolbar) {
toolbar.addButton({
trimLeading: true,
id: "buttonID",
group: "insertions",
label: "Pāḷi", // لماذا يظهر هذا كـ en.pali؟
title: "add pali",
perform: function(e) {
const sel = e.getText();
//alert(sel);
const vel = toUni(sel);
return e.addText("\n--------------------new text--------------------\n" + vel + "\n--------------------end text--------------------");
}
});
});
//e.replaceText(sel,"hello");
//e.replaceSeelc
//const sel = e.selected();
//let txt = "hello";
//const sel = e.getSelected(0,100 );
function toUni(input) {
if(!input || input == '') return input;
//var nigahita = (DPR_prefs['nigahita']?'ṁ':'ṃ');
//var Nigahita = (DPR_prefs['nigahita']?'Ṁ':'Ṃ');
var nigahita = 'ṃ';
var Nigahita = 'Ṃ';
input = input.replace(/aa/g, 'ā').replace(/ii/g, 'ī').replace(/uu/g, 'ū').replace(/\\.t/g, 'ṭ').replace(/\\.d/g, 'ḍ').replace(/\\\"nk/g, 'ṅk').replace(/\\\"ng/g, 'ṅg').replace(/\\.n/g, 'ṇ').replace(/\\.m/g, nigahita).replace(/\\u1E41/g, nigahita).replace(/\\~n/g, 'ñ').replace(/\\.l/g, 'ḷ').replace(/AA/g, 'Ā').replace(/II/g, 'Ī').replace(/UU/g, 'Ū').replace(/\\.T/g, 'Ṭ').replace(/\\.D/g, 'Ḍ').replace(/\\\"N/g, 'Ṅ').replace(/\\.N/g, 'Ṇ').replace(/\\.M/g, Nigahita).replace(/\\~N/g, 'Ñ').replace(/\\.L/g, 'Ḷ').replace(/\\.ll/g,'ḹ').replace(/\\.r/g,'ṛ').replace(/\\.rr/g,'ṝ').replace(/\\.s/g,'ṣ').replace(/\"s/g,'ś').replace(/\\.h/g,'ḥ');
return input;
}
</script>