Jetbrains Writerside 使用教程

news2024/11/26 20:27:07

系列文章目录


前言


一、入门

Writerside 是基于 IntelliJ 平台的 JetBrains 集成开发环境。使用它可以编写、构建、测试和发布技术文档。

如果你想将 Writerside 作为另一个 JetBrains IDE 的插件,请参阅 Writerside 作为插件。

1.1 安装 Writerside

下载 Writerside 安装程序。

运行安装程序。

观看视频,了解 Writerside 的用户界面和主要功能:

1.2 创建新文档项目

从主菜单中选择文件 | 新建 | 项目。

在 "新建项目 "向导中,选择 "启动项目",然后单击 "下一步"。

指定新项目的名称和位置,然后单击完成。

一旦有了带有帮助实例的文档项目,就可以添加主题并开始编写内容。单击左侧工具窗口栏中的 Writerside 工具窗口图标,打开 Writerside 工具窗口并开始添加内容。

 1.3 创建主题

1.3.1 从头开始创建主题

  1. 在 Writerside 工具窗口的 "目录 "部分,单击 "添加",然后选择 "空 MD 主题 "来添加 Markdown 主题,或选择 "空 XML 主题 "来添加语义标记主题。有关主题的更多信息,请参阅主题格式。
  2. 为主题指定标题和文件名。

1.3.2 从模板创建主题

Writerside 为不同类型的内容提供了内置模板,这些模板包含一些模板结构,可以让你开始使用。

  1. 在 Writerside 工具窗口的 "目录 "部分,单击 "添加",然后在 "从模板创建主题 "下选择一个模板。
  2. 为主题指定标题和文件名。

1.4 预览主题

使用 Writerside 预览工具窗口,以准确的方式预览正在编写的主题。

1.4.1 打开 Writerside 预览工具窗口

第一次在编辑器中打开任何主题时,Writerside 会打开 Writerside 预览工具窗口。如果关闭预览后想再次打开,请执行以下操作之一:

单击 Writerside 预览工具窗口按钮 Writerside 预览工具窗口图标。

从主菜单中选择查看 | 工具窗口 | Writerside 预览。

右键单击目录中的任意主题,然后选择预览主题。

1.5. 更改目录

在 Writerside 工具窗口的目录部分,拖动主题来更改它们的顺序和层次结构。

您还可以编辑 .tree 文件来更改目录。为此,请右键单击帮助实例并选择打开 TOC 文件。

更多信息,请参阅目录。

1.6 创建帮助实例

在 Writerside 工具窗口中,单击生成网站 生成网站,然后选择另存为 ZIP 压缩包。

有关更多信息,请参阅在本地构建帮助。

如果你想使用 CI/CD 构建和发布文档,我们有关于 GitHub、GitLab 和 TeamCity Cloud 的说明。

如果您想使用其他 CI/CD 构建文档,请发送邮件至 writerside@jetbrains.com,我们将为您提供 Docker 镜像。

1.7 反馈与支持

报告问题
向我们的 YouTrack 项目报告任何问题、可用性改进或功能请求(您需要注册)。

获取支持并分享反馈
加入 JetBrains Writerside Slack 工作区。

在加入之前,请阅读我们的行为准则。我们假定您在加入前已阅读并确认该守则。

您也可以发送电子邮件至 writerside@jetbrains.com。

二、项目

文档项目包含文档所需的所有配置和内容文件。

2.1 创建新文档项目

  1. 从主菜单中选择文件 | 新建 | 项目。
  2. 在新建项目向导中,选择启动项目,然后单击下一步。
  3. 指定新项目的名称和位置,然后单击完成。

默认情况下,文档项目包含一个实例,可生成一个帮助网站。每个实例都定义了一组主题,编排在目录中。

单击左侧工具窗口栏中的 Writerside 工具窗口图标,打开 Writerside 工具窗口。

使用 Project 工具窗口可以浏览 Writerside 工具窗口无法访问的各种配置文件和资源。

要打开项目工具窗口,请执行以下操作之一:

  • 从主菜单中选择查看 | 工具窗口 | 项目。
  • 单击左侧工具窗口工具栏上的 Project 工具窗口 Project。
  • 按 Alt + 1.

