Hugo Boilerplate لبناء مواقع الويب الحديثة؟
هذا الغلاية يلف Hugo مع Gulp كخط أنابيب تنمية محلي.
يتم استخدام postcss و webpack + babel في CSS و JS تجميع ونقل.
يتم استخدام Browsersync لتوفير تجربة تطوير محلية حديثة ، مما يتيح لك معاينة موقعك على أجهزة متعددة متزامنة.
يتم استخدام BrowsersList لتكوين دعم المتصفح.
يستخدم SVG Sprite لإنشاء Sprite SVG.
لاستخدام Gulp ، يجب أن يكون لديك عقدة و NPM مثبتة.
بمجرد تثبيت المتطلبات المسبقة ، استنساخ المستودع إلى الجهاز المحلي الخاص بك ، ثم تشغيل:
npm install
سيؤدي ذلك إلى تثبيت Hugo وكذلك جميع التبعيات العقدية اللازمة لتشغيل بيئة Hugo الخاصة بك. هذا قد يستغرق بعض الوقت!
يتم تنفيذ جميع مهام التطوير باستخدام NPM Run. انظر "scripts"
في package.json للحصول على قائمة كاملة بالأوامر.
يتم تشغيل التنمية المحلية بواسطة Browsersync ، ستتمكن من تطوير مواقع بسرعة من خلال:
http://localhost:3000/
.تشغيل خادم التطوير المحلي بسيط مثل التشغيل:
npm start
سيعرض ذلك جميع المحتوى المسودات أو المؤرخة في المستقبل أو منتهية الصلاحية ، والذي لم يتم تضمينه في بناء الإنتاج الخاص بك.
إذا كنت ترغب في التطوير مع الموقع كما سيظهر في الإنتاج ، فتشغيل:
npm run preview
لإنشاء بناء إنتاج نهائي على جهازك المحلي يمكنك تشغيله:
npm run build
سينتهي بناء الإنتاج الجديد لموقعك في dist/
الدليل.
يمكن تشغيل جميع أوامر Hugo's CLI عبر NPM عن طريق التشغيل:
npm run hugo -- <command> --<param>
على سبيل المثال:
npm run hugo -- new posts/example-post.md
// => creates a new post at hugo/content/posts/example-post.md
.
├── .tmp/ // Temporary directory for development server
├── dist/ // The production build
├── hugo/ // The Hugo project; content, data and static files
| ├── .forestry/ // Contains Forestry.io configuration files
| ├── content/ // Where all site content is stored
| ├── data/ // TOML, YAML or JSON files containing site data
| ├── layouts/ // Your site's layouts
| | ├── partials/ // Your site's partials
| | └── shortcodes/ // Your site's shortcodes
| ├── static/ // Where all static files live
| | ├── css/ // Where compiled CSS files live
| | ├── js/ // Where compiled JS files live
| | └── uploads/ // Where user uploads are stored
| └── config.toml // The Hugo configuration file
└─── src/
├── css // CSS/SCSS source files to be compiled to /css/
└── js // JS source files to be compiled to /js/
سيتم دمج أي SVGs الموجودة في src/img/
في Sprite SVG واحد في hugo/static/svg/sprite.symbol.svg
.
يأتي هذا Boilerplate مع جزء بسيط لاستخدام SVGs في تخطيطاتك. يمكنك تحديد SVG عن طريق تمرير معرفه.
{{/* Using a logo stored at src/img/github.svg */}}
{{ partial "svg" (dict "id" "github" "class" "optional-class" "width" 32 "height" 32) -}}
ملاحظة: class
width
height
معلمات اختيارية
يأتي هذا Boilerplate مع تكوينات ESLINT و Stylelint القياسية التي سترتب على CSS و JS للأخطاء أو مشكلات النمط الشائعة ، والتي تعمل مع أكثر المعرفات شعبية.
يمكن أيضًا إجراء الاختبارات من سطر الأوامر:
npm run eslint
npm run stylelint
إذا كنت تريد إصلاح أخطاء الوبر تلقائيًا ، فيمكنك القيام بذلك من سطر الأوامر أيضًا:
npm run eslint:fix
npm run stylelint:fix
هذه الغلاية هي التنظيف الذاتي ، وسوف تزيل الإنتاج dist/
Development .tmp/
المجلدات في كل مرة يتم فيها تشغيل أمر للتأكد من أن محتوياتها محدثة دائمًا.
إذا كنت ترغب في التنظيف يدويًا ، فقم بتشغيل:
npm run clean
يتم التعامل مع جميع مهام البناء بواسطة Gulp وتقع في gulpfile.babel.js
. جميع أجزاء الإنشاء قابلة للتكوين في ملفات منفصلة لجعل الإدارة سهلة.
يمكن تكوين جميع مسارات المصدر والوجهة من gulp.config.js
.
يمكن تكوين أوامر الإنشاء لـ Hugp من gulp.config.js
. يتم تعيين أوامر الإنشاء بناءً على متغير بيئة NODE_ENV
. يمكنك اختياريًا تحميل ARGs مختلفة باستخدام متغير بيئة GENERATOR_ARGS
.
أربعة خيارات متوفرة:
default
: أوامر الإنشاء الافتراضية التي يتم تشغيلها دائمًاdevelopment
: أوامر بناء إضافية لخادم التطويرpreview
: أوامر بناء إضافية لخادم تطوير الإنتاجproduction
: أوامر بناء إضافية لبناء الإنتاج تم العثور على التكوين لـ Browsersync في .browsersyncrc.js
تم العثور على تكوين postCSS في .postcssrc.js
تم العثور على التكوين لـ WebPack في .webpackrc.js
يستخدم كل من PostCSS و WebPack. .browserslistrc
لاتخاذ قرار بشأن دعم المتصفح عند التجميع.
hugo/static/
Folder كما يجب أن تظهر في الموقع المبني على سبيل المثال ، يجب تخزين ملف CNAME في hugo/static/CNAME
ليصبح /CNAME
src/js/
إلى js/{filename}.js
require()
import
عبارات من حزم NPM وملفات JS المحليةsrc/css/
إلى css/{filename}.css
hugo/
Folder تلتزم دائمًا{{ getenv "HUGO_ENV" }}
development
production
staging
يأتي هذا المستودع مع مثال أساسي للمحتوى الذي تم تكوينه مسبقًا للعمل مع Forestry ، والذي يمكنك استخدامه لبدء بناء موقعك.
hugo
جميع المساهمات موضع ترحيب! يرجى الاطلاع على إرشادات قواعد السلوك والدعم.
يتم إصدار مشروع Boilerplate هذا تحت رخصة معهد ماساتشوستس للتكنولوجيا.