# NoHtml
**Repository Path**: Verlif/NoHtml
## Basic Information
- **Project Name**: NoHtml
- **Description**: 使用NoHtml来对Markdown文档进行管理。不需要任何编程知识,只需要Java环境即可使用。
- **Primary Language**: Java
- **License**: Apache-2.0
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2022-02-24
- **Last Updated**: 2022-06-15
## Categories & Tags
**Categories**: Uncategorized
**Tags**: Markdown, Java
## README
# NoHTML
`NoHTML`是一个用于整理`Markdown`文件的工具。 与`Jekyll`等网页生成工具不同,尽管`NoHTML`生成的文件可以导航,但`NoHTML`的主要目标是作为`Markdown`文件的整理工具。
## 一些问题
1. `NoHTML`可以做什么?
我不知道,反正我目前是把这个用于做个人资料整理。本地一份,然后放GitHub仓库一份。用index.md作首页,开启仓库的Pages,还可以当做一个个人资料库。
这个 [records](https://github.com/Verlif/records) 就是用`NoHTML`生成的。
2. `NoHTML`不可以做什么?
* 不能生成网站相关数据
* 不能对某个文档进行评论
* 不可以设定主题
* 没有拓展插件
* 二次开发需要Java基础
3. 为什么是`NoHTML`?
* 简单。不需要任何编程知识,不需要安装,下载后直接运行即可。
* 轻量。只会生成配置文件、备份信息与导航文件。
* 纯净。对原`markdown`文件零修改。
* 统一。完全基于`markdown`使用逻辑,没有`HTML`文件。
* 同步。简单的多端同步方式与自动备份。
## 使用
可以直接下载 [release](https://github.com/Verlif/NoHtml/releases) 的jar包,也可以将此项目`pull`下来,进行自定义修改。
1. 创建管理根目录(例如`MyPage`)
2. 将jar包放在管理根目录中(`MyPage/NoHTML.jar`)
3. 在管理根目录下创建docs文件夹用于放置需要管理的MD文件(`MyPage/docs`)

4. 运行jar包(例如`java -jar NoHTML.jar`)

5. 完成,访问`MyPage`目录下的`index.md`。

这里有NoHtml的详细使用教程 [NoHtml使用教程](https://verlif.top/records/docs/教程/NoHtml教程/NoHtml的使用与拓展.html)
## 说明
* __未归档__。直属`docs`文件夹的MD文件属于`未归档`文件,可以在首页的未归档中找到。
用到的本地图片建议放在`docs`文件夹下,例如在`docs\dayliy\images`存放`daily`的图片,方便自动备份。
* __目录结构__。在`docs`文件夹下的子文件夹中的所有MD文件都属于`标签归档`文档。归档标签允许有数个层级。所有的标签可以在首页的标签归档中找到。
* __多端同步__。在使用多端同步时,文件的创建日期会被修改,这回导致标签页面中的日期出现错误,所以请只在一端进行提交与更新操作。 或通过`--recovery`参数恢复文件信息。
* __记录__。每次生成管理目录时,都会在`records`下生成记录文件。记录文件保留了`docs`下所有文件及文件夹的标签信息,用于在文件被复制或意外改动后时间信息被刷新后的恢复操作。
* __备份__。在默认开启备份的状态下,每次生成管理目录都会生成新的备份文件,包括了目录文件、源文档文件、配置文件、记录文件。
* __标签__。标签是指`Markdown`文档的上层文件夹名称。当前版本 __不允许标签重复__,例如`happy/day`与`bad/day`都使用的`day`标签,就是重复的。
## 启动参数
当用户通过双击或是`java -jar NoHtml.jar`等不带参数的方式运行时,会执行默认管理目录生成流程。
也可以通过指定参数来添加特殊步骤:
* `--help`
输出所有的参数及说明。
* `--recovery docs-2022-03-08-11-46-21-record.properties`
将记录文件`records/docs-2022-03-08-11-46-21-record.properties`恢复到当前的`docs`文件夹。
此指令一般用于在`docs`文件夹在复制等操作后,文件的创建、修改时间被刷新,将之前的文件信息记录恢复。
当此指令不带参数,例如`--recovery`时,会寻找合适的(前缀以`docs`开头的文件)最新修改的文件信息记录来恢复。
* `--exit`
终止程序。例如`--recovery --exit`
表示在恢复了最新的文件信息后,不再继续生成管理目录。
* `--config`
临时修改配置,让后续的生成规则依据修改后的配置执行。通过此方式修改的配置不会保留。
参数格式为`[configParam]=[value]`,同时修改多个参数可以使用`;`做分割,也可以多次使用`--config`。
例如`--config backupMax=2;recordMax=2`,则在本次的备份文件会被限制在2份,记录也只会保留最新的两份。
启动参数请以如下方式添加:
```shell
java -jar Nohtml.jar --key value --key2 value2
```
## 配置文件
### config.properties
总配置文件,用于设定参数。
请尽量不要使用Windows的文本编辑器来编辑,因为这个软件编辑后,会在文本的前面加上一个特有的标记,
```properties
# 档案标题
title=Verlif & Idea
# 首页的最新更新文件显示数量
size=5
# 文件概览的最长显示字数
length=25
# 首页文件名(支持通过英文“,”创建多个文件,第一个会作为主页面)
indexName=readme.md, index.md
# 标题分隔符,允许使用长字符串,例如ヾ(≧▽≦*)o
titleSplit=○
# 是否开启备份
enableBackup=true
# 备份文件数量上限(当开启备份时生效,数量到达上限时,会优先删除旧的备份)
backupMax=10
# 记录文件数量上限,记录文件主要用在多端同步导致的文件创建时间与修改时间恢复。
recordMax=5
```
------
### config/profile.md
首页概述md文件,里面的内容会被复制到生成的首页中。 位置在标题与最新更新文件列表中间。
------
### config/footer.md
首页结语md文件,里面的内容会被复制到生成的首页中。 位置在标题列表后面。
## 目录结构
档案管理器需要一个管理器的目录,用户的所有需要管理的档案需要放置在其下的`docs`文件夹中
| 名称 | 文件类型 | 文件说明 | 是否手动创建 |
|-------------------|------|---------|--------|
| index.md | 文件 | 首页档案 | 否 |
| docs | 文件夹 | 档案根目录 | 是 |
| config.properties | 文件 | 配置文件 | 否 |
| config | 文件夹 | 配置文件附录 | 否 |
| tags | 文件夹 | 标签档案文件夹 | 否 |
| backs | 文件夹 | 备份文件夹 | 否 |
| records | 文件夹 | 记录文件夹 | 否 |