下面是一个典型的 Writerside 启动项目结构示例:

2.2 帮助模块

每个文档项目至少包含一个帮助模块。这是文档项目所有配置和内容文件所在的位置。在前面的例子中,它是 Writerside 目录。你可以给它起任何你喜欢的名字,比如 docs。

在大多数情况下,你只需要一个帮助模块目录。如果项目专门用于文档,则不需要单独的帮助模块目录。在示例启动项目中,可以将 Writerside 目录中的所有内容都放到项目根目录 awesome-docs 中。

不过,最好将与文档源相关的所有内容都放在一个专门的目录中,与集成开发环境特定的项目配置文件分开,尤其是当文档与源代码位于同一个项目中时。如果需要管理多个文档集(每个文档集都有自己的配置文件、实例和主题),甚至可以将多个帮助模块放在不同的目录中。

当我们谈到 Writerside 文档项目的项目根目录时,实际上指的是相应的帮助模块根目录,它包含以下文件和目录:

writerside.cfg

主配置文件定义了 Writerside 项目的基本设置和实例。通过该文件,Writerside 可以知道帮助模块的根目录在哪里。

在旧版本的 Writerside 中,该文件的名称是 project.ihp。如果你的项目中使用的是旧版本的名称,则无需重命名,因为它们是等同的。

topics/

主题文件目录包含 .md 和 .topic 文件。您可以在 writerside.cfg 中为主题注册不同的目录。

images/

媒体目录包含项目中使用的图片、GIF 动画和视频。您可以在 writerside.cfg 中为图片注册不同的目录。

hi.tree

树文件定义了目录:实例中主题的顺序和层次。在树文件中,还指定了该实例的名称和唯一 ID。名称在输出中用作主标题,ID 必须与树文件的名称相同,但不带扩展名。例如,aa.tree 可以定义一个 id="aa" 和 name="Awesome App" 的实例。

每个实例都必须通过在 <instance> 元素中指定其树文件在 writerside.cfg 中注册。

v.list

全局项目变量及其默认值的列表。

请在 writerside.cfg 中的 <vars> 元素中注册此文件。

c.list

类别列表定义了主题 "另请参见 "部分的相关部件链接组。

请在 writerside.cfg 中的 <categories> 元素中注册此文件。

以下文件和目录是可选的:

redirection-rules.xml

重定向规则的配置文件。

code-snippets/

代码片段目录包含代码片段文件,可以作为示例插入代码块中。请在 writerside.cfg 中的 <snippets> 元素中注册此目录。

cfg/

构建配置文件的目录。

编译配置目录可包含以下文件:

  • buildprofiles.xml 用于配置最终输出。
  • build-script.xml 用于配置联编过程。
  • glossary.xml 用于定义术语及其描述,以便在工具提示中使用。

三、实例

 实例是一组内容文件(主题),以树形文件的形式组织成具有唯一 ID 的分层结构(目录)。你可以将一个实例构建成一个帮助网站、用户指南或其他输出内容。

默认情况下,一个典型的 Writerside 文档项目包含一个实例。如果你需要制作多个帮助输出,例如为多个产品或一个产品的多个版本提供文档,为不同的受众、用户类型或输出格式制作文档,可以添加更多实例。你可以跨实例重复使用文档项目中的任何内容。如需了解更多信息,请参阅单一来源和内容重用。

3.1 添加帮助实例

  1. 在 Writerside 工具窗口中,右键单击当前帮助实例名称,选择 "新建实例",然后单击 "新建"。

    如果您有使用 Markdown 编写的现有文档,请单击 "从本地 Markdown 文件 "将其导入新实例。 

  2. 指定一个名称,该名称将作为输出结果的主标题。如有必要,请修改建议的实例 ID。

     确保每个实例的 ID 都是唯一且具有描述性的。它将作为 .tree 文件的名称,您将使用此 ID 过滤可重复使用的内容。

  3. 如有必要,请为实例指定网络路径和版本。网络路径用于在发布时将帮助网站上传到适当的位置。版本将显示在帮助主标题旁边。

  4. 如果不希望内容被搜索引擎索引,请清除允许搜索引擎索引复选框。有关更多信息,请参阅允许搜索引擎索引。

  5. 单击 "确定"。

    这样,Writerside 就会创建一个新的树文件(如 web.tree 或你指定的任何 ID),并在 writerside.cfg 中将其注册为 <instance src="web.tree"/> 。你将在 Writerside 工具窗口中看到新实例。

