2016-01-24 9 views
5

मैं वर्तमान में पेज जनरेटर के रूप में निकोला का उपयोग कर रहा हूं।lektor पृष्ठों में मीडिया सामग्री एम्बेड करें?

लेकिन पेज स्कोप और उपयोगकर्ताओं के आधार पर, लेक्चर एंड-यूजर के लिए आसान और अधिक सुव्यवस्थित प्रतीत होता है। यह एक नए पेज के लिए अच्छी तरह से फिट है जो मैं योजना बना रहा हूं।

निकोला भी मीडिया (यूट्यूब, Vimeo, SoundCloud, आदि) https://getnikola.com/handbook.html#restructuredtext-extensions

कैसे Lektor द्वारा ऐसी कार्यक्षमता प्रदान की जाती है embedds?

उत्तर

6

answer of @A. Jesse सही है। Lektor के मूल में सादगी बनाए रखने के कारण, Flask की तरह, स्वचालित एम्बेडिंग "कोर" द्वारा नहीं की जाती है।

हालांकि, Flask, Lektor की एक ही भावना में अत्यधिक विस्तार योग्य है। यह & में अंतिम HTML को प्रस्तुत करने वाले MarkDown स्वरूपित पाठ के अपने विश्लेषण पर भी लागू होता है।

जैसा कि उसने पहले ही कहा है, आप अपने अन्यथा मार्कडाउन ग्रंथों में HTML में एम्बेड करने योग्य कोड को सीधे पेस्ट कर सकते हैं। और, इसे अंतिम HTML में के रूप में शामिल किया जाएगा।

लेकिन, व्यक्तिगत रूप से मैंने सोचा कि मार्कडाउन की सादगी & त्वरित पठनीयता की मुख्य मंशा को नुकसान पहुंचाता है।

आसानी से पढ़ा है, आसानी से लिख सादे पाठ प्रारूप

यही कारण है कि मैं lektor-embed-x की आवश्यकता है, जहां लेखक सिर्फ एक अलग पैराग्राफ में सामग्री के लिंक नीचे लिखेंगे महसूस किया। प्लगइन का यह छोटा टुकड़ा शेष हद तक बाकी करेगा। यह मूल रूप से embedX और Lektor के बीच एक गोंद-पुस्तकालय है।

  • यदि सामग्री अपेक्षाकृत "लोकप्रिय" साइट है, और लिंक ठीक है प्रारूप, संबंधित आवश्यक एम्बेड-कोड उत्पन्न किया जाएगा और अंतिम HTML में शामिल किया जाएगा।
  • यदि नहीं, तो लिंक का परिणाम नियमित लिंक होगा, यानी <a href=... लिंक।

उपयोग बहुत आसान है। $ cd path/to/lektor/project_folder $ lektor plugins add lektor-embed-x Package lektor-embed-x (0.1.2) was added to the project

यह है कि:

चरण 1 द्वारा प्लगइन जोड़ें। तुम जाने के लिए तैयार हो। [अभी तक, कोई अतिरिक्त कॉन्फ़िगरेशन नहीं है।]

अब, पोस्ट पर आप अपने MarkDown स्वरूपित पोस्ट में किसी भी विशेष मार्कर या स्टार्ट-फ्लैग के बिना अपने अनुच्छेद के अनुच्छेद पर लिंक जोड़ सकते हैं। ।contents.lr Lektor के माध्यम से

title: About this Website 
--- 
body: 

This is a website that was made with the Lektor quickstart. 

And it does not contain a lot of information. 


# **HEADING 1** 

## 2nd head 

_italic slated text_ 

~~mess~~ 

whatever text i need to write. 

https://twitter.com/codinghorror/status/686254714938200064 

Below is how I can embed in a post. 

http://www.youtube.com/watch?v=_lOT2p_FCvA 


So, that was what i wanted to say. 

के बाद अंतिम HTMLs पैदा करने, ऊपर पोस्ट की तरह कुछ उत्पन्न करेगा:

sample render

नोट

कृपया ध्यान दें कि यह सक्रिय विकास के तहत और पूर्व-अल्फा चरण से बाहर एक बहुत ही नवजात एक व्यक्ति परियोजना है। इसलिए, वहां कई प्रदाता या लिंक प्रारूप नहीं हैं। फिर भी। लेकिन, मुझे आशा है कि यह थोड़े समय में परिपक्व हो जाएगा।

