我想发布一些公共(public)可用存储库中的编程文档。本文档包含格式化文本,一些UML图和许多代码示例。我认为GitHub或GitLab是发布此内容的好地方。

要发布UML图,我想有一些简单的方法来将其更新到存储库中,并在Wiki中以图像形式显示。我不想将这些图保存在我的计算机(或云中)中,对其进行编辑,生成图像,然后每次都将其发布。

有没有一种方法可以将图表放入存储库中(采用PlantUML语法是理想的),将它们链接到markdown文本中,并使图像在每次更新时自动更新?

最佳答案

编辑:代理服务的替代
这种方式与下面的答案明显不同并且更简单。它使用PlantUML proxy service:

http://www.plantuml.com/plantuml/proxy?cache=no&src=https://raw.github.com/plantuml/plantuml-server/master/src/main/webapp/resource/test2diagrams.txt
GitHub的 Markdown 幅度为:
![alternative text](http://www.plantuml.com/plantuml/proxy?cache=no&src=https://raw.github.com/plantuml/plantuml-server/master/src/main/webapp/resource/test2diagrams.txt)
此方法无法指定SVG格式(默认为PNG),并且可能无法解决注释中提到的缓存错误。

在尝试the other answer之后,我发现该服务速度很慢,而且似乎没有达到最新版本的PlantUML。
我发现了一种不那么简单的方法,但是它可以通过PlantUML.com的服务器(在云中)工作。这样,只要您可以热链接到图像,它就应该在下工作。
它利用the !includeurl function,本质上是一个间接的。 Markdown 文件链接到包括图表源的PlantUML源。此方法允许在GitHub中修改源,并且GitHub markdown文件中的任何图像都会自动更新。但这需要一个棘手的步骤来创建指向间接的URL。
  • 获取原始PlantUML源的URL,例如https://raw.githubusercontent.com/linux-china/plantuml-gist/master/src/main/uml/plantuml_gist.puml(使用joanq答案中的示例)
  • 转到http://plantuml.com/plantuml/form(或PlantText.com)并创建一个使用!includeurl URL-TO-RAW-PLANTUML-SOURCE-ON-GITHUB操作的单行PlantUML源。继续示例URL,PlantUML(元)源是:
    !includeurl https://raw.githubusercontent.com/linux-china/plantuml-gist/master/src/main/uml/plantuml_gist.puml
    
  • 从PlantUML.com的图像中复制图像URL,例如http://plantuml.com:80/plantuml/png/FSfB2e0m303Hg-W1RFPUHceiDf36aWzwVEl6tOEPcGGvZXBAKtNljW9eljD9NcCFAugNU15FU3LWadWMh2GPEcVnQBoSP0ujcnS5KnmaWH7-O_kEr8TU,并将其粘贴到您的GitHub markdown文件中。该网址不会更改。
    ![PlantUML model](http://plantuml.com:80/plantuml/png/3SNB4K8n2030LhI0XBlTy0YQpF394D2nUztBtfUHrE0AkStCVHu0WP_-MZdhgiD1RicMdLpXMJCK3TC3o2iEDwHSxvNVjWNDE43nv3zt731SSLbJ7onzbyeF)
    

  • 奖励:您甚至可以通过将URL的plantuml/png/部分修改为plantuml/svg/来访问SVG格式
    ![PlantUML model](http://plantuml.com:80/plantuml/svg/3SNB4K8n2030LhI0XBlTy0YQpF394D2nUztBtfUHrE0AkStCVHu0WP_-MZdhgiD1RicMdLpXMJCK3TC3o2iEDwHSxvNVjWNDE43nv3zt731SSLbJ7onzbyeF)
    
    GitHub上的示例
    https://github.com/fuhrmanator/course-activity-planner/blob/master/ooad/overview.md
    私有(private)回购警告
    正如davidbak在评论中指出的那样,私有(private)存储库中的原始文件将包含一个带有token=<LONGSTRINGHERE>的URL,并且该 token 会随着源文件的更新而改变。不幸的是, Markdown 会在这种情况下中断,因此将文件提交到GitHub后必须更新自述文件,这不是一个很好的解决方案。

    关于git - 如何将UML图集成到GitLab或GitHub中,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32203610/

    10-11 01:19