لسنوات كنت أفكر في هذه المدونة، وأفكر، دعونا نرى إذا كنت سأكتب تدوينة عن هذا أو ذاك، لقد مر الوقت وعندما راجعتها أدركت أنني لم أكتب أي منشور منذ 8 سنوات.
في عصر الذكاء الاصطناعي اليوم، قد لا يكون من المنطقي إدارة مدونة، لكنني أرغب في الحفاظ على مهاراتي في الكتابة والتواصل مع مشاريعي الشخصية.
تم إنشاء هذه المدونة قبل 19 عاما باسم “Mis Cosas Geek”، مستخدما مصطلح “Geek” كمصطلح مرتبط بشخص مهتم بالتكنولوجيا، لكن في السنوات الأخيرة ارتبط المصطلح بشكل متزايد بالثقافة الشعبية، وألعاب الفيديو، والقصص المصورة، والأفلام، والموسيقى الثقافية، بالإضافة إلى الخيال العلمي والفانتازيا، وهذا ليس هدف هذه المدونة، لذلك من الآن فصاعدا عشاق السيليكون سيطلق على هذا الموقع “ورشة عمل المسؤول” وسنستمر في الحديث عن الأخطاء الإلكترونية، والتطوير، وبعض المواضيع الجديدة مثل أتمتة المنزل والطباعة ثلاثية الأبعاد.
الستاك الجديد#
هذا التغيير في الاسم لم يكن الشيء الجديد، وبسبب ذلك تم ترحيله على مستوى تقني لتوليد HTML ثابت، وأسباب هذا التغيير هي تجنب الحفاظ على قاعدة بيانات والكتابة ب Markdown، بالإضافة إلى تحسين محركات البحث والأداء وسهولة الوصول والأمان (أساسا لأنه :D HTML ثابت).
- wp2hugo كأداة لتنفيذ الترحيل.
- هوغو كمولد للمواقع الثابتة.
- موضوع بلوفيش
- إجراءات Github
- مترجم مايكروسوفت مع مستوى مجاني (Azure F0) للترجمات إلى لغات أخرى ومليونا حرف شهريا متضمن.
- عمال كلاودفلير
- [بريفو](Para Newsletter)
- اشتر لي قهوة
- Pholo التحقق من الموقع لعشاق RSS حنينيين مثلي ولكن تم تحديثه بالذكاء الاصطناعي
اختيار مولد موقع ثابت#
الخيار كان هوجو، وفي هذه المرحلة الجديدة أريد التركيز على الكتابة بدلا من الحفاظ على الإضافات والتحديثات وتحسين محركات البحث مع الحفاظ على أفضل أداء ممكن. يجلب هوجو المزايا التالية مقارنة بتقنيات مشابهة مثل Astro أو Jekyll أو Next.js.
- لا توجد تبعيات
- منحنى التعلم منخفض.
- سرعته عالية جدا.
- إنه حديث، مقارنة قبل كل شيء بجيكل
- البساطة
الخطوة التالية هي اختيار ثيم قوي، مصمم بشكل جيد، مع وظائف مدمجة وغير مثقل بالموضوع، بعد مقارنة عدة ثيمات موجودة تم اختيار بلوفيش .
التصدير#
بالنسبة للترحيل، أول شيء هو استخراج المحتويات والملفات من ووردبريس القديم باستخدام إحدى المكتبات المتاحة على Github. بعد مقارنة عدة أدوات مثل wordpress-export-to-markdownوmarkdown-exporter-for-wordpress و wp2hugo، كان الأخير هو الفائز الواضح بسبب المزايا التالية:
- اقتباس التعليقات
- يتيح لك تحميل ليس فقط الصور والملفات المشار إليها بل أيضا جميع الملفات الموجودة في ووردبريس
- تحويل HTML في ووردبريس بشكل صحيح عن طريق تضمين كتل الكود
- يسمح لك بتعديل هيكل الملفات والمجلدات في المدونة الجديدة
- يحافظ على ملفات ووردبريس وGUID
تدفق النشر#
فيما يتعلق بالنشر، رغم أنني استخدمت في حياتي المهنية قوالب Jenkins وGitlab CI/CD وAzure Devops، إلا أنني لم أستخدم Github Actions من قبل وكانت التجربة رائعة.
ل"استضافت" الموقع، تم استخدام Cloudflare Workers يسمح بنشر مجاني حتى في المستودعات الخاصة، وطلبات غير محدودة، و20,000 ملف، و25 ميجابايت لكل ملف، وإعادة توجيه 301 حقيقية (للحفاظ على إعادة توجيه خلاصات RSS القديمة لووردبريس)، و404 صفحات لكل لغة من بين لغات أخرى.
كل شيء مشفر: .github/workflows/publish.yml (إجراء “نشر”) وCloudflare wrangler.jsonc (العامل).
كل دفعة للتحكم الرئيسي تطلق الأكشن، الذي يؤدي مهمتين متتاليتين:
1. الترجمة#
أود أن تصل المدونة إلى عدد أكبر من الناس، ولهذا اخترت أكثر اللغات تتحدث في العالم وسيتم ترجمة المنشورات تلقائيا إليها:
- الإسبانية
- الإنجليزية
- الصينية الماندرين
- الهندية
- الإسبانية
- الفرنسية
- العربية
- البنغالية
- البرتغالية
- الروسية
للقيام بذلك، أستخدم translate.py تترجم المشاركات الجديدة أو المعدلة باستخدام Microsoft Translator مجانا وترفع الترجمات إلى المستودع. إذا لم يكن هناك شيء، ينتهي السكريبت في ثوان دون دفع أي رسوم. - إذا فشلت الترجمة أو نفدت الحصة: يتم عرضها على أي حال، لذا يتم نشر المنشور بالإسبانية على أي حال. - يمكنك استئناف الترجمات المعلقة أو إعادة النشر يدويا: إجراءات → نشر → تشغيل سير العمل. - أسرار GitHub: AZURE_TRANSLATOR_KEY، AZURE_TRANSLATOR_REGION، CLOUDFLARE_API_TOKEN (قالب “تحرير عمال Cloudflare”، المنطقة talleradmin.com) و CLOUDFLARE_ACCOUNT_ID.
2. النشر#
البناء باستخدام Hugo (أحدث إصدار متوفر بدعم Blowfish) ونشر باستخدام wrangler.jsonc في Cloudflare Worker.
النشرة الإخبارية#
لست متأكدا مما إذا كانت النشرات الإخبارية لا تزال حية أو تحتضر، لذا أنشأت واحدة مع [Brevo](Para Newsletter) لاختبارها. فوجئت بأن ميزة كانت تقدم مئات المواقع مجانا قبل 20 عاما لمشرفي المواقع أصبحت الآن خدمات مدفوعة محدودة للغاية. ومع ذلك، وفقا لما تمكنت من البحث عنه، يبدو أن Claude and I Brevo نقدم أفضل خطة مجانية مع أتمتة RSS.
مواضيع أخرى تمت مراجعتها ونقلها#
سهولة الوصول
أدسنس
Google Search Console: نقل المدونة لأن النطاق تغير أيضا rubeninfante.com إلى talleradmin.com
روابط العمولة بين علي إكسبريس وأمازون
تحسين الصور
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.jpgassets/img/background.jpgراجع إضافات ووردبريس قبل الترحيل وقم بتعطيل جميع الإضافات ما عدا الضرورية.
عدل وأنشئ إعادة توجيه من rubeninfante.com إلى talleradmin.com
في العمل اليومي#
الأوامر#
أنشئ عنصرا جديدا
hugo new posts/mi-nuevo-articulo/index.md- إذا تم استدعاء صورة في مجلد
mi-nuevo-articulofeature.[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/إلى بداية الرابط إذا لم يعد الرابط موجودا - أضف
#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تحتاج إلى رابط ثابت وغير متغير: favicons، ads.txt، ملفات PDF، ملفات للتحميل أو صور تربطها من الخارج. كمثال،social-default.jpgأضعه لأن واتساب وX يطلبان رابط مستقر.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.tomlnewsletter.formAction] es = "https://..." xx = "https://..."
