Jupyter নোটবুকের পতন সেল


143

আমি আইপথন জুপিটার নোটবুক ব্যবহার করছি। ধরা যাক আমি এমন একটি ফাংশন সংজ্ঞায়িত করেছি যা আমার স্ক্রিনে প্রচুর জায়গা দখল করে। ঘরটি ভেঙে যাওয়ার কোনও উপায় আছে কি?

আমি চাই যে ফাংশনটি কার্যকর হবে এবং কলযোগ্য হবে, তবুও আমি নোটবুকটি আরও ভাল করে তুলতে সেলটি আড়াল / পতন করতে চাই। কিভাবে আমি এটি করতে পারব?


30
বাহ, এটি ইতিমধ্যে 2017 এবং এর কোনও সহজ সমাধান নেই
ব্যবহারকারী 1700890

31
2019 এবং এখনও গণনা করা হচ্ছে
হার্ডিয়ান লুই

23
2020 ... (প্রথম!)
itzy it

5
আহ, আমি একটি অনুস্মারক রাখব যাতে আমি 2021-এ প্রথম হতে পারি
নবাগত

6
জুপিটারল্যাব 2019 এর পরে এটি রয়েছে a একটি কক্ষ হাইলাইট করুন এবং তার পাশের নীল বারটিতে ক্লিক করুন। আপনি এটি এখন তিনটি বিন্দু হিসাবে প্রতিনিধিত্ব করতে দেখবেন। আপনি পরে বা অন্য কোথাও সংরক্ষণ এবং পুনরায় খুললে এটি সম্মানিত হবে। সেখানে যেমন আরও বৈশিষ্ট্য এবং বিকল্প, হয় View> Collapse All Codeদেখুন এখানে এবং এখানে লিঙ্ক
ওয়েইন

উত্তর:


94

jupyter contrib nbextensionsপাইথন প্যাকেজ একটি কোড-ভাঁজ এক্সটেনশন নোটবুক মধ্যে সক্ষম করা যাবে ধারণ করে। ডকুমেন্টেশনের জন্য লিঙ্কটি (গিথুব) অনুসরণ করুন।

কমান্ড লাইন ব্যবহার করে ইনস্টল করতে:

pip install jupyter_contrib_nbextensions
jupyter contrib nbextension install --user

তাদের পরিচালনায় জীবন আরও সহজ করার জন্য, আমি jupyter nbextensions configuratorপ্যাকেজটিও সুপারিশ করব । এটি আপনার নোটবুক ইন্টারফেসে একটি অতিরিক্ত ট্যাব সরবরাহ করে যেখানে আপনি সহজেই (ডি) সমস্ত ইনস্টল করা এক্সটেনশান সক্রিয় করতে পারবেন।

স্থাপন:

pip install jupyter_nbextensions_configurator
jupyter nbextensions_configurator enable --user

11
দুর্দান্ত স্টাফ, যদিও আমি চাই "কোডফোল্ডিং" nbexistance পুরো কোডগুলিকে ভাঁজ করবে, এবং কেবল কোড ব্লকগুলি নয়।
বিএসমিথ 89

2
তাহলে conda সঙ্গে ইনস্টলেশন সমস্যায় কেহ রানে দেখুন: pip install jupyter_contrib_nbextensionsতারপর jupyter contrib nbextensions install --sys-prefix --skip-running-check। আমি ইচ্ছা করি জুপিটারের ডিফল্টরূপে এই প্যাকেজটি রয়েছে।
ব্যবহারকারী 1700890

7
সহজ ইনস্টলেশন পথ conda নিজেই মাধ্যমে : conda install -c conda-forge jupyter_contrib_nbextensions
ম্যাক্স ঘেনিস

3
যে কেউ নতুন জুপিটারল্যাব ব্যবহার করছেন তার জন্য কেবল একটি দ্রুত নোট। উল্লিখিত গিটহাব সাইট অনুসারে, এই এক্সটেনশনগুলি জুপিটারল্যাবে কাজ করে। আমি নিজেই এটি অবাক করেছিলাম তাই আমি অনুভব করেছি যে আমি অন্যকে জানাতে চাই। বরাত দিয়ে GitHub রেপো: Due to major differences between the Jupyter Notebook and JupyterLab, the extensions in this repository will not work in JupyterLab
এনওয়াইচিস

