আমি কি মার্কডাউনে 'টার্গেট = "_ ফাঁকা" "দিয়ে লিঙ্কগুলি তৈরি করতে পারি?


460

মার্কডাউনে একটি লিঙ্ক তৈরি করার কোনও উপায় আছে যা একটি নতুন উইন্ডোতে খোলে? যদি তা না হয় তবে আপনি কী সিনট্যাক্সটি এটি করার পরামর্শ দিচ্ছেন। আমি এটি ব্যবহার করি মার্কডাউন সংকলনে যোগ করব। আমি মনে করি এটি একটি বিকল্প হওয়া উচিত।


উত্তরে যেমন উল্লেখ করা হয়েছে, এটি মার্কডাউনের কোনও বৈশিষ্ট্য নয়। লিঙ্ক আউট করতে যদি আপনি এটি একটি ডিফল্ট সাইটওয়াইড করতে চান তবে ডেভিড মোরের উত্তর রয়েছে । অথবা আপনি যদি কেবল এটি একটি উদাহরণে করতে চান, তবে ম্যাচুর উত্তর বলে যে আপনাকে অবশ্যই এটি HTML এ লিখতে হবে।
জেগালার্ডো


আপনি যা করছেন সে সম্পর্কে আপনার প্রশ্ন সুনির্দিষ্ট নয়, তবে আপনার তৈরি লিঙ্কটি যখন অন্য কোনও ডোমেনের দিকে ইশারা করছে এবং কোনও নতুন ট্যাবে এটি খুলবে তখন কিছু মার্কডাউন ইঞ্জিন বা ব্রাউজারগুলি (কোনটি নিশ্চিত নয়) তা চিনতে পারে। আমার জন্য, এমন সময় আসে যখন সরাচ্ছেন sথেকে https:কার্যকারিতা আমি চাই পেতে যথেষ্ট।
জোশ গুস্ট

উত্তর:


377

যতক্ষণ না মার্কডাউন সিনট্যাক্স সম্পর্কিত, আপনি যদি বিশদটি পেতে চান তবে আপনাকে কেবল HTML ব্যবহার করতে হবে।

<a href="http://example.com/" target="_blank">Hello, world!</a>

আমি দেখেছি বেশিরভাগ মার্কডাউন ইঞ্জিনগুলি সরল পুরানো এইচটিএমএলকে মঞ্জুরি দেয়, ঠিক এমন পরিস্থিতিতে যেমন একটি জেনেরিক পাঠ্য মার্কআপ সিস্টেম কেবল এটি কাটবে না। (উদাহরণস্বরূপ স্ট্যাকওভারফ্লো ইঞ্জিন।) তারপরেই তারা পুরো আউটপুটটি এইচটিএমএল হাইটলিস্ট ফিল্টারের মাধ্যমে চালায়, নির্বিশেষে, কেবল মার্কডাউন-ডকুমেন্টে সহজেই এক্সএসএস আক্রমণ থাকতে পারে। যেমন, আপনি বা আপনার ব্যবহারকারীরা যদি _blankলিঙ্কগুলি তৈরি করতে চান তবে তারা সম্ভবত এখনও তা করতে পারেন।

যদি আপনি এমন বৈশিষ্ট্যটি ব্যবহার করতে যাচ্ছেন যা আপনি প্রায়শই ব্যবহার করেন তবে এটি আপনার নিজস্ব বাক্য গঠনটি বোধগম্য হতে পারে তবে এটি সাধারণত একটি গুরুত্বপূর্ণ বৈশিষ্ট্য নয়। যদি আমি সেই লিঙ্কটি একটি নতুন উইন্ডোতে চালু করতে চাই তবে আমি এটি নিজেই ctrl- ক্লিক করব, ধন্যবাদ।


