জেড: অনুচ্ছেদের অভ্যন্তরে লিঙ্কগুলি


118

আমি জ্যাডের সাথে কয়েকটি অনুচ্ছেদ লেখার চেষ্টা করছি, তবে যখন অনুচ্ছেদের ভিতরে লিঙ্ক রয়েছে তখন এটি কঠিন হয়ে পড়ে।

আমি যে সর্বোত্তমটি সামনে আসতে পারি এবং আমি ভাবছি যে এটির জন্য কম মার্কআপ করার কোনও উপায় আছে কিনা:

p
  span.
   this is the start
   of the para.
  a(href="http://example.com") a link
  span.
    and this is the rest of
    the paragraph.

উত্তর:


116

জেড ১.০-এর হিসাবে এটির সাথে মোকাবিলা করার একটি সহজ উপায় আছে, দুর্ভাগ্যক্রমে আমি সরকারী নথিতে এটি কোথাও খুঁজে পাচ্ছি না।

আপনি নিম্নলিখিত বাক্য গঠন সহ ইনলাইন উপাদান যুক্ত করতে পারেন:

#[a.someClass A Link!]

সুতরাং, এপি-তে একাধিক লাইনে না গিয়ে একটি উদাহরণ এটির মতো হবে:

p: #[span this is the start of the para] #[a(href="http://example.com") a link] #[span and this is the rest of the paragraph]

আপনি নেস্টেড ইনলাইন উপাদানগুলিও করতে পারেন:

p: This is a #[a(href="#") link with a nested #[span element]]

6
এটি এখানে নথিভুক্ত করা হয়েছে: "ট্যাগ ইন্টারপোলেশন" এর অধীনে jade-lang.com/references/interpolation
ওলান

94

আপনি একটি মার্কডাউন ফিল্টার ব্যবহার করতে পারেন এবং আপনার অনুচ্ছেদটি লিখতে মার্কডাউন (এবং অনুমোদিত HTML) ব্যবহার করতে পারেন।

