> statement above. The tag-line to the "Drawers" section in the manual is > "Tucking stuff away" which I think is often how drawers are used. > Changing the default drawer export behavior from "don't export" to "do > export" would be surprising, would break many existing work flows, and > would likely make drawers less useful. > > In general I think the Org-mode specification is best defined by how > Org-mode is used and how it may be more easily and intuitively used in > the future. Org-mode doesn't currently have a formal specification, and > I think that is a good thing. Formal specification don't prevent bugs, > they just move them from the code to the spec.
"Tucking stuff away" can mean different things to different users. Personally, I have treated them purely as an organizational device for supplementary information (I have :DETAILS: drawers all over my org files). The problem is that I may or may not want this supplementary information in the export, and will really vary from case to case. (Personally, in most cases, I do want to export that information -- but not always!) Furthermore, assuming that I _do_ want drawers exported, I may or may not want the drawer markup to be exported, i.e. if drawers are used purely for organizing the presentation of information, the drawer markup doesn't belong in the export. On the other hand, in certain cases one might want to denote the information as supplementary, either by exporting drawer markup (or, more likely, by putting drawer contents inside something like a <code> block). If I were designing this behavior from scratch, I would allow for maximum flexibility by (1) creating e.g. org-drawers-to-export variable which could take on the values nil (don't export), 'all (all drawers except :PROPERTIES:) exported, or a list of drawer names to export (2) introducing drawer flags that would control the export and display behavior of individual drawers. For instance, something like :FOO: -vis -export stuff... :END: would indicate that this drawer is to be kept unfolded and exported by default. (3) controlling whether the drawer contents are separated out from the rest of the contents by some markups (<hr>'s or a <code> block) I'm not sure how easy and/or practical any of this would be. My general philosophy is that if a behavior isn't specified, many possible (sensible) behaviors should be considered and accommodated. In that sense, hiding #+name: blocks is a good thing, because it increases the amount of allowed sensible usage patterns. If we were to take it away, I think it would be necessary to compensate for this by increasing the amount of allowed sensible usage patterns of the drawers, kind of along the lines of what I described above. --Leo