2
আপনি যদি ঘরটির শীর্ষে একটি # মন্তব্য রাখেন তবে আপনি একটি সম্পূর্ণ ঘরটি ভেঙে ফেলতে পারেন। জুপিটার তারপরে একটি ড্রপ ডাউন তীর সরবরাহ করে যা পুরো ঘরটি ভেঙে ফেলবে।
ইটস্লিপকোড

27

আপনি একটি ঘর তৈরি করতে এবং এতে নীচের কোডটি রাখতে পারেন:

%%html
<style>
div.input {
    display:none;
}
</style>

এই ঘরটি চালানো সমস্ত ইনপুট সেলকে আড়াল করবে। তাদের ফিরে দেখানোর জন্য, আপনি সমস্ত আউটপুট সাফ করতে মেনুটি ব্যবহার করতে পারেন।

অন্যথায় আপনি নীচের মত নোটবুক এক্সটেনশন চেষ্টা করতে পারেন:

https://github.com/ipython-contrib/IPython-notebook-extensions/wiki/Home_3x


নোটবুক এক্সটেনশনগুলি সত্যিই ভাল। অন্যান্য জিনিস একটি গুচ্ছ আছে। github.com/ipython-contrib/jupyter_contrib_nbextensions
শাহেনশা

27

জুপিটারল্যাব কোষের পতনকে সমর্থন করে। বামদিকে নীল কক্ষ বারে ক্লিক করা ঘরটি ভাঁজ করবে। এখানে চিত্র বর্ণনা লিখুন


6
যদিও রফতানি
চালিয়ে যায়

এর জন্য কি কোনও ভাল সমাধান আছে? রফতানি করার সময় আমি খুব খারাপভাবে ভেঙে পড়া ঘরগুলি আড়াল করতে চাই। আমি কিছু কোড এবং কিছু আউটপুট রাখতে চাই এবং কিছু অন্য কোড এবং আউটপুট আড়াল করতে চাই, তাই আমি কেবল সমস্ত কোড লুকিয়ে রাখতে পারি না .....
রাসেল রিচি

2
এই উত্তরে বর্ণিত হিসাবে কোড এবং আউটপুট ভেঙে ফেলা যায়। তদ্ব্যতীত তথ্য অবিরত রয়েছে। এটি সেলটির মেটাডেটাতে লেখা আছে। source_hiddenএবং outputs_hiddenসেট করা আছে। nbformat.readthedocs.io/en/latest/…
গিলসবি

16

আমার একইরকম একটি সমস্যা ছিল এবং @ এনারগ্যা নির্দেশিত "এনবেক্সটেনশনগুলি" খুব ভাল এবং অনায়াসে কাজ করেছে। ইনস্টল নির্দেশাবলী সোজা এগিয়ে আছে (আমি Windows এ anaconda- র সঙ্গে চেষ্টা) নোটবুক এক্সটেনশানগুলি এবং তাদের Configurator জন্য

এটি বলেছিল, আমি যুক্ত করতে চাই যে নিম্নলিখিত এক্সটেনশনগুলি আগ্রহী হওয়া উচিত।

  • ইনপুট লুকান | এই এক্সটেনশনটি একটি নোটবুকে একটি পৃথক কোডসেলকে আড়াল করার অনুমতি দেয়। টুলবার বোতামে ক্লিক করে এটি অর্জন করা যেতে পারে: ইনপুট লুকান

  • ভাঙ্গা শিরোনাম | নোটবুককে শিরোনামগুলি দ্বারা পৃথক করে বিচ্ছিন্ন অংশগুলি পড়তে দেয় সংযোগযোগ্য শিরোনাম

  • কোডফোল্ডিং | এটি উল্লেখ করা হয়েছে তবে আমি এটি সম্পূর্ণতার জন্য যুক্ত করছি কোড ভাঁজ


9

কাস্টম.জেএস ফাইলটি custom / .জুপটার / কাস্টম / এর মধ্যে নিম্নলিখিত বিষয়বস্তু সহ তৈরি করুন:

