GitHub – SpaceTurth/Org-Web-Adapter: সম্পাদনা, ব্যাকলিংক এবং রেন্ডার করা গণিত সহ আপনার Org Roam নোটগুলির একটি সাধারণ দৃশ্য৷

GitHub – SpaceTurth/Org-Web-Adapter: সম্পাদনা, ব্যাকলিংক এবং রেন্ডার করা গণিত সহ আপনার Org Roam নোটগুলির একটি সাধারণ দৃশ্য৷


org ফাইল ব্রাউজিং এবং সম্পাদনা করার জন্য একটি হালকা নেটিভ ওয়েব অ্যাপ।

অ্যাপটি একটি একক পাইথন সার্ভার হিসাবে প্রয়োগ করা হয়েছে (main.py) প্লাস একটি HTML টেমপ্লেট (templates/index.html) এবং একটি স্টাইলশীট (static/style.css) এটি নোট ডিরেক্টরি স্ক্যান করে .org ফাইল এবং 3-প্যান UI উপস্থাপন করে।

⚠️ কোন প্রমাণীকরণ বা এনক্রিপশন নেই, শুধুমাত্র বিশ্বস্ত নেটওয়ার্কগুলিতে এই পরিষেবাটি চালান৷ ⚠️

GitHub – SpaceTurth/Org-Web-Adapter: সম্পাদনা, ব্যাকলিংক এবং রেন্ডার করা গণিত সহ আপনার Org Roam নোটগুলির একটি সাধারণ দৃশ্য৷

মোবাইল ভিউ

  1. আপনার নোট ডিরেক্টরি সিমলিঙ্ক notes.
  2. বাঁধাই ঠিকানা এবং পোর্ট সম্পাদনা করুন config.yaml যদি ইচ্ছা হয়।
  3. python3 main.py.
  1. main.py একটি HTTP সার্ভার শুরু করে।
  2. প্রতিটি পৃষ্ঠায় অনুরোধ (GET /), এটি নোট ডিরেক্টরি পুনরায় স্ক্যান করে .org ফাইল
  3. এটি লিঙ্ক/ব্যাকলিংক সমাধান করে এবং এইচটিএমএল টুকরা তৈরি করে।
  4. এটা ঐ টুকরা চালু templates/index.html স্থানধারক:
    • {{NAV_ITEMS}}
    • {{MAIN_CONTENT}}
    • {{BACKLINKS}}
  5. ব্রাউজারে js templates/index.html ক্লায়েন্ট-সাইড ইন্টারঅ্যাকশন পরিচালনা করে (সার্চ, শাফেল, বাছাই, জাম্প-টু-কারেন্ট, থিম টগল)।

সার্ভার-সাইড উপাদান (main.py)

  • ফাইল অনুসন্ধান এবং পার্সিং:
    • scan_org_files(...) বারবার খুঁজে পায় .org ফাইল
    • থেকে শিরোনাম বের করে #+TITLE: এবং আইডি থেকে :ID:.
  • সংস্থার লিঙ্ক/ব্যাকলিংক ব্যবস্থাপনা:
    • resolve_link_target(...) সমর্থন করে file:... এবং id:... লিঙ্ক।
    • find_backlinks(...) নির্বাচিত নোটের সাথে লিঙ্ক করে নোট গণনা করে।
    • build_backlink_counts(...) সাজানোর জন্য ব্যাকলিংক যোগফল গণনা করে।
  • রেন্ডারিং:
    • render_org_to_html(...) শিরোনাম পরিবর্তন (*, **…) এবং সাধারণ HTML এর অনুচ্ছেদ।
    • render_line_with_links(...) টেক্সটে org লিঙ্কগুলিকে ক্লিকযোগ্য অ্যাপ লিঙ্কে রূপান্তর করে যেখানে সমাধান সম্ভব।
    • truncate_label(...) সাইডবার লেবেলগুলিকে 32টি অক্ষরে ক্যাপ করুন৷ ....
  • সম্পাদনা:
    • POST /edit একটি নির্বাচন আপডেট করে .org স্ট্যাটাস ফ্ল্যাগ সহ ফাইল করুন এবং পুনঃনির্দেশ করুন।
  • স্ট্যাটিক ফাইল:
    • serve_static(...) অধীনে ফাইল পরিবেশন করে static/ পাথ ট্রাভার্সাল নিরাপত্তা সঙ্গে.
  • templates/index.html::
    • বেস লেআউট মার্কআপ।
    • সাইডবার নিয়ন্ত্রণ।
    • নেভিগেশন লিঙ্কগুলিকে ফিল্টার/বাছাই/শাফেল করতে ছোট JS কন্ট্রোলার।
    • ইনলাইনের জন্য MathJax আরম্ভ $...$ রেন্ডারিং
  • static/style.css::
    • 3-কলাম ডেস্কটপ গ্রিড এবং স্ট্যাক করা মোবাইল লেআউট।
    • নোট তালিকা এবং ব্যাকলিংক জন্য বিনামূল্যে স্ক্রোল এলাকা.
    • মোবাইল নোট-লিস্ট ক্যাপ (স্ক্রোল করার আগে প্রায় 5টি নোট দৃশ্যমান)।

স্টার্টআপ কনফিগারেশন থেকে পড়ুন config.yaml একটি ডিফল্ট হিসাবে.

  • bind_addr: হোস্ট/আইপি আবদ্ধ করতে
  • bind_port: TCP পোর্ট (হতে হবে 1..65535)

নোট:

  • যদি config.yaml অনুপস্থিত, ডিফল্ট 127.0.0.1:8000.
  • CLI পতাকা --host এবং --port কনফিগারেশন মান ওভাররাইড করুন।
  • আপনি এর সাথে একটি ভিন্ন কনফিগার ফাইল চয়ন করতে পারেন --config /path/to/config.yaml.
python3 main.py --dir notes
python3 main.py --host 127.0.0.1 --port 9000
python3 main.py --config ./config.yaml
python3 main.py --no-browser
  • পুনরাবৃত্ত .org ফাইল অনুসন্ধান.
  • সক্রিয়-নোট হাইলাইটিং সহ সাইডবার নোট তালিকা।
  • শিরোনাম/পাথ অনুসন্ধান ফিল্টার।

সাইডবার অর্ডারিং নিয়ন্ত্রণ

  • এলোমেলো নোট।
  • ব্যাকলিংক গণনা অনুসারে সাজান (অবরোহী)।
  • সৃষ্ট তারিখ অনুসারে বাছাই করুন (আরোহী)।
    • টাইমস্ট্যাম্প ছাড়া নোটগুলিকে টাইমস্ট্যাম্পযুক্ত নোটের চেয়ে পুরানো বলে মনে করা হয়।
  • বর্তমান নোট বোতামে যান।
  • ডান সাইডবার বর্তমান নোটের সাথে লিঙ্ক করা নোট তালিকাভুক্ত করে।
  • উভয় সমর্থন করে file: এবং id: লিঙ্ক রেজোলিউশন।
  • নির্বাচিত নোটের জন্য পূর্বরূপ/সম্পাদনা টগল করুন।
  • ব্রাউজার থেকে ডিস্কে পরিবর্তনগুলি সংরক্ষণ করুন।
  • সাফল্য/ত্রুটি সংরক্ষণ করতে ইনলাইন স্থিতি বার্তা।
  • MathJax ব্যবহার করে ইনলাইন গণিত রেন্ডারিং $...$ ডিলিমিটার
  • হালকা/গাঢ় থিম টগল (চলবে)। localStorage)
  • ডেস্কটপ: স্বাধীন স্ক্রোলযোগ্য সাইডবার।
  • মোবাইল: নোট তালিকা তার নিজস্ব স্ক্রোল এলাকা দ্বারা আচ্ছাদিত করা হয়.
  • সম্পূর্ণ পাঠ্যের জন্য উপবৃত্তাকার এবং টুলটিপ সহ সাইডবার টেক্সট ট্রাঙ্কেশন।
  • main.py: সার্ভার, পার্সিং, রেন্ডারিং, রাউটিং।
  • templates/index.html:পৃষ্ঠা টেমপ্লেট + UI আচরণ JS.
  • static/style.css: স্টাইলিং এবং প্রতিক্রিয়াশীল বিন্যাস.
  • config.yaml: বাঁধাই কনফিগারেশন.
  • notes/:notes ডিরেক্টরি (একটি সিমলিঙ্ক হতে পারে)।
  • old_notes/: ঐচ্ছিক স্থানীয় নোট স্ন্যাপশট.
  • একটি সম্পূর্ণ org পার্সার নয়; রেন্ডারিং ইচ্ছাকৃতভাবে সহজ.
  • প্রতিটি অনুরোধে নোটগুলি পুনরায় স্ক্যান করা হয় (সরল এবং তাজা, কিন্তু বড় নোট সেটের জন্য অপ্টিমাইজ করা হয়নি)।
  • ম্যাথ রেন্ডারিং CDN থেকে MathJax লোড করার উপর নির্ভর করে।

Leave a Reply

Your email address will not be published. Required fields are marked *