3.2 更改实例图标颜色

为了在 Writerside 工具窗口中清晰地区分实例,您可能需要指定不同颜色的图标。

右键单击实例,在 "更改颜色 "下选择想要的颜色。

3.3 重命名实例

在 Writerside 工具窗口中,右键单击实例并选择 "编辑"。

为实例指定一个新名称,然后单击 "确定"。

如果没有必要,请不要更改 ID。如果更改了 ID,Writerside 会找到对该实例 ID 的所有引用,并建议运行重命名重构以正确更新所有用法。它还会重命名相应的 .tree 文件。不过,它不会更新任何发布脚本,因此请确保使用新的实例 ID 正确配置它们。

3.4 树形文件

树形文件定义实例中主题的层次结构。下面是一个树形文件示例,它定义了一个 ID 为 aug、名称为 App User Guide 的实例: 

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE instance-profile SYSTEM "https://resources.jetbrains.com/writerside/1.0/product-profile.dtd">

<instance-profile id="aug" name="App User Guide"
                  start-page="introduction.topic">

    <toc-element topic="introduction.topic"/>

    <toc-element topic="settings.topic">
        <toc-element topic="settings_general.topic"/>
        <toc-element topic="settings_advanced.topic"/>
    </toc-element>

    <include from="lib.tree" element-id="reference"/>
</instance-profile>

 树形文件可包含以下元素和属性:

3.4.1 <include>

重复使用另一个树文件的一部分。

<include from="lib.tree" element-id="intro"/>
父元素
<instance-profile> <toc-element>

属性:

element-id

指定元素 ID。

from

指定要包含内容的树文件。

instance

指定元素的条件。例如,你可以定义该元素适用的帮助实例,这样其他帮助实例就不会出现该元素。也可以用 ! 来否定,以指定排除此元素的帮助实例:

<include from="lib.tree" element-id="reference" instance="!foo,bar"/>
origin

如果要在另一个帮助模块中包含树文件中的内容,请将其指定为 origin。

use-filter

使用条件插入内容:只包含用逗号分隔的指定自定义过滤器标记的内容。

3.4.2 <instance-profile>

这是树状文件的根元素。

子元素

<include> <snippet> <toc-element> 子元素

属性:

id

指定此实例的唯一 ID。

is-library

指定这是否是一个可重复使用的 TOC 片段库,而不是一个普通的实例树文件。

name

指定此实例的名称,作为输出的主标题。

start-page

指定当读者导航到帮助网站的根 URL 时默认打开的主题。

status

指定实例的状态

  • release 是产生常规输出的默认状态。
  • deprecated 用于过时的文档。此状态下的输出将在每个页面上都有一个横幅,警告读者该文档已过期或描述的是产品的旧版本。
  • eap 用于仍在开发中的文档。此状态下的输出将在每一页上都有一个横幅,警告读者文档可能会有更改。这可能是因为文档本身尚未完成,或者它所描述的产品还不是最终版本,如早期访问构建版或测试版。

3.4.3 <snippet>

使用 <include> 元素定义树形文件层次结构的一个片段,以便在其他实例中重复使用。

<snippet id="intro">
    <toc-element topic="getting_started.topic"/>
    <toc-element topic="installation_guide.topic"/>
    <toc-element topic="first_run.topic"/>
</snippet>

建议将所有可重复使用的树块保存在一个专用的树文件中,该文件不是已发布的实例。

父元素

<instance-profile> <snippet> <toc-element> 

子元素

<include> <snippet> <toc-element>

属性:

filter

为元素指定自定义过滤器。定义 <snippet> 时,可根据某些标准筛选出内容,然后在 <include> 上指定 use-filter 属性,以便在不同上下文中重复使用此片段。

id

指定片段的标识符。

instance

指定元素的条件。例如,你可以定义该元素适用的实例,这样其他实例就不会出现该元素。也可以用 ! 来否定,以指定排除该元素的帮助实例。

3.4.4 <toc-element>

在 TOC 中添加一个条目。

