ওয়াইএএমএলে সূচক অক্ষরগুলি (যেমন: বা -) এড়াতে কীভাবে


241

একটি কনফিগার ফাইলে, আমার কাছে একটি কী রয়েছে যাতে আমি একটি URL নির্ধারণ করতে চাই। সমস্যাটি হ'ল ওয়াইএএমএল ব্যাখ্যা করে: এবং - অক্ষরগুলি ম্যাপিং বা তালিকাগুলি তৈরি করে তোলে তাই লাইনটিতে এটির একটি সমস্যা রয়েছে

url: http://www.example-site.com/

(উভয়ই কোলন অনুসরণ করে এইচটিপি এবং মাঝখানে হাইফেনের কারণে)

':' এবং '-' পালানোর কোনও সুস্পষ্ট উপায় আছে কি? অথবা এটি কেবল পুরো জিনিসটি একক উদ্ধৃতিতে রেখে দিনটিকে কল করার জন্য কাজ করবে?


এছাড়াও দেখুন: en.wikipedia.org/wiki/Delimiter#Delimiter_collision
dreftymac

উত্তর:


232

দর:

"url: http://www.example-site.com/"

স্পষ্ট করার জন্য, আমি "মানটি মূল্য" বোঝাতে চাইছিলাম এবং মূলত পুরো জিনিসটিই মান বলে ভেবেছিলাম। যদি http://www.example-site.com/মান হয় তবে কেবল এটির মতো উদ্ধৃতি দিন:

url: "http://www.example-site.com/"

30
এটি পার্সার উপর নির্ভর করে, দৃশ্যত। এটি জ্যাকিল ওয়াইএএমএল-এর সাথে কাজ করে নি।
টোটোমেট

1
YAMLDotNet এছাড়াও উদ্ধৃতি রেন্ডার করে।
Dr1Ku

ভাল কিছু না? কারণ তারপরে উদ্ধৃতিগুলি নিজেরাই পালাতে হবে, যা সমস্যার সমাধান করে না তবে কেবল এটিকে এগিয়ে নিয়ে যায় ...
অগাস্টিন রিডঞ্জার

2
ঠিক আছে, মার্কডাউনের মতো ত্রুটি-প্রমাণ দলিল থাকা আরও শীতল হবে, সুতরাং দলের নন-টেক প্রযুক্তিগত ছেলেরা এটি ভেঙে ফেলার কোনও ঝুঁকি ছাড়াই এটি সম্পাদনা করতে পারে (যেমন রেলগুলিতে লোকাল ফাইলগুলি)!
আগস্টিন রিডিংগার

1
@ivan_pozdeev: উদ্ধৃতিগুলি পুরো স্ট্রিংয়ের আশেপাশে রয়েছে। - 'PS4="+(${BASH_SOURCE}:${LINENO}): ${FUNCNAME[0]:+${FUNCNAME[0]}(): }"'
রাই-

182

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

text: >
    Op dit plein stond het hoofdkantoor van de NIROM: Nederlands Indische 
    Radio Omroep

একটি পাইপ নিউলাইনগুলি সংরক্ষণ করে, একটি জিটি-সাইন নীচের সমস্ত লাইনকে একটি দীর্ঘ স্ট্রিংয়ে রূপান্তর করে।


6
... এবং শেষে একটি নতুন লাইন যুক্ত করা হয়, যা সাধারণত আপনি চান তা নয়।
সমমানের

51
@Equaeghe: আপনি এটি প্রতিরোধ করতে >-বা ব্যবহার করতে পারেন |-
dtoux

4
এটি একটি দুর্দান্ত সমাধান। আপনার পাঠ্যের অন্যান্য অক্ষরগুলি থেকে পালানো সম্পূর্ণ এড়ানো যায়। +++ 90000 পয়েন্ট
বেনলিচ

কোনওভাবে মাল্টিলিনের তালিকা পাওয়া সম্ভব? আমি চেষ্টা করেছি - >কিন্তু প্রথমগুলির পরে আইটেমগুলি উপেক্ষা করা হচ্ছে।
ffghfgh

3
@ffghfgh - ইউআরজি! মন্তব্যে কোডটি কীভাবে সঠিকভাবে ফর্ম্যাট করা যায় তা আমি বুঝতে পারি না এবং এখন আমি মূল মন্তব্যটি সম্পাদনা করতে পারি না। মূলত, আমি পাইপের সাথে তালিকার আইটেমটি ব্যবহার করেছিলাম: - |এবং তারপরে একটি নতুন লাইনে আমি তালিকার আইটেমের পাঠ্যকে যুক্ত করেছি যাতে প্রথম অক্ষরটি পাইপের সাথে সারিবদ্ধ থাকে। আমি আশা করি এটি সাহায্য করে, এটি আমার জন্য একটি রেল ৪.২ স্থানীয় ফাইলে কাজ করেছিল।
স্পেকম্যান

