知道了图片上传方式后,下面就是详细说明如何配置 Azure Blob 图片上传服务,配置好之后,就能非常方便的把 Markdown 文档中的图片上传到 Azure Blob 了。
首先要去 “设置 - 发布服务” 中,新增 Azure Blob 图片上传服务,这时会显示如下图的资料填写界面。下图是 Mac 版 MWeb 的填写界面,iPad/iPhone 平台的也是一样的。

下面将详细说明各个填写项目。
名称: 名称可以填入自己想要的名称,能识别这个图片上传服务就可以了。
存储帐户: 和 存储容器:,这两个可以在 Azure 的管理界面中找到,如果你没有存储帐户,可以先创建一个。创建了存储帐户后,就可以在存储帐户里面创建存储容器了。Azure Blob 有一个快速配置 Blob 里的文件为静态网站的方法,就是创建了存储帐户后,进入这个存储帐户,选择 “数据管理 - 静态网站”,点击 “启用” 按钮就可以了。 Azure 会自动在这个存储帐户生成一个名为 $web 的存储容器,并且提供一个临时域名 https://mwebbob.z7.web.core.windows.net/,如下图:

访问密钥: 是跟存储帐户绑定的,进入存储帐户后,选择 “安全性和网络 - 访问密钥” 就可以找到访问密钥了,如下图所示:

域名: 如果有为这个存储桶绑定了域名,请填入自己的域名。如果没有,可以使用上面说到的静态网站的临时域名,我这里是:https://mwebbob.z7.web.core.windows.net/。
文件保存路径: 如非必要,请不要改动,如果你要改动,应该也知道是什么意思了。
以下是填写完整后的截图:

知道了图片上传方式后,下面就是详细说明如何配置 Amazon S3 图片上传服务,配置好之后,就能非常方便的把 Markdown 文档中的图片上传到 Amazon S3 了。
首先要去 “设置 - 发布服务” 中,新增 Amazon S3 图片上传服务,这时会显示如下图的资料填写界面。下图是 Mac 版 MWeb 的填写界面,iPad/iPhone 平台的也是一样的。

下面将详细说明各个填写项目。
名称: 名称可以填入自己想要的名称,能识别这个图片上传服务就可以了。
AWS 区域: 和 存储桶名称:,创建了存储桶之后就知道了,其中,AWS 区域你可以点击 “选择区域...” 按钮进行选择,或者直接填入。如下图,我这里的 AWS 区域为:ap-southeast-2,存储桶名称为:mwebapp。
另外要注意的是,不支持名称中有 . 的存储桶,比如说 s3.sample.com 这种存储桶是不支持的。具体请参考 S3 的存储桶命名规则文档。

访问密钥: 和 机密访问密钥: 这两个,需要在 Identity and Access Management (IAM) 中创建用户并分配权限。这部分相当复杂,我只是简单地创建一个名为 mweb 的用户,并授权它 AmazonS3FullAccess 的权限,如下图:

授权后,再在 “安全凭证” 那里,创建访问密钥,如下图所示:

创建时的 “访问密钥最佳实践和替代方案” 的选择中,我选择的是 “其他”,这样就能得到 访问密钥: 和 机密访问密钥: 了,如下图所示:

域名: Amazon 上有一份非常详细的文档,说明了如何绑定域名到存储桶上,请参考:教程:在 Amazon S3 上配置静态网站,我这里会填入:http://mwebapp.s3-website-ap-southeast-2.amazonaws.com。
文件保存路径: 如非必要,请不要改动,如果你要改动,应该也知道是什么意思了。
以下是填写完整后的截图:

知道了图片上传方式后,下面就是详细说明如何配置 Cloudflare R2 图片上传服务,配置好之后,就能非常方便的把 Markdown 文档中的图片上传到 Cloudflare R2 了。
首先要去 “设置 - 发布服务” 中,新增 Cloudflare R2 图片上传服务,这时会显示如下图的资料填写界面。下图是 Mac 版 MWeb 的填写界面,iPad/iPhone 平台的也是一样的。

下面将详细说明各个填写项目。
名称: 名称可以填入自己想要的名称,能识别这个图片上传服务就可以了。
帐户 ID: 和 存储桶名称:,这两个可以在 Cloudflare R2 的管理界面中找到,如果你没有存储桶,可以创建一个,如下图:

访问密钥: 和 机密访问密钥: 这两个,需要点击上图中的 “管理 R2 API 令牌”(就在帐户 ID 下面) 来产生,下图是创建这两个密钥的示例:

点击 “创建 API 令牌” 按钮后,就会得到 访问密钥: 和 机密访问密钥: ,如下图所示,请分别填入就可以了。

域名: 如果有为这个存储桶绑定了域名,请填入自己的域名。如果没有,Cloudflare R2 也提供了一个临时的域名,在 “R2 - 存储桶 - 设置 - R2.dev 子域” 中,如下图所示。我这里是:https://pub-e7575c891a134e899fd1c81d49f23497.r2.dev

文件保存路径: 如非必要,请不要改动,如果你要改动,应该也知道是什么意思了。
以下是填写完整后的截图:

