【建站】测试 Argon 主题下 Jetpack Mardown 块对 Affine 导出 md 文件的渲染效果

一级标题

二级标题

三级标题

常规文本

红色字体

加粗字体

斜体

<u>下划线</u>

行内代码 function()

主题自带代码高亮与复制支持

bash

#!/bin/bash

# 脚本名称:highlight_test.sh
# 作用:测试代码高亮功能

# 定义变量
USERNAME=$(whoami)
DATE=$(date "+%Y-%m-%d %H:%M:%S")
FILE="/tmp/test_output.txt"

# 输出提示
echo "Hello, $USERNAME!"
echo "Current time: $DATE"

# 创建文件并写入内容
echo "Generating output file at $FILE"
echo "This is a test file created at $DATE by $USERNAME" > "$FILE"

# 使用条件语句
if [[ -f "$FILE" ]]; then
    echo "✅ File created successfully."
else
    echo "❌ Failed to create file." >&2
    exit 1
fi

# 使用循环
for i in {1..5}; do
    echo "Line $i: This is a test." >> "$FILE"
done

# 使用函数
function print_file() {
    echo "Contents of $FILE:"
    cat "$FILE"
}

print_file

# 清理
rm "$FILE"
echo "Temporary file removed."

# 退出
exit 0

python

#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
测试代码高亮效果的 Python 脚本
"""

import os
import datetime
from typing import List


class Greeter:
    def __init__(self, name: str):
        self.name = name
        self.timestamp = datetime.datetime.now()

    def greet(self) -> str:
        return f"Hello, {self.name}! Current time is {self.timestamp.strftime('%Y-%m-%d %H:%M:%S')}."


def generate_numbers(n: int) -> List[int]:
    return [i ** 2 for i in range(n) if i % 2 == 0]


def main():
    user = os.getenv("USER") or "World"
    greeter = Greeter(user)
    print(greeter.greet())

    try:
        numbers = generate_numbers(10)
        print("Generated numbers:", numbers)
    except Exception as e:
        print(f"⚠️ Error occurred: {e}")

    # 文件操作示例
    filename = "/tmp/test_output.txt"
    with open(filename, "w") as f:
        f.write("\n".join(map(str, numbers)))
    print(f"Results written to {filename}")


if __name__ == "__main__":
    main()
```

C++

#include <iostream>
#include <vector>
#include <string>
#include <stdexcept>
#include <ctime>

class Greeter {
public:
    Greeter(const std::string& name) : name_(name) {
        time_t now = time(nullptr);
        timestamp_ = std::ctime(&now);
    }

    void greet() const {
        std::cout << "Hello, " << name_ << "! Current time is: " << timestamp_;
    }

private:
    std::string name_;
    std::string timestamp_;
};

template<typename T>
std::vector<T> generateSquares(int n) {
    std::vector<T> result;
    for (int i = 0; i < n; ++i) {
        if (i % 2 == 0) {
            result.push_back(static_cast<T>(i * i));
        }
    }
    return result;
}

int main() {
    std::string user = std::getenv("USER") ? std::getenv("USER") : "World";
    Greeter greeter(user);
    greeter.greet();

    try {
        auto squares = generateSquares<int>(10);
        std::cout << "Generated even squares:";
        for (const auto& val : squares) {
            std::cout << " " << val;
        }
        std::cout << std::endl;
    } catch (const std::exception& e) {
        std::cerr << "⚠️ Exception: " << e.what() << std::endl;
    }

    return 0;
}

Matlab(argon 不支持)

% 测试代码高亮效果的 MATLAB 示例脚本

function highlight_test()
    % 生成数据
    t = 0:0.01:2*pi;
    y1 = sin(t);
    y2 = cos(t);

    % 创建图形窗口
    figure;
    plot(t, y1, 'r-', 'LineWidth', 2); hold on;
    plot(t, y2, 'b--', 'LineWidth', 2);
    legend({'sin(t)', 'cos(t)'});
    title('Sine and Cosine Waves');
    xlabel('Time (s)');
    ylabel('Amplitude');
    grid on;

    % 条件判断与循环
    for i = 1:length(t)
        if y1(i) > 0.9
            fprintf('⚠️  High peak detected at t=%.2f: y1=%.2f\n', t(i), y1(i));
        end
    end

    % 保存图像
    saveas(gcf, 'highlight_test_plot.png');
end

cmake(argon 不支持)

cmake_minimum_required(VERSION 3.16)

# 项目信息
project(HighlightTest LANGUAGES CXX)

# 选项设置
option(ENABLE_TESTS "Enable unit tests" ON)

# 设置 C++ 标准
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)

# 查找头文件
include_directories(${CMAKE_SOURCE_DIR}/include)

# 查找源文件
file(GLOB_RECURSE SOURCES src/*.cpp)

# 创建可执行文件
add_executable(${PROJECT_NAME} ${SOURCES})

# 添加宏定义
add_definitions(-DUSE_CUSTOM_LOG)

# 条件编译
if(ENABLE_TESTS)
    message(STATUS "✅ Tests are enabled.")
    enable_testing()
    add_subdirectory(test)
else()
    message(WARNING "⚠️ Tests are disabled.")
endif()

链接

argon github 仓库

使用$x$行内公式 $D=\lim_{t\to\infty}\frac{1}{2dt}\langle\Delta r^2(t)\rangle$

使用$$x$$行间公式

$$ \begin{aligned} \hat{u}(t) &= \argmin_{u \in \mathcal{U}} \left{ \int_t^{t+T} \left[ x^\top(\tau) Q x(\tau) + u^\top(\tau) R u(\tau) \right] d\tau + x^\top(t+T) P x(t+T) \right}, \ \text{s.t.} \quad &\dot{x}(\tau) = f(x(\tau), u(\tau)), \quad x(t) = x_0 \end{aligned} $$

$$ \begin{aligned} \dot{x}(t) &= A x(t) + B u(t), \ y(t) &= C x(t) + D u(t) \end{aligned} $$

$$ E=mc^2 $$

$$ x\in\mathbb{R}^3 $$

$$ \begin{eqnarray} y &=& x^4 + 4 \nonumber \ &=& (x^2+2)^2 -4x^2 \nonumber \ &\le&(x^2+2)^2 \nonumber \end{eqnarray} $$

总结

  1. affine 代码块没有 bash 类型,只能选 shell,导出后变为 shellscript,不能被自动高亮。需要手动改为 bash。
  2. affine 需要先输入文字,然后选中点击 link,粘贴网址。导出后才能被正确链接。
  3. affine 颜色文字导出后,信息丢失
  4. affine 加粗和斜体导出后能被正常显示,下划线不可以。
  5. argon 不支持 matlab 和 cmake 的高亮
上一篇
下一篇