هدف از پیکربندی ها این است که پوسته ها را تا حدی قابل تنظیم بدون نیاز به تغییر کد پوسته است. تنظیمات ممکن است برای این امکان استفاده شود که وبلاگ نویس بتواند ویژگی ها را روشن یا خاموش کند، رنگ ها و فونت ها را تغییر دهد یا حتی کلیدهای API را برای سرویس های خارجی تعریف کند.
اگر در حال توسعه یک پوسته برای خود یا یک کلاینت هستید، ممکن است مایل به استفاده از تنظیمات نباشد. با این حال، اگر قصد دارید منتشر کند پوسته شما، اضافه کردن تنظیمات مورد نیاز است.
تمام تنظیمات با مقادیر پیش فرض به config.yaml اضافه می شوند. دو نوع پیکربندی وجود دارد.
همه تنظیمات در قالب های موجود در دسترس هستند _config متغیر مسیر.
تنظیمات HB-aware باید در ENGLISH_UPPER_SNAKE_CASE در config.yaml نوشته شوند.
THEME_NAME - نام پوسته THEME_VERSION - نسخه معنایی پوسته THEME_FONTS - فونت برای بارگذاری در وبلاگ. ببینید فونت ها. DEMO_URL - می توان از آن برای تنظیم نسخه نمایشی سفارشی URL هنگام انتشار استفاده کرد POSTS_PER_PAGINATION - تعداد پست های بارگذاری شده در ابتدا در _posts متغیر مسیر تنظیمات پوسته (رنگها، فونتها و غیره) باید به زبان english_lower_snake_case نوشته شوند.
در حالی که میتوانید از تنظیمات چند تو در تو YAML استفاده کنید، توصیه میکنیم فقط تا یک یا دو سطح تودرتو استفاده کنید.
THEME_NAME: hello
THEME_VERSION: 1.0.0
THEME_FONTS: 'mulish:400,700'
POSTS_PER_PAGINATION: 15
dark_theme: Yes
accent_color: 0000000
image_service:
api_key:
api_version: 2در این مثال، 3 خط اول تنظیمات HB-aware هستند. بقیه تنظیمات پوسته هستند. می توانید هر تعداد که نیاز دارید پیکربندی پوسته اضافه کنید.
config.def.yaml پیکربندی های پوسته شما را “توضیح” می کند. این به وبلاگ نویس کمک می کند تا بفهمد هر پیکربندی چه کاری انجام می دهد. همچنین به ارائه فایل config.yaml در کنسول → Theme به جای فایل به عنوان یک رابط کاربری کمک می کند.
تعاریف پیکربندی خود را در blogs.hyvor.com/configتست کنید.
این یک نمونه فایل config.def.yaml است که پیکربندی های مثال قبلی را توضیح می دهد.
dark_theme:
$name: Dark theme
$description: Turn on dark theme for this blog
$type: checkbox
accent_color:
$name: Accent Color
$description: Main color of the blog
$type: color
image_service:
$name: Image Service API Details
api_key:
$name: API Key
$description: ...
$type: text
$maxlength: 255
api_version:
$name: API Version
$description: ...
$type: number
$min: 1
$max: 2ما از فایل config.def.yaml برای رندر کردن فایل config.yaml در Console → Theme به عنوان یک رابط کاربری به جای فایل. همچنین، اضافه کردن شرایط در فایل def (مثلا:
حداقل، حداکثر) مطمئن می شود که تنظیمات اشتباه توسط وبلاگ نویس تنظیم نشده است.
اینها تعاریف پشتیبانی شده برای پیکربندی پوسته هستند:
$type - نوع پیکربندی. پشتیبانی شده $type sرا ببینید.$name - نام پیکربندی.$description - شرح پیکربندی.$minlength - حداقل تعداد کاراکترها در یک ورودی.$maxlength - حداکثر تعداد کاراکترها در یک ورودی.$min - حداقل مقدار برای یک عدد.$max - حداکثر مقدار برای یک عدد.$type sاینها انواع پشتیبانی شده برای پیکربندی پوسته هستند:
$typenonetext$type تعریف نشده باشد، این پیش فرض استtextareanumbercheckboxradiocolorمیتوانید گزینههای رادیویی را در $options ، که یک لیست جفت key: label است، تنظیم کنید. key مقدار واقعی است که در فایل config.yaml ذخیره می شود. label چیزی است که کاربر خواهد دید.
some_key:
$title: When to use caching
$type: radio
$options:
all: For All Posts and Pages
posts: Only Posts
pages: Only Pagesپس از تعریف تنظیمات، می توانید از آنها در قالب های خود استفاده کنید. شما می توانید از طریق متغیر مسیر _config به تنظیمات دسترسی داشته باشید.
مثال: متغیرهای CSS قابل تنظیم.
config.yaml:
colors:
accent: '#896c6b'
font:
size: 16
family: 'Nunito, sans-serif'
line_height: 24
box:
radius: 20
shadow: '0 0 30px rgba(0,0,0,0.05)'سپس، از تنظیمات در قالب های خود استفاده کنید.
<style>
:root {
--color-accent: {{ _config.colors.accent }};
--font-size: {{ _config.font.size }}px;
--font-family: {{ _config.font.family }};
--line-height: {{ _config.line_height }}px;
--box-radius: {{ _config.box.radius }}px;
--box-shadow: {{ _config.box.shadow }};
}
</style>