I was trying to create an org-capture for a table-line type, and I noticed that
org-capture inserts the string "| Bad template |" when the template does not 
start with
'|'. This could make sense, since a line is (only) considered part of a table 
when it
starts with '|'.

However, I did not know that the _template_ also has to start with '|', and 
still inserts the string "| Bad template |", which does not suggest in any way 
that the
lacking '|' would be the problem (after all, it is smart enough to prepend a 

Use this template to reproduce the behaviour, present on 9.7-pre

(setq org-capture-templates '(("t" "Test" table-line (file "test.org")

I did not see this documented anywhere: this was quite confusing, and the only 
way I got a
hint at what I did wrong was to see the default template for table-line: "| %? 
|". It
seems that this behaviour is intended, looking at org-capture.el:1358 @ 

         (pcase (org-trim (org-capture-get :template))
           ((pred (string-match-p org-table-border-regexp))
            "| %?Bad template |")
           (text (concat text "\n"))))

however, is this also what's ideal? I would suggest one of the following 

- An error is signalled to the user with the root cause of the error: no '|' at 
start of
  template. In addition, the org-capture-templates variable documentation 
string and the
  manual would be updated. I am happy to create a patch for this.

- org-capture could pre- and suffix a '|' if the user did not supply it in 
their template.
  I am also happy to create a patch for this, however that would be my first so 
such a
  patch would perhaps have a few iterations ;)

What are your thoughts on this?


Reply via email to