Skip to content

Commit b8333ba

Browse files
committed
start implementing nbJsFromCode
1 parent 53c17fe commit b8333ba

File tree

1 file changed

+21
-0
lines changed

1 file changed

+21
-0
lines changed

sandbox/minib/minib.nim

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -107,6 +107,7 @@ import capture # imported from old nimib (new nimib does not run locally for me!
107107

108108
# nimib.nim
109109
import markdown
110+
import jsutils
110111

111112
template nbInit* =
112113
var nb {. inject .}: Nb
@@ -196,6 +197,23 @@ template nbCode*(body: untyped) =
196197
captureStdout(blk.output):
197198
body
198199

200+
type
201+
NbJsFromCode = ref object of NbBlock
202+
code: string
203+
transformedCode: string
204+
putAtTop: bool
205+
func nbJsFromCodeToHtml(blk: NbBlock, nb: Nb): string =
206+
let blk = blk.NbJsFromCode
207+
blk.code
208+
nbToHtml.funcs["NbJsFromCode"] = nbJsFromCodeToHtml
209+
addNbBlockToJson(NbJsFromCode)
210+
template nbJsFromCode*(args: varargs[untyped]) =
211+
let (transformedCode, originalCode) = nimToJsString(putCodeInBlock=false, args)
212+
let blk = NbJsFromCode(code: originalCode, transformedCode: transformedCode, putAtTop: false, kind: "NbJsFromCode")
213+
nb.add blk
214+
215+
216+
199217
when isMainModule:
200218
import print
201219
nbInit
@@ -206,6 +224,8 @@ when isMainModule:
206224
nbText("42")
207225
nbCode:
208226
echo "hi"
227+
nbJsFromCode:
228+
echo "bye"
209229
nbSave
210230
#[
211231
<!DOCTYPE html>
@@ -235,6 +255,7 @@ hi
235255
print docFromJson.blocks[0].NbDetails.blocks[0].NbText
236256
print docFromJson.blocks[0].NbDetails.blocks[1].NbImage
237257
print docFromJson.blocks[1].NbCode
258+
print docFromJson.blocks[2].NbJsFromCode
238259
#[
239260
docToJson="{"title":"a nimib document","blocks":[{"summary":"Click for details:","blocks":[{"text":"*hi*","kind":"NbText"},{"url":"img.png","kind":"NbImage"},{"summary":"go deeper","blocks":[{"text":"42","kind":"NbText"}],"kind":"NbDetails"}],"kind":"NbDetails"},{"code":"\\necho \\"hi\\"","output":"hi\\n","lang":"nim","kind":"NbCode"}],"kind":"NbDoc"}"
240261
docFromJson=NbDoc:ObjectType(

0 commit comments

Comments
 (0)