* 2.0.0-rc (as of 2026-01-03)

  - Breaking Change ::

    We have done significant refactoring for the INTERNAL workings of
    transclusion logic. The intent was two-fold:

    1. Affect only internal workings. No user-facing commands and user options
       should be affected.

    2. Make custom/personal transclusion logic easy. Now transclusion should
       work as long as the Org link navigates to the link-target buffer. For
       example, the author has tested this with `orgit-file` link via `orgit`
       package (https://github.com/magit/orgit) and `notmuch:id:` link via
       `ol-notmuch` (https://github.com/tarsius/ol-notmuch), both packages by
       Jonas Bernoulli.

    No user-facing features should be affected, however, we are calling it out
    as a breaking change because:

    - The change is significant including dropping of a major function and
      changes of function signature, and
    - We are aware that some users have developed their own custom transclusion
      functions.

    We plan to increase the version nubmer to 2.0.0 to indicate this breaking
    change included in this release.

    The significant changes include the following:

    - Deprecated (and removed from the main transclusion logic):
      `org-transclusion-add-payload'

    - `org-transclusion-content-insert` signature changed to `(content)`

    - Refactored `org-transclusion-content-format-functions`.

    - Fixed extension setup hooks (`org-transclusion-*-extension-functions`)

    - All the extensions included in the package have been refactored to be
      aligned with these changes.

  - Features ::

    - New `org-transclusion-transient' feature for easier command access via
      `org-transclusion-transient-menu' command.

    - New `org-transclusion-insert' command. The command lets you insert
      #+TRANSCLUDE: from a link at point or new link to a blank line.

    - New user option `org-transclusion-insert-link-functions`, allowing
      customization of link insertion behavior for `org-transclusion-insert'
      (Commit `47ff265`).

    - Improved fringe & indentation (contribution by gggion). Significant
      refactoring to improve how fringes are displayed, especially when working
      with `org-indent-mode` and in terminal (`-nw`) environments.

    - Noweb chunk support (contribution by Andreas Matthias). You can now
      transclude specific chunks from noweb files. See the user manual for
      detail.

    - New translclusion `"auto"` value for `:level` property. Leaving the
      property value blank also behaves as `"auto"` It sets the level of the
      transcluded headlines to be one level deeper than the current headline.

    - New transclusion property `no-first-heading`. It will remove the first
      headline of a subtree. This is useful when you wish to merge a subtree
      into another headline.

  - Fixes ::

    - fix: #261 Extensions have been refactored into proper minor modes, making
      them easily removable and togglable. Setup hooks are now cleaner and
      reversible.

    - fix: #237 `ID` links with search options (compatible with Org 9.7+). You
      can also use Org-link's `::number` search-option. `::/regex/` does not
      fail but as it normally opens an "Occur" buffer which expects an user
      interaction, and thus does not work as intended. Commits 4764739, c910289

    - Fix: removing transclusions would incorrectly flag the buffer as modified
      Commit 59fe5cc.

    - fix: #177 Infinite loop when saving buffer with transclusions. See commit
      f6fd666 for detail.

* 1.4.0 (2024-05-20)

  - Features ::

    Transclude content over network protocols like http:// (with
    org-transclusion-http: https://git.sr.ht/ushin/org-transclusion-http) and
    hyper:// (with hyperdrive-org-transclusion:
    https://git.sr.ht/~ushin/hyperdrive-org-transclusion).  Splitting
    org-transclusion-add into two parts enables functions in
    org-transclusion-add-functions to be asynchronous.

    - chg: #213 Allow making transclusion links from any protocol link
    - refactor: #209 Split -add-payload from -add to enable async transclusion

    add :things-at-point (or :thingatpt) property for transcluding
    source and other non-org text files. Both property names are synonym
    with each other and work in the same way.

    add org-block-live-sync

    - Command 'org-transclusion-live-sync-start' now can start live sync
      when

      1) transcluding a source code text file
      2) into org src block with the ':src' property in #+transclude

      Example: #+transclude: [[python-1.py]]  :src python

    add org-transclusion-detach

    - New command 'org-transclusion-detach' can be used on the
      transclusion at point. It turns it into a normal, edtitable text
      content.

      You can undo this operation.

      In addition, you can press 'C-d' directly on the transclusion at
      point to detach it. This is because the command is bound to 'C-d'
      by default in 'org-transclusion-map'.

    - 'org-transclusion-refresh' now accepts universal argument such as
      'C-u M-x org-transclusion-refresh' and detaches the transclusion
      at point.

      You can undo this operation.

    - 'org-transclusion-add' now accepts universal argument such as 'C-u
      M-x org-transclusion-add' and copies the source content rather
      than transclude it.

      You can undo this operation.

    - Limitation: Undo detach does not add the overlay back on the
      source. This should not break any feature. You can safely refresh
      the transclusion and recover the source overlay. You can also
      safely open or moved to the source.

  - Fixes

    fix: #212 org-transclusion-make-from-link should not add
         transclusion link in next org heading

    fix: #211 Don't ever prompt to create a headline when transcluding

    docs: #210 Update docstring for org-transclusion-with-inhibit-read-only

    fix(src-lines): #219 Use end-pos in org-transclusion-content-range-of-lines

    fix(src-lines): #192 error when :thing-at-point nil

    fix: #174 add faces back org-transclusion and org-transclusion-source

* 1.3.2

  - fix: Delete superfluous trailing space on remove

    Before the fix, function 'org-transclusion-keyword-plist-to-string'
    would add a superfluous trailing space when converting #+transclude
    keyword's properties back to the string. This does not cause any
    harm in normal circumstances.

    The issue would occur with a rare combination of the case where:

    + You have a buffer with a large number of transclusions activated,
      around 50 or more

    + You set a 'whitespace-cleanup' in 'before-save' hook

    + You have 'auto-save-visited-mode' or similar that automatically
      saves a buffer

    If you had combination, and then saved the buffer with the
    transclusions, you might get an error mid-way of the save operation.
    You would not lose any data in the buffer, but the buffer would not
    re-activate all the transclusions that had been active before
    buffer-save.

    This was because of the superfluous trailing spaces and automatic
    removal of them, which caused the mismatch of the point of each
    transclusion that Org-transclusion remembered during the save
    operation.

* Version 1.3.1

  - build: fix #154 missing org-transclusion-pkg.el

    Nix requires -pkg.el. It was in ‘.elpaignore’. No functional change.

* Version 1.3.0

  - Feature ::

    - add: #145 a new property and filter to expand links to absolute
      file names (Org only) use :expand-links per transclusion

  - Fix ::

    - fix: #131. For non-Org files, now the transcluded text respects
      the indent level of the #+transclude keyword. This does not affect
      Org files.

* Version 1.2.0

  - Feature ::

    - add: org-transclusion-after-add-hook

  - Fix ::

    - fix: org-transclusion-map now inherits org-mode-map (thanks to
      ag91 [1])

    - fix: reverting 252ec675; shouldn't remove the extra space at the
           end of transclusions from Org

    - fix: #115 allow adding #+name, etc. before #+transclude keyword
           (don't remove affiliated keywords when
           org-transclusoin-remove)

* Version 1.1.1

  - Fix ::

    - Fix rare but destructive issue where buffer text content could be
      deleted by removing a transclusion. This could happen by killing a
      second Emacs instance (batch or online) or buffer, while the first
      Emacs keeps transclusions added

  - Other:

    - User Manual now refers to v1.1.x

* Version 1.1.0

  - Change ::

    - add:inhibit-read-only: fix:Org export errors with read-only With
      this, noweb expansion works now (limitation removed)

  - Fix ::

    - fix:#105 org-element--cache issue for Org v9.6 Remove use of
      silent-modificaiton & inhibit-modification-hook - fix:add-all not
      to stop with error in one trasclusion - fix:Remove extra
      space/line added to Org elements transcluded

  - Other ::
    - README, Info doc user manual, online user manual

* Version 1.0.1

  - Add .elpaignore
  - Bump up version only to enable ELPA; no functional changes

* Version 1.0.0

  - Initial version available on ELPA (https://elpa.gnu.org/)

  - Feature ::

    - =:end= property and a search term to dynamically define a range of
      lines to transclude for text and source code block

  - Change ::

    - Now user option =org-transclusion-include-first-section='s default value
      is changed to =t=. This seems to be more intuitive for more users

  - Fix ::

    - =org-transclusion-before-kill= now checks if the buffer to be
      killed contains any transclusion AND it is visting a file before
      saving. This fixes some issues related to temp buffers, etc.

    - fix: search options for src-lines extension for =:lines=, =:src=,
      and =:end= properties

† Changes before Version 1.0.0 are in CHANGELOG file.
