📝 Add document

This commit is contained in:
Wu Zhenyu 2023-03-11 14:01:59 +08:00
parent a0131e13eb
commit c38cd70f7e
No known key found for this signature in database
GPG Key ID: 0E07E1F8C0EC10AD
8 changed files with 116 additions and 14 deletions

1
.gitignore vendored Executable file → Normal file
View File

@ -1,4 +1,5 @@
_version.py
_metainfo.py
.vscode/
test_output/mag*
test_output/select*

21
.readthedocs.yaml Normal file
View File

@ -0,0 +1,21 @@
# https://docs.readthedocs.io/en/stable/config-file/v2.html
---
version: 2
build:
os: ubuntu-22.04
tools:
python: "3"
jobs:
pre_build:
- pip install .
sphinx:
configuration: docs/conf.py
formats:
- pdf
python:
install:
- requirements: docs/requirements.txt

0
LICENSE Executable file → Normal file
View File

0
README.md Executable file → Normal file
View File

51
docs/conf.py Normal file
View File

@ -0,0 +1,51 @@
r"""Configure the Sphinx documentation builder.
https://www.sphinx-doc.org/en/master/usage/configuration.html
"""
from mulimgviewer import __version__ as version # type: ignore
from mulimgviewer._metainfo import author, copyright, project # type: ignore
__all__ = ["version", "author", "copyright", "project"]
# -- Path setup --------------------------------------------------------------
# If extensions (or modules to document with autodoc) are in another directory,
# add these directories to sys.path here. If the directory is relative to the
# documentation root, use os.path.abspath to make it absolute, like shown here.
# -- Project information -----------------------------------------------------
language = "en"
# -- General configuration ---------------------------------------------------
# Add any Sphinx extension module names here, as strings. They can be
# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom
# ones.
extensions = [
"sphinx.ext.autodoc",
"myst_parser",
"sphinxcontrib.eval",
]
myst_heading_anchors = 3
myst_title_to_header = True
# Add any paths that contain templates here, relative to this directory.
templates_path = ["_templates"]
# List of patterns, relative to source directory, that match files and
# directories to ignore when looking for source files.
# This pattern also affects html_static_path and html_extra_path.
exclude_patterns = ["_build", "Thumbs.db", ".DS_Store"]
# -- Options for HTML output -------------------------------------------------
# The theme to use for HTML and HTML Help pages. See the documentation for
# a list of builtin themes.
#
# Add any paths that contain custom static files (such as style sheets) here,
# relative to this directory. They are copied after the builtin static files,
# so a file named "default.css" will overwrite the builtin "default.css".
# html_static_path = ["_static"]

25
docs/index.md Normal file
View File

@ -0,0 +1,25 @@
<!-- markdownlint-disable MD041 -->
```{toctree}
---
hidden:
glob:
caption: resources
---
resources/*
```
```{toctree}
---
hidden:
caption: Index
---
genindex
modindex
search
```
```{include} ../README.md
---
relative-docs: docs
---
```

View File

