--- weight: 4 title: "Theme Documentation - Extended Shortcodes" date: 2020-03-03T16:29:41+08:00 lastmod: 2020-03-03T16:29:41+08:00 draft: false description: "uBlogger theme provides multiple shortcodes on top of built-in ones in Hugo." resources: - name: "featured-image" src: "featured-image.jpg" - name: "featured-image-preview" src: "featured-image-preview.jpg" tags: ["shortcodes"] categories: ["documentation"] --- **uBlogger** theme provides multiple shortcodes on top of built-in ones in Hugo. ## 1 style {{< version 0.2.0 changed >}} {{< admonition >}} Hugo **extended** version is necessary for `style` shortcode. {{< /admonition >}} `style` is a shortcode to insert custom style in your post. The `style` shortcode has two positional parameters. The **first** one is the custom style content, which supports nesting syntax in [:(fab fa-sass fa-fw): SASS](https://sass-lang.com/documentation/style-rules/declarations#nesting) and `&` referring to this parent HTML element. And the **second** one is the tag name of the HTML element wrapping the content you want to change style, and whose default value is `div`. Example `style` input: ```markdown {{}} This is a **right-aligned** paragraph. {{}} ``` The rendered output looks like this: {{< style "text-align:right; strong{color:#00b1ff;}" >}} This is a **right-aligned** paragraph. {{< /style >}} ## 2 link {{< version 0.2.0 >}} `link` shortcode is an alternative to [Markdown link syntax](../basic-markdown-syntax#links). `link` shortcode can provide some other features and can be used in code blocks. {{< version 0.2.10 >}} The complete usage of [local resource references](../theme-documentation-content#contents-organization) is supported. The `link` shortcode has the following named parameters: * **href** *[required]* (**first** positional parameter) Destination of the link. * **content** *[optional]* (**second** positional parameter) Content of the link, default value is the value of **href** parameter. *Markdown or HTML format is supported.* * **title** *[optional]* (**third** positional parameter) `title` attribute of the HTML `a` tag, which will be shown when hovering on the link. * **class** *[optional]* `class` attribute of the HTML `a` tag. * **rel** *[optional]* Additional `rel` attributes of the HTML `a` tag. Example `link` input: ```markdown {{}} Or {{}} {{}} Or {{}} {{}} Or {{}} ``` The rendered output looks like this: * {{< link "https://assemble.io" >}} * {{< link "mailto:contact@revolunet.com" >}} * {{< link "https://assemble.io" Assemble >}} Example `link` input with a title: ```markdown {{}} Or {{}} ``` The rendered output looks like this (hover over the link, there should be a tooltip): {{< link "https://github.com/upstage/" Upstage "Visit Upstage!" >}} ## 3 image {#image} {{< version 0.2.0 changed >}} `image` shortcode is an alternative to [`figure` shortcode](../theme-documentation-built-in-shortcodes#figure). `image` shortcode can take full advantage of the dependent libraries of [lazysizes](https://github.com/aFarkas/lazysizes) and [lightgallery.js](https://github.com/sachinchoolur/lightgallery.js). {{< version 0.2.10 >}} The complete usage of [local resource references](../theme-documentation-content#contents-organization) is supported. The `image` shortcode has the following named parameters: * **src** *[required]* (**first** positional parameter) URL of the image to be displayed. * **alt** *[optional]* (**second** positional parameter) Alternate text for the image if the image cannot be displayed, default value is the value of **src** parameter. *Markdown or HTML format is supported.* * **caption** *[optional]* (**third** positional parameter) Image caption. *Markdown or HTML format is supported.* * **title** *[optional]* Image title that will be shown when hovering on the image. * **class** *[optional]* `class` attribute of the HTML `figure` tag. * **src_s** *[optional]* URL of the image thumbnail, used for lightgallery, default value is the value of **src** parameter. * **src_l** *[optional]* URL of the HD image, used for lightgallery, default value is the value of **src** parameter. * **height** *[optional]* `height` attribute of the image. * **width** *[optional]* `width` attribute of the image. * **linked** *[optional]* Whether the image needs to be hyperlinked, default value is `true`. * **rel** *[optional]* Additional `rel` attributes of the HTML `a` tag, if **linked** parameter is set to `true`. Example `image` input: ```markdown {{}} ``` The rendered output looks like this: {{< image src="/images/lighthouse.jpg" caption="Lighthouse (`image`)" src_s="/images/lighthouse-small.jpg" src_l="/images/lighthouse-large.jpg" >}} ## 4 admonition The `admonition` shortcode supports **12** types of banners to help you put notice in your page. *Markdown or HTML format in the content is supported.* {{< admonition >}} A **note** banner {{< /admonition >}} {{< admonition abstract >}} An **abstract** banner {{< /admonition >}} {{< admonition info >}} A **info** banner {{< /admonition >}} {{< admonition tip >}} A **tip** banner {{< /admonition >}} {{< admonition success >}} A **success** banner {{< /admonition >}} {{< admonition question >}} A **question** banner {{< /admonition >}} {{< admonition warning >}} A **warning** banner {{< /admonition >}} {{< admonition failure >}} A **failure** banner {{< /admonition >}} {{< admonition danger >}} A **danger** banner {{< /admonition >}} {{< admonition bug >}} A **bug** banner {{< /admonition >}} {{< admonition example >}} An **example** banner {{< /admonition >}} {{< admonition quote >}} A **quote** banner {{< /admonition >}} The `admonition` shortcode has the following named parameters: * **type** *[optional]* (**first** positional parameter) Type of the `admonition` banner, default value is `note`. * **title** *[optional]* (**second** positional parameter) Title of the `admonition` banner, default value is the value of **type** parameter. * **open** *[optional]* (**third** positional parameter) {{< version 0.2.0 changed >}} Whether the content will be expandable by default, default value is `true`. Example `admonition` input: ```markdown {{}} A **tip** banner {{}} Or {{}} A **tip** banner {{}} ``` The rendered output looks like this: {{< admonition tip "This is a tip" false >}} A **tip** banner {{< /admonition >}} ## 5 mermaid [mermaid](https://mermaidjs.github.io/) is a library helping you to generate diagram and flowcharts from text, in a similar manner as Markdown. Just insert your mermaid code in the `mermaid` shortcode and that’s it. ### 5.1 Flowchart {#flowchart} Example **flowchart** `mermaid` input: ```markdown {{}} graph LR; A[Hard edge] -->|Link text| B(Round edge) B --> C{Decision} C -->|One| D[Result one] C -->|Two| E[Result two] {{}} ``` The rendered output looks like this: {{< mermaid >}} graph LR; A[Hard edge] -->|Link text| B(Round edge) B --> C{Decision} C -->|One| D[Result one] C -->|Two| E[Result two] {{< /mermaid >}} ### 5.2 Sequence Diagram {#sequence-diagram} Example **sequence diagram** `mermaid` input: ```markdown {{}} sequenceDiagram participant Alice participant Bob Alice->>John: Hello John, how are you? loop Healthcheck John->John: Fight against hypochondria end Note right of John: Rational thoughts
prevail... John-->Alice: Great! John->Bob: How about you? Bob-->John: Jolly good! {{}} ``` The rendered output looks like this: {{< mermaid >}} sequenceDiagram participant Alice participant Bob Alice->>John: Hello John, how are you? loop Healthcheck John->John: Fight against hypochondria end Note right of John: Rational thoughts
prevail... John-->Alice: Great! John->Bob: How about you? Bob-->John: Jolly good! {{< /mermaid >}} ### 5.3 GANTT {#gantt} Example **GANTT** `mermaid` input: ```markdown {{}} gantt dateFormat YYYY-MM-DD title Adding GANTT diagram functionality to mermaid section A section Completed task :done, des1, 2014-01-06,2014-01-08 Active task :active, des2, 2014-01-09, 3d Future task : des3, after des2, 5d Future task2 : des4, after des3, 5d section Critical tasks Completed task in the critical line :crit, done, 2014-01-06,24h Implement parser and jison :crit, done, after des1, 2d Create tests for parser :crit, active, 3d Future task in critical line :crit, 5d Create tests for renderer :2d Add to mermaid :1d {{}} ``` The rendered output looks like this: {{< mermaid >}} gantt dateFormat YYYY-MM-DD title Adding GANTT diagram functionality to mermaid section A section Completed task :done, des1, 2014-01-06,2014-01-08 Active task :active, des2, 2014-01-09, 3d Future task : des3, after des2, 5d Future task2 : des4, after des3, 5d section Critical tasks Completed task in the critical line :crit, done, 2014-01-06,24h Implement parser and jison :crit, done, after des1, 2d Create tests for parser :crit, active, 3d Future task in critical line :crit, 5d Create tests for renderer :2d Add to mermaid :1d {{< /mermaid >}} ### 5.4 Class Diagram {#class-diagram} Example **class diagram** `mermaid` input: ```markdown {{}} classDiagram Class01 <|-- AveryLongClass : Cool Class03 *-- Class04 Class05 o-- Class06 Class07 .. Class08 Class09 --> C2 : Where am i? Class09 --* C3 Class09 --|> Class07 Class07 : equals() Class07 : Object[] elementData Class01 : size() Class01 : int chimp Class01 : int gorilla Class08 <--> C2: Cool label {{}} ``` The rendered output looks like this: {{< mermaid >}} classDiagram Class01 <|-- AveryLongClass : Cool Class03 *-- Class04 Class05 o-- Class06 Class07 .. Class08 Class09 --> C2 : Where am i? Class09 --* C3 Class09 --|> Class07 Class07 : equals() Class07 : Object[] elementData Class01 : size() Class01 : int chimp Class01 : int gorilla Class08 <--> C2: Cool label {{< /mermaid >}} ### 5.5 State Diagram {#state-diagram} Example **state diagram** `mermaid` input: ```markdown {{}} stateDiagram [*] --> Still Still --> [*] Still --> Moving Moving --> Still Moving --> Crash Crash --> [*] {{}} ``` The rendered output looks like this: {{< mermaid >}} stateDiagram [*] --> Still Still --> [*] Still --> Moving Moving --> Still Moving --> Crash Crash --> [*] {{< /mermaid >}} ### 5.6 Git Graph {#git-graph} Example **git graph** `mermaid` input: ```markdown {{}} gitGraph: options { "nodeSpacing": 100, "nodeRadius": 10 } end commit branch newbranch checkout newbranch commit commit checkout master commit commit merge newbranch {{}} ``` The rendered output looks like this: {{< mermaid >}} gitGraph: options { "nodeSpacing": 100, "nodeRadius": 10 } end commit branch newbranch checkout newbranch commit commit checkout master commit commit merge newbranch {{< /mermaid >}} ### 5.7 Pie {#pie} Example **pie** `mermaid` input: ```markdown {{}} pie "Dogs" : 386 "Cats" : 85 "Rats" : 15 {{}} ``` The rendered output looks like this: {{< mermaid >}} pie "Dogs" : 386 "Cats" : 85 "Rats" : 15 {{< /mermaid >}} ## 6 echarts [ECharts](https://echarts.apache.org/) is a library helping you to generate interactive data visualization. The basic chart types ECharts supports include [line series](https://echarts.apache.org/en/option.html#series-line), [bar series](https://echarts.apache.org/en/option.html#series-line), [scatter series](https://echarts.apache.org/en/option.html#series-scatter), [pie charts](https://echarts.apache.org/en/option.html#series-pie), [candle-stick series](https://echarts.apache.org/en/option.html#series-candlestick), [boxplot series](https://echarts.apache.org/en/option.html#series-boxplot) for statistics, [map series](https://echarts.apache.org/en/option.html#series-map), [heatmap series](https://echarts.apache.org/en/option.html#series-heatmap), [lines series](https://echarts.apache.org/en/option.html#series-lines) for directional information, [graph series](https://echarts.apache.org/en/option.html#series-graph) for relationships, [treemap series](https://echarts.apache.org/en/option.html#series-treemap), [sunburst series](https://echarts.apache.org/en/option.html#series-sunburst), [parallel series](https://echarts.apache.org/en/option.html#series-parallel) for multi-dimensional data, [funnel series](https://echarts.apache.org/en/option.html#series-funnel), [gauge series](https://echarts.apache.org/en/option.html#series-gauge). And it's extremely easy to create a combinition of them with ECharts. Just insert your ECharts option in `JSON`/`YAML`/`TOML` format in the `echarts` shortcode and that’s it. Example `echarts` input in `JSON` format: ```json {{}} { "title": { "text": "Summary Line Chart", "top": "2%", "left": "center" }, "tooltip": { "trigger": "axis" }, "legend": { "data": ["Email Marketing", "Affiliate Advertising", "Video Advertising", "Direct View", "Search Engine"], "top": "10%" }, "grid": { "left": "5%", "right": "5%", "bottom": "5%", "top": "20%", "containLabel": true }, "toolbox": { "feature": { "saveAsImage": { "title": "Save as Image" } } }, "xAxis": { "type": "category", "boundaryGap": false, "data": ["Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday"] }, "yAxis": { "type": "value" }, "series": [ { "name": "Email Marketing", "type": "line", "stack": "Total", "data": [120, 132, 101, 134, 90, 230, 210] }, { "name": "Affiliate Advertising", "type": "line", "stack": "Total", "data": [220, 182, 191, 234, 290, 330, 310] }, { "name": "Video Advertising", "type": "line", "stack": "Total", "data": [150, 232, 201, 154, 190, 330, 410] }, { "name": "Direct View", "type": "line", "stack": "Total", "data": [320, 332, 301, 334, 390, 330, 320] }, { "name": "Search Engine", "type": "line", "stack": "Total", "data": [820, 932, 901, 934, 1290, 1330, 1320] } ] } {{}} ``` The same in `YAML` format: ```yaml {{}} title: text: Summary Line Chart top: 2% left: center tooltip: trigger: axis legend: data: - Email Marketing - Affiliate Advertising - Video Advertising - Direct View - Search Engine top: 10% grid: left: 5% right: 5% bottom: 5% top: 20% containLabel: true toolbox: feature: saveAsImage: title: Save as Image xAxis: type: category boundaryGap: false data: - Monday - Tuesday - Wednesday - Thursday - Friday - Saturday - Sunday yAxis: type: value series: - name: Email Marketing type: line stack: Total data: - 120 - 132 - 101 - 134 - 90 - 230 - 210 - name: Affiliate Advertising type: line stack: Total data: - 220 - 182 - 191 - 234 - 290 - 330 - 310 - name: Video Advertising type: line stack: Total data: - 150 - 232 - 201 - 154 - 190 - 330 - 410 - name: Direct View type: line stack: Total data: - 320 - 332 - 301 - 334 - 390 - 330 - 320 - name: Search Engine type: line stack: Total data: - 820 - 932 - 901 - 934 - 1290 - 1330 - 1320 {{}} ``` The same in `TOML` format: ```toml {{}} [title] text = "Summary Line Chart" top = "2%" left = "center" [tooltip] trigger = "axis" [legend] data = [ "Email Marketing", "Affiliate Advertising", "Video Advertising", "Direct View", "Search Engine" ] top = "10%" [grid] left = "5%" right = "5%" bottom = "5%" top = "20%" containLabel = true [toolbox] [toolbox.feature] [toolbox.feature.saveAsImage] title = "Save as Image" [xAxis] type = "category" boundaryGap = false data = [ "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday" ] [yAxis] type = "value" [[series]] name = "Email Marketing" type = "line" stack = "Total" data = [ 120.0, 132.0, 101.0, 134.0, 90.0, 230.0, 210.0 ] [[series]] name = "Affiliate Advertising" type = "line" stack = "Total" data = [ 220.0, 182.0, 191.0, 234.0, 290.0, 330.0, 310.0 ] [[series]] name = "Video Advertising" type = "line" stack = "Total" data = [ 150.0, 232.0, 201.0, 154.0, 190.0, 330.0, 410.0 ] [[series]] name = "Direct View" type = "line" stack = "Total" data = [ 320.0, 332.0, 301.0, 334.0, 390.0, 330.0, 320.0 ] [[series]] name = "Search Engine" type = "line" stack = "Total" data = [ 820.0, 932.0, 901.0, 934.0, 1290.0, 1330.0, 1320.0 ] {{}} ``` The rendered output looks like this: {{< echarts >}} { "title": { "text": "Summary Line Chart", "top": "2%", "left": "center" }, "tooltip": { "trigger": "axis" }, "legend": { "data": ["Email Marketing", "Affiliate Advertising", "Video Advertising", "Direct View", "Search Engine"], "top": "10%" }, "grid": { "left": "5%", "right": "5%", "bottom": "5%", "top": "20%", "containLabel": true }, "toolbox": { "feature": { "saveAsImage": { "title": "Save as Image" } } }, "xAxis": { "type": "category", "boundaryGap": false, "data": ["Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday"] }, "yAxis": { "type": "value" }, "series": [ { "name": "Email Marketing", "type": "line", "stack": "Total", "data": [120, 132, 101, 134, 90, 230, 210] }, { "name": "Affiliate Advertising", "type": "line", "stack": "Total", "data": [220, 182, 191, 234, 290, 330, 310] }, { "name": "Video Advertising", "type": "line", "stack": "Total", "data": [150, 232, 201, 154, 190, 330, 410] }, { "name": "Direct View", "type": "line", "stack": "Total", "data": [320, 332, 301, 334, 390, 330, 320] }, { "name": "Search Engine", "type": "line", "stack": "Total", "data": [820, 932, 901, 934, 1290, 1330, 1320] } ] } {{< /echarts >}} The `echarts` shortcode has also the following named parameters: * **width** *[optional]* (**first** positional parameter) {{< version 0.2.0 >}} Width of the data visualization, default value is `100%`. * **height** *[optional]* (**second** positional parameter) {{< version 0.2.0 >}} Height of the data visualization, default value is `30rem`. ## 7 mapbox {{< version 0.2.0 >}} [Mapbox GL JS](https://docs.mapbox.com/mapbox-gl-js) is a JavaScript library that uses WebGL to render interactive maps from [vector tiles](https://docs.mapbox.com/help/glossary/vector-tiles/) and [Mapbox styles](https://docs.mapbox.com/mapbox-gl-js/style-spec/). The `mapbox` shortcode has the following named parameters to use Mapbox GL JS: * **lng** *[required]* (**first** positional parameter) Longitude of the inital centerpoint of the map, measured in degrees. * **lat** *[required]* (**second** positional parameter) Latitude of the inital centerpoint of the map, measured in degrees. * **zoom** *[optional]* (**third** positional parameter) The initial zoom level of the map, default value is `10`. * **marked** *[optional]* (**fourth** positional parameter) Whether to add a marker at the inital centerpoint of the map, default value is `true`. * **light-style** *[optional]* (**fifth** positional parameter) Style for the light theme, default value is the value set in the [front matter](../theme-documentation-content#front-matter) or the [site configuration](../theme-documentation-basics#site-configuration). * **dark-style** *[optional]* (**sixth** positional parameter) Style for the dark theme, default value is the value set in the [front matter](../theme-documentation-content#front-matter) or the [site configuration](../theme-documentation-basics#site-configuration). * **navigation** *[optional]* Whether to add [NavigationControl](https://docs.mapbox.com/mapbox-gl-js/api#navigationcontrol), default value is the value set in the [front matter](../theme-documentation-content#front-matter) or the [site configuration](../theme-documentation-basics#site-configuration). * **geolocate** *[optional]* Whether to add [GeolocateControl](https://docs.mapbox.com/mapbox-gl-js/api#geolocatecontrol), default value is the value set in the [front matter](../theme-documentation-content#front-matter) or the [site configuration](../theme-documentation-basics#site-configuration). * **scale** *[optional]* Whether to add [ScaleControl](https://docs.mapbox.com/mapbox-gl-js/api#scalecontrol), default value is the value set in the [front matter](../theme-documentation-content#front-matter) or the [site configuration](../theme-documentation-basics#site-configuration). * **fullscreen** *[optional]* Whether to add [FullscreenControl](https://docs.mapbox.com/mapbox-gl-js/api#fullscreencontrol), default value is the value set in the [front matter](../theme-documentation-content#front-matter) or the [site configuration](../theme-documentation-basics#site-configuration). * **width** *[optional]* Width of the map, default value is `100%`. * **height** *[optional]* Height of the map, default value is `20rem`. Example simple `mapbox` input: ```markdown {{}} Or {{}} ``` The rendered output looks like this: {{< mapbox 121.485 31.233 12 >}} Example `mapbox` input with the custom style: ```markdown {{}} Or {{}} ``` The rendered output looks like this: {{< mapbox -122.252 37.453 10 false "mapbox://styles/mapbox/navigation-preview-day-v4?optimize=true" "mapbox://styles/mapbox/navigation-preview-night-v4?optimize=true" >}} ## 8 music The `music` shortcode embeds a responsive music player based on [APlayer](https://github.com/MoePlayer/APlayer) and [MetingJS](https://github.com/metowolf/MetingJS). There are three ways to use it the `music` shortcode. ### 8.1 Custom Music URL {#custom-music-url} {{< version 0.2.10 >}} The complete usage of [local resource references](../theme-documentation-content#contents-organization) is supported. The `music` shortcode has the following named parameters by custom music URL: * **server** *[required]* URL of the custom music. * **name** *[optional]* Name of the custom music. * **artist** *[optional]* Artist of the custom music. * **cover** *[required]* URL of the custom music cover. Example `music` input by custom music URL: ```markdown {{}} ``` The rendered output looks like this: {{< music url="/music/Wavelength.mp3" name=Wavelength artist=oldmanyoung cover="/images/Wavelength.jpg" >}} ### 8.2 Music Platform URL Automatic Identification {#automatic-identification} The `music` shortcode has one named parameter by music platform URL automatic identification: * **auto** *[required]* (**first** positional parameter) URL of the music platform URL for automatic identification, which supports `netease`, `tencent` and `xiami` music platform. Example `music` input by music platform URL automatic identification: ```markdown {{}} Or {{}} ``` The rendered output looks like this: {{< music auto="https://music.163.com/#/playlist?id=60198" >}} ### 8.3 Custom Server, Type and ID {#custom-server} The `music` shortcode has the following named parameters by custom music platform: * **server** *[required]* (**first** positional parameter) [`netease`, `tencent`, `kugou`, `xiami`, `baidu`] Music platform. * **type** *[required]* (**second** positional parameter) [`song`, `playlist`, `album`, `search`, `artist`] Type of the music. * **id** *[required]* (**third** positional parameter) Song ID, or playlist ID, or album ID, or search keyword, or artist ID. Example `music` input by custom music platform: ```markdown {{}} Or {{}} ``` The rendered output looks like this: {{< music netease song 1868553 >}} ### 8.4 Other Parameters {#other-parameters} The `music` shortcode has other named parameters applying to the above three ways: * **theme** *[optional]* {{< version 0.2.0 changed >}} Main color of the music player, default value is `#448aff`. * **fixed** *[optional]* Whether to enable fixed mode, default value is `false`. * **mini** *[optional]* Whether to enable mini mode, default value is `false`. * **autoplay** *[optional]* Whether to autoplay music, default value is `false`. * **volume** *[optional]* Default volume when the player is first opened, which will be remembered in the browser, default value is `0.7`. * **mutex** *[optional]* Whether to pause other players when this player starts playing, default value is `true`. The `music` shortcode has the following named parameters only applying to the type of music list: * **loop** *[optional]* [`all`, `one`, `none`] Loop mode of the music list, default value is `none`. * **order** *[optional]* [`list`, `random`] Play order of the music list, default value is `list`. * **list-folded** *[optional]* Whether the music list should be folded at first, default value is `false`. * **list-max-height** *[optional]* Max height of the music list, default value is `340px`. ## 9 bilibili {{< version 0.2.0 changed >}} The `bilibili` shortcode embeds a responsive video player for bilibili videos. When the video only has one part, only the BV `id` of the video is required, e.g.: ```code https://www.bilibili.com/video/BV1Sx411T7QQ ``` Example `bilibili` input: ```markdown {{}} Or {{}} ``` The rendered output looks like this: {{< bilibili id=BV1Sx411T7QQ >}} When the video has multiple parts, in addition to the BV `id` of the video, `p` is also required, whose default value is `1`, e.g.: ```code https://www.bilibili.com/video/BV1TJ411C7An?p=3 ``` Example `bilibili` input with `p`: ```markdown {{}} Or {{}} ``` The rendered output looks like this: {{< bilibili id=BV1TJ411C7An p=3 >}} ## 10 typeit The `typeit` shortcode provides typing animation based on [TypeIt](https://typeitjs.com/). Just insert your content in the `typeit` shortcode and that’s it. ### 10.1 Simple Content {#simple-content} Simple content is allowed in `Markdown` format and **without** rich block content such as images and more... Example `typeit` input: The rendered output looks like this: Alternatively, you can use custom **HTML tags**. Example `typeit` input with `h4` tag: The rendered output looks like this: ### 10.2 Code Content {#code-content} Code content is allowed and will be highlighted by named parameter `code` for the type of code language. Example `typeit` input with `code`: The rendered output looks like this: ### 10.3 Group Content {#group-content} All typing animations start at the same time by default. But sometimes you may want to start a set of `typeit` contents in order. A set of `typeit` contents with the same value of named parameter `group` will start typing animation in sequence. Example `typeit` input with `group`: The rendered output looks like this: ## 11 script {{< version 0.2.8 >}} `script` is a shortcode to insert custom **:(fab fa-js fa-fw): Javascript** in your post. {{< admonition >}} The script content can be guaranteed to be executed in order after all third-party libraries are loaded. So you are free to use third-party libraries. {{< /admonition >}} Example `script` input: ```markdown {{}} console.log('Hello uBlogger!'); {{}} ``` You can see the output in the console of the developer tool. {{< script >}} console.log('Hello uBlogger!'); {{< /script >}}