Obsidian 插件:【Readme】Code Emitter

Obsidian 插件:【Readme】Code Emitter

插件名片

  • 插件名称:Code Emitter
  • 插件作者:YISH
  • 插件说明:一个黑曜石插件,可以在沙盒环境中交互式执行代码块,支持的语言有 Rust、Kotlin、Python、Javascript、TypeScript 等。
  • 插件分类:[‘obsidian 插件 ’, ‘readme’]
  • 项目地址:点我访问
  • 国内下载地址:下载安装

概述

一个黑曜石插件,可以在沙盒环境中交互式执行代码块,支持的语言有 Rust、Kotlin、Python、Javascript、TypeScript 等。

Obsidian 插件:【Readme】Code Emitter--概述

原文出处

下面自述文件的来源于 Readme


Readme(翻译)

下面是 code-emitter 插件的自述翻译

Obsidian 代码发射器

Obsidian 代码发射器--Readme(翻译)

Obsidian 代码发射器--Readme(翻译)

该插件允许以类似 jupyter 笔记本的方式执行代码块。它基于 HTTP REST API 和 JS 沙箱和 Webassembly 技术,不需要本地环境要求,因此支持 Obsidian 支持的所有平台。

支持的平台包括:

  • Windows
  • MacOS
  • Linux
  • Android
  • IOS

目前支持的语言:

支持的语言方式
Rusthttps://play.rust-lang.org
Kotlinhttps://play.kotlinlang.org
Vhttps://play.vosca.dev/
JavaScriptJS 沙箱(qiankun
TypeScriptTypeScript 编译器 + JS 沙箱
WenyanWenyan 编译器 + JS 沙箱
PythonWebAssembly(Pyodide
JavaSololearn
GoSololearn
c/c++Sololearn
CSharpSololearn
SwiftSololearn

注意:只有 PythonTypeScriptJavaScript 在本地沙箱(js / webassembly)中运行。其他语言将发送代码到第三方网站以评估结果(例如:https://play.kotlinlang.org,https://play.rust-lang.org)。请注意避免发送可能包含敏感信息的源代码。

广告:您可能会喜欢我的其他插件🤪


Obsidian 代码发射器--Readme(翻译)

安装

  1. obsidian 的社区插件中搜索 Code Emitter,并安装它。

例子

Python

通过 micropip 安装 numpy。所有可用的包都在 这里 列出(搜索 whl)。

import micropip
await micropip.install('numpy')  
import numpy as np
a = np.random.rand(3,2)
b = np.random.rand(2,5)

print(a@b)

任何支持 CORS 的语言

以下是支持 Ruby 的示例。

const url = 'https://api2.sololearn.com/v2/codeplayground/v2/compile';

const runCode = async (code: string, lang: 'cpp' | 'go' | 'c' | 'java' | 'cs' | 'swift' | 'rb') => {
  const header = {
    'User-Agent': 'Obsidian Code Emitter/0.1.0 (如果不允许,请告诉我)',
    'Accept': 'application/json, text/plain, */*',
    'Accept-Language': 'zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2',
    'Content-Type': 'application/json',
  };
		
  const res = await fetch(url, {
    'headers': header,
    'body': JSON.stringify({
      'code': code,
      'codeId': null,
      'input': '',
      'language': lang
    }),
    'method': 'POST',
  });
  return (await res.json()) as {
    success: boolean,
    errors: string[],
    data: {
      sourceCode: number,
      status: number,
      errorCode: number,
      output: string,
      date: string,
      language: string,
      input: string,
    }
  };
};

const ruby_code = `
puts "Hello World12"
`;


console.log((await runCode(ruby_code, 'rb')).data.output);

许可证

此插件沙箱包含来自 https://github.com/umijs/qiankun 的代码,该代码根据以下许可证进行许可:

其他代码根据以下许可证进行许可:



反馈交流

其他渠道

版权声明