51

ওয়াইএএমএল অনুমান অনুসারে, দুজনেরও সমস্যা হওয়া উচিত :নয় -:এর পরে স্থান সহ কেবল একটি মূল বিভাজক এবং -এটির পরে স্পেস সহ একটি লাইনের শুরুতে কেবল একটি অ্যারে সূচক।

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

- url: 'http://www.example-site.com/'
- url: "http://www.example-site.com/"
- url:
    http://www.example-site.com/
- url: >-
    http://www.example-site.com/
- url: |-
    http://www.example-site.com/

তবে " সরল শৈলী " এ স্পষ্টভাবে পালানোর কোনও রূপ নেই ।


1
ট্র্যাভিসিসিআইয়ের লাইনটারটি অস্বাভাবিকভাবে কলোনগুলি সম্পর্কে অভিযোগ করেছে - lint.travis-ci.org
koppor

ট্র্যাভিস সিআই-র জন্য, একক উদ্ধৃতিতে কলোনগুলি ঠিক আছে বলে মনে হয়।
মালভাইনাস

30

উক্তি, তবে আমি তাদের কেবলমাত্র মূল্যের উপরে পছন্দ করি:

url: "http://www.example.com/"

এগুলি পুরো লাইনে রেখে দেওয়া দেখে মনে হচ্ছে এটি সমস্যার কারণ হতে পারে।


21

জেকিল-এ ব্যবহৃত YAML পার্সারের সাথে কাজ করে এমন আরেকটি উপায়:

title: My Life: A Memoir

স্থানগুলি অনুসরণ না করে কলোন অন্যদিকে জ্যাকিলের ওয়াইএএমএল পার্সারকে বিরক্ত করবে বলে মনে হয় না। উভয়ই ড্যাশ করবেন না।


… চরিত্র সত্তা কি ওয়্যামের অংশ? এবং জেকিল আসলে ওয়াইএএমএল ব্যবহার করে?
রাই-

জ্যাকিল এটি ব্যবহার করার দাবি করেছেন: jekyllrb.com/docs/frontmatter আমি YAML স্পেসে চরিত্র সত্তা সম্পর্কে কিছুই খুঁজে পাচ্ছি না, তাই আমার সন্দেহ হয় জ্যাকিল ক্ষমতাসীন, তবে আমি মনে করি যে এই উত্তরটি লোকেরা গুগলিং "ইয়ামাল এ্যাসেপ কোলন" এর মতো ভাল উপকারে এসেছে like আমি ;-)
টোটোমেট

4

যদি আপনি @ConfigurationPropertiesস্প্রিং বুট 2 এর সাহায্যে কলোনসযুক্ত কীগুলির সাহায্যে মানচিত্রগুলি ইনজেক্ট করতে ব্যবহার করেন তবে আপনার উদ্ধৃতিগুলির অভ্যন্তরে বর্গাকার বন্ধনী ব্যবহার করে অতিরিক্ত মাত্রায় পলায়নের প্রয়োজন কারণ বসন্ত কেবলমাত্র অক্ষর এবং '-' অক্ষরগুলিকে অনুমতি দেয়, বাকী অংশগুলি সরিয়ে ফেলতে। আপনার নতুন কীটি দেখতে এরকম হবে:

"[8.11.32.120:8000]": GoogleMapsKeyforThisDomain

রেফারেন্সের জন্য এই গিথুব সমস্যাটি দেখুন ।


এটি আমার বর্তমান ব্যবহারের ক্ষেত্রে সবচেয়ে সহায়ক। ধন্যবাদ
আনন্দ

2

আমি আমার আজুর ডিভস কমান্ড লাইনটি কাজ করার চেষ্টা করে এখানে এসেছি। আমার পক্ষে যে জিনিসটি কাজ করেছিল তা হ'ল পাইপ ( |) চরিত্রটি ব্যবহার করা । ব্যবহার করে >কাজ হয়নি।

উদাহরণ:

steps:
- task: CmdLine@2
  inputs:
    script: |
      echo "Selecting Mono version..."
      /bin/bash -c "sudo $AGENT_HOMEDIRECTORY/scripts/select-xamarin-sdk.sh 5_18_1"
      echo "Selecting Xcode version..."
      /bin/bash -c "echo '##vso[task.setvariable variable=MD_APPLE_SDK_ROOT;]'/Applications/Xcode_10.2.1.app;sudo xcode-select --switch /Applications/Xcode_10.2.1.app/Contents/Developer"

আমি একই জিনিসটি ব্যবহার করেছি .gitlab-ci.yml, তবে যতক্ষণ না আমার পাইপের দরকার পড়ে '|' স্ক্রিপ্টে - এটি এতে নিঃশব্দে ব্যর্থ হয় :(
ডালিবোর
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.