MWeb 3 的 iCloud 同步和 MWeb 4 的有何区别?
MWeb 3 的同步是把文档库的文件夹保存在 iCloud Drive 中,由系统进行文件同步。MWeb 4 的同步是使用一个叫 CloudKit 的技术进行同步,由 MWeb 控制,不再保存在 iCloud Drive 中。 如果要使用 MWeb 4 的 iCloud 同步,需要在设置中手动点击 “存储到 iCloud 中” 按钮。
MWeb 3 的文档库如何同步到 iCloud?
如果是 macOS 版的 MWeb,请先确认是不是保存到 iCloud Drive 或者相关的云盘的文件夹中,如果是,则需要确保文档库所在的文件夹完整同步到本地。总之是先要保证当前的文档库完整。
然后,再在 偏好设置 - 文档库 中,点击 存储到 iCloud 中 按钮,然后在跳出的提示是否合并文档库选择中,选择 合并 即可。
这个提示只显示一次,如果之前来不及选择,可以先切换回本地文档库,然后退出 MWeb,并在命令行中运行:
defaults write com.coderforart.MWeb3 ckIsChooseMergeLocalToCloudKit -boolean false
然后再启动 MWeb,重新选择 存储到 iCloud 中,这样就会再次提示是否合并了。
如果是 iOS 版的 MWeb,因为原来 iOS 版的文档库就是只读的,所以需要先使用 macOS 版的 MWeb,按上面的方法把文档库同步到 iCloud。再在 iOS 版把文档库也设置为 存储到 iCloud 中 即可。
我能否手动 git 备份存储到 iCloud 中的文档库?
可以的,在 MWeb 4 中,同步用的是苹果的 CloudKit 技术,会完整的把所有文档都同步到本地的 MWeb 的一个私有文件夹中,位置就在:~/Library/Containers/com.coderforart.MWeb3/Data/Library/Application Support/MWebLibrary。
如果你想备份或者 git 备份,只需要定期备份这个位置即可。这个位置只能备份,请不要改动。
这个位置的文档库的结构是跟本地的一样的,如果你不想使用 iCloud 同步了,可以把这个文件夹复制到其它地方,再在 MWeb 中切回本地文件夹存储,再选择复制到的文件夹即可。
iCloud 同步时想要的文档版本被覆盖怎么办?
在 macOS 版本的 MWeb,可以使用菜单: 文件 - 恢复为 - 浏览所有版本,对于 iOS 版,可以点击 “...” 按钮,选择 “文档历史版本” 来恢复。要注意的是,iOS 的文档历史版本只针对文档库中 iCloud 同步的文档。 建议使用时避免多设备编辑同一文档,如果要编辑,请确认文档为最新的状态。
因为在同步过程都是无状态的,比如说当前设备网络不好,网络传输出错,CloudKit 错误等等都会造成当前的设备的文档的最新版本无法及时同步到 CloudKit,这时如果另一设备上传了文档的新版本,然后当前设备变得正常,就会收到另一设备的更新推送,这时就会更新当前设备的文档。
注意: MWeb 3.x 的用户都可以免费升级到 MWeb 4.x,升级办法是:下载 MWeb 4.x,在软件弹出的界面中会有“激活码升级”按钮,点击这个按钮即可把 3.x 的激活码兑换为 4.x 的激活码。
Mac App Store 用户: 请直接从 Mac App Store 更新即可。
提示: MWeb 2.x 升级到 4.x 需要重新付费。如果要下载 3.x 版请 点此下载 MWeb 3.x 。如果要下载 2.x 版本,请到下载 MWeb 页面的最底部下载。
MWeb 3 原来的自定义样式的 CSS 文件还在原来的地方,是在 ~/Library/Containers/com.coderforart.MWeb3/Data/Documents/themes/PreviewCSS 这个位置。然后 MWeb 4 也是支持自定义预览样式的,办法是点击 偏好设置 - 通用设置 中的 自定义主题 按钮,选择按当前模板新增主题,在出来的窗口中,取消勾选 按编辑器主题自动生成预览样式,然后把 CSS 文件的内容粘贴进去即可。
iOS 版的自定义预览样式功能,在目前的版本中还没有,不过很快会加上的。iOS 版原来的自定义的 CSS 文件,还是保留在你的手机中的,下个版本,可以在设置页最底部,点击 “导出 MWeb 3 的自定义预览样式” 来导出你自定义的 CSS 样式文件。
可查看一下是否封锁了 paddle.com 这个域名,目前 MWeb 4 用的是这家的相关服务。
目前 MWeb 4 使用的是 CommonMark 标准和 GitHub Flavored Markdown (GFM) 的语法,详细的语法请参考:
CommonMark:https://commonmark.org/help/
GitHub Flavored Markdown (GFM):https://guides.github.com/features/mastering-markdown/
语法的解析上会有一些细微的变化,比如说 ##如果不加空格,则不会解析为标题。另外,旧版的语法高亮 ==高亮== 不再支持了。真要用,只能用 HTML 的方式,比如说 <mark>高亮</mark>。
插入本地图片,之后再上传的方式不变,插入时就自动上传这个功能变了,改成独立的图片上传窗口了。使用菜单:视图 - 图片上传窗口 可以打开这个窗口。下图是 MWeb 3 到 MWeb 4 的变化图,左边的是 MWeb 3 的方式,右边是 MWeb 4 的方式:

如果有任何问题,请发送到 coderforart+233@gmail.com 这个邮箱,我通常会在 1 至 3 个工作日回复您,非常感谢!
]]>这次更新比较大,所以花的时间比较多,主要的更新有:
新编辑器(One Markdown 的编辑器)目前已整合进 MWeb 4.0 中。新编辑器完整支持 CommonMark 标准和 GitHub Flavored Markdown (GFM)。MWeb 3.x 的编辑器是跟这两个标准是有点差别的。
新编辑器的介绍请参考:One Markdown 使用说明。
新的文档库界面如下:

新的外部模式的界面如下:

主题编辑的入口为:

目前不再分开编辑器主题和预览主题,都统一为“主题”。进入主题编辑界面如下图:

原本的,本地图片上传至图床的功能不改,界面仍然为:

先上传图片再插入文档的功能有变化,改为使用单独的图片上传窗口,此窗口使用菜单:“视图 - 图片上传窗口” 可以打开,也可以点击工具栏上的 “图片上传” 按钮打开,如下图所示:

这样独立出来一个窗口,使用上会更灵活一点。
原本的 3.x 版本因为界面问题无法原生支持 M1 芯片,现在改了界面,当然是能支持了。现在的包已经是 intel 和 M1 双版本的了。
4.0 版的测试已完美结束,点击下载 MWeb 4.0 for macOS 正式版。
]]>相关问题及详细的说明请参考:One Markdown 使用说明
]]>不管是自定义还是制作,都要了解 MWeb 静态网站的生成过程。要明白生成过程,首先可以看一下 MWeb 常规的网站模板的文件结构,结构如下:
是否页面(Is Page) 所使用的模板是否页面(Is Page) 时所使用的模板你可以随便查看内置的网站模板的结构,右键网站分类,选择编辑,在模板那里,点编辑... 按钮,如果是 MWeb 自带的模板,请选择复制当前的模板到自定义模板文件夹...,复制出来,再选择 打开自定义模板所在的文件夹... 则可。**注意:**如果要修改 MWeb 自带模板,首先要先使用复制当前的模板到自定义模板文件夹...复制到自定义模板的位置,才能修改,如下图。

不选是否页面(Is Page)选项时,生成文章页的顺序为:header.html + post.html + sidebar.html + footer.html。
选中了 是否页面(Is Page) 选项后,生成文章页的顺序为: header.html + page.html + footer.html。
更高级的用法:
做网站经常要定制一些页面,在文档中,选中了 是否页面(Is Page) 选项后,如果要自定这页,可以新增一个名称为:page-{HTML 文件名}.html 的模板页面,这样生成文章页的顺序会变为:header.html + page-{HTML 文件名}.html + footer.html。{HTML 文件名} 说的就是下图的 HTML 文件名: 所填入的名字。

在 MWeb 的静态网站生成中,可以自由指定一个文档为首页,方法非常简单,在 HTML 文件名: 中填入 index 即可,这样生成时,就会生成 index.html 页了,如下图。

如果要自定义,比如说像 MWeb 官网 https://zh.mweb.im/index.html 这样的首页,则是要自定义了,方法很简单,在主题文件夹里新增一个名为:page-index.html 的页面即可。如上面所说,当生成 index.html 这个 页面时,模板顺序会变成:header.html + page-index.html + footer.html。
分类页生成的顺序为:header.html + category.html + sidebar.html + footer.html。 其中,可以自定义任何一个分类的 category.html 模板。如下图,在网站的任何一个子分类中,右键 - 编辑,都可以设置 HTML 文件名,下图为 help,则会生成 help.html。