$("<style type='text/css'> .cell.code_cell.collapse { max-height:30px; overflow:hidden;} </style>").appendTo("head");
$('.prompt.input_prompt').on('click', function(event) {
    console.log("CLICKED", arguments)   
    var c = $(event.target.closest('.cell.code_cell'))
    if(c.hasClass('collapse')) {
        c.removeClass('collapse');
    } else {
        c.addClass('collapse');
    }
});

সংরক্ষণের পরে, সার্ভারটি পুনরায় চালু করুন এবং নোটবুকটি রিফ্রেশ করুন। ইনপুট লেবেলে ক্লিক করে আপনি যে কোনও ঘর ভেঙে ফেলতে পারেন (ইন [])।


3
এটি আমার পক্ষে কার্যকর হয়নি কারণ কাস্টম জেএস কার্যকর করা হলে ডিভি পরিবর্তন করা হবে না load যাইহোক, সেটটাইমআউটে (ফাংশন () {...}, 3000) সবকিছু মোড়ানো এটি স্থির করা যেতে পারে;
স্টিওহান

2
এটি আমার জন্য চতুর্থ লাইনটি পরিবর্তনের পরে: var c = $(event.target).closest('.cell.code_cell') এবং সেটটাইমআউটে সমস্ত কিছু মোড়ানোর জন্য স্টিওহানের পরামর্শ অনুসরণ করে।
proteome

আপনি কেবল c.toggleClass ('পতন') ব্যবহার করতে পারেন; পরিবর্তে যদি-অন্য বিবৃতি।
gauravkr

9

হাইড_কোড এক্সটেনশন আপনাকে পৃথক কক্ষগুলি এবং / অথবা তাদের পাশের প্রম্পটগুলি আড়াল করতে দেয়। হিসাবে ইনস্টল করুন

pip3 install hide_code

পরিদর্শন https://github.com/kirbs-/hide_code/ এই এক্সটেনশনটি সম্পর্কে আরও তথ্যের জন্য।


9

প্রথমত, এনার্জিয়ার নির্দেশ অনুসরণ করুন:

pip install jupyter_contrib_nbextensions
jupyter contrib nbextension install --user
pip install jupyter_nbextensions_configurator
jupyter nbextensions_configurator enable --user

দ্বিতীয়টি কী: বৃহস্পতি নোটবুক খোলার পরে, এনবেক্সটেনশন ট্যাবে ক্লিক করুন। এখন এনবেক্সটেনশনের (ওয়েব ব্রাউজার দ্বারা নয়) সরবরাহ করা অনুসন্ধান সরঞ্জাম থেকে "কোলা" অনুসন্ধান করুন , তারপরে আপনি "কলাপসিবল শিরোনাম" নামে কিছু খুঁজে পাবেন

এটাই তুমি চাও!


2

অন্যরা যেমন উল্লেখ করেছে, আপনি এনবেক্সটেনশনের মাধ্যমে এটি করতে পারেন। আমি কী করেছি তার সংক্ষিপ্ত বিবরণ দিতে চেয়েছিলাম, যা দ্রুত এবং সহজ ছিল:

সহযোগিতামূলক শিরোনাম সক্ষম করতে: আপনার টার্মিনালে প্রথমে প্রবেশ করে জুপিটার নোটবুক এক্সটেনশানগুলি সক্ষম / ইনস্টল করুন:

pip install jupyter_contrib_nbextensions

তারপরে, প্রবেশ করুন:

jupyter contrib nbextension install

জুপিটার নোটবুক পুনরায় খুলুন। "সম্পাদনা" ট্যাবে যান, এবং "এনবেক্সটেনশন কনফিগারেশন" নির্বাচন করুন। "কনফিগারযোগ্য নবেক্সটেনশনগুলি" শিরোনামের অধীনে সরাসরি চেক বাক্সটি নির্বাচন করুন, তারপরে "সঙ্কুচিত শিরোনাম" নির্বাচন করুন।


ভাবছেন কেন কেন কেউ nbextensions configসরাসরি ড্যাশবোর্ড থেকে অ্যাক্সেস করতে পারে না এবং তার পরিবর্তে একটি নোটবুক খুলতে হবে। বিকল্প হিসাবে, অন্যরা যেমন উল্লেখ করেছে, কেউ এটির মাধ্যমে অ্যাক্সেস করতে পারে localhost:8888/nbextensions(বা যে কোনও পোর্ট আপনার কনফিগারেশনে রয়েছে)
এন্টোইন ২

