From a18b014eb5022a8543a8a9225ba9920906ab8cf7 Mon Sep 17 00:00:00 2001 From: Jan-Lukas Else Date: Mon, 14 Jun 2021 22:41:58 +0200 Subject: [PATCH] Benchmark markdown rendering --- markdown_test.go | 28 ++++++++ reverseGeo.go | 3 +- telegram_test.go | 5 ++ testdata/markdownexample.md | 131 ++++++++++++++++++++++++++++++++++++ 4 files changed, 165 insertions(+), 2 deletions(-) create mode 100644 testdata/markdownexample.md diff --git a/markdown_test.go b/markdown_test.go index b194ab8..d38a1c4 100644 --- a/markdown_test.go +++ b/markdown_test.go @@ -1,6 +1,7 @@ package main import ( + "os" "strings" "testing" ) @@ -66,3 +67,30 @@ func Test_markdown(t *testing.T) { } }) } + +func Benchmark_markdown(b *testing.B) { + markdownExample, err := os.ReadFile("testdata/markdownexample.md") + if err != nil { + b.Errorf("Failed to read markdown example: %v", err) + } + mdExp := string(markdownExample) + + app := &goBlog{ + cfg: &config{ + Server: &configServer{ + PublicAddress: "https://example.com", + }, + }, + } + + app.initMarkdown() + + b.Run("Benchmark Markdown Rendering", func(b *testing.B) { + for i := 0; i < b.N; i++ { + _, err := app.renderMarkdown(mdExp, true) + if err != nil { + b.Errorf("Error: %v", err) + } + } + }) +} diff --git a/reverseGeo.go b/reverseGeo.go index c8b9889..77d796d 100644 --- a/reverseGeo.go +++ b/reverseGeo.go @@ -3,7 +3,6 @@ package main import ( "fmt" "io" - "io/ioutil" "net/http" "net/url" "strings" @@ -59,7 +58,7 @@ func (db *database) photonReverse(lat, lon float64, lang string) ([]byte, error) if resp.StatusCode != http.StatusOK { return nil, fmt.Errorf("response status code: %v", resp.StatusCode) } - ba, err := ioutil.ReadAll(resp.Body) + ba, err := io.ReadAll(resp.Body) if err != nil { return nil, err } diff --git a/telegram_test.go b/telegram_test.go index 7e07fea..6d17f13 100644 --- a/telegram_test.go +++ b/telegram_test.go @@ -11,6 +11,11 @@ func Test_configTelegram_enabled(t *testing.T) { t.Error("Telegram shouldn't be enabled") } + var tg *configTelegram + if tg.enabled() == true { + t.Error("Telegram shouldn't be enabled") + } + if (&configTelegram{ Enabled: true, }).enabled() == true { diff --git a/testdata/markdownexample.md b/testdata/markdownexample.md new file mode 100644 index 0000000..71c315f --- /dev/null +++ b/testdata/markdownexample.md @@ -0,0 +1,131 @@ + + +This article offers a sample of basic Markdown syntax that can be used in Hugo content files, also it shows whether basic HTML elements are decorated with CSS in a Hugo theme. + +## Headings + +The following HTML `

`—`

` elements represent six levels of section headings. `

` is the highest section level while `

` is the lowest. + +# H1 +## H2 +### H3 +#### H4 +##### H5 +###### H6 + +## Paragraph + +Xerum, quo qui aut unt expliquam qui dolut labo. Aque venitatiusda cum, voluptionse latur sitiae dolessi aut parist aut dollo enim qui voluptate ma dolestendit peritin re plis aut quas inctum laceat est volestemque commosa as cus endigna tectur, offic to cor sequas etum rerum idem sintibus eiur? Quianimin porecus evelectur, cum que nis nust voloribus ratem aut omnimi, sitatur? Quiatem. Nam, omnis sum am facea corem alique molestrunt et eos evelece arcillit ut aut eos eos nus, sin conecerem erum fuga. Ri oditatquam, ad quibus unda veliamenimin cusam et facea ipsamus es exerum sitate dolores editium rerore eost, temped molorro ratiae volorro te reribus dolorer sperchicium faceata tiustia prat. + +Itatur? Quiatae cullecum rem ent aut odis in re eossequodi nonsequ idebis ne sapicia is sinveli squiatum, core et que aut hariosam ex eat. + +## Blockquotes + +The blockquote element represents content that is quoted from another source, optionally with a citation which must be within a `footer` or `cite` element, and optionally with in-line changes such as annotations and abbreviations. + +#### Blockquote without attribution + +> Tiam, ad mint andaepu dandae nostion secatur sequo quae. +> **Note** that you can use *Markdown syntax* within a blockquote. + +#### Blockquote with attribution + +> Don't communicate by sharing memory, share memory by communicating.
+> — Rob Pike[^1] + +[^1]: The above quote is excerpted from Rob Pike's [talk](https://www.youtube.com/watch?v=PAAkCSZUG1c) during Gopherfest, November 18, 2015. + +## Tables + +Tables aren't part of the core Markdown spec, but Hugo supports supports them out-of-the-box. + + Name | Age +--------|------ + Bob | 27 + Alice | 23 + +#### Inline Markdown within tables + +| Italics | Bold | Code | +| -------- | -------- | ------ | +| *italics* | **bold** | `code` | + +## Code Blocks + +#### Code block with backticks + +```html + + + + + Example HTML5 Document + + +

Test

+ + +``` + +#### Code block indented with four spaces + + + + + + Example HTML5 Document + + +

Test

+ + + +#### Code block with Hugo's internal highlight shortcode +{{< highlight html >}} + + + + + Example HTML5 Document + + +

Test

+ + +{{< /highlight >}} + +## List Types + +#### Ordered List + +1. First item +2. Second item +3. Third item + +#### Unordered List + +* List item +* Another item +* And another item + +#### Nested list + +* Fruit + * Apple + * Orange + * Banana +* Dairy + * Milk + * Cheese + +## Other Elements — abbr, sub, sup, kbd, mark + +GIF is a bitmap image format. + +H2O + +Xn + Yn = Zn + +Press CTRL+ALT+Delete to end the session. + +Most salamanders are nocturnal, and hunt for insects, worms, and other small creatures. \ No newline at end of file