↓ मुख्य सामग्री पर जाएँ
  1. आर्टिकल्स/

व्यवस्थापक कार्यशाला - वर्डप्रेस से ह्यूगो में माइग्रेट करना

Rubén Infante Docio
लेखक
Rubén Infante Docio
सॉफ़्टवेयर इंजीनियर
विषय-सूची

वर्षों से मेरे मन में यह ब्लॉग है, यह सोचते हुए, चलो देखते हैं कि क्या मैं इस या उस बारे में एक प्रविष्टि करता हूं, समय बीत चुका है और जब मैं इसकी समीक्षा करता हूं तो मुझे एहसास हुआ है कि मैंने 8 वर्षों से एक भी पोस्ट नहीं लिखी है।

एआई के आज के युग में, ब्लॉग बनाए रखने का कोई मतलब नहीं हो सकता है, लेकिन मैं अपने लेखन कौशल को बनाए रखना चाहता हूं और अपने द्वारा की जाने वाली व्यक्तिगत परियोजनाओं को संप्रेषित करना चाहता हूं।

यह ब्लॉग 19 साल पहले “मिस कोसास गीक” नाम से बनाया गया था, जिसमें “गीक” का उपयोग प्रौद्योगिकी से मोहित व्यक्ति से जुड़े शब्द के रूप में किया गया था, हालांकि हाल के वर्षों में यह शब्द तेजी से पॉप संस्कृति, वीडियो गेम, कॉमिक्स, फिल्मों और पंथ संगीत के साथ-साथ विज्ञान कथा और फंतासी से जुड़ा हुआ है और यह इस ब्लॉग का उद्देश्य नहीं है, इसलिए, अब से प्रिय सिलिकॉन प्रेमियों इस साइट को “द एडमिन वर्कशॉप” कहा जाएगा और हम इलेक्ट्रॉनिक बॉच्ड, विकास और कुछ नए विषयों जैसे होम ऑटोमेशन और 3डी प्रिंटिंग के बारे में बात करना जारी रखेंगे।

नया स्टैक
#

यह नाम परिवर्तन एकमात्र नवीनता नहीं हो सकता है और इस वजह से इसे स्थिर HTML उत्पन्न करने के लिए तकनीकी स्तर पर भी माइग्रेट किया गया है, इस परिवर्तन के कारण हैं, डेटाबेस को बनाए रखने और मार्कडाउन में लिखने से बचने के लिए, साथ ही एसईओ, प्रदर्शन, पहुंच और सुरक्षा सुधार (मूल रूप से क्योंकि यह स्थिर HTML :D है)।

एक स्थिर साइट जनरेटर चुनना
#

विकल्प ह्यूगो रहा है, इस नए चरण में मैं सर्वोत्तम संभव प्रदर्शन को बनाए रखते हुए प्लगइन्स, अपडेट, एसईओ आदि को बनाए रखने के बजाय लेखन पर ध्यान केंद्रित करना चाहता हूं। ह्यूगो एस्ट्रो, जेकिल या Next.js जैसी समान तकनीकों पर निम्नलिखित लाभ लाता है।

  • इसकी कोई निर्भरता नहीं है
  • सीखने की अवस्था कम है।
  • इसकी गति बहुत अधिक है।
  • यह आधुनिक है, सबसे ऊपर जेकिल की तुलना में
  • सादगी

अगली बात यह है कि एक ऐसी थीम चुनें जो मजबूत, अच्छी तरह से डिज़ाइन की गई हो, अंतर्निहित कार्यात्मकताओं के साथ हो और जो कि अतिभारित न हो, कई मौजूदा विषयों की तुलना करने के बाद ब्लोफिश चुना गया था।

निर्यातित माल
#

माइग्रेशन के लिए, पहली बात यह है कि Github पर उपलब्ध पुस्तकालयों में से एक का उपयोग करके पुराने वर्डप्रेस से सामग्री और फ़ाइलों को निकालना है। जैसे कई टूल की तुलना करने के बाद वर्डप्रेस-एक्सपोर्ट-टू-मार्कडाउन,मार्कडाउन-एक्सपोर्टर-फॉर-वर्डप्रेस और wp2hugo, बाद वाला निम्नलिखित लाभों के कारण स्पष्ट विजेता था:

  • टिप्पणियाँ निकालें
  • यह आपको न केवल संदर्भित छवियों और फ़ाइलों को डाउनलोड करने की अनुमति देता है, बल्कि वर्डप्रेस में सभी मौजूदा लोगों को भी डाउनलोड करता है
  • कोड ब्लॉक को शामिल करके वर्डप्रेस HTML को सही ढंग से बदलें
  • आपको नए ब्लॉग में फ़ाइलों और फ़ोल्डरों की संरचना को समायोजित करने की अनुमति देता है
  • वर्डप्रेस और GUID स्लग को बनाए रखता है

परिनियोजन प्रवाह
#

