gpt4 book ai didi

doxygen - 如何在 doxygen 中重新生成类 url?

转载 作者:行者123 更新时间:2023-12-04 02:20:28 24 4
gpt4 key购买 nike

我正在使用 doxygen 为程序生成文档。现在我想将生成的文档链接到另一个网站/程序(完全独立)。

我的想法是生成一个与生成的 doxygen 相同的 URL,例如我的类(class)名称是 Models.PMF.Phen.GenericPhase ,doxygen 生成的 url 是 class_models_1_1_p_m_f_1_1_phen_1_1_generic_phase.html .我不明白为什么有这么多underscore1在网址中。

我的问题是

  • 是否可以更改 doxygen 生成的 URL 的样式,即 class/Models/PMF/Phen/GenericPhase.html ?
  • doxygen 生成 URL 时是否有任何模式。

  • 感谢您的任何建议。如果我的问题不清楚,请告诉我。

    最佳答案

    简短的故事是:我认为 Doxygen 生成的 URL 可以安全使用。

    回答问题:
    不,你不能让 Doxygen 制作你想要的路径(但我同意这可能很好)

    下划线是 Doxygen 使原始名称在任何文件系统上可移植的方式。 _1. 的替代品特点。所有大写字母都替换为小写字母开头的 _ .这种重整非常一致,所以我认为你应该能够安全地使用它。

    util.cpp 中有一个名为 escapeCharsInString(...) 的例程进行这种转换。正如我所说,所有大写字母都改为小写并以下划线开头。各种其他字符被转换为 _? (其中 ? 是从 1 到 9 或 00 到 0C 的数字)。最后,如果遇到下划线,它会加倍。 (“my_Function”最终得到 3 个下划线: my___function )。

    下面是各种字符的源代码片段。老实说,我很困惑你为什么会收到 _1. ,因为对我来说它转换为 _8 .我使用的是 C,而不是 C++;但即使知道我已经搜索了源代码,仍然没有找到解释。因此,我只说我“认为”该 URL 可以安全使用 :)

      case '_': if (allowUnderscore) growBuf.addChar('_'); else growBuf.addStr("__"); break;
    case '-': growBuf.addChar('-'); break;
    case ':': growBuf.addStr("_1"); break;
    case '/': growBuf.addStr("_2"); break;
    case '<': growBuf.addStr("_3"); break;
    case '>': growBuf.addStr("_4"); break;
    case '*': growBuf.addStr("_5"); break;
    case '&': growBuf.addStr("_6"); break;
    case '|': growBuf.addStr("_7"); break;
    case '.': if (allowDots) growBuf.addChar('.'); else growBuf.addStr("_8"); break;
    case '!': growBuf.addStr("_9"); break;
    case ',': growBuf.addStr("_00"); break;
    case ' ': growBuf.addStr("_01"); break;
    case '{': growBuf.addStr("_02"); break;
    case '}': growBuf.addStr("_03"); break;
    case '?': growBuf.addStr("_04"); break;
    case '^': growBuf.addStr("_05"); break;
    case '%': growBuf.addStr("_06"); break;
    case '(': growBuf.addStr("_07"); break;
    case ')': growBuf.addStr("_08"); break;
    case '+': growBuf.addStr("_09"); break;
    case '=': growBuf.addStr("_0A"); break;
    case '$': growBuf.addStr("_0B"); break;
    case '\\': growBuf.addStr("_0C"); break;

    现在更进一步,如果结果名称 > 128 个字符,则使用 MD5 编码方案,这会导致文件名看起来像垃圾。它基本上是原始名称的加密,因此只要您的原始名称始终完全相同(包括参数!),就可以再次安全使用。见 convertNameToFile(...)也在 util.cpp 中。

    关于doxygen - 如何在 doxygen 中重新生成类 url?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30472154/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com