Decomposes complex links into semantic header arguments with validation: #+HEADER: :transclude-type my-type #+HEADER: :my-component value #+begin_src elisp #+end_src Direct links work without registration, including keywords: #+HEADER: :transclude [[file:/path::search]] #+HEADER: :transclude-keywords ":lines 10-15 :only-contents" #+begin_quote #+end_quote Generic transclusion control headers work with all link types: #+HEADER: :transclude [[file:/path/file.txt]] #+HEADER: :transclude-lines 10-20 #+HEADER: :transclude-type orgit-file #+HEADER: :orgit-repo ~/project #+HEADER: :orgit-file src/core.el #+HEADER: :transclude-thing defun Generic headers (:transclude-lines, :transclude-thing) are mutually exclusive and take precedence over :transclude-keywords specifications. Variable substitution in headers: Transclusion headers support variable references via :var: #+HEADER: :var repo="~/project" #+HEADER: :transclude-type orgit-file #+HEADER: :orgit-repo $repo #+HEADER: :orgit-file "src/core.el" Two reference patterns are supported: - $varname - Explicit dollar-prefixed reference - varname - Bare name (when value is exactly the variable name) Generic headers always support expansion: - :transclude, :transclude-keywords, :transclude-lines, etc. Type-specific headers opt in via :expand-vars property: - See `org-transclusion-blocks-register-type' documentation - Use `org-transclusion-blocks-describe-type' to check support Babel control headers (:results, :session, etc.) are NEVER expanded to avoid interfering with language backend variable handling. Org syntax escaping prevents markup collisions: Enabled by default for Org sources via `org-transclusion-blocks-escape-org-sources'. Override per-block with :transclude-escape-org header or set file/subtree defaults via #+PROPERTY: header-args. Converting existing transclusions: Existing #+transclude: keywords can be converted to header form: M-x org-transclusion-blocks-convert-keyword-at-point Converts the keyword at point to equivalent header syntax. The original line is preserved as a comment for reference. For batch conversion: M-x org-transclusion-blocks-convert-keywords-in-buffer Validator composition utilities: - `org-transclusion-blocks-make-non-empty-validator' - `org-transclusion-blocks-make-regexp-validator' - `org-transclusion-blocks-make-predicate-validator' - `org-transclusion-blocks-compose-validators' See `org-transclusion-blocks-register-type' for type registration. Commands: - `org-transclusion-blocks-add' - Process block at point - `org-transclusion-blocks-add-all' - Process all blocks in scope - `org-transclusion-blocks-validate-current-block' - Test validators - `org-transclusion-blocks-describe-type' - Show type documentation - `org-transclusion-blocks-list-types' - List registered types