जेकेल पोस्ट उत्पन्न नहीं हुई


100

मैं अपनी Jekyll साइट पर एक नया पोस्ट जोड़ने का प्रयास कर रहा हूं, लेकिन जब मैं चलता हूं तो मैं इसे उत्पन्न पृष्ठों पर नहीं देख सकता jekyll serve

Jekyll पोस्ट के उत्पन्न न होने के कुछ सामान्य कारण क्या हैं?

जवाबों:


230

1
का उपयोग कर future:trueकिसी भी स्थान के बिना के बाद :में _config,ymlगलती करना होता है: कॉन्फ़िगरेशन फ़ाइल: (अवैध)। future: trueइसके बजाय सबसे अधिक इस्तेमाल किया।
यितलूटौ

एक और संभावित कारण .markdownफ़ाइल नाम के विस्तार को जोड़ना भूल गया है । मैं यह जानता हूं क्योंकि मैंने अपने जीवन के केवल 5 मिनट बर्बाद किए हैं।
H2ONOCK

आपको बहुत - बहुत धन्यवाद! सिर्फ 30 मिनट खोजा कि मेरी पोस्ट तब तक क्यों नहीं दिखाई दे रही थी जब तक मुझे समझ नहीं आया कि एक तारीख फ़िल्टर है ... (15mins में यह "जादुई रूप से काम करेगा" ...)। भविष्य के विकल्प को जोड़ा और सब कुछ उम्मीद के मुताबिक काम करता है। मेरे विचार में सत्य डिफ़ॉल्ट होना चाहिए।
मथायस क्लेन

1
मैं क्या खो रहा हूँ। यहाँ मेरी पोस्ट शीर्षक में एक बृहदान्त्र है और यह ठीक है? raw.githubusercontent.com/alexharv074/alexharv074.github.io/… और यह यहाँ ठीक प्रतीत होता है? एलेक्सहरव ० Har४।जीथुब।आईओ
एलेक्स हार्वे

1
@AlexHarvey टिप्पणी के लिए धन्यवाद! यह वास्तव में अब एक समस्या नहीं है। मैंने अपना उत्तर अपडेट कर दिया।
अरोनिस्टावट

19

आप 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क्योंकि इसकी भविष्य की तारीख है।


6

एक संभावित कारण यह है कि dateसामने वाले मामले में निर्दिष्ट में टाइम ज़ोन ऑफसेट नहीं है, इस मामले में यह यूटीसी के लिए चूक है, न कि स्थानीय मशीन का समय क्षेत्र जैसा कि आप उम्मीद कर सकते हैं। मैंने अपने वर्तमान स्थानीय समय क्षेत्र, BST के साथ UTC के "पकड़े जाने" तक इस पर एक घंटा बर्बाद कर दिया।

मुझे इसका कोई निश्चित उत्तर नहीं मिला है, लेकिन मुझे लगता है कि सामने वाले मामले में तारीख UTC में एक टाइमज़ोन ऑफसेट (जो चूक से शून्य होने पर चूक के साथ) में दी जानी चाहिए।

तो date: 2018-05-03 12:34:27 यूटीसी चाहे आप दुनिया में कहीं भी हो, और timezoneसेटिंग के बावजूद चाहे जो भी हो _config.yml

तो इस तरह डेटासेट को निर्दिष्ट करने के लिए सावधान रहें:

date: 2018-05-03 12:34:27 +0100

1
प्रारूप date: 2018-05-03 12:34:27 +01:30भी काम करने लगता है। अतिरिक्त बृहदान्त्र पर ध्यान दें।
यिंगलाईंग

इस मुद्दे को महसूस करने के लिए 10 मिनट बर्बाद किए गए। धन्यवाद!
समिसनोटिन्सन

2

या यह ब्राउज़र कैश भी हो सकता है यदि आप _site फ़ोल्डर में नहीं बल्कि सीधे ब्लॉग के मुख्य पृष्ठ पर पोस्ट की सूची के साथ देख रहे हों।


2

मैंने अपने ब्लॉग के लिए Rspec परीक्षण लिखे हैं जो इन नियमों को व्यक्त करते हैं:

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

यह दूसरों के लिए उपयोगी हो सकता है क्योंकि मैं तारीख आदि में टाइपोस के कारण बहुत समय खो रहा था।

बाकी Rspec कॉन्फ़िगरेशन के साथ इन परीक्षणों को यहां संदर्भ में देखा जा सकता है


2

बस एक और कारण जोड़ने के लिए जब आप से एक लेख ले जाते हैं, _draftsकरने के लिए _post, आप कभी कभी हटाने की आवश्यकता _siteपुनर्जीवित किया करने के लिए लेख के लिए।

मेरे मामले में अक्सर ऐसा होता है कि _siteफिर से उत्पन्न होने से पहले पूरी तरह से हटा नहीं दिया जाएगा ताकि नया लेख दिखाई न दे।

वैसे भी rm -rf _siteऔर bundle exec jekyll serveकाम :)


1

यदि आप फ़ाइल को ट्रैक करने में असमर्थ हैं --verboseऔर यदि फ़ाइल को चुपचाप अनदेखा किया जाता है, तो फ़ाइल collections_dirमें निकालने का प्रयास करें config.yml। मेरे लिए यह समस्या हल हो गई।


0

मेरी पोस्ट भी नहीं दिखाई गई एक त्रुटि यह थी, कि मेरे नाम में मैंने एक डॉट का उपयोग किया था, जैसे 2017-10-18-test.2.md
यह स्वीकार नहीं है, आपको उपयोग करना होगा 2017-10-18-test2.md


0

यदि आपने अपने सामने के मामले की जाँच की है, और सब कुछ ठीक है, और यहां तक ​​कि jekyll build --verboseकुछ भी प्रकट नहीं करता है (मेरे मामले में, यह सिर्फ इस तरह से कार्य करता है जैसे कि फ़ाइल बिल्कुल भी मौजूद नहीं है, इसे भी बाहर सूचीबद्ध नहीं है), एन्कोडिंग की जांच करें आपकी फ़ाइल के लिए। जाहिर है, यह UTF-8हस्ताक्षर के बिना होना चाहिए । यह ऐसा है UTF-8 BOM(या UTF-8 with Signatureजैसा कि कुछ पाठ संपादक इसे कहते हैं), तो इसे चुपचाप नजरअंदाज कर दिया जाएगा। मामलों को बदतर बनाने के लिए, कुछ संपादक दोनों प्रकारों को बस के रूप में प्रदर्शित करेंगे UTF-8, जिससे अंतर को और अधिक कठिन हो जाएगा।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.