4

यह अभी तक लेक्टर में प्रदान नहीं किया गया है। आमतौर पर लेक्टर के साथ, आप मार्कडाउन में अपनी सामग्री लिखते हैं। आप सीधे अपने मार्कडाउन में HTML एम्बेड कोड (यूट्यूब या जो भी सेवा से) पेस्ट कर सकते हैं। लेकिन एक प्लगइन अभी जारी किया गया है जिसे lektor-embed-x कहा जाता है जो आप चाहते हैं कि कर सकते हैं।

+0

अरे @DaCoEx कुछ और है जो मैं आपकी सहायता कर सकता हूं, या आप इस उत्तर को सही के रूप में स्वीकार करेंगे? –

3

यदि आप प्रवाह का उपयोग करने के ठीक हैं तो आप निश्चित रूप से अपने मीडिया के लिए प्रवाह ब्लॉक भी परिभाषित कर सकते हैं। यह व्यवस्थापक में प्रदर्शित विकल्पों के माध्यम से अधिक नियंत्रण की अनुमति देता है। उदाहरण के लिए एक बहुत ही सरल (कुरूप) यूट्यूब प्रवाह ब्लॉक ऐसा दिखाई दे सकता:

flowblocks/youtube.ini:

[block] 
name = Youtube 
button_label = Youtube Video 

[fields.ytid] 
label = Video ID 
type = string 
width = 1/2 

टेम्पलेट्स/ब्लॉक/youtube.html:

<iframe width="560" height="315" src="https://www.youtube.com/embed/{{this.ytid}}" frameborder="0" allowfullscreen></iframe> 

यह परिभाषित करता है आंतरिक नाम "यूट्यूब" के साथ "यूट्यूब वीडियो" नामक एक नया ब्लॉक प्रकार। उपयोगकर्ता को यूट्यूब वीडियो आईडी (पत्र/अंक के बाद? V = वीडियो यूआरएल में) इनपुट करना होता है जिसे तब टेम्पलेट में this.ytid संदर्भ के माध्यम से उपयोग किया जाता है।

इस तकनीक के साथ कई और विकल्प जोड़ना भी संभव है। एक लगभग पूर्ण विशेषीकृत उदाहरण नीचे है।

flowblocks/youtube.ini:

[block] 
name = Youtube 
button_label = Youtube Video 


[fields.ytid] 
label = Video ID 
type = string 
width = 1/2 

[fields.size] 
label = Video size 
type = select 
choices = 560x315, 640x360, 853x480, 1280x720 
choice_labels = 560 x 315, 640 x 360, 853 x 480, 1280 x 720 
default = 560x315 
width = 1/2 

[fields.rel] 
label = Show suggested videos when the video finishes 
type = boolean 
default = true 
width = 1/4 

[fields.controls] 
label = Show player controls 
type = boolean 
default = true 
width = 1/4 

[fields.showinfo] 
label = Show video title and player actions 
type = boolean 
default = true 
width = 1/4 

[fields.nocookie] 
label = Enable privacy-enhanced mode 
type = boolean 
width = 1/4 

टेम्पलेट्स/ब्लॉक/youtube.html:

<iframe width="{{ this.size.split("x")[0] }}" height="{{ this.size.split("x")[1] }}" src="https://www.youtube{{ "-nocookie" if this.nocookie }}.com/embed/{{this.ytid}}?{{ "rel=0&" if not this.rel}}{{ "controls=0&" if not this.controls }}{{ "showinfo=0" if not this.showinfo }}" frameborder="0" allowfullscreen></iframe> 

यह तो यह है, जबकि व्यवस्थापक में संपादन दिखाई देगा: Resulting Admin UI

हो सकता है कि उपयोगकर्ता को पूर्ण यूट्यूब यूआरएल पेस्ट करने की अनुमति देने के लिए कुछ स्मार्ट नियमित अभिव्यक्ति का उपयोग किया जा सके ताकि उन्हें वीडियो आईडी को हेक्टेयर से निकालने की आवश्यकता न हो nd। लेकिन मैंने अभी तक कोशिश नहीं की।

संबंधित मुद्दे