:markdown
  this is the start of the para.
  [a link](http://example.com)
  and this is the rest of the paragraph.

বিকল্পভাবে মনে হচ্ছে আপনি কোনও সমস্যা ছাড়াই কেবল এইচটিএমএল আউটপুট করতে পারবেন:

p
  | this is the start of the para.
  | <a href="http://example.com">a link</a>
  | and this is he rest of the paragraph

আমি নিজে এ সম্পর্কে অবগত ছিলাম না এবং কেবল জেড কমান্ড লাইন সরঞ্জামটি ব্যবহার করে এটি পরীক্ষা করেছিলাম। মনে হচ্ছে ঠিক কাজ করছে।

সম্পাদনা: দেখে মনে হচ্ছে এটি পুরোপুরি জ্যাডে নিম্নলিখিতভাবে করা যেতে পারে:

p
  | this is the start of the para  
  a(href='http://example.com;) a link
  |  and this is the rest of the paragraph

প্যারা শেষে অতিরিক্ত স্থান ভুলে যাবেন না (যদিও আপনি এটি দেখতে পাচ্ছেন না। এবং এর মধ্যে | and। অন্যথায় এটি দেখতে এটির মতো হবে para.a linkandনাpara a link and


1
ধন্যবাদ। মার্কডাউন এটির জন্য উপযুক্ত। আমি দেখতে পেয়েছি যে এনপিএম ছাড় প্যাকেজটি সংকলিত হয়নি এবং এনপিএম মার্কডাউন (খাঁটি জেএস) প্যাকেজটি 0.5 রয়েছে (এটি ক্রোম থেকে সরানো হয়েছে, এটি ফাংশন হিসাবে নিয়মিত এক্সপ্রেশন ব্যবহার করে) রয়েছে। অন্য কারও পড়ার জন্য, সমাধানটি সম্ভবত "এনপিএম ইনস্টল মার্কডাউন-জেএস" এর পরে এর নাম পরিবর্তন করে "মার্কডাউন" করুন। (যেমনটি আমি পেয়েছি জাদে "মার্কডাউন-জেএস" তাকান না)) আমার জন্য কাজ করেছেন।
মাহমোফ

9
দেখে মনে হচ্ছে অদূর ভবিষ্যতে এটিকে দ্রবণের সাথে সম্বোধন করা হবে, যাতে আপনি এটি করতে পারেন p This is a paragraph #[a(href="#") with a link] in it। দেখুন github.com/visionmedia/jade/issues/936
উইল

3
আপনি যদি তৃতীয় বিকল্পটি ব্যবহার করেন তবে আপনি কোন সম্পাদকটি ব্যবহার করছেন সে সম্পর্কে সতর্ক হন, আমি সাব্লাইম ব্যবহার করছি এবং এটি অনুচ্ছেদের শেষে স্থানটি ডিফল্টরূপে সরিয়ে ফেলবে। শেষ পর্যন্ত, আমি উপরের বিকল্পটি বেছে নিয়েছি কারণ এটি সর্বনিম্ন বেদনাদায়ক ছিল।
রায়ান ইস্টব্রুক

মহাকাশটি কেবলমাত্র এটির কথা বললে ফাঁকা স্থানগুলি স্ট্রিপ করে। আমার আছে, তাই আমি &nbsp;প্রথম লাইনের শেষে একটি ব্যবহার করছি, তবে আমি ভবিষ্যতে আমার পদ্ধতির বিষয়ে বিতর্ক করছি।
ডেভ নিউটন

1
এই জেড 1.0 সমাধান হয়েছে, দেখুন stackoverflow.com/questions/6989653#answer-23923895
Emilien

45

এটি করার আরেকটি উপায়:

p
  | this is the start of the para
  a(href="http://example.com") a link
  | this is he rest of the paragraph.

4
এটি সবচেয়ে মার্জিত সমাধান।
সুপারলুমিনারি

3

অন্য একটি সম্পূর্ণ ভিন্ন পদ্ধতির, একটি ফিল্টার তৈরি করা হবে যা লিঙ্কগুলি প্রতিস্থাপনে প্রথমে ছুরিকাঘাত করেছে এবং তারপরে জেড দ্বিতীয়টি দিয়ে রেন্ডার করে

h1 happy days
:inline
  p this can have [a link](http://going-nowhere.com/) in it

উপস্থাপন করে:

<h1>happy days</h1><p>this can have <a href='http://going-nowhere.com/'>a link</a> in it</p>

সম্পূর্ণ কার্যকারী উদাহরণ: index.js (নোডেজ দিয়ে চালানো)

var f, jade;

jade = require('jade');

jade.filters.inline = function(txt) {
  // simple regex to match links, might be better as parser, but seems overkill
  txt = txt.replace(/\[(.+?)\]\((.+?)\)/, "<a href='$2'>$1</a>");
  return jade.compile(txt)();
};

jadestring = ""+ // p.s. I hate javascript's non-handling of multiline strings
  "h1 happy days\n"+
  ":inline\n"+
  "  p this can have [a link](http://going-nowhere.com/) in it"


f = jade.compile(jadestring);

console.log(f());

আরও সাধারণ সমাধানটি জেডের মিনি সাব-ব্লকগুলিকে একটি অনন্য ব্লকে (সম্ভবত কোনওরকম কিছু দ্বারা চিহ্নিত করা ${jade goes here}) রেন্ডার করে , তাই ...

p some paragraph text where ${a(href="wherever.htm") the link} is embedded

এটি উপরের মতো ঠিক একইভাবে প্রয়োগ করা যেতে পারে।

সাধারণ সমাধানের কার্যকারী উদাহরণ:

var f, jade;

jade = require('jade');

jade.filters.inline = function(txt) {
  txt = txt.replace(/\${(.+?)}/, function(a,b){
    return jade.compile(b)();
  });
  return jade.compile(txt)();
};

jadestring = ""+ // p.s. I hate javascript's non-handling of multiline strings
  "h1 happy days\n"+
  ":inline\n"+
  "  p this can have ${a(href='http://going-nowhere.com/') a link} in it"


f = jade.compile(jadestring);

console.log(f());

1
সমাধান হিসাবে এটি বেশ জটিল। এখন আরও সহজ উপায় আছে।
জেগালার্ডো


3

যদি আপনার লিঙ্কগুলি কোনও ডেটা উত্স থেকে আসে তবে আপনি ব্যবহার করতে পারেন:

  ul
    each val in results
      p
        | blah blah 
        a(href="#{val.url}") #{val.name}
        |  more blah

বিরক্তি দেখুন


2

সম্পাদনা: এই বৈশিষ্ট্যটি প্রয়োগ করা হয়েছিল এবং ইস্যু বন্ধ হয়ে গেছে, উপরের উত্তরটি দেখুন।


জাদে এই বৈশিষ্ট্যটি যুক্ত করতে আমি একটি সমস্যা পোস্ট করেছি

https://github.com/visionmedia/jade/issues/936

এটি বাস্তবায়নের সময় নেই যদিও আরও +1 সাহায্য করতে পারে!


2
এই সমস্যাটি তৈরির জন্য @ jpillora কে অনেক ধন্যবাদ, যা এই অন্তর্নিহিত বৈশিষ্ট্যটি বাস্তবায়িত হয়ে শেষ হয়েছিল।
এমিলিন

1

এটিই আমি নিয়ে আসতে পারি সেরা

-var a = function(href,text){ return "<a href='"+href+"'>"+text+"</a>" }

p this is an !{a("http://example.com/","embedded link")} in the paragraph

উপস্থাপন করে ...

<p>this is an <a href='http://example.com/'>embedded link</a> in the paragraph</p>

ঠিক আছে, তবে কিছুটা হ্যাক লাগছে - এর জন্য একটি বাক্য গঠন থাকতে হবে!


0

আমি বুঝতে পারি নি যে জেডের জন্য প্রতি ট্যাগ প্রতি লাইন প্রয়োজন। আমি ভেবেছিলাম আমরা জায়গা বাঁচাতে পারি। যদি এটি << li> a [শ্রেনী = "এমমেট"] {পাঠ্য understood বোঝা যায় তবে আরও ভাল


0

আমাকে সরাসরি একটি লিঙ্কের পিছনে একটি পিরিয়ড যুক্ত করতে হয়েছিল:

This is your test [link].

আমি এটি এর মতো সমাধান করেছি:

label(for="eula").lbl.lbl-checkbox.lbl-eula #{i18n.signup.text.accept_eula}
    | <a href="#about/termsandconditions" class=".lnk.lnk-eula">#{i18n.signup.links.eula}</a>.

0

ড্যানিয়েল বাউলিগের পরামর্শ অনুসারে, গতিশীল প্যারামগুলির সাথে নীচে ব্যবহৃত

| <a href=!{aData.link}>link</a>

0

দেখা যাচ্ছে যে (এখন কমপক্ষে) একটি নিখুঁত সহজ বিকল্প রয়েছে

p Convert a .fit file using <a href="http://connect.garmin.com/"> Garmin Connect's</a> export functionality.

2
যদি সমস্যার প্রথম চিহ্নে আপনাকে এইচটিএমএল-এ ডুব দিতে হয় তবে প্রিপ্রোসেসর ব্যবহারের উদ্দেশ্যটি হতাশ করে।
সুপারলুমিনারি

2
সম্মত তবে প্রতিবারই যখন আপনাকে একটি ইনলাইন ট্যাগ যুক্ত করতে হবে তখনই আপনি কোনও পাইপ এবং নতুন লাইন ব্যবহার করেন আমাদের পক্ষে আদর্শভাবে আদর্শ। জেডে নতুন তবে এটি বড় বাদ পড়ে বলে মনে হচ্ছে
সাইমন এইচ

2
আমিও, আমি এইচএমএল থেকে এসেছি যেখানে একটি ট্যাগের সাথে% এর উপসর্গ করা হয়। জেড যদিও অনেক সুন্দর।
সুপারলুমিনারি


-1

সবচেয়ে সহজ জিনিস;) তবে আমি কয়েক সেকেন্ডের জন্য এটি নিজেই লড়াই করে যাচ্ছিলাম। যাইহোক, আপনাকে "@" সাইন -> জন্য একটি এইচটিএমএল সত্তা ব্যবহার করতে হবে &#64; যদি আপনি কোনও লিঙ্ক অন্তর্ভুক্ত করতে চান তবে আসুন আপনার / কিছু ইমেল ঠিকানাটি এটি ব্যবহার করুন:

p
    a(href="mailto:me@myemail.com" target="_top") me&#64;myemail.com
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.