On 25 February 2022, Steven Harris wrote: > The current problem is that I have a config file that I want to substitute > a value into. I want the conf-mode highlighting. Conf is not a > programming language of course, just a text format. > > I'm trying something like > > #+begin_src conf :tangle yes :noweb yes > [defaults] > private_key_file = <> > #+end_src > > I have tried something similar to the SQL comment example in the > documentation to no avail and also setting :var headers. How can I > substitute a value here? I think there are a few different ways, but they depend on Org knowing about the language of the source block (as I realized after writing most of this, and deciding I'd send it along anyway in case it's helpful): One way I do it is like so, first with defining a variable. #+NAME: RUBY_VERSION | 3.1.1 | Then, in a source block, call in the variable with :var, like so: #+begin_src shell :tangle conforg/scripts/ruby-install-personal.sh :shebang "#!/bin/bash" :var RUBY_VERSION=RUBY_VERSION rbenv install --verbose $RUBY_VERSION rbenv global $RUBY_VERSION ~/conforg/scripts/ruby-install-gems.sh echo "Now run bundle install where needed." #+end_src I'm using the RUBY_VERSION variable name in two places: first on its own in Org, then in the shell script as an environment variable that is set to the value of the Org variable. No point in using two different variable names for this, I thought. But in other cases one would want to. (This is from Conforguration,¹ my system for setting up my dot files and some languages or services I want to run from source.) But Org knows about shell scripts and can pass variables in to them (like it can with SQL), and Org doesn't know about INI files or other config files the same way. So (unless I'm mistaken) this method won't work. However, surely there's another way ... Bill ¹ https://github.com/wdenton/conforguration -- William Denton https://www.miskatonic.org/ Librarian, artist and licensed private investigator. Toronto, Canada