Org মোড - পেস্ট করার সময় সরাসরি সমৃদ্ধ এইচটিএমএলকে পার্সিং করবেন?


12

বর্তমানে, মত সরঞ্জাম notetaking জন্য Evernoteএবং Quiver, আমি সরাসরি HTML সামগ্রী আমার প্রিয় ব্রাউজার থেকে অনুলিপি করতে পারেন এবং তারপর তাদের অ্যাপ্লিকেশন পেস্ট, সমস্ত + লিঙ্ক সংরক্ষিত ফর্ম্যাটিং সহ। তবে অরগমোডে মনে হচ্ছে সমস্ত ফর্ম্যাটিং তথ্য হারিয়ে গেছে।

আমি কাউকে ওয়েব ব্রাউজ করতে এবং এর মাধ্যমে সামগ্রীটি অনুলিপি করতে পরামর্শ দিতেewweww-org দেখেছি । তবে এটি সত্যিই ক্লান্তিকর (আমি মনে করি না ewwআজকাল আধুনিক ব্রাউজারগুলির পরিবর্তে প্রচুর লোক ওয়েব ব্রাউজ করছেন । আমাকে আবার সেই লিঙ্কটি খুলতে ewwহবে এবং অনুলিপিটি করতে হবে, কখনও কখনও উল্লেখ করার মতো ewwনয় বিষয়বস্তু সুন্দরভাবে রেন্ডার করুন)।

Emacsপেস্ট করার সময় অনুলিপি করা এইচটিএমএলকে সরাসরি পার্স করা সম্ভব ? এমনকি যদি এখনও এর জন্য কোনও বিদ্যমান সরঞ্জাম নেই, তবে এটি কী তৈরি করা সম্ভব?

এটি প্রায় একমাত্র জিনিস যা আমাকে orgmodeঅন্যান্য নোটকেটিং সরঞ্জামগুলি থেকে স্যুইচ করা থেকে বিরত করে।


"সরাসরি অনুলিপি করা এইচটিএমএলকে পার্স করুন"
মানকফ

@ মানকফ ঠিক আছে আমার ধারণা আমি আমার বিবরণে যথেষ্ট পরিষ্কার ছিলাম না। আমি যা চাই তা উদাহরণস্বরূপ যদি মূল এইচটিএমএলটি <b>text</b>আমার পরে থাকে তবে Cmd + Cএটি আটকানোর সময় কোনও উপায়ে রূপান্তর করা *text*যায় org mode। বা যদি না হয়, অন্তত মূল HTML কোডটি সংরক্ষণ করুন যাতে আমি তাদের মূল যথাযথ ফর্ম্যাটে পরে দেখতে পারি। বর্তমান পরিস্থিতি একরকম কেবল সরল পাঠ্যই রেন্ডার হবে।
এক্সজি

উদাহরণস্বরূপ, আমাদের এখানে আছে <p>I've seen somebody <a href="http://emacs.stackexchange.com/q/7171/115">suggest using <code>eww</code> to browse the web and copy the content via <code>eww-org</code></a>. However that is really tedious(I don't think there would be a lot of people browsing the web using <code>eww</code> instead of modern browsers nowadays. I'll have to open that link again in <code>eww</code> and do the copying, not to mention sometimes <code>eww</code> doesn't render the contents nicely). </p>। যদি আমি এই অনুচ্ছেদটি অনুলিপি করি তবে আমি এর ফর্ম্যাটটি পুনরুত্পাদন করতে সক্ষম হতে চাই orgmode
এক্সজি

1
@ মানকফ ওয়ান্ডারফুল! এটা কাজ করেছে! তুমি সেই লোক! আমি মনে করি আপনি এটি ইমাস প্যাকেজ ইত্যাদি হিসাবে জমা দেওয়ার কথা বিবেচনা করতে পারেন হা হাও। এটি org modeএত বেশি ব্যবহারকারী-বান্ধব করতে পারে । আসলে আমি মধ্যবর্তী আরটিএফ রূপান্তর ছাড়াই বিন্যাসকরণের সাথে এটি আরও পছন্দ করি কারণ এটি আরও তথ্য সংরক্ষণ করে। উদাহরণস্বরূপ #+BEGIN_QUOTEএবং #+BEGIN_EXAMPLEআপনার উত্তরে অতিরিক্ত রূপান্তর দিয়ে সংরক্ষণ করা হবে না।
এক্সজি 14

1
@ উদ্বেগকেন্দ্র এটি কেবলমাত্র কিছু ফর্ম্যাটিং তথ্য, যেমন ওয়েব পৃষ্ঠার মধ্যে কিছু সিএসএস নেওয়ার চেষ্টা করছে। আপনি নিজে চেষ্টা করে দেখতে পারেন এবং এতে কী তফাত হয়।
এক্সজি

উত্তর:


12

এটি তৈরি করা কি সম্ভব?

যেহেতু এটি ইম্যাক্স, হ্যাঁ

আমার পদ্ধতির মধ্যে একটি তৃতীয় পক্ষের সরঞ্জাম ব্যবহার করা যা এইচটিএমএল নিতে এবং প্লেইন পাঠ্যে এমনকি সরাসরি অর্গ ফর্ম্যাটে রূপান্তর করতে পারে। আমি মনে করি এটি একটি কুৎসিত হ্যাক, এবং এটি করার আরও ভাল উপায় থাকতে পারে তবে এটি আমার পরীক্ষার কেসগুলির জন্য কার্যকর বলে মনে হচ্ছে।

