feat: execute code on slides

This commit is contained in:
Maas Lalani
2021-06-13 19:05:18 -04:00
parent eb132e82fc
commit eae6b6ffcd
4 changed files with 97 additions and 19 deletions

View File

@@ -21,7 +21,7 @@ type Result struct {
}
// ?: means non-capture group
var re = regexp.MustCompile("(?:```|~~~)(.*)\n(.*)\n(?:```|~~~)")
var re = regexp.MustCompile("(?s)(?:```|~~~)(\\w+)\n(.*)\n(?:```|~~~)\n")
var (
ErrParse = errors.New("Error: could not parse code block")

View File

@@ -37,28 +37,38 @@ fmt.Println("Hello, world!")
},
{
markdown: `
# Welcome to Slides
A terminal based presentation tool
~~~go
package main
import "fmt"
func main() {
fmt.Println("Written in Go!")
}
~~~
`,
expected: code.Block{
Code: `package main
import "fmt"
func main() {
fmt.Println("Written in Go!")
}`,
Language: "go",
},
},
{
markdown: `
# Slide 1
Just a regular slide, no code block
`,
expected: code.Block{},
},
{
markdown: `
# Multiple Code Blocks
~~~go
fmt.Println("Oh no!")
~~~
# Secondary Code Block
~~~ruby
puts "We will only parse the first code block"
~~~
`,
expected: code.Block{
Code: `fmt.Println("Oh no!")`,
Language: "go",
},
},
{
markdown: ``,
expected: code.Block{},