而 MWeb 在生成分类页的 HTML 时,会判定是否存在:category-{HTML 文件名}.html 的模板文件,如果存在,则会优先使用 category-{HTML 文件名}.html 模板文件。上图就是定制了一个 category-help.html 的模板文件,这样生成的顺序变为:header.html + category-help.html + sidebar.html + footer.html。最终效果如:https://zh.mweb.im/help.html,这就跟一般的分类不一样了。
其它页面生成没有像文章页和分类页的自定模板规则,下面列出一下:
上面已经介绍了网站的生成过程,了解之后就可以做一些小的自定义了,在这之前,要先了解 MWeb 所使用的模板语言,这个语言非常简单,你可以参考 MWeb 自带的网站模板,一般就能看懂了。之后可以参考所有用法例子,请看:模板语言例子.txt 。
**重要:**在 3.3.9 及以上版本,当在模板中直接输出数组或者字典变量时,会直接变成 json 输出。大概用法为 <script>var postsArr = {{posts}}; var catsArr = {{p.cats}};</script> 。这个是为了解决模板语言描述能力不足问题,遇到这个问题,直接把变量变成 js 对象,这样就可以直接使用 js 输出了。
一般可以直接修改模板文件来做小的自定义,因为模板文件都是 HTML,懂 HTML 即可。或者修改样式,同样,懂 CSS 即可。
如果要做更方便一点的自定义,比如说为网站模板增加一个广告位,这个广告经常换,但是我不想总是修改模板。这种需求可以用 MWeb 的网站扩展来解决。如下图为网站扩展设置界面,这里其实是变量,这些变量,在所有模板页都可以访问到。下页以增加 global_notice 这个变成为例子说明。

点增加按钮,然后设置如下图:

增加了 global_notice 变量后,可以在 网站扩展设置 中设置这个变量的值,如下图:

这样,就可以在所有模板页中以 {{ext_global_notice}} 这个语法,输出设置了的值。
**特别注意:**在修改了网站模板之后,要生成网站时,请使用清除并重新生成网站这个功能,这样才会生效。
同样,可以看到还有文档扩展,文档扩展用法一样,但是只针对文档,设置是在文档的大纲视图最底下。
你们可否注意到,有些变量前面有个锁,这个是表示这个变量是网站模板自带的变量,不可以编辑的。意思是,扩展变量除了在上面增加外,还可以在网站模板中增加。增加方法是修改相关的 .json 文件。请参考:site-mweb-bulma 这个模板,在这个模板里,有一个名为 extensions 的文件夹,这里面有三个 .json 文件,其中,网站扩展 的变量,使用的是 site.json 文件,文档扩展 的变量,使用的是 document.json 文件。
了解了 MWeb 的静态网站生成过程,也了解了模板变量的使用和网站扩展、文档扩展的使用方式,就可以制作自己的静态网站模板了。建议的方法是,参考 MWeb 自带的三个模板:site-mweb-bulma、site-mweb-simple 和 site-foundation-book。找到想要的功能,然后查看相关写法即可。下面介绍一下这三个模板。
制作网站模板之前,还要了解 extensions 文件夹中的三个配置文件的作用,这里分开说明:
网站扩展 的变量。文档扩展 的变量。在介绍 MWeb 静态网站的所有变量之后,还要说说另一个,就是 MWeb 的LaTeX、代码高亮和画图功能。在制作自己网站模板时,建议顺手增加支持这些。方法非常简单,每一个 MWeb 自带的网站模板,都有一个 section-chart-support.html 文件,复制这个文件到你的模板中,然后在 footer.html 中使用 <!-- include(section-chart-support.html) --> 引入即可。另外,代码高亮使用的是 prism.js,这个模板只引入了在 asset 中的 prism.js 文件(所以还要保证 asset 中有 prism.js),并没有相关的 css 样式,这个需要自己去 https://prismjs.com 选择相应的样式,由于都是 CSS,所以可以直接加到模板中。具体可以参考系统自带的模板。
| 变量名称 | 说明 |
|---|---|
| siteURL | 网站设置中的网站网址 |
| siteDomain | 网站的域名 |
| siteName | 网站的名称 |
| pageTitle | 网站的标题 |
| siteDes | 网站的描述 |
| lastBuildDate | 网站最后生成时间 |
| siteOther | 网站设置中的 网站其它代码 |
| siteMenu | 网站菜单,数组,数组对象例如:{name: "Home", url: "index.html", className: "", target: "self"} |
| recentPosts | 数组,数组的对象例如:{title: "标题", url: "post_url.html"} |
| allCategories | 数组,数组的对象例如: {name:"分类",url:"cat.html",count:2} |
| allTags | 数组,数组的对象例如: {name:"标签",url:"tag_lable.html",count:2} |
| categoriesTree | 二层分类树,数组,数组的对象为 {name:"分类", url:"cat.html", count:2, children:[ {name:"",url:"",count:3} ... ]}。请参这个网址 |
以上的变量只是固定的变量,此外,还要加上网站扩展的自定义变量。文档扩展的变量使用为 ext_ + 扩展变量名,使用方式,请参考这个网址。
这个文档对象变量,下面说明会用到,如果提到文档对象变量,说的就是这个。
| 变量名称 | 说明 |
|---|---|
| title | 文章的标题,通常为第一行 |
| desContent | 文章的HTML格式的描述,如果文档中没有 <!-- more --> 则跟 content 一样 |
| desContentTextOnly | 文章的纯文字描述,不带 HTML |
| content | 文章的内容 |
| date | 文章的时间,格式按网站设定,默认为:2014/10/24 |
| dateGTM | 文章的时间,格式为 2014-10-24T13:54:03GMT+08:00 |
| artDate | 文章新增的时间,格式按网站设定,默认为:2014/10/24 |
| cats | 文章分类的数组,数组的对象例如: {name:"分类",url:"cat.html"} |
| tags | 文章标签的数组,数组的对象例如: {name:"标签",url:"tag_name.html"} |
| readMore | 文章中是否有 <!-- more --> |
| url | 文章的网址 |
| chart_flowSeq | 文档中是否带 flow 或者 sequence 画图,有值并为 "y" 是为带。 |
| chart_VIZ | 文档中是否带 VIZ 画图,有值并为 "y" 是为带。 |
| chart_ECharts | 文档中是否带 ECharts 画图,有值并为 "y" 是为带。 |
| chart_mermaid | 文档中是否带 mermaid 画图,有值并为 "y" 是为带。 |
| chart_codeblock | 文档中是否带代码块,有值并为 "y" 是为带。 |
| chart_LaTeX | 文档中是否带 LaTeX 数学公式,有值并为 "y" 是为带。 |
| chart_scripts | 文档中画图的支持脚本。 |
section-chart-support.html 文件,线上查看请点此。文档扩展的自定义变量。文档扩展的变量使用为 ext_ + 扩展变量名,请参考这个网址。| 变量名称 | 说明 |
|---|---|
| post | 对象为文档对象变量 |
| postNav | 字典,带有next,prev两个对象,对象例如:{title: "标题", url: "post_url.html"} |
参考模板:https://github.com/oulvhai/MWeb-Themes/blob/master/octopress/post.html
Is page 的页面传入的变量| 变量名称 | 说明 |
|---|---|
| posts | 数组,数组的对象为文档对象变量 |
| post | 对象为文档对象变量 |
参考模板:https://github.com/oulvhai/MWeb-Themes/blob/master/mweb-greyshade/page-index.html
| 变量名称 | 说明 |
|---|---|
| posts | 数组,数组的对象为文档对象变量 |
| currentCat | 当前分类,对象例如:{name: "分类名", url: "cat_url.html"} |
| prevPageUrl | 上一页的网址 |
| nextPageUrl | 下一页的网址 |
参考模板:https://github.com/oulvhai/MWeb-Themes/blob/master/site-mweb-bulma/category.html
| 变量名称 | 说明 |
|---|---|
| posts | 数组,数组的对象为文档对象变量 |
| currentTag | 当前分类,对象例如:{name: "标签名", url: "tag_url.html"} |
| prevPageUrl | 上一页的网址 |
| nextPageUrl | 下一页的网址 |
参考模板:https://github.com/oulvhai/MWeb-Themes/blob/master/site-mweb-bulma/tags.html
传入的变量:
| 变量名称 | 说明 |
|---|---|
| posts | 数组,数组对象请参考下表 |
| 变量名称 | 说明 |
|---|---|
| year | 文章年份 |
| title | 文章标题 |
| url | 文章网址 |
| cats | 文章分类的数组,数组的对象为文档分类对象变量 |
| date | 文章的时间,格式按网站设定,默认为:2014/10/24 |
| dateMonth | 文章月份 |
| dateDay | 文章日期 |
| dateYear | 文章年份 |
| dateGTM | 文章的时间,格式为 2014-10-24T13:54:03GMT+08:00 |
| artDate | 文章新增的时间,格式按网站设定,默认为:2014/10/24 |
此外,还会传入文档扩展的变量。
参考模板:https://github.com/oulvhai/MWeb-Themes/blob/master/site-mweb-bulma/archives.html
传入的变量:
| 变量名称 | 说明 |
|---|---|
| archives | 数组,数组对象请参考下表 |
| pages | 数组,数组对象请参考下表 |
| nowDateGTM | 当前时间 |
| 变量名称 | 说明 |
|---|---|
| title | 文章标题 |
| url | 文章网址 |
| date | 文章的时间,格式按网站设定,默认为:2014/10/24 |
| dateGTM | 文章的时间,格式为 2014-10-24T13:54:03GMT+08:00 |
| artDate | 文章新增的时间,格式按网站设定,默认为:2014/10/24 |
参考模板:https://github.com/oulvhai/MWeb-Themes/blob/master/site-mweb-bulma/sitemap.xml
读取的模板:atom.xml
传入的变量:
| 变量名称 | 说明 |
|---|---|
| posts | 数组,数组对象为文档对象变量 |
参考模板:https://github.com/oulvhai/MWeb-Themes/blob/master/site-mweb-bulma/atom.xml
]]>
下面详细说明各项设置,首先是 “名称:” 这个,你可以随便取一个名称,用来标记这个上传服务。剩下的项目都要按阿里云 OSS 中的相关项来填写,下面仔细说明。
进入到阿里云对象存储,选择一个已新建好的存储空间,我选择的是 “mwebtest”,如下图:

