| 
					
				 | 
			
			
				@@ -68,8 +68,10 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 ;;   - orphaned affiliated keywords 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 ;;   - obsolete affiliated keywords 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 ;;   - missing language in src blocks 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+;;   - missing back-end in export blocks 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 ;;   - invalid Babel call blocks 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 ;;   - NAME values with a colon 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+;;   - deprecated export block syntax 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 ;;   - deprecated Babel header properties 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 ;;   - wrong header arguments in src blocks 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 ;;   - misuse of CATEGORY keyword 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -80,6 +82,7 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 ;;   - links to non-existent local files 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 ;;   - SETUPFILE keywords with non-existent file parameter 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 ;;   - INCLUDE keywords with wrong link parameter 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+;;   - obsolete markup in INCLUDE keyword 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 ;;   - unknown items in OPTIONS keyword 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 ;;   - spurious macro arguments or invalid macro templates 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 ;;   - special properties in properties drawer 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -142,15 +145,24 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     :name 'obsolete-affiliated-keywords 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     :description "Report obsolete affiliated keywords" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     :categories '(obsolete)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+   (make-org-lint-checker 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    :name 'deprecated-export-blocks 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    :description "Report deprecated export block syntax" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    :categories '(obsolete export) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    :trust 'low) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    (make-org-lint-checker 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     :name 'deprecated-header-syntax 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     :description "Report deprecated Babel header syntax" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    :categories '(babel obsolete) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    :categories '(obsolete babel) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     :trust 'low) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    (make-org-lint-checker 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     :name 'missing-language-in-src-block 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     :description "Report missing language in src blocks" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     :categories '(babel)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+   (make-org-lint-checker 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    :name 'missing-backend-in-export-block 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    :description "Report missing back-end in export blocks" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    :categories '(export)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    (make-org-lint-checker 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     :name 'invalid-babel-call-block 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     :description "Report invalid Babel call blocks" 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -202,6 +214,11 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     :description "Report INCLUDE keywords with misleading link parameter" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     :categories '(export) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     :trust 'low) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+   (make-org-lint-checker 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    :name 'obsolete-include-markup 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    :description "Report obsolete markup in INCLUDE keyword" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    :categories '(obsolete export) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    :trust 'low) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    (make-org-lint-checker 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     :name 'unknown-options-item 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     :description "Report unknown items in OPTIONS keyword" 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -368,6 +385,20 @@ called with one argument, the key used for comparison." 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	   reports)))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     reports)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+(defun org-lint-deprecated-export-blocks (ast) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  (let ((deprecated '("ASCII" "BEAMER" "HTML" "LATEX" "MAN" "MARKDOWN" "MD" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		      "ODT" "ORG" "TEXINFO"))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    (org-element-map ast 'special-block 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      (lambda (b) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	(let ((type (org-element-property :type b))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	  (when (member-ignore-case type deprecated) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	    (list 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	     (org-element-property :post-affiliated b) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	     (format 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	      "Deprecated syntax for export block.  Use \"BEGIN_EXPORT %s\" \ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+instead" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	      type)))))))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 (defun org-lint-deprecated-header-syntax (ast) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   (let* ((deprecated-babel-properties 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	  (mapcar (lambda (arg) (symbol-name (car arg))) 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -401,6 +432,13 @@ Use :header-args: instead" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	(list (org-element-property :post-affiliated b) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	      "Missing language in source block"))))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+(defun org-lint-missing-backend-in-export-block (ast) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  (org-element-map ast 'export-block 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    (lambda (b) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      (unless (org-element-property :type b) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	(list (org-element-property :post-affiliated b) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	      "Missing back-end in export block"))))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 (defun org-lint-invalid-babel-call-block (ast) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   (org-element-map ast 'babel-call 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     (lambda (b) 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -555,6 +593,25 @@ Use :header-args: instead" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 				 search)))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		    (unless visiting (kill-buffer buffer)))))))))))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+(defun org-lint-obsolete-include-markup (ast) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  (let ((regexp (format "\\`\\(?:\".+\"\\|\\S-+\\)[ \t]+%s" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			(regexp-opt 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			 '("ASCII" "BEAMER" "HTML" "LATEX" "MAN" "MARKDOWN" "MD" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			   "ODT" "ORG" "TEXINFO") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			 t)))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    (org-element-map ast 'keyword 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      (lambda (k) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	(when (equal (org-element-property :key k) "INCLUDE") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	  (let ((case-fold-search t) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		(value (org-element-property :value k))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	    (when (string-match regexp value) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	      (let ((markup (match-string-no-properties 1 value))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		(list (org-element-property :post-affiliated k) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		      (format "Obsolete markup \"%s\" in INCLUDE keyword.  \ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+Use \"export %s\" instead" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			      markup 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			      markup)))))))))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 (defun org-lint-unknown-options-item (ast) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   (let ((allowed (delq nil 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		       (append 
			 |