हम स्थिर HTML साइट निर्माता, मिडिलमैन पर कई वर्षों से काम कर रहे हैं। हाल ही में एक अपग्रेड के बाद हम एक ऐसे मुद्दे पर आ गए हैं जिससे हमारी पूरी टीम स्तब्ध है। config.rb में सभी proxy कॉल ठीक काम करते हैं जब तक कि हम इस तरह नेस्टेड लूप चलाने की कोशिश नहीं करते:

data.site.datatype.each do | id, c |
         puts c
      data.site.datatype.each do | id, c2 |
         puts c2
      end
    end

[ध्यान दें कि data.site.datatype .yaml फ़ाइलें हैं जिन्हें बिचौलिए-कंटेंटफुल का उपयोग करके आयात किया जाता है।]

व्यवहार यह है कि बाहरी लूप ठीक चलता है लेकिन आंतरिक लूप निष्पादित करने से इंकार कर देता है।

बाहरी लूप (puts c) का आउटपुट .yaml पेलोड के बिचौलिए के आयात को निम्नानुसार दर्शाता है:

#<Middleman::Util::EnhancedHash id="id-1" name="comp1" slug="comp1">
#<Middleman::Util::EnhancedHash id="id-2" name="comp2" slug="comp2">

हम इस मुद्दे पर एक सप्ताह से अटके हुए हैं इसलिए किसी भी मार्गदर्शन का बहुत स्वागत होगा!

जेमफाइल इस प्रकार है:

source 'https://rubygems.org'
gem 'middleman', '~> 4.2'
gem 'middleman-autoprefixer', '~> 2.7'
gem 'tzinfo-data', platforms: [:mswin, :mingw, :jruby, :x64_mingw]
gem 'wdm', '~> 0.1', platforms: [:mswin, :mingw, :x64_mingw]
gem 'middleman-dotenv', '~> 2.0'
gem 'contentful_middleman', '~> 4.2.0'

अन्यथा config.rm में activate :dotenv और activate :contentful हैं

हम https://middlemanapp.com/advanced/dynamic-pages/ पर वापस चले गए हैं और वहां कुछ भी नहीं मिल रहा है जो मदद करता है।

0
DroppedOrphan 19 जुलाई 2020, 08:27

1 उत्तर

सबसे बढ़िया उत्तर

अपडेट करें: जबकि हमें इस पर कोई वास्तविक दस्तावेज नहीं मिला है, यहाँ उत्तर है।
जबकि data.site का उपयोग .html.erb टेम्प्लेट में काम करता है, config.rb में डेटा फ़ाइलों को कॉल करने के लिए @app.data.site की आवश्यकता होती है।

तो ऊपर दिए गए उदाहरण कोड को पढ़ना चाहिए

@app.data.site.datatype.each do | id, c |
         puts c
      @app.data.site.datatype.each do | id, c2 |
         puts c2
      end
    end

मिडिलमैन रेपो से संकेत आया:

https://github.com/middleman/middleman/blob/master/middleman-core/lib/middleman-core/core_extensions/data.rb#L15-L19

    # Make the internal `data_store` method available as `app.data`
    expose_to_application data: :data_store

    # Exposes `internal_data_store` to templates, to be wrapped by `data` in the context
    expose_to_template internal_data_store: :data_store
1
DroppedOrphan 20 जुलाई 2020, 12:51