2016-01-13 35 views
1

我正在记录我与狮身人面像的matlab代码。我正在使用包sphinxcontrib-matlabdomainsphinx的继承图matlab

我的目录树如下:

me:~/.../doc$ tree ../ 
../ 
├── doc 
│   ├── conf.py 
│   ├── make.bat 
│   ├── Makefile 
│   ├── index.rst 
│   ├── BaseClass.rst 
│   └── DerivedClass.rst 
├── LICENSE.md 
├── README.md 
└── src 
    ├── BaseClass.m 
    └── DerivedClass.m 

问题是当我想要展示的继承图。我在config.py文件添加必要的东西:

matlab_src_dir = os.path.abspath('..') 

extensions = [ 
    'sphinx.ext.autodoc', 
    'sphinx.ext.inheritance_diagram', 
    'sphinx.ext.graphviz', 
    'sphinx.ext.viewcode', 
    'sphinxcontrib.matlab', 
] 
primary_domain = 'mat' 

而在index.rst文件

Welcome to BGK's documentation! 
=============================== 

I am trying to have a diagram here... 

.. inheritance-diagram:: BaseClass DerivedClass 
    :parts:2 

.. graphviz:: 

    digraph { 
     "From here" -> "To" -> "Somewhere"; 
     "From here" -> "To" -> "Somewhere else"; 
    } 

,并在输出指令inheritance-diagram被忽略我有以下的,直接获得下图是我用来测试我可以绘制图表的。

enter image description here

是否有任何不兼容绘制继承与图狮身人面像Matlab的班?有什么办法解决这个问题吗?谢谢!

+0

您可能需要包含模块以使您的继承图工作:'.. inheritance-diagram :: yourModule.BaseClass yourModule.DerivedClass' – dfri

+0

Hello @dfri。我唯一可以考虑作为模块的是包含该文件的文件夹。如果我将它添加为'.. inheritance-diagram :: src.BaseClass src.DerivedClass',它仍然不起作用。我也尝试在所有可能的组合中添加或删除扩展名.m。它仍然没有工作。 – sebas

+0

我明白了...您的第一个文件对我来说看起来很好。希望别人能够发现错误并帮助你。 – dfri

回答

1

狮身人面像不支持这一点。内置的sphinx.ext.inheritance_diagram扩展名仅用于Python域。它不适用于Matlab。如果确实如此,我相信它会在Sphinx文档中这样说(并且浏览sphinx/ext/inheritance_diagram.py中的源代码证实它仅适用于Python)。

Matlab的唯一继承图可以工作,如果其他扩展提供了功能。您使用的sphinxcontrib-matlabdomain扩展没有。