Takengei

Takengei (竹ン芸) is a Japanese autumn festival. It is organized in the Wakamiya-Inari-Jinja shrine in Nagasaki City. Since 2003, it is officially registered as part of Japan’s Folk Intangible Patrimony.[1]

Takengei Festival, 2013

Takengei is an annual two-day event organized on October 14 and 15. Two 10 meters high bamboo poles are erected inside the sanctuary; they are called “male bamboo” (男竹) and “female bamboo” (女竹). Accompanied by traditional drums, flutes and shamisen, two people in white garb and with a fox mask climb up the poles and declare to each other their love at the top of the bamboos. They also accomplish some kind of acrobatic performance.

At the end, the fox at the top of the male bamboo throws around some small rice cakes (mochi), pulls out of a pocket in his garb a chicken and lets it fly to the ground. Eventually both foxes go down the poles with a spectacular slide.

The festival has been organized in Wakamiya-Inari-Jinja since 1896; earlier, another shrine in Nagasaki City used to host the festival.

Notes

  1. (in Japanese) The Agency for Cultural Affairs, Cultural Heritage Online: 竹ン芸 たけんげい (no date).
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```
This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.