मैं एक स्थिर साइट उत्पन्न करने के लिए Gatsbyjs का उपयोग कर रहा हूं, यह स्थिर HTML फ़ाइलों का एक फ़ोल्डर आउटपुट करता है।

मुझे इन HTML फ़ाइलों को Microsoft SharePoint पर होस्ट करने की आवश्यकता है - इसे चलाने के लिए .html को .aspx में परिवर्तित करने की आवश्यकता है।

मेरे पास एक पोस्टस्क्रिप्ट है जो सभी .html को .aspx में अपडेट करती है (यह अच्छी तरह से काम करता है)।

हालांकि, सभी जेनरेट किए गए लिंक फ़ोल्डर को इंगित करते हैं:

<a href="/folder/">link</a>

इसे शेयरपॉइंट पर काम करने के लिए, मुझे प्रत्येक फ़ोल्डर में index.aspx फ़ाइल को इंगित करने के लिए प्रत्येक HTML फ़ाइल में प्रत्येक href को अपडेट करने की आवश्यकता है:

<a href="/folder/index.aspx">link</a>

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

0
neeko 28 अक्टूबर 2018, 16:44

1 उत्तर

सबसे बढ़िया उत्तर

आप शायद cheerio का उपयोग करना बेहतर समझते हैं, जो jsdom से हल्का है और अधिकांश jQuery सिंटैक्स का समर्थन करता है।

var html = fs.readFileSync(input.html);
const $ = cheerio.load(html);
var output = $('a[href="folder"').attr('href', '/folder/index.aspx').html();
1
mihai 28 अक्टूबर 2018, 14:56