如何创建指向同一文件的DOXOXY链接 [英] how to create a Doxygen link to the same file

查看:19
本文介绍了如何创建指向同一文件的DOXOXY链接的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想要写一个DOXORT注释,它命名出现该注释的文件。我不想显式地写出文件名,而是想让Doborth为我提供它。因此,如果我更改文件名,或将某些内容移到其他文件中,我不需要更改该名称的硬编码实例。

举一个具体的例子,假设我要向array.hpp中的函数添加注释,并且我希望某些函数的注释显示"此函数应仅在array.hpp内使用"。我希望能够写

/**
 *  This function should only be used within @thisfile.
 */

其中@thisfile是在文件array.hpp中转换为array.hpp的DOOXO表达式。

我已经查看了DOOXO文档,包括"自动链接生成/文件链接"和整个"特殊命令"部分,但我还没有找到我要找的东西。是否存在此类功能?

请注意,几周前在Doborx的邮件列表上也提出了同样的问题。尚未收到任何答复。

推荐答案

常规

据我所知,这种功能不存在开箱即用的功能。但您可以通过在Doxyfile中配置INPUT_FILTER来添加它。Doxygen将文件的路径作为参数传递给筛选器。筛选器可以使用它将您的关键字(例如@thisfile)替换为文件的路径。

下面我将给出一个使用bash实现此功能的示例。其他外壳或Windows的解决方案应该非常类似。

bash

示例
  1. 写一个短小的bash脚本infiltrate_filename.sh

    #!/bin/bash
    pathToScript=`pwd`"/"
    sed -e "s:@thisfile:${1/$pathToScript/}:g" $1
    
    此脚本截断工作目录指向该文件的路径。生成的字符串用于替换您选择的关键字(此处:@thisfile)。

    /li>
  2. 使您的脚本可执行:chmod +x infiltrate_filename.sh
  3. Doxyfile中的INPUT_FILTER设置为INPUT_FILTER = ./infiltrate_filename.sh
就是这样!🎉现在您可以在documentation blocks中使用@thisfile,它将被替换为文件的路径。由于这些路径是相对于Doloxy的工作目录的,因此它们将automatically be linked指向该文件。

备注

本解决方案假定过滤脚本位于doxygen的工作目录中(例如~/my_project),并且INPUT文件位于工作目录的子目录中(例如~/my_project/src/foo/bar)。

我已经在一个最小的工作示例上测试了这个示例。我不是bashsed专家。此解决方案可能会有所改进。

这篇关于如何创建指向同一文件的DOXOXY链接的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