既然要学习D语言,
就需要用D语言去写点东西。
写东西的话,
一定会用到注释,
当然,对于一些自己整理的工具类,
也有必要导出文档,
方便以后查看。
看了D语言的介绍,
DMD编译器本身支持创建文档的参数“-D”,
而且,
文档注释的方法与JavaDoc的方法也比较类似,
所以,很快就可以使用了。
但是,
利用DMD生成的文档画面很“傻”,
一点也不活泼,
找到了一个叫“CandyDoc”的工具,
可以结合DMD生成带导航页的文档,
而且,提供了默认的css,
画面也比较好看。
下面记录了使用CandyDoc的方法,
以便日后查阅。
1、在D源代码中追加文档注释的方法。
http://www.digitalmars.com/d/2.0/ddoc.html
注释必须以“/**”开头。
常用的一些标记是:
常用标记 写道
Authors: 作者
Date: 日期
Deprecated: 废弃的
Params: 参数名=参数的描述
Returns:返回值的描述
2、例子
分别有两个D源文件,
目录结构是:
目录结构 写道
.\src\Main.d
.\src\sinpool\utils\splutils.d
module Main;
import std.stdio;
import sinpool.utils.splutils;
/**
* 练习
* Params: args=命令行参数
* Returns: 结束状态(0:正常结束)
*/
int main(string[] args){
writeln("===>",SplUtils.isEmpty("\tt"));
return 0;
}
module sinpool.utils.splutils;
import std.string;
import std.stdio;
/**
* 这是工具类
*Authors: sinpool
*Date: 2011-05-21
*/
public class SplUtils{
/**
*判断字符串是否为空。
*Params: x_str=需要判断的字符串
*Returns: 是空返回true,否则返回false
*/
public static bool isEmpty(string x_str){
if (isEmpty2(x_str)){
return true;
}
string p_str = x_str;
p_str = tr(p_str," ","");
p_str = tr(p_str," ","");
p_str = tr(p_str,"\t","");
p_str = strip(p_str);
return isEmpty2(p_str);
}
/**
*判断字符串是否为空。
*Params: x_str=需要判断的字符串
*Returns: 是空返回true,否则返回false
*/
public static bool isEmpty2(string x_str){
string p_str = x_str;
p_str = chop(p_str); // 去掉结尾符(\0、CR、CR-LF)
if ( p_str==null ){
return true;
}
if ( p_str=="" ){
return true;
}
return false;
}
}
注:
有定义class时,
一定要为class写一段文档注释,
否则,
不能将该module中的注释导出为文档。
3、CandyDoc的使用
从官网下载CandyDoc。
http://www.dsource.org/projects/helix/wiki/CandyDoc
解压缩后,查看CANDYDOC.txt文件,
里面记述了使用方法。
我使用了很多的默认theme,
基本没有作什么修改。
我准备把文档生成到src\docs中,
所以,目前的目录结构变成了下面这样:
目录结构 写道
.\src\Main.d
.\src\sinpool\utils\splutils.d
.\src\docs
①
将解压缩后的candydoc目录复制到要生成文档的目录。
我放到了“.\src\docs”里。
②
修改candydoc\modules.ddoc文件,
将要生成文档的包和module写进去。
修改后的样子是:
写道
MODULES =
$(MODULE .Main)
$(MODULE sinpool.utils.splutils)
因为只生成两个module的文档,
所以,就把他们写上。
第一行的“.Main”,
是指在src目录中的Main.d文件。
目前的目录结构变成了:
目录结构 写道
.\src\Main.d
.\src\sinpool\utils\splutils.d
.\src\docs\candydoc
③
结合CandyDoc配置文件,
运行带“-D”参数的dmd命令,
以便生成具有CandyDoc风格的文档。
进入src目录,运行下面的命令:
写道
dmd Main.d sinpool\utils\splutils.d docs\candydoc\candy.ddoc docs\candydoc\modules.ddoc -D -Dddocs
注:
如果要生成很多源代码对应的文档,
估计要写一个脚本,
或者找找其他的辅助工具进行使用了。
4、效果
至此,
在src\docs下面会生成html的文档。
下面是生成的“sinpool\utils\splutils”的样子:


- 大小: 53.2 KB
分享到:
相关推荐
`CandyDoc`是一款用于为`C++`源代码生成文档的工具,旨在简化这一过程,提高开发效率。这篇博文将深入探讨如何使用`CandyDoc`为你的`D`源代码生成高质量的文档。 首先,`CandyDoc`是一款针对`D`语言设计的文档生成...
该资源为joblib-1.1.0-py2.py3-none-any.whl,欢迎下载使用哦!
内容概要:本文详细介绍了如何使用MATLAB/Simulink R2015b搭建Buck-Boost变换器的开环和闭环控制仿真模型。首先,作者解释了Buck-Boost变换器的基本构成及其在电源设计中的重要性。接着,逐步指导读者构建开环模型,包括设置关键参数如PWM频率、占空比、输入电压等,并展示了开环控制下的输出特性。随后,引入了PID控制器进行闭环控制,强调了PID参数的选择与调整方法,以及如何通过增加电压采样和误差比较来提高系统的稳定性。此外,还分享了一些常见的仿真错误及解决方案,如电感值选取不当、二极管模型过于理想等问题。最后,提供了几个有趣的实验案例,如动态改变占空比、突变负载等,以展示闭环控制的优势。 适合人群:具有一定电力电子和MATLAB/Simulink基础的技术人员或学生。 使用场景及目标:适用于希望深入理解Buck-Boost变换器工作原理及其控制策略的研究者和技术爱好者。通过动手实践,掌握开环与闭环控制的区别,学会优化PID参数,提升电源设计能力。 其他说明:文中附有多处代码片段和实用技巧,有助于读者更好地理解和应用所学知识。同时提醒读者注意不同MATLAB版本间的兼容性问题。
2023年上海市高等学校计算机等级考试.docx
能检测死锁,输出相关代码便于排查
电子商务物流业务管理教材.pptx
基于stm32的控制底层
2023年全国计算机等级考试三级数据库试题.doc
2023年计算机二级考试操作题真题.doc
2023年自考管理系统中计算机应用试题及答案.doc
资源内项目源码是来自个人的毕业设计,代码都测试ok,包含源码、数据集、可视化页面和部署说明,可产生核心指标曲线图、混淆矩阵、F1分数曲线、精确率-召回率曲线、验证集预测结果、标签分布图。都是运行成功后才上传资源,毕设答辩评审绝对信服的保底85分以上,放心下载使用,拿来就能用。包含源码、数据集、可视化页面和部署说明一站式服务,拿来就能用的绝对好资源!!! 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、大作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.txt文件,仅供学习参考, 切勿用于商业用途。
2023年电子科技秋网与网站设计在线作业.doc
内容概要:本文详细介绍了基于脉振高频电压注入的无速度传感器控制系统。该方法通过向电机定子绕组注入高频电压信号(如2kHz),利用高频响应电流中的转子位置信息进行实时定位。文中展示了具体的代码实现,包括信号注入、带通滤波、正交锁相环以及位置跟踪观测器的设计。此外,讨论了参数整定、抗干扰措施(如伪随机频移键控)和实际调试过程中遇到的问题及其解决方案。该方法适用于低速或零速情况,能够显著提高位置估计的准确性。 适合人群:从事电机控制、自动化控制领域的工程师和技术研究人员。 使用场景及目标:①用于工业伺服系统中,特别是那些对成本敏感或安装空间有限的应用;②解决传统方法在低速或零速情况下无法准确估计转子位置的问题;③提供一种可靠的无速度传感器控制方案,减少硬件成本和维护难度。 其他说明:该方法虽然在低速时表现出色,但在高速时精度有所下降,可以通过混合观测策略进行优化。同时,实际应用中需要注意高频信号带来的额外损耗和参数敏感性问题。
2023年计算机二级基础知识重点总结.docx
该资源为joblib-1.1.0.tar.gz,欢迎下载使用哦!
An-225大型运输机实体装配模型由225个实体零件基元组成,分为21个子装配模块。 该模型是通过缩放一个基本的8.5英寸x11英寸三视图原理图而开发的。 因此,其精度有所降低。
matlab
2024年大数据软件项目深度研究分析报告.docx
2023年四川省一级计算机等级考试训练题.doc
矢量边界,行政区域边界,精确到乡镇街道,可直接导入arcgis使用