(defun kdm/html2org-clipboard ()
  "Convert clipboard contents from HTML to Org and then paste (yank)."
  (interactive)
  (kill-new (shell-command-to-string "osascript -e 'the clipboard as \"HTML\"' | perl -ne 'print chr foreach unpack(\"C*\",pack(\"H*\",substr($_,11,-3)))' | pandoc -f html -t json | pandoc -f json -t org"))
  (yank))

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

  1. osascriptক্লিপবোর্ড থেকে এইচটিএমএল পাঠ্য পেয়েছে। এটি হেক্স এনকোডেড, তাই
  2. পার্ল হেক্সকে একটি স্ট্রিতে রূপান্তর করে
  3. আমরা সেই HTMLটিকে প্যান্ডোকের সাহায্যে সরাসরি অর্গে রূপান্তর করতে পারি, তবে এইচটিএমএল জটিল ট্যাগগুলিতে পূর্ণ এবং তাই একটি সংখ্যক অর্গ কোড তৈরি করে। ফর্ম্যাটিং ক্যাপচারের জন্য কেবলমাত্র সর্বনিম্ন ট্যাগগুলির এইচটিএমএলকে ট্যাগ করার জন্য, আমি I
  4. এইচটিএমএলকে জসনে রূপান্তর করুন এবং তারপরে
  5. জসনকে অর্গে রূপান্তর করুন (এই দুটি পদক্ষেপটি এইচটিএমএলকে সরল করে)।

নোটটি osascriptম্যাকোসের জন্য। লিনাক্সের 1-2 টি পদক্ষেপগুলি পরিবর্তন করতে শেল-কমান্ড-থেকে-স্ট্রিংয়ের যুক্তিটি প্রতিস্থাপন করুন

"xclip -o -t text/html | pandoc -f html -t json | pandoc -f json -t org"

যাই হোক না কেন, pandocকমান্ডের আউটপুটটি ইম্যাকগুলিতে ফিরে আসবে এবং বাফারে প্রবেশ করানো হবে।

নতুন ইমাকস কমান্ডটিকে "পেস্ট" এর অনুরূপ কীতে বাঁধুন তবে এর অর্থ আপনার কাছে "পেস্ট-এবং-রূপান্তর-থেকে-এইচটিএমএল" রয়েছে এবং এটি কার্যকর হওয়া উচিত।

বিকল্প হিসাবে, আপনি যদি কোন পেস্ট কমান্ডটি ব্যবহার করবেন তা ভাবতে চান না, এখানে একটি লিনাক্স সংস্করণ যা এইচটিএমএল রূপান্তর করবে যখন এটি ক্লিপবোর্ডে পাওয়া যায় এবং অন্যথায় সরল পাঠ্যে ফিরে যেতে পারে:

"xclip -o -t TARGETS | grep -q text/html && (xclip -o -t text/html | pandoc -f html -t json | pandoc -f json -t org) || xclip -o"

একটি সংযোজন: দেখে মনে হচ্ছে ফরম্যাট করা ইনলাইন পাঠ্যকে (বোল্ড, ইটালিকস, কোড ইত্যাদি) রূপান্তর করার সময় pandocস্বয়ংক্রিয়ভাবে স্বাভাবিক স্থানের পরিবর্তে নন-ব্রেকিং স্পেস ব্যবহার করে , যা orgmodeডিফল্টরূপে স্বীকৃত নয় । org-emphasis-regexp-componentsসেই পাঠ্যগুলিকে সঠিকভাবে ফর্ম্যাট করার জন্য আপনাকে এটি () যুক্ত করতে হবে orgmode
এক্সজি

উল্লেখযোগ্যভাবে xclip এর "প্রকাশিত" সংস্করণ বিকল্প -t সমর্থন করে না; সুতরাং xclip গিথুব থেকে তৈরি করা আবশ্যক। এছাড়াও, আপনাকে পাইপোক ইনপুট এবং আউটপুট মাধ্যমে পাইপ করতে হবেiconv utf-8
ম্যালকুক

xclipওএস এক্সেও রয়েছে (সম্ভবত কেবল ডাব্লু / এক্স 11 এবং / অথবা বিকাশকারী সরঞ্জাম ইনস্টল করা আছে?), সুতরাং উন্নত উত্তরটি ওএস এক্সেও কাজ করতে পারে।
মানকফ

@ জিক্সিয়াং আমি কীভাবে গ্রহণযোগ্য উত্তরটি পরিবর্তন করব যাতে এটি নন-ব্রেকিং স্পেসগুলিকে সাধারণ স্থানগুলিতে রূপান্তর করে?
incandescentman

1
@ সিন্ডেসেন্টম্যান আমি প্রথমে org- মোডের প্যাকেজ ফাইলটি সংশোধন করেছি যাতে এটি বিভাজক হিসাবে অ-ব্রেকিং স্থানকে স্বীকৃতি দেয়। তবে এটি সংস্করণ পরিবর্তনের জন্য ক্লান্তিকর হতে পারে। আমি তখন পান্ডোকের রেপোতে একটি সমস্যা উত্থাপন করেছি যার সম্পর্কে আপনি অনুসন্ধান করতে পারেন। মূলত আপনি স্বয়ংক্রিয় প্রতিস্থাপন সম্পাদন করতে প্যান্ডোকে একটি "ফিল্টার" ব্যবহার করতে পারেন। তবে এটি কখনও কখনও ব্যর্থ হয়। সুতরাং এখন আমি বেশিরভাগই ম্যানুয়ালি পেস্ট করা সামগ্রী নির্বাচন করি এবং প্রতিস্থাপন সম্পাদন করি। আমার শেষ প্রতিস্থাপনটি প্রায় সর্বদা এটির জন্য তাই আমি কেবলমাত্র আমার প্রতিস্থাপনের ইতিহাস স্ক্রোল করে আবেদন করি।
এক্সজি
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.