这个表格粘贴到Obsidian里就会导致后面live preview失效,有人帮忙测试一下是怎么回事吗?

在Ob沙盒里试过了,最新版本。从表格后面的部分开始就无法渲染,不知道是为什么,自己找不出来原因。这是ChatGPT生成的,我自己看来看去没看出来markdown语法错误……

Obsidian最新版==(安装器也是最新版)==


> [!AI]-
> | 数据类型类别      | MySQL                | C++                   | Java                | Python             |
> |----------------|---------------------|-----------------------|---------------------|--------------------|
> | **整数类型**    |                     |                       |                     |                    |
> | 超小整数类型     | TINYINT             | char (或 int8_t)      | byte                | int                |
> | 小整数类型       | SMALLINT            | short (或 int16_t)    | short               | int                |
> | 中整数类型       | MEDIUMINT           | int (3 字节模拟)      | N/A                 | int                |
> | 整数类型         | INT (INTEGER)       | int (或 int32_t)      | int                 | int                |
> | 大整数类型       | BIGINT              | long long (或 int64_t)| long                | int                |
> | 无符号整数       | UNSIGNED (以上类型)  | unsigned 对应类型     | 无直接支持,需转换   | int (模拟)         |
> | **小数类型**    |                     |                       |                     |                    |
> | 定点小数         | DECIMAL (NUMERIC)   | N/A (库支持)          | BigDecimal          | decimal.Decimal    |
> | 单精度浮点型     | FLOAT               | float                 | float               | float              |
> | 双精度浮点型     | DOUBLE              | double                | double              | float              |
> | **日期和时间**  |                     |                       |                     |                    |
> | 日期类型         | DATE                | N/A (库支持)          | LocalDate           | datetime.date      |
> | 时间类型         | TIME                | N/A (库支持)          | LocalTime           | datetime.time      |
> | 日期时间类型     | DATETIME            | std::chrono::system_clock | LocalDateTime | datetime.datetime  |
> | 时间戳           | TIMESTAMP           | std::chrono           | Instant             | datetime.datetime  |
> | 年份类型         | YEAR                | int (或 uint16_t)     | int                 | int                |
> | **字符串类型**  |                     |                       |                     |                    |
> | 固定长度字符串    | CHAR(size)          | char[size]            | char[]              | str                |
> | 可变长度字符串    | VARCHAR(size)       | string                | String              | str                |
> | 文本类型         | TEXT (TINY/MEDIUM/LONGTEXT) | string (长文本) | String (大文本)     | str                |
> | JSON 类型        | JSON                | N/A (库支持)          | org.json.JSONObject | dict               |
> | **布尔和枚举**  |                     |                       |                     |                    |
> | 布尔类型         | BOOLEAN (BOOL)      | bool                  | boolean             | bool               |
> | 枚举类型         | ENUM                | enum class (C++11+)   | Enum (Java 1.5+)    | Enum (库支持)      |
> | **二进制数据**  |                     |                       |                     |                    |
> | 二进制字符串     | BINARY(size)        | `char[size] (二进制存储)` | byte[]             | bytes              |
> | 可变二进制数据    | VARBINARY(size)     |` vector<char> (或 std::string)` | byte[] | bytes              |
> | 二进制大对象      | BLOB (TINY/MEDIUM/LONGBLOB) | vector<char>    | byte[]             | bytes  |
> | **地理数据类型** |                     |                       |                     |                    |
> | 点              | POINT               | N/A                   | N/A                 | tuple (x, y)       |
> | 线              | LINESTRING          | N/A                   | N/A                 | list of tuples     |
> | 面              | POLYGON             | N/A                   | N/A                 | list of lists      |
> | **其他类型**    |                     |                       |                     |                    |
> | 集合类型         | SET                 | bitfield 或 vector<bool> | 无直接支持          | set                |
> 

而且这个新版本好像还有别的bug,似乎无法关闭插件了。
我关掉插件,然后重启obsidian,发现关闭的插件又自动打开了,macOS最新版。

我不知道之前的版本有没有这几个问题,因为我也没一个个版本测试

尖括号会识别成html标识符,需要用代码块括起来

检查一下.obsidian文件夹下的community-plugins.json文件是否有修改,自动打开一般是这个文件修改失败了,可能有文件夹权限原因

