diff --git a/hledger-lib/Hledger/Read/RulesReader.hs b/hledger-lib/Hledger/Read/RulesReader.hs index 09329a879..f457ff563 100644 --- a/hledger-lib/Hledger/Read/RulesReader.hs +++ b/hledger-lib/Hledger/Read/RulesReader.hs @@ -124,17 +124,17 @@ getDownloadDir = do -- Instead, a data file (or data-generating command) is usually specified by the @source@ rule. -- If there's no source rule, the data file is assumed to be named like the rules file without .rules, in the same directory. -- --- The source rule supports ~ for home directory. --- If the argument is a bare filename, its directory is assumed to be ~/Downloads. --- If is a relative file path, it is assumed to be relative to the rules file's directory. +-- The source rule supports ~ for home directory: @source ~/Downloads/foo.csv@. +-- If the argument is a bare filename, its directory is assumed to be ~/Downloads: @source foo.csv@. +-- Otherwise if it is a relative path, it is assumed to be relative to the rules file's directory: @source new/foo.csv@. -- --- The source rule can specify a glob pattern. --- If the glob pattern matches multiple files, the newest (last modified) file is used (see also below). +-- The source rule can specify a glob pattern: @source foo*.csv@. +-- If the glob pattern matches multiple files, the newest (last modified) file is used (with one exception, described below). -- --- The source rule can specify a data-cleaning command, after the file pattern and a | separator. +-- The source rule can specify a data-cleaning command, after a @|@ separator: @source foo*.csv | sed -e 's/USD/$/g'@. -- This command is executed by the user's default shell, receives the data file's content on stdin, --- and should output data suitable for hledger to convert with CSV rules. --- A # character can be used to comment out the data-cleaning command. +-- and should output CSV data suitable for hledger's conversion rules. +-- A # character can be used to comment out the data-cleaning command: @source foo*.csv # | ...@. -- -- When using the source rule, if the archive rule is also present, some behaviours change: -- diff --git a/hledger/hledger.m4.md b/hledger/hledger.m4.md index cb21b60fc..26c5ae576 100644 --- a/hledger/hledger.m4.md +++ b/hledger/hledger.m4.md @@ -3299,7 +3299,9 @@ See also ["Working with CSV > Reading files specified by rule"](#reading-files-s After `source`'s file pattern, you can write `|` (pipe) and a data cleaning command. If hledger's CSV rules aren't enough, you can pre-process the downloaded data here with a shell command or script, to make it more suitable for conversion. The command will be executed by your default shell, will receive the data file's content as standard input, -and should output zero or more lines of character-separated-values, ready for conversion by hledger's CSV rules. +and should output zero or more lines of character-separated-values, ready for conversion by the CSV rules. + +*Added in 1.50; experimental.* ## `archive` @@ -3314,6 +3316,8 @@ regenerating entries with improved rules, checking for variations in your bank's CSV, etc. +*Added in 1.50; experimental.* + ## `encoding` ```rules