按上图,存储地域就选择对应的区域,我这里是华北2(北京);Bucket 名称我这里是 mwebtest;域名地址,可以填入访问域名,如果你有绑定自己的域名,请填入自己绑定的域名即可;图片处理代码,点击图片处理后进入相关设置,比如说他的默认规则为:
域名/sample.jpg?x-oss-process=style/stylename
如果我新增了一个规则名称为 test 的样式,他的处理代码为:
image/auto-orient,1/quality,q_90/watermark,text_bXdlYi10ZXN0,color_f5eded,size_40,x_10,y_10
那么在 MWeb 中要填入
?x-oss-process=image/auto-orient,1/quality,q_90/watermark,text_bXdlYi10ZXN0,color_f5eded,size_40,x_10,y_10
即可。
在对象存储页右边,“创建 Bucket” 按钮旁边,有个 “Access Key” 按钮,点击后,就会进入阿里云的 “安全信息管理” 页。在页里可找到 Access Key ID、Access Key Secret 这两个要填写的项目,如下图所示,分别填入即可(如果没有,则需要自行新增)。

关于文件保存路径这个,设置为 "/{year}/{mon}/{day}/{filename}{.suffix}" 时,上传 filename.jpg 图片会保存在: "/2019/02/02/filename.jpg"。另外可以用 {random} 这个变量,是一个随机数字。
如下图是填写完成后的界面:

填写完成后,再使用“发布”菜单,选择“把本地图片上传至图床...”,在出来的界面中,再选择新增的阿里云图床即可。如果还不知道怎么使用 MWeb 的图片上传服务,建议参考文章:MWeb 的图片上传服务介绍
]]>MWeb for iOS 版本是内购促销,可以在 MWeb for iOS 的设置页面购买。
详细介绍请看:https://zh.mweb.im/mweb-ios-3.0-release.html
看到上面的更新,大家可能已经知道了,MWeb 目前已经进入了缓慢更新阶段,基本上是两个月左右一个版本。之前说的解决 macOS 版本和 iOS 版本的文档库同步问题,至现在还没有比较好的办法解决。主要是文档库用到了数据库,不能很好的解决冲突问题。
未来的 MWeb 的方向目前决定是:
下面详细说明各项设置,首先是 “名称:” 这个,你可以随便取一个名称,用来标记这个上传服务。剩下的项目都要按腾讯云 COS 中的相关项来填写,下面仔细说明。
进入到腾讯云 COS (对象存储)的存储桶列表中,新增一个存储桶后,点进去并切换到 “基础配置” 这一页,如下图,我的存储桶的名称是为:“test”。

按上图,存储地域就选择对应的,我这里是上海金融;空间名称我这里是填入 test,不用填写后边的 “-数字”;域名地址,可以填入访问域名,如果你有绑定自己的域名,请填入自己绑定的域名即可。
进入腾讯云的 “API密钥管理” 中,即可找到 App ID、SecretId、SecretKey 这三个要填写的项目,如下图所示,分别填入即可。
请注意: App ID 也可以使用空间名称后面那串数字,这串数字是跟 “API密钥管理” 中的 App ID 一样的。这个 App ID 不是子帐号的帐号 ID。

关于文件保存路径这个,设置为 "/{year}/{mon}/{day}/{filename}{.suffix}" 时,上传 filename.jpg 图片会保存在: "/2019/02/02/filename.jpg"。另外可以用 {random} 这个变量,是一个随机数字。
如下图左边,是填写完成后的界面,右边为使用腾讯云上传本地图片的界面。