1 个赞

第一个问题解决了,但是对于代码里面的<>没法这么干啊,这么干的话代码就不对了:joy:比如这个

> **短答案**:在绝大多数主流编程语言中,包括 C++ 和 Java,`float` 类型是不区分有符号和无符号的。浮点数类型(如 `float` 和 `double`)一般总是有符号的,因为它们遵循 **IEEE 754 浮点数标准**,该标准规定浮点数的最高位作为符号位,用于表示正负号。
> 
> ### 1. C++ 中的 `float`
> 在 C++ 中,`float` 类型总是**有符号的**,没有无符号版本。
> - C++ 的浮点数类型包括 `float`、`double` 和 `long double`,它们都遵循 **IEEE 754** 标准。
> - C++ 并未提供类似于整型的 `unsigned float`。
> 
> #### 为什么没有无符号浮点数?
> - 浮点数的设计目标是表示广泛的值范围,包括正数和负数。
> - 负数范围的移除在大多数场景中没有实际需求,因此未实现无符号版本。
> 
> ### 2. 其他编程语言中的 `float`
> 
> #### **Java**
> - `float` 和 `double` 类型始终是有符号的,无无符号版本。
> - 符号位由 IEEE 754 标准定义,没有被语言改变。
> 
> #### **Python**
> - Python 的 `float` 类型也是有符号的,基于底层 C 实现的双精度浮点数(`double`)。
> - 没有无符号版本。
> 
> #### **Rust**
> - Rust 提供了 `f32`(32 位浮点数)和 `f64`(64 位浮点数),它们都是有符号类型,没有无符号版本。
> 
> #### **Go**
> - Go 提供 `float32` 和 `float64`,同样都是有符号的,没有无符号版本。
> 
> #### **C**
> - C 中的 `float`、`double` 和 `long double` 都是有符号的,没有无符号版本。
> 
> #### **其他语言**
> 几乎所有现代编程语言中,`float` 类型都基于 IEEE 754 标准,因此也都是有符号的。
> 
> ### 3. 是否有支持无符号浮点数的语言?
> 目前,主流编程语言中几乎没有提供无符号浮点数类型的原生支持。原因包括:
> 1. **IEEE 754 标准不定义无符号浮点数**。
> 2. **无符号浮点数的实际需求低**:
>    - 浮点数的主要用途是科学计算、图形计算等,通常需要同时处理正数和负数。
>    - 在需要限制负数的场景中,可以通过逻辑约束实现。
> 
> ### 4. 如何模拟无符号浮点数?
> 在不支持无符号浮点数的语言中,可以通过逻辑限制或绝对值函数来模拟无符号行为。
> 
> #### 示例:限制负数输入
> ```cpp
> #include <iostream>
> #include <stdexcept>
> using namespace std;
> 
> float setUnsignedFloat(float value) {
>     if (value < 0) {
>         throw invalid_argument("Value must be non-negative!");
>     }
>     return value;
> }
> 
> int main() {
>     float value = -3.14;
>     try {
>         float unsignedValue = setUnsignedFloat(value);
>         cout << "Value: " << unsignedValue << endl;
>     } catch (const exception &e) {
>         cout << e.what() << endl;
>     }
>     return 0;
> }
> ```
> 
> #### 示例:忽略负数(取绝对值)
> ```cpp
> #include <iostream>
> #include <cmath>
> using namespace std;
> 
> int main() {
>     float value = -3.14;
>     float unsignedValue = fabs(value);
>     cout << "Unsigned Value: " << unsignedValue << endl;
>     return 0;
> }
> ```
> 
> ### 5. 总结
> - **`float` 在绝大多数语言中只有有符号版本**,因为它们基于 **IEEE 754 标准**,该标准定义了符号位。
> - 无符号浮点数在实际需求中很少出现,因此主流语言并未提供支持。
> - 如果需要无符号行为,可以通过应用逻辑(如绝对值或限制负数输入)来实现。

我即使是把这个文件去手动修改掉,再次打开Obsidian,会发现这个文件又被软件自己改回来了……(期间没有做其他设备上的编辑)

看了一下英文论坛最近都还在讨论,暂时没有很好的解决法方案

1 个赞