使用:Ford 将 .f95 生成HTML文档, 个人笔记
1.准备一台Centos 7虚拟机
2.安装python3
# 更新一下
yum update
# 安装python相关依赖
sudo yum groupinstall -y "Development Tools"
sudo yum install -y zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel libffi-devel
# 下载Python 3.8源码,使用 ford 必须python 3.6(不含)以上,>= 3.7
# 创建存放源码的位置,需要安装 wget 没有安装的需要安装:
yum install wget
# 切换路径,我把源码放在/opt/tools/下面
cd /opt/tools/
# 下载
wget https://www.python.org/ftp/python/3.8.0/Python-3.8.0.tgz
# 解压源码
tar xvf Python-3.8.0.tgz
# 名字太长我修改一下:
mv Python-3.8.0 python3
# 编译安装
cd python3/
./configure --enable-optimizations
make altinstall
# 验证安装
python3.8 --version
# 创建软连接(可省略)
ln -s /usr/local/bin/python3.8 /usr/local/bin/python3
3.安装 pip
# 安装EPEL仓库,因为pip包含在EPEL仓库中:
sudo yum install epel-release
# 如果你想使用Python 3的pip,你需要先安装Python 3,然后安装pip3:
# 安装Python 3:
sudo yum install python3
# 安装pip3:
sudo yum install python3-pip
# 验证
pip3 -V
# 安装完成后,你可以通过运行pip或pip3来使用对应的pip版本。例如,为Python 3安装包:
pip3 install package_name
4.虚拟环境安装ford
安装虚拟环境:
# 安装virtualenv:
pip3 install virtualenv
# 创建一个虚拟环境:
python3.8 -m venv my_env
# 也可以直接使用 virtualenv my_env 创建,但是python版本是3.7以下的,创建出来就无法使用(最好像上面一样带上python3.8)
# virtualenv my_env
# 激活虚拟环境:
source my_env/bin/activate
# 在虚拟环境中安装ford包:
pip3 install ford
# 检查
ford -V
* 我这里是ford version 7.0.6 // 如果你使用的python3.7 以下版本是不行的,ford version 6.1.13
5.运行ford
# 运行之前先上传源码,创建好存放源码的文件夹
源码:/opt/tran_code/
输出: /opt/tran_out/
因为我的源码中有编码格式不是UTF-8的:
使用脚本转换之后的路径:/opt/tran_convert/
脚本:
#!/bin/bash
# 源文件目录
source_dir="/opt/tran_code/"
# 目标文件目录
target_dir="/opt/tran_convert/"
# 转换所有的 .f95 文件
for file in "$source_dir"/*.f95; do
if [ -f "$file" ]; then
filename=$(basename "$file")
target_file="$target_dir/${filename%.*}.f95"
iconv -f latin1 -t UTF-8 "$file" -o "$target_file"
echo "Converted $file to $target_file"
fi
done
# 运行脚本:注意脚本存放的路径
./convert.sh
# 现在 tran_convert 才是编码统一UTF-8之后的文件夹
============================================>
==============******开始转换******=================>
============================================>
# 注意你主程序没有program main 需要加在第一行
# 需要创建一个空的 tran.ford
vim tran.ford
# 执行转换命令
ford -d /opt/tran_convert -p /opt/tran_out --no-search -g -o /opt/tran_out/doc /opt/tran.ford
# ford 可选
-h, --help- 显示此帮助消息并退出
-d SRC_DIR, --src_dir SRC_DIR- 包含项目所有源文件的目录(默认值./src:)
-p PAGE_DIR, --page_dir PAGE_DIR-包含静态页面的目录(默认值:无)
-o OUTPUT_DIR, --output_dir OUTPUT_DIR- 放置输出文件的目录(默认值./doc:)
-s CSS, --css CSS- 输出的自定义样式表
-r REVISION, --revision REVISION-源代码版本号或项目修订记录
--exclude EXCLUDE- 不应包含在文档中的文件列表
--exclude_dir EXCLUDE_DIR- 不应包含在文档中的目录列表
-e EXTENSIONS, --extensions EXTENSIONS- 需要扫描文档的扩展(默认值f90, f95, f03, f08:)
-m MACRO, --macro MACRO- 预处理器宏(可选带值)应用于预处理文件
-w, --warn- 显示未记录项目的警告
-f, --force-即使出现致命错误,也尝试继续读取文件
-g, --graph- 生成用于文档输出的图表
--no-search- 不处理文档以产生搜索功能
-q, --quiet- 抑制正常输出
-V, --version-显示程序的版本号并退出
--debug- 如果发生致命异常,则显示回溯并打印错误行
-I INCLUDE, --include INCLUDE-要搜索include文件的目录列表
--externalize- 在 json 数据库中提供有关 Fortran 对象的信息,以供其他 FORD 项目参考。
-L EXTERNAL, --external_links EXTERNAL -
链接到的外部项目。
如果在源中找不到实体,FORD 将尝试在这些外部项目中查找它。如果这些项目具有由 FORD 使用 externalize 选项生成的文档,则将在文档中放置一个链接,无论该实体被引用到哪里。FORD 将在提供的路径中查找 modules.json 文件。
--config CONFIG- 任何其他 FORD 选项都以分号分隔的 TOML 字符串形式显示。通过此字符串设置的选项优先级低于其他命令行选项
6.转换成doc文档
# 生成 HTML 后,您可以使用 pandoc 工具将 HTML 转换为 DOC 和 PDF 格式。
# 安装 Pandoc
sudo yum install pandoc
# 只能单个页面转换,意义不大,可以研究别的
# 转换 HTML 为 DOC
pandoc /opt/tran_out/doc/index.html -o /opt/tran_out/doc/tran.docx