तैनाती के संदर्भ में, हालांकि अपने पेशेवर जीवन में मैंने जेनकिंस, गिटलैब सीआई/सीडी टेम्प्लेट और एज़्योर डेवप्स का उपयोग किया है, मैंने कभी भी जीथब एक्शन का उपयोग नहीं किया था और अनुभव अद्भुत रहा है।

साइट की “होस्टिंग” के लिए, Cloudflare वर्कर्स का उपयोग किया गया है जो निजी रिपॉजिटरी, असीमित अनुरोधों, 20,000 फाइलें, 25 एमबी प्रति फ़ाइल, वास्तविक 301 रीडायरेक्ट (पुराने वर्डप्रेस आरएसएस फ़ीड के रीडायरेक्ट बनाए रखने के लिए), 404 पृष्ठ प्रति भाषा दूसरों के बीच में मुफ्त तैनाती की अनुमति देता है।

यह सब कोड में है: .github/workflows/publish.yml (कार्रवाई “प्रकाशित करें”) और क्लाउडफ्लेयर wrangler.jsonc (कार्यकर्ता)।

प्रत्येक धक्का एक मुख्य कार्रवाई शुरू करता है, जो एक पंक्ति में दो काम करता है:

1. अनुवाद
#

मैं चाहूंगा कि ब्लॉग अधिक से अधिक लोगों तक पहुंचे, इसके लिए मैंने दुनिया में सबसे अधिक बोली जाने वाली भाषाओं को चुना है और पोस्ट स्वचालित रूप से उनमें अनुवादित हो जाएंगे:

  1. स्पैनिश
  2. अंग्रेज़ी
  3. मंदारिन चीनी
  4. हिंदी
  5. स्पैनिश
  6. फ़्रेंच
  7. अरबी भाषा
  8. बंगाली
  9. पुर्तगाली
  10. रूसी

ऐसा करने के लिए, मैं translate.py का उपयोग करता हूं जो Microsoft अनुवादक का उपयोग करके नए या संशोधित पोस्ट का अनुवाद करता है नि: शुल्क और अनुवादों को रिपॉजिटरी में अपलोड करता है। यदि कुछ भी नहीं है, तो स्क्रिप्ट बिना कोई शुल्क खर्च किए कुछ ही सेकंड में समाप्त हो जाती है। - यदि अनुवाद विफल हो जाता है या कोटा समाप्त हो जाता है: तो यह वैसे भी प्रदर्शित होता है, इसलिए स्पेनिश में पोस्ट वैसे भी प्रकाशित होती है। - आप लंबित अनुवादों को फिर से शुरू कर सकते हैं या हाथ से फिर से तैनात कर सकते हैं: वर्कफ़्लो → प्रकाशित चलाने → क्रियाएँ। - GitHub रहस्य: AZURE_TRANSLATOR_KEY, AZURE_TRANSLATOR_REGION, CLOUDFLARE_API_TOKEN (“क्लाउडफ्लेयर वर्कर्स संपादित करें” टेम्पलेट, ज़ोन talleradmin.com) और CLOUDFLARE_ACCOUNT_ID।

2. तैनाती
#

ह्यूगो के साथ निर्माण करें (ब्लोफिश समर्थन के साथ उपलब्ध नवीनतम संस्करण) और क्लाउडफ्लेयर के वर्कर में wrangler.jsonc के साथ तैनात करें।

न्यूज़लेटर
#

मुझे यकीन नहीं है कि समाचार पत्र अभी भी जीवित हैं या मर रहे हैं, इसलिए मैंने इसका परीक्षण करने के लिए [ब्रेवो](Para Newsletter) के साथ एक बनाया है। मुझे आश्चर्य हुआ है कि एक सुविधा जो 20 साल पहले वेबमास्टर्स को मुफ्त में सैकड़ों वेबसाइटों की पेशकश करती थी, अब अल्ट्रा-सीमित भुगतान सेवाएं हैं। फिर भी, मैं जो शोध करने में सक्षम हूं, उसके अनुसार क्लाउड और मैं ब्रेवो आरएसएस स्वचालन के साथ सबसे अच्छी मुफ्त योजना की पेशकश करते हैं।

