निम्नलिखित वस्तुओं के पाठ-गुणों की जांच org-agenda-list
करने और कुछ मानदंडों के आधार पर स्ट्रिंग को संशोधित करने का एक उदाहरण है। इस उदाहरण में, पाठ की संपत्ति ts-date
का मूल्य प्राप्त होता है और वर्तमान तिथि के मुकाबले तुलना की जाती है - यदि यह अतिदेय है, तो हम जोड़ते हैं OLD:
; अगर यह चालू है, तो हम जोड़ते हैं CURRENT:
, अगर इसका भविष्य है, तो हम जोड़ते हैं FUTURE:
। मूल पोस्टर इस उदाहरण को कस्टमाइज़ कर सकता है और चुनिंदा स्थानों पर नई लाइन और / या डिवाइडर लाइन जोड़ सकता है। अनुकूलन मूल पोस्टर org-agenda-sorting-strategy
, आदि द्वारा चुने गए छँटाई मानदंडों के आधार पर भिन्न हो सकते हैं ।
इस उदाहरण में, फ़ंक्शन org-agenda-finalize-entries
को लेबल किए गए अनुभागों के बीच नीचे के पास संशोधित किया गया है ;; BEGIN modification
और ;; END modification
।
(require 'org-agenda)
(defun org-agenda-finalize-entries (list &optional type)
"Sort, limit and concatenate the LIST of agenda items.
The optional argument TYPE tells the agenda type."
(let ((max-effort (cond ((listp org-agenda-max-effort)
(cdr (assoc type org-agenda-max-effort)))
(t org-agenda-max-effort)))
(max-todo (cond ((listp org-agenda-max-todos)
(cdr (assoc type org-agenda-max-todos)))
(t org-agenda-max-todos)))
(max-tags (cond ((listp org-agenda-max-tags)
(cdr (assoc type org-agenda-max-tags)))
(t org-agenda-max-tags)))
(max-entries (cond ((listp org-agenda-max-entries)
(cdr (assoc type org-agenda-max-entries)))
(t org-agenda-max-entries))) l)
(when org-agenda-before-sorting-filter-function
(setq list
(delq nil
(mapcar
org-agenda-before-sorting-filter-function list))))
(setq list (mapcar 'org-agenda-highlight-todo list)
list (mapcar 'identity (sort list 'org-entries-lessp)))
(when max-effort
(setq list (org-agenda-limit-entries
list 'effort-minutes max-effort 'identity)))
(when max-todo
(setq list (org-agenda-limit-entries list 'todo-state max-todo)))
(when max-tags
(setq list (org-agenda-limit-entries list 'tags max-tags)))
(when max-entries
(setq list (org-agenda-limit-entries list 'org-hd-marker max-entries)))
;; BEGIN modification
(setq list
(mapcar
(lambda (string)
(let* (
(current-date (time-to-days (current-time)))
(ts-date (get-text-property 0 'ts-date string)) )
(if ts-date
(cond
((< ts-date current-date)
(message "The task dated %s is overdue." ts-date)
;; The new value of `string' is returned/thrown as a result.
(replace-regexp-in-string "^" "OLD: " string))
((= ts-date current-date)
(message "The task dated %s is due today." ts-date)
;; The new value of `string' is returned/thrown as a result.
(replace-regexp-in-string "^" "CURRENT: " string))
((> ts-date current-date)
(message "The task dated %s is not due yet." ts-date)
;; The new value of `string' is returned/thrown as a result.
(replace-regexp-in-string "^" "FUTURE: " string)))
string)))
list))
;; END modification
(mapconcat 'identity list "\n")))
replace-regexp-in-string
(डिवाइडर लाइनें और / या newlines जोड़ें) तुम्हारी कामना है); आपके पासstring-equals
कुछ मापदंड या आपके द्वारा खोजे जाने वाले अन्य मापदंड हो सकते हैं। मौजूदा टेक्स्ट-प्रॉपर्टीज को मानों के साथ परखें कि वे खुद को बाहर के बॉक्स से क्या शामिल करते हैं, और फिर उनका उपयोग करें।