bidi.html 4.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106
  1. <!doctype html>
  2. <title>CodeMirror: Bi-directional Text Demo</title>
  3. <meta charset="utf-8"/>
  4. <link rel=stylesheet href="../doc/docs.css">
  5. <link rel="stylesheet" href="../lib/codemirror.css">
  6. <script src="../lib/codemirror.js"></script>
  7. <script src="../mode/xml/xml.js"></script>
  8. <style>
  9. .CodeMirror {border-top: 1px solid black; border-bottom: 1px solid black;}
  10. fieldset {border: none}
  11. </style>
  12. <div id=nav>
  13. <a href="https://codemirror.net"><h1>CodeMirror</h1><img id=logo src="../doc/logo.png"></a>
  14. <ul>
  15. <li><a href="../index.html">Home</a>
  16. <li><a href="../doc/manual.html">Manual</a>
  17. <li><a href="https://github.com/codemirror/codemirror">Code</a>
  18. </ul>
  19. <ul>
  20. <li><a class=active href="#">Bi-directional Text</a>
  21. </ul>
  22. </div>
  23. <article>
  24. <h2>Bi-directional Text Demo</h2>
  25. <form><textarea id="code" name="code"><!-- Piece of the CodeMirror manual, 'translated' into Arabic by Google Translate -->
  26. <!-- قطعة من دليل CodeMirror، "ترجم" إلى العربية بواسطة جوجل ترجمة -->
  27. <dl>
  28. <dt id=option_value><code>value (string or Doc)</code></dt>
  29. <dd>قيمة البداية المحرر. يمكن أن تكون سلسلة، أو. كائن مستند.</dd>
  30. <dt id=option_mode><code>mode (string or object)</code></dt>
  31. <dd>وضع الاستخدام. عندما لا تعطى، وهذا الافتراضي إلى الطريقة الاولى
  32. التي تم تحميلها. قد يكون من سلسلة، والتي إما أسماء أو ببساطة هو وضع
  33. MIME نوع المرتبطة اسطة. بدلا من ذلك، قد يكون من كائن يحتوي على
  34. خيارات التكوين لواسطة، مع <code>name</code> الخاصية التي وضع أسماء
  35. (على سبيل المثال <code>{name: "javascript", json: true}</code>).
  36. صفحات التجريبي لكل وضع تحتوي على معلومات حول ما معلمات تكوين وضع
  37. يدعمها. يمكنك أن تطلب CodeMirror التي تم تعريفها طرق وأنواع MIME
  38. الكشف على <code>CodeMirror.modes</code>
  39. و <code>CodeMirror.mimeModes</code> الكائنات. وضع خرائط الأسماء
  40. الأولى لمنشئات الخاصة بهم، وخرائط لأنواع MIME 2 المواصفات
  41. واسطة.</dd>
  42. <dt id=option_theme><code>theme (string)</code></dt>
  43. <dd>موضوع لنمط المحرر مع. يجب عليك التأكد من الملف CSS تحديد
  44. المقابلة <code>.cm-s-[name]</code> يتم تحميل أنماط (انظر
  45. <a href="../theme/"><code>theme</code></a> الدليل في التوزيع).
  46. الافتراضي هو <code>"default"</code> ، والتي تم تضمينها في
  47. الألوان <code>codemirror.css</code>. فمن الممكن استخدام فئات متعددة
  48. في تطبيق السمات مرة واحدة على سبيل المثال <code>"foo bar"</code>
  49. سيتم تعيين كل من <code>cm-s-foo</code> و <code>cm-s-bar</code>
  50. الطبقات إلى المحرر.</dd>
  51. </dl>
  52. </textarea>
  53. <fieldset>
  54. Editor default direction:
  55. <input type="radio" id="ltr" name="direction"/><label for="ltr">LTR</label>
  56. <input type="radio" id="rtl" name="direction"/><label for="rtl">RTL</label>
  57. </fieldset>
  58. <fieldset>
  59. HTML document direction:
  60. <input type="radio" id="htmlltr" name="htmldirection"/><label for="htmlltr">LTR</label>
  61. <input type="radio" id="htmlrtl" name="htmldirection"/><label for="htmlrtl">RTL</label>
  62. </fieldset>
  63. <fieldset>
  64. <input type="checkbox" id="rtlMoveVisually"/><label for="rtlMoveVisually">Use visual order for arrow key movement.</label>
  65. </fieldset>
  66. </form>
  67. <script>
  68. var editor = CodeMirror.fromTextArea(document.getElementById("code"), {
  69. mode: "text/html",
  70. lineNumbers: true,
  71. lineWrapping: true,
  72. direction: "rtl"
  73. });
  74. var dirRadios = {ltr: document.getElementById("ltr"),
  75. rtl: document.getElementById("rtl")};
  76. dirRadios[editor.getOption("direction")].checked = true;
  77. dirRadios["rtl"].onchange = dirRadios["ltr"].onchange = function() {
  78. editor.setOption("direction", dirRadios["rtl"].checked ? "rtl" : "ltr");
  79. };
  80. var HtmlDirRadios = {ltr: document.getElementById("htmlltr"),
  81. rtl: document.getElementById("htmlrtl")};
  82. HtmlDirRadios["ltr"].checked = true;
  83. HtmlDirRadios["rtl"].onchange = HtmlDirRadios["ltr"].onchange = function() {
  84. document.dir = (HtmlDirRadios["rtl"].checked ? "rtl" : "ltr");
  85. };
  86. var moveCheckbox = document.getElementById("rtlMoveVisually");
  87. moveCheckbox.checked = editor.getOption("rtlMoveVisually");
  88. moveCheckbox.onchange = function() {
  89. editor.setOption("rtlMoveVisually", moveCheckbox.checked);
  90. };
  91. </script>
  92. <p>Demonstration of bi-directional text support. See
  93. the <a href="http://marijnhaverbeke.nl/blog/cursor-in-bidi-text.html">related
  94. blog post</a> for more background.</p>
  95. </article>