jolheiser
3d7e79031f
Signed-off-by: jolheiser <john.olheiser@gmail.com> |
||
---|---|---|
cmd/emdbed | ||
testdata | ||
.gitignore | ||
.woodpecker.yml | ||
LICENSE | ||
README.md | ||
emdbed.go | ||
emdbed_example_test.go | ||
emdbed_test.go | ||
go.mod | ||
go.sum | ||
io.go | ||
readme.go |
README.md
emdbed
Embed "things" in your markdown files.
Given the same input, emdbed
should give idempotent results.
To create an emdbed
section, use a header and footer as follows
<!-- emdbed: <file> [~<language>] [L<start-line>|/<start-regex>/] [L<end-line>|/<end-regex>/]
<!-- /emdbed -->
NOTE: The above snippet has an extra space at the end in order to keep it from recognizing the footer when generating this README.
The regex is Go flavored, which you can test on regex101.
Examples
The following are generated using readme.go and go generate ./...
.
Check the raw markdown for the header selectors used.
An entire file:
// Package emdbed is for embedding "things" in your markdown
package emdbed
import (
"fmt"
)
func Example() {
fi, err := testdata.Open("testdata/main.md")
defer fi.Close()
out, err := Convert("testdata", fi)
if err != nil {
panic(err)
}
fmt.Println(out)
// Output:
//<!-- emdbed: main.go -->
//```go
//package main
//
//import "fmt"
//
//func main() {
// fmt.Println("Hello, world!")
//}
//
// ```
//<!-- /emdbed -->
}
Just the package:
package emdbed
Package line until the end of imports:
package emdbed
import (
"fmt"
)
Only the example func
func Example() {
fi, err := testdata.Open("testdata/main.md")
defer fi.Close()
out, err := Convert("testdata", fi)
if err != nil {
panic(err)
}
fmt.Println(out)
// Output:
//<!-- emdbed: main.go -->
//```go
//package main
//
//import "fmt"
//
//func main() {
// fmt.Println("Hello, world!")
//}
//
// ```
//<!-- /emdbed -->
}
A file in another directory (choosing/overriding the language)
package main
import "fmt"
func main() {
fmt.Println("This file has no extension")
}