docsifyjs / docsifyjs/docsify

async compiler

Đang mở
#1,433 2 bình luận 1 reaction 0 người được giao Xem trên GitHub
help wanted needs discussion pr welcome
Ngôn ngữ chính
JavaScript
Star
31.5k
Fork
5.8k
Merge trung bình
9 ngày 8 giờ
Pull request đã merge (30 ngày)
2

Mô tả

## Feature request

#### What problem does this feature solve?

Returning a promise from the function passed to `vm.config.renderer.code` doesn't work as one would expect.

I wanted to use an async method (`crypto.subtle.digest` in my mermaid plugin:

```js
hook.mounted(function() {
const renderer = vm.config.markdown.renderer
const original = renderer.code || renderer.origin.code

renderer.code = renderer.origin.code = async function(code, lang) {
if (lang === 'mermaid') {
const sha256 = Array.from(new Uint8Array(await window.crypto.subtle.digest('SHA-256', new TextEncoder().encode(code)))).map(b => b.toString(16).padStart(2, '0')).join('')
const mermaidId = `mermaid-svg-${sha256}`
return `${mermaid.render(mermaidId, code)}`
}
else return original.apply(this, arguments)
}
})
```

But all my code fences are now being replaced, in the HTML document, with:

```html
[object Promise]
```

#### What does the proposed API look like?

No change, but the compiler should be promise-aware (so that when the result of calling a function is a promise, it awaits it).

#### How should this be implemented in your opinion?

I'm not sure how the compiler works at the moment.

#### Are you willing to work on this yourself?

If time allows, which is probably negative :-/

Hướng dẫn đóng góp

Mở hướng dẫn đóng góp

Đánh giá

Issue này chưa được đánh giá.

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.