কোনও এজেন্ডা ভিউ ছাড়াই একটি org- মোড এজেন্ডার জন্য কাঁচা ডেটা কীভাবে পাবেন?


10

প্রশ্ন: আমি org-modeআসলে কোনও এজেন্ডা ভিউ তৈরি না করে কোনও এজেন্ডা দেখার জন্য কাঁচা ডেটা কীভাবে ফিরিয়ে দিতে পারি ?

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

আমি অনুমান করেছি যে org-agenda-listএটি শুরু করার জায়গা হবে। তবে, এই ফাংশনটি জটলা জন্তু এবং এটি সংগ্রহ, বাছাইকরণ এবং প্রদর্শনের প্রক্রিয়াগুলিকে অন্তর্নির্মিত বলে মনে হচ্ছে। এই হিসাবে, আমি অনুমান (আশা?) যে আমি কেবল প্রাসঙ্গিক ফাংশনটি মিস করেছি যা আমার পরে কার্যকারিতা সরবরাহ করে।

উত্তর:


4

নিম্নলিখিত ডেটা যে মধ্যে যায় বের করে আনতে কিভাবে একটি সংক্ষিপ্ত উদাহরণ *Org Agenda*বাফার যখন স্বাভাবিকভাবে ফাংশন ব্যবহার করে org-agenda-listসঙ্গে, org-agenda-entry-typesযেমন :deadline, :scheduled, :timestamp, sexp, :deadline*, এবং :scheduled*। তারিখের পরিধি - beginএবং end- একটি গ্রেগরিয়ান তালিকা ফর্ম্যাটে হওয়া উচিত - যেমন '(6 1 2015),। স্বনির্ধারিত এলইটি-বাউন্ড অপশন আছে org-agenda-prefix-formatএবং org-agenda-entry-types। ফাংশন একটি তালিকার বিন্যাসে ফলাফল দেয়।

(require 'calendar)
(require 'org)
(require 'org-agenda)
(require 'cl)

;; Portions of following code were extracted from:
;;   https://github.com/kiwanami/emacs-calfw written by Masashi Sakurai
;; Said code has been modified by @lawlist hereinbelow.
;;
(defun org-get-entries-fn (begin end)
"Return org schedule items between BEGIN and END.
USAGE:  (org-get-entries-fn '(6 1 2015) '(12 31 2020))"
  (unless
      (and
        (calendar-date-is-valid-p begin)
        (calendar-date-is-valid-p end))
    (let ((debug-on-quit nil))
      (signal 'quit '("One or both of your Gregorian dates are invalid."))))
  (let* (
      result
      (org-agenda-buffer nil) ;; prevent error from `org-compile-prefix-format'
      ;; The variable `org-agenda-only-exact-dates' is apparently not operational.
      (org-scheduled-past-days 0) ;; avoid duplicate entries for overdue items
      (org-agenda-prefix-format "• ")
      (org-agenda-entry-types '(:scheduled))
      (date-after
        (lambda (date num)
          "Return the date after NUM days from DATE."
          (calendar-gregorian-from-absolute
           (+ (calendar-absolute-from-gregorian date) num))))
      (enumerate-days
        (lambda (begin end)
          "Enumerate date objects between BEGIN and END."
          (when (> (calendar-absolute-from-gregorian begin)
                   (calendar-absolute-from-gregorian end))
            (error "Invalid period : %S - %S" begin end))
          (let ((d begin) ret (cont t))
            (while cont
              (push (copy-sequence d) ret)
              (setq cont (not (equal d end)))
              (setq d (funcall date-after d 1)))
            (nreverse ret)))) )
    (org-compile-prefix-format nil)
    (setq result
      (loop for date in (funcall enumerate-days begin end) append
        (loop for file in (org-agenda-files nil 'ifmode) append
          (progn
            (org-check-agenda-file file)
            (apply 'org-agenda-get-day-entries file date org-agenda-entry-types)))))
    result))
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.