अमान्य इंडेंटेशन जेड टेम्पलेट

मुझे पता है कि मैं टैब या रिक्त स्थान का उपयोग कर सकता हूं लेकिन दोनों नहीं। लेकिन मुझे नहीं मिला कि अवैध इंडेंटेशन कहां है। विभिन्न भिन्नता की कोशिश की। लेकिन मैं सफल नहीं हुआ। मुझे मिला और जोड़ा के बाद अपवाद

- if (error)
p= error

तो मेरा कोड नीचे दिखाया गया है:

!!!
html
head
    title= title
    link(rel='stylesheet', href='/stylesheets/#{stylesheet}.css')
    link(rel='stylesheet', href='/stylesheets/bootstrap.min.css')
body
    .container
        .row
            .col-md-4
            .col-md-4
                .well
                    - if (error)
                        p= error
                    form(role='form',action='sessions', method='post')
                        .form-group
                            label(for='Email') Eposta Adresi
                            input#Email.form-control(type='email',name='user[email]',placeholder='E-posta adresi')
                        .form-group
                            label(for='Password') Şifre
                            input#Password.form-control(type='password',name='user[password]', placeholder='Şifre')
                        button.btn.btn-default(type='submit') Giriş

    script(type='text/javascript', src='/javascripts/jquery-1.10.2.min.js')
    script(type='text/javascript', src='/javascripts/bootstrap.min.js')

पूर्ण अपवाद:

12| .well
13| - if (error)
> 14| p= error
15| form(role='form',action='sessions', method='post')
16| .form-group
17| label(for='Email') Eposta Adresi
Invalid indentation, you can use tabs or spaces but not both
at Object.Lexer.indent (C:\Nodejs\NodejsBlog\node_modules\jade\lib\lexer.js:691:15)
at Object.Lexer.next (C:\Nodejs\NodejsBlog\node_modules\jade\lib\lexer.js:789:15)
at Object.Lexer.lookahead (C:\Nodejs\NodejsBlog\node_modules\jade\lib\lexer.js:122:46)
at Object.Parser.lookahead     (C:\Nodejs\NodejsBlog\node_modules\jade\lib\parser.js:116:23)
at Object.Parser.parseCode   (C:\Nodejs\NodejsBlog\node_modules\jade\lib\parser.js:311:17)
at Object.Parser.parseExpr (C:\Nodejs\NodejsBlog\node_modules\jade\lib\parser.js:225:21)
at Object.Parser.block (C:\Nodejs\NodejsBlog\node_modules\jade\lib\parser.js:593:25)
at Object.Parser.tag (C:\Nodejs\NodejsBlog\node_modules\jade\lib\parser.js:722:26)
at Object.Parser.parseTag (C:\Nodejs\NodejsBlog\node_modules\jade\lib\parser.js:625:17)
at Object.Parser.parseExpr (C:\Nodejs\NodejsBlog\node_modules\jade\lib\parser.js:199:21)

सलाह की ज़रूरत है।

0
पूर्ण अपवाद जोड़ा गया।
जोड़ा लेखक fuat, स्रोत
मेरे लिए बस ठीक काम करता है, हालांकि मुझे नहीं पता कि एसओ संपादक रिक्त स्थान पर टैब बदलता है या नहीं। क्या आप जो अपवाद प्राप्त कर रहे हैं वह बिल्कुल नहीं दिखाता है कि समस्या कहां होती है?
जोड़ा लेखक robertklep, स्रोत

2 उत्तर

यह vim मुझे : सेट सूची के साथ दिखाता है:

▸ ▸ ▸ ▸ .col-md-4¬
▸ ▸ ▸ ▸ .col-md-4¬
▸ ▸ ▸ ▸ ▸ .well¬
▸ ▸ ▸ ▸ ▸ ▸ - if (error)¬
    ▸ ▸ ▸ ▸ ▸   ▸ p= error¬
▸ ▸ ▸ ▸ ▸ ▸ form(role='form',action='sessions', method='post')¬

(त्रिकोण टैब हैं)

तो आप अपमानजनक रेखा पर टैब और रिक्त स्थान मिला रहे हैं।