这通常是一个主题:

<toc-element topic="getting_started.topic"/>
父元素

<instance-profile> <snippet> <toc-element> 父元素

子元素

<include> <snippet> <toc-element> 子元素

属性:

accepts-web-file-names

指定一个 HTML 页面,以便从中创建一个重定向到此 TOC 条目。例如,如果您从发布的输出中删除了一个产生 some-topic.html 的主题,您可能希望添加一个指向其他相关主题的重定向,这样有直接部件链接的读者就不会只看到一个 404 错误。

<toc-element topic="related.topic" accepts-web-file-names="some-topic.html"/>
您可以用逗号分隔指定多个 HTML 页面。

accepts-web-file-names-ref

从 redirection-rules.xml 中指定重定向规则 ID。

filter

为元素指定自定义过滤器。定义 <snippet> 时,可根据某些标准筛选出内容,然后在 <include> 上指定 use-filter 属性,以便在不同上下文中重复使用此片段。

hidden

从 TOC 中隐藏该条目。读者仍能通过一个部件访问相关联的主题,但它在 TOC 中将没有条目。

<toc-element topic="reference.topic" hidden="true"/> 
href

指定一个 URL,以创建一个 TOC 条目,打开该 URL 而不是主题。

id

指定 TOC 元素的标识符。

in

指定另一个实例,以创建对该实例中主题的引用。与 <ref> 一起使用。

<toc-element ref="some.topic" in="ug"/>
instance

指定可重复使用的 TOC 块的条件。例如,您可以定义该元素适用的实例,这样其他实例就不会出现该元素。或者,您也可以用 ! 来否定,以指定排除此元素的帮助实例。

origin

如果您想包含另一个帮助模块中的主题,请指定该模块为原点。

ref

创建对另一个帮助模块中主题的引用

<toc-element ref="some.topic" in="ug"/>
target-for-accept-web-file-names

指定一个 URL,以便从指定为 accepts-web-file-names 的 HTML 页面创建重定向。

toc-title

如果主题标题本身过长,则指定 TOC 条目的标题。

topic

指定与此 TOC 元素相关联的主题。

四、目录

 目录 (TOC) 表示实例的结构。它是使用 <toc-element> 标记在树形文件中定义的。

读者可以在已发布的帮助网站左侧看到目录,并使用它来浏览章节和主题。默认情况下,每个主题都有一个页面内 TOC,它呈现在主题页面的右侧,并显示一级章节标题。

作为作者,您可以使用 Writerside 工具窗口查看当前实例中包含的所有内容,添加、删除和移动主题。TOC 使用各种图标和字体来区分不同类型的 TOC 元素。

Writerside TOC

Generated help TOC

Table of contents in the Writerside tool window

Table of contents in the built output

直接引用主题文件的常规 TOC 元素不带任何图标,以常规字体显示。将鼠标悬停在该元素上,可以看到相关的主题文件名称。

如果隐藏 TOC 元素,Writerside 将以灰色字体显示。Writerside 将为该实例建立相关联的主题,但读者无法从 TOC 导航到该主题,只能通过搜索或直接部件链接。

Writerside 工具窗口使用以下图标来表示各种 TOC 元素类型:

该 TOC 元素包含在另一个实例中。将鼠标悬停在 TOC 元素上,可以查看它是从哪里包含的。

更多信息,请参阅同时重复使用多个主题。

这是当前实例的主页。当读者打开帮助网站根目录的 URL 时,就会进入该页面。

更多信息,请参阅定义主页。

该 TOC 元素是一个包装器--一个没有关联主题文件的空 TOC 元素,用于将其他主题归入一个章节。

有关更多信息,请参阅将主题合并为一节。

此 TOC 元素引用的是外部 URL,而不是主题文件。将鼠标悬停在 TOC 元素上可查看 URL。

更多信息,请参阅将 TOC 部件链接到外部 URL。

 在 TOC 中,您看到的是将要发布的主题标题,而不是主题文件名或主题 ID。如有必要,您可以指定仅限 TOC 的标题或特定于实例的标题。如果需要更改主题标题,请右键单击 TOC 中的主题并选择编辑标题。

4.1 打开主题文件

双击 TOC 中的任意项目,即可在编辑器中打开相应的主题文件。

