سؤال

أنا أستخدم معالج Maruku Markdown. أود هذا

*blah* blah "blah" in [markdown](blah)

<script src="http://code.jquery.com/jquery-1.4.2.min.js"></script>
<script>
...do stuff...
</script>

لكنه يشكو عندما أقوم بتقديمه مع العديد من الأخطاء. أول واحد

 ___________________________________________________________________________
| Maruku tells you:
+---------------------------------------------------------------------------
| Could you please format this better?
| I see that "<script type='text/javascript'>" is left after the raw HTML.
| At line 31
|   raw_html     |<script src='http://code.jquery.com/jquery-1.4.2.min.js' /><script type='text/javascript'>|
|       text --> |//<![CDATA[|

ثم يبدو الباقي وكأن المحلل يسير. ثم يجعل JavaScript في div على الصفحة. لقد حاولت جعلها كتلة CDATA وتباعد إضافي بين jQuery والبرنامج النصي.

مساعدة؟

هل كانت مفيدة؟

المحلول

واجهت نفس المشكلة ، لكنني تمكنت من الحصول على JavaScript في الظهور في الكود الخاص بي عن طريق وضع سطر جديد بعد علامة الافتتاح.

نصائح أخرى

حل مختلف قد يعمل في بعض الحالات: (لم تنجح الإجابة المحددة بالنسبة لي عندما كنت أحاول تضمين مثال Codepen)

  • أضف هذا إلى التصميم الافتراضي الخاص بك:

    <!-- Custom JavaScript files set in YAML front matter -->
    {% for js in page.customjs %}
    <script async type="text/javascript" src="{{ js }}"></script>
    {% endfor %}
    
  • في المشاركات التي تحتاج إليها بعض ملفات JavaScript ، يمكنك إضافتها في المسألة الأمامية Yaml مثل SO:

    ---
    layout: post
    title: Adding custom JavaScript for a specific post
    category: posts
    customjs:
     - http://code.jquery.com/jquery-1.4.2.min.js
     - http://yourdomain.com/yourscript.js
    ---
    

ال async قد لا تكون ضرورية أو مطلوبة ولكن ربما يمكنك إضافة ذلك كمعلمة في customjs. (نرى المسألة الأمامية Yaml لـ Jekyll والقوائم المتداخلة للتفاصيل)

يدعم Markdown INLINE XHTML ولكن ليس JavaScript.

المثال الذي يقدمونه على موقعهم يظهر فارغة <script> علامة تحتوي على سطر جديد. ربما هذا كل شيء؟

يمكنك استخدام باندوك, ، الذي يتعامل مع هذا المدخلات (و javaScript بشكل عام) على ما يرام.

لقد وجدت أن الهروب من رمز الختام "> في كل من علامات" النصي "الفتح والإغلاق ، سيعرضه بشكل صحيح ، على سبيل المثال:

  • إذا قمت بكتابة follwing:

    <script\>... javascript code...</script\>
    
  • سيتم تقديمه مثل هذا:

    <script>... javascript code...</script>
    

هذا مجرد سنتان.

لتجربتي ، سوف تفوق Marmdown نص JavaScript كنص عادي طالما قمت بإزالة تنسيق الكود الذي قد يخلط بين التخفيضات.

  1. قم بإزالة التعليقات من JavaScript ، As / * ... * / يتم ترجمتها إلى <em>
  2. قم بإزالة المسافة البادئة في مقدمة كل سطر. <p> قد يتم إدراجها وفقًا للمسافة البادئة الخاصة بك.

في الأساس ما أقوم به هو مراجعة HTML التي تم إنشاؤها ومعرفة العلامات الإضافية التي يتم إدراجها بين رمز JavaScript الخاص بي عن طريق Markdown. وإزالة التنسيق الذي يولد العلامة الإضافية.

فكرة جيدة هي فصل مصادر JS المحلية والسحابة:

في ملف البريد:

cloudjs:
 - //cdnjs.cloudflare.com/ajax/libs/d3/3.5.3/d3.min.js
 - //cdnjs.cloudflare.com/ajax/libs/topojson/1.6.9/topojson.min.js
localjs:
 - datamaps.world.min.js
 - custom.js  

في الملف الافتراضي بعد إدراج تذييل:

   {% for js in page.cloudjs %}

        <script type="text/javascript" src="{{ js }}"></script>

    {% endfor %}


    {% for js in page.localjs %}

        <script type="text/javascript" src="{{ "/assets/scripts/" | prepend: site.baseurl | append: js }}"></script>

    {% endfor %}

فقط المسافة البادئة تحتوي السطر الأول على <script>.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top