Administrator
Administrator
发布于 2025-06-16 / 6 阅读

Halo博客中默认编辑器插入html或markdown或PDF

使用一个名为“Markdown / HTML 内容块”插件,然后在默认编辑器中就可以插入了

作用一:显示pdf

  • (推荐)在博客中直接插入并显示pdf,请自行修改pdfUrl。推荐,对手机端的兼容性好

<!-- 引入 PDF.js 库 --><script src="//cdn.jsdelivr.net/npm/pdfjs-dist@3.4.120/build/pdf.min.js"></script><!-- 必须配置 Worker 否则报错 --><script>
  pdfjsLib.GlobalWorkerOptions.workerSrc = 
    "//cdn.jsdelivr.net/npm/pdfjs-dist@3.4.120/build/pdf.worker.min.js";
</script>

<!-- 滚动容器(关键!) --><div id="pdf-container" style="overflow-y: auto; max-height: 80vh; border: 1px solid #eee;"><!-- 所有页面 Canvas 动态插入此处 --></div>

<script>
  const pdfUrl = "/upload/02-HTML%20%E6%A0%87%E7%AD%BE%EF%BC%88%E4%B8%8A%EF%BC%89.pdf"; // 替换为 Halo 附件库的 PDF URL
  const container = document.getElementById('pdf-container');

  // 加载 PDF 并渲染所有页
  pdfjsLib.getDocument(pdfUrl).promise.then(pdf => {
    const scale = 1.5; // 缩放比例(按需调整)
    const gap = 20; // 页间距

    // 循环渲染每一页
    for (let pageNum = 1; pageNum <= pdf.numPages; pageNum++) {
      pdf.getPage(pageNum).then(page => {
        // 创建 Canvas 元素
        const canvas = document.createElement('canvas');
        canvas.className = "pdf-page";
        canvas.style.marginBottom = `${gap}px`; // 页间距
        container.appendChild(canvas);

        // 计算渲染尺寸
        const viewport = page.getViewport({ scale });
        canvas.height = viewport.height;
        canvas.width = viewport.width;
        const ctx = canvas.getContext('2d');

        // 渲染图像
        page.render({
          canvasContext: ctx,
          viewport
        });

        // 添加文本层(可选,支持复制文字)
        page.getTextContent().then(textContent => {
          const textDiv = document.createElement('div');
          textDiv.className = 'text-layer';
          textDiv.style.position = 'absolute';
          textDiv.style.width = `${viewport.width}px`;
          textDiv.style.height = `${viewport.height}px`;
          container.appendChild(textDiv);
          
          pdfjsLib.renderTextLayer({
            textContent: textContent,
            container: textDiv,
            viewport: viewport
          });
        });
      });
    }
  }).catch(error => {
    console.error("PDF加载失败:", error);
    container.innerHTML = `<p style="color:red">PDF加载失败:${error.message}</p>`;
  });
</script>

<!-- 文本层基础样式 --><style>
  .text-layer {
    pointer-events: none; /* 避免遮挡 Canvas */
  }
  .text-layer > span {
    position: absolute;
    cursor: text;
    transform-origin: 0% 0%;
  }
</style>
  • 通过插入html的方式,输入下面的<embed>代码,进行插入。移动端显示有问题

<embed src="pdf路径" type="application/pdf" width="100%" height="600px">
  • 使用 <iframe> 标签(兼容性强),移动端显示有问题

<iframe 
  src="你的PDF文件URL" 
  width="100%" 
  height="600px" 
  frameborder="0"
></iframe>

示例如下:

作用二:插入html,显示其他地方的文章

通过浏览器的SimpRead简悦插件,可以将其他的地方的文章内容转成markdown,然后通过Typora软件转成html,然后通过在博客中插入该html,达到显示其他地方文章的目的

注意:使用SimRead插件直接导出html,效果不好,测试发现先导出markdown再转html效果最好

示例如下:

