Estonian haiku

Estonian haiku (Estonian: Eesti haiku) is a short poem in Estonian language which has adopted the form and style of the original Japanese haiku. Estonian haiku was first introduced in 2009.[1] The so-called "Estonian haiku" is shorter than the Japanese one; the syllable count in Japanese haiku is 5+7+5, while Estonian haiku also goes in three lines but only comprises 4+6+4 syllables. Estonian authors claim that this is a distinctively Estonian form.

History

Traditional haiku have been developed in Estonia since 1960s.[2] Andres Ehin (1940–2011) was the most prominent Estonian-language haiku writer of the 20th century; his bilingual English-Estonian collection Moose Beetle Swallow was published in Ireland in 2005.[3] Estonian poets Arvo Mets and Felix Tammi wrote haiku in Russian.[4]

Asko Künnap is credited as the inventor of Estonian haiku. The first collection of Estonian haiku was published in 2010: Estonian Haiku by poets Asko Künnap, Jürgen Rooste, and Karl Martin Sinijärv. An Estonian-language haiku competition was organized at the 2011 Helsinki Book Fair where Estonia was the guest of honor. A selection of Estonian haiku has been published by the Estonian Writers' Union's magazine Looming ("Creation"). Estonian haiku have been actively translated into Finnish.

gollark: The current version uses a bunch of `defer`s to deallocate stuff as needed (I don't *think* it has any horrible memory leaks!). This works fine given that that stuff is all within one function, but I need similar logic in another one.
gollark: I just want to know how to idiomatically make GCable wrappers for the various C objects.
gollark: No, I have that stuff done.
gollark: I want a *different* set of "OPERATIONS ON RELEVANT NODE THING" and no HTML generation at the end, and it would be bees to just copy-paste the function here.
gollark: As of now, my code does```nimproc renderToHtml*(input: string): string = let wlRegex = re"\[\[([^:\]]+):?([^\]]+)?\]\]" let opt = CMARK_OPT_UNSAFE or CMARK_OPT_FOOTNOTES or CMARK_OPT_STRIKETHROUGH_DOUBLE_TILDE or CMARK_OPT_TABLE_PREFER_STYLE_ATTRIBUTES # create parser instance let str: cstring = input len: csize_t = len(input).csize_t parser: ParserPtr = cmark_parser_new(opt.cint) if parser == nil: raise newException(CatchableError, "failed to initialize parser") defer: cmark_parser_free(parser) [further initialization stuff] # parse document, get AST cmark_parser_feed(parser, str, len) let doc = cmark_parser_finish(parser) defer: cmark_node_free(doc) if doc == nil: raise newException(CatchableError, "parsing failed - should not occur") # iterate over AST using built-in cmark-gfm AST iteration thing for (evType, node) in cmarkTree(doc): # if it is a text node [OPERATIONS ON RELEVANT NODE THING] let html: cstring = cmark_render_html(doc, opt.cint, cmark_parser_get_syntax_extensions(parser)) defer: free(html) result = $html```

References

This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.