图片上传后,点 “复制 Markdown” 或者是 “复制 HTML” 时,就会把本地的图片地址替换为图床的地址并复制到剪切板中。
而当冷静下来,设立一些目标,比如说,文档库重新设计,同步和功能都要弄好,跟 Mac 版本一致;界面既要简洁又功能强大,用户用起来要舒畅,还要更现代,更好看;再有就是,原来的渣渣代码,也是要重构一下了吧,写得这么乱,太 low 了。
然后当真正开始干后,各种情况真是大受打击,最后变得无法继续了,开始自我否定起来。这时我就开始警惕起来了,毕竟抑郁症才走出来不久。最后放空心情,不去想这事,去干别的了,当然,心里还是很在意的。
当前这个 3.0.0 版本,怎么说呢,算是一个常规更新吧,这个版本是在慢慢想明白了自身的情况,慢慢弄出来的,下面介绍一下。
如下图,这是新的界面,可以看到,几乎跟原来没什么大的改变。最大的改变就是文档导航变成侧边栏了,编辑器变成总会显示了,也就是在切换要打开的文档时,不会关闭原来已打开的文档了。

这次更新优化了这个用途,侧边栏底部的工具栏中,最后两个按钮是常驻的,最后那个是关闭侧边栏按钮,剩下那个就是打开文件(Files)应用中的 Markdown 文档功能了。由于 iOS 11 及以上版本的新机制,也就是安装了 Dropbox、Google Drive、坚果等云盘的客户端后,都会可以在文件应用中访问到相关的云盘的文档。这个就非常方便了,这样 MWeb 不做同步功能也可以通过文件应用访问其它云盘的文档了。
由于目前 iOS 还不开放访问文件应用中的某个文件夹的权限,所以目前用 MWeb 打开文件应用中的 Markdown 文档还不支持插入图片到文档本地。需要插入图片的话,可以通过配置 MWeb 中的图床功能,这样插入图片后,MWeb 会自动上传至图床。还有就是,在文件应用中,还可以选择使用 MWeb 打开 Markdown 和文本文档。
快速笔记提供一个这样概念:就是不管什么时候,我需要记笔记的话,只需要点一下快速笔记的按钮即可马上开始记录,不需要考虑文件名、保存位置、怎样归类整理等等。只需要记下就是完成任务,至于整理或者什么的,那是之后的事了,不用考虑,减少负担,只为记下。
快速笔记提供了三个入口,如下图所示为两个入口,还有一个办法是使用 URL Scheme:mwebapp://?p=quicknote 。点击后,MWeb 会自动按下图最右边那张图片的设置的规则,来打开快速笔记的文档并弹出键盘。快速笔记的重点在记,只要记下即可,MWeb 会自动按天来整理成文档。在你点击快速笔记时,如果快速笔记在非打开状态,则会自动加上时间做为标题。

如果你把快速笔记设置保存在 MWeb for Mac 文档库,目前还不支持归类到某一分类,iOS 版本的文档库同步及完整功能会在数个版本内得到完善。
如下图是快速笔记编辑器的情况和查看之前日期的快速笔记的文件夹(我是保存在本机中的 demo folder 文件夹里的)。


如上图,Markdown 语法输入键盘更改了样式,另外还增加了插入文件应用中的图片按钮和预览按钮。另外在 设置 - 自定义键盘工具条按钮及顺序 中,还可以调整顺序和设置是否显示在最上面的工具条中,如上图右边的图片所示。
如上图左边,最上面的工具条可以向左滑动来查看其它隐藏的按钮,另外,MWeb 还提供一个切换所有 Markdown 语法输入键盘的按钮,所以如果你不喜欢用滑动方式,可以点此按钮插入 Markdown 语法。
目前这个版本终于是支持全文搜索了,目前的搜索的话,如果填入的关键字用空格隔开,比如说填入 “测试 说明”,会搜索文档中既包含 “测试” 又包含 “说明” 的文档并显示出来。

如下图所示,文档库首页增加了显示最近新增的文档,在文档库的所有功能完善前,这个功能应该会方便不少。另外直接点击分类会进入如下图右图效果,此分类的子分类会先显示出来,然后再显示此分类下的文档。再有就是增加了一个新增文档库文档的 URL Scheme:mwebapp://?p=newlibdoc 。
要注意的是,目前的文档库还是不支持删除、管理分类和文档归类功能,这些功能只能等之后的更新了,其实这功能也是拖好久了。。。

之前的本机文档被归类到网盘文档中了,另外点击(i)按钮可以设置文件夹的相关功能还是没变动,如下图所示。

以上,MWeb 新版本的情况就介绍完了。
]]>快速笔记提供了三个入口,如下图所示为两个入口,还有一个办法是使用 URL Scheme:mwebapp://?p=quicknote 。点击后,MWeb 会自动按你,下图最右边那张图片的设置的规则来打开快速笔记的文档并弹出键盘。快速笔记的重点在记,只要记下即可,MWeb 会自动按天来整理成文档。在你点击快速笔记时,如果快速笔记在非打开状态,则会自动加上时间做为标题。

如果你把快速笔记设置保存在 MWeb for Mac 文档库,目前还不支持归类到某一分类,iOS 版本的文档库同步及完整功能会在数个版本内得到完善。
如下图是快速笔记编辑器的情况和查看之前日期的快速笔记的文件夹(我是保存在本机中的 demo folder 文件夹里的)。

非 Mac App Store 购买 的用户,如果是在 2018年5月1号 ~ 2018年7月3号 购买的,可以直接发邮件联系我更换为 3.x 版,注意是更换。文档库迁移:
3.x 启动时会提示导入旧的文档库,如果你开始没做这个,或者其它什么原因有问题,解决办法很简单,把旧的文档库复制到你想要的位置,然后用 3.x 版的 偏好设置 - 文档库&备份 - 修改文档库到其它位置-选择现有文档库 然后选择刚刚你复制的位置即可,如图:

如果还有什么问题,建议查看 MWeb 文档库详细介绍 这篇文章,估计一定能解决所有问题了。
其它数据迁移:
想了解更多 3.x 版的情况,可以查看 帮助文档。
在 MWeb 的文档库中,有两种分类,一种是普通分类,另一种就是静态网站分类了。你可以直接新增一个静态网站分类,也可以在普通分类的顶层的分类中右键,选择 编辑,然后在出来的界面中点击 设置为静态网站 按钮。
网站分类可以设置网站相关的一些东西,设置界面如下:

上图中的设置应该都不难理解,如果要生成静态网站,在设置好之后,点击 生成网站 按钮即可,在生成之前,请务必保证你的分类中有至少一篇文章。你也可以直接右键来选择相关菜单项来生成网站。如果你修改了网站模板,请使用 清理并重新生成 按钮。当然,你任何时候都可以使用这个按钮来清理并重新生成网站。
可以看出,在 MWeb 中生成静态网站非常简单,就写好文章,然后归类到静态网站分类中,再右键静态网站分类并选择生成网站即可,当然你可以先预览一下。
MWeb 和 Wordpress 等这类博客的结构一样,分为 一般文章 和 页面 两种文章类型。页面 是用来做像关于我们、联系我们等等这类不用放在正式文章中的网页。
如下图,把 MWeb 文档库中的文档设置为 页面 非常简单,点击 最上方的信息条 ,勾选 是否页面(Is Page) 即可。其中 HTML 文件名 栏是用来设置生成的 HTML 文件名的。比如说上图中的这个文章会生成 mweb-static-blog.html。一般文章 生成的 HTML 文件名也是在此设定。

有些网站模板支持一些扩展设置,比如说网站的图标和 logo,可以自定义自己的图标和 logo 图片,还有,有些网站支持配置 disqus 评论,只要填入 disqus 的 shortname 即可。这些网站的配置是需要网站模板支持的,在 偏好设置 - 网站扩展 - 网站扩展设置 里可以设置,如下图就是使用了 site-mweb-bluma 模板的 Coder For Art 网站的扩展设置。

比如,这里我要设置 “site icon”,也就是网站图标。这就有一个问题,就是:网站图标是图片形式的,而输入框是要填入文本的,那要把图片增加到那里呢?
MWeb 中的做法是在网站分类中,新建一个分类,名为“其它”,然后在其中,新增一个文档,并且设置这个文档的文章类型是属于页面。然后把图片拖拽进这个文档并删除 mweb 生成的 markdown 语法,这样就不会显示在文档中了。
然后如下图,打开大纲视图,找到刚刚拖入的图标,点“Copy”按钮复制,并在 “site icon” 的输入框,粘贴一下即可(我是拿 MWeb 的图标做测试)。

下图为设置好网站图标的效果:

其它需要填入图片的,也是用这用方法。
有些网站模板支持文档扩展,我这里还是以使用了 site-mweb-bluma 模板的 Coder For Art 网站为例子。
如下图,打开其中一篇文档,在文档大纲视图最下边,就会发现网站模板所支持的文档扩展填写。

比如说我要填写 featured 图片,则可以先复制 “mweb3-1.jpg” 这张图,然后粘贴入 featured 输入框即可。另外我也顺便填写了 excerpt 这个字段。填写后,在 site-mweb-bluma 模板中的效果如下图:

在 偏好设置 - 网站扩展 - 网站菜单 中,先选择要设置的网站,并选中 网站菜单 这个选项卡,如下图:

你可以新增,编辑和删除菜单,或者拖拽来调整顺序。要注意的是,自带的网站模板中,MWeb-Foundation-Book 这个模板是不支持网站菜单的。
其它比如说:“网站扩展”、“文档扩展” 这两个选项卡的功能,是属于自定义模板和功能,这里暂时不做介绍。
在 MWeb 中引用其它文档非常简单,在文档列表中,右键要引用的文档,选择 复制,如下图所示。

然后在要引用的文档的位置 CMD + V 粘贴即可,MWeb 会生成 [如何使用“发布脚本”功能发布静态网站](how_to_use_shell_script.html) 这种语法。如果你按住 CMD 键并点击,则会打开这个引用的文档。
生成静态网站功能可以很好的处理这种引用,并生成相关的网页连接。
阅读更多的用途请看下面的图片,这个需要网站模板的支持,你可以使用菜单:标签 - 插入阅读更多注释 来插入阅读更多,然后要注意的是,这个注释是要前后空一行的,也如下图。

另外,比如说发布到 Wordpress 中时,Wordpress 也能识别这个阅读更多的设置。
这个功能 MWeb for Mac 2.2.3 版就有的,是为了让 MWeb 中的静态网站体验能达到 “新增文档并编辑” - “右键并选择执行发布脚本” 这样一个简单的流程。避免之前那样,生成网站后还要去敲命令进行发布。
相关详细说明,请直接参考这个文章:如何使用“发布脚本”功能发布静态网站
在 MWeb 中打开非文档库中的 Markdown 文档,如果文档中有引用到本机图片,是没办法在 MWeb 中显示出来和预览的。这是因为 Apple 规定在 Mac App Store(MAS) 上的软件,都不能对软件自己的沙箱(sandbox)之外的文档进行任何操作,连读取都不能,除非用户明确授权。而用户授权的方式是使用打开、保存对话框。比如说你用 MWeb 打开一个 Markdown 文档,那么 MWeb 就能得到读写这个文档的权限。
如果要使用 MWeb 拖拽、粘贴插入图片的功能,就要把文档所在的整个文件夹授权给 MWeb 使用了,而把文件夹引入,MWeb 就会自动得到这个文件夹的读写权限。
当然,引入文件夹到 MWeb 中,还能方便地打开和管理 Markdown 文档,查看文件夹的树形结构,而不用使用访达(Finder)。
如下图,按 CMD + E 打开外部模式,然后点击左下角的 “+” 按钮,选择要引入的文件夹即可。

另外,你还可以直接把文件夹拖拽到左边的文件夹树形列表中,也可以引入文件夹。
还有一种方法就是:直接把文件夹拖拽到 MWeb 的图标中,也可以引入文件夹。
引入文件夹后,还有一项重要的设置,就是引入文件夹的设置,可以右键引入的文件夹,然后选择 编辑,就会显示如下图的界面:

一个设置是 “显示名称”,这个是引入的文件夹所特有的,你修改这个名称不会修改到文件夹的名称。还有几个比较重要的设置,都是跟插入图片相关的,第一个就是 “保存插入的图片的文件夹名称:”,这个一看就知道意思,这个跟下面的 “插入的图片的保存位置” 相关联,这个只有 “绝对位置” 与 “相对位置” 两个选项。
举个例子,比如说我引入的文件夹为 A,然后有一文件在 “A/folder/file.md” 下,我如果在 “file.md” 中插入一张名为 “pic.jpg” 的图片,则不同的选项的结果为:
。
CMD + O 键即可。
如下图是文档库的快速搜索,不填入搜索关键字的情况下会显示当前打开的文档和最近使用的文档。

按 向下 键即可选择文档,按 Enter 键可以打开所选择的文档。
另外文档库搜索还可以设置一个全局搜索快捷键,按这个快捷键可以在任何时候进行文档库搜索,这个快捷键可以在 偏好设置 - 通用设置 中设置,如下图所示:

下图是设置了快捷键后,从桌面上打开快速搜索并进行搜索的结果。

如下图所示,不填入搜索关键字的情况下会显示当前打开的文档和最近使用的文档。

如下图的搜索结果,按 向下 键即可选择文档,按 Enter 键可以打开所选择的文档。

如果要搜索所有引入的文件夹,请点击左下角的 “搜索” 按钮,如果要搜索特定的文件夹,请“右键”要搜索的文件夹,选择“搜索此文件夹”。
从 MWeb 3.1.8 版本开始支持以下的搜索语法:
[keyword1] [keyword2]... [-c category1,category2...] [-t tag1,tag2...] [-h keyword1,keyword2,...]
相关例子:
快速笔记功能本质上是按一定的时间段(天)来新增文档并保存到设定好的文档库的分类或者文件夹(仅 iPadOS/iOS 支持)。主要是达成,在想要记录时文字或者图片时,只需要点击一下按钮即可马上开始。
此功能默认是关闭的,如果要开启使用,在 macOS 版 MWeb 中,请在 偏好设置 - 通用设置 中开启;在 iPadOS/iOS 版 MWeb 中,请在 设置页 - 快速笔记 中开启。如下图所示分别为 macOS 和 iOS 中的设置界面。

