↓ মূল বিষয়ে যান
  1. নিবন্ধ/

অ্যাডমিন ওয়ার্কশপ - ওয়ার্ডপ্রেস থেকে হুগোতে মাইগ্রেট করা

Rubén Infante Docio
লেখক
Rubén Infante Docio
সফটওয়্যার ইঞ্জিনিয়ার
বিষয়সূচী

বছরের পর বছর ধরে আমি এই ব্লগটি মনে রেখেছি, ভাবছি, আসুন দেখি আমি এই বা ওটা সম্পর্কে একটি এন্ট্রি করি কিনা, সময় কেটে গেছে এবং যখন আমি এটি পর্যালোচনা করি তখন আমি বুঝতে পেরেছি যে আমি 8 বছর ধরে একটি পোস্টও লিখিনি।

আজকের এআই যুগে, একটি ব্লগ বজায় রাখার অর্থ নাও হতে পারে, তবে আমি আমার লেখার দক্ষতা বজায় রাখতে এবং আমার ব্যক্তিগত প্রকল্পগুলি যোগাযোগ করতে চাই।

এই ব্লগটি 19 বছর আগে “মিস কোসাস গীক” নামে তৈরি করা হয়েছিল, প্রযুক্তির প্রতি মুগ্ধ ব্যক্তির সাথে সম্পর্কিত একটি শব্দ হিসাবে “গিক” ব্যবহার করে, তবে সাম্প্রতিক বছরগুলিতে এই শব্দটি পপ সংস্কৃতি, ভিডিও গেমস, কমিকস, চলচ্চিত্র এবং কাল্ট সংগীতের পাশাপাশি বিজ্ঞান কল্পকাহিনী এবং ফ্যান্টাসির সাথে ক্রমবর্ধমানভাবে যুক্ত হয়েছে এবং এটি এই ব্লগের উদ্দেশ্য নয়, অতএব, প্রিয় সিলিকন প্রেমীরা এখন থেকে এই সাইটটিকে “অ্যাডমিনের কর্মশালা” বলা হবে এবং আমরা বৈদ্যুতিন বোচড, বিকাশ এবং কিছু নতুন বিষয় যেমন হোম অটোমেশন এবং 3 ডি প্রিন্টিংয়ের বিষয়ে কথা বলতে থাকব।

নতুন স্ট্যাক
#

এই নাম পরিবর্তনটি একমাত্র অভিনবত্ব হতে পারে না এবং এই কারণে এটি স্ট্যাটিক এইচটিএমএল তৈরি করার জন্য একটি প্রযুক্তিগত স্তরে স্থানান্তরিত হয়েছে, এই পরিবর্তনের কারণগুলি হ’ল, একটি ডাটাবেস বজায় রাখা এবং মার্কডাউনে লেখা এড়ানো, পাশাপাশি এসইও, পারফরম্যান্স, অ্যাক্সেসযোগ্যতা এবং সুরক্ষা উন্নতি (মূলত কারণ এটি স্ট্যাটিক এইচটিএমএল :D)।

একটি স্ট্যাটিক সাইট জেনারেটর নির্বাচন করা
#

পছন্দটি হুগো হয়েছে, এই নতুন পর্যায়ে আমি সর্বোত্তম সম্ভাব্য পারফরম্যান্স বজায় রেখে প্লাগইন, আপডেট, এসইও ইত্যাদি বজায় রাখার পরিবর্তে লেখার দিকে মনোনিবেশ করতে চাই। হুগো অ্যাস্ট্রো, জেকিল বা Next.js এর মতো অনুরূপ প্রযুক্তির চেয়ে নিম্নলিখিত সুবিধাগুলি নিয়ে আসে।

  • এর কোন নির্ভরতা নেই
  • শেখার বক্ররেখা কম।
  • এর গতি অনেক বেশি।
  • এটি আধুনিক, সর্বোপরি জেকিলের তুলনায়
  • সরলতা

পরবর্তী জিনিসটি হ’ল এমন একটি থিম চয়ন করা যা শক্তিশালী, ভালভাবে ডিজাইন করা, বিল্ট-ইন কার্যকারিতা সহ এবং যা ওভারলোড নয়, একাধিক বিদ্যমান থিমগুলির ব্লোফিশ তুলনা করার পরে।

রপ্তানি
#

মাইগ্রেশনের জন্য, প্রথম জিনিসটি হ’ল ** গিটহাবে উপলব্ধ লাইব্রেরিগুলির মধ্যে একটি ব্যবহার করে পুরানো ওয়ার্ডপ্রেস ** থেকে সামগ্রী এবং ফাইলগুলি বের করা। ওয়ার্ডপ্রেস-এক্সপোর্ট-টু-মার্কডাউন,মার্কডাউন-এক্সপোর্টার-ফর-ওয়ার্ডপ্রেস এবং WP2Hugoএর মতো একাধিক সরঞ্জামের তুলনা করার পরে, পরেরটি নিম্নলিখিত সুবিধার কারণে স্পষ্ট বিজয়ী ছিল:

  • মন্তব্য নিষ্কাশন করুন
  • এটি আপনাকে কেবল রেফারেন্স করা চিত্র এবং ফাইলগুলি নয়, ওয়ার্ডপ্রেসে বিদ্যমান সমস্ত ডাউনলোড করতে দেয়
  • কোড ব্লক অন্তর্ভুক্ত করে ওয়ার্ডপ্রেস এইচটিএমএল সঠিকভাবে রূপান্তর করুন
  • আপনাকে নতুন ব্লগে ফাইল এবং ফোল্ডারগুলির কাঠামো সামঞ্জস্য করতে দেয়
  • ওয়ার্ডপ্রেস এবং জিইউআইডি স্লাগগুলি বজায় রাখে

