स्केवर-मोड का उपयोग कैसे करें?


19

मैं वर्तमान में Emacs में स्केवर-मोड का उपयोग करने के लिए संघर्ष कर रहा हूं।

मैंने MELPA के माध्यम से skewer-mode को डाउनलोड और स्थापित किया है, इसलिए सभी निर्भरताएं अव्वल होनी चाहिए।

परीक्षण उद्देश्यों के लिए मैंने boidsjs डेमो भी डाउनलोड किया ।

मैं खोलूँगा boids.js, फिर टाइप करें M-xrun-skewer(URL के साथ ब्राउज़र को खोलता है http://127.0.0.1:8080/skewer/demo) और फिर अंत में M-xskewer-mode(-> skewer-mode enable) चलाएँ।

लेकिन ब्राउजर में ऐसा कुछ नहीं होता है।

मैं क्या गलत कर रहा हूं?


जैसा कि मैंने इसे समझा, कटार जावास्क्रिप्ट के मूल्यांकन के लिए एक इंटरफ़ेस प्रदान करता है ... क्या आप वास्तव में बफर की सामग्री का मूल्यांकन करते हैं boids.js?
टी। वेरॉन

मैं वर्तमान बफ़र को <kbd> Cx Ck </ kbd> ("boid.js लोड") के साथ लोड कर रहा हूं और <kbd> Cx Ce </ kbd> के साथ मूल्यांकन करने का प्रयास कर रहा हूं। लेकिन यह मुझे एक त्रुटि देता है कि यह "$" साइन नहीं कर सकता। इसका कारण यह है कि यह इसी HTML फ़ाइल से jQuery को लोड नहीं करता है (example.html)
JacksGT

2
आपको skewer-html-mode में html फ़ाइल को निकालना होगा।
जॉर्डन बायोनडो

कैसे? C-x C-kमें काम नहीं करता हैskewer-html-mode
JacksGT

जवाबों:


16

TLDR; आपको http सर्वर ( सिंपल-http ) शुरू करना होगा और इसके माध्यम से अपनी HTML फ़ाइलों को लोड करना होगा।

उदाहरण के लिए, मान लें कि आपके पास नाम की एक HTML फ़ाइल hello.htmlऔर फ़ोल्डर script.jsमें एक JS स्क्रिप्ट फ़ाइल है /home/user/Documents/javascript

hello.html :

<!doctype html>
<html>
<head>
    <!-- Include skewer.js as a script -->
    <script src="http://localhost:8080/skewer"></script>
    <!-- Include my script.js file -->
    <script src="script.js"></script>
</head>
<body>
    <p>Hello world</p>
</body>
</html>

script.js :

alert('hey!');

init.el (या .emacs ):

(require 'simple-httpd)
;; set root folder for httpd server
(setq httpd-root "/home/user/Documents/javascript")

सर्वर शुरू करने का समय आ गया है: M-x httpd-startऔर index.htmlब्राउजर में जाकर फाइल को खोलें http://localhost:8080/hello.html। आपको ब्राउज़र में अलर्ट प्राप्त करना चाहिए और अब कॉल करना चाहिए skwer-repl

आप उत्तर के माध्यम से ब्राउज़र के साथ बातचीत कर सकते हैं। तो, उत्तर में आपके द्वारा मूल्यांकन की जाने वाली हर चीज ब्राउज़र में संचारित हो जाएगी। उदाहरण के लिए यदि आप उत्तर में टाइप console.log('hey!')करते हैं, तो आपको यह संदेश ब्राउज़र के कंसोल में मिलेगा।

आप सहभागी एचटीएमएल (Emacs से जैसे लाइव अपडेट HTML टैग) को संशोधित करना चाहते हैं, तो आपके लिए जोड़ init.el (या .emacs ):

(add-hook 'html-mode-hook 'skewer-html-mode)

अब जब आप अपने .html फ़ाइल में होते हैं, तो आप टैग के साथ मूल्यांकन कर सकते हैं C-M-x( skewer-html-eval-tag), और ये तुरंत आपके ब्राउज़र में अपडेट हो जाएंगे।

ध्यान रखें कि इसके विपरीत, यह CSS और CSS फाइलों पर भी लागू होता है।


1
यह वास्तव में बहुत अच्छा जवाब है, इसे पोस्ट करने के लिए धन्यवाद। शायद यह भी कुछ भी नहीं है कि यदि आप httpd-rootअपने कॉन्फ़िगरेशन में हार्डकोड नहीं करना चाहते हैं , तो आप M-x eval-expression (setq httpd-root "/path/to/files")किसी भी समय ईमैक्स के भीतर से चला सकते हैं ।
कोडी रीचर्ट

उदाहरण में बेकार '\' html <script src="http://localhost:8080/skewer"></script>\ (संपादित नहीं कर सकता - संपादन होना चाहिए> = 6 वर्ण)
kai-dj

8

डेमो चलाने के बजाय, यह सुनिश्चित करने के लिए कि ये सब कुछ सही ढंग से काम कर रहा है, बस इन न्यूनतम चरणों का पालन करें।

  1. Myskewer.js नाम से एक नया बफर खोलें
  2. JS2- मोड सक्षम करें (कटार की निर्भरता)
  3. स्केवर-मोड सक्षम करें
  4. M-xrun-skewer (एक ब्राउज़र खुलता है, myskewer.js पर वापस जाएं)
  5. उस पंक्ति के अंत में टाइप alert("hello");और हिट करेंC-xC-e
  6. ब्राउज़र पर वापस जाएं।

आपको पेज पर एक अलर्ट बॉक्स देखना चाहिए।


आपके उत्तर के लिए धन्यवाद! दुर्भाग्य से, मुझे त्रुटि मिली है "बिंदु पर पाया गया कोई भी बंधनेवाला तत्व नहीं है"
JacksGT

माफ कीजिएगा यह मेरी गलती है। C-x C-eपुश करने के लिए वास्तविक कुंजी है। मेरे जवाब को संपादित करेगा
गैंबो

वह काम किया! हालाँकि: मैं HTML को लोड करने के लिए Skewer को कैसे बताऊँ? (जैसा कि डेमो में दिखाया गया है)
JacksGT

1
@JacksGT अपनी डाउनलोड की गई फ़ाइलों को इस लिंक ~/public_htmlपर "मैनुअल संस्करण" के लिए निर्देशों का पालन करें। एक बार जो किया जाता है वह आपके ब्राउज़र में लोकलहोस्ट: 8080 पर जाता है।
गैंबो

1

मामले में पोर्ट 8080 पहले से ही उपयोग में है :

आप httpd-portचर को अनुकूलित करके दूसरे पोर्ट का उपयोग करने के लिए skewer / simple-httpd को कॉन्फ़िगर कर सकते हैं । ( M-x customize-variable<ret>httpd-port)

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.