@ -1,5 +1,6 @@
# MulimgViewer开发指南
# 0. 加入我们吧!
## 0. 加入我们吧!
**初衷**目前的市面上的图像浏览器不能同时显示多张图像。2020.8.10诞生的MulimgViewer希望可以让大家方便地进行多张图像的显示和比较。恍惚一世希望能在这个世界留下痕迹。
**定位**MulimgViewer即multi-image viewer。该软件**核心功能**是:多张图像并行显示、比较。
@ -28,7 +29,7 @@
3. 正常的开发流程fork到自己本地->新建一个分支->实现功能->自行调试成功->合并到主分支。
4. 如果您希望深度地、持续地参与到项目的开发中,可以邮件(liujiawei18@mails.ucas.ac.cn)联系我。我会邀请您开发此软件,您可以获得直接访问该项目的权限,这有利于快速及时地更新主分支。
# 1. 文件说明
## 1. 文件说明
项目框架:
```
MulimgViewer
@ -56,15 +57,15 @@ MulimgViewer
- README.md # 12. 用户readme
- DEV_README.md # 13. 开发readme
```
# 2. 开发流程
## 2.1 GUI的创建
## 2. 开发流程
### 2.1 GUI的创建
GUI使用[wxFormBuilder](https://github.com/wxFormBuilder/wxFormBuilder)创建。wxFormBuilder的安装
1. window平台可以直接下载[exe](https://github.com/wxFormBuilder/wxFormBuilder/releases)。
2. linux平台可以下载`.deb`,或者使用`.flatpak`。
3. ubuntu18.04下的安装,可以见[参考](https://nachifur.blog.csdn.net/article/details/107702485).
4. 目前MulimgViewer使用的wxFormBuilder版本为v3.10.1。大家也可以使用最新的版本。
## 2.2 编写实现GUI的回调函数
### 2.2 编写实现GUI的回调函数
为了分离GUI和功能实现对于`MulimgViewer/gui`路径下的文件,不建议手动直接修改。具体的操作如下:
1. wxFormBuilder创建GUI文件`MulimgViewer/gui/main.fbp`。
2. 使用自动生成代码,生成`MulimgViewer/gui/main_gui.py`。只需在wxFormBuilder的GUI中点击代码生成按钮即可生成`.py`。
@ -77,22 +78,22 @@ GUI使用[wxFormBuilder](https://github.com/wxFormBuilder/wxFormBuilder)创建
* [wxpython doc](https://docs.wxpython.org/index.html)
* [wxpython 自定义事件、线程安全、多线程交互、版本更新](https://nachifur.blog.csdn.net/article/details/124809333)
## 2.3 跨平台的支持
### 2.3 跨平台的支持
MulimgViewer的所有功能均采用python编写这保证了跨平台的使用。但是windows和linux的路径是有区别的。**直接使用`D:\ncfey\Desktop\`,是非常糟糕的**,这会破坏跨平台。因为我们**强烈建议**使用:
```
from pathlib import Path
```
[pathlib使用说明](https://zhuanlan.zhihu.com/p/13978333)
## 2.4 readme的维护
### 2.4 readme的维护
* 当您提出一个issue或者决定参与该项目的开发可以添加到[README.md-7. 未来增强功能](https://github.com/nachifur/MulimgViewer#7.0)以及[wiki-7. Future enhancements](https://github.com/nachifur/MulimgViewer/wiki#7.0)。
* 当您完成一个功能的时候可以在issue中添加该功能的`md`说明。在下一个版本release的时候我们会更新`README.md`仅包含最新release版本的功能介绍
* 当您完成一个功能的时候,可以添加到[README.md-8. 致谢](https://github.com/nachifur/MulimgViewer#7.0)以及[wiki-8. Acknowledgements](https://github.com/nachifur/MulimgViewer/wiki#8.0)。
# 3. Release
## 3. Release
我们的下一个release版本的计划可见[projects](https://github.com/nachifur/MulimgViewer/projects?type=classic)。
## 3.1 window的打包
### 3.1 window的打包
1. 安装:
```
pip install wxpython pillow pytest-shutil numpy requests
@ -112,10 +113,10 @@ pyinstaller -D -w -i mulimgviewer.ico --add-data "mulimgviewer.ico;." --add-data
```
* 使用createinstall打包成可安装的`.exe`。[createinstall使用](https://blog.csdn.net/qq_41811438/article/details/103092610)
## 3.2 linux/ios/arm等平台的打包
### 3.2 linux/ios/arm等平台的打包
ubuntu的打包可以使用`dpkg`。个人目前不了解其他平台的打包期待大家可以帮助打包MulimgViewer献上最真诚的感谢
## 3.3 命名
### 3.3 命名
```
MulimgViewer_3.9.3_win10_amd64_Portable.exe
MulimgViewer_3.9.3_win10_amd64_Setup.exe
@ -123,7 +124,7 @@ MulimgViewer_3.9.3_ubuntu_amd64.deb
MulimgViewer_3.9.3_ios_amd64.ipa
```
## 3.4 镜像维护
### 3.4 镜像维护
我们目前支持以下两个镜像release版本需要推送到这两个站点
* [**国内gitee镜像项目**](https://gitee.com/nachifur/MulimgViewer)
* [**果壳OpenCas镜像项目**](https://github.com/opencas/MulimgViewer)

View File

@ -1,5 +1,5 @@
[build-system]
requires = ["setuptools >= 45", "setuptools_scm[toml] >= 6.2"]
requires = ["setuptools_scm[toml] >= 6.2", "setuptools-generate"]
build-backend = "setuptools.build_meta"
# https://setuptools.pypa.io/en/latest/userguide/pyproject_config.html
@ -59,7 +59,7 @@ Download = "https://github.com/nachifur/mulimgviewer/releases"
"Bug Report" = "https://github.com/nachifur/mulimgviewer/issues"
Source = "https://github.com/nachifur/mulimgviewer"
[project.scripts]
[project.gui-scripts]
mulimgviewer = "mulimgviewer.__main__:main"
[tool.setuptools.dynamic.dependencies]
@ -71,6 +71,9 @@ file = "requirements/dev.txt"
[tool.setuptools_scm]
write_to = "src/mulimgviewer/_version.py"
[tool.setuptools-generate]
write-to = "src/mulimgviewer/_metainfo.py"
[tool.black]
# some code generated by wxFromBuilder is too long
line-length = 240