মোতায়েন প্রবাহ
#

মোতায়েনের ক্ষেত্রে, যদিও আমার পেশাদার জীবনে আমি জেনকিন্স, গিটল্যাব সিআই / সিডি টেমপ্লেট এবং অ্যাজুর ডেভপস ব্যবহার করেছি, আমি কখনও গিটহাব অ্যাকশন ব্যবহার করিনি এবং অভিজ্ঞতাটি দুর্দান্ত হয়েছে।

সাইটের “হোস্টিং” এর জন্য, 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 ব্যবহার করি যা মাইক্রোসফ্ট ট্রান্সলেটর ব্যবহার করে নতুন বা সংশোধিত পোস্টগুলি বিনামূল্যে ব্যবহার করে এবং অনুবাদগুলি সংগ্রহস্থলে আপলোড করে। যদি কিছু না থাকে তবে স্ক্রিপ্টটি কোনও ফি ব্যয় না করে কয়েক সেকেন্ডের মধ্যে শেষ হয়ে যায়। - যদি অনুবাদটি ব্যর্থ হয় বা কোটা শেষ হয়ে যায়: এটি যেভাবেই হোক প্রদর্শিত হয়, তাই পোস্টটি যেভাবেই হোক স্প্যানিশ ভাষায় প্রকাশিত হয়। - আপনি মুলতুবি অনুবাদগুলি পুনরায় শুরু করতে পারেন বা হাতে পুনরায় স্থাপন করতে পারেন: কর্ম → প্রকাশিত → চালান ওয়ার্কফ্লো। - গিটহাব গোপনীয়তা: AZURE_TRANSLATOR_KEY, AZURE_TRANSLATOR_REGION, CLOUDFLARE_API_TOKEN (“ক্লাউডফ্লেয়ার ওয়ার্কার্স সম্পাদনা করুন” টেমপ্লেট, জোন talleradmin.com) এবং CLOUDFLARE_ACCOUNT_ID।

2. মোতায়েন
#

হুগোর সাথে তৈরি করুন (ব্লোফিশ সমর্থনের সাথে উপলব্ধ সর্বশেষ সংস্করণ) এবং ক্লাউডফ্লেয়ারের ওয়ার্কারে wrangler.jsonc সাথে মোতায়েন করুন।

নিউজলেটার
#

আমি নিশ্চিত নই যে নিউজলেটারগুলি এখনও বেঁচে আছে বা মারা যাচ্ছে, তাই আমি এটি পরীক্ষা করার জন্য [ব্রেভো](Para Newsletter) দিয়ে একটি তৈরি করেছি। আমি অবাক হয়েছি যে 20 বছর আগে ওয়েবমাস্টারদের কাছে বিনামূল্যে শত শত ওয়েবসাইট অফার করা একটি বৈশিষ্ট্য এখন অতি-সীমিত প্রদত্ত পরিষেবা। তবুও, আমি যা গবেষণা করতে সক্ষম হয়েছি তা অনুসারে, ক্লড এবং আমি ব্রেভো আরএসএস অটোমেশনের সাথে সেরা বিনামূল্যে পরিকল্পনা সরবরাহ করে বলে মনে হচ্ছে।

অন্যান্য বিষয়গুলি পর্যালোচনা করা হয়েছে এবং স্থানান্তরিত করা হয়েছে
#

  • অ্যাক্সেসযোগ্যতা

  • অ্যাডসেন্স

  • গুগল সার্চ কনসোল: ব্লগটি মাইগ্রেট করুন যেহেতু ডোমেনটিও rubeninfante.com talleradmin.com পরিবর্তন করেছে

  • Aliexpress এবং অ্যামাজন অ্যাফিলিয়েট লিঙ্ক

  • চিত্রগুলি অপ্টিমাইজ করুন

    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

      • যদি লিঙ্কটি আর বিদ্যমান না থাকে তবে ইউআরএলের শুরুতে https://web.archive.org/web/যুক্ত করুন
      • অ্যান্টি-বট বা অন্য কোনও কারণে সনাক্তকরণ ভুল হলে কোনও লিঙ্কের শেষে বা lychee.toml ফাইলে #nolychee যুক্ত করুন

থিম আপডেট করতে
#

  • থিম আপডেট করুন

      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: ব্যাকগ্রাউন্ড (ডিফল্টব্যাকগ্রাউন্ডইমেজ), ডিফল্ট বৈশিষ্ট্যযুক্ত চিত্র (ডিফল্টফিচারডইমেজ) এবং আপনার লেখকের ফটো। এ কারণেই background.jpg ঠিক আছে: থিমটি এটি সঙ্কুচিত করে এবং 3.4 এমবি পরিবেশন করা হয় না।

  • static যার জন্য আপনার একটি নির্দিষ্ট এবং অপরিবর্তিত ইউআরএল প্রয়োজন: ফেভিকন, 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://..."