0
जोड़ा
धन्यवाद। समस्या हल हो गई है। इसके अलावा मैं कोशिश करूँगा।
जोड़ा लेखक fuat, स्रोत
मेरे पास विम नहीं है इसलिए मैं नोटपैड ++ का उपयोग करता हूं। इस के बाद नीचे अपना प्रकाशित समाधान देखें
जोड़ा लेखक Jenna Leaf, स्रोत
@fuat vim अच्छा है, लेकिन कोई भी सभ्य आईडीई आपको दिखा सकता है और अपने टैब को रिक्त स्थान में बदल सकता है और वास्तव में कुछ आपको दोनों को मिश्रण करने और स्वचालित रूप से आपके लिए सामान्य करने देगा। यदि आप कोशिश करते हैं तो सुनिश्चित करें कि आप प्लगइन में देखते हैं, कुछ लोग आपके जीवन को बहुत आसान बनाते हैं।
जोड़ा लेखक GillesC, स्रोत
बहुत बहुत धन्यवाद, यह मुझे बहुत समय बचाता है। अन्य पाठकों के लिए भी; प्रत्येक टैब के लिए डिफॉल्ट डिस्प्ले "^ I", और प्रत्येक ईओएल पर "$" (लाइन का अंत, तो पिछला सफेद स्थान देखा जा सकता है)
जोड़ा लेखक Fatih, स्रोत

आप टैब को प्रकट करने के लिए नोटपैड ++ का उपयोग भी कर सकते हैं और अपनी इंडेंटेशन समस्या को ठीक करने के लिए उन्हें रिक्त स्थान में बदल सकते हैं।

मेरे पास नोड/एनपीएम संदेश है जो मुझे बता रहा है कि मेरे जेड इंजन के पार्सर और लेक्सर को मेरे लेआउट.जेड कोड पसंद नहीं है क्योंकि इंडेंटेशन की असंगतता के कारण पंक्ति # 8 से शुरू होने वाली रिक्त स्थान और टैब दोनों का उपयोग कर। और वह त्रुटि लेक्सर और पार्सर ऑब्जेक्ट्स (क्रमशः lexer.js और parser.js में) द्वारा फेंक दी गई है। इसलिए मैंने समस्या की फाइल खोली - यानी, layout.jade और इंडेंटेशन को सही किया। यहां एनपीएम त्रुटि संदेश है जो मुझे शुरुआत में मिला है:

Error: C:\Users\tester_Arch_GitHub\loc8r2mvc\app_server\views\layout.jade:8
   6|     title= title
   7|     link(rel='stylesheet', href='/bootstrap/css/amelia.bootstrap.css')
 > 8| link(rel='stylesheet', href='/stylesheets/style.css')
   9|   body
   10|     block content
   11|

Invalid indentation, you can use tabs or spaces but not both
   at Object.Lexer.indent (C:\Users\tester_Arch_GitHub\loc8r2mvc\node_modules\jade\lib\lexer.js:790:15)
   at Object.Lexer.next (C:\Users\tester_Arch_GitHub\loc8r2mvc\node_modules\jade\lib\lexer.js:941:15)
   at Object.Lexer.lookahead (C:\Users\tester_Arch_GitHub\loc8r2mvc\node_modules\jade\lib\lexer.js:113:46)
   at Parser.lookahead (C:\Users\tester_Arch_GitHub\loc8r2mvc\node_modules\jade\lib\parser.js:102:23)
   at Parser.peek (C:\Users\tester_Arch_GitHub\loc8r2mvc\node_modules\jade\lib\parser.js:79:17)
   at Parser.tag (C:\Users\tester_Arch_GitHub\loc8r2mvc\node_modules\jade\lib\parser.js:773:22)
   at Parser.parseTag (C:\Users\tester_Arch_GitHub\loc8r2mvc\node_modules\jade\lib\parser.js:759:17)
   at Parser.parseExpr (C:\Users\tester_Arch_GitHub\loc8r2mvc\node_modules\jade\lib\parser.js:211:21)
   at Parser.block (C:\Users\tester_Arch_GitHub\loc8r2mvc\node_modules\jade\lib\parser.js:729:25)
   at Parser.tag (C:\Users\tester_Arch_GitHub\loc8r2mvc\node_modules\jade\lib\parser.js:838:24)

So I used my plain old editor Notepad++ : under Settings/Preferrences/Tab Setting/Javascript --> choose replace by space. OR . you just move your cursor using your arrow key to each line and simply detect the tabs and replace them with spaces! Do a refresh on the URL. You will see the indentation problem goes away!

0
जोड़ा