embed

package module
v0.0.9 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 26, 2023 License: MIT Imports: 17 Imported by: 0

README

goldmark-embed

This is a fork from https://github.com/13rac1/goldmark-embed, to use Markdown ![]() image embed syntax to support additional object formats.

Supported Video Providers

  • YouTube Video
  • Bilibili Video
  • X's Tweet Oembed Widget

Demo

This markdown:

![](https://youtu.be/dQw4w9WgXcQ?si=0kalBBLQpIXT1Wcd)
![](https://www.bilibili.com/video/BV1uT4y1P7CX)
![](https://twitter.com/NASA/status/1704954156149084293)
Installation
go get github.com/quail.ink/goldmark-embed

Usage

  markdown := goldmark.New(
    goldmark.WithExtensions(
      embed.Embed,
    ),
  )
  var buf bytes.Buffer
  if err := markdown.Convert([]byte(source), &buf); err != nil {
    panic(err)
  }
  fmt.Print(buf)
}

TODO

  • Embed Options
  • Additional Data Sources

License

MIT

Author

Brad Erickson

Documentation

Index

Constants

View Source
const (
	EmbededProviderYouTube     = "youtube"
	EmbededProviderBilibili    = "bilibili"
	EmbededProviderTwitter     = "twitter"
	EmbededProviderTradingView = "tradingview"
)

Variables

View Source
var KindEmbeded = ast.NewNodeKind("Embeded")

KindEmbeded is a NodeKind of the YouTube node.

Functions

func GetTraddingViewEmbedHtml added in v0.0.9

func GetTraddingViewEmbedHtml(symbol, theme string) (string, error)

func GetTweetOembedHtml added in v0.0.5

func GetTweetOembedHtml(url, theme string) (string, error)

func New

func New(opts ...Option) goldmark.Extender

New returns a new Embed extension.

func NewHTMLRenderer

func NewHTMLRenderer() renderer.NodeRenderer

NewHTMLRenderer builds a new HTMLRenderer with given options and returns it.

Types

type Embeded added in v0.0.5

type Embeded struct {
	ast.Image

	Provider string
	VID      string
	Theme    string
	// contains filtered or unexported fields
}

Embeded struct represents a Embeded embed of the Markdown text.

func NewEmbeded added in v0.0.5

func NewEmbeded(c *Embeded) *Embeded

NewEmbeded returns a new YouTube node.

func (*Embeded) Kind added in v0.0.5

func (n *Embeded) Kind() ast.NodeKind

Kind implements Node.Kind.

type HTMLRenderer

type HTMLRenderer struct{}

HTMLRenderer struct is a renderer.NodeRenderer implementation for the extension.

func (*HTMLRenderer) RegisterFuncs

func (r *HTMLRenderer) RegisterFuncs(reg renderer.NodeRendererFuncRegisterer)

RegisterFuncs implements NodeRenderer.RegisterFuncs.

type Option

type Option func(*embedExtension)

Option is a functional option type for this extension.

type TwitterOembedResp added in v0.0.5

type TwitterOembedResp struct {
	URL        string `json:"url"`
	AuthorName string `json:"author_name"`
	AuthorURL  string `json:"author_url"`
	HTML       string `json:"html"`
	Type       string `json:"type"`
}

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL