مولد موقع ثابت خفيف الوزن مكتوب بلغة بايثون.
سمات:
pip install --upgrade gnrt
قد تحتاج إلى إضافة $HOME/.local/bin إلى $PATH الخاص بك.
gnrt
سيبحث gnrt عن ملف config.yml اختياري في دليل العمل الحالي، وقوالب Jinja2 الاختيارية في مجلد templates ، وملفات تخفيض السعر في مجلد content ، ثم كتابة ملفات الإخراج التي تم إنشاؤها في المجلد public ، مع احترام مجلد content والفرعي هيكل المجلدات.
للحصول على قائمة الخيارات، استخدم:
gnrt -h
يتم تخزين التكوين في config.yml . يُسمح بأي زوج من القيمة الرئيسية. يمكن استخدام هذه المفاتيح وقيمها في ملفات المحتوى والقالب.
---
sitename: My awesome blog
baseurl: https://example.com
language: en
foo: bar
إذا كان الملف config.yml موجودًا، فسيقوم gnrt بالبحث عن الإعدادات defaults وإدخالات lists .
هذا هو المكان الذي تحدد فيه قيم التكوين الافتراضية، والتي يمكن تجاوزها في ملفات المحتوى.
مثال:
defaults:
template: default.j2
markdown-extras:
- break-on-newline
- fenced-code-blocks
nav: includes/nav.html
bar: foo
هذه المفاتيح لها معنى محدد، ويمكن تجاوز قيمها في ملفات المحتوى، مثل أي default آخر.
markdown-extras : يسمح بتمكين ملحقات Markdown، راجع الإضافات للحصول على قائمة القيمtemplate : يضبط قالب Jinja الافتراضي الذي سيتم استخدامه أثناء عرض ملفات المحتوىهذا هو المكان الذي يتم فيه تحديد قوائم المحتوى، مما يسمح بإنشاء قوائم الروابط على سبيل المثال.
مثال:
lists:
nav1:
filter:
key: category
value: page
template: nav-page.j2
nav2:
filter:
key: category
value: article
sort: published
reverse: true
template: nav-article.j2
rss:
filter:
key: category
value: article
sort: published
reverse: true
template: rss.j2
target: public/rss.xml
يمكن للقوائم تحديد المحتوى من خلال filter ، والذي يحصل على key بيانات تعريف value متطابقة.
ويمكن فرزها حسب قيمة البيانات الوصفية (على سبيل المثال، تاريخ النشر، عدد صحيح، ...) أو بترتيب للأمام (افتراضي) أو بترتيب reverse .
أثناء العرض، يتم حفظ المحتوى الذي تم إنشاؤه في مجلد includes (للتخزين المؤقت)، بينما يمكن تخصيص مسار الملف من خلال المفتاح target . وهذا يسمح بإنشاء موجز RSS على سبيل المثال.
ملفات المحتوى لها الامتداد .md ويتم تخزينها في مجلد content .
قد تحتوي ملفات المحتوى على مادة أمامية - أي بيانات تعريف منظمة - مكتوبة بلغة YAML.
هذا هو المكان الذي يمكن فيه تجاوز القيم الافتراضية.
مثال:
---
id: home
title: Home
link: /
nav-order: 3
---
id : معرف العنصر الحالي، والذي يمكن استخدامه في أي ملف محتوى للوصول إلى البيانات التعريفية لهذا العنصرlink : عنوان URL للصفحة التي تم إنشاؤهاtarget : مسار الملف الذي تم إنشاؤهtitle : عنوان العنصر الحالي تتم كتابة body المحتوى في Markdown.
وقد تحتوي أيضًا على صيغة Jinja2 وعناصر نائبة، مما يسمح بحقن قيم dataset ، مثل الروابط إلى صفحات أخرى:
Check the [about]({{ data.about.link }}) page or read the [articles]({{ data.articles.link }})!
راجع نموذج موقع الويب في docs/example ، والذي يمكنك إنشاؤه عن طريق تثبيت gnrt واستنساخ هذا المستودع والانتقال إلى gnrt/docs/example وتنفيذ gnrt .
يمكنك بعد ذلك تصفحه على http://localhost:8080/ بالانتقال إلى المجلد public الذي تم إنشاؤه وتنفيذ python3 -m http.server 8080 .
قد ترغب أيضًا في التحقق من مدونة مباشرة تم إنشاؤها بواسطة gnrt وقراءة هذه المقالة حول gnrt.