你可以设置快速笔记保存在那个分类和产生一篇新文档的时间,如果用得频繁就一天一篇,否则可以选择 3、5、7 天等等。这其中,有一个 自动插入时间 的复选框,如果勾选了,会在记录快速笔记时,自动增加一行当前的时间做为标题。
在 macOS 版 MWeb 中,如果开启了快速笔记,会在状态栏中显示一个 “M” 的图标的按钮,点击后,即可使用快速笔记,如下图左边的图所示;在 iPadOS/iOS 版 MWeb 中,如果 MWeb 未打开,可以长按 MWeb 图标,选择 “快速笔记” 来使用快速笔记,如果 MWeb 已打开,可以直接按导航页底部中间那个按钮来使用快速笔记,如下图右边的图的红框所示。

MWeb 的文档库可以存储在一个文件夹中,或者是存储在 iCloud 中(同步使用的是 CloudKit 技术)。在 macOS 版 MWeb 中,你可以在 偏好设置 - 文档库 & 备份 中查看文档库存储的位置;在 iPadOS/iOS 版的 MWeb 中,你可以在 设置页 - 文档库 中查看文档库的存储位置。要注意的是,在 iPadOS/iOS 下,如果你的文档库不是存储在 iCloud 中的话,删除 MWeb app 时,文档库也会被删除!所以,建议在 iPadOS/iOS 上使用文档库,一定要把文档库设置为存储到 iCloud 中。如果你想在多个设备进行同步,也请把文档库存储在 iCloud 中。
一般情况下,不需要了解文档库的结构,如果你是在 macOS 下使用 MWeb,并且想对文档库备份或者从备份中恢复,那么了解文档库的结构是很有必要的。在 macOS 下,当文档库存储在文件夹中时,可以直接查看文档库所在的文件夹来了解文档库的结构。当文档库存储在 iCloud 中时,MWeb 会使用 CloudKit 技术完整的把整个文档库都同步到本地的 MWeb 的一个私有文件夹中,位置就在:~/Library/Containers/com.coderforart.MWeb3/Data/Library/Application Support/MWebLibrary。如果你使用的是 MWeb 标准版,请把上面的 com.coderforart.MWeb3 换成 com.coderforart.iOS.MWeb。
文档库的文件夹的结构,是由 docs 文件夹,mainlib.db 文件和 metadata 文件夹组成。其中 docs 文件夹里保存的是每一篇笔记及笔记的相关素材。mainlib.db 文件保存的是分类和 Tag 信息以及笔记所属于的分类信息。metadata 文件夹只有在使用到发布服务时才会有,保存的是发布服务相关信息。下图就是一个典型的文档库。

这种结构可以很好的备份和用于 git 备份,你可能注意到了,即使你选择把文档库存储在 iCloud 中,也可以很方便的备份你的文档库。因为 MWeb 会把所有数据都同步到一个私有文件夹中,你只需要备份那个文件夹即可。
在 macOS 下,如果你要从备份中恢复文档库,分为两种情况:
偏好设置 - 文档库 & 备份 中,点击 “选择现有文档库” 按钮并选择那个位置即可。MWeb 的分类有两种,一种是普通的分类,如下图:

一种是静态网站分类(MWeb Pro 才有),这个分类可以生成静态网站,如下图:

MWeb 提供一个非常简单的方法再把分类下的文档生成一个静态网站,比如 MWeb 中文官网就是用 MWeb 的静态网站功能生成的。
界面左边的分类树配合 右键 及拖拽就可以完成相关的管理操作。中间的文档列表栏可以把文档拖拽至左边的分类以进行文档分类的管理。这种拖拽有三种情况,以下都假定拖拽到分类A:
CMD 键拖拽当前文档到分类A。这种情况下,会为拖拽的文档增加增加到分类A。Option 键拖拽当前文档到分类A,这种情况下,如果所拖拽的文档属于分类A,则取消文档属于分类A,如果不属于分类A,则不做任何操作。这种操作方法的地方是可以多选,也就是可以批量管理。如果是单个文档,有更好的办法,就是点击编辑器最上面的信息条,然后进行勾选,如下图:

这个地方也是唯一可以设置文档标签(tag)的地方,下面介绍的标签,设置是用这个办法。你也可以使用快捷键 CMD + 8 来打开这个界面。
在 MWeb 中引用其它文档非常简单,在文档列表中,右键要引用的文档,选择 复制,如下图所示。

然后在要引用的文档的位置 CMD + V 粘贴即可,MWeb 会生成 [如何使用“发布脚本”功能发布静态网站](how_to_use_shell_script.html) 这种语法。如果你按住 CMD 键并点击标题,则会打开这个引用的文档。
文档库支持多种排序方式,而且每个顶层分类还可以单独设置自己的排序方式。修改排序方式的办法有两种,一种是如下图所示:

另一种是,选中要修改排序的顶层分类或者顶层分类下的某一子分类,然后在文档列表中右键,如下图所示:

在各种排序中,自定义拖拽排序比较特殊,需要特别说明。在说明之前,我先说明一个全局选项:按分类分组显示。在文档列表中右键,就可以看到这个功能的菜单,如果在启用状态,则表示列表中的文档都在以分类分组显示的状态,不管是什么排序设置。
这个用处其实也是查找和整理文档。但是如果这个全局选项不是启用状态,那么,如果排序设置为自定义拖拽排序,则这个顶层分类也会按分类分组显示的。也就是说,只要是自定义拖拽排序,文档列表栏必定是分组显示的。
这个是由于一个文档可以属于多个分类造成的规则设定,不然会比较乱。
如果你在一个不是自定义排序的分类尝试拖拽,MWeb 会提示你先设置为自定义拖拽排序,然后才能拖拽。自定义拖拽排序分类下的文档,建议保证只属于一个分类,这样拖拽排序才不会乱。
MWeb 中标签(tag)的功能还非常简单,设置标签的方法,上面有说到了,另外就是按标签查看文档了,这个功能如下图所示:

可以看出 MWeb 会列出整个文档库的标签,选择后即可按标签查看文档。
如下图所示,文档大纲视图会列出当前文档的标题和插入的图片及附件,当然还有可以设置静态网站用的扩展项目(如果当前的文档属于某个静态网站分类的话)。下图是把大纲视图拖拽出来后固定的效果。

如下图所示,文档库支持导入 Markdown 文档到文档库中。如果导入的时候你选择的是一个文件夹,MWeb 会把文件夹内的所有 Markdown 文档导入到当前所选择的分类。如果文件夹的 Markdown 文档中有本地图片,也会一并导入并修改为文档库格式的图片地址。需要说明的是,要导入图片,请一定要选择整个文件夹。

