Take the 2-minute tour ×
TeX - LaTeX Stack Exchange is a question and answer site for users of TeX, LaTeX, ConTeXt, and related typesetting systems. It's 100% free, no registration required.

I'm trying to create an arara rule that will download my bibliography from zotero using its embedded server. The URL works, that's not the issue, but arara claims the file has a syntax issue.

The rules file has this:

!config
# Pull bibliography from zotero as part of build
# author: Emiliano Heyns
# last edited by: eeh, Dec 2nd 2013
# requires arara 3.0+
#
# Sample usage
#
# % arara: zoterobib
# % arara: zoterobib: {format: biblatex}
# \documentclass[mode=present,display=\powerdotmode]{powerdot}
# 
identifier: zoterobib
name: ZoteroBib
commands: 
- <arara> wget -O "@{tempfile}.bib" "http://localhost:@{port}/better-bibtex/collection?@{collection}.@{format}" 
- <arara> wget -O "@{base}.bib" "http://localhost:@{port}/better-bibtex/collection?@{collection}.@{format}" 
- <arara> @{ isWindows( "cmd /c del", "rm" ) } "@{tempfile}.bib"
arguments: 
- identifier: base
  flag: <arara> @{parameters.base}
  default: @{getBasename(file)}
- identifier: tempfile
  flag: <arara> @{parameters.tempfile}
  default: @{getBasename(file)}_tmp
- identifier: port
  flag: <arara> @{parameters.port}
  default: 23119
- identifier: format
  flag: <arara> @{parameters.format}
  default: biblatex
- identifier: collection
  flag: <arara> @{parameters.collection}

When running the rule without parameters, I get this error:

It appears that the 'zoterobib' task has a YAML syntax error or   
an invalid field. Could you take a look at the 'zoterobib.yaml'   
file located at 'C:\Program Files\arara\rules'. I tried my best   
to dump the error message, so here it is:                         

Context: while scanning for the next token                        
Problem: found character @'@' that cannot start any token         
Error found in line 21, column 11.                                
      default: @{getBasename(file)}  
           ^                                                  

(the arrow is under the '@', shifted out of its place by the proportional font. I have another rule that uses this kind of parameter specification, and that works, so I'm at a loss to see why this wouldn't be accepted.

share|improve this question

1 Answer 1

up vote 8 down vote accepted

The answer to your question also explain why I had to introduce <arara> in the first place. :) Let's see a quote from the manual itself (I'm quite shocked that I added this remark!):

Sadly, we can't start values with @ because this symbol is reserved for future use in the YAML format. For example, foo: @bar is an invalid YAML format, so the correct usage is to enclose it in quotes: foo: '@bar' or foo: "@bar". We also need to enclose our strings with quotes in arara, but now we can save them by simply adding the <arara> prefix to the value. In other words, foo: <arara > @bar is correctly parsed; when that keyword in that specific position is found, arara removes it.

So we can replace

default: @{getBasename(file)}

by either

default: "@{getBasename(file)}"

or

default: '@{getBasename(file)}'

or

default: <arara> @{getBasename(file)}

Hope it helps! :)

share|improve this answer
    
It does; I didn't read that part of the manual (sorry!) –  friflaj Dec 8 '13 at 20:14
    
@friflaj: don't worry, the manual is boring. :) –  Paulo Cereda Dec 8 '13 at 20:26

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.