2

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

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

গিটহাবের সংগ্রহশালা: https://github.com/BenedictWilkinsAI/ सेलফোল্ডিং

নীচে এক্সটেনশনটি কী করে তার একটি ছোট ডেমো রয়েছে:

কেবলমাত্র কোড সেলের বামে ডাবল ক্লিক করলে এটি একক লাইনে পতিত হবে:

আবার ডাবল ক্লিক করলে ঘরটি প্রসারিত হবে।

এক্সটেনশনটি পিপ দিয়ে সহজেই ইনস্টল করা যায়:

pip install nbextension-cellfolding
jupyter nbextension install --py cellfolding --user
jupyter nbextension enable --py cellfolding --user 

এবং এনবেক্সটেনশন কনফিগারারের সাথেও সামঞ্জস্যপূর্ণ । আমি আশা করি লোকেরা এটিকে কাজে লাগবে!


2
কবজির মতো কাজ করেছেন। ঝরঝরে
আয়ান মিত্র

1

প্যান ইয়ান পরামর্শের একটি উন্নত সংস্করণ রয়েছে। এটি কোড বোতামটি প্রদর্শন করে এমন বোতামটি যুক্ত করে:

%%html
<style id=hide>div.input{display:none;}</style>
<button type="button" 
onclick="var myStyle = document.getElementById('hide').sheet;myStyle.insertRule('div.input{display:inherit !important;}', 0);">
Show inputs</button>

বা অজগর:

# Run me to hide code cells

from IPython.core.display import display, HTML
display(HTML(r"""<style id=hide>div.input{display:none;}</style><button type="button"onclick="var myStyle = document.getElementById('hide').sheet;myStyle.insertRule('div.input{display:inherit !important;}', 0);">Show inputs</button>"""))

2
কোডগুলি কোনও নির্দিষ্ট ঘর নয়, সমস্ত ইনপুট সেল লুকায়।
জ্যাক ফ্লিটিং

আমি আউটপুটটির জন্য যা চেয়েছিলাম ঠিক
তেমনই

লজ্জাজনক, এটিই আমি খুঁজে পেলাম যে কোডটি ডিফল্টরূপে লুকায় এবং কেবল ক্লিকে এটি দেখায়। দুর্ভাগ্যক্রমে, এটি কেবলমাত্র একটি লক্ষ্য নয়, সমস্ত কক্ষ লুকায়।
পেনেলোপ

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

1

এক্সটেনশানগুলি সক্ষম করা ছাড়া আপনাকে বেশি কিছু করার দরকার নেই:

http://localhost:8888/nbextensions?nbextension=collapsible_headings
http://localhost:8888/nbextensions?nbextension=codefolding/main

এখানে চিত্র বর্ণনা লিখুন

খুব সম্ভবত আপনি এখানে আপনার সমস্ত এক্সটেনশন পাবেন:

http://localhost:8888/nbextensions

এখানে চিত্র বর্ণনা লিখুন


1

কাঙ্ক্ষিত ফলাফল পেতে আমি যা ব্যবহার করি তা হ'ল:

  1. toggle_cell.pyআপনার নোটবুকের মতো একই ডিরেক্টরিতে নামক কোনও ফাইলটিতে নীচের কোড ব্লকটি সংরক্ষণ করুন
from IPython.core.display import display, HTML
toggle_code_str = '''
<form action="javascript:code_toggle()"><input type="submit" id="toggleButton" value="Show Sloution"></form>
'''

toggle_code_prepare_str = '''
    <script>
    function code_toggle() {
        if ($('div.cell.code_cell.rendered.selected div.input').css('display')!='none'){
            $('div.cell.code_cell.rendered.selected div.input').hide();
        } else {
            $('div.cell.code_cell.rendered.selected div.input').show();
        }
    }
    </script>

'''

display(HTML(toggle_code_prepare_str + toggle_code_str))

def hide_sloution():
    display(HTML(toggle_code_str))
  1. আপনার নোটবুকের প্রথম কক্ষে নিম্নলিখিতগুলি যুক্ত করুন
from toggle_cell import toggle_code as hide_sloution
  1. আপনার কেবল যে কলটিতে টগল বোতাম যুক্ত করতে হবে এমন কোনও সেল call hide_sloution()
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.