# Soulver X Series

## 什么是 Soulver X Series？

在 2024 年，我们启动了一个为期多年的研发项目，其使命是：

* 探索 Soulver 的酷炫新想法
* 寻找新的形式和新的工作流程
* 大胆地开拓任何笔记计算器从未涉足的领域 🖖

我们计划每年发布一个主要的 X 系列新版本。

### Soulver X Series 赞助

如果您是长期用户（或 Soulver 的超级粉丝），并对这项工作感到兴奋，您可以考虑 [在 GitHub 上赞助我们的使命](https://soulver.app/sponsor)。

此外，作为赞助商，您将能够使用最新 X 系列原型（X3、X4 等），这些原型在笔记计算器领域具有更多前所未见的特性。

我们（非常）小的团队非常感谢您的支持，这将使我们能够投入更多资源进行此类高级笔记计算器的研发。

## Soulver X2 (2025)

### 子工作表 (Subsheets)

* 子工作表是存在于单个令牌内的独立工作表。
  * 从标签栏的 + 按钮创建子工作表。
  * 双击紫色令牌以打开子工作表编辑器。
* 子工作表可以引用母工作表中的变量（前提是这些变量已在子工作表行上方声明）。

### 带范围的滑块令牌 (Slider Tokens with Ranges)

* 滑块令牌允许您指定可拖动滑块的范围
  * 从标签栏的 + 按钮创建滑块。
  * 双击绿色令牌以打开滑块弹出窗口。

### 分隔线 (Divider Lines)

* 输入三个破折号 (-) 即可插入一条分隔线。
* 使用分隔线在工作表的不同部分之间创建更强的视觉分隔。

## Soulver X1 (2024)

X1 包含了 Soulver 最受关注的功能实现，包括：

* [自定义函数支持](https://soulver.app/feedback)（包括自然语言函数）
* [跨工作表共享变量](https://soulver.app/feedback)（通过新的“标题”工作表）
* [连接 Web API](https://soulver.app/feedback)（只需粘贴和几次点击）

### 标签页 (Tabs)

<figure><img src="/files/CQGtp7d129vtZsOK906v" alt=""><figcaption><p>Soulver X1 中的多个标签页</p></figcaption></figure>

Soulver X1 中的文档从一个标签页开始，您可以通过点击标签栏右侧的 + 按钮添加更多标签页。

**重命名标签页**

双击标签页的标题即可为其设置别名。或者，按住 control 键点击标签页并选择“重命名”。

**删除标签页**

当鼠标悬停在标签页上时，点击 x 按钮进行删除。或者，按住 control 键点击标签页并选择“删除”。

{% hint style="warning" %}
标签页是一个进行中的功能。

您目前无法重新排列标签页，并且在一个文档中添加过多的标签页无法正常工作。
{% endhint %}

### 标题工作表 (The header sheet)

标题工作表是专门用于定义可以在文档所有标签页中使用的变量、单位、函数和网络值的工作表。

<figure><img src="/files/mWhrVE0riC5r9rIjKR53" alt="" width="375"><figcaption></figcaption></figure>

### **跨标签页变量**

请像声明本地变量一样，在标题工作表中声明您的文档变量。

例如：

```
my variable = 123
```

`my variable` 将在您的所有工作表中可用。

{% hint style="info" %}
您的标签页只能引用变量，但不能修改其定义，使其适用于文档中的其他工作表。
{% endhint %}

### **等效单位 (Equivalence units)**

等效单位是根据现有单位定义的。

您可以使用以下方式在标题工作表中定义新的等效单位（例如）：

```
1 watermelon = 10 lb
```

<figure><img src="/files/h1utKy5lSjPciCD8NCd3" alt=""><figcaption><p>在 Soulver X1 中声明新的质量单位</p></figcaption></figure>

现在可以在您的标签页中使用 `watermelon` 作为质量单位了。

<figure><img src="/files/XRQcjLnZASMlxlroiW62" alt=""><figcaption><p>在 Soulver X1 中使用自定义等效单位</p></figcaption></figure>

{% hint style="info" %}
Soulver X1 会自动为您（在英文中）复数化您的新单位。

因此，在这个例子中，即使定义是 "watermelon"，"watermelons" 也会被识别为有效的单位名称。
{% endhint %}

### **通用单位 (Generic units)**

等效单位是一种全新的单位类型，不是根据现有单位定义的。

您可以使用以下方式在标题工作表中定义新的通用单位（例如）：

```
operation = new unit
```

<figure><img src="/files/ANc4DjWYNDpbkAiXYZMb" alt=""><figcaption><p>在 Soulver X1 中声明通用单位类型</p></figcaption></figure>

现在可以在您的标签页中使用 `operation` 单位了（包括在比率中）：

<figure><img src="/files/hMAGIAhjn1Qee2VOg54P" alt=""><figcaption><p>在 Soulver X1 中使用通用单位</p></figcaption></figure>

### **自定义函数 (Custom functions)**

**介绍**

函数是一个方便的短语，它接收一个输入并返回一个输出。在 Soulver X1 中，您可以使用（几乎）任何函数语法，包括：

C 风格: `doSomething(123)`

Swift 风格: `doSomething(with: 123)`

自然语言: `do something with 123`

**如何创建新的自定义函数（在标题工作表中）**

* 点击 `Define New` > `Function`

**选择函数名称：**

<figure><img src="/files/H1TDd8LimRBCGJfOGbaI" alt=""><figcaption><p>在 Soulver X1 中声明新函数</p></figcaption></figure>

* 使用您实际使用该函数的示例来定义您的函数。
* 选择任何参数（只要它们与您期望的参数“类型”匹配，例如金钱、时间、纯十进制数字等）。

**实现您的函数：**

<figure><img src="/files/3cJnggigjj3Ec13XgZvr" alt=""><figcaption><p>编写一个计算特定金额销售税的函数</p></figcaption></figure>

* 在专用的 Soulver 工作表中实现该函数。任何参数都将作为黄色令牌注入。
* 将鼠标悬停在参数令牌上，即可查看它在声明中引用了哪个参数。
* 实现工作表的最后一行将被返回为函数的最终值。

**使用您的函数**

<figure><img src="/files/v6BEGXMW9WlBnw05vcBb" alt=""><figcaption></figcaption></figure>

在所有工作表中，使用您的函数和其它输入值。

### **网络值（连接到 JSON API）**

#### **如何创建新的网络值（在标题工作表中）**

* 点击 `Define New` > `Web Value`

#### **如何连接到 JSON 数据源中的特定数据点**

<figure><img src="/files/3Gb1FrpEtkrtEzNaEX8d" alt=""><figcaption><p>在 Soulver X1 中连接到远程数据源</p></figcaption></figure>

* 粘贴一个指向 JSON 数据源的 URL，然后只需点击您希望连接的数据点即可。

#### **使用网络值**

* 您的网络值将被分配一个变量名（默认情况下，与 JSON 源中的描述匹配）。
* 您可以欢迎将变量名更改为其他名称。

#### **更新网络值**

* 您设置的频率将自动在后台更新您的网络值。

#### **编辑网络值**

* 双击标题工作表中的黄色网络值令牌，以指定不同的数据点或更改更新频率。

## Soulver X Series 文件类型

{% hint style="warning" %}
Soulver X 系列应用使用与 Soulver 不同的文档类型（.slvrx）。

这是为了支持我们正在构建和试验的新功能。

Soulver X (.slvrx) 文件不能使用 Soulver 3 for Mac、iOS 和 iPad 进行编辑。
{% endhint %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://documentation.soulver.app/zh/shi-yan-xing-gong-neng/x.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
