diff --git a/.github/workflows /static.yml b/.github/workflows /static.yml new file mode 100644 index 0000000..1c91cef --- /dev/null +++ b/.github/workflows /static.yml @@ -0,0 +1,43 @@ +# Simple workflow for deploying static content to GitHub Pages +name: Deploy static content to Pages + +on: + # Runs on pushes targeting the default branch + push: + branches: ["main"] + + # Allows you to run this workflow manually from the Actions tab + workflow_dispatch: + +# Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages +permissions: + contents: read + pages: write + id-token: write + +# Allow only one concurrent deployment, skipping runs queued between the run in-progress and latest queued. +# However, do NOT cancel in-progress runs as we want to allow these production deployments to complete. +concurrency: + group: "pages" + cancel-in-progress: false + +jobs: + # Single deploy job since we're just deploying + deploy: + environment: + name: github-pages + url: ${{ steps.deployment.outputs.page_url }} + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v4 + - name: Setup Pages + uses: actions/configure-pages@v5 + - name: Upload artifact + uses: actions/upload-pages-artifact@v3 + with: + # Upload entire repository + path: './dist' + - name: Deploy to GitHub Pages + id: deployment + uses: actions/deploy-pages@v4 \ No newline at end of file diff --git a/Cargo.lock b/Cargo.lock index 75d133c..a939882 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -648,6 +648,16 @@ version = "2.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3" +[[package]] +name = "mini-note" +version = "0.1.0" +dependencies = [ + "console_log", + "log", + "web-sys", + "yew", +] + [[package]] name = "miniz_oxide" version = "0.8.0" @@ -1207,16 +1217,6 @@ dependencies = [ "yew-macro", ] -[[package]] -name = "yew-app" -version = "0.1.0" -dependencies = [ - "console_log", - "log", - "web-sys", - "yew", -] - [[package]] name = "yew-macro" version = "0.21.0" diff --git a/README.md b/README.md index 9f744be..ca9674f 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,27 @@ Mini Note -采用 Rust 编程语言,选择 Yew 框架 \ No newline at end of file +采用 Rust 编程语言,选择 Yew 框架 + +## 目录结构 + +目录结构: +my_blog_project/ +├── src/ +│ ├── components/ +│ │ ├── header.rs # 导航栏组件 +│ │ ├── sidebar.rs # 目录树组件 +│ │ ├── content.rs # 内容展示区域 +│ ├── routes/ +│ │ ├── home.rs # 首页路由 +│ │ ├── post.rs # 单个笔记页面路由 +│ ├── context/ +│ │ └── app_context.rs # 应用的全局上下文(例如主题管理、用户状态) +│ ├── main.rs # 应用主入口 +│ ├── markdown.rs # 处理 Markdown 文件的加载与渲染 +│ ├── app.css # 样式文件,包含 Tailwind CSS +│ └── utils.rs # 工具函数,可能包括文件加载和异步处理等 +├── static/ # 静态资源目录,存放图片、文件等 +│ ├── assets/ # 其他静态资源,如图标、图片等 +│ └── posts/ # 存放 Markdown 文件的目录 +├── Cargo.toml # Rust 项目配置文件 +└── README.md # 项目说明文件 \ No newline at end of file diff --git a/dist/index.html b/dist/index.html new file mode 100644 index 0000000..44a72c6 --- /dev/null +++ b/dist/index.html @@ -0,0 +1,145 @@ + + + + + + \ No newline at end of file diff --git a/dist/mini-note-dd0ee225576671bf.js b/dist/mini-note-dd0ee225576671bf.js new file mode 100644 index 0000000..4b9c748 --- /dev/null +++ b/dist/mini-note-dd0ee225576671bf.js @@ -0,0 +1,689 @@ +let wasm; + +const cachedTextDecoder = (typeof TextDecoder !== 'undefined' ? new TextDecoder('utf-8', { ignoreBOM: true, fatal: true }) : { decode: () => { throw Error('TextDecoder not available') } } ); + +if (typeof TextDecoder !== 'undefined') { cachedTextDecoder.decode(); }; + +let cachedUint8ArrayMemory0 = null; + +function getUint8ArrayMemory0() { + if (cachedUint8ArrayMemory0 === null || cachedUint8ArrayMemory0.byteLength === 0) { + cachedUint8ArrayMemory0 = new Uint8Array(wasm.memory.buffer); + } + return cachedUint8ArrayMemory0; +} + +function getStringFromWasm0(ptr, len) { + ptr = ptr >>> 0; + return cachedTextDecoder.decode(getUint8ArrayMemory0().subarray(ptr, ptr + len)); +} + +function addToExternrefTable0(obj) { + const idx = wasm.__externref_table_alloc(); + wasm.__wbindgen_export_2.set(idx, obj); + return idx; +} + +function handleError(f, args) { + try { + return f.apply(this, args); + } catch (e) { + const idx = addToExternrefTable0(e); + wasm.__wbindgen_exn_store(idx); + } +} + +function isLikeNone(x) { + return x === undefined || x === null; +} + +let cachedDataViewMemory0 = null; + +function getDataViewMemory0() { + if (cachedDataViewMemory0 === null || cachedDataViewMemory0.buffer.detached === true || (cachedDataViewMemory0.buffer.detached === undefined && cachedDataViewMemory0.buffer !== wasm.memory.buffer)) { + cachedDataViewMemory0 = new DataView(wasm.memory.buffer); + } + return cachedDataViewMemory0; +} + +function getArrayJsValueFromWasm0(ptr, len) { + ptr = ptr >>> 0; + const mem = getDataViewMemory0(); + const result = []; + for (let i = ptr; i < ptr + 4 * len; i += 4) { + result.push(wasm.__wbindgen_export_2.get(mem.getUint32(i, true))); + } + wasm.__externref_drop_slice(ptr, len); + return result; +} + +let WASM_VECTOR_LEN = 0; + +const cachedTextEncoder = (typeof TextEncoder !== 'undefined' ? new TextEncoder('utf-8') : { encode: () => { throw Error('TextEncoder not available') } } ); + +const encodeString = (typeof cachedTextEncoder.encodeInto === 'function' + ? function (arg, view) { + return cachedTextEncoder.encodeInto(arg, view); +} + : function (arg, view) { + const buf = cachedTextEncoder.encode(arg); + view.set(buf); + return { + read: arg.length, + written: buf.length + }; +}); + +function passStringToWasm0(arg, malloc, realloc) { + + if (realloc === undefined) { + const buf = cachedTextEncoder.encode(arg); + const ptr = malloc(buf.length, 1) >>> 0; + getUint8ArrayMemory0().subarray(ptr, ptr + buf.length).set(buf); + WASM_VECTOR_LEN = buf.length; + return ptr; + } + + let len = arg.length; + let ptr = malloc(len, 1) >>> 0; + + const mem = getUint8ArrayMemory0(); + + let offset = 0; + + for (; offset < len; offset++) { + const code = arg.charCodeAt(offset); + if (code > 0x7F) break; + mem[ptr + offset] = code; + } + + if (offset !== len) { + if (offset !== 0) { + arg = arg.slice(offset); + } + ptr = realloc(ptr, len, len = offset + arg.length * 3, 1) >>> 0; + const view = getUint8ArrayMemory0().subarray(ptr + offset, ptr + len); + const ret = encodeString(arg, view); + + offset += ret.written; + ptr = realloc(ptr, len, offset, 1) >>> 0; + } + + WASM_VECTOR_LEN = offset; + return ptr; +} + +const CLOSURE_DTORS = (typeof FinalizationRegistry === 'undefined') + ? { register: () => {}, unregister: () => {} } + : new FinalizationRegistry(state => { + wasm.__wbindgen_export_7.get(state.dtor)(state.a, state.b) +}); + +function makeMutClosure(arg0, arg1, dtor, f) { + const state = { a: arg0, b: arg1, cnt: 1, dtor }; + const real = (...args) => { + // First up with a closure we increment the internal reference + // count. This ensures that the Rust closure environment won't + // be deallocated while we're invoking it. + state.cnt++; + const a = state.a; + state.a = 0; + try { + return f(a, state.b, ...args); + } finally { + if (--state.cnt === 0) { + wasm.__wbindgen_export_7.get(state.dtor)(a, state.b); + CLOSURE_DTORS.unregister(state); + } else { + state.a = a; + } + } + }; + real.original = state; + CLOSURE_DTORS.register(real, state, state); + return real; +} + +function makeClosure(arg0, arg1, dtor, f) { + const state = { a: arg0, b: arg1, cnt: 1, dtor }; + const real = (...args) => { + // First up with a closure we increment the internal reference + // count. This ensures that the Rust closure environment won't + // be deallocated while we're invoking it. + state.cnt++; + try { + return f(state.a, state.b, ...args); + } finally { + if (--state.cnt === 0) { + wasm.__wbindgen_export_7.get(state.dtor)(state.a, state.b); + state.a = 0; + CLOSURE_DTORS.unregister(state); + } + } + }; + real.original = state; + CLOSURE_DTORS.register(real, state, state); + return real; +} + +function debugString(val) { + // primitive types + const type = typeof val; + if (type == 'number' || type == 'boolean' || val == null) { + return `${val}`; + } + if (type == 'string') { + return `"${val}"`; + } + if (type == 'symbol') { + const description = val.description; + if (description == null) { + return 'Symbol'; + } else { + return `Symbol(${description})`; + } + } + if (type == 'function') { + const name = val.name; + if (typeof name == 'string' && name.length > 0) { + return `Function(${name})`; + } else { + return 'Function'; + } + } + // objects + if (Array.isArray(val)) { + const length = val.length; + let debug = '['; + if (length > 0) { + debug += debugString(val[0]); + } + for(let i = 1; i < length; i++) { + debug += ', ' + debugString(val[i]); + } + debug += ']'; + return debug; + } + // Test for built-in + const builtInMatches = /\[object ([^\]]+)\]/.exec(toString.call(val)); + let className; + if (builtInMatches && builtInMatches.length > 1) { + className = builtInMatches[1]; + } else { + // Failed to match the standard '[object ClassName]' + return toString.call(val); + } + if (className == 'Object') { + // we're a user defined class or Object + // JSON.stringify avoids problems with cycles, and is generally much + // easier than looping through ownProperties of `val`. + try { + return 'Object(' + JSON.stringify(val) + ')'; + } catch (_) { + return 'Object'; + } + } + // errors + if (val instanceof Error) { + return `${val.name}: ${val.message}\n${val.stack}`; + } + // TODO we could test for more things here, like `Set`s and `Map`s. + return className; +} +function __wbg_adapter_20(arg0, arg1, arg2) { + wasm.closure59_externref_shim(arg0, arg1, arg2); +} + +function __wbg_adapter_23(arg0, arg1, arg2) { + wasm.closure185_externref_shim(arg0, arg1, arg2); +} + +async function __wbg_load(module, imports) { + if (typeof Response === 'function' && module instanceof Response) { + if (typeof WebAssembly.instantiateStreaming === 'function') { + try { + return await WebAssembly.instantiateStreaming(module, imports); + + } catch (e) { + if (module.headers.get('Content-Type') != 'application/wasm') { + console.warn("`WebAssembly.instantiateStreaming` failed because your server does not serve Wasm with `application/wasm` MIME type. Falling back to `WebAssembly.instantiate` which is slower. Original error:\n", e); + + } else { + throw e; + } + } + } + + const bytes = await module.arrayBuffer(); + return await WebAssembly.instantiate(bytes, imports); + + } else { + const instance = await WebAssembly.instantiate(module, imports); + + if (instance instanceof WebAssembly.Instance) { + return { instance, module }; + + } else { + return instance; + } + } +} + +function __wbg_get_imports() { + const imports = {}; + imports.wbg = {}; + imports.wbg.__wbg_addEventListener_562dd6708dd0467d = function() { return handleError(function (arg0, arg1, arg2, arg3, arg4) { + arg0.addEventListener(getStringFromWasm0(arg1, arg2), arg3, arg4); + }, arguments) }; + imports.wbg.__wbg_body_83d4bc4961a422aa = function(arg0) { + const ret = arg0.body; + return isLikeNone(ret) ? 0 : addToExternrefTable0(ret); + }; + imports.wbg.__wbg_bubbles_a66b5e3a25f9e38b = function(arg0) { + const ret = arg0.bubbles; + return ret; + }; + imports.wbg.__wbg_cachekey_57601dac16343711 = function(arg0) { + const ret = arg0.__yew_subtree_cache_key; + return isLikeNone(ret) ? 0x100000001 : (ret) >>> 0; + }; + imports.wbg.__wbg_call_3114932863209ca6 = function() { return handleError(function (arg0, arg1) { + const ret = arg0.call(arg1); + return ret; + }, arguments) }; + imports.wbg.__wbg_cancelBubble_60900a3656beaa2f = function(arg0) { + const ret = arg0.cancelBubble; + return ret; + }; + imports.wbg.__wbg_childNodes_3bec0103241f7df1 = function(arg0) { + const ret = arg0.childNodes; + return ret; + }; + imports.wbg.__wbg_cloneNode_fb0f34c3481389b0 = function() { return handleError(function (arg0) { + const ret = arg0.cloneNode(); + return ret; + }, arguments) }; + imports.wbg.__wbg_composedPath_7a0611df77d9826f = function(arg0) { + const ret = arg0.composedPath(); + return ret; + }; + imports.wbg.__wbg_createElementNS_6c52d1028bca2999 = function() { return handleError(function (arg0, arg1, arg2, arg3, arg4) { + const ret = arg0.createElementNS(arg1 === 0 ? undefined : getStringFromWasm0(arg1, arg2), getStringFromWasm0(arg3, arg4)); + return ret; + }, arguments) }; + imports.wbg.__wbg_createElement_22b48bfb31a0c20e = function() { return handleError(function (arg0, arg1, arg2) { + const ret = arg0.createElement(getStringFromWasm0(arg1, arg2)); + return ret; + }, arguments) }; + imports.wbg.__wbg_createTextNode_34f9987492bef549 = function(arg0, arg1, arg2) { + const ret = arg0.createTextNode(getStringFromWasm0(arg1, arg2)); + return ret; + }; + imports.wbg.__wbg_debug_347b3d1f33e1c28e = function(arg0) { + console.debug(arg0); + }; + imports.wbg.__wbg_document_c488ca7509cc6938 = function(arg0) { + const ret = arg0.document; + return isLikeNone(ret) ? 0 : addToExternrefTable0(ret); + }; + imports.wbg.__wbg_error_2a6b93fdada7ff11 = function(arg0) { + console.error(arg0); + }; + imports.wbg.__wbg_error_3c7d958458bf649b = function(arg0, arg1) { + var v0 = getArrayJsValueFromWasm0(arg0, arg1).slice(); + wasm.__wbindgen_free(arg0, arg1 * 4, 4); + console.error(...v0); + }; + imports.wbg.__wbg_error_7534b8e9a36f1ab4 = function(arg0, arg1) { + let deferred0_0; + let deferred0_1; + try { + deferred0_0 = arg0; + deferred0_1 = arg1; + console.error(getStringFromWasm0(arg0, arg1)); + } finally { + wasm.__wbindgen_free(deferred0_0, deferred0_1, 1); + } + }; + imports.wbg.__wbg_from_28bec672bcb6529c = function(arg0) { + const ret = Array.from(arg0); + return ret; + }; + imports.wbg.__wbg_get_68aa371864aa301a = function(arg0, arg1) { + const ret = arg0[arg1 >>> 0]; + return ret; + }; + imports.wbg.__wbg_globalThis_1e2ac1d6eee845b3 = function() { return handleError(function () { + const ret = globalThis.globalThis; + return ret; + }, arguments) }; + imports.wbg.__wbg_global_f25a574ae080367c = function() { return handleError(function () { + const ret = global.global; + return ret; + }, arguments) }; + imports.wbg.__wbg_host_a12d20857b7f8315 = function(arg0) { + const ret = arg0.host; + return ret; + }; + imports.wbg.__wbg_info_b6bd3cb6471c2b4c = function(arg0) { + console.info(arg0); + }; + imports.wbg.__wbg_insertBefore_5e23596bba83fd20 = function() { return handleError(function (arg0, arg1, arg2) { + const ret = arg0.insertBefore(arg1, arg2); + return ret; + }, arguments) }; + imports.wbg.__wbg_instanceof_Element_8d48056f7dc3afd9 = function(arg0) { + let result; + try { + result = arg0 instanceof Element; + } catch (_) { + result = false; + } + const ret = result; + return ret; + }; + imports.wbg.__wbg_instanceof_ShadowRoot_a1aa4e442733a5f7 = function(arg0) { + let result; + try { + result = arg0 instanceof ShadowRoot; + } catch (_) { + result = false; + } + const ret = result; + return ret; + }; + imports.wbg.__wbg_instanceof_Window_a959820eb267fe22 = function(arg0) { + let result; + try { + result = arg0 instanceof Window; + } catch (_) { + result = false; + } + const ret = result; + return ret; + }; + imports.wbg.__wbg_is_20768e55ad2a7c3f = function(arg0, arg1) { + const ret = Object.is(arg0, arg1); + return ret; + }; + imports.wbg.__wbg_lastChild_529f8d3666051058 = function(arg0) { + const ret = arg0.lastChild; + return isLikeNone(ret) ? 0 : addToExternrefTable0(ret); + }; + imports.wbg.__wbg_length_e74df4881604f1d9 = function(arg0) { + const ret = arg0.length; + return ret; + }; + imports.wbg.__wbg_listenerid_ed1678830a5b97ec = function(arg0) { + const ret = arg0.__yew_listener_id; + return isLikeNone(ret) ? 0x100000001 : (ret) >>> 0; + }; + imports.wbg.__wbg_log_d818ca3cab23fc77 = function(arg0) { + console.log(arg0); + }; + imports.wbg.__wbg_namespaceURI_047d33ec1422e88d = function(arg0, arg1) { + const ret = arg1.namespaceURI; + var ptr1 = isLikeNone(ret) ? 0 : passStringToWasm0(ret, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); + var len1 = WASM_VECTOR_LEN; + getDataViewMemory0().setInt32(arg0 + 4 * 1, len1, true); + getDataViewMemory0().setInt32(arg0 + 4 * 0, ptr1, true); + }; + imports.wbg.__wbg_new_076cac58bb698dd4 = function() { + const ret = new Object(); + return ret; + }; + imports.wbg.__wbg_new_8a6f238a6ece86ea = function() { + const ret = new Error(); + return ret; + }; + imports.wbg.__wbg_newnoargs_19a249f4eceaaac3 = function(arg0, arg1) { + const ret = new Function(getStringFromWasm0(arg0, arg1)); + return ret; + }; + imports.wbg.__wbg_nextSibling_f8e4d7acf3591268 = function(arg0) { + const ret = arg0.nextSibling; + return isLikeNone(ret) ? 0 : addToExternrefTable0(ret); + }; + imports.wbg.__wbg_outerHTML_0f7044da86f8722d = function(arg0, arg1) { + const ret = arg1.outerHTML; + const ptr1 = passStringToWasm0(ret, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); + const len1 = WASM_VECTOR_LEN; + getDataViewMemory0().setInt32(arg0 + 4 * 1, len1, true); + getDataViewMemory0().setInt32(arg0 + 4 * 0, ptr1, true); + }; + imports.wbg.__wbg_parentElement_decd639177ef1edc = function(arg0) { + const ret = arg0.parentElement; + return isLikeNone(ret) ? 0 : addToExternrefTable0(ret); + }; + imports.wbg.__wbg_parentNode_7af3d08ed4d822cd = function(arg0) { + const ret = arg0.parentNode; + return isLikeNone(ret) ? 0 : addToExternrefTable0(ret); + }; + imports.wbg.__wbg_queueMicrotask_3d422e1ba49c2500 = function(arg0) { + const ret = arg0.queueMicrotask; + return ret; + }; + imports.wbg.__wbg_queueMicrotask_f301663ccadbb7d0 = function(arg0) { + queueMicrotask(arg0); + }; + imports.wbg.__wbg_removeAttribute_ff3c8b718b785c76 = function() { return handleError(function (arg0, arg1, arg2) { + arg0.removeAttribute(getStringFromWasm0(arg1, arg2)); + }, arguments) }; + imports.wbg.__wbg_removeChild_0ebe490dc7677648 = function() { return handleError(function (arg0, arg1) { + const ret = arg0.removeChild(arg1); + return ret; + }, arguments) }; + imports.wbg.__wbg_removeEventListener_86ef8da1f9b57a92 = function() { return handleError(function (arg0, arg1, arg2, arg3, arg4) { + arg0.removeEventListener(getStringFromWasm0(arg1, arg2), arg3, arg4 !== 0); + }, arguments) }; + imports.wbg.__wbg_resolve_6a311e8bb26423ab = function(arg0) { + const ret = Promise.resolve(arg0); + return ret; + }; + imports.wbg.__wbg_self_ac4343e4047b83cc = function() { return handleError(function () { + const ret = self.self; + return ret; + }, arguments) }; + imports.wbg.__wbg_setAttribute_e5d83ecaf7f586d5 = function() { return handleError(function (arg0, arg1, arg2, arg3, arg4) { + arg0.setAttribute(getStringFromWasm0(arg1, arg2), getStringFromWasm0(arg3, arg4)); + }, arguments) }; + imports.wbg.__wbg_set_421385e996a16e02 = function() { return handleError(function (arg0, arg1, arg2) { + const ret = Reflect.set(arg0, arg1, arg2); + return ret; + }, arguments) }; + imports.wbg.__wbg_setcachekey_bb5f908a0e3ee714 = function(arg0, arg1) { + arg0.__yew_subtree_cache_key = arg1 >>> 0; + }; + imports.wbg.__wbg_setcapture_621e2ad0e4540716 = function(arg0, arg1) { + arg0.capture = arg1 !== 0; + }; + imports.wbg.__wbg_setchecked_4aca881614c5ef0d = function(arg0, arg1) { + arg0.checked = arg1 !== 0; + }; + imports.wbg.__wbg_setinnerHTML_0a4b5ea3540943bf = function(arg0, arg1, arg2) { + arg0.innerHTML = getStringFromWasm0(arg1, arg2); + }; + imports.wbg.__wbg_setlistenerid_3d14d37a42484593 = function(arg0, arg1) { + arg0.__yew_listener_id = arg1 >>> 0; + }; + imports.wbg.__wbg_setnodeValue_5f4c855aee2ef0a2 = function(arg0, arg1, arg2) { + arg0.nodeValue = arg1 === 0 ? undefined : getStringFromWasm0(arg1, arg2); + }; + imports.wbg.__wbg_setpassive_0277065845eeb1e2 = function(arg0, arg1) { + arg0.passive = arg1 !== 0; + }; + imports.wbg.__wbg_setsubtreeid_32b8ceff55862e29 = function(arg0, arg1) { + arg0.__yew_subtree_id = arg1 >>> 0; + }; + imports.wbg.__wbg_setvalue_8a85d2878eb1e6b9 = function(arg0, arg1, arg2) { + arg0.value = getStringFromWasm0(arg1, arg2); + }; + imports.wbg.__wbg_setvalue_c3b8653f179bcfd8 = function(arg0, arg1, arg2) { + arg0.value = getStringFromWasm0(arg1, arg2); + }; + imports.wbg.__wbg_stack_0ed75d68575b0f3c = function(arg0, arg1) { + const ret = arg1.stack; + const ptr1 = passStringToWasm0(ret, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); + const len1 = WASM_VECTOR_LEN; + getDataViewMemory0().setInt32(arg0 + 4 * 1, len1, true); + getDataViewMemory0().setInt32(arg0 + 4 * 0, ptr1, true); + }; + imports.wbg.__wbg_subtreeid_e65dfcc52d403fd9 = function(arg0) { + const ret = arg0.__yew_subtree_id; + return isLikeNone(ret) ? 0x100000001 : (ret) >>> 0; + }; + imports.wbg.__wbg_textContent_a4f9c95debb20de0 = function(arg0, arg1) { + const ret = arg1.textContent; + var ptr1 = isLikeNone(ret) ? 0 : passStringToWasm0(ret, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); + var len1 = WASM_VECTOR_LEN; + getDataViewMemory0().setInt32(arg0 + 4 * 1, len1, true); + getDataViewMemory0().setInt32(arg0 + 4 * 0, ptr1, true); + }; + imports.wbg.__wbg_then_5c6469c1e1da9e59 = function(arg0, arg1) { + const ret = arg0.then(arg1); + return ret; + }; + imports.wbg.__wbg_value_9193a033c6866905 = function(arg0, arg1) { + const ret = arg1.value; + const ptr1 = passStringToWasm0(ret, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); + const len1 = WASM_VECTOR_LEN; + getDataViewMemory0().setInt32(arg0 + 4 * 1, len1, true); + getDataViewMemory0().setInt32(arg0 + 4 * 0, ptr1, true); + }; + imports.wbg.__wbg_value_e88c0b5368388056 = function(arg0, arg1) { + const ret = arg1.value; + const ptr1 = passStringToWasm0(ret, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); + const len1 = WASM_VECTOR_LEN; + getDataViewMemory0().setInt32(arg0 + 4 * 1, len1, true); + getDataViewMemory0().setInt32(arg0 + 4 * 0, ptr1, true); + }; + imports.wbg.__wbg_warn_a6963915e4da61f6 = function(arg0) { + console.warn(arg0); + }; + imports.wbg.__wbg_window_1a23defd102c72f4 = function() { return handleError(function () { + const ret = window.window; + return ret; + }, arguments) }; + imports.wbg.__wbindgen_cb_drop = function(arg0) { + const obj = arg0.original; + if (obj.cnt-- == 1) { + obj.a = 0; + return true; + } + const ret = false; + return ret; + }; + imports.wbg.__wbindgen_closure_wrapper2981 = function(arg0, arg1, arg2) { + const ret = makeMutClosure(arg0, arg1, 186, __wbg_adapter_23); + return ret; + }; + imports.wbg.__wbindgen_closure_wrapper806 = function(arg0, arg1, arg2) { + const ret = makeClosure(arg0, arg1, 60, __wbg_adapter_20); + return ret; + }; + imports.wbg.__wbindgen_debug_string = function(arg0, arg1) { + const ret = debugString(arg1); + const ptr1 = passStringToWasm0(ret, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); + const len1 = WASM_VECTOR_LEN; + getDataViewMemory0().setInt32(arg0 + 4 * 1, len1, true); + getDataViewMemory0().setInt32(arg0 + 4 * 0, ptr1, true); + }; + imports.wbg.__wbindgen_init_externref_table = function() { + const table = wasm.__wbindgen_export_2; + const offset = table.grow(4); + table.set(0, undefined); + table.set(offset + 0, undefined); + table.set(offset + 1, null); + table.set(offset + 2, true); + table.set(offset + 3, false); + ; + }; + imports.wbg.__wbindgen_is_function = function(arg0) { + const ret = typeof(arg0) === 'function'; + return ret; + }; + imports.wbg.__wbindgen_is_undefined = function(arg0) { + const ret = arg0 === undefined; + return ret; + }; + imports.wbg.__wbindgen_string_new = function(arg0, arg1) { + const ret = getStringFromWasm0(arg0, arg1); + return ret; + }; + imports.wbg.__wbindgen_throw = function(arg0, arg1) { + throw new Error(getStringFromWasm0(arg0, arg1)); + }; + + return imports; +} + +function __wbg_init_memory(imports, memory) { + +} + +function __wbg_finalize_init(instance, module) { + wasm = instance.exports; + __wbg_init.__wbindgen_wasm_module = module; + cachedDataViewMemory0 = null; + cachedUint8ArrayMemory0 = null; + + + wasm.__wbindgen_start(); + return wasm; +} + +function initSync(module) { + if (wasm !== undefined) return wasm; + + + if (typeof module !== 'undefined') { + if (Object.getPrototypeOf(module) === Object.prototype) { + ({module} = module) + } else { + console.warn('using deprecated parameters for `initSync()`; pass a single object instead') + } + } + + const imports = __wbg_get_imports(); + + __wbg_init_memory(imports); + + if (!(module instanceof WebAssembly.Module)) { + module = new WebAssembly.Module(module); + } + + const instance = new WebAssembly.Instance(module, imports); + + return __wbg_finalize_init(instance, module); +} + +async function __wbg_init(module_or_path) { + if (wasm !== undefined) return wasm; + + + if (typeof module_or_path !== 'undefined') { + if (Object.getPrototypeOf(module_or_path) === Object.prototype) { + ({module_or_path} = module_or_path) + } else { + console.warn('using deprecated parameters for the initialization function; pass a single object instead') + } + } + + if (typeof module_or_path === 'undefined') { + module_or_path = new URL('mini-note_bg.wasm', import.meta.url); + } + const imports = __wbg_get_imports(); + + if (typeof module_or_path === 'string' || (typeof Request === 'function' && module_or_path instanceof Request) || (typeof URL === 'function' && module_or_path instanceof URL)) { + module_or_path = fetch(module_or_path); + } + + __wbg_init_memory(imports); + + const { instance, module } = await __wbg_load(await module_or_path, imports); + + return __wbg_finalize_init(instance, module); +} + +export { initSync }; +export default __wbg_init; diff --git a/dist/mini-note-dd0ee225576671bf_bg.wasm b/dist/mini-note-dd0ee225576671bf_bg.wasm new file mode 100644 index 0000000..8df60c8 Binary files /dev/null and b/dist/mini-note-dd0ee225576671bf_bg.wasm differ diff --git a/src/components/content.rs b/src/components/content.rs new file mode 100644 index 0000000..57f5b5a --- /dev/null +++ b/src/components/content.rs @@ -0,0 +1 @@ +// 内容展示区域 \ No newline at end of file diff --git a/src/components/header.rs b/src/components/header.rs new file mode 100644 index 0000000..cee7b45 --- /dev/null +++ b/src/components/header.rs @@ -0,0 +1 @@ +// 导航栏组件 \ No newline at end of file diff --git a/src/components/sidebar.rs b/src/components/sidebar.rs new file mode 100644 index 0000000..48e86d3 --- /dev/null +++ b/src/components/sidebar.rs @@ -0,0 +1 @@ +// 目录树组件 \ No newline at end of file diff --git a/src/context/app_context.rs b/src/context/app_context.rs new file mode 100644 index 0000000..8fdeaab --- /dev/null +++ b/src/context/app_context.rs @@ -0,0 +1 @@ +// 应用的全局上下文(例如主题管理、用户状态) \ No newline at end of file diff --git a/src/css.rs b/src/css.rs new file mode 100644 index 0000000..274a8b5 --- /dev/null +++ b/src/css.rs @@ -0,0 +1 @@ +// 样式文件,包含 Tailwind CSS \ No newline at end of file diff --git a/src/main.rs b/src/main.rs index 5984c04..b2be871 100644 --- a/src/main.rs +++ b/src/main.rs @@ -1,3 +1,6 @@ +mod markdown; +mod utils; + use console_log::init_with_level; use log::Level; use yew::{function_component, html, Html}; diff --git a/src/markdown.rs b/src/markdown.rs new file mode 100644 index 0000000..26b9c51 --- /dev/null +++ b/src/markdown.rs @@ -0,0 +1 @@ +// 处理 Markdown 文件的加载与渲染 \ No newline at end of file diff --git a/src/routes/home.rs b/src/routes/home.rs new file mode 100644 index 0000000..e552fbb --- /dev/null +++ b/src/routes/home.rs @@ -0,0 +1 @@ +// 首页路由 \ No newline at end of file diff --git a/src/routes/post.rs b/src/routes/post.rs new file mode 100644 index 0000000..af8448d --- /dev/null +++ b/src/routes/post.rs @@ -0,0 +1 @@ +// 笔记页面路由 \ No newline at end of file diff --git a/src/utils.rs b/src/utils.rs new file mode 100644 index 0000000..e1c5587 --- /dev/null +++ b/src/utils.rs @@ -0,0 +1 @@ +// 工具函数,可能包括文件加载和异步处理等 \ No newline at end of file