如果它是一个空的包装,Writerside 将为您导航到相应树文件中的相关 <toc-element> 。

或者,您也可以单击 Writerside 工具窗口工具栏中的同步 TOC 和编辑器 Synchronize TOC and Editor(同步 TOC 和编辑器),在编辑器中打开当前选定的主题。这也可以反过来操作:如果焦点在打开了主题文件的编辑器上,单击 "同步 TOC 和编辑器"(Synchronize TOC and Editor)可在 TOC 中选择相关项目。

4.2 更改主题顺序和层次结构

在 Writerside 工具窗口中拖动项目。

也可以直接编辑树形文件。

4.3 直接编辑树形文件

右键单击 Writerside 工具窗口中的必要实例,然后选择打开 TOC 文件。

或者,右键单击 TOC 中的任意项目,然后选择转到 TOC 元素。

在树形文件中,更改 <toc-element> 标记的顺序和层次。为方便起见,按 CtrlShiftHome 键可上移一行,按 CtrlShiftEnd 键可下移一行。

你还可以删除或添加新的 <toc-element> 标记,并将它们相互嵌套以创建层次结构:

<toc-element topic="Manage_a_documentation_project.topic">
    <toc-element topic="Create_a_project.topic"/>
</toc-element>

4.4 将现有主题文件添加到 TOC

  1. 在 Writerside 工具窗口中,选择要添加主题的位置,然后单击新建主题 New Topic 并选择将主题文件部件链接到 TOC。Writerside 会显示项目中存在但尚未添加到当前实例的主题文件列表。
  2. 从现有的主题文件列表中选择所需的主题。你可以开始键入名称来筛选列表。

有关内容重用的更多信息,请参阅重用单个主题。

4.5 定义主页

每个帮助网站都必须有一个主题被指定为首页。默认情况下,当你在一个空实例中添加第一个主题时,或者当你从 Markdown 源导入一个项目时,Writerside 会将第一个主题设置为首页。

  • 在 Writerside 工具窗口中,右键单击任意一个主题,选择设置为主页。

        主页由树文件中根 <instance-profile> 元素的 start-page 属性定义。

4.6 从 TOC 隐藏主题

你可以在实例中包含一个主题,使其可以通过直接部件链接访问,但从 TOC 结构中为读者隐藏它。这对于与其他内容没有直接关系的参考主题或法律文件很有用。您不希望它们出现在 TOC 中,但仍希望读者可以搜索到这些信息。另一个例子可能是一些仍在开发或不再支持的功能。

  • 打开树形文件,在相应的 <toc-element> 中添加 hidden="true" 属性。
<toc-element topic="legal_info.topic" hidden="true"/>

4.7 将 TOC 部件链接到外部 URL

您可以添加一个 TOC 条目,该条目与主题无关,但指向一个外部 URL,如贵公司的博客、支持门户或付费计划比较。如果某个主题的信息已经在其他地方有记录,那么就没有必要在帮助中将其作为主题进行复制:只需在 TOC 中添加一个指向该主题的部件链接即可。

打开树文件,添加一个没有关联主题的 <toc-element>,但带有指定外部 URL 的 href 属性。

默认情况下,Writerside 会使用 URL 作为 TOC 条目的标题,但你也可以通过 toc-title 属性给它一个更易读的标题。

<toc-element toc-title="JetBrains Writerside"
    href="https://www.jetbrains.com/writerside"/>
将主题合并为一节
包装器是没有关联主题文件的空 TOC 元素。一般来说,最好始终为所有主题和章节提供引言。因此,如果您有一组关于特定主题的主题,请将它们合并到某个介绍性主题下。您可以使用章节起始页来创建章节概览。

但是,如果不想为一组主题设置任何介绍,可以将它们嵌套在一个包装 TOC 元素下。当读者点击一个空的封装器时,它只会展开 TOC 的相应部分,而不会打开任何主题。

要制作一个分组了几个主题但没有内容的包装器,请执行以下操作

打开树形文件,添加一个没有关联主题但带有 toc-title 属性的 <toc-element> 。

在包装器 <toc-element> 中添加与该部分相关的主题。

