আমি আমার জ্যাকিল সাইটে একটি নতুন পোস্ট যুক্ত করার চেষ্টা করছি তবে আমি যখন চালাচ্ছি তখন উত্পন্ন পৃষ্ঠাগুলিতে এটি দেখতে পাচ্ছি না jekyll serve
।
জ্যাকিল পোস্ট তৈরি না হওয়ার কয়েকটি সাধারণ কারণ কী?
আমি আমার জ্যাকিল সাইটে একটি নতুন পোস্ট যুক্ত করার চেষ্টা করছি তবে আমি যখন চালাচ্ছি তখন উত্পন্ন পৃষ্ঠাগুলিতে এটি দেখতে পাচ্ছি না jekyll serve
।
জ্যাকিল পোস্ট তৈরি না হওয়ার কয়েকটি সাধারণ কারণ কী?
উত্তর:
_posts
।YEAR-MONTH-DAY-title.MARKUP
( দ্রষ্টব্য MARKUP
এক্সটেনশন , যা সাধারণত হয়.md
বা.markdown
)future: true
মধ্যে _config.yml
(ডকুমেন্টেশন)published: false
সামনের বিষয়টি রয়েছে। এটি সেট করুনtrue
।:
চরিত্র রয়েছে । এটি দিয়ে প্রতিস্থাপন করুন:
। 3.8.3
(এবং সম্ভবত অন্যান্য 'সাম্প্রতিক' রিলিজগুলিতে) কাজ করে।.markdown
ফাইলের নামটিতে এক্সটেনশন যুক্ত করতে ভুলে যাওয়া । আমি এটি জানি কারণ আমি আমার জীবনের 5 মিনিট সময় নষ্ট করেছি।
আপনি jekyll build --verbose
বিল্ড প্রক্রিয়াটি বিশদভাবে দেখতে ব্যবহার করতে পারেন ।
অসাধারণ আউটপুট:
Logging at level: debug
Configuration file: /home/fangxing/fffx.github.io/_config.yml
Logging at level: debug
Requiring: jekyll-archives
Requiring: jekyll-livereload
Requiring: kramdown
Source: /home/fangxing/fffx.github.io
Destination: /home/fangxing/fffx.github.io/_site
Incremental build: enabled
Generating...
EntryFilter: excluded /Gemfile
EntryFilter: excluded /Gemfile.lock
Reading: _posts/2018-01-14-new-post.md
Reading: _posts/2014-01-01-example-content.md
Reading: _posts/2014-01-02-introducing-lanyon.md
Reading: _posts/2017-11-21-welcome-to-jekyll.markdown
Reading: _posts/2018-01-14-boot-android-on-charge.md
Reading: _posts/2013-12-31-whats-jekyll.md
Skipping: _posts/2018-01-14-boot-android-on-charge.md has a future date
Generating: Jekyll::Archives::Archives finished in 0.000122873 seconds.
Generating: JekyllFeed::Generator finished in 0.000468846 seconds.
...
লগ থেকে আমি জেকলি দেখতে পেলাম 2018-01-14-boot-android-on-charge.md
কারণ এটির ভবিষ্যতের তারিখ রয়েছে।
একটি সম্ভাব্য কারণ হ'ল date
সামনের বিষয়টিতে উল্লিখিতটিতে টাইম জোন অফসেট থাকে না, সেক্ষেত্রে এটি ইউটিসির কাছে ডিফল্ট হয়, স্থানীয় মেশিনের টাইম জোন যেমনটি আপনি আশা করতে পারেন তেমন নয়। আমার বর্তমান স্থানীয় সময় অঞ্চল, বিএসটি-র সাথে ইউটিসি "ধরা" না দেওয়া পর্যন্ত আমি এতে এক ঘন্টা নষ্ট করেছি।
আমি এর একটি নির্দিষ্ট উত্তর খুঁজে পাইনি তবে আমি মনে করি যে সামনের বিষয়ে তারিখটি অবশ্যই ইউটিসিতে একটি টাইমজোন অফসেটের (অবশ্যই বাদ দিলে শূন্যের ডিফল্ট) দিয়ে দিতে হবে।
সুতরাং date: 2018-05-03 12:34:27
ইউটিসি হয় যেখানে বিশ্বের তুমি নির্বিশেষে নির্বিশেষে, এবং timezone
সেটিং _config.yml
।
সুতরাং তারিখের সময়গুলি নির্দিষ্ট করার জন্য সতর্ক থাকুন:
date: 2018-05-03 12:34:27 +0100
date: 2018-05-03 12:34:27 +01:30
কাজ করে বলে মনে হচ্ছে। অতিরিক্ত কোলন নোট করুন।
আমি আমার ব্লগের জন্য আরএসপেক পরীক্ষা লিখেছি যা এই বিধিগুলি প্রকাশ করে:
require 'spec_helper'
require 'yaml'
# Documented at https://jekyllrb.com/news/2017/03/02/jekyll-3-4-1-released/
post_regex = %r!^(?:.+/)*(\d{2,4}-\d{1,2}-\d{1,2})-(.*)(\.[^.]+)$!
def date_in_front_matter(date)
return date if date.is_a?(Date)
return date.to_date if date.is_a?(Time)
return Date.parse(date) if date.is_a?(String)
end
describe 'posts' do
Dir.glob("_posts/*md").each do |file|
basename = File.basename(file)
context basename do
front_matter = YAML.load(File.read(file).split(/---/)[1])
it 'filename must match documented post regex' do
expect(basename).to match post_regex
end
it 'date in file name same day as date in front matter' do
date_in_file_name = Date.parse(post_regex.match(basename).captures[0])
expect(date_in_front_matter(front_matter['date'])).to eq date_in_file_name
end
it 'title in front matter should not contain a colon' do
expect(front_matter['title']).to_not match /:/
end
it 'front matter should not have published: false' do
expect(front_matter['published']).to_not be false
end
end
end
end
এটি অন্যের কাজে লাগতে পারে কারণ তারিখে টাইপোগুলির কারণে আমি অনেক সময় হারাচ্ছিলাম etc.
আরএসপেক কনফিগারেশনের বাকী অংশগুলির সাথে এই পরীক্ষাগুলি এখানে প্রসঙ্গে দেখা যাবে ।
শুধু আরও একটি কারণ যোগ করতে যখন আপনার কাছ থেকে একটি নিবন্ধ সরানো, _drafts
থেকে _post
, আপনি কখনও কখনও মোছার প্রয়োজন _site
দ্বিজ করা নিবন্ধটি জন্য।
আমার ক্ষেত্রে এটি প্রায়শই ঘটে যা _site
পুনরায় তৈরির আগে পুরোপুরি মুছে ফেলা হবে না যাতে নতুন নিবন্ধটি প্রদর্শিত হবে না।
যাইহোক rm -rf _site
এবং bundle exec jekyll serve
কাজ :)
আপনি ফাইল ট্র্যাক করতে না পারেন তাহলে --verbose
আর যদি ফাইল চুপটি তারপর উপেক্ষা করা হয় সরানোর চেষ্টা করুন collections_dir
মধ্যে config.yml
ফাইল। এটি আমার জন্য সমস্যাটি সমাধান করেছে।
আপনি যদি নিজের সামনের বিষয়টি পরীক্ষা করে দেখে থাকেন এবং সব কিছু ঠিকঠাক মনে হয় এবং এমনকি jekyll build --verbose
কিছু প্রকাশ না করে (আমার ক্ষেত্রে এটি ঠিক এমনভাবে কাজ করেছে যে ফাইলটি একেবারেই উপস্থিত ছিল না, এমনকি এটি বাদও দেওয়া হয়নি) তবে এনকোডিং পরীক্ষা করে দেখুন আপনার ফাইল স্পষ্টতই, UTF-8
এটি স্বাক্ষর ছাড়াই হওয়া দরকার । এটি UTF-8 BOM
(বা UTF-8 with Signature
কিছু পাঠ্য সম্পাদক যেমন এটি কল করে) এটি চুপচাপ উপেক্ষা করা হবে। বিষয়টিকে আরও খারাপ করার জন্য, কিছু সম্পাদক উভয় প্রকারকে ঠিক হিসাবে প্রদর্শন করবে, তাত্পর্যটি আরও স্পষ্ট করে তুলবে UTF-8
।
future:true
কোন স্থান ছাড়া পর:
এ_config,yml
মাত্রই ভুল বিশালাকার: কনফিগারেশন ফাইল: (অবৈধ)।future: true
বেশিরভাগ পরিবর্তে ব্যবহার করা হবে।