我目前正在决定是否将我的开发人员文档从 Sphinx 迁移到 Docusaurus。阻碍我的一件事是 Docusaurus(实际上是一般的 Markdown)不支持从其他文件中提取特定的文本行。
Sphinx (reStructuredText) 允许您在另一个文件上的和标记include之间发送文本- 对于从功能齐全的脚本中提取代码片段非常有用:start-afterend-before
.. include:: ./scripts/matts_script.py
:start-after: # marker_1
:end-before: # marker_2
Run Code Online (Sandbox Code Playgroud)
那么 Docusaurus 有办法做到这一点吗?有人做过吗?我想也许可以利用 MDX 和 JSX,但这实际上只是一个猜测。
我刚开始使用Qt(用C++编写),所以我按照我在网上找到的"你好,世界"的例子.我在目录hello中创建了程序hello.cpp:
#include <QtGui>
int main(int argc, char *argv[]) {
QApplication app (argc, argv);
QLabel label ("Hello, world!");
label.show();
return app.exec();
}
Run Code Online (Sandbox Code Playgroud)
我跑了:
qmake -project
qmake hello.pro
make
Run Code Online (Sandbox Code Playgroud)
一切都正确编译,我能够运行./hello.然后,作为一个冒险的人,我尝试修改文件:
#include <QtGui>
#include <QtWebKit>
int main(int argc, char *argv[]) {
QApplication app (argc, argv);
QLabel label ("Hello, world!");
QWebPage page;
label.show();
return app.exec();
}
Run Code Online (Sandbox Code Playgroud)
我重申了这三个命令,但现在当我运行make时,我收到以下错误:
hello.cpp:2: fatal error: QtWebKit: No such file or directory
compilation terminated.
make: *** [hello.o] Error 1
Run Code Online (Sandbox Code Playgroud)
我检查了Makefile,并将INCPATH变量定义为
INCPATH = -I/usr/share/qt4/mkspecs/linux-g++ -I. -I/usr/include/qt4/QtCore -I/usr/include/qt4/QtGui -I/usr/include/qt4 -I. -I.
Run Code Online (Sandbox Code Playgroud)
它显然缺少-I/usr/include/qt4/QtWebKit.LIBS变量也缺少-lQtWebKit.手动添加这些会导致编译成功.我究竟做错了什么?我需要添加什么才能使qmake生成正确的Makefile?