<toc-element toc-title="Getting started">
    <toc-element topic="Installation.md"/>
    <toc-element topic="Configuration.md"/>
</toc-element>
由于包装器没有相关联的主题文件,也不会产生任何 URL 引用,因此不接受 accepts-web-file-names 等属性。

按字母顺序排序子主题
将多个主题添加到节后,您可能需要对它们进行排序。例如,如果章节中有各种命令或选项的主题,通常按字母顺序排序会更方便。

在 Writerside 工具窗口中,右键单击任何带有子主题的 TOC 元素,然后选择按字母顺序排列子主题。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1399797.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

vue路由-全局前置守卫

1. 介绍 详见&#xff1a;全局前置守卫网址 使用场景&#xff1a; 对于支付页&#xff0c;订单页等&#xff0c;必须是登录的用户才能访问的&#xff0c;游客不能进入该页面&#xff0c;需要做拦截处理&#xff0c;跳转到登录页面 全局前置守卫的原理&#xff1a; 全局前置…

QT+opencv源码编译

时间记录&#xff1a;2024/1/20 一、版本介绍 QT5.12.7cmake3.22.0opencv4.5.4 二、编译步骤 &#xff08;1&#xff09;下载opencv源码&#xff0c;然后安装&#xff0c;opencv的安装即对源码的解压过程&#xff0c;解压后的文件目录如下 &#xff08;2&#xff09;openc…

stm32 FOC 电机介绍

今年开始学习foc控制无刷电机&#xff0c;这几天把所学整理一下&#xff0c;记录一下知识内容。 前言: 为什么要学习FOC? 1.电机控制是自动化控制领域重要一环。 2.目前直流无刷电机应用越来越广泛&#xff0c;如无人机、机械臂、云台、仿生机器人等等。 需要什么基础&…

最长公共前缀(Leetcode14)

例题&#xff1a; 分析&#xff1a; 我们可以先定义两个变量 i &#xff0c; j&#xff0c; j表示数组中的每一个字符串&#xff0c; i 表示每个字符串中的第几个字符。一列一列地进行比较&#xff0c;先比较第一列的字符&#xff0c;若都相同&#xff0c;则 i &#xff0c;继…

字节跳动 ByteHouse 云原生之路 – 计算存储分离与性能优化

01 起源 ByteHouse 的故事从字节跳动对于先进数据处理和分析的需求开始&#xff0c;这一需求随着公司业务规模的迅速扩张而日益增长&#xff0c;起源是对开源数据库管理系统 ClickHouse 的改造和增强。面对数据处理的高延迟、大规模数据操作的复杂性以及数据存储和处理成本的上…

记录一次QT乱码问题

问题描述 在敲陆文周的书《QT5开发及实例》的示例代码时&#xff0c;出现乱码&#xff0c;如下图所示 具体代码如下 Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget) {ui->setupUi(this);ui->treeWidget->clear();int groupSize 2;int ite…

Unity SnapScrollRect 滚动 匹配 列表 整页

展示效果 原理: 当停止滑动时 判断Contet的horizontalNormalizedPosition 与子Item的缓存值 相减,并得到最小值&#xff0c;然后将Content horizontalNormalizedPosition滚动过去 使用方式&#xff1a; 直接将脚本挂到ScrollRect上 注意&#xff1a;在创建Content子物体时…

蓝桥杯练习题(十二)

&#x1f4d1;前言 本文主要是【算法】——蓝桥杯练习题&#xff08;十二&#xff09;的文章&#xff0c;如果有什么需要改进的地方还请大佬指出⛺️ &#x1f3ac;作者简介&#xff1a;大家好&#xff0c;我是听风与他&#x1f947; ☁️博客首页&#xff1a;CSDN主页听风与他…

list下

文章目录 注意&#xff1a;const迭代器怎么写&#xff1f;运用场合&#xff1f; inserterase析构函数赋值和拷贝构造区别&#xff1f;拷贝构造不能写那个swap,为什么&#xff1f;拷贝构造代码 面试问题什么是迭代器失效&#xff1f;vector、list的区别&#xff1f; 完整代码 注…

微信公众号服务器配置启用, Java示例