अन्य विषयों की समीक्षा की गई और माइग्रेट किया गया
#

  • सरल उपयोग

  • ऐडसेंस

  • Google Search Console: ब्लॉग को माइग्रेट करें क्योंकि डोमेन भी rubeninfante.com को talleradmin.com में बदल दिया गया है

  • Aliexpress और Amazon Affiliate Links

  • छवियों को अनुकूलित करें

    sudo apt install optipng jpegoptim
    find static/wp-content -iname '_.png' -print0 | xargs -0 -P"$(nproc)" -n4 optipng -o2 -strip all -quiet
    find static/wp-content -iname '_.jp\*g' -print0 | xargs -0 jpegoptim --strip-all --all-progressive -q
  • समीक्षा robots.txt

  • श्रेणियों और टैग में लहजे की समीक्षा

  • मेरे मामले में मैंने static/_redirects फ़ाइल का उपयोग करके टैग और श्रेणियों को साफ कर दिया है

  • अप्रयुक्त फ़ाइलों को साफ़ करें

  • मैंने प्रत्येक पृष्ठ में चित्र जोड़े हैं और जब कोई static/img/social-default.jpg और assets/img/background.jpg नहीं होता है तो एक सामान्य चित्र जोड़ा जाता है

  • माइग्रेशन से पहले वर्डप्रेस प्लगइन्स की समीक्षा करें और आवश्यक लोगों को छोड़कर सभी को अक्षम करें।

  • संशोधित करें और rubeninfante.com से talleradmin.com तक रीडायरेक्ट बनाएं

दैनिक कार्य में
#

आदेश
#

  • एक नया आइटम बनाएँ

    hugo new posts/mi-nuevo-articulo/index.md
    • यदि mi-nuevo-articulo फ़ोल्डर में किसी छवि को feature.[jpg,png,webp] कहा जाता है तो उसे मुख्य छवि, हेडर और सोशल मीडिया के रूप में उपयोग किया जाएगा
  • टूटे हुए लिंक की जाँच करें

    • सामग्री के साथ साइट के रूट पर lychee.toml फ़ाइल बनाएँ

        # lychee.toml — enlaces que no se comprueban (expresiones regulares)
        exclude = [
          "#nolychee$",   # la marca de evitar enlaces
          "https://web.archive.org/web/*",
          "reddit.com/submit",
          "facebook.com/sharer",
          "linkedin.com/shareArticle"
        ]
        exclude_path = ["^public/(en|zh-cn|hi|fr|ar|bn|pt-br|ru)/"]
    • आदेश चलाएँ:

        hugo --gc --cleanDestinationDir
        lychee --root-dir "$PWD/public" 'public/**/*.html' --format markdown --output informe.md
    • समीक्षा informe.md

      • यदि लिंक अब मौजूद नहीं है, तो URL की शुरुआत में https://web.archive.org/web/जोड़ें
      • #nolychee को लिंक के अंत में या lychee.toml फ़ाइल में जोड़ें यदि एंटी-बॉट्स या किसी अन्य कारण से पता लगाना गलत है

थीम को अपडेट करने के लिए
#

  • थीम अपडेट करें

      cd themes/blowfish
      OLD=$(git rev-parse HEAD)                                  # para comparar después
      git fetch --depth 1 origin main && git checkout -B main origin/main
  • उन फ़ाइलों की समीक्षा करें जिन्हें आपने विषय पर अधिलेखित किया है

      cd ../..
      for f in $(cd layouts && find . -type f); do git -C themes/blowfish diff --quiet $OLD HEAD -- "layouts/${f#./}" 2>/dev/null || echo "Revisar: layouts/${f#./}"; done

छवियां
#

ब्लॉग की छवियों को संग्रहीत करने के लिए उन मार्गों को जानना महत्वपूर्ण है:

  • assets उन छवियों के लिए जो थीम उपयोग करती हैं और अनुकूलित कर सकती हैं: पृष्ठभूमि (defaultBackgroundImage), डिफ़ॉल्ट फीचर्ड इमेज (defaultFeaturedImage), और आपके लेखक की तस्वीर। इसलिए background.jpg वहां ठीक है: थीम इसे सिकोड़ देती है और 3.4 एमबी परोसा नहीं जाता है।

  • static जिसके लिए आपको एक निश्चित और अपरिवर्तित URL की आवश्यकता होती है: फ़ेविकॉन, ads.txt, पीडीएफ, डाउनलोड करने के लिए फ़ाइलें या छवियां जिनसे आप बाहर से लिंक करते हैं। एक उदाहरण के रूप में मैं इसे वहां रख social-default.jpg क्योंकि व्हाट्सएप और एक्स एक स्थिर यूआरएल मांगते हैं।

  • Imágenes de un post concreto: पोस्ट के फ़ोल्डर में ही (पेज बंडल)।

  • ध्यान दें hugo.toml में मैंने static को संपत्ति के रूप में भी स्थापित किया है। यही कारण है कि जब थीम उन्हें कवर के रूप में उपयोग करती है तो स्थिर/छवियों को भी अनुकूलित किया जाता है। यह वर्डप्रेस माइग्रेशन के लिए एक फिक्स है।

      [[module.mounts]]
        source = "static"
        target = "assets"

कोई भाषा जोड़ें
#

  • संशोधित/जोड़ी जाने वाली फ़ाइलें

      config/_default/languages.xx.toml
      config/_default/menus.xx.toml
      i18n/xx.toml (Sólo en el caso del que el tema no incluya el idioma)
  • /config/_default/params.toml संशोधित करें

      newsletter.formAction]
        es = "https://..."
        xx = "https://..."