MCPcopy Create free account
hub / github.com/almariah/embed-code-file / registerRenderer

Method registerRenderer

main.ts:33–98  ·  view source on GitHub ↗
(lang: string)

Source from the content-addressed store, hash-verified

31 }
32
33 async registerRenderer(lang: string) {
34 this.registerMarkdownCodeBlockProcessor(`embed-${lang}`, async (meta, el, ctx) => {
35 let fullSrc = ""
36 let src = ""
37
38 let metaYaml: any
39 try {
40 metaYaml = parseYaml(meta)
41 } catch(e) {
42 await MarkdownRenderer.renderMarkdown("`ERROR: invalid embedding (invalid YAML)`", el, '', this)
43 return
44 }
45
46 let srcPath = metaYaml.PATH
47 if (!srcPath) {
48 await MarkdownRenderer.renderMarkdown("`ERROR: invalid source path`", el, '', this)
49 return
50 }
51
52 if (srcPath.startsWith("https://") || srcPath.startsWith("http://")) {
53 try {
54 let httpResp = await requestUrl({url: srcPath, method: "GET"})
55 fullSrc = httpResp.text
56 } catch(e) {
57 const errMsg = `\`ERROR: could't fetch '${srcPath}'\``
58 await MarkdownRenderer.renderMarkdown(errMsg, el, '', this)
59 return
60 }
61 } else if (srcPath.startsWith("vault://")) {
62 srcPath = srcPath.replace(/^(vault:\/\/)/,'');
63
64 const tFile = app.vault.getAbstractFileByPath(srcPath)
65 if (tFile instanceof TFile) {
66 fullSrc = await app.vault.read(tFile)
67 } else {
68 const errMsg = `\`ERROR: could't read file '${srcPath}'\``
69 await MarkdownRenderer.renderMarkdown(errMsg, el, '', this)
70 return
71 }
72 } else {
73 const errMsg = "`ERROR: invalid source path, use 'vault://...' or 'http[s]://...'`"
74 await MarkdownRenderer.renderMarkdown(errMsg, el, '', this)
75 return
76 }
77
78 let srcLinesNum: number[] = []
79 const srcLinesNumString = metaYaml.LINES
80 if (srcLinesNumString) {
81 srcLinesNum = analyseSrcLines(srcLinesNumString)
82 }
83
84 if (srcLinesNum.length == 0) {
85 src = fullSrc
86 } else {
87 src = extractSrcLines(fullSrc, srcLinesNum)
88 }
89
90 let title = metaYaml.TITLE

Callers 1

onloadMethod · 0.95

Calls 3

addTitleLivePreviewMethod · 0.95
analyseSrcLinesFunction · 0.90
extractSrcLinesFunction · 0.90

Tested by

no test coverage detected