mitm001 5 gadi atpakaļ
vecāks
revīzija
bd858c74b7
63 mainītis faili ar 44 papildinājumiem un 2448 dzēšanām
  1. 0 65
      .editorconfig
  2. 1 1
      .github/workflows/main.yml
  3. 0 25
      .gitignore
  4. 0 17
      .travis.yml
  5. 43 57
      README.adoc
  6. 0 60
      build.gradle
  7. 0 39
      deploy_ghpages.sh
  8. BIN
      gradle/wrapper/gradle-wrapper.jar
  9. 0 6
      gradle/wrapper/gradle-wrapper.properties
  10. 0 164
      gradlew
  11. 0 90
      gradlew.bat
  12. 0 8
      lib/emoji-inline-macro.rb
  13. 0 63
      lib/emoji-inline-macro/extension.rb
  14. 0 9
      lib/emoji-inline-macro/sample.adoc
  15. 0 835
      lib/emoji-inline-macro/twemoji-awesome.css
  16. 0 10
      src/templates/slim/html5/_attribution.html.slim
  17. 0 9
      src/templates/slim/html5/_footer.html.slim
  18. 0 6
      src/templates/slim/html5/_footnotes.html.slim
  19. 0 20
      src/templates/slim/html5/_hdlist.html.slim
  20. 0 30
      src/templates/slim/html5/_header.html.slim
  21. 0 11
      src/templates/slim/html5/_qanda.html.slim
  22. 0 4
      src/templates/slim/html5/_toc.html.slim
  23. 0 7
      src/templates/slim/html5/_tools.html.slim
  24. 0 13
      src/templates/slim/html5/block_admonition.html.slim
  25. 0 8
      src/templates/slim/html5/block_audio.html.slim
  26. 0 16
      src/templates/slim/html5/block_colist.html.slim
  27. 0 17
      src/templates/slim/html5/block_dlist.html.slim
  28. 0 2
      src/templates/slim/html5/block_example.html.slim
  29. 0 1
      src/templates/slim/html5/block_floating_title.html.slim
  30. 0 2
      src/templates/slim/html5/block_iframe.html.slim
  31. 0 4
      src/templates/slim/html5/block_image.html.slim
  32. 0 23
      src/templates/slim/html5/block_listing.html.slim
  33. 0 2
      src/templates/slim/html5/block_literal.html.slim
  34. 0 7
      src/templates/slim/html5/block_olist.html.slim
  35. 0 7
      src/templates/slim/html5/block_open.html.slim
  36. 0 9
      src/templates/slim/html5/block_outline.html.slim
  37. 0 1
      src/templates/slim/html5/block_page_break.html.slim
  38. 0 2
      src/templates/slim/html5/block_paragraph.html.slim
  39. 0 1
      src/templates/slim/html5/block_pass.html.slim
  40. 0 4
      src/templates/slim/html5/block_preamble.html.slim
  41. 0 3
      src/templates/slim/html5/block_quote.html.slim
  42. 0 5
      src/templates/slim/html5/block_sidebar.html.slim
  43. 0 2
      src/templates/slim/html5/block_stem.html.slim
  44. 0 36
      src/templates/slim/html5/block_table.html.slim
  45. 0 1
      src/templates/slim/html5/block_thematic_break.html.slim
  46. 0 8
      src/templates/slim/html5/block_toc.html.slim
  47. 0 24
      src/templates/slim/html5/block_ulist.html.slim
  48. 0 3
      src/templates/slim/html5/block_verse.html.slim
  49. 0 19
      src/templates/slim/html5/block_video.html.slim
  50. 0 37
      src/templates/slim/html5/document.html.slim
  51. 0 5
      src/templates/slim/html5/embedded.html.slim
  52. 0 550
      src/templates/slim/html5/helpers.rb
  53. 0 10
      src/templates/slim/html5/inline_anchor.html.slim
  54. 0 2
      src/templates/slim/html5/inline_break.html.slim
  55. 0 1
      src/templates/slim/html5/inline_button.html.slim
  56. 0 7
      src/templates/slim/html5/inline_callout.html.slim
  57. 0 11
      src/templates/slim/html5/inline_footnote.html.slim
  58. 0 9
      src/templates/slim/html5/inline_image.html.slim
  59. 0 2
      src/templates/slim/html5/inline_indexterm.html.slim
  60. 0 8
      src/templates/slim/html5/inline_kbd.html.slim
  61. 0 10
      src/templates/slim/html5/inline_menu.html.slim
  62. 0 26
      src/templates/slim/html5/inline_quoted.html.slim
  63. 0 14
      src/templates/slim/html5/section.html.slim

+ 0 - 65
.editorconfig

@@ -1,65 +0,0 @@
-# EditorConfig is awesome: http://EditorConfig.org
-
-
-# top-most EditorConfig file
-root = true
-
-# Unix-style newlines with a newline ending every file
-[*]
-end_of_line = lf
-trim_trailing_whitespace = true
-insert_final_newline = true
-tab_width = 2
-charset = utf-8
-
-# 4 space indentation
-[*.py]
-indent_style = space
-indent_size = 4
-
-# Tab indentation (no size specified)
-[Makefile]
-indent_style = tab
-
-[build.gradle]
-indent_style = tab
-
-# Matches the exact files either package.json or .travis.yml
-[{package.json,.travis.yml}]
-indent_style = space
-indent_size = 2
-
-[**.js]
-indent_style = tab
-indent_size = 2
-; Path to the external file format
-; The default is taken from the lib folder inside the folder extension.
-path=~/.vim/bundle/js-beautify/js/lib/beautify.js
-; Javascript interpreter to be invoked by default 'node'
-bin=node
-
-[**.json]
-indent_style = tab
-indent_size = 2
-
-[**.jsx]
-e4x = true
-indent_style = tab
-indent_size = 2
-
-[**.css]
-indent_style = tab
-indent_size = 2
-path=~/.vim/bundle/js-beautify/js/lib/beautify-css.js
-
-[**.html]
-indent_style = tab
-indent_size = 2
-max_char = 78
-brace_style = expand
-; Using special comments
-; And such comments or apply only in global configuration
-; So it's best to avoid them
-;vim:path=~/.vim/bundle/js-beautify/js/lib/beautify-html.js
-;vim:max_char=78:brace_style=expand
-

+ 1 - 1
.github/workflows/main.yml

@@ -1,5 +1,5 @@
 # This file can be used to configure the Node.js build for Antora ci without
-# having Node installed locally. See 'setup-docs/antora_setup.adoc' in the root
+# having Node installed locally. See 'transition-docs/antora_setup.adoc' in the root
 # of this repo for details of how to use this file.
 #
 # The action add-and-commit will always commit the package-lock.json,

+ 0 - 25
.gitignore

@@ -1,25 +0,0 @@
-target/
-*/src/*/java/META-INF
-*/src/META-INF/
-*/src/*/java/META-INF/
-.classpath
-.springBeans
-.project
-.DS_Store
-.settings/
-.idea/
-/gh-pages/
-out/
-/bin/
-intellij/
-build/
-*.log
-*.log.*
-*.iml
-*.ipr
-*.iws
-.gradle/
-atlassian-ide-plugin.xml
-index.adoc
-*~
-*.off

+ 0 - 17
.travis.yml

@@ -1,17 +0,0 @@
-language: java
-jdk:
-  - openjdk11
-#  blacklist
-branches:
-  except:
-    - gh-pages
-before_cache:
-  - rm -f $HOME/.gradle/caches/modules-2/modules-2.lock
-cache:
-  directories:
-    - $HOME/.gradle/caches/
-    - $HOME/.gradle/wrapper/
-script:
-   - ./gradlew clean asciidoc
-after_success:
-  - '[ "$TRAVIS_PULL_REQUEST" == "false" ] && [ "$TRAVIS_BRANCH" == "master" ] && ./deploy_ghpages.sh'

+ 43 - 57
README.adoc

@@ -1,31 +1,29 @@
-:experimental:
-
-image:https://travis-ci.org/jMonkeyEngine/wiki.svg?branch=master["Build Status", link="https://travis-ci.org/jMonkeyEngine/wiki"]
-
 = jMonkeyEngine Documentation
 
-see link:https://wiki.jmonkeyengine.org/documentation[https://wiki.jmonkeyengine.org/documentation]
+image:https://github.com/jMonkeyEngine/wiki/workflows/Build%20Docs/badge.svg[Status Badge, 175, 25]
+
+see link:https://github.com/jMonkeyEngine/wiki/[https://github.com/jMonkeyEngine/wiki]
 
 The project to store, edit, and generate the documentation of http://jmonkeyengine.org[jMonkeyEngine].
 
-The documentation (<<src/docs/asciidoc>>) is editable :
+The documentation `docs/modules/ROOT/pages` is editable :
 
-* online via github (Edit button located at top of the Wiki page + Pull Request)
-* offline with Netbeans after local `git clone` + open
-* offline with Atom editor, see link:https://wiki.jmonkeyengine.org/wiki/atom_editor.html[Atom Editor for Wiki Editing]
+* Online via github (Edit link located on the top navbar of the Wiki + Pull Request)
+* Offline with the Atom editor, which includes a built in previewer and code editor. see link:https://wiki.jmonkeyengine.org/wiki/atom_editor.html[Atom Editor for Wiki Editing],
+* Any text editor and browser program of your choice.
+* Setting up your own local Node.js environment.
 
 .Prerequisites
 .  Have a link:https://github.com/[GitHub account].
 .  Optional: Are a Wiki project member.
 
-If you are not a member, you can fork the repository into your GitHub account and issue pull requests from there or
-online via github. (Edit button located at top of the Wiki page + Pull Request)
+If you are not a member, you can fork the repository into your GitHub account and issue pull requests via github.
 
 To fork the Wiki repository into your GitHub Account:
 
-*  In the menu at the top of the page, select the *Fork* button.
+*  In the menu at the top of the docs.jmonkeyengine.org page, select the *Fork* button.
 
-The syntax is asciidoc :
+The syntax is asciidoctor:
 
 *  link:http://asciidoctor.org/docs/asciidoc-syntax-quick-reference/[Asciidoc Syntax Quick Reference]
 *  link:http://asciidoctor.org/docs/user-manual/[Asciidoctor User Manual]
@@ -42,21 +40,28 @@ There are a few simple rules to follow when contributing.
 . It's not required but it's a good idea to give a heads up you made a P/R on the link:https://hub.jmonkeyengine.org/[jMonkeyEngine Forum] under the `Documentation` topic.
 .  When adding documents, make sure to always complete the header of your document first.
 ** see link:https://wiki.jmonkeyengine.org/wiki/wiki_header.html[Anatomy of a Wiki Header]
-.  When linking to other Wiki pages, always use an "`Inter-Document Cross Reference`" with the format,
-** ++<<path/to/wiki/page#,custom label text>>++ +
-The `#` sign substitutes for the file extension. This type of link will first look for the `.adoc` file and if not found default to the `.html` version.
-+
-The path should be relative to the `asciidoc` folder.
+.  The docs are modular so you can create your own Antora site playbook and module and it can be included in the wiki and maintained by you. see link:https://docs.antora.org/antora/2.3/[Antora Docs].
+. You can create modules and submit them here also.
+.  When linking to other Wiki pages located in the `ROOT` module, always use an "`Inter-Document Cross Reference`" with the format,
+** ++<<path/to/wiki/page#,custom label text>>++
 +
+--
+The `#` sign substitutes for the file extension. This type of link will first look for the `.adoc` file and if not found default to the `.html` version.
+
+The path should be relative to the `pages` folder.
+
 For example: `++<<jme3/requirements#,Software and hardware requirements>>++` +
-links to the `requirements.adoc` page, which lives in a sub-folder of `asciidoc` named `jme3`.
-+
+links to the `requirements.adoc` page, which lives in a sub-folder of `pages` named `jme3`.
+
 See link:http://asciidoctor.org/docs/user-manual/#inter-document-cross-references[http://asciidoctor.org/docs/user-manual/#inter-document-cross-references] for more info.
+--
+. See link:https://docs.antora.org/antora/2.3/navigation/[Antora Navigation] for creating nav menues and navigation between modules.
 .  When linking to images stored in the wiki repository, always use an image prefix in front of the file name and square brackets after it with the format,
 **  Image on its own line  - `image::path/to/image.jpg[image alt text,width=" ",height=" ", align=" "]`
 +
+--
 For example: `++image::jme3/beginner/beginner-assets-models.png[beginner-assets-models.png,320,250,align="center"]++`
-+
+
 *  This image is on its own line.
 *  Is stored in the `jme3/beginner` folder which lives in the `images` folder.
 *  Is named `beginner-assets-models.png`.
@@ -64,6 +69,7 @@ For example: `++image::jme3/beginner/beginner-assets-models.png[beginner-assets-
 *  Has a width of 320.
 *  Has a height of 250.
 *  Is aligned in the center of the page.
+--
 **  If you want to include an image inline, use the `image:` prefix instead (notice there is only one colon):
 +
 See link:http://asciidoctor.org/docs/user-manual/#images[http://asciidoctor.org/docs/user-manual/#images] for in depth instructions.
@@ -75,40 +81,20 @@ link:{link-javadoc}/com/jme3/app/state/BaseAppState.html[BaseAppState]
 ```
 ** see link:https://wiki.jmonkeyengine.org/wiki/wiki_header.html[Anatomy of a Wiki Header] for details on how to override this setting.
 
-== Build
+== Build & Preview
 
-*  In Netbeans, convert the AsciiDoc to HTML5 by invoking the 'asciidoctor' goal:
-+
-[source]
-----
- $ ./gradlew asciidoctor
-----
-+
-Open the file _build/asciidoc/html5/index.html_  in your browser to see the generated HTML file.
-
-*  In Atom, you see real time changes when using the `AsciiDoc Preview` (kbd:[ctrl]+kbd:[shift]+kbd:[A] or `menu:Packages[AsciiDoc Preview>Toggle Preview]`). No build is required.
-
-== TODO
-
-- [x] configure travis build
-- [x] configure github + gradle + travis to publish on gh-pages branches
-- [x] find and fixe conversion bug
-- [x] complete conversion: note, warning, ...
-- [x] fix warning during html's generation (should be fixed manually)
-- [x] add meta info during conversion (doctitle, revision, tags, ...)
-- [x] add a home page (index.html)
-- [ ] add a navigation bar or a menu (?)
-- [ ] customize html layout (header, footer, css)
-- [x] transfer ownership to jMonkeyEngine org
-- [x] complete Doc, how to contribute,...
-- [x] accept Pull Request
-- [ ] generate sitemap
-- [x] add search box
-- [ ] add google analytics (?)
-- [x] support emoji
-- [ ] support iframe block
-- [x] fix slideshow of "Xxx for Dummies"
-- [ ] optimize remove useless images
-- [ ] optimize image, use smaller file, eg convert to jpg or to webp, resize
-- [ ] organize i18n / lang
-- [ ] use tags to create taxonomy
+To set up the Antora environment, you'll need Nodejs (tested with node 12).
+
+From your local wiki directory.
+
+Run:
+```
+npm install
+npm run buildDocs
+```
+
+This will install the needed dependencies and run the static site generator. The documentation will be output to the directory `build/site`.
+
+To preview, navigate to the `build/site` directory and open the index.html file in your browser.
+
+see: https://docs.antora.org/antora/2.3/preview-site/

+ 0 - 60
build.gradle

@@ -1,60 +0,0 @@
-plugins {
-	id 'org.asciidoctor.convert' version '1.5.3'
-}
-
-apply plugin: 'java'
-apply plugin: 'org.asciidoctor.convert'
-
-version = '3.1.0-SNAPSHOT'
-
-asciidoctorj {
-	version = '1.5.4'
-}
-
-asciidoctor {
-	resources {
-		from('src/docs/images')
-	}
-	resources {
-		from('src/docs/resources')
-	}
-	// Add requirement on Ruby extension.
-	requires './lib/emoji-inline-macro.rb'
-
-	attributes 'build-gradle': file('build.gradle'),
-		'sourcedir': project.asciidoctor.sourceDir,
-		'endpoint-url': 'https://wiki.jmonkeyengine.org',
-		'source-highlighter' : 'coderay',
-		'linkcss': 'true',
-		//'imagesdir':'/images',
-		'toc':'left',
-		'icons': 'font',
-		'setanchors':'true',
-		'idprefix':'',
-		'idseparator':'-',
-		'docinfo1':'true',
-		'wiki_link_edit_prefix': 'https://github.com/jMonkeyEngine/wiki/edit/master/src/docs/asciidoc',
-		'wiki_link_create_prefix': 'https://github.com/jMonkeyEngine/wiki/new/master/src/docs/asciidoc',
-		'orgname':'jMonkeyEngine',
-		'link-javadoc': 'https://javadoc.jmonkeyengine.org/v3.3.2-stable@'
-	options header_footer: true,
-		template_dirs: [file('src/templates/slim').absolutePath]
-/*
-	extensions {
-		block_macro(name: 'iframe') {
-			parent, target, attributes ->
-			String content = """<iframe src="${target}"></iframe>""";
-			createBlock(parent, "pass", [content], attributes, config);
-		}
-	}
-*/
-}
-
-asciidoctor.doLast {
-	copy {
-		from 'build/asciidoc/html5'
-		into 'build/asciidoc/html5'
-		rename { String fileName -> 'index.html'}
-		include 'documentation.html'
-	}
-}

+ 0 - 39
deploy_ghpages.sh

@@ -1,39 +0,0 @@
-#!/bin/bash
-#
-# Script for travis-ci to sync apidoc dir from master branch to gh-pages branch
-# based on :
-# * https://github.com/steveklabnik/automatically_update_github_pages_with_travis_example
-# * https://github.com/gemini-testing/gemini/pull/352/files
-
-set -o errexit -o nounset
-
-if [ "$TRAVIS_BRANCH" != "master" ] ; then
-  echo "This commit was made against the $TRAVIS_BRANCH and not the master! No deploy!"
-  exit 0
-fi
-
-if [ "$GH_TOKEN" == "" ] ; then
-  echo "GH_TOKEN is not defined"
-  exit 1
-fi
-
-rev=$(git rev-parse --short HEAD)
-repo=$(git config --local --get-all remote.origin.url | awk -F'[:/]' 'NF && NF-1 {print ($(NF-1)"/"$NF)}')
-
-echo -e "Starting to update gh-pages of ${repo} at ${rev}\n"
-# on Travis, can't optimize by cloning itself and define remote as upstream
-# travis> "attempt to fetch/clone from a shallow repository"
-# So need to do a full clone
-rm -Rf gh-pages
-git clone -b gh-pages --single-branch https://${GH_TOKEN}@github.com/${repo} gh-pages > /dev/null
-cd gh-pages
-
-rsync -az --stats --delete --exclude .git --exclude CNAME --force ../build/asciidoc/html5/ .
-
-git config --local user.email "[email protected]"
-git config --local user.name "Travis"
-git add -A . > /dev/null
-git commit -m "Travis build $TRAVIS_BUILD_NUMBER pushed to gh-pages at ${rev}"
-git push --force --quiet origin gh-pages
-cd ..
-rm -Rf gh-pages

BIN
gradle/wrapper/gradle-wrapper.jar


+ 0 - 6
gradle/wrapper/gradle-wrapper.properties

@@ -1,6 +0,0 @@
-#Sat May 21 21:10:37 CEST 2016
-distributionBase=GRADLE_USER_HOME
-distributionPath=wrapper/dists
-zipStoreBase=GRADLE_USER_HOME
-zipStorePath=wrapper/dists
-distributionUrl=https\://services.gradle.org/distributions/gradle-5.5.1-bin.zip

+ 0 - 164
gradlew

