docute
                                
                                
                                
                                    docute copied to clipboard
                            
                            
                            
                        embed code fragments from external sources
I would like to import fenced code from GitHub repo files similar to https://docsify.js.org/#/embed-files?id=embedded-code-fragments
Is this on the roadmap?
IssueHunt Summary
Sponsors (Total: $100.00)
issuehunt ($100.00)
Become a sponsor now!
Or submit a pull request to get the deposits!
Tips
- Checkout the Issuehunt explorer to discover more funded issues.
 - Need some help from other developers? Add your repositories on IssueHunt to raise funds.
 
Yeah but probably using a different syntax, like:
<!-- embed foo.js as code block -->
#embed(/foo.js code language="js")
<!-- result: -->
```js
// content in foo.js
```
A fragment:
#embed(/foo.md fragment)
<!-- result: -->
something to embed
Where foo.md looks like:
# title
<!-- docute-embed-start -->
something to embed
<!-- docute-embed-end -->
                                    
                                    
                                    
                                
Sounds great! A couple more things :stuck_out_tongue: is it possible to add support for:
- these files to be externally loaded?
 - adding arbitrary fencing?
 
For instance:
<!-- embed example.js as code block -->
#embed(
  https://raw.githubusercontent.com/someuser/somerepo/code/example.js
  type=code
  language="js"
  fence="some-demo"
)
<!-- .../example.js -->
...
/// [some-demo-start]
...
/// [some-demo-end]
...
<!-- result -->
// some content from example.js within the /// [some-demo]
and then
<!-- import content from other .md file -->
#embed(
  https://raw.githubusercontent.com/someuser/somerepo/example.md
  type=fragment
  fence="some-fragment"
)
<!-- .../exmaple.md -->
...
<!-- some-fragment-start -->
something to embed
<!-- some-fragment-end -->
...
Being able to define the fence allows multiple partials from a single file to be imported.
Externally loading code decouples the need for it to live alongside the documentation, say in an examples repo.
The api.processMarkdown(fn) API now can return a Promise:
You can probably implement it as a plugin using this API:
const embedPlugin = () => {
  return {
    name: 'embed',
    extend(api) {
      api.processMarkdown(async markdown => {
        return modifiedMarkdown
      })
    }
  }
}
new Docute({
  plugins: [embedPlugin()]
})
                                    
                                    
                                    
                                
Sweet, I'll give this a go soon! Cheers!
@issuehunt has funded $100.00 to this issue.
- Submit pull request via IssueHunt to receive this reward.
 - Want to contribute? Chip in to this issue via IssueHunt.
 - Checkout the IssueHunt Issue Explorer to see more funded issues.
 - Need help from developers? Add your repository on IssueHunt to raise funds.
 
Can i take this?
@janat08 Feel free. I got caught up with life!
@egoist please merge, its been half a year