微信公众号接入指南文档https://developers.weixin.qq.com/doc/offiaccount/Basic_Information/Access_Overview.html 在微信公众号的服务器配置中&#xff0c;首先需要编写Java代码来处理微信服务器的验证请求。以下是Java示例代码&#xff0c;然后我将为你提供启用服务器配置…

centos7安装Redis7.2.4

文章目录 下载Redis解压Redis安装gcc依赖&#xff08;Redis是C语言编写的&#xff0c;编译需要&#xff09;编译安装src目录下二进制文件安装到/usr/local/bin修改redis.conf文件启动redis服务外部连接测试 参考&#xff1a; 在centos中安装redis-5.0.7 Memory overcommit must…

记录一下uniapp 集成腾讯im特别卡(未解决)

uniapp的项目运行在微信小程序 , 安卓 , ios手机三端 , 之前这个项目集成过im,不过版本太老了,0.x的版本, 现在需要添加客服功能,所以就升级了 由于是二开 , 也为了方便 , 沿用之前的webview嵌套腾讯IM的方案 , 选用uniapp集成ui ,升级之后所有安卓用户反馈点击进去特别卡,几…

华为FusionStorage Block、OceanStor 100D、OceanStor pacific的区别

华为FusionStorage Block、OceanStor 100D、OceanStor pacific的区别&#xff1f; 华为块存储到底是叫什么呢&#xff1f; 有接触过华为块存储产品的小伙伴肯定都有疑惑&#xff0c;在FusionStorage 、FusionStorage Block、OceanStor 100D、OceanStor pacific等等的名词中&a…

基于SpringBoot Vue高校失物招领系统

大家好✌&#xff01;我是Dwzun。很高兴你能来阅读我&#xff0c;我会陆续更新Java后端、前端、数据库、项目案例等相关知识点总结&#xff0c;还为大家分享优质的实战项目&#xff0c;本人在Java项目开发领域有多年的经验&#xff0c;陆续会更新更多优质的Java实战项目&#x…

自然语言推断:注意力之注意(Attending)

注意&#xff08;Attending&#xff09; 第一步是将一个文本序列中的词元与另一个序列中的每个词元对齐。假设前提是“我确实需要睡眠”&#xff0c;假设是“我累了”。由于语义上的相似性&#xff0c;我们不妨将假设中的“我”与前提中的“我”对齐&#xff0c;将假设中的“累…

【复现】Apache Solr信息泄漏漏洞_24

目录 一.概述 二 .漏洞影响 三.漏洞复现 1. 漏洞一&#xff1a; 四.修复建议&#xff1a; 五. 搜索语法&#xff1a; 六.免责声明 一.概述 Apache Solr是一个独立的企业级搜索应用服务器&#xff0c;它对外提供类似于Web-service的API接口。用户可以通过http请求&#x…

《Python数据分析技术栈》第03章 03 可视化各级数据(Visualizing various levels of data)

03 可视化各级数据&#xff08;Visualizing various levels of data&#xff09; 《Python数据分析技术栈》第03章 03 可视化各级数据&#xff08;Visualizing various levels of data&#xff09; Whenever you need to analyze data, first understand if the data is stru…

Node.JS CreateWriteStream(大容量写入文件流优化)

Why I Need Node.JS Stream 如果你的程序收到以下错误&#xff0c;或者需要大容量写入很多内容(几十几百MB甚至GB级别)&#xff0c;则必须使用Stream文件流甚至更高级的技术。 Error: EMFILE, too many open files 业务场景&#xff0c;我们有一个IntradayMissingRecord的补…

网络数据传输过程

先验知识&#xff1a;OSI模型 OSI网络模型实际上是参考模型&#xff0c;在实际中并不使用&#xff0c;在网络出现问题的时候&#xff0c;可以从一个宏观的整体去分析和解决问题&#xff0c;而且搭建网络的时候并不需要划分为7层&#xff0c;当今互联网广泛使用的是TCP/IP网络模…

Leetcode 2788. 按分隔符拆分字符串

我们可以先自己模拟一下分隔字符串的过程。如果只是简单的&#xff0c;遇到分隔符&#xff0c;将分隔符前后的子串加入结果的List&#xff0c;那么很显然并没有考虑到一个String中有多个字符串的情况。一种比较容易想到的方法是&#xff1a; 先对List中每个字符串遍历&#xf…