另外还可以把整个分类导出为 Markdown,导出后的 Markdown 文档会按分类的结构建立文件夹。剩下的两个就是导出为 Epub 和 PDF 了,没错,可以把整个分类都导出为 Epub 或者 PDF!
MWeb 3 的 iCloud 同步和 MWeb 4 的有何区别?
MWeb 3 的同步是把文档库的文件夹保存在 iCloud Drive 中,由系统进行文件同步。MWeb 4 的同步是使用一个叫 CloudKit 的技术进行同步,由 MWeb 控制,不再保存在 iCloud Drive 中。 如果要使用 MWeb 4 的 iCloud 同步,需要在设置中手动点击 “存储到 iCloud 中” 按钮。
MWeb 3 的文档库如何同步到 iCloud?
如果是 macOS 版的 MWeb,请先确认是不是保存到 iCloud Drive 或者相关的云盘的文件夹中,如果是,则需要确保文档库所在的文件夹完整同步到本地。总之是先要保证当前的文档库完整。
然后,再在 偏好设置 - 文档库 中,点击 存储到 iCloud 中 按钮,然后在跳出的提示是否合并文档库选择中,选择 合并 即可。
这个提示只显示一次,如果之前来不及选择,可以参考本文上方的 “文档库的结构、备份和从备份中恢复” 中的从备份中恢复的方法。
如果是 iOS 版的 MWeb,因为原来 iOS 版的文档库就是只读的,所以需要先使用 macOS 版的 MWeb,按上面的方法把文档库同步到 iCloud。再在 iOS 版把文档库也设置为 存储到 iCloud 中 即可。
我能否手动 git 备份存储到 iCloud 中的文档库?
可以的,在 MWeb 4 中,同步用的是苹果的 CloudKit 技术,会完整的把所有文档都同步到本地的 MWeb 的一个私有文件夹中,位置就在:~/Library/Containers/com.coderforart.MWeb3/Data/Library/Application Support/MWebLibrary。如果你使用的是 MWeb 标准版,请把上面的 com.coderforart.MWeb3 换成 com.coderforart.iOS.MWeb。
如果你想备份或者 git 备份,只需要定期备份这个位置即可。这个位置只能备份,请不要改动。
这个位置的文档库的结构是跟本地的一样的,如果你不想使用 iCloud 同步了,可以把这个文件夹复制到其它地方,再在 MWeb 中切回本地文件夹存储,再选择复制到的文件夹即可。
iCloud 同步时想要的文档版本被覆盖怎么办?
在 macOS 版本的 MWeb,可以使用菜单: 文件 - 恢复为 - 浏览所有版本,对于 iOS 版,可以点击 “...” 按钮,选择 “文档历史版本” 来恢复。要注意的是,iOS 的文档历史版本只针对文档库中 iCloud 同步的文档。 建议使用时避免多设备编辑同一文档,如果要编辑,请确认文档为最新的状态。
因为在同步过程都是无状态的,比如说当前设备网络不好,网络传输出错,CloudKit 错误等等都会造成当前的设备的文档的最新版本无法及时同步到 CloudKit,这时如果另一设备上传了文档的新版本,然后当前设备变得正常,就会收到另一设备的更新推送,这时就会更新当前设备的文档。
想初始化 MWeb 文档库
如果你想初始化 MWeb 的文档库,办法有:
选择现有文档库 选择解压后那个位置即可。defaults delete com.coderforart.MWeb3 (如果是 MWeb 标准版,则为 defaults delete com.coderforart.iOS.MWeb),此操作会删除 MWeb 的所有偏好设置,一切重新开始。偏好设置 - 发布服务 中新增图片上传服务;在 iPadOS/iOS 版 MWeb 中,请在 设置页 - 图片上传 中新增图片上传服务。而在 MWeb 中使用图片上传服务,有两种处理方式,下面分别介绍一下:
增加了图片上传服务后,要使用先上传的方式,需要先打开图片上传窗口。在 macOS 版 MWeb 中,请使用菜单:视图 - 图片上传窗口 来打开,工具条上也有相关按钮;在 iPadOS/iOS 版 MWeb 中,请点击编辑器底部的 “...” 按钮,在出来的菜单中,选择 图片上传到...,也可以在工具条中点击相关按钮打开。图片上传窗口的界面如下图所示,使用方法很简单,看界面即可知道,就不再介绍了。

这个是 MWeb 建议使用的方式,这个方式的好处是图片在本地并且跟 Markdown 文档相关联,不会造成图片丢失这种问题,MWeb 在编辑器中会直接显示本地图片,预览时也方便一点。MWeb 的文档库和外部文件夹模式插入图片时,默认都是使用这种方式,也就是会复制一份图片到文档所在的相对位置。
这种方式下,你只需要完成文档的编写即可,当需要把文档中的图片上传至图床并发布出去时,在 macOS 版的 MWeb 中,请使用菜单:发布 - 把本地图片传至图床;在 iPadOS/iOS 版 MWeb 中,请点击编辑器底部的 分享 按钮,并选择要上传至的图床。执行了操作之后,就会显示如下图的图片上传界面:

在这个界面中,中间的列表会列出文档中的所有本地图片(注意是文档中的),首先请选择要上传的图床,然后点 “上传本地图片” 按钮即可。当图片上传完成后,你可以选择使用 “复制 Markdown” 按钮或者 “复制 HTML” 按钮,看你需要什么样的格式。复制进来的就是已经把本地图片地址换成图床的远程地址后的内容。
你可以查看以下两篇文章关于自定义图床和七牛图床的使用方法:
]]>要使用发布服务,请先新增发布服务。macOS 版 MWeb 请在 偏好设置 - 发布服务 中新增相关发布服务;iPadOS/iOS 版,请在 设置页 - 发布 中新增相关发布服务,如下图:

发布服务增加后,还可以使用拖拽来改变发布服务的顺序。在 macOS 版 MWeb 中,所有增加的发布服务会显示在 发布 菜单中,也会显示在工具栏上的 分享 按钮弹出的菜单中;在 iPadOS/iOS 中,发布服务会显示在编辑器底部的 分享 按钮弹出的菜单中,如下图所示:

在当前文档中,选择要发布到的发布服务,即可调出相关界面来进行发布。
除了发布到为知笔记比较特殊为,几乎所有发布服务都支持发布本地图片,除了 Medium 外,其它服务都支持更新,也就是说,同一发布服务,你发布过一次后,再发布时,会出现更新文档的信息和一个复选框,如果你勾选他,就会更新已发布的文档,默认是勾选的,如果你取消勾选,则会发布一篇新的文章,如下图:

在增加发布服务中,选择 Metaweblog API,会出现下图的界面。发布至 Metaweblog API 的填入项目中,多了名为 “API 地址” 这一项。每个支持 Metaweblog API 的网站,都提供一个 API 地址,填入即可。

下边列出国内网站中常用的 Metaweblog API 地址。
<int>,或者改为:<int>。