Arara 配置文件,创建新的文件扩展名(文件类型);ConteXt

Arara 配置文件,创建新的文件扩展名(文件类型);ConteXt

这个问题是上一个问题的延续...相似但不同的 Arara... 我根据我对 Arara 参考手册的理解创建了一个配置文件,并将其附加在下面。

配置文件本身(经过一些调整后...!)在运行时不会标记任何有关其自身的错误消息。Arara 似乎识别并接受了我新创建的文件扩展名*.mkiv

然而,在运行时,Arara 告诉我It looks like no directives were found in the provided file. Make sure to include at least one directive and try again. 这不是真的,该文件确实有一个指令。作为测试,我在配置文件中添加了一个默认前言defaultPreamble: onecontext。这没有帮助,并且已经从配置文件中删除(因为它干扰了非 ConTeXt 执行)

实际上,如果我没有配置文件,或者我在文件名后附加了*.tex,那么 Arara 就可以在这个文件(具有 arara 指令)上运行而不会出现错误,例如myfilename.mkiv.tex

arara 日志没有提供任何有用的信息。

那么,我在这里遗漏了什么?

 1 !config
 2 filetypes:
 3   - extension:  ins 
 4   - extension:  drv
 5   - extension:  ltx
 6   - extension:  dtx
 7   - extension:  tex
 8   - extension:  mkiv
 9      pattern: ^\s*//\s*
10 paths:
11     - '/usr/local/texlive/2023/texmf-dist/scripts/arara/rules'
12 loops: 5
13 verbose: true
14 logging: true
15 header: true
16 logname: my_arara_log
17 preambles:
18     onecontext: |
19         % arara: context
20 defaultPreamble: onecontext      [<-- added for testing, then deleted]

答案1

如果您只提供一半的事实,我们就无法知道您遗漏了什么。在这种情况下,您没有提供 ConText 文件。当我阅读您的配置文件和文件模式时,我假设您的平均 ConTeXt 文件如下所示

// arara: context
\starttext
Hello world
\stoptext

好吧,假设您没有重新发明 ConTeXt 及其语法,那么这是一个语法错误。但请注意,^\s*//\s*使用有效的 ConTeXt 语法您将一事无成。

显然,您从文档中复制并粘贴了模式,而没有理解正则表达式。而且您没有查找两行来尝试默认模式,该模式基本上适用于所有 TeX 文件(并且默认情况下使用)^\s*%\s*:。

因此,假设你想提供一个有效的 ConTeXt 文档,例如

% arara: context
\starttext
Hello world
\stoptext

进入 arara,您可以使用具有适当模式的配置文件。如果您使用原始模式,那么 arara 无法在文档中找到指令,这是不言而喻的,因为// arara该文件中没有任何一行。

!config
filetypes:
  - extension:  ins 
  - extension:  drv
  - extension:  ltx
  - extension:  dtx
  - extension:  tex
  - extension:  mkiv
    pattern: ^\s*%\s*

相关内容