simpread-QT Creator 下载安装详细教程(保姆级教程)-CSDN 博客

本文由 简悦 SimpRead 转码, 原文地址 blog.csdn.net

qt 下载安装

1. 下载网址

通过清华大学开源软件镜像站进行下载:链接: https://mirrors.tuna.tsinghua.edu.cn/qt/development_releases/online_installers/

这里我选的是 4.4 版本的,也可以选择 4.7 版本,问题不大。

根据电脑系统选择下载 linux、macOS 和 Windows。这里我选择的是 windows 系统安装教程。

2. 运行安装包

Win+R 打开运行窗口,输入 cmd 打开命令框。

将下载好的 qt-unified-windows-x64 安装包拖到命令框中。然后空一格 输入: –mirror https://mirrors.aliyun.com/qt 按回车即可。

注意: 如果直接双击打开安装包,在安装的过程中会出现 “下裁 “https://nirror.sjtu.edu.cn/qt/online/qtsdkrepository/all_os/
qt_patchers/680/2024-06-07-0940_meta.7z” 时出现网络错误: Error transferring
https://nirror.sjtu,edu,cn/qt/online/qtsdkrepository/all os/gt patchers/
680/2024-06-07-0940 meta.7z- server replied: Not Found。”
这样的错误。

3. 注册账号

这里需要用邮箱注册一个账号。我这里之前已经注册过了。

下一步

下一步

下一步

下一步

下一步

接下来就是选择 qt 版本。根据需要进行选择,这里选择的是 5.15.2 版本的。

4. 勾选 qt 版本组件。


(1)MSVC ( Microsoft Visual C++ Compiler ) :微软的 VC 编译器 ,如果需要用到 visual studio,则需要勾选 MSVC。
(2)MingGW (Minimalist GNU for Windows) :是将 GCC 编译器和 GNU Binutils 移植到 Windows 平台下的产物,它是一些头文件和使用 GNU 工具集导入库的集合,允许用户在没有第三方 dll 的情况下生成本地的 Windows 程序。 MSVC 和 MingGW 都是很好用的工具,但兼容并不好,比如某项目使用了 MingGW 编译,那么它所链接的库也必须是 MingGW 编译而成。 一般来说,如果仅在 Windows 平台开发,选择 MSVC,可以使用大量的第三方库。如果有跨平台需求,选择 MingGW。
(3)UWP (Universal Windows Platform) :属于 MSVC 编译器生成的 Qt 库,用于开发通用 Windows 平台的应用程序 。
(4) Android :用于 Android 应用开发的 Qt 库
(5) Sources :源码包 ,如果你需要链接 MySQL 数据库,这个是必选项。
(6)Qt Charts:二维图表模块,用于绘制柱状图、饼图、曲线图等常用二维图表。
(7)Qt Data Visualization:三维数据图表模块,用于数据的三维显示,如散点的三维空间分布、三维曲面等。
(8)Qt Purchasing:用于处理 Android、iOS 和 macOS 上的应用内购买的跨平台 API。
(9)Qt Virtual Keyboard:Qt Quick 虚拟键盘。
(10)Qt WebEngine:集成了 Google Chromium Web,充分利用了整个 Qt 图形堆栈集成,允许原生 Qt 控件与 Web 内容和 OpenGL 着色器的无缝混合和叠加。
(11)Qt Network Authorization:Qt 网络授权是一个附加库,它使 Qt 应用程序能够使用不同的 Web 身份验证系统。
(12)Qt WebGL Streaming Plugin:一个 Qt Platform Abstraction 插件,它通过网络将 Qt Quick & Qt OpenGL 应用程序流式传输到支持 WebGL 的浏览器。
(13)Qt Script (Deprecated) :脚本模块,已弃用。

5. 勾选 Developer and Designer Tools

6. 勾选 Qt Design Studio


选完之后点击下一步。

下一步

开始安装(在此过程中会出现网速非常慢的时候,建议使用科学上网下载

作用二:插入普通markdown文本