@@ -1,164 +0,0 @@
-#!/usr/bin/env bash
-
-##############################################################################
-##
-##  Gradle start up script for UN*X
-##
-##############################################################################
-
-# Attempt to set APP_HOME
-# Resolve links: $0 may be a link
-PRG="$0"
-# Need this for relative symlinks.
-while [ -h "$PRG" ] ; do
-    ls=`ls -ld "$PRG"`
-    link=`expr "$ls" : '.*-> \(.*\)$'`
-    if expr "$link" : '/.*' > /dev/null; then
-        PRG="$link"
-    else
-        PRG=`dirname "$PRG"`"/$link"
-    fi
-done
-SAVED="`pwd`"
-cd "`dirname \"$PRG\"`/" >/dev/null
-APP_HOME="`pwd -P`"
-cd "$SAVED" >/dev/null
-
-APP_NAME="Gradle"
-APP_BASE_NAME=`basename "$0"`
-
-# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
-DEFAULT_JVM_OPTS=""
-
-# Use the maximum available, or set MAX_FD != -1 to use that value.
-MAX_FD="maximum"
-
-warn ( ) {
-    echo "$*"
-}
-
-die ( ) {
-    echo
-    echo "$*"
-    echo
-    exit 1
-}
-
-# OS specific support (must be 'true' or 'false').
-cygwin=false
-msys=false
-darwin=false
-nonstop=false
-case "`uname`" in
-  CYGWIN* )
-    cygwin=true
-    ;;
-  Darwin* )
-    darwin=true
-    ;;
-  MINGW* )
-    msys=true
-    ;;
-  NONSTOP* )
-    nonstop=true
-    ;;
-esac
-
-CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar
-
-# Determine the Java command to use to start the JVM.
-if [ -n "$JAVA_HOME" ] ; then
-    if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
-        # IBM's JDK on AIX uses strange locations for the executables
-        JAVACMD="$JAVA_HOME/jre/sh/java"
-    else
-        JAVACMD="$JAVA_HOME/bin/java"
-    fi
-    if [ ! -x "$JAVACMD" ] ; then
-        die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME
-
-Please set the JAVA_HOME variable in your environment to match the
-location of your Java installation."
-    fi
-else
-    JAVACMD="java"
-    which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
-
-Please set the JAVA_HOME variable in your environment to match the
-location of your Java installation."
-fi
-
-# Increase the maximum file descriptors if we can.
-if [ "$cygwin" = "false" -a "$darwin" = "false" -a "$nonstop" = "false" ] ; then
-    MAX_FD_LIMIT=`ulimit -H -n`
-    if [ $? -eq 0 ] ; then
-        if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then
-            MAX_FD="$MAX_FD_LIMIT"
-        fi
-        ulimit -n $MAX_FD
-        if [ $? -ne 0 ] ; then
-            warn "Could not set maximum file descriptor limit: $MAX_FD"
-        fi
-    else
-        warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT"
-    fi
-fi
-
-# For Darwin, add options to specify how the application appears in the dock
-if $darwin; then
-    GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\""
-fi
-
-# For Cygwin, switch paths to Windows format before running java
-if $cygwin ; then
-    APP_HOME=`cygpath --path --mixed "$APP_HOME"`
-    CLASSPATH=`cygpath --path --mixed "$CLASSPATH"`
-    JAVACMD=`cygpath --unix "$JAVACMD"`
-
-    # We build the pattern for arguments to be converted via cygpath
-    ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null`
-    SEP=""
-    for dir in $ROOTDIRSRAW ; do
-        ROOTDIRS="$ROOTDIRS$SEP$dir"
-        SEP="|"
-    done
-    OURCYGPATTERN="(^($ROOTDIRS))"
-    # Add a user-defined pattern to the cygpath arguments
-    if [ "$GRADLE_CYGPATTERN" != "" ] ; then
-        OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)"
-    fi
-    # Now convert the arguments - kludge to limit ourselves to /bin/sh
-    i=0
-    for arg in "$@" ; do
-        CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -`
-        CHECK2=`echo "$arg"|egrep -c "^-"`                                 ### Determine if an option
-
-        if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then                    ### Added a condition
-            eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"`
-        else
-            eval `echo args$i`="\"$arg\""
-        fi
-        i=$((i+1))
-    done
-    case $i in
-        (0) set -- ;;
-        (1) set -- "$args0" ;;
-        (2) set -- "$args0" "$args1" ;;
-        (3) set -- "$args0" "$args1" "$args2" ;;
-        (4) set -- "$args0" "$args1" "$args2" "$args3" ;;
-        (5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;;
-        (6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;;
-        (7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;;
-        (8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;;
-        (9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;;
-    esac
-fi
-
-# Split up the JVM_OPTS And GRADLE_OPTS values into an array, following the shell quoting and substitution rules
-function splitJvmOpts() {
-    JVM_OPTS=("$@")
-}
-eval splitJvmOpts $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS
-JVM_OPTS[${#JVM_OPTS[*]}]="-Dorg.gradle.appname=$APP_BASE_NAME"
-
-exec "$JAVACMD" "${JVM_OPTS[@]}" -classpath "$CLASSPATH" org.gradle.wrapper.GradleWrapperMain "$@"

+ 0 - 90
gradlew.bat

@@ -1,90 +0,0 @@
-@if "%DEBUG%" == "" @echo off
-@rem ##########################################################################
-@rem
-@rem  Gradle startup script for Windows
-@rem
-@rem ##########################################################################
-
-@rem Set local scope for the variables with windows NT shell
-if "%OS%"=="Windows_NT" setlocal
-
-set DIRNAME=%~dp0
-if "%DIRNAME%" == "" set DIRNAME=.
-set APP_BASE_NAME=%~n0
-set APP_HOME=%DIRNAME%
-
-@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
-set DEFAULT_JVM_OPTS=
-
-@rem Find java.exe
-if defined JAVA_HOME goto findJavaFromJavaHome
-
-set JAVA_EXE=java.exe
-%JAVA_EXE% -version >NUL 2>&1
-if "%ERRORLEVEL%" == "0" goto init
-
-echo.
-echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
-echo.
-echo Please set the JAVA_HOME variable in your environment to match the
-echo location of your Java installation.
-
-goto fail
-
-:findJavaFromJavaHome
-set JAVA_HOME=%JAVA_HOME:"=%
-set JAVA_EXE=%JAVA_HOME%/bin/java.exe
-
-if exist "%JAVA_EXE%" goto init
-
-echo.
-echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
-echo.
-echo Please set the JAVA_HOME variable in your environment to match the
-echo location of your Java installation.
-
-goto fail
-
-:init
-@rem Get command-line arguments, handling Windows variants
-
-if not "%OS%" == "Windows_NT" goto win9xME_args
-if "%@eval[2+2]" == "4" goto 4NT_args
-
-:win9xME_args
-@rem Slurp the command line arguments.
-set CMD_LINE_ARGS=
-set _SKIP=2
-
-:win9xME_args_slurp
-if "x%~1" == "x" goto execute
-
-set CMD_LINE_ARGS=%*
-goto execute
-
-:4NT_args
-@rem Get arguments from the 4NT Shell from JP Software
-set CMD_LINE_ARGS=%$
-
-:execute
-@rem Setup the command line
-
-set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
-
-@rem Execute Gradle
-"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS%
-
-:end
-@rem End local scope for the variables with windows NT shell
-if "%ERRORLEVEL%"=="0" goto mainEnd
-
-:fail
-rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of
-rem the _cmd.exe /c_ return code!
-if  not "" == "%GRADLE_EXIT_CONSOLE%" exit 1
-exit /b 1
-
-:mainEnd
-if "%OS%"=="Windows_NT" endlocal
-
-:omega

+ 0 - 8
lib/emoji-inline-macro.rb

@@ -1,8 +0,0 @@
-RUBY_ENGINE == 'opal' ? (require 'emoji-inline-macro/extension') : (require_relative 'emoji-inline-macro/extension')
-
-Asciidoctor::Extensions.register do
-  if @document.basebackend? 'html'
-    inline_macro EmojiInlineMacro
-    docinfo_processor EmojiAssetsDocinfoProcessor
-  end
-end

+ 0 - 63
lib/emoji-inline-macro/extension.rb

@@ -1,63 +0,0 @@
-require 'asciidoctor/extensions' unless RUBY_ENGINE == 'opal'
-
-include Asciidoctor
-
-class EmojiInlineMacro < Extensions::InlineMacroProcessor
-  use_dsl
-
-  named :emoji
-  name_positional_attributes 'size'
-
-  SIZE_MAP = {'1x' => 17, 'lg' => 24, '2x' => 34, '3x' => 50, '4x' => 68, '5x' => 85}
-  SIZE_MAP.default = 24
-
-  def process parent, target, attributes
-    doc = parent.document
-    if doc.attributes['emoji'] == 'tortue'
-      slash = (doc.attr? 'htmlsyntax', 'xml') ? '/' : nil
-      size = SIZE_MAP[attributes['size']]
-      cdn = (attributes.key? 'cdn') ? attributes['cdn'] : (doc.attr 'emoji-cdn', 'http://www.tortue.me/emoji/')
-      qtarget = %(#{cdn}#{target}.png)
-      %(<img src="#{parent.image_uri qtarget, nil}" height="#{size}" width="#{size}"#{slash}>)
-    # Use twemoji by default
-    else
-      size_class = (size = attributes['size']) ? %( twa-#{size}) : nil
-      emoji_name = target.tr '_', '-'
-      %(<i class="twa#{size_class} twa-#{emoji_name}"></i>)
-    end
-  end
-end
-
-class EmojiAssetsDocinfoProcessor < Extensions::DocinfoProcessor
-  use_dsl
-  #at_location :head
-
-  def process doc
-    unless doc.attributes['emoji'] == 'tortue'
-      extdir = ::File.join(::File.dirname __FILE__)
-      stylesheet_name = 'twemoji-awesome.css'
-      if doc.attr? 'linkcss'
-        stylesheet_href = handle_stylesheet doc, extdir, stylesheet_name
-        %(<link rel="stylesheet" href="#{stylesheet_href}">)
-      else
-        content = doc.read_asset %(#{extdir}/#{stylesheet_name})
-        ['<style>', content.chomp, '</style>'] * "\n"
-      end
-    end
-  end
-
-  def handle_stylesheet doc, extdir, stylesheet_name
-    outdir = (doc.attr? 'outdir') ? (doc.attr 'outdir') : (doc.attr 'docdir')
-    stylesoutdir = doc.normalize_system_path((doc.attr 'stylesdir'), outdir, (doc.safe >= SafeMode::SAFE ? outdir : nil))
-    if stylesoutdir != extdir && doc.safe < SafeMode::SECURE && (doc.attr? 'copycss')
-      destination = doc.normalize_system_path stylesheet_name, stylesoutdir, (doc.safe >= SafeMode::SAFE ? outdir : nil)
-      content = doc.read_asset %(#{extdir}/#{stylesheet_name})
-      ::File.open(destination, 'w') {|f|
-        f.write content
-      }
-      destination
-    else
-      %(./#{stylesheet_name})
-    end
-  end
-end

+ 0 - 9
lib/emoji-inline-macro/sample.adoc

@@ -1,9 +0,0 @@
-// must pass -a allow-uri-read to enable data-uri behavior
-= Emoji Inline Macro Extension
-:data-uri:
-:cache-uri:
-//:emoji: tortue
-
-Faster than a emoji:turtle[1x]!
-
-This is an example of how you can emoji:heart[lg] Asciidoctor and Twitter Emoji.

+ 0 - 835
lib/emoji-inline-macro/twemoji-awesome.css

@@ -1,835 +0,0 @@
-@import url(asciidoctor.css);
-@import url(coderay-asciidoctor.css);
-.twa{display:inline-block;height:1em;width:1em;margin:0 .05em 0 .1em;vertical-align:-.1em;background-repeat:no-repeat;background-position:center center;background-size:1em 1em}
-.twa-lg{height:1.33em;width:1.33em;margin:0 .0665em 0 .133em;vertical-align:-.133em;background-size:1.33em 1.33em}
-.twa-2x{height:2em;width:2em;margin:0 .1em 0 .2em;vertical-align:-.2em;background-size:2em 2em}
-.twa-3x{height:3em;width:3em;margin:0 .15em 0 .3em;vertical-align:-.3em;background-size:3em 3em}
-.twa-4x{height:4em;width:4em;margin:0 .2em 0 .4em;vertical-align:-.4em;background-size:4em 4em}
-.twa-5x{height:5em;width:5em;margin:0 .25em 0 .5em;vertical-align:-.5em;background-size:5em 5em}
-.twa-smile{background-image:url(https://twemoji.maxcdn.com/svg/1f604.svg)}
-.twa-laughing{background-image:url(https://twemoji.maxcdn.com/svg/1f606.svg)}
-.twa-blush{background-image:url(https://twemoji.maxcdn.com/svg/1f60a.svg)}
-.twa-smiley{background-image:url(https://twemoji.maxcdn.com/svg/1f603.svg)}
-.twa-relaxed{background-image:url(https://twemoji.maxcdn.com/svg/263a.svg)}
-.twa-smirk{background-image:url(https://twemoji.maxcdn.com/svg/1f60f.svg)}
-.twa-heart-eyes{background-image:url(https://twemoji.maxcdn.com/svg/1f60d.svg)}
-.twa-kissing-heart{background-image:url(https://twemoji.maxcdn.com/svg/1f618.svg)}
-.twa-kissing-closed-eyes{background-image:url(https://twemoji.maxcdn.com/svg/1f61a.svg)}
-.twa-flushed{background-image:url(https://twemoji.maxcdn.com/svg/1f633.svg)}
-.twa-relieved{background-image:url(https://twemoji.maxcdn.com/svg/1f625.svg)}
-.twa-satisfied{background-image:url(https://twemoji.maxcdn.com/svg/1f60c.svg)}
-.twa-grin{background-image:url(https://twemoji.maxcdn.com/svg/1f601.svg)}
-.twa-wink{background-image:url(https://twemoji.maxcdn.com/svg/1f609.svg)}
-.twa-stuck-out-tongue-winking-eye{background-image:url(https://twemoji.maxcdn.com/svg/1f61c.svg)}
-.twa-stuck-out-tongue-closed-eyes{background-image:url(https://twemoji.maxcdn.com/svg/1f61d.svg)}
-.twa-grinning{background-image:url(https://twemoji.maxcdn.com/svg/1f600.svg)}
-.twa-kissing{background-image:url(https://twemoji.maxcdn.com/svg/1f617.svg)}
-.twa-kissing-smiling-eyes{background-image:url(https://twemoji.maxcdn.com/svg/1f619.svg)}
-.twa-stuck-out-tongue{background-image:url(https://twemoji.maxcdn.com/svg/1f61b.svg)}
-.twa-sleeping{background-image:url(https://twemoji.maxcdn.com/svg/1f634.svg)}
-.twa-worried{background-image:url(https://twemoji.maxcdn.com/svg/1f61f.svg)}
-.twa-frowning{background-image:url(https://twemoji.maxcdn.com/svg/1f626.svg)}
-.twa-anguished{background-image:url(https://twemoji.maxcdn.com/svg/1f627.svg)}
-.twa-open-mouth{background-image:url(https://twemoji.maxcdn.com/svg/1f62e.svg)}
-.twa-grimacing{background-image:url(https://twemoji.maxcdn.com/svg/1f62c.svg)}
-.twa-confused{background-image:url(https://twemoji.maxcdn.com/svg/1f615.svg)}
-.twa-hushed{background-image:url(https://twemoji.maxcdn.com/svg/1f62f.svg)}
-.twa-expressionless{background-image:url(https://twemoji.maxcdn.com/svg/1f611.svg)}
-.twa-unamused{background-image:url(https://twemoji.maxcdn.com/svg/1f612.svg)}
-.twa-sweat-smile{background-image:url(https://twemoji.maxcdn.com/svg/1f605.svg)}
-.twa-sweat{background-image:url(https://twemoji.maxcdn.com/svg/1f613.svg)}
-.twa-weary{background-image:url(https://twemoji.maxcdn.com/svg/1f629.svg)}
-.twa-pensive{background-image:url(https://twemoji.maxcdn.com/svg/1f614.svg)}
-.twa-disappointed{background-image:url(https://twemoji.maxcdn.com/svg/1f61e.svg)}
-.twa-confounded{background-image:url(https://twemoji.maxcdn.com/svg/1f616.svg)}
-.twa-fearful{background-image:url(https://twemoji.maxcdn.com/svg/1f628.svg)}
-.twa-cold-sweat{background-image:url(https://twemoji.maxcdn.com/svg/1f630.svg)}
-.twa-persevere{background-image:url(https://twemoji.maxcdn.com/svg/1f623.svg)}
-.twa-cry{background-image:url(https://twemoji.maxcdn.com/svg/1f622.svg)}
-.twa-sob{background-image:url(https://twemoji.maxcdn.com/svg/1f62d.svg)}
-.twa-joy{background-image:url(https://twemoji.maxcdn.com/svg/1f602.svg)}
-.twa-astonished{background-image:url(https://twemoji.maxcdn.com/svg/1f632.svg)}
-.twa-scream{background-image:url(https://twemoji.maxcdn.com/svg/1f631.svg)}
-.twa-tired-face{background-image:url(https://twemoji.maxcdn.com/svg/1f62b.svg)}
-.twa-angry{background-image:url(https://twemoji.maxcdn.com/svg/1f620.svg)}
-.twa-rage{background-image:url(https://twemoji.maxcdn.com/svg/1f621.svg)}
-.twa-triumph{background-image:url(https://twemoji.maxcdn.com/svg/1f624.svg)}
-.twa-sleepy{background-image:url(https://twemoji.maxcdn.com/svg/1f62a.svg)}
-.twa-yum{background-image:url(https://twemoji.maxcdn.com/svg/1f60b.svg)}
-.twa-mask{background-image:url(https://twemoji.maxcdn.com/svg/1f637.svg)}
-.twa-sunglasses{background-image:url(https://twemoji.maxcdn.com/svg/1f60e.svg)}
-.twa-dizzy-face{background-image:url(https://twemoji.maxcdn.com/svg/1f635.svg)}
-.twa-imp{background-image:url(https://twemoji.maxcdn.com/svg/1f47f.svg)}
-.twa-smiling-imp{background-image:url(https://twemoji.maxcdn.com/svg/1f608.svg)}
-.twa-neutral-face{background-image:url(https://twemoji.maxcdn.com/svg/1f610.svg)}
-.twa-no-mouth{background-image:url(https://twemoji.maxcdn.com/svg/1f636.svg)}
-.twa-innocent{background-image:url(https://twemoji.maxcdn.com/svg/1f607.svg)}
-.twa-alien{background-image:url(https://twemoji.maxcdn.com/svg/1f47d.svg)}
-.twa-yellow-heart{background-image:url(https://twemoji.maxcdn.com/svg/1f49b.svg)}
-.twa-blue-heart{background-image:url(https://twemoji.maxcdn.com/svg/1f499.svg)}
-.twa-purple-heart{background-image:url(https://twemoji.maxcdn.com/svg/1f49c.svg)}
-.twa-heart{background-image:url(https://twemoji.maxcdn.com/svg/2764.svg)}
-.twa-green-heart{background-image:url(https://twemoji.maxcdn.com/svg/1f49a.svg)}
-.twa-broken-heart{background-image:url(https://twemoji.maxcdn.com/svg/1f494.svg)}
-.twa-heartbeat{background-image:url(https://twemoji.maxcdn.com/svg/1f493.svg)}
-.twa-heartpulse{background-image:url(https://twemoji.maxcdn.com/svg/1f497.svg)}
-.twa-two-hearts{background-image:url(https://twemoji.maxcdn.com/svg/1f495.svg)}
-.twa-revolving-hearts{background-image:url(https://twemoji.maxcdn.com/svg/1f49e.svg)}
-.twa-cupid{background-image:url(https://twemoji.maxcdn.com/svg/1f498.svg)}
-.twa-sparkling-heart{background-image:url(https://twemoji.maxcdn.com/svg/1f496.svg)}
-.twa-sparkles{background-image:url(https://twemoji.maxcdn.com/svg/2728.svg)}
-.twa-star{background-image:url(https://twemoji.maxcdn.com/svg/2b50.svg)}
-.twa-star2{background-image:url(https://twemoji.maxcdn.com/svg/1f31f.svg)}
-.twa-dizzy{background-image:url(https://twemoji.maxcdn.com/svg/1f4ab.svg)}
-.twa-boom{background-image:url(https://twemoji.maxcdn.com/svg/1f4a5.svg)}
-.twa-anger{background-image:url(https://twemoji.maxcdn.com/svg/1f4a2.svg)}
-.twa-exclamation{background-image:url(https://twemoji.maxcdn.com/svg/2757.svg)}
-.twa-question{background-image:url(https://twemoji.maxcdn.com/svg/2753.svg)}
-.twa-grey-exclamation{background-image:url(https://twemoji.maxcdn.com/svg/2755.svg)}
-.twa-grey-question{background-image:url(https://twemoji.maxcdn.com/svg/2754.svg)}
-.twa-zzz{background-image:url(https://twemoji.maxcdn.com/svg/1f4a4.svg)}
-.twa-dash{background-image:url(https://twemoji.maxcdn.com/svg/1f4a8.svg)}
-.twa-sweat-drops{background-image:url(https://twemoji.maxcdn.com/svg/1f4a6.svg)}
-.twa-notes{background-image:url(https://twemoji.maxcdn.com/svg/1f3b6.svg)}
-.twa-musical-note{background-image:url(https://twemoji.maxcdn.com/svg/1f3b5.svg)}
-.twa-fire{background-image:url(https://twemoji.maxcdn.com/svg/1f525.svg)}
-.twa-poop{background-image:url(https://twemoji.maxcdn.com/svg/1f4a9.svg)}
-.twa-thumbsup{background-image:url(https://twemoji.maxcdn.com/svg/1f44d.svg)}
-.twa-thumbsdown{background-image:url(https://twemoji.maxcdn.com/svg/1f44e.svg)}
-.twa-ok-hand{background-image:url(https://twemoji.maxcdn.com/svg/1f44c.svg)}
-.twa-punch{background-image:url(https://twemoji.maxcdn.com/svg/1f44a.svg)}
-.twa-fist{background-image:url(https://twemoji.maxcdn.com/svg/270a.svg)}
-.twa-v{background-image:url(https://twemoji.maxcdn.com/svg/270c.svg)}
-.twa-wave{background-image:url(https://twemoji.maxcdn.com/svg/1f44b.svg)}
-.twa-hand{background-image:url(https://twemoji.maxcdn.com/svg/270b.svg)}
-.twa-open-hands{background-image:url(https://twemoji.maxcdn.com/svg/1f450.svg)}
-.twa-point-up{background-image:url(https://twemoji.maxcdn.com/svg/261d.svg)}
-.twa-point-down{background-image:url(https://twemoji.maxcdn.com/svg/1f447.svg)}
-.twa-point-left{background-image:url(https://twemoji.maxcdn.com/svg/1f448.svg)}
-.twa-point-right{background-image:url(https://twemoji.maxcdn.com/svg/1f449.svg)}
-.twa-raised-hands{background-image:url(https://twemoji.maxcdn.com/svg/1f64c.svg)}
-.twa-pray{background-image:url(https://twemoji.maxcdn.com/svg/1f64f.svg)}
-.twa-point-up-2{background-image:url(https://twemoji.maxcdn.com/svg/1f446.svg)}
-.twa-clap{background-image:url(https://twemoji.maxcdn.com/svg/1f44f.svg)}
-.twa-muscle{background-image:url(https://twemoji.maxcdn.com/svg/1f4aa.svg)}
-.twa-walking{background-image:url(https://twemoji.maxcdn.com/svg/1f6b6.svg)}
-.twa-runner{background-image:url(https://twemoji.maxcdn.com/svg/1f3c3.svg)}
-.twa-couple{background-image:url(https://twemoji.maxcdn.com/svg/1f46b.svg)}
-.twa-family{background-image:url(https://twemoji.maxcdn.com/svg/1f46a.svg)}
-.twa-two-men-holding-hands{background-image:url(https://twemoji.maxcdn.com/svg/1f46c.svg)}
-.twa-two-women-holding-hands{background-image:url(https://twemoji.maxcdn.com/svg/1f46d.svg)}
-.twa-dancer{background-image:url(https://twemoji.maxcdn.com/svg/1f483.svg)}
-.twa-dancers{background-image:url(https://twemoji.maxcdn.com/svg/1f46f.svg)}
-.twa-ok-woman{background-image:url(https://twemoji.maxcdn.com/svg/1f646.svg)}
-.twa-no-good{background-image:url(https://twemoji.maxcdn.com/svg/1f645.svg)}
-.twa-information-desk-person{background-image:url(https://twemoji.maxcdn.com/svg/1f481.svg)}
-.twa-raised-hand{background-image:url(https://twemoji.maxcdn.com/svg/1f64b.svg)}
-.twa-bride-with-veil{background-image:url(https://twemoji.maxcdn.com/svg/1f470.svg)}
-.twa-person-with-pouting-face{background-image:url(https://twemoji.maxcdn.com/svg/1f64e.svg)}
-.twa-person-frowning{background-image:url(https://twemoji.maxcdn.com/svg/1f64d.svg)}
-.twa-bow{background-image:url(https://twemoji.maxcdn.com/svg/1f647.svg)}
-.twa-couplekiss{background-image:url(https://twemoji.maxcdn.com/svg/1f48f.svg)}
-.twa-couple-with-heart{background-image:url(https://twemoji.maxcdn.com/svg/1f491.svg)}
-.twa-massage{background-image:url(https://twemoji.maxcdn.com/svg/1f486.svg)}
-.twa-haircut{background-image:url(https://twemoji.maxcdn.com/svg/1f487.svg)}
-.twa-nail-care{background-image:url(https://twemoji.maxcdn.com/svg/1f485.svg)}
-.twa-boy{background-image:url(https://twemoji.maxcdn.com/svg/1f466.svg)}
-.twa-girl{background-image:url(https://twemoji.maxcdn.com/svg/1f467.svg)}
-.twa-woman{background-image:url(https://twemoji.maxcdn.com/svg/1f469.svg)}
-.twa-man{background-image:url(https://twemoji.maxcdn.com/svg/1f468.svg)}
-.twa-baby{background-image:url(https://twemoji.maxcdn.com/svg/1f476.svg)}
-.twa-older-woman{background-image:url(https://twemoji.maxcdn.com/svg/1f475.svg)}
-.twa-older-man{background-image:url(https://twemoji.maxcdn.com/svg/1f474.svg)}
-.twa-person-with-blond-hair{background-image:url(https://twemoji.maxcdn.com/svg/1f471.svg)}
-.twa-man-with-gua-pi-mao{background-image:url(https://twemoji.maxcdn.com/svg/1f472.svg)}
-.twa-man-with-turban{background-image:url(https://twemoji.maxcdn.com/svg/1f473.svg)}
-.twa-construction-worker{background-image:url(https://twemoji.maxcdn.com/svg/1f477.svg)}
-.twa-cop{background-image:url(https://twemoji.maxcdn.com/svg/1f46e.svg)}
-.twa-angel{background-image:url(https://twemoji.maxcdn.com/svg/1f47c.svg)}
-.twa-princess{background-image:url(https://twemoji.maxcdn.com/svg/1f478.svg)}
-.twa-smiley-cat{background-image:url(https://twemoji.maxcdn.com/svg/1f63a.svg)}
-.twa-smile-cat{background-image:url(https://twemoji.maxcdn.com/svg/1f638.svg)}
-.twa-heart-eyes-cat{background-image:url(https://twemoji.maxcdn.com/svg/1f63b.svg)}
-.twa-kissing-cat{background-image:url(https://twemoji.maxcdn.com/svg/1f63d.svg)}
-.twa-smirk-cat{background-image:url(https://twemoji.maxcdn.com/svg/1f63c.svg)}
-.twa-scream-cat{background-image:url(https://twemoji.maxcdn.com/svg/1f640.svg)}
-.twa-crying-cat-face{background-image:url(https://twemoji.maxcdn.com/svg/1f63f.svg)}
-.twa-joy-cat{background-image:url(https://twemoji.maxcdn.com/svg/1f639.svg)}
-.twa-pouting-cat{background-image:url(https://twemoji.maxcdn.com/svg/1f63e.svg)}
-.twa-japanese-ogre{background-image:url(https://twemoji.maxcdn.com/svg/1f479.svg)}
-.twa-japanese-goblin{background-image:url(https://twemoji.maxcdn.com/svg/1f47a.svg)}
-.twa-see-no-evil{background-image:url(https://twemoji.maxcdn.com/svg/1f648.svg)}
-.twa-hear-no-evil{background-image:url(https://twemoji.maxcdn.com/svg/1f649.svg)}
-.twa-speak-no-evil{background-image:url(https://twemoji.maxcdn.com/svg/1f64a.svg)}
-.twa-guardsman{background-image:url(https://twemoji.maxcdn.com/svg/1f482.svg)}
-.twa-skull{background-image:url(https://twemoji.maxcdn.com/svg/1f480.svg)}
-.twa-feet{background-image:url(https://twemoji.maxcdn.com/svg/1f463.svg)}
-.twa-lips{background-image:url(https://twemoji.maxcdn.com/svg/1f444.svg)}
-.twa-kiss{background-image:url(https://twemoji.maxcdn.com/svg/1f48b.svg)}
-.twa-droplet{background-image:url(https://twemoji.maxcdn.com/svg/1f4a7.svg)}
-.twa-ear{background-image:url(https://twemoji.maxcdn.com/svg/1f442.svg)}
-.twa-eyes{background-image:url(https://twemoji.maxcdn.com/svg/1f440.svg)}
-.twa-nose{background-image:url(https://twemoji.maxcdn.com/svg/1f443.svg)}
-.twa-tongue{background-image:url(https://twemoji.maxcdn.com/svg/1f445.svg)}
-.twa-love-letter{background-image:url(https://twemoji.maxcdn.com/svg/1f48c.svg)}
-.twa-bust-in-silhouette{background-image:url(https://twemoji.maxcdn.com/svg/1f464.svg)}
-.twa-busts-in-silhouette{background-image:url(https://twemoji.maxcdn.com/svg/1f465.svg)}
-.twa-speech-balloon{background-image:url(https://twemoji.maxcdn.com/svg/1f4ac.svg)}
-.twa-thought-balloon{background-image:url(https://twemoji.maxcdn.com/svg/1f4ad.svg)}
-.twa-sunny{background-image:url(https://twemoji.maxcdn.com/svg/2600.svg)}
-.twa-umbrella{background-image:url(https://twemoji.maxcdn.com/svg/2614.svg)}
-.twa-cloud{background-image:url(https://twemoji.maxcdn.com/svg/2601.svg)}
-.twa-snowflake{background-image:url(https://twemoji.maxcdn.com/svg/2744.svg)}
-.twa-snowman{background-image:url(https://twemoji.maxcdn.com/svg/26c4.svg)}
-.twa-zap{background-image:url(https://twemoji.maxcdn.com/svg/26a1.svg)}
-.twa-cyclone{background-image:url(https://twemoji.maxcdn.com/svg/1f300.svg)}
-.twa-foggy{background-image:url(https://twemoji.maxcdn.com/svg/1f301.svg)}
-.twa-ocean{background-image:url(https://twemoji.maxcdn.com/svg/1f30a.svg)}
-.twa-cat{background-image:url(https://twemoji.maxcdn.com/svg/1f431.svg)}
-.twa-dog{background-image:url(https://twemoji.maxcdn.com/svg/1f436.svg)}
-.twa-mouse{background-image:url(https://twemoji.maxcdn.com/svg/1f42d.svg)}
-.twa-hamster{background-image:url(https://twemoji.maxcdn.com/svg/1f439.svg)}
-.twa-rabbit{background-image:url(https://twemoji.maxcdn.com/svg/1f430.svg)}
-.twa-wolf{background-image:url(https://twemoji.maxcdn.com/svg/1f43a.svg)}
-.twa-frog{background-image:url(https://twemoji.maxcdn.com/svg/1f438.svg)}
-.twa-tiger{background-image:url(https://twemoji.maxcdn.com/svg/1f42f.svg)}
-.twa-koala{background-image:url(https://twemoji.maxcdn.com/svg/1f428.svg)}
-.twa-bear{background-image:url(https://twemoji.maxcdn.com/svg/1f43b.svg)}
-.twa-pig{background-image:url(https://twemoji.maxcdn.com/svg/1f437.svg)}
-.twa-pig-nose{background-image:url(https://twemoji.maxcdn.com/svg/1f43d.svg)}
-.twa-cow{background-image:url(https://twemoji.maxcdn.com/svg/1f42e.svg)}
-.twa-boar{background-image:url(https://twemoji.maxcdn.com/svg/1f417.svg)}
-.twa-monkey-face{background-image:url(https://twemoji.maxcdn.com/svg/1f435.svg)}
-.twa-monkey{background-image:url(https://twemoji.maxcdn.com/svg/1f412.svg)}
-.twa-horse{background-image:url(https://twemoji.maxcdn.com/svg/1f434.svg)}
-.twa-racehorse{background-image:url(https://twemoji.maxcdn.com/svg/1f40e.svg)}
-.twa-camel{background-image:url(https://twemoji.maxcdn.com/svg/1f42b.svg)}
-.twa-sheep{background-image:url(https://twemoji.maxcdn.com/svg/1f411.svg)}
-.twa-elephant{background-image:url(https://twemoji.maxcdn.com/svg/1f418.svg)}
-.twa-panda-face{background-image:url(https://twemoji.maxcdn.com/svg/1f43c.svg)}
-.twa-snake{background-image:url(https://twemoji.maxcdn.com/svg/1f40d.svg)}
-.twa-bird{background-image:url(https://twemoji.maxcdn.com/svg/1f426.svg)}
-.twa-baby-chick{background-image:url(https://twemoji.maxcdn.com/svg/1f424.svg)}
-.twa-hatched-chick{background-image:url(https://twemoji.maxcdn.com/svg/1f425.svg)}
-.twa-hatching-chick{background-image:url(https://twemoji.maxcdn.com/svg/1f423.svg)}
-.twa-chicken{background-image:url(https://twemoji.maxcdn.com/svg/1f414.svg)}
-.twa-penguin{background-image:url(https://twemoji.maxcdn.com/svg/1f427.svg)}
-.twa-turtle{background-image:url(https://twemoji.maxcdn.com/svg/1f422.svg)}
-.twa-bug{background-image:url(https://twemoji.maxcdn.com/svg/1f41b.svg)}
-.twa-honeybee{background-image:url(https://twemoji.maxcdn.com/svg/1f41d.svg)}
-.twa-ant{background-image:url(https://twemoji.maxcdn.com/svg/1f41c.svg)}
-.twa-beetle{background-image:url(https://twemoji.maxcdn.com/svg/1f41e.svg)}
-.twa-snail{background-image:url(https://twemoji.maxcdn.com/svg/1f40c.svg)}
-.twa-octopus{background-image:url(https://twemoji.maxcdn.com/svg/1f419.svg)}
-.twa-tropical-fish{background-image:url(https://twemoji.maxcdn.com/svg/1f420.svg)}
-.twa-fish{background-image:url(https://twemoji.maxcdn.com/svg/1f41f.svg)}
-.twa-whale{background-image:url(https://twemoji.maxcdn.com/svg/1f433.svg)}
-.twa-whale2{background-image:url(https://twemoji.maxcdn.com/svg/1f40b.svg)}
-.twa-dolphin{background-image:url(https://twemoji.maxcdn.com/svg/1f42c.svg)}
-.twa-cow2{background-image:url(https://twemoji.maxcdn.com/svg/1f404.svg)}
-.twa-ram{background-image:url(https://twemoji.maxcdn.com/svg/1f40f.svg)}
-.twa-rat{background-image:url(https://twemoji.maxcdn.com/svg/1f400.svg)}
-.twa-water-buffalo{background-image:url(https://twemoji.maxcdn.com/svg/1f403.svg)}
-.twa-tiger2{background-image:url(https://twemoji.maxcdn.com/svg/1f405.svg)}
-.twa-rabbit2{background-image:url(https://twemoji.maxcdn.com/svg/1f407.svg)}
-.twa-dragon{background-image:url(https://twemoji.maxcdn.com/svg/1f409.svg)}
-.twa-goat{background-image:url(https://twemoji.maxcdn.com/svg/1f410.svg)}
-.twa-rooster{background-image:url(https://twemoji.maxcdn.com/svg/1f413.svg)}
-.twa-dog2{background-image:url(https://twemoji.maxcdn.com/svg/1f415.svg)}
-.twa-pig2{background-image:url(https://twemoji.maxcdn.com/svg/1f416.svg)}
-.twa-mouse2{background-image:url(https://twemoji.maxcdn.com/svg/1f401.svg)}
-.twa-ox{background-image:url(https://twemoji.maxcdn.com/svg/1f402.svg)}
-.twa-dragon-face{background-image:url(https://twemoji.maxcdn.com/svg/1f432.svg)}
-.twa-blowfish{background-image:url(https://twemoji.maxcdn.com/svg/1f421.svg)}
-.twa-crocodile{background-image:url(https://twemoji.maxcdn.com/svg/1f40a.svg)}
-.twa-dromedary-camel{background-image:url(https://twemoji.maxcdn.com/svg/1f42a.svg)}
-.twa-leopard{background-image:url(https://twemoji.maxcdn.com/svg/1f406.svg)}
-.twa-cat2{background-image:url(https://twemoji.maxcdn.com/svg/1f408.svg)}
-.twa-poodle{background-image:url(https://twemoji.maxcdn.com/svg/1f429.svg)}
-.twa-paw-prints{background-image:url(https://twemoji.maxcdn.com/svg/1f43e.svg)}
-.twa-bouquet{background-image:url(https://twemoji.maxcdn.com/svg/1f490.svg)}
-.twa-cherry-blossom{background-image:url(https://twemoji.maxcdn.com/svg/1f338.svg)}
-.twa-tulip{background-image:url(https://twemoji.maxcdn.com/svg/1f337.svg)}
-.twa-four-leaf-clover{background-image:url(https://twemoji.maxcdn.com/svg/1f340.svg)}
-.twa-rose{background-image:url(https://twemoji.maxcdn.com/svg/1f339.svg)}
-.twa-sunflower{background-image:url(https://twemoji.maxcdn.com/svg/1f33b.svg)}
-.twa-hibiscus{background-image:url(https://twemoji.maxcdn.com/svg/1f33a.svg)}
-.twa-maple-leaf{background-image:url(https://twemoji.maxcdn.com/svg/1f341.svg)}
-.twa-leaves{background-image:url(https://twemoji.maxcdn.com/svg/1f343.svg)}
-.twa-fallen-leaf{background-image:url(https://twemoji.maxcdn.com/svg/1f342.svg)}
-.twa-herb{background-image:url(https://twemoji.maxcdn.com/svg/1f33f.svg)}
-.twa-mushroom{background-image:url(https://twemoji.maxcdn.com/svg/1f344.svg)}
-.twa-cactus{background-image:url(https://twemoji.maxcdn.com/svg/1f335.svg)}
-.twa-palm-tree{background-image:url(https://twemoji.maxcdn.com/svg/1f334.svg)}
-.twa-evergreen-tree{background-image:url(https://twemoji.maxcdn.com/svg/1f332.svg)}
-.twa-deciduous-tree{background-image:url(https://twemoji.maxcdn.com/svg/1f333.svg)}
-.twa-chestnut{background-image:url(https://twemoji.maxcdn.com/svg/1f330.svg)}
-.twa-seedling{background-image:url(https://twemoji.maxcdn.com/svg/1f331.svg)}
-.twa-blossom{background-image:url(https://twemoji.maxcdn.com/svg/1f33c.svg)}
-.twa-ear-of-rice{background-image:url(https://twemoji.maxcdn.com/svg/1f33e.svg)}
-.twa-shell{background-image:url(https://twemoji.maxcdn.com/svg/1f41a.svg)}
-.twa-globe-with-meridians{background-image:url(https://twemoji.maxcdn.com/svg/1f310.svg)}
-.twa-sun-with-face{background-image:url(https://twemoji.maxcdn.com/svg/1f31e.svg)}
-.twa-full-moon-with-face{background-image:url(https://twemoji.maxcdn.com/svg/1f31d.svg)}
-.twa-new-moon-with-face{background-image:url(https://twemoji.maxcdn.com/svg/1f31a.svg)}
-.twa-new-moon{background-image:url(https://twemoji.maxcdn.com/svg/1f311.svg)}
-.twa-waxing-crescent-moon{background-image:url(https://twemoji.maxcdn.com/svg/1f312.svg)}
-.twa-first-quarter-moon{background-image:url(https://twemoji.maxcdn.com/svg/1f313.svg)}
-.twa-waxing-gibbous-moon{background-image:url(https://twemoji.maxcdn.com/svg/1f314.svg)}
-.twa-full-moon{background-image:url(https://twemoji.maxcdn.com/svg/1f315.svg)}
-.twa-waning-gibbous-moon{background-image:url(https://twemoji.maxcdn.com/svg/1f316.svg)}
-.twa-last-quarter-moon{background-image:url(https://twemoji.maxcdn.com/svg/1f317.svg)}
-.twa-waning-crescent-moon{background-image:url(https://twemoji.maxcdn.com/svg/1f318.svg)}
-.twa-last-quarter-moon-with-face{background-image:url(https://twemoji.maxcdn.com/svg/1f31c.svg)}
-.twa-first-quarter-moon-with-face{background-image:url(https://twemoji.maxcdn.com/svg/1f31b.svg)}
-.twa-moon{background-image:url(https://twemoji.maxcdn.com/svg/1f319.svg)}
-.twa-earth-africa{background-image:url(https://twemoji.maxcdn.com/svg/1f30d.svg)}
-.twa-earth-americas{background-image:url(https://twemoji.maxcdn.com/svg/1f30e.svg)}
-.twa-earth-asia{background-image:url(https://twemoji.maxcdn.com/svg/1f30f.svg)}
-.twa-volcano{background-image:url(https://twemoji.maxcdn.com/svg/1f30b.svg)}
-.twa-milky-way{background-image:url(https://twemoji.maxcdn.com/svg/1f30c.svg)}
-.twa-partly-sunny{background-image:url(https://twemoji.maxcdn.com/svg/26c5.svg)}
-.twa-bamboo{background-image:url(https://twemoji.maxcdn.com/svg/1f38d.svg)}
-.twa-gift-heart{background-image:url(https://twemoji.maxcdn.com/svg/1f49d.svg)}
-.twa-dolls{background-image:url(https://twemoji.maxcdn.com/svg/1f38e.svg)}
-.twa-school-satchel{background-image:url(https://twemoji.maxcdn.com/svg/1f392.svg)}
-.twa-mortar-board{background-image:url(https://twemoji.maxcdn.com/svg/1f393.svg)}
-.twa-flags{background-image:url(https://twemoji.maxcdn.com/svg/1f38f.svg)}
-.twa-fireworks{background-image:url(https://twemoji.maxcdn.com/svg/1f386.svg)}
-.twa-sparkler{background-image:url(https://twemoji.maxcdn.com/svg/1f387.svg)}
-.twa-wind-chime{background-image:url(https://twemoji.maxcdn.com/svg/1f390.svg)}
-.twa-rice-scene{background-image:url(https://twemoji.maxcdn.com/svg/1f391.svg)}
-.twa-jack-o-lantern{background-image:url(https://twemoji.maxcdn.com/svg/1f383.svg)}
-.twa-ghost{background-image:url(https://twemoji.maxcdn.com/svg/1f47b.svg)}
-.twa-santa{background-image:url(https://twemoji.maxcdn.com/svg/1f385.svg)}
-.twa-8ball{background-image:url(https://twemoji.maxcdn.com/svg/1f3b1.svg)}
-.twa-alarm-clock{background-image:url(https://twemoji.maxcdn.com/svg/23f0.svg)}
-.twa-apple{background-image:url(https://twemoji.maxcdn.com/svg/1f34e.svg)}
-.twa-art{background-image:url(https://twemoji.maxcdn.com/svg/1f3a8.svg)}
-.twa-baby-bottle{background-image:url(https://twemoji.maxcdn.com/svg/1f37c.svg)}
-.twa-balloon{background-image:url(https://twemoji.maxcdn.com/svg/1f388.svg)}
-.twa-banana{background-image:url(https://twemoji.maxcdn.com/svg/1f34c.svg)}
-.twa-bar-chart{background-image:url(https://twemoji.maxcdn.com/svg/1f4ca.svg)}
-.twa-baseball{background-image:url(https://twemoji.maxcdn.com/svg/26be.svg)}
-.twa-basketball{background-image:url(https://twemoji.maxcdn.com/svg/1f3c0.svg)}
-.twa-bath{background-image:url(https://twemoji.maxcdn.com/svg/1f6c0.svg)}
-.twa-bathtub{background-image:url(https://twemoji.maxcdn.com/svg/1f6c1.svg)}
-.twa-battery{background-image:url(https://twemoji.maxcdn.com/svg/1f50b.svg)}
-.twa-beer{background-image:url(https://twemoji.maxcdn.com/svg/1f37a.svg)}
-.twa-beers{background-image:url(https://twemoji.maxcdn.com/svg/1f37b.svg)}
-.twa-bell{background-image:url(https://twemoji.maxcdn.com/svg/1f514.svg)}
-.twa-bento{background-image:url(https://twemoji.maxcdn.com/svg/1f371.svg)}
-.twa-bicyclist{background-image:url(https://twemoji.maxcdn.com/svg/1f6b4.svg)}
-.twa-bikini{background-image:url(https://twemoji.maxcdn.com/svg/1f459.svg)}
-.twa-birthday{background-image:url(https://twemoji.maxcdn.com/svg/1f382.svg)}
-.twa-black-joker{background-image:url(https://twemoji.maxcdn.com/svg/1f0cf.svg)}
-.twa-black-nib{background-image:url(https://twemoji.maxcdn.com/svg/2712.svg)}
-.twa-blue-book{background-image:url(https://twemoji.maxcdn.com/svg/1f4d8.svg)}
-.twa-bomb{background-image:url(https://twemoji.maxcdn.com/svg/1f4a3.svg)}
-.twa-bookmark{background-image:url(https://twemoji.maxcdn.com/svg/1f516.svg)}
-.twa-bookmark-tabs{background-image:url(https://twemoji.maxcdn.com/svg/1f4d1.svg)}
-.twa-books{background-image:url(https://twemoji.maxcdn.com/svg/1f4da.svg)}
-.twa-boot{background-image:url(https://twemoji.maxcdn.com/svg/1f462.svg)}
-.twa-bowling{background-image:url(https://twemoji.maxcdn.com/svg/1f3b3.svg)}
-.twa-bread{background-image:url(https://twemoji.maxcdn.com/svg/1f35e.svg)}
-.twa-briefcase{background-image:url(https://twemoji.maxcdn.com/svg/1f4bc.svg)}
-.twa-bulb{background-image:url(https://twemoji.maxcdn.com/svg/1f4a1.svg)}
-.twa-cake{background-image:url(https://twemoji.maxcdn.com/svg/1f370.svg)}
-.twa-calendar{background-image:url(https://twemoji.maxcdn.com/svg/1f4c6.svg)}
-.twa-calling{background-image:url(https://twemoji.maxcdn.com/svg/1f4f2.svg)}
-.twa-camera{background-image:url(https://twemoji.maxcdn.com/svg/1f4f7.svg)}
-.twa-candy{background-image:url(https://twemoji.maxcdn.com/svg/1f36c.svg)}
-.twa-card-index{background-image:url(https://twemoji.maxcdn.com/svg/1f4c7.svg)}
-.twa-cd{background-image:url(https://twemoji.maxcdn.com/svg/1f4bf.svg)}
-.twa-chart-with-downwards-trend{background-image:url(https://twemoji.maxcdn.com/svg/1f4c9.svg)}
-.twa-chart-with-upwards-trend{background-image:url(https://twemoji.maxcdn.com/svg/1f4c8.svg)}
-.twa-cherries{background-image:url(https://twemoji.maxcdn.com/svg/1f352.svg)}
-.twa-chocolate-bar{background-image:url(https://twemoji.maxcdn.com/svg/1f36b.svg)}
-.twa-christmas-tree{background-image:url(https://twemoji.maxcdn.com/svg/1f384.svg)}
-.twa-clapper{background-image:url(https://twemoji.maxcdn.com/svg/1f3ac.svg)}
-.twa-clipboard{background-image:url(https://twemoji.maxcdn.com/svg/1f4cb.svg)}
-.twa-closed-book{background-image:url(https://twemoji.maxcdn.com/svg/1f4d5.svg)}
-.twa-closed-lock-with-key{background-image:url(https://twemoji.maxcdn.com/svg/1f510.svg)}
-.twa-closed-umbrella{background-image:url(https://twemoji.maxcdn.com/svg/1f302.svg)}
-.twa-clubs{background-image:url(https://twemoji.maxcdn.com/svg/2663.svg)}
-.twa-cocktail{background-image:url(https://twemoji.maxcdn.com/svg/1f378.svg)}
-.twa-coffee{background-image:url(https://twemoji.maxcdn.com/svg/2615.svg)}
-.twa-computer{background-image:url(https://twemoji.maxcdn.com/svg/1f4bb.svg)}
-.twa-confetti-ball{background-image:url(https://twemoji.maxcdn.com/svg/1f38a.svg)}
-.twa-cookie{background-image:url(https://twemoji.maxcdn.com/svg/1f36a.svg)}
-.twa-corn{background-image:url(https://twemoji.maxcdn.com/svg/1f33d.svg)}
-.twa-credit-card{background-image:url(https://twemoji.maxcdn.com/svg/1f4b3.svg)}
-.twa-crown{background-image:url(https://twemoji.maxcdn.com/svg/1f451.svg)}
-.twa-crystal-ball{background-image:url(https://twemoji.maxcdn.com/svg/1f52e.svg)}
-.twa-curry{background-image:url(https://twemoji.maxcdn.com/svg/1f35b.svg)}
-.twa-custard{background-image:url(https://twemoji.maxcdn.com/svg/1f36e.svg)}
-.twa-dango{background-image:url(https://twemoji.maxcdn.com/svg/1f361.svg)}
-.twa-dart{background-image:url(https://twemoji.maxcdn.com/svg/1f3af.svg)}
-.twa-date{background-image:url(https://twemoji.maxcdn.com/svg/1f4c5.svg)}
-.twa-diamonds{background-image:url(https://twemoji.maxcdn.com/svg/2666.svg)}
-.twa-dollar{background-image:url(https://twemoji.maxcdn.com/svg/1f4b5.svg)}
-.twa-door{background-image:url(https://twemoji.maxcdn.com/svg/1f6aa.svg)}
-.twa-doughnut{background-image:url(https://twemoji.maxcdn.com/svg/1f369.svg)}
-.twa-dress{background-image:url(https://twemoji.maxcdn.com/svg/1f457.svg)}
-.twa-dvd{background-image:url(https://twemoji.maxcdn.com/svg/1f4c0.svg)}
-.twa-e-mail{background-image:url(https://twemoji.maxcdn.com/svg/1f4e7.svg)}
-.twa-egg{background-image:url(https://twemoji.maxcdn.com/svg/1f373.svg)}
-.twa-eggplant{background-image:url(https://twemoji.maxcdn.com/svg/1f346.svg)}
-.twa-electric-plug{background-image:url(https://twemoji.maxcdn.com/svg/1f50c.svg)}
-.twa-email{background-image:url(https://twemoji.maxcdn.com/svg/2709.svg)}
-.twa-euro{background-image:url(https://twemoji.maxcdn.com/svg/1f4b6.svg)}
-.twa-eyeglasses{background-image:url(https://twemoji.maxcdn.com/svg/1f453.svg)}
-.twa-fax{background-image:url(https://twemoji.maxcdn.com/svg/1f4e0.svg)}
-.twa-file-folder{background-image:url(https://twemoji.maxcdn.com/svg/1f4c1.svg)}
-.twa-fish-cake{background-image:url(https://twemoji.maxcdn.com/svg/1f365.svg)}
-.twa-fishing-pole-and-fish{background-image:url(https://twemoji.maxcdn.com/svg/1f3a3.svg)}
-.twa-flashlight{background-image:url(https://twemoji.maxcdn.com/svg/1f526.svg)}
-.twa-floppy-disk{background-image:url(https://twemoji.maxcdn.com/svg/1f4be.svg)}
-.twa-flower-playing-cards{background-image:url(https://twemoji.maxcdn.com/svg/1f3b4.svg)}
-.twa-football{background-image:url(https://twemoji.maxcdn.com/svg/1f3c8.svg)}
-.twa-fork-and-knife{background-image:url(https://twemoji.maxcdn.com/svg/1f374.svg)}
-.twa-fried-shrimp{background-image:url(https://twemoji.maxcdn.com/svg/1f364.svg)}
-.twa-fries{background-image:url(https://twemoji.maxcdn.com/svg/1f35f.svg)}
-.twa-game-die{background-image:url(https://twemoji.maxcdn.com/svg/1f3b2.svg)}
-.twa-gem{background-image:url(https://twemoji.maxcdn.com/svg/1f48e.svg)}
-.twa-gift{background-image:url(https://twemoji.maxcdn.com/svg/1f381.svg)}
-.twa-golf{background-image:url(https://twemoji.maxcdn.com/svg/26f3.svg)}
-.twa-grapes{background-image:url(https://twemoji.maxcdn.com/svg/1f347.svg)}
-.twa-green-apple{background-image:url(https://twemoji.maxcdn.com/svg/1f34f.svg)}
-.twa-green-book{background-image:url(https://twemoji.maxcdn.com/svg/1f4d7.svg)}
-.twa-guitar{background-image:url(https://twemoji.maxcdn.com/svg/1f3b8.svg)}
-.twa-gun{background-image:url(https://twemoji.maxcdn.com/svg/1f52b.svg)}
-.twa-hamburger{background-image:url(https://twemoji.maxcdn.com/svg/1f354.svg)}
-.twa-hammer{background-image:url(https://twemoji.maxcdn.com/svg/1f528.svg)}
-.twa-handbag{background-image:url(https://twemoji.maxcdn.com/svg/1f45c.svg)}
-.twa-headphones{background-image:url(https://twemoji.maxcdn.com/svg/1f3a7.svg)}
-.twa-hearts{background-image:url(https://twemoji.maxcdn.com/svg/2665.svg)}
-.twa-high-brightness{background-image:url(https://twemoji.maxcdn.com/svg/1f506.svg)}
-.twa-high-heel{background-image:url(https://twemoji.maxcdn.com/svg/1f460.svg)}
-.twa-hocho{background-image:url(https://twemoji.maxcdn.com/svg/1f52a.svg)}
-.twa-honey-pot{background-image:url(https://twemoji.maxcdn.com/svg/1f36f.svg)}
-.twa-horse-racing{background-image:url(https://twemoji.maxcdn.com/svg/1f3c7.svg)}
-.twa-hourglass{background-image:url(https://twemoji.maxcdn.com/svg/231b.svg)}
-.twa-hourglass-flowing-sand{background-image:url(https://twemoji.maxcdn.com/svg/23f3.svg)}
-.twa-ice-cream{background-image:url(https://twemoji.maxcdn.com/svg/1f368.svg)}
-.twa-icecream{background-image:url(https://twemoji.maxcdn.com/svg/1f366.svg)}
-.twa-inbox-tray{background-image:url(https://twemoji.maxcdn.com/svg/1f4e5.svg)}
-.twa-incoming-envelope{background-image:url(https://twemoji.maxcdn.com/svg/1f4e8.svg)}
-.twa-iphone{background-image:url(https://twemoji.maxcdn.com/svg/1f4f1.svg)}
-.twa-jeans{background-image:url(https://twemoji.maxcdn.com/svg/1f456.svg)}
-.twa-key{background-image:url(https://twemoji.maxcdn.com/svg/1f511.svg)}
-.twa-kimono{background-image:url(https://twemoji.maxcdn.com/svg/1f458.svg)}
-.twa-ledger{background-image:url(https://twemoji.maxcdn.com/svg/1f4d2.svg)}
-.twa-lemon{background-image:url(https://twemoji.maxcdn.com/svg/1f34b.svg)}
-.twa-lipstick{background-image:url(https://twemoji.maxcdn.com/svg/1f484.svg)}
-.twa-lock{background-image:url(https://twemoji.maxcdn.com/svg/1f512.svg)}
-.twa-lock-with-ink-pen{background-image:url(https://twemoji.maxcdn.com/svg/1f50f.svg)}
-.twa-lollipop{background-image:url(https://twemoji.maxcdn.com/svg/1f36d.svg)}
-.twa-loop{background-image:url(https://twemoji.maxcdn.com/svg/27bf.svg)}
-.twa-loudspeaker{background-image:url(https://twemoji.maxcdn.com/svg/1f4e2.svg)}
-.twa-low-brightness{background-image:url(https://twemoji.maxcdn.com/svg/1f505.svg)}
-.twa-mag{background-image:url(https://twemoji.maxcdn.com/svg/1f50d.svg)}
-.twa-mag-right{background-image:url(https://twemoji.maxcdn.com/svg/1f50e.svg)}
-.twa-mahjong{background-image:url(https://twemoji.maxcdn.com/svg/1f004.svg)}
-.twa-mailbox{background-image:url(https://twemoji.maxcdn.com/svg/1f4eb.svg)}
-.twa-mailbox-closed{background-image:url(https://twemoji.maxcdn.com/svg/1f4ea.svg)}
-.twa-mailbox-with-mail{background-image:url(https://twemoji.maxcdn.com/svg/1f4ec.svg)}
-.twa-mailbox-with-no-mail{background-image:url(https://twemoji.maxcdn.com/svg/1f4ed.svg)}
-.twa-mans-shoe{background-image:url(https://twemoji.maxcdn.com/svg/1f45e.svg)}
-.twa-meat-on-bone{background-image:url(https://twemoji.maxcdn.com/svg/1f356.svg)}
-.twa-mega{background-image:url(https://twemoji.maxcdn.com/svg/1f4e3.svg)}
-.twa-melon{background-image:url(https://twemoji.maxcdn.com/svg/1f348.svg)}
-.twa-memo{background-image:url(https://twemoji.maxcdn.com/svg/1f4dd.svg)}
-.twa-microphone{background-image:url(https://twemoji.maxcdn.com/svg/1f3a4.svg)}
-.twa-microscope{background-image:url(https://twemoji.maxcdn.com/svg/1f52c.svg)}
-.twa-minidisc{background-image:url(https://twemoji.maxcdn.com/svg/1f4bd.svg)}
-.twa-money-with-wings{background-image:url(https://twemoji.maxcdn.com/svg/1f4b8.svg)}
-.twa-moneybag{background-image:url(https://twemoji.maxcdn.com/svg/1f4b0.svg)}
-.twa-mountain-bicyclist{background-image:url(https://twemoji.maxcdn.com/svg/1f6b5.svg)}
-.twa-movie-camera{background-image:url(https://twemoji.maxcdn.com/svg/1f3a5.svg)}
-.twa-musical-keyboard{background-image:url(https://twemoji.maxcdn.com/svg/1f3b9.svg)}
-.twa-musical-score{background-image:url(https://twemoji.maxcdn.com/svg/1f3bc.svg)}
-.twa-mute{background-image:url(https://twemoji.maxcdn.com/svg/1f507.svg)}
-.twa-name-badge{background-image:url(https://twemoji.maxcdn.com/svg/1f4db.svg)}
-.twa-necktie{background-image:url(https://twemoji.maxcdn.com/svg/1f454.svg)}
-.twa-newspaper{background-image:url(https://twemoji.maxcdn.com/svg/1f4f0.svg)}
-.twa-no-bell{background-image:url(https://twemoji.maxcdn.com/svg/1f515.svg)}
-.twa-notebook{background-image:url(https://twemoji.maxcdn.com/svg/1f4d3.svg)}
-.twa-notebook-with-decorative-cover{background-image:url(https://twemoji.maxcdn.com/svg/1f4d4.svg)}
-.twa-nut-and-bolt{background-image:url(https://twemoji.maxcdn.com/svg/1f529.svg)}
-.twa-oden{background-image:url(https://twemoji.maxcdn.com/svg/1f362.svg)}
-.twa-open-file-folder{background-image:url(https://twemoji.maxcdn.com/svg/1f4c2.svg)}
-.twa-orange-book{background-image:url(https://twemoji.maxcdn.com/svg/1f4d9.svg)}
-.twa-outbox-tray{background-image:url(https://twemoji.maxcdn.com/svg/1f4e4.svg)}
-.twa-page-facing-up{background-image:url(https://twemoji.maxcdn.com/svg/1f4c4.svg)}
-.twa-page-with-curl{background-image:url(https://twemoji.maxcdn.com/svg/1f4c3.svg)}
-.twa-pager{background-image:url(https://twemoji.maxcdn.com/svg/1f4df.svg)}
-.twa-paperclip{background-image:url(https://twemoji.maxcdn.com/svg/1f4ce.svg)}
-.twa-peach{background-image:url(https://twemoji.maxcdn.com/svg/1f351.svg)}
-.twa-pear{background-image:url(https://twemoji.maxcdn.com/svg/1f350.svg)}
-.twa-pencil2{background-image:url(https://twemoji.maxcdn.com/svg/270f.svg)}
-.twa-phone{background-image:url(https://twemoji.maxcdn.com/svg/260e.svg)}
-.twa-pill{background-image:url(https://twemoji.maxcdn.com/svg/1f48a.svg)}
-.twa-pineapple{background-image:url(https://twemoji.maxcdn.com/svg/1f34d.svg)}
-.twa-pizza{background-image:url(https://twemoji.maxcdn.com/svg/1f355.svg)}
-.twa-postal-horn{background-image:url(https://twemoji.maxcdn.com/svg/1f4ef.svg)}
-.twa-postbox{background-image:url(https://twemoji.maxcdn.com/svg/1f4ee.svg)}
-.twa-pouch{background-image:url(https://twemoji.maxcdn.com/svg/1f45d.svg)}
-.twa-poultry-leg{background-image:url(https://twemoji.maxcdn.com/svg/1f357.svg)}
-.twa-pound{background-image:url(https://twemoji.maxcdn.com/svg/1f4b7.svg)}
-.twa-purse{background-image:url(https://twemoji.maxcdn.com/svg/1f45b.svg)}
-.twa-pushpin{background-image:url(https://twemoji.maxcdn.com/svg/1f4cc.svg)}
-.twa-radio{background-image:url(https://twemoji.maxcdn.com/svg/1f4fb.svg)}
-.twa-ramen{background-image:url(https://twemoji.maxcdn.com/svg/1f35c.svg)}
-.twa-ribbon{background-image:url(https://twemoji.maxcdn.com/svg/1f380.svg)}
-.twa-rice{background-image:url(https://twemoji.maxcdn.com/svg/1f35a.svg)}
-.twa-rice-ball{background-image:url(https://twemoji.maxcdn.com/svg/1f359.svg)}
-.twa-rice-cracker{background-image:url(https://twemoji.maxcdn.com/svg/1f358.svg)}
-.twa-ring{background-image:url(https://twemoji.maxcdn.com/svg/1f48d.svg)}
-.twa-rugby-football{background-image:url(https://twemoji.maxcdn.com/svg/1f3c9.svg)}
-.twa-running-shirt-with-sash{background-image:url(https://twemoji.maxcdn.com/svg/1f3bd.svg)}
-.twa-sake{background-image:url(https://twemoji.maxcdn.com/svg/1f376.svg)}
-.twa-sandal{background-image:url(https://twemoji.maxcdn.com/svg/1f461.svg)}
-.twa-satellite{background-image:url(https://twemoji.maxcdn.com/svg/1f4e1.svg)}
-.twa-saxophone{background-image:url(https://twemoji.maxcdn.com/svg/1f3b7.svg)}
-.twa-scissors{background-image:url(https://twemoji.maxcdn.com/svg/2702.svg)}
-.twa-scroll{background-image:url(https://twemoji.maxcdn.com/svg/1f4dc.svg)}
-.twa-seat{background-image:url(https://twemoji.maxcdn.com/svg/1f4ba.svg)}
-.twa-shaved-ice{background-image:url(https://twemoji.maxcdn.com/svg/1f367.svg)}
-.twa-shirt{background-image:url(https://twemoji.maxcdn.com/svg/1f455.svg)}
-.twa-shower{background-image:url(https://twemoji.maxcdn.com/svg/1f6bf.svg)}
-.twa-ski{background-image:url(https://twemoji.maxcdn.com/svg/1f3bf.svg)}
-.twa-smoking{background-image:url(https://twemoji.maxcdn.com/svg/1f6ac.svg)}
-.twa-snowboarder{background-image:url(https://twemoji.maxcdn.com/svg/1f3c2.svg)}
-.twa-soccer{background-image:url(https://twemoji.maxcdn.com/svg/26bd.svg)}
-.twa-sound{background-image:url(https://twemoji.maxcdn.com/svg/1f509.svg)}
-.twa-space-invader{background-image:url(https://twemoji.maxcdn.com/svg/1f47e.svg)}
-.twa-spades{background-image:url(https://twemoji.maxcdn.com/svg/2660.svg)}
-.twa-spaghetti{background-image:url(https://twemoji.maxcdn.com/svg/1f35d.svg)}
-.twa-speaker{background-image:url(https://twemoji.maxcdn.com/svg/1f50a.svg)}
-.twa-stew{background-image:url(https://twemoji.maxcdn.com/svg/1f372.svg)}
-.twa-straight-ruler{background-image:url(https://twemoji.maxcdn.com/svg/1f4cf.svg)}
-.twa-strawberry{background-image:url(https://twemoji.maxcdn.com/svg/1f353.svg)}
-.twa-surfer{background-image:url(https://twemoji.maxcdn.com/svg/1f3c4.svg)}
-.twa-sushi{background-image:url(https://twemoji.maxcdn.com/svg/1f363.svg)}
-.twa-sweet-potato{background-image:url(https://twemoji.maxcdn.com/svg/1f360.svg)}
-.twa-swimmer{background-image:url(https://twemoji.maxcdn.com/svg/1f3ca.svg)}
-.twa-syringe{background-image:url(https://twemoji.maxcdn.com/svg/1f489.svg)}
-.twa-tada{background-image:url(https://twemoji.maxcdn.com/svg/1f389.svg)}
-.twa-tanabata-tree{background-image:url(https://twemoji.maxcdn.com/svg/1f38b.svg)}
-.twa-tangerine{background-image:url(https://twemoji.maxcdn.com/svg/1f34a.svg)}
-.twa-tea{background-image:url(https://twemoji.maxcdn.com/svg/1f375.svg)}
-.twa-telephone-receiver{background-image:url(https://twemoji.maxcdn.com/svg/1f4de.svg)}
-.twa-telescope{background-image:url(https://twemoji.maxcdn.com/svg/1f52d.svg)}
-.twa-tennis{background-image:url(https://twemoji.maxcdn.com/svg/1f3be.svg)}
-.twa-toilet{background-image:url(https://twemoji.maxcdn.com/svg/1f6bd.svg)}
-.twa-tomato{background-image:url(https://twemoji.maxcdn.com/svg/1f345.svg)}
-.twa-tophat{background-image:url(https://twemoji.maxcdn.com/svg/1f3a9.svg)}
-.twa-triangular-ruler{background-image:url(https://twemoji.maxcdn.com/svg/1f4d0.svg)}
-.twa-trophy{background-image:url(https://twemoji.maxcdn.com/svg/1f3c6.svg)}
-.twa-tropical-drink{background-image:url(https://twemoji.maxcdn.com/svg/1f379.svg)}
-.twa-trumpet{background-image:url(https://twemoji.maxcdn.com/svg/1f3ba.svg)}
-.twa-tv{background-image:url(https://twemoji.maxcdn.com/svg/1f4fa.svg)}
-.twa-unlock{background-image:url(https://twemoji.maxcdn.com/svg/1f513.svg)}
-.twa-vhs{background-image:url(https://twemoji.maxcdn.com/svg/1f4fc.svg)}
-.twa-video-camera{background-image:url(https://twemoji.maxcdn.com/svg/1f4f9.svg)}
-.twa-video-game{background-image:url(https://twemoji.maxcdn.com/svg/1f3ae.svg)}
-.twa-violin{background-image:url(https://twemoji.maxcdn.com/svg/1f3bb.svg)}
-.twa-watch{background-image:url(https://twemoji.maxcdn.com/svg/231a.svg)}
-.twa-watermelon{background-image:url(https://twemoji.maxcdn.com/svg/1f349.svg)}
-.twa-wine-glass{background-image:url(https://twemoji.maxcdn.com/svg/1f377.svg)}
-.twa-womans-clothes{background-image:url(https://twemoji.maxcdn.com/svg/1f45a.svg)}
-.twa-womans-hat{background-image:url(https://twemoji.maxcdn.com/svg/1f452.svg)}
-.twa-wrench{background-image:url(https://twemoji.maxcdn.com/svg/1f527.svg)}
-.twa-yen{background-image:url(https://twemoji.maxcdn.com/svg/1f4b4.svg)}
-.twa-aerial-tramway{background-image:url(https://twemoji.maxcdn.com/svg/1f6a1.svg)}
-.twa-airplane{background-image:url(https://twemoji.maxcdn.com/svg/2708.svg)}
-.twa-ambulance{background-image:url(https://twemoji.maxcdn.com/svg/1f691.svg)}
-.twa-anchor{background-image:url(https://twemoji.maxcdn.com/svg/2693.svg)}
-.twa-articulated-lorry{background-image:url(https://twemoji.maxcdn.com/svg/1f69b.svg)}
-.twa-atm{background-image:url(https://twemoji.maxcdn.com/svg/1f3e7.svg)}
-.twa-bank{background-image:url(https://twemoji.maxcdn.com/svg/1f3e6.svg)}
-.twa-barber{background-image:url(https://twemoji.maxcdn.com/svg/1f488.svg)}
-.twa-beginner{background-image:url(https://twemoji.maxcdn.com/svg/1f530.svg)}
-.twa-bike{background-image:url(https://twemoji.maxcdn.com/svg/1f6b2.svg)}
-.twa-blue-car{background-image:url(https://twemoji.maxcdn.com/svg/1f699.svg)}
-.twa-boat{background-image:url(https://twemoji.maxcdn.com/svg/26f5.svg)}
-.twa-bridge-at-night{background-image:url(https://twemoji.maxcdn.com/svg/1f309.svg)}
-.twa-bullettrain-front{background-image:url(https://twemoji.maxcdn.com/svg/1f685.svg)}
-.twa-bullettrain-side{background-image:url(https://twemoji.maxcdn.com/svg/1f684.svg)}
-.twa-bus{background-image:url(https://twemoji.maxcdn.com/svg/1f68c.svg)}
-.twa-busstop{background-image:url(https://twemoji.maxcdn.com/svg/1f68f.svg)}
-.twa-car{background-image:url(https://twemoji.maxcdn.com/svg/1f697.svg)}
-.twa-carousel-horse{background-image:url(https://twemoji.maxcdn.com/svg/1f3a0.svg)}
-.twa-checkered-flag{background-image:url(https://twemoji.maxcdn.com/svg/1f3c1.svg)}
-.twa-church{background-image:url(https://twemoji.maxcdn.com/svg/26ea.svg)}
-.twa-circus-tent{background-image:url(https://twemoji.maxcdn.com/svg/1f3aa.svg)}
-.twa-city-sunrise{background-image:url(https://twemoji.maxcdn.com/svg/1f307.svg)}
-.twa-city-sunset{background-image:url(https://twemoji.maxcdn.com/svg/1f306.svg)}
-.twa-construction{background-image:url(https://twemoji.maxcdn.com/svg/1f6a7.svg)}
-.twa-convenience-store{background-image:url(https://twemoji.maxcdn.com/svg/1f3ea.svg)}
-.twa-crossed-flags{background-image:url(https://twemoji.maxcdn.com/svg/1f38c.svg)}
-.twa-department-store{background-image:url(https://twemoji.maxcdn.com/svg/1f3ec.svg)}
-.twa-european-castle{background-image:url(https://twemoji.maxcdn.com/svg/1f3f0.svg)}
-.twa-european-post-office{background-image:url(https://twemoji.maxcdn.com/svg/1f3e4.svg)}
-.twa-factory{background-image:url(https://twemoji.maxcdn.com/svg/1f3ed.svg)}
-.twa-ferris-wheel{background-image:url(https://twemoji.maxcdn.com/svg/1f3a1.svg)}
-.twa-fire-engine{background-image:url(https://twemoji.maxcdn.com/svg/1f692.svg)}
-.twa-fountain{background-image:url(https://twemoji.maxcdn.com/svg/26f2.svg)}
-.twa-fuelpump{background-image:url(https://twemoji.maxcdn.com/svg/26fd.svg)}
-.twa-helicopter{background-image:url(https://twemoji.maxcdn.com/svg/1f681.svg)}
-.twa-hospital{background-image:url(https://twemoji.maxcdn.com/svg/1f3e5.svg)}
-.twa-hotel{background-image:url(https://twemoji.maxcdn.com/svg/1f3e8.svg)}
-.twa-hotsprings{background-image:url(https://twemoji.maxcdn.com/svg/2668.svg)}
-.twa-house{background-image:url(https://twemoji.maxcdn.com/svg/1f3e0.svg)}
-.twa-house-with-garden{background-image:url(https://twemoji.maxcdn.com/svg/1f3e1.svg)}
-.twa-japan{background-image:url(https://twemoji.maxcdn.com/svg/1f5fe.svg)}
-.twa-japanese-castle{background-image:url(https://twemoji.maxcdn.com/svg/1f3ef.svg)}
-.twa-light-rail{background-image:url(https://twemoji.maxcdn.com/svg/1f688.svg)}
-.twa-love-hotel{background-image:url(https://twemoji.maxcdn.com/svg/1f3e9.svg)}
-.twa-minibus{background-image:url(https://twemoji.maxcdn.com/svg/1f690.svg)}
-.twa-monorail{background-image:url(https://twemoji.maxcdn.com/svg/1f69d.svg)}
-.twa-mount-fuji{background-image:url(https://twemoji.maxcdn.com/svg/1f5fb.svg)}
-.twa-mountain-cableway{background-image:url(https://twemoji.maxcdn.com/svg/1f6a0.svg)}
-.twa-mountain-railway{background-image:url(https://twemoji.maxcdn.com/svg/1f69e.svg)}
-.twa-moyai{background-image:url(https://twemoji.maxcdn.com/svg/1f5ff.svg)}
-.twa-office{background-image:url(https://twemoji.maxcdn.com/svg/1f3e2.svg)}
-.twa-oncoming-automobile{background-image:url(https://twemoji.maxcdn.com/svg/1f698.svg)}
-.twa-oncoming-bus{background-image:url(https://twemoji.maxcdn.com/svg/1f68d.svg)}
-.twa-oncoming-police-car{background-image:url(https://twemoji.maxcdn.com/svg/1f694.svg)}
-.twa-oncoming-taxi{background-image:url(https://twemoji.maxcdn.com/svg/1f696.svg)}
-.twa-performing-arts{background-image:url(https://twemoji.maxcdn.com/svg/1f3ad.svg)}
-.twa-police-car{background-image:url(https://twemoji.maxcdn.com/svg/1f693.svg)}
-.twa-post-office{background-image:url(https://twemoji.maxcdn.com/svg/1f3e3.svg)}
-.twa-railway-car{background-image:url(https://twemoji.maxcdn.com/svg/1f683.svg)}
-.twa-rainbow{background-image:url(https://twemoji.maxcdn.com/svg/1f308.svg)}
-.twa-rocket{background-image:url(https://twemoji.maxcdn.com/svg/1f680.svg)}
-.twa-roller-coaster{background-image:url(https://twemoji.maxcdn.com/svg/1f3a2.svg)}
-.twa-rotating-light{background-image:url(https://twemoji.maxcdn.com/svg/1f6a8.svg)}
-.twa-round-pushpin{background-image:url(https://twemoji.maxcdn.com/svg/1f4cd.svg)}
-.twa-rowboat{background-image:url(https://twemoji.maxcdn.com/svg/1f6a3.svg)}
-.twa-school{background-image:url(https://twemoji.maxcdn.com/svg/1f3eb.svg)}
-.twa-ship{background-image:url(https://twemoji.maxcdn.com/svg/1f6a2.svg)}
-.twa-slot-machine{background-image:url(https://twemoji.maxcdn.com/svg/1f3b0.svg)}
-.twa-speedboat{background-image:url(https://twemoji.maxcdn.com/svg/1f6a4.svg)}
-.twa-stars{background-image:url(https://twemoji.maxcdn.com/svg/1f303.svg)}
-.twa-station{background-image:url(https://twemoji.maxcdn.com/svg/1f689.svg)}
-.twa-statue-of-liberty{background-image:url(https://twemoji.maxcdn.com/svg/1f5fd.svg)}
-.twa-steam-locomotive{background-image:url(https://twemoji.maxcdn.com/svg/1f682.svg)}
-.twa-sunrise{background-image:url(https://twemoji.maxcdn.com/svg/1f305.svg)}
-.twa-sunrise-over-mountains{background-image:url(https://twemoji.maxcdn.com/svg/1f304.svg)}
-.twa-suspension-railway{background-image:url(https://twemoji.maxcdn.com/svg/1f69f.svg)}
-.twa-taxi{background-image:url(https://twemoji.maxcdn.com/svg/1f695.svg)}
-.twa-tent{background-image:url(https://twemoji.maxcdn.com/svg/26fa.svg)}
-.twa-ticket{background-image:url(https://twemoji.maxcdn.com/svg/1f3ab.svg)}
-.twa-tokyo-tower{background-image:url(https://twemoji.maxcdn.com/svg/1f5fc.svg)}
-.twa-tractor{background-image:url(https://twemoji.maxcdn.com/svg/1f69c.svg)}
-.twa-traffic-light{background-image:url(https://twemoji.maxcdn.com/svg/1f6a5.svg)}
-.twa-train2{background-image:url(https://twemoji.maxcdn.com/svg/1f686.svg)}
-.twa-tram{background-image:url(https://twemoji.maxcdn.com/svg/1f68a.svg)}
-.twa-triangular-flag-on-post{background-image:url(https://twemoji.maxcdn.com/svg/1f6a9.svg)}
-.twa-trolleybus{background-image:url(https://twemoji.maxcdn.com/svg/1f68e.svg)}
-.twa-truck{background-image:url(https://twemoji.maxcdn.com/svg/1f69a.svg)}
-.twa-vertical-traffic-light{background-image:url(https://twemoji.maxcdn.com/svg/1f6a6.svg)}
-.twa-warning{background-image:url(https://twemoji.maxcdn.com/svg/26a0.svg)}
-.twa-wedding{background-image:url(https://twemoji.maxcdn.com/svg/1f492.svg)}
-.twa-jp{background-image:url(https://twemoji.maxcdn.com/svg/1f1ef-1f1f5.svg)}
-.twa-kr{background-image:url(https://twemoji.maxcdn.com/svg/1f1f0-1f1f7.svg)}
-.twa-cn{background-image:url(https://twemoji.maxcdn.com/svg/1f1e8-1f1f3.svg)}
-.twa-us{background-image:url(https://twemoji.maxcdn.com/svg/1f1fa-1f1f8.svg)}
-.twa-fr{background-image:url(https://twemoji.maxcdn.com/svg/1f1eb-1f1f7.svg)}
-.twa-es{background-image:url(https://twemoji.maxcdn.com/svg/1f1ea-1f1f8.svg)}
-.twa-it{background-image:url(https://twemoji.maxcdn.com/svg/1f1ee-1f1f9.svg)}
-.twa-ru{background-image:url(https://twemoji.maxcdn.com/svg/1f1f7-1f1fa.svg)}
-.twa-gb{background-image:url(https://twemoji.maxcdn.com/svg/1f1ec-1f1e7.svg)}
-.twa-de{background-image:url(https://twemoji.maxcdn.com/svg/1f1e9-1f1ea.svg)}
-.twa-100{background-image:url(https://twemoji.maxcdn.com/svg/1f4af.svg)}
-.twa-1234{background-image:url(https://twemoji.maxcdn.com/svg/1f522.svg)}
-.twa-a{background-image:url(https://twemoji.maxcdn.com/svg/1f170.svg)}
-.twa-ab{background-image:url(https://twemoji.maxcdn.com/svg/1f18e.svg)}
-.twa-abc{background-image:url(https://twemoji.maxcdn.com/svg/1f524.svg)}
-.twa-abcd{background-image:url(https://twemoji.maxcdn.com/svg/1f521.svg)}
-.twa-accept{background-image:url(https://twemoji.maxcdn.com/svg/1f251.svg)}
-.twa-aquarius{background-image:url(https://twemoji.maxcdn.com/svg/2652.svg)}
-.twa-aries{background-image:url(https://twemoji.maxcdn.com/svg/2648.svg)}
-.twa-arrow-backward{background-image:url(https://twemoji.maxcdn.com/svg/25c0.svg)}
-.twa-arrow-double-down{background-image:url(https://twemoji.maxcdn.com/svg/23ec.svg)}
-.twa-arrow-double-up{background-image:url(https://twemoji.maxcdn.com/svg/23eb.svg)}
-.twa-arrow-down{background-image:url(https://twemoji.maxcdn.com/svg/2b07.svg)}
-.twa-arrow-down-small{background-image:url(https://twemoji.maxcdn.com/svg/1f53d.svg)}
-.twa-arrow-forward{background-image:url(https://twemoji.maxcdn.com/svg/25b6.svg)}
-.twa-arrow-heading-down{background-image:url(https://twemoji.maxcdn.com/svg/2935.svg)}
-.twa-arrow-heading-up{background-image:url(https://twemoji.maxcdn.com/svg/2934.svg)}
-.twa-arrow-left{background-image:url(https://twemoji.maxcdn.com/svg/2b05.svg)}
-.twa-arrow-lower-left{background-image:url(https://twemoji.maxcdn.com/svg/2199.svg)}
-.twa-arrow-lower-right{background-image:url(https://twemoji.maxcdn.com/svg/2198.svg)}
-.twa-arrow-right{background-image:url(https://twemoji.maxcdn.com/svg/27a1.svg)}
-.twa-arrow-right-hook{background-image:url(https://twemoji.maxcdn.com/svg/21aa.svg)}
-.twa-arrow-up{background-image:url(https://twemoji.maxcdn.com/svg/2b06.svg)}
-.twa-arrow-up-down{background-image:url(https://twemoji.maxcdn.com/svg/2195.svg)}
-.twa-arrow-up-small{background-image:url(https://twemoji.maxcdn.com/svg/1f53c.svg)}
-.twa-arrow-upper-left{background-image:url(https://twemoji.maxcdn.com/svg/2196.svg)}
-.twa-arrow-upper-right{background-image:url(https://twemoji.maxcdn.com/svg/2197.svg)}
-.twa-arrows-clockwise{background-image:url(https://twemoji.maxcdn.com/svg/1f503.svg)}
-.twa-arrows-counterclockwise{background-image:url(https://twemoji.maxcdn.com/svg/1f504.svg)}
-.twa-b{background-image:url(https://twemoji.maxcdn.com/svg/1f171.svg)}
-.twa-baby-symbol{background-image:url(https://twemoji.maxcdn.com/svg/1f6bc.svg)}
-.twa-baggage-claim{background-image:url(https://twemoji.maxcdn.com/svg/1f6c4.svg)}
-.twa-ballot-box-with-check{background-image:url(https://twemoji.maxcdn.com/svg/2611.svg)}
-.twa-bangbang{background-image:url(https://twemoji.maxcdn.com/svg/203c.svg)}
-.twa-black-circle{background-image:url(https://twemoji.maxcdn.com/svg/26ab.svg)}
-.twa-black-square-button{background-image:url(https://twemoji.maxcdn.com/svg/1f532.svg)}
-.twa-cancer{background-image:url(https://twemoji.maxcdn.com/svg/264b.svg)}
-.twa-capital-abcd{background-image:url(https://twemoji.maxcdn.com/svg/1f520.svg)}
-.twa-capricorn{background-image:url(https://twemoji.maxcdn.com/svg/2651.svg)}
-.twa-chart{background-image:url(https://twemoji.maxcdn.com/svg/1f4b9.svg)}
-.twa-children-crossing{background-image:url(https://twemoji.maxcdn.com/svg/1f6b8.svg)}
-.twa-cinema{background-image:url(https://twemoji.maxcdn.com/svg/1f3a6.svg)}
-.twa-cl{background-image:url(https://twemoji.maxcdn.com/svg/1f191.svg)}
-.twa-clock1{background-image:url(https://twemoji.maxcdn.com/svg/1f550.svg)}
-.twa-clock10{background-image:url(https://twemoji.maxcdn.com/svg/1f559.svg)}
-.twa-clock1030{background-image:url(https://twemoji.maxcdn.com/svg/1f565.svg)}
-.twa-clock11{background-image:url(https://twemoji.maxcdn.com/svg/1f55a.svg)}
-.twa-clock1130{background-image:url(https://twemoji.maxcdn.com/svg/1f566.svg)}
-.twa-clock12{background-image:url(https://twemoji.maxcdn.com/svg/1f55b.svg)}
-.twa-clock1230{background-image:url(https://twemoji.maxcdn.com/svg/1f567.svg)}
-.twa-clock130{background-image:url(https://twemoji.maxcdn.com/svg/1f55c.svg)}
-.twa-clock2{background-image:url(https://twemoji.maxcdn.com/svg/1f551.svg)}
-.twa-clock230{background-image:url(https://twemoji.maxcdn.com/svg/1f55d.svg)}
-.twa-clock3{background-image:url(https://twemoji.maxcdn.com/svg/1f552.svg)}
-.twa-clock330{background-image:url(https://twemoji.maxcdn.com/svg/1f55e.svg)}
-.twa-clock4{background-image:url(https://twemoji.maxcdn.com/svg/1f553.svg)}
-.twa-clock430{background-image:url(https://twemoji.maxcdn.com/svg/1f55f.svg)}
-.twa-clock5{background-image:url(https://twemoji.maxcdn.com/svg/1f554.svg)}
-.twa-clock530{background-image:url(https://twemoji.maxcdn.com/svg/1f560.svg)}
-.twa-clock6{background-image:url(https://twemoji.maxcdn.com/svg/1f555.svg)}
-.twa-clock630{background-image:url(https://twemoji.maxcdn.com/svg/1f561.svg)}
-.twa-clock7{background-image:url(https://twemoji.maxcdn.com/svg/1f556.svg)}
-.twa-clock730{background-image:url(https://twemoji.maxcdn.com/svg/1f562.svg)}
-.twa-clock8{background-image:url(https://twemoji.maxcdn.com/svg/1f557.svg)}
-.twa-clock830{background-image:url(https://twemoji.maxcdn.com/svg/1f563.svg)}
-.twa-clock9{background-image:url(https://twemoji.maxcdn.com/svg/1f558.svg)}
-.twa-clock930{background-image:url(https://twemoji.maxcdn.com/svg/1f564.svg)}
-.twa-congratulations{background-image:url(https://twemoji.maxcdn.com/svg/3297.svg)}
-.twa-cool{background-image:url(https://twemoji.maxcdn.com/svg/1f192.svg)}
-.twa-copyright{background-image:url(https://twemoji.maxcdn.com/svg/a9.svg)}
-.twa-curly-loop{background-image:url(https://twemoji.maxcdn.com/svg/27b0.svg)}
-.twa-currency-exchange{background-image:url(https://twemoji.maxcdn.com/svg/1f4b1.svg)}
-.twa-customs{background-image:url(https://twemoji.maxcdn.com/svg/1f6c3.svg)}
-.twa-diamond-shape-with-a-dot-inside{background-image:url(https://twemoji.maxcdn.com/svg/1f4a0.svg)}
-.twa-do-not-litter{background-image:url(https://twemoji.maxcdn.com/svg/1f6af.svg)}
-.twa-eight{background-image:url(https://twemoji.maxcdn.com/svg/38-20e3.svg)}
-.twa-eight-pointed-black-star{background-image:url(https://twemoji.maxcdn.com/svg/2734.svg)}
-.twa-eight-spoked-asterisk{background-image:url(https://twemoji.maxcdn.com/svg/2733.svg)}
-.twa-end{background-image:url(https://twemoji.maxcdn.com/svg/1f51a.svg)}
-.twa-fast-forward{background-image:url(https://twemoji.maxcdn.com/svg/23e9.svg)}
-.twa-five{background-image:url(https://twemoji.maxcdn.com/svg/35-20e3.svg)}
-.twa-four{background-image:url(https://twemoji.maxcdn.com/svg/34-20e3.svg)}
-.twa-free{background-image:url(https://twemoji.maxcdn.com/svg/1f193.svg)}
-.twa-gemini{background-image:url(https://twemoji.maxcdn.com/svg/264a.svg)}
-.twa-hash{background-image:url(https://twemoji.maxcdn.com/svg/23-20e3.svg)}
-.twa-heart-decoration{background-image:url(https://twemoji.maxcdn.com/svg/1f49f.svg)}
-.twa-heavy-check-mark{background-image:url(https://twemoji.maxcdn.com/svg/2714.svg)}
-.twa-heavy-division-sign{background-image:url(https://twemoji.maxcdn.com/svg/2797.svg)}
-.twa-heavy-dollar-sign{background-image:url(https://twemoji.maxcdn.com/svg/1f4b2.svg)}
-.twa-heavy-minus-sign{background-image:url(https://twemoji.maxcdn.com/svg/2796.svg)}
-.twa-heavy-multiplication-x{background-image:url(https://twemoji.maxcdn.com/svg/2716.svg)}
-.twa-heavy-plus-sign{background-image:url(https://twemoji.maxcdn.com/svg/2795.svg)}
-.twa-id{background-image:url(https://twemoji.maxcdn.com/svg/1f194.svg)}
-.twa-ideograph-advantage{background-image:url(https://twemoji.maxcdn.com/svg/1f250.svg)}
-.twa-information-source{background-image:url(https://twemoji.maxcdn.com/svg/2139.svg)}
-.twa-interrobang{background-image:url(https://twemoji.maxcdn.com/svg/2049.svg)}
-.twa-keycap-ten{background-image:url(https://twemoji.maxcdn.com/svg/1f51f.svg)}
-.twa-koko{background-image:url(https://twemoji.maxcdn.com/svg/1f201.svg)}
-.twa-large-blue-circle{background-image:url(https://twemoji.maxcdn.com/svg/1f535.svg)}
-.twa-large-blue-diamond{background-image:url(https://twemoji.maxcdn.com/svg/1f537.svg)}
-.twa-large-orange-diamond{background-image:url(https://twemoji.maxcdn.com/svg/1f536.svg)}
-.twa-left-luggage{background-image:url(https://twemoji.maxcdn.com/svg/1f6c5.svg)}
-.twa-left-right-arrow{background-image:url(https://twemoji.maxcdn.com/svg/2194.svg)}
-.twa-leftwards-arrow-with-hook{background-image:url(https://twemoji.maxcdn.com/svg/21a9.svg)}
-.twa-leo{background-image:url(https://twemoji.maxcdn.com/svg/264c.svg)}
-.twa-libra{background-image:url(https://twemoji.maxcdn.com/svg/264e.svg)}
-.twa-link{background-image:url(https://twemoji.maxcdn.com/svg/1f517.svg)}
-.twa-m{background-image:url(https://twemoji.maxcdn.com/svg/24c2.svg)}
-.twa-mens{background-image:url(https://twemoji.maxcdn.com/svg/1f6b9.svg)}
-.twa-metro{background-image:url(https://twemoji.maxcdn.com/svg/1f687.svg)}
-.twa-mobile-phone-off{background-image:url(https://twemoji.maxcdn.com/svg/1f4f4.svg)}
-.twa-negative-squared-cross-mark{background-image:url(https://twemoji.maxcdn.com/svg/274e.svg)}
-.twa-new{background-image:url(https://twemoji.maxcdn.com/svg/1f195.svg)}
-.twa-ng{background-image:url(https://twemoji.maxcdn.com/svg/1f196.svg)}
-.twa-nine{background-image:url(https://twemoji.maxcdn.com/svg/39-20e3.svg)}
-.twa-no-bicycles{background-image:url(https://twemoji.maxcdn.com/svg/1f6b3.svg)}
-.twa-no-entry{background-image:url(https://twemoji.maxcdn.com/svg/26d4.svg)}
-.twa-no-entry-sign{background-image:url(https://twemoji.maxcdn.com/svg/1f6ab.svg)}
-.twa-no-mobile-phones{background-image:url(https://twemoji.maxcdn.com/svg/1f4f5.svg)}
-.twa-no-pedestrians{background-image:url(https://twemoji.maxcdn.com/svg/1f6b7.svg)}
-.twa-no-smoking{background-image:url(https://twemoji.maxcdn.com/svg/1f6ad.svg)}
-.twa-non-potable-water{background-image:url(https://twemoji.maxcdn.com/svg/1f6b1.svg)}
-.twa-o{background-image:url(https://twemoji.maxcdn.com/svg/2b55.svg)}
-.twa-o2{background-image:url(https://twemoji.maxcdn.com/svg/1f17e.svg)}
-.twa-ok{background-image:url(https://twemoji.maxcdn.com/svg/1f197.svg)}
-.twa-on{background-image:url(https://twemoji.maxcdn.com/svg/1f51b.svg)}
-.twa-one{background-image:url(https://twemoji.maxcdn.com/svg/31-20e3.svg)}
-.twa-ophiuchus{background-image:url(https://twemoji.maxcdn.com/svg/26ce.svg)}
-.twa-parking{background-image:url(https://twemoji.maxcdn.com/svg/1f17f.svg)}
-.twa-part-alternation-mark{background-image:url(https://twemoji.maxcdn.com/svg/303d.svg)}
-.twa-passport-control{background-image:url(https://twemoji.maxcdn.com/svg/1f6c2.svg)}
-.twa-pisces{background-image:url(https://twemoji.maxcdn.com/svg/2653.svg)}
-.twa-potable-water{background-image:url(https://twemoji.maxcdn.com/svg/1f6b0.svg)}
-.twa-put-litter-in-its-place{background-image:url(https://twemoji.maxcdn.com/svg/1f6ae.svg)}
-.twa-radio-button{background-image:url(https://twemoji.maxcdn.com/svg/1f518.svg)}
-.twa-recycle{background-image:url(https://twemoji.maxcdn.com/svg/267b.svg)}
-.twa-red-circle{background-image:url(https://twemoji.maxcdn.com/svg/1f534.svg)}
-.twa-registered{background-image:url(https://twemoji.maxcdn.com/svg/ae.svg)}
-.twa-repeat{background-image:url(https://twemoji.maxcdn.com/svg/1f501.svg)}
-.twa-repeat-one{background-image:url(https://twemoji.maxcdn.com/svg/1f502.svg)}
-.twa-restroom{background-image:url(https://twemoji.maxcdn.com/svg/1f6bb.svg)}
-.twa-rewind{background-image:url(https://twemoji.maxcdn.com/svg/23ea.svg)}
-.twa-sa{background-image:url(https://twemoji.maxcdn.com/svg/1f202.svg)}
-.twa-sagittarius{background-image:url(https://twemoji.maxcdn.com/svg/2650.svg)}
-.twa-scorpius{background-image:url(https://twemoji.maxcdn.com/svg/264f.svg)}
-.twa-secret{background-image:url(https://twemoji.maxcdn.com/svg/3299.svg)}
-.twa-seven{background-image:url(https://twemoji.maxcdn.com/svg/37-20e3.svg)}
-.twa-signal-strength{background-image:url(https://twemoji.maxcdn.com/svg/1f4f6.svg)}
-.twa-six{background-image:url(https://twemoji.maxcdn.com/svg/36-20e3.svg)}
-.twa-six-pointed-star{background-image:url(https://twemoji.maxcdn.com/svg/1f52f.svg)}
-.twa-small-blue-diamond{background-image:url(https://twemoji.maxcdn.com/svg/1f539.svg)}
-.twa-small-orange-diamond{background-image:url(https://twemoji.maxcdn.com/svg/1f538.svg)}
-.twa-small-red-triangle{background-image:url(https://twemoji.maxcdn.com/svg/1f53a.svg)}
-.twa-small-red-triangle-down{background-image:url(https://twemoji.maxcdn.com/svg/1f53b.svg)}
-.twa-soon{background-image:url(https://twemoji.maxcdn.com/svg/1f51c.svg)}
-.twa-sos{background-image:url(https://twemoji.maxcdn.com/svg/1f198.svg)}
-.twa-symbols{background-image:url(https://twemoji.maxcdn.com/svg/1f523.svg)}
-.twa-taurus{background-image:url(https://twemoji.maxcdn.com/svg/2649.svg)}
-.twa-three{background-image:url(https://twemoji.maxcdn.com/svg/33-20e3.svg)}
-.twa-tm{background-image:url(https://twemoji.maxcdn.com/svg/2122.svg)}
-.twa-top{background-image:url(https://twemoji.maxcdn.com/svg/1f51d.svg)}
-.twa-trident{background-image:url(https://twemoji.maxcdn.com/svg/1f531.svg)}
-.twa-twisted-rightwards-arrows{background-image:url(https://twemoji.maxcdn.com/svg/1f500.svg)}
-.twa-two{background-image:url(https://twemoji.maxcdn.com/svg/32-20e3.svg)}
-.twa-u5272{background-image:url(https://twemoji.maxcdn.com/svg/1f239.svg)}
-.twa-u5408{background-image:url(https://twemoji.maxcdn.com/svg/1f234.svg)}
-.twa-u55b6{background-image:url(https://twemoji.maxcdn.com/svg/1f23a.svg)}
-.twa-u6307{background-image:url(https://twemoji.maxcdn.com/svg/1f22f.svg)}
-.twa-u6708{background-image:url(https://twemoji.maxcdn.com/svg/1f237.svg)}
-.twa-u6709{background-image:url(https://twemoji.maxcdn.com/svg/1f236.svg)}
-.twa-u6e80{background-image:url(https://twemoji.maxcdn.com/svg/1f235.svg)}
-.twa-u7121{background-image:url(https://twemoji.maxcdn.com/svg/1f21a.svg)}
-.twa-u7533{background-image:url(https://twemoji.maxcdn.com/svg/1f238.svg)}
-.twa-u7981{background-image:url(https://twemoji.maxcdn.com/svg/1f232.svg)}
-.twa-u7a7a{background-image:url(https://twemoji.maxcdn.com/svg/1f233.svg)}
-.twa-underage{background-image:url(https://twemoji.maxcdn.com/svg/1f51e.svg)}
-.twa-up{background-image:url(https://twemoji.maxcdn.com/svg/1f199.svg)}
-.twa-vibration-mode{background-image:url(https://twemoji.maxcdn.com/svg/1f4f3.svg)}
-.twa-virgo{background-image:url(https://twemoji.maxcdn.com/svg/264d.svg)}
-.twa-vs{background-image:url(https://twemoji.maxcdn.com/svg/1f19a.svg)}
-.twa-wavy-dash{background-image:url(https://twemoji.maxcdn.com/svg/3030.svg)}
-.twa-wc{background-image:url(https://twemoji.maxcdn.com/svg/1f6be.svg)}
-.twa-wheelchair{background-image:url(https://twemoji.maxcdn.com/svg/267f.svg)}
-.twa-white-check-mark{background-image:url(https://twemoji.maxcdn.com/svg/2705.svg)}
-.twa-white-circle{background-image:url(https://twemoji.maxcdn.com/svg/26aa.svg)}
-.twa-white-flower{background-image:url(https://twemoji.maxcdn.com/svg/1f4ae.svg)}
-.twa-white-square-button{background-image:url(https://twemoji.maxcdn.com/svg/1f533.svg)}
-.twa-womens{background-image:url(https://twemoji.maxcdn.com/svg/1f6ba.svg)}
-.twa-x{background-image:url(https://twemoji.maxcdn.com/svg/274c.svg)}
-.twa-zero{background-image:url(https://twemoji.maxcdn.com/svg/30-20e3.svg)}

+ 0 - 10
src/templates/slim/html5/_attribution.html.slim

@@ -1,10 +0,0 @@
-- attribution = attr :attribution
-- citetitle = attr :citetitle
-- if attribution || citetitle
-  .attribution
-    - if attribution
-      |&#8212; #{attribution}
-    - if citetitle
-      - if attribution
-        br
-      cite =citetitle

+ 0 - 9
src/templates/slim/html5/_footer.html.slim

@@ -1,9 +0,0 @@
-#footer
-  #footer-text
-    - if attr? :revnumber
-      |#{attr 'version-label'} #{attr :revnumber}
-    - if attr? 'last-update-label'
-      br
-      |#{attr 'last-update-label'} #{attr :docdatetime}
-  - unless (docinfo_content = (docinfo :footer)).empty?
-    =docinfo_content

+ 0 - 6
src/templates/slim/html5/_footnotes.html.slim

@@ -1,6 +0,0 @@
-#footnotes
-  hr
-  - footnotes.each do |fn|
-    .footnote id=(footnote_id fn.index)
-      a href="##{footnoteref_id fn.index}" =fn.index
-      |. #{fn.text}

+ 0 - 20
src/templates/slim/html5/_hdlist.html.slim

@@ -1,20 +0,0 @@
-= block_with_title 'hdlist'
-  table
-    - if (attr? :labelwidth) || (attr? :itemwidth)
-      colgroup
-        col style=style_value(width: [(attr :labelwidth), '%'])
-        col style=style_value(width: [(attr :itemwidth), '%'])
-    - items.each do |terms, dd|
-      tr
-        td class=['hdlist1', ('strong' if option? 'strong')]
-          - terms = [*terms]
-          - terms.each_with_index do |dt, idx|
-            =dt.text
-            - unless idx >= terms.count - 1
-              br
-        td.hdlist2
-          - unless dd.nil?
-            - if dd.text?
-              p =dd.text
-            - if dd.blocks?
-              =dd.content

+ 0 - 30
src/templates/slim/html5/_header.html.slim

@@ -1,30 +0,0 @@
-/ AsciiDoc leaves an empty header div even if there's no doctitle
-#header
-  include _tools.html
-  - if has_header?
-    - unless notitle
-      h1 = header.title
-    - if [:author, :revnumber, :revdate, :revremark].any? {|a| attr? a }
-      .details
-        - if attr? :author
-          span.author#author =(attr :author)
-          br
-          - if attr? :email
-            span.email#email =sub_macros(attr :email)
-            br
-          - if (authorcount = (attr :authorcount).to_i) > 1
-            - (2..authorcount).each do |idx|
-              span.author id="author#{idx}" =(attr "author_#{idx}")
-              br
-              - if attr? "email_#{idx}"
-                span.email id="email#{idx}" =sub_macros(attr "email_#{idx}")
-        - if attr? :revnumber
-          span#revnumber #{((attr 'version-label') || '').downcase} #{attr :revnumber}#{',' if attr? :revdate}
-          '
-        - if attr? :revdate
-          span#revdate =attr :revdate
-        - if attr? :revremark
-          br
-          span#revremark =(attr :revremark)
-  - if (attr? :toc) && (attr? 'toc-placement', 'auto')
-    include _toc.html

+ 0 - 11
src/templates/slim/html5/_qanda.html.slim

@@ -1,11 +0,0 @@
-= block_with_title 'qlist qanda'
-  ol
-    - items.each do |questions, answer|
-      li
-        - [*questions].each do |question|
-          p: em =question.text
-        - unless answer.nil?
-          - if answer.text?
-            p =answer.text
-          - if answer.blocks?
-            =answer.content

+ 0 - 4
src/templates/slim/html5/_toc.html.slim

@@ -1,4 +0,0 @@
-#toc class=(attr 'toc-class', 'toc')
-  #toctitle =(attr 'toc-title')
-  / Renders block_outline.html.
-  = converter.convert document, 'outline'

+ 0 - 7
src/templates/slim/html5/_tools.html.slim

@@ -1,7 +0,0 @@
-#toolbar
-  a href=wiki_link_edit()
-    i class="fa fa-pencil-square" aria-hidden="true"
-  a href=wiki_link_create()
-    i class="fa fa-plus-square" aria-hidden="true"
-  / include _searchbox.html
-  <input dir="auto" style="position: relative; vertical-align: top;" spellcheck="false" autocomplete="off" class="searchbox__input aa-input" id="doc-search" name="search" placeholder="Search in the doc" required="required" type="search">

+ 0 - 13
src/templates/slim/html5/block_admonition.html.slim

@@ -1,13 +0,0 @@
-.admonitionblock id=id class=[(attr :name), role]
-  table: tr
-    td.icon
-      - if font_icons?
-        i class=%(fa icon-#{attr :name}) title=caption
-      - elsif icons?
-        img src=icon_uri(attr :name) alt=caption
-      - else
-        .title =caption
-    td.content
-      - if title?
-        .title =title
-      =content

+ 0 - 8
src/templates/slim/html5/block_audio.html.slim

@@ -1,8 +0,0 @@
-= block_with_title class: ['audioblock', style]
-  .content
-    audio(
-        src=media_uri(attr :target)
-        autoplay=(option? 'autoplay')
-        controls=!(option? 'nocontrols')
-        loop=(option? 'loop'))
-      |Your browser does not support the audio tag.

+ 0 - 16
src/templates/slim/html5/block_colist.html.slim

@@ -1,16 +0,0 @@
-= block_with_title class: ['colist', style]
-  - if icons?
-    table
-      - items.to_enum.with_index 1 do |item, num|
-        tr
-          td
-            - if font_icons?
-              i.conum data-value=num
-              b =num
-            - else
-              img src=(icon_uri "callouts/#{num}") alt=num
-          td =item.text
-  - else
-    ol
-      - items.each do |item|
-        li: p =item.text

+ 0 - 17
src/templates/slim/html5/block_dlist.html.slim

@@ -1,17 +0,0 @@
-- case style
-- when 'qanda'
-  include _qanda.html
-- when 'horizontal'
-  include _hdlist.html
-- else
-  = block_with_title class: ['dlist', style]
-    dl
-      - items.each do |terms, dd|
-        - [*terms].each do |dt|
-          dt class=('hdlist1' unless style) =dt.text
-        - unless dd.nil?
-          dd
-            - if dd.text?
-              p =dd.text
-            - if dd.blocks?
-              =dd.content

+ 0 - 2
src/templates/slim/html5/block_example.html.slim

@@ -1,2 +0,0 @@
-= block_with_title 'exampleblock'
-  .content =content

+ 0 - 1
src/templates/slim/html5/block_floating_title.html.slim

@@ -1 +0,0 @@
-*{tag: %(h#{level + 1}), id: id, class: [style, role].compact} =title

+ 0 - 2
src/templates/slim/html5/block_iframe.html.slim

@@ -1,2 +0,0 @@
-= html_tag_if (attr? :link), :a, {class: 'iframe', href: (attr :link)}
-  iframe src=image_uri(attr :target) alt=(attr :alt) width=(attr :width) height=(attr :height) scroll=(attr :scroll) border=(attr :border) align=(attr: align)

+ 0 - 4
src/templates/slim/html5/block_image.html.slim

@@ -1,4 +0,0 @@
-= block_with_title({class: 'imageblock', style: (style_value text_align: (attr :align), float: (attr :float))}, :bottom)
-  .content
-    = html_tag_if (attr? :link), :a, {class: 'image', href: (attr :link)}
-      img src=image_uri(attr :target) alt=(attr :alt) width=(attr :width) height=(attr :height)

+ 0 - 23
src/templates/slim/html5/block_listing.html.slim

@@ -1,23 +0,0 @@
-= block_with_title 'listingblock'
-  .content
-    - highlighter = document.attr 'source-highlighter'
-    - if style == 'source' && highlighter == 'html-pipeline'
-      pre lang=source_lang
-        code =content
-    - elsif style == 'source'
-      - code_class = "language-#{source_lang}" if source_lang
-      - case highlighter
-      - when 'coderay'
-        - pre_class = 'CodeRay'
-        - code_class = nil
-      - when 'highlight.js'
-        - pre_class = 'highlightjs'
-      - when 'prettify'
-        - pre_class = 'prettyprint'
-      - when 'pygments'
-        - pre_class = 'pygments'
-        - code_class = nil
-      pre class=[pre_class, 'highlight', ('linenums' if attr? :linenums), nowrap?]
-        code class=code_class data-lang=source_lang =content
-    - else
-      pre class=nowrap? =content

+ 0 - 2
src/templates/slim/html5/block_literal.html.slim

@@ -1,2 +0,0 @@
-= block_with_title 'literalblock'
-  .content: pre class=nowrap? =content

+ 0 - 7
src/templates/slim/html5/block_olist.html.slim

@@ -1,7 +0,0 @@
-= block_with_title class: ['olist', style]
-  ol class=style start=(attr :start) type=list_marker_keyword
-    - items.each do |item|
-      li
-        p =item.text
-        - if item.blocks?
-          =item.content

+ 0 - 7
src/templates/slim/html5/block_open.html.slim

@@ -1,7 +0,0 @@
-- if style == 'abstract'
-  - if abstract_allowed?
-    = block_with_title 'quoteblock abstract'
-      blockquote =content
-- elsif style != 'partintro' || partintro_allowed?
-  = block_with_title class: ['openblock', (style if style != 'open')]
-    .content =content

+ 0 - 9
src/templates/slim/html5/block_outline.html.slim

@@ -1,9 +0,0 @@
-- unless sections.empty?
-  - toclevels ||= (document.attr 'toclevels', DEFAULT_TOCLEVELS).to_i
-  - slevel = section_level sections.first
-  ul class="sectlevel#{slevel}"
-    - sections.each do |sec|
-      li
-        a href="##{sec.id}" =section_title sec
-        - if (sec.level < toclevels) && (child_toc = converter.convert sec, 'outline')
-          = child_toc

+ 0 - 1
src/templates/slim/html5/block_page_break.html.slim

@@ -1 +0,0 @@
-div style='page-break-after: always;'

+ 0 - 2
src/templates/slim/html5/block_paragraph.html.slim

@@ -1,2 +0,0 @@
-= block_with_title 'paragraph'
-  p =content

+ 0 - 1
src/templates/slim/html5/block_pass.html.slim

@@ -1 +0,0 @@
-=content

+ 0 - 4
src/templates/slim/html5/block_preamble.html.slim

@@ -1,4 +0,0 @@
-#preamble
-  .sectionbody =content
-  - if (attr? :toc) && (attr? 'toc-placement', 'preamble')
-    include _toc.html

+ 0 - 3
src/templates/slim/html5/block_quote.html.slim

@@ -1,3 +0,0 @@
-= block_with_title 'quoteblock'
-  blockquote =content
-  include _attribution.html

+ 0 - 5
src/templates/slim/html5/block_sidebar.html.slim

@@ -1,5 +0,0 @@
-.sidebarblock id=id class=role
-  .content
-    - if title?
-      .title =title
-    =content

+ 0 - 2
src/templates/slim/html5/block_stem.html.slim

@@ -1,2 +0,0 @@
-= block_with_title 'stemblock'
-  .content =(delimit_stem content, style)

+ 0 - 36
src/templates/slim/html5/block_table.html.slim

@@ -1,36 +0,0 @@
-table(id=id
-      class=['tableblock', "frame-#{attr :frame, 'all'}", "grid-#{attr :grid, 'all'}", spread?, role]
-      style=style_value(width: ("#{attr :tablepcwidth}%" unless autowidth? || spread?), float: (attr :float)))
-  - if title?
-    caption.title =captioned_title
-  - unless (attr :rowcount).zero?
-    colgroup
-      - if autowidth?
-        - columns.each do
-          col
-      - else
-        - columns.each do |col|
-          col style="width: #{col.attr :colpcwidth}%;"
-    - [:head, :foot, :body].reject { |tblsec| rows[tblsec].empty? }.each do |tblsec|
-      *{tag: %(t#{tblsec})}
-        - rows[tblsec].each do |row|
-          tr
-            - row.each do |cell|
-              *{tag: (tblsec == :head || cell.style == :header ? 'th' : 'td'),
-                  class: ['tableblock', "halign-#{cell.attr :halign}", "valign-#{cell.attr :valign}"],
-                  colspan: cell.colspan,
-                  rowspan: cell.rowspan,
-                  style: style_value(background_color: (document.attr :cellbgcolor))}
-                - if tblsec == :head
-                  =cell.text
-                - else
-                  - case cell.style
-                  - when :asciidoc
-                    div =cell.content
-                  - when :verse
-                    .verse =cell.text
-                  - when :literal
-                    .literal: pre =cell.text
-                  - else
-                    - cell.content.each do |text|
-                      p.tableblock =text

+ 0 - 1
src/templates/slim/html5/block_thematic_break.html.slim

@@ -1 +0,0 @@
-hr

+ 0 - 8
src/templates/slim/html5/block_toc.html.slim

@@ -1,8 +0,0 @@
-/ This template is used only for toc::[] macro; for document and preamble TOC
-/ see document.html, preamble.html and _toc.html.
-- if document.attr? :toc
-  - toc_id = id || ('toc' if document.embedded? || !document.attr?('toc-placement'))
-  div id=toc_id class=(attr :role, (document.attr 'toc-class', 'toc'))
-    .title id=(%(#{toc_id}title) if toc_id) =(title || (document.attr 'toc-title'))
-    / Renders block_outline.html.
-    = converter.convert_with_options document, 'outline', toclevels: ((attr :levels).to_i if attr? :levels)

+ 0 - 24
src/templates/slim/html5/block_ulist.html.slim

@@ -1,24 +0,0 @@
-- if (checklist = 'checklist' if option? 'checklist')
-  - if option? 'interactive'
-    - marker_checked = html_tag 'input', :type=>'checkbox', 'data-item-complete'=>'1', :checked=>true
-    - marker_unchecked = html_tag 'input', :type=>'checkbox', 'data-item-complete'=>'0'
-  - elsif font_icons?
-    - marker_checked = html_tag 'i', class: 'fa fa-check-square-o'
-    - marker_unchecked = html_tag 'i', class: 'fa fa-square-o'
-  - else
-    - marker_checked = '&#10003;'
-    - marker_unchecked = '&#10063;'
-= block_with_title class: ['ulist', checklist, style]
-  ul class=(checklist || style)
-    - items.each do |item|
-      li
-        p
-          - if checklist && (item.attr? :checkbox)
-            - if item.attr? :checked
-              |#{marker_checked} #{item.text}
-            - else
-              |#{marker_unchecked} #{item.text}
-          - else
-            =item.text
-        - if item.blocks?
-          =item.content

+ 0 - 3
src/templates/slim/html5/block_verse.html.slim

@@ -1,3 +0,0 @@
-= block_with_title 'verseblock'
-  pre.content =content
-  include _attribution.html

+ 0 - 19
src/templates/slim/html5/block_video.html.slim

@@ -1,19 +0,0 @@
-= block_with_title class: ['videoblock', style]
-  .content
-    - if video_iframe?
-      iframe(
-          src=video_uri
-          width=(attr :width)
-          height=(attr :height)
-          frameborder=0
-          allowfullscreen=!(option? 'nofullscreen'))
-    - else
-      video(
-          src=video_uri
-          width=(attr :width)
-          height=(attr :height)
-          poster=(media_uri(attr :poster) if attr? :poster)
-          autoplay=(option? 'autoplay')
-          controls=!(option? 'nocontrols')
-          loop=(option? 'loop'))
-        |Your browser does not support the video tag.

+ 0 - 37
src/templates/slim/html5/document.html.slim

@@ -1,37 +0,0 @@
-doctype 5
-html lang=(attr :lang, 'en' unless attr? :nolang)
-  head
-    meta charset=(attr :encoding, 'UTF-8')
-    /[if IE]
-      meta http-equiv="X-UA-Compatible" content="IE=edge"
-    meta name='viewport' content='width=device-width, initial-scale=1.0'
-    meta name='generator' content="Asciidoctor #{attr 'asciidoctor-version'}"
-    = html_meta_if 'application-name', (attr 'app-name')
-    = html_meta_if 'author', (attr :authors)
-    = html_meta_if 'copyright', (attr :copyright)
-    = html_meta_if 'description', (attr :description)
-    = html_meta_if 'keywords', (attr :keywords)
-    title=((doctitle sanitize: true) || (attr 'untitled-label'))
-    = styles_and_scripts
-    link rel="stylesheet" href="https://cdn.jsdelivr.net/docsearch.js/2/docsearch.min.css"
-    - unless (docinfo_content = docinfo).empty?
-      =docinfo_content
-  body(
-    id=id
-    class=[(attr :doctype), ("#{attr 'toc-class'} toc-#{attr 'toc-position', 'left'}" if (attr? 'toc-class') && (attr? :toc) && (attr? 'toc-placement', 'auto'))]
-    style=style_value(max_width: (attr 'max-width')))
-    - unless noheader
-      include _header.html
-    #content =content
-    - unless !footnotes? || (attr? :nofootnotes)
-      include _footnotes.html
-    - unless nofooter
-      include _footer.html
-    script type="text/javascript" src="https://cdn.jsdelivr.net/docsearch.js/2/docsearch.min.js"
-    javascript:
-      docsearch({
-        apiKey: 'a736b6d93de805e26ec2f49b55013fbd',
-        indexName: 'jmonkeyengine',
-        inputSelector: '#doc-search',
-        debug: false // Set debug to true if you want to inspect the dropdown
-      });

+ 0 - 5
src/templates/slim/html5/embedded.html.slim

@@ -1,5 +0,0 @@
-- unless notitle || !has_header?
-  h1 id=id =header.title
-=content
-- unless !footnotes? || (attr? :nofootnotes)
-  include _footnotes.html

+ 0 - 550
src/templates/slim/html5/helpers.rb

@@ -1,550 +0,0 @@
-require 'asciidoctor'
-require 'json'
-
-if Gem::Version.new(Asciidoctor::VERSION) <= Gem::Version.new('1.5.1')
-  fail 'asciidoctor: FAILED: HTML5/Slim backend needs Asciidoctor >=1.5.2!'
-end
-
-unless defined? Slim::Include
-  fail 'asciidoctor: FAILED: HTML5/Slim backend needs Slim >= 2.1.0!'
-end
-
-# Add custom functions to this module that you want to use in your Slim
-# templates. Within the template you can invoke them as top-level functions
-# just like in Haml.
-module Slim::Helpers
-
-  # URIs of external assets.
-  FONT_AWESOME_URI     = '//cdnjs.cloudflare.com/ajax/libs/font-awesome/4.5.0/css/font-awesome.min.css'
-  HIGHLIGHTJS_BASE_URI = '//cdnjs.cloudflare.com/ajax/libs/highlight.js/7.4'
-  MATHJAX_JS_URI       = '//cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-MML-AM_HTMLorMML'
-  PRETTIFY_BASE_URI    = '//cdnjs.cloudflare.com/ajax/libs/prettify/r298'
-
-  # Defaults
-  DEFAULT_HIGHLIGHTJS_THEME = 'github'
-  DEFAULT_PRETTIFY_THEME = 'prettify'
-  DEFAULT_SECTNUMLEVELS = 3
-  DEFAULT_TOCLEVELS = 2
-
-  # The MathJax configuration.
-  MATHJAX_CONFIG = {
-    tex2jax: {
-      inlineMath:  [::Asciidoctor::INLINE_MATH_DELIMITERS[:latexmath]],
-      displayMath: [::Asciidoctor::BLOCK_MATH_DELIMITERS[:latexmath]],
-      ignoreClass: 'nostem|nolatexmath'
-    },
-    asciimath2jax: {
-      delimiters:  [::Asciidoctor::BLOCK_MATH_DELIMITERS[:asciimath]],
-      ignoreClass: 'nostem|noasciimath'
-    }
-  }.to_json
-
-  VOID_ELEMENTS = %w(area base br col command embed hr img input keygen link meta param source track wbr)
-
-
-  ##
-  # Creates an HTML tag with the given name and optionally attributes. Can take
-  # a block that will run between the opening and closing tags.
-  #
-  # @param name [#to_s] the name of the tag.
-  # @param attributes [Hash]
-  # @param content [#to_s] the content; +nil+ to call the block.
-  # @yield The block of Slim/HTML code within the tag (optional).
-  # @return [String] a rendered HTML element.
-  #
-  def html_tag(name, attributes = {}, content = nil)
-    attrs = attributes.reject { |_, v|
-      v.nil? || (v.respond_to?(:empty?) && v.empty?)
-    }.map do |k, v|
-      v = v.compact.join(' ') if v.is_a? Array
-      v = nil if v == true
-      v = %("#{v}") if v
-      [k, v] * '='
-    end
-    attrs_str = attrs.empty? ? '' : attrs.join(' ').prepend(' ')
-
-    if VOID_ELEMENTS.include? name.to_s
-      %(<#{name}#{attrs_str}>)
-    else
-      content ||= yield if block_given?
-      %(<#{name}#{attrs_str}>#{content}</#{name}>)
-    end
-  end
-
-  ##
-  # Conditionally wraps a block in an element. If condition is +true+ then it
-  # renders the specified tag with optional attributes and the given
-  # block inside, otherwise it just renders the block.
-  #
-  # For example:
-  #
-  #    = html_tag_if link?, 'a', {class: 'image', href: (attr :link)}
-  #      img src='./img/tux.png'
-  #
-  # will produce:
-  #
-  #    <a href="http://example.org" class="image">
-  #      <img src="./img/tux.png">
-  #    </a>
-  #
-  # if +link?+ is truthy, and just
-  #
-  #   <img src="./img/tux.png">
-  #
-  # otherwise.
-  #
-  # @param condition [Boolean] the condition to test to determine whether to
-  #        render the enclosing tag.
-  # @param name (see #html_tag)
-  # @param attributes (see #html_tag)
-  # @yield (see #html_tag)
-  # @return [String] a rendered HTML fragment.
-  #
-  def html_tag_if(condition, name, attributes = {}, &block)
-    if condition
-      html_tag name, attributes, &block
-    else
-      yield
-    end
-  end
-
-  ##
-  # Surrounds a block with strings, with no whitespace in between.
-  #
-  # @example
-  #   = surround '[', ']' do
-  #     a href="#_footnote_1" 1
-  #
-  #   [<a href="#_footnote_1">1</a>]
-  #
-  # @param front [String] the string to add before the block.
-  # @param back [String] the string to add after the block.
-  # @yield The block of Slim/HTML code to surround.
-  # @return [String] a rendered HTML fragment.
-  #
-  def surround(front, back = front)
-    [front, yield.chomp, back].join
-  end
-
-  ##
-  # Wraps a block in a div element with the specified class and optionally
-  # the node's +id+ and +role+(s). If the node's +captioned_title+ is not
-  # empty, than a nested div with the class "title" and the title's content
-  # is added as well.
-  #
-  # Note: Every node has method +captioned_title+; if it doesn't have a
-  # caption, then this method returns just a naked title.
-  #
-  # @example When @id, @role and @title attributes are set.
-  #   = block_with_title class: ['quoteblock', 'center']
-  #     blockquote =content
-  #
-  #   <div id="myid" class="quoteblock center myrole1 myrole2">
-  #     <div class="title">Block Title</div>
-  #     <blockquote>Lorem ipsum</blockquote>
-  #   </div>
-  #
-  # @example When @id, @role and @title attributes are empty.
-  #   = block_with_title class: 'quoteblock center', style: style_value(float: 'left')
-  #     blockquote =content
-  #
-  #   <div class="quoteblock center" style="float: left;">
-  #     <blockquote>Lorem ipsum</blockquote>
-  #   </div>
-  #
-  # @example When shorthand style for class attribute is used.
-  #   = block_with_title 'quoteblock center'
-  #     blockquote =content
-  #
-  #   <div class="quoteblock center">
-  #     <blockquote>Lorem ipsum</blockquote>
-  #   </div>
-  #
-  # @param attributes [Hash, String] the tag's attributes as Hash),
-  #        or the tag's class if it's not a Hash.
-  # @param title_position [:top, :bottom] position of the title element.
-  # @yield The block of Slim/HTML code within the tag (optional).
-  # @return [String] a rendered HTML fragment.
-  #
-  def block_with_title(attributes = {}, title_position = :top, &block)
-    if attributes.is_a? Hash
-      klass = attributes.delete(:class)
-    else
-      klass = attributes
-      attributes = {}
-    end
-    klass = klass.split(' ') if klass.is_a? String
-    attributes[:class] = [klass, role].flatten.uniq
-    attributes[:id] = id
-
-    html_tag 'div', attributes do
-      if captioned_title.nil_or_empty?
-        yield
-      else
-        ary = [ html_tag('div', {class: 'title'}, captioned_title), yield ]
-        ary.reverse! if title_position == :bottom
-        ary.compact.join "\n"
-      end
-    end
-  end
-
-  ##
-  # Delimite the given equation as a STEM of the specified type.
-  #
-  # @param equation [String] the equation to delimite.
-  # @param type [#to_sym] the type of the STEM renderer (latexmath, or asciimath).
-  # @return [String] the delimited equation.
-  #
-  def delimit_stem(equation, type)
-    if is_a? ::Asciidoctor::Block
-      open, close = ::Asciidoctor::BLOCK_MATH_DELIMITERS[type.to_sym]
-    else
-      open, close = ::Asciidoctor::INLINE_MATH_DELIMITERS[type.to_sym]
-    end
-
-    unless equation.start_with?(open) && equation.end_with?(close)
-      equation = [open, equation, close].join
-    end
-    equation
-  end
-
-  ##
-  # Formats the given hash as CSS declarations for an inline style.
-  #
-  # @example
-  #   style_value(text_align: 'right', float: 'left')
-  #   => "text-align: right; float: left;"
-  #
-  #   style_value(text_align: nil, float: 'left')
-  #   => "float: left;"
-  #
-  #   style_value(width: [90, '%'], height: '50px')
-  #   => "width: 90%; height: 50px;"
-  #
-  #   style_value(width: ['120px', 'px'])
-  #   => "width: 90px;"
-  #
-  #   style_value(width: [nil, 'px'])
-  #   => nil
-  #
-  # @param declarations [Hash]
-  # @return [String, nil]
-  #
-  def style_value(declarations)
-    decls = []
-
-    declarations.each do |prop, value|
-      next if value.nil?
-
-      if value.is_a? Array
-        value, unit = value
-        next if value.nil?
-        value = value.to_s + unit unless value.end_with? unit
-      end
-      prop = prop.to_s.gsub('_', '-')
-      decls << %(#{prop}: #{value})
-    end
-
-    decls.empty? ? nil : decls.join('; ') + ';'
-  end
-
-  def urlize(*segments)
-    path = segments * '/'
-    if path.start_with? '//'
-      @_uri_scheme ||= document.attr 'asset-uri-scheme', 'https'
-      path = %(#{@_uri_scheme}:#{path}) unless @_uri_scheme.empty?
-    end
-    normalize_web_path path
-  end
-
-
-  ##
-  # @param index [Integer] the footnote's index.
-  # @return [String] footnote id to be used in a link.
-  def footnote_id(index = (attr :index))
-    %(_footnote_#{index})
-  end
-
-  ##
-  # @param index (see #footnote_id)
-  # @return [String] footnoteref id to be used in a link.
-  def footnoteref_id(index = (attr :index))
-    %(_footnoteref_#{index})
-  end
-
-  def icons?
-    document.attr? :icons
-  end
-
-  def font_icons?
-    document.attr? :icons, 'font'
-  end
-
-  def nowrap?
-    'nowrap' if !document.attr?(:prewrap) || option?('nowrap')
-  end
-
-  ##
-  # Returns corrected section level.
-  #
-  # @param sec [Asciidoctor::Section] the section node (default: self).
-  # @return [Integer]
-  #
-  def section_level(sec = self)
-    @_section_level ||= (sec.level == 0 && sec.special) ? 1 : sec.level
-  end
-
-  ##
-  # Returns the captioned section's title, optionally numbered.
-  #
-  # @param sec [Asciidoctor::Section] the section node (default: self).
-  # @return [String]
-  #
-  def section_title(sec = self)
-    sectnumlevels = document.attr(:sectnumlevels, DEFAULT_SECTNUMLEVELS).to_i
-
-    if sec.numbered && !sec.caption && sec.level <= sectnumlevels
-      [sec.sectnum, sec.captioned_title].join(' ')
-    else
-      sec.captioned_title
-    end
-  end
-
-  #--------------------------------------------------------
-  # block_listing
-  #
-
-  def source_lang
-    attr :language, nil, false
-  end
-
-  #--------------------------------------------------------
-  # block_open
-  #
-
-  ##
-  # Returns +true+ if an abstract block is allowed in this document type,
-  # otherwise prints warning and returns +false+.
-  def abstract_allowed?
-    if result = (parent == document && document.doctype == 'book')
-      puts 'asciidoctor: WARNING: abstract block cannot be used in a document without a title when doctype is book. Excluding block content.'
-    end
-    !result
-  end
-
-  ##
-  # Returns +true+ if a partintro block is allowed in this context, otherwise
-  # prints warning and returns +false+.
-  def partintro_allowed?
-    if result = (level != 0 || parent.context != :section || document.doctype != 'book')
-      puts 'asciidoctor: ERROR: partintro block can only be used when doctype is book and it\'s a child of a book part. Excluding block content.'
-    end
-    !result
-  end
-
-  #--------------------------------------------------------
-  # block_table
-  #
-
-  def autowidth?
-    option? :autowidth
-  end
-
-  def spread?
-    'spread' if !(option? 'autowidth') && (attr :tablepcwidth) == 100
-  end
-
-  #--------------------------------------------------------
-  # block_video
-  #
-
-  # @return [Boolean] +true+ if the video should be embedded in an iframe.
-  def video_iframe?
-    ['vimeo', 'youtube'].include?(attr :poster)
-  end
-
-  def video_uri
-    case (attr :poster, '').to_sym
-    when :vimeo
-      params = {
-        autoplay: (1 if option? 'autoplay'),
-        loop: (1 if option? 'loop')
-      }
-      start_anchor = %(#at=#{attr :start}) if attr? :start
-      %(//player.vimeo.com/video/#{attr :target}#{start_anchor}#{url_query params})
-
-    when :youtube
-      video_id, list_id = (attr :target).split('/', 2)
-      params = {
-        rel: 0,
-        start: (attr :start),
-        end: (attr :end),
-        list: (attr :list, list_id),
-        autoplay: (1 if option? 'autoplay'),
-        loop: (1 if option? 'loop'),
-        controls: (0 if option? 'nocontrols')
-      }
-      %(//www.youtube.com/embed/#{video_id}#{url_query params})
-    else
-      anchor = [(attr :start), (attr :end)].join(',').chomp(',')
-      anchor.prepend '#t=' unless anchor.empty?
-      media_uri %(#{attr :target}#{anchor})
-    end
-  end
-
-  # Formats URL query parameters.
-  def url_query(params)
-    str = params.map { |k, v|
-      next if v.nil? || v.to_s.empty?
-      [k, v] * '='
-    }.compact.join('&amp;')
-
-    str.prepend('?') unless str.empty?
-  end
-
-  #--------------------------------------------------------
-  # document
-  #
-
-  ##
-  # Returns HTML meta tag if the given +content+ is not +nil+.
-  #
-  # @param name [#to_s] the name for the metadata.
-  # @param content [#to_s, nil] the value of the metadata, or +nil+.
-  # @return [String, nil] the meta tag, or +nil+ if the +content+ is +nil+.
-  #
-  def html_meta_if(name, content)
-    %(<meta name="#{name}" content="#{content}">) if content
-  end
-
-  # Returns formatted style/link and script tags for header.
-  def styles_and_scripts
-    scripts = []
-    styles = []
-    tags = []
-
-    stylesheet = attr :stylesheet
-    stylesdir = attr :stylesdir, ''
-    default_style = ::Asciidoctor::DEFAULT_STYLESHEET_KEYS.include? stylesheet
-    linkcss = (attr? :linkcss) || safe >= ::Asciidoctor::SafeMode::SECURE
-    ss = ::Asciidoctor::Stylesheets.instance
-
-    if linkcss
-      path = default_style ? ::Asciidoctor::DEFAULT_STYLESHEET_NAME : stylesheet
-      styles << { href: [stylesdir, path] }
-    elsif default_style
-      styles << { text: ss.primary_stylesheet_data }
-    else
-      styles << { text: read_asset(normalize_system_path(stylesheet, stylesdir), true) }
-    end
-
-    if attr? :icons, 'font'
-      if attr? 'iconfont-remote'
-        styles << { href: (attr 'iconfont-cdn', FONT_AWESOME_URI) }
-      else
-        styles << { href: [stylesdir, %(#{attr 'iconfont-name', 'font-awesome'}.css)] }
-      end
-    end
-
-    if attr? 'stem'
-      scripts << { src: MATHJAX_JS_URI }
-      scripts << { type: 'text/x-mathjax-config', text: %(MathJax.Hub.Config(#{MATHJAX_CONFIG});) }
-    end
-
-    case attr 'source-highlighter'
-    when 'coderay'
-      if (attr 'coderay-css', 'class') == 'class'
-        if linkcss
-          styles << { href: [stylesdir, ss.coderay_stylesheet_name] }
-        else
-          styles << { text: ss.coderay_stylesheet_data }
-        end
-      end
-
-    when 'pygments'
-      if (attr 'pygments-css', 'class') == 'class'
-        if linkcss
-          styles << { href: [stylesdir, ss.pygments_stylesheet_name(attr 'pygments-style')] }
-        else
-          styles << { text: ss.pygments_stylesheet_data(attr 'pygments-style') }
-        end
-      end
-
-    when 'highlightjs'
-      hjs_base = attr :highlightjsdir, HIGHLIGHTJS_BASE_URI
-      hjs_theme = attr 'highlightjs-theme', DEFAULT_HIGHLIGHTJS_THEME
-
-      scripts << { src: [hjs_base, 'highlight.min.js'] }
-      scripts << { src: [hjs_base, 'lang/common.min.js'] }
-      scripts << { text: 'hljs.initHighlightingOnLoad()' }
-      styles  << { href: [hjs_base, %(styles/#{hjs_theme}.min.css)] }
-
-    when 'prettify'
-      prettify_base = attr :prettifydir, PRETTIFY_BASE_URI
-      prettify_theme = attr 'prettify-theme', DEFAULT_PRETTIFY_THEME
-
-      scripts << { src: [prettify_base, 'prettify.min.js'] }
-      scripts << { text: 'document.addEventListener("DOMContentLoaded", prettyPrint)' }
-      styles  << { href: [prettify_base, %(#{prettify_theme}.min.css)] }
-    end
-
-    styles.each do |item|
-      if item.key?(:text)
-        tags << html_tag(:style, {}, item[:text])
-      else
-        tags << html_tag(:link, rel: 'stylesheet', href: urlize(*item[:href]))
-      end
-    end
-
-    scripts.each do |item|
-      if item.key? :text
-        tags << html_tag(:script, {type: item[:type]}, item[:text])
-      else
-        tags << html_tag(:script, type: item[:type], src: urlize(*item[:src]))
-      end
-    end
-
-    tags.join "\n"
-  end
-
-  #--------------------------------------------------------
-  # inline_anchor
-  #
-
-  # @return [String, nil] text of the xref anchor, or +nil+ if not found.
-  def xref_text
-    str = text || document.references[:ids][attr :refid || target]
-    str.tr_s("\n", ' ') if str
-  end
-
-  #--------------------------------------------------------
-  # inline_image
-  #
-
-  # @return [Array] style classes for a Font Awesome icon.
-  def icon_fa_classes
-    [ %(fa fa-#{target}),
-      (%(fa-#{attr :size}) if attr? :size),
-      (%(fa-rotate-#{attr :rotate}) if attr? :rotate),
-      (%(fa-flip-#{attr :flip}) if attr? :flip)
-    ].compact
-  end
-
-  # wiki_links
-
-  def source_relative_path(file)
-    file[document.attr('sourcedir', '').length..-1]
-    #file - document.attr('sourcedir', '')
-  end
-
-  def wiki_link_edit()
-    document.attr('wiki_link_edit_prefix', 'wikiedit') + source_relative_path(document.attr('docfile', ''))
-  end
-
-  def wiki_link_create()
-    path =source_relative_path(document.attr('docfile', ''))
-    path = path[0..path.rindex('/')] # parent directory
-    document.attr('wiki_link_create_prefix', 'wikicreate')  + path
-  end
-
-end

+ 0 - 10
src/templates/slim/html5/inline_anchor.html.slim

@@ -1,10 +0,0 @@
-- case type
-- when :xref
-  a href=target =(xref_text || %([#{attr :refid}]))
-- when :ref
-  a id=target
-- when :bibref
-  a id=target
-  |[#{@target}]
-- else
-  a id=id class=role href=target target=(attr :window) title=(attr :title) =text

+ 0 - 2
src/templates/slim/html5/inline_break.html.slim

@@ -1,2 +0,0 @@
-=text
-br

+ 0 - 1
src/templates/slim/html5/inline_button.html.slim

@@ -1 +0,0 @@
-b.button =text

+ 0 - 7
src/templates/slim/html5/inline_callout.html.slim

@@ -1,7 +0,0 @@
-- if font_icons?
-  i.conum data-value=text
-  b ="(#{text})"
-- elsif icons?
-  img src=icon_uri("callouts/#{text}") alt=text
-- else
-  b.conum ="(#{text})"

+ 0 - 11
src/templates/slim/html5/inline_footnote.html.slim

@@ -1,11 +0,0 @@
-- if type == :xref
-  - if attr :index
-    span.footnoteref
-      = surround '[', ']'
-        a.footnote href="##{footnote_id}" title="View footnote." =(attr :index)
-  - else
-    span.footnoteref.red title="Unresolved footnote reference." [#{text}]
-- else
-  span.footnote id=(footnote_id id if id)
-    = surround '[', ']'
-      a.footnote id=footnoteref_id href="##{footnote_id}" title="View footnote." =(attr :index)

+ 0 - 9
src/templates/slim/html5/inline_image.html.slim

@@ -1,9 +0,0 @@
-span class=[type, role] style=style_value(float: (attr :float))
-  = html_tag_if (attr? :link), :a, {class: 'image', href: (attr :link), target: (attr :window)}
-    - if type == 'icon' && font_icons?
-      i class=icon_fa_classes title=(attr :title)
-    - elsif type == 'icon' && !icons?
-      |[#{attr :alt}]
-    - else
-      - src = (type == 'icon' ? (icon_uri target) : (image_uri target))
-      img src=src alt=(attr :alt) width=(attr :width) height=(attr :height) title=(attr :title)

+ 0 - 2
src/templates/slim/html5/inline_indexterm.html.slim

@@ -1,2 +0,0 @@
-- if type == :visible
-  =text

+ 0 - 8
src/templates/slim/html5/inline_kbd.html.slim

@@ -1,8 +0,0 @@
-- if (keys = attr 'keys').size == 1
-  kbd =keys.first
-- else
-  kbd.keyseq
-    - keys.each_with_index do |key, idx|
-      - unless idx.zero?
-        |+
-      kbd =key

+ 0 - 10
src/templates/slim/html5/inline_menu.html.slim

@@ -1,10 +0,0 @@
-- if attr :menuitem
-  span.menuseq
-    span.menu =(attr :menu)
-    '&#160;&#9656;
-    - (attr 'submenus').each do |submenu|
-      span.submenu =submenu
-      '&#160;&#9656;
-    span.menuitem =(attr :menuitem)
-- else
-  span.menu =(attr :menu)

+ 0 - 26
src/templates/slim/html5/inline_quoted.html.slim

@@ -1,26 +0,0 @@
-- unless id.nil?
-  a id=id
-- case type
-- when :emphasis
-  em class=role =text
-- when :strong
-  strong class=role =text
-- when :monospaced
-  code class=role =text
-- when :superscript
-  sup class=role =text
-- when :subscript
-  sub class=role =text
-- when :mark
-  mark class=role =text
-- when :double
-  = html_tag_if role?, :span, class: role
-    |&#8220;#{text}&#8221;
-- when :single
-  = html_tag_if role?, :span, class: role
-    |&#8216;#{text}&#8217;
-- when :asciimath, :latexmath
-  =delimit_stem text, type
-- else
-  = html_tag_if role?, :span, class: role
-    =text

+ 0 - 14
src/templates/slim/html5/section.html.slim

@@ -1,14 +0,0 @@
-- sect0 = section_level == 0
-= html_tag_if !sect0, :div, class: [%(sect#{section_level}), role]
-  *{tag: %(h#{section_level + 1}), id: id, class: ('sect0' if sect0)}
-    - if id && (document.attr? :sectanchors)
-      a.anchor href="##{id}"
-      =section_title
-    - elsif id && (document.attr? :sectlinks)
-      a.link href="##{id}" =section_title
-    - else
-      =section_title
-  - if section_level == 1
-    .sectionbody =content
-  - else
-    =content