19
ইয়া কি জানি? আমি আপনার সাথে একমত এবং আলেক্স । আমি আদৌ ব্যবহার না করার সিদ্ধান্ত নিয়েছি _blank। জিনিসগুলিকে একটি ব্রাউজারে রাখাই ভাল ব্যবহারকারীর অভিজ্ঞতা। এগুলি কেবল ফিরে আসতে বা কমান্ড-ক্লিক করতে পারে (ম্যাক ব্যবহারকারী এখানে :)), যেমন আপনি বলেছেন।
ma11 শেই 28

1
আমার পৃষ্ঠাটিতে জাভাস্ক্রিপ্ট চালানো আছে যা আমার ডোমেনের বাইরের সমস্ত লিঙ্কে _ব্ল্যাঙ্ক যুক্ত করে। যেমন @alex এর পরবর্তী উত্তর রয়েছে
ডেভিড সিলভা স্মিথ

3
আমি নিম্নলিখিত সংশ্লেষটি (স্পষ্ট এবং ইনলাইন পঠনযোগ্য হওয়ার আকাঙ্ক্ষায়) [Visit this page](http::/link.com(প্রস্তাব করব: খোলার ধারণাটি পাওয়ার জন্য ।
অগস্টিন রিডিংগার

4
সাধারণ টার্গেট = "_ ফাঁকা" বিপজ্জনক হতে পারে! ট্যাগটিতে rel = "noopener" যুক্ত করুন! ( Sites.google.com/site/bughunteruniversity/nonvuln/... )
ম্যাক্স Vyaznikov

1
@ ম্যাক্সভিয়াজনিকভ আকর্ষণীয়। আপনি কি মনে করেন যে লগইন করার জন্য ব্রাউজারগুলি প্রান্তের পপ আপ উইন্ডোটির উপরে একটি সরবরাহ সরবরাহ করলে নিরাপদ হবে? "লুকালাইক" ওয়েব পৃষ্ঠাগুলির দ্বারা তৈরি স্পুফড এবং নকল লগইন ইউআই থেকে ওয়েবসাইটগুলির জন্য লগইন ইউআই আলাদা করুন। এটি এখন আরও বেশি সম্ভব হতে পারে যেখানে আগে এটি আরও বেশি কঠিন ছিল।
1.21 গিগাওয়াট

350

ক্র্যামডাউন এটি সমর্থন করে। এটি স্ট্যান্ডার্ড মার্কডাউন সিনট্যাক্সের সাথে সামঞ্জস্যপূর্ণ তবে এর অনেকগুলি এক্সটেনশন রয়েছে। আপনি এটি এর মতো ব্যবহার করবেন:

[link](url){:target="_blank"}

7
এটি ম্যাকের
মার্কডাউন

48
জেকিলের সাথে দুর্দান্ত কাজ করে!
ভোলাগব্বর

1
Kramdown সিনট্যাক্স: [লিংক নাম] (URL_LINK) {: টার্গেট = "_ blank"} HTML- এ kramdown অনলাইন সম্পাদক ব্যবহার করে পার্স করা যেতে পারে: http://trykramdown.herokuapp.com/ আমি এটা ব্যবহার কারণ আমি ইতিমধ্যে বেশ কিছু ছিল ক্র্যামডাউন রেফারেন্স, এবং সেগুলি পুনরায় টাইপ করা এড়াতে চেয়েছিল।
পূর্বসূরী

4
এটি ডিফল্ট হিসাবে সেট করার জন্য জেকিলের কোনও উপায় আছে কি? আমি আমার ব্লগ পোস্টগুলির সমস্ত লিঙ্কগুলি খুলতে চাইtarget="_blank"
অহিরসবার্গ

10
এটি কাজ করে না। এটি কেবলমাত্র পাঠ্য হিসাবে {: লক্ষ্য = "_ ফাঁকা"। রেন্ডার করে।
বেনি 3

113

আমি মনে করি না যে একটি মার্কডাউন বৈশিষ্ট্য আছে।

যদিও জাভাস্ক্রিপ্টের সাহায্যে স্বয়ংক্রিয়ভাবে আপনার নিজের সাইটের বাইরে যে লিঙ্কগুলি লিঙ্কগুলি খুলতে চান সেখানে অন্যান্য বিকল্প থাকতে পারে।

var links = document.links;

for (var i = 0, linksLength = links.length; i < linksLength; i++) {
   if (links[i].hostname != window.location.hostname) {
       links[i].target = '_blank';
   } 
}

jsFizz

আপনি যদি jQuery ব্যবহার করেন তবে এটি একটি সহজ সরল ...

$(document.links).filter(function() {
    return this.hostname != window.location.hostname;
}).attr('target', '_blank');

jsFizz


1
আমি আপনার সাথে একমত কিন্তু এই উপলক্ষে যে আপনি যদি একটি আইফ্রেমে আছেন তবে আপনাকে লিঙ্কটি দিয়ে ফ্রেমের বাইরে বিস্ফোরণ করতে হবে।
ডেভিড মোর

2
আমি কেবলমাত্র যখনই আমি একটি নতুন উইন্ডোতে লোকজনকে বাধ্য করি তখনই আমি খুঁজে পাই যখন আমি বাক্যটির মধ্য দিয়ে অর্ধেকটা বাইরের কোথাও সংযোগ স্থাপন করি এবং প্রবাহকে বাধা না দিয়ে আমি আমার মন্তব্যের জন্য উত্স সরবরাহ করতে চাই। এই জেএস স্নিপেট উদ্দেশ্যটির জন্য আদর্শ - ধন্যবাদ,
উপচে পড়া

14
আমি মনে করি জ্যাকব নীলসনের উক্তিটি এখানে আর প্রয়োগ হয় না। তিনি নতুন উইন্ডো খোলার বিষয়ে অভিযোগ করেছেন তবে আজকাল টার্গেট = "_ ফাঁকা" পরিবর্তে একটি নতুন ট্যাবে খোলে। অন্যান্য ডোমেনের লিঙ্কগুলি নতুন ট্যাবগুলিতে না খোলার সময় আমি ব্যক্তিগতভাবে এটি পছন্দ করি না।
আলেকজান্ডার রেকস্টাইনার

3
এছাড়াও: কারণ বলা Jakob Nielsen says you shouldn't do thatএকটি ভয়ানক যুক্তি।
ওলা টুভসন

2
আমি এখানে যুক্ত করতে যাচ্ছি যে এটি একটি বিশ্বব্যাপী সমাধান হিসাবেও পছন্দনীয়। এটি আপনার মার্কডাউনকে পরিষ্কার রাখে যা মার্কডাউনের মূল বিষয়।
অ্যাডাম মাইকেল উড

47

মার্কডাউন -২.২.২ সহ, আপনি এটি ব্যবহার করতে পারেন:

[link](url){:target="_blank"}

2
আমি এটি চেষ্টা করেছিলাম এবং এটি আমার পক্ষে কার্যকর হয়নি।
জাঙ্গো

5
জ্যাকিল ভি ২.৪.০ এর সাথে কাজ করে (এটিও পূর্ববর্তী সংস্করণগুলির সাথেও কাজ করতে পারে)
নিক্সুচ

5
এটি ক্র্যামডাউন (এবং জ্যাকিল যেমন ক্র্যামডাউন ব্যবহার করে, এটি জ্যাকিলের সাথে কাজ করে)।
z3ntu

1
গিটল্যাবে এই সিনট্যাক্সটি কাজ করতে পারে বলে মনে হচ্ছে না। আমি নিশ্চিত নই যে বর্তমানে মার্কডাউনয়ের কোন সংস্করণ ব্যবহার হচ্ছে।
রকিন

এটি কি ডিফল্ট করার কোনও উপায় আছে যাতে আমাকে প্রতিটি লিঙ্কের জন্য এটি নির্দিষ্ট করতে না হয়?
কণেল

8

একটি বিশ্বব্যাপী সমাধান হ'ল <base target="_blank"> আপনার পৃষ্ঠার <head>উপাদানটি। এটি কার্যকরভাবে প্রতিটি অ্যাঙ্কর উপাদানকে একটি ডিফল্ট লক্ষ্য যুক্ত করে। আমি আমার ওয়ার্ডপ্রেস-ভিত্তিক ওয়েব সাইটে সামগ্রী তৈরি করতে মার্কডাউন ব্যবহার করি এবং আমার থিম কাস্টমাইজার আমাকে সেই পৃষ্ঠাটি প্রতিটি পৃষ্ঠার শীর্ষে ইনজেক্ট করতে দেয়। যদি আপনার থিমটি এটি না করে তবে একটি প্লাগ-ইন রয়েছে


8

আমি গ্রাভ সিএমএস ব্যবহার করছি এবং এটি পুরোপুরি কাজ করে:

শরীর / বিষয়বস্তু:
Some text[1]

শরীর / রেফারেন্স:
[1]: http://somelink.com/?target=_blank

কেবলমাত্র নিশ্চিত হয়ে নিন যে টার্গেট অ্যাট্রিবিউটটি প্রথমে পাস হয়েছে, যদি লিঙ্কটিতে অতিরিক্ত বৈশিষ্ট্যগুলি থাকে, তবে রেফারেন্স URL এর শেষে তাদের অনুলিপি করুন / আটকান।

সরাসরি লিঙ্ক হিসাবেও কাজ করুন:
[Go to this page](http://somelink.com/?target=_blank)


রেফারেন্সের জন্য, এখানে প্রাসঙ্গিক ডকুমেন্টেশন অধ্যায়
domsson

7

ভূতের মার্কডাউন ব্যবহারের জন্য:

[Google](https://google.com" target="_blank)

এটি এখানে পেয়েছে : https://cmatskas.com/open-external-links-in-a-new-window-ghost/


1
আমি আপনার সমাধান পছন্দ। যেহেতু আমি এটি বিভিন্ন কনফিগারেশন দিয়ে চেষ্টা করেছি দেখে মনে হচ্ছে এটি কেবল ইনলাইন লিঙ্কিংয়ে কাজ করে । রেফারেন্স লিঙ্কগুলির সাথে লিঙ্ক করার কোনও উপায় আছে । ভালো কিছু: [open new window][1] \n [1]: (https://abc.xyz" target="_blank)। হতে পারে আমি কিছু ভুল করেছি, বা এইভাবে কাজ করাটা মেন্ট নয়?
মিঃআইসাকস

7

সুতরাং, এটি একেবারেই সত্য নয় যে আপনি কোনও মার্কডাউন ইউআরএলে লিঙ্ক বৈশিষ্ট্য যুক্ত করতে পারবেন না। বৈশিষ্ট্যগুলি যুক্ত করতে, অন্তর্নিহিত মার্কডাউন পার্সারটি ব্যবহৃত হচ্ছে এবং তাদের এক্সটেনশনগুলি কী তা পরীক্ষা করে দেখুন।

বিশেষত, pandocসক্ষম করার জন্য একটি এক্সটেনশন রয়েছে link_attributes, যা লিঙ্কটিতে মার্কআপের অনুমতি দেয়। যেমন

[Hello, world!](http://example.com/){target="_blank"}
  • থেকে আসছে তাদের জন্য আর (যেমন ব্যবহার rmarkdown, bookdown, blogdownএবং তাই), এই সিনট্যাক্স যদি আপনি চান হয়।
  • ব্যবহার করছেন না তাদের জন্য আর , আপনি করার প্রয়োজন হতে পারে এক্সটেনশান সক্ষম করার কলে pandocসঙ্গে+link_attributes

দ্রষ্টব্য: এটি kramdownপার্সারের সমর্থনের চেয়ে পৃথক , যা উপরের স্বীকৃত উত্তরগুলির মধ্যে একটি। বিশেষত, নোট করুন যে ক্র্যামডাউন পান্ডোকের থেকে পৃথক হওয়ায় এটি একটি কোলন প্রয়োজন :- কোঁকড়া বন্ধনী শুরুতে - {}যেমন

[link](http://example.com){:hreflang="de"}

নির্দিষ্টভাবে:

# Pandoc
{ attribute1="value1" attribute2="value2"}

# Kramdown
{: attribute1="value1" attribute2="value2"}
 ^
 ^ Colon

এটি আমাদের কাস্টম মার্কডাউন পরিবেশে আমার জন্য কাজ করেছে। ধন্যবাদ!
ক্লিভিস


6

আমার প্রকল্পে আমি এটি করছি এবং এটি ভাল কাজ করে:

[Link](https://example.org/ "title" target="_blank")

লিংক

তবে সমস্ত পার্সার্স আপনাকে এটি করতে দেয় না।


প্রায়শই কাজ করে, তবে আপনার উদাহরণটি নতুন অ্যাটর্স হিসাবে উত্স হিসাবে নয়, শিরোনাম অ্যাটর্কে এনকোডযুক্ত url সহ রেন্ডার করে (উত্স দেখুন বা নোডটি এইচটিএমএল হিসাবে সম্পাদনা করুন): <a href="https://example.org/" rel="nofollow" title="title&quot; target=&quot;_blank">Link</a>
গ্রাহাম পি হিথ

6

এটি করার সহজ কোনও উপায় নেই এবং @ অ্যালেক্সের মত করে আপনাকে জাভাস্ক্রিপ্ট ব্যবহার করা দরকার বলে মনে করেছে। তার উত্তরটি সেরা সমাধান তবে এটি অনুকূলিত করার জন্য, আপনি কেবল পোস্ট-সামগ্রী লিঙ্কগুলিতে ফিল্টার করতে চাইতে পারেন।

<script>
    var links = document.querySelectorAll( '.post-content a' );  
    for (var i = 0, length = links.length; i < length; i++) {  
        if (links[i].hostname != window.location.hostname) {
            links[i].target = '_blank';
        }
    }
</script>

কোডটি আইই 8 + এর সাথে সামঞ্জস্যপূর্ণ এবং আপনি এটি আপনার পৃষ্ঠার নীচে যুক্ত করতে পারেন। মনে রাখবেন যে আপনি আপনার পোস্টের জন্য যে ক্লাসটি ব্যবহার করছেন তার "পোষ্ট-সামগ্রী একটি" পরিবর্তন করতে হবে।

যেমনটি এখানে দেখা হয়েছে: http://blog.hubii.com/target-_blank-for-links-on-ghost/


0

পিএইচপি ব্যবহার করে মার্কডাউন বাস্তবায়নের চেষ্টা করার সময় আমি এই সমস্যার মধ্যে পড়েছিলাম।

যেহেতু মার্কডাউন দিয়ে তৈরি ব্যবহারকারী তৈরি লিঙ্কগুলি একটি নতুন ট্যাবে খোলার প্রয়োজন তবে সাইটের লিঙ্কগুলি ট্যাবে থাকা দরকার আমি মার্কডাউন পরিবর্তন করেছি কেবলমাত্র একটি নতুন ট্যাবে খোলার লিঙ্কগুলি তৈরি করতে। সুতরাং পৃষ্ঠার সমস্ত লিঙ্ক লিঙ্ক আউট নয়, কেবল মার্কডাউন ব্যবহার করে।

মার্কডাউন-এ আমি সমস্ত লিঙ্ক আউটপুট পরিবর্তন করেছিলাম <a target='_blank' href="...">যা সন্ধান / প্রতিস্থাপন ব্যবহার করে যথেষ্ট সহজ ছিল।


0

আমি একমত নই যে এটি একটি ব্রাউজার ট্যাবে থাকা আরও ভাল ব্যবহারকারীর অভিজ্ঞতা। আপনি যদি চান যে লোকেরা আপনার সাইটে থাকতে পারে বা এই নিবন্ধটি পড়া শেষ করে ফিরে আসে তবে তাদের একটি নতুন ট্যাবে প্রেরণ করুন।

@ ডেভিডমোরের উত্তরে বিল্ডিং, আপনার জাভাস্ক্রিপ্টটি আপনার সাইটে ফেলে দিন এবং কেবলমাত্র বাহ্যিক লিঙ্কগুলিকে টার্গেটের সাথে লিঙ্কগুলিতে পরিণত করুন: _ব্ল্যাঙ্ক:

    <script type="text/javascript" charset="utf-8">
      // Creating custom :external selector
      $.expr[':'].external = function(obj){
          return !obj.href.match(/^mailto\:/)
                  && (obj.hostname != location.hostname);
      };

      $(function(){
        // Add 'external' CSS class to all external links
        $('a:external').addClass('external');

        // turn target into target=_blank for elements w external class
        $(".external").attr('target','_blank');

      })

    </script>

0

আপনি {[attr] = "[prop]"} ব্যবহার করে যে কোনও বৈশিষ্ট্য যুক্ত করতে পারেন

উদাহরণস্বরূপ [গুগল] ( http://www.google.com ) {লক্ষ্য = "_ ফাঁকা"}


0

সম্পূর্ণ অ্যালেক্সের উত্তর দেওয়া হয়েছে (ডিসেম্বর 13 '10)

এই কোডটি দিয়ে আরও একটি স্মার্ট ইঞ্জেকশন লক্ষ্য করা যেতে পারে:

/*
 * For all links in the current page...
 */
$(document.links).filter(function() {
    /*
     * ...keep them without `target` already setted...
     */
    return !this.target;
}).filter(function() {
    /*
     * ...and keep them are not on current domain...
     */
    return this.hostname !== window.location.hostname ||
        /*
         * ...or are not a web file (.pdf, .jpg, .png, .js, .mp4, etc.).
         */
        /\.(?!html?|php3?|aspx?)([a-z]{0,3}|[a-zt]{0,4})$/.test(this.pathname);
/*
 * For all link kept, add the `target="_blank"` attribute. 
 */
}).attr('target', '_blank');

(?!html?|php3?|aspx?)গ্রুপ কনস্ট্রাক্টে আরও এক্সটেনশন যুক্ত করে আপনি রেজিএক্সপ্যাক্স ব্যতিক্রমগুলি পরিবর্তন করতে পারেন (এই রেজিপেক্সটি এখানে বুঝতে পারেন: https://regex101.com/r/sE6gT9/3 )।

এবং jQuery সংস্করণ ছাড়াই নীচের কোডটি চেক করুন:

var links = document.links;
for (var i = 0; i < links.length; i++) {
    if (!links[i].target) {
        if (
            links[i].hostname !== window.location.hostname || 
            /\.(?!html?)([a-z]{0,3}|[a-zt]{0,4})$/.test(links[i].pathname)
        ) {
            links[i].target = '_blank';
        } 
    }
}

0

GNU সেড এবং মেক ব্যবহার করে শুধুমাত্র বাহ্যিক লিঙ্কগুলির জন্য স্বয়ংক্রিয়

যদি সমস্ত বাহ্যিক লিঙ্কগুলির জন্য কেউ যদি নিয়মিতভাবে এটি করতে চান তবে সিএসএস কোনও বিকল্প নয় । যাইহোক, sedএকবার মার্কডাউন থেকে (এক্স) এইচটিএমএল তৈরি হওয়ার পরে নিম্নলিখিত কমান্ডটি চালাতে পারে :

sed -i 's|href="http|target="_blank" href="http|g' index.html

এটিকে উপরের sedকমান্ডটি যুক্ত করে আরও স্বয়ংক্রিয় করা যেতে পারে makefile। বিশদগুলির জন্য, জিএনইউ দেখুন makeবা দেখুন কীভাবে আমি আমার ওয়েবসাইটে এটি করেছি


-3

এটি আমার পক্ষে কাজ করে: [পৃষ্ঠা লিঙ্ক] (আপনার ইউআরএল এখানে "(টার্গেট | _ব্ল্যাঙ্ক)")

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.