[
  {
    "lines": [
      "> v3.0.0"
    ], 
    "host": "https://signpuddle.com/server", 
    "meta": "Generated from ApiTxt format (output/tools.txt) using txt2json.py", 
    "root": "tools", 
    "title": "SignPuddle 3 Tools API"
  }, 
  {
    "lines": [
      "+ Source: [ApiTxt format](../src/tools.txt) and [JSON objects](../src/tools.json)", 
      "+ Documents: [API Blueprint](../doc/tools.md) and [Stand Alone HTML](../doc/tools.htm)", 
      "+ Live Page: [API Interface](../api/tools.html) and [JavaScript](../api/tools.js)"
    ], 
    "group": "tools", 
    "description": "Resources related to tools"
  }, 
  {
    "route": "/tools/", 
    "name": "tools index"
  }, 
  {
    "method": "GET", 
    "dialog": [
      {
        "responses": [
          {
            "status": 200, 
            "body": [
              "Available routes:", 
              "", 
              "/tools/", 
              "/tools/test{?text}", 
              "/tools/define", 
              "/tools/define/{section}", 
              "/tools/define/{section}/{part}", 
              "/tools/parse{?text,utf}", 
              "/tools/encode{?text,slash}", 
              "/tools/decode{?text}", 
              "/tools/utf8{?text}"
            ], 
            "type": "text/plain"
          }
        ]
      }
    ], 
    "name": "Get the tools index"
  }, 
  {
    "route": "/tools/define", 
    "lines": [
      "The definition tree for character mapping"
    ], 
    "name": "Character definition tree"
  }, 
  {
    "code": [
      "$define = SignWriting\\define();", 
      "$searchTime = searchtime($timein);", 
      "header(\"Search-Time: \" . $searchTime);", 
      "echo json_pretty($define);"
    ], 
    "method": "GET", 
    "dialog": [
      {
        "responses": [
          {
            "status": 200, 
            "body": [
              "{", 
              "  \"utf-8\": {},", 
              "  \"utf-16\": {},", 
              "  \"utf-32\": {},", 
              "  \"fsw\": {},", 
              "  \"swu\": {},", 
              "  \"style\": {}", 
              "}"
            ], 
            "type": "text/plain;charset=utf-8"
          }
        ]
      }
    ], 
    "name": "Get main define"
  }, 
  {
    "route": "/tools/define/{section}", 
    "lines": [
      "A section of the definition tree"
    ], 
    "name": "Section definition", 
    "parameters": [
      {
        "description": "The name of section", 
        "type": "string", 
        "name": "section", 
        "example": "fsw"
      }
    ]
  }, 
  {
    "code": [
      "global $regex_define;", 
      "if ($section == \"regex\"){", 
      "  return $regex_define();", 
      "}", 
      "global $sample_define;", 
      "if ($section == \"sample\"){", 
      "  return $sample_define();", 
      "}", 
      "$define = SignWriting\\define($section);", 
      "$searchTime = searchtime($timein);", 
      "header(\"Search-Time: \" . $searchTime);", 
      "echo json_pretty($define);"
    ], 
    "method": "GET", 
    "dialog": [
      {
        "responses": [
          {
            "status": 200, 
            "body": [
              "{", 
              "  \"sign\": [],", 
              "  \"spatial\": [],", 
              "  \"symbol\": [],", 
              "  \"coord\": [],", 
              "  \"prefix\": [],", 
              "  \"box\": [],", 
              "  \"query\": []", 
              "}"
            ], 
            "type": "text/plain;charset=utf-8"
          }
        ]
      }
    ], 
    "name": "Get section define"
  }, 
  {
    "route": "/tools/define/{section}/{part}", 
    "lines": [
      "A part of the section definition"
    ], 
    "name": "Part definition", 
    "parameters": [
      {
        "description": "The name of section", 
        "type": "string", 
        "name": "section", 
        "example": "swu"
      }, 
      {
        "description": "The part of the definition", 
        "type": "string", 
        "name": "part", 
        "example": "symbol"
      }
    ]
  }, 
  {
    "code": [
      "$define = SignWriting\\define($section,$part);", 
      "$searchTime = searchtime($timein);", 
      "header(\"Search-Time: \" . $searchTime);", 
      "echo json_pretty($define);"
    ], 
    "method": "GET", 
    "dialog": [
      {
        "responses": [
          {
            "status": 200, 
            "body": [
              "[", 
              "  \"individual symbol\",", 
              "  \"S10000\",", 
              "  \"[\\\\x{40000}-\\\\x{4F428}]\"", 
              "]"
            ], 
            "type": "text/plain;charset=utf-8"
          }
        ]
      }
    ], 
    "name": "Get part define"
  }, 
  {
    "route": "/tools/parse{?text,utf}", 
    "lines": [
      "A function to analyze text and parse it into individual components"
    ], 
    "name": "Parse text", 
    "parameters": [
      {
        "description": "The text to parse", 
        "type": "string", 
        "name": "text", 
        "example": "S10000"
      }, 
      {
        "description": "The UTF number of 8, 16, 32 or 'x'", 
        "type": "string", 
        "name": "utf", 
        "example": "32"
      }
    ]
  }, 
  {
    "code": [
      "if (!in_array($utf,[8,16,32,'x'])){", 
      "  $utf = 16;", 
      "}", 
      "$parse = SignWriting\\parse($text);", 
      "$searchTime = searchtime($timein);", 
      "header(\"Search-Time: \" . $searchTime);", 
      "$json = json_pretty($parse);", 
      "echo SignWriting\\cast($json,$utf);"
    ], 
    "method": "GET", 
    "dialog": [
      {
        "responses": [
          {
            "status": 200, 
            "body": [
              "{", 
              "  \"fsw\": {", 
              "    \"symbol\": [", 
              "      \"S10000\"", 
              "    ]", 
              "  },", 
              "  \"query\": {", 
              "    \"base\": [", 
              "      100", 
              "    ],", 
              "    \"symbol\": [", 
              "      \"S10000\"", 
              "    ]", 
              "  }", 
              "}"
            ], 
            "type": "text/plain;charset=utf-8"
          }
        ]
      }
    ], 
    "name": "Get parse results"
  }, 
  {
    "route": "/tools/encode{?text,slash}", 
    "lines": [
      "A function to encode SignWriting in Unicode (SWU) as UTF-16"
    ], 
    "name": "Encode text", 
    "parameters": [
      {
        "description": "The text to encode", 
        "type": "string", 
        "name": "text", 
        "example": "\ud836\udc00\ud8d8\udd31\ud8e2\udc23\ud8f4\ude61\ud836\udc03\ud836\udd1b\ud836\udd35\ud8f4\ude61\ud836\udcf4\ud836\udcf5\ud8d8\udd31\ud836\udd0c\ud836\udd06\ud8e2\udc23\ud836\udd09\ud836\udd1a"
      }, 
      {
        "description": "The number of slashes for escaping", 
        "type": "number", 
        "name": "slash", 
        "example": "1"
      }
    ]
  }, 
  {
    "code": [
      "$encode = SignWriting\\encode($text,$slash);", 
      "$searchTime = searchtime($timein);", 
      "header(\"Search-Time: \" . $searchTime);", 
      "echo $encode;"
    ], 
    "method": "GET", 
    "dialog": [
      {
        "responses": [
          {
            "status": 200, 
            "body": [
              "\\uD836\\uDC00\\uD8D8\\uDD31\\uD8E2\\uDC23\\uD8F4\\uDE61\\uD836\\uDC03\\uD836\\uDD1B\\uD836\\uDD35\\uD8F4\\uDE61\\uD836\\uDCF4\\uD836\\uDCF5\\uD8D8\\uDD31\\uD836\\uDD0C\\uD836\\uDD06\\uD8E2\\uDC23\\uD836\\uDD09\\uD836\\uDD1A"
            ], 
            "type": "text/plain;charset=utf-8"
          }
        ]
      }
    ], 
    "name": "Get encoded query string"
  }, 
  {
    "route": "/tools/decode{?text}", 
    "lines": [
      "A function to decode SignWriting in Unicode (SWU) from UTF-16"
    ], 
    "name": "Decode text", 
    "parameters": [
      {
        "description": "The text to decode", 
        "type": "string", 
        "name": "text", 
        "example": "\\\\uD836\\\\uDC00"
      }
    ]
  }, 
  {
    "code": [
      "$decode = SignWriting\\decode($text);", 
      "$searchTime = searchtime($timein);", 
      "header(\"Search-Time: \" . $searchTime);", 
      "echo $decode;"
    ], 
    "method": "GET", 
    "dialog": [
      {
        "responses": [
          {
            "status": 200, 
            "body": [
              "\ud836\udc00"
            ], 
            "type": "text/plain;charset=utf-8"
          }
        ]
      }
    ], 
    "name": "Get decoded query string"
  }, 
  {
    "route": "/tools/utf8{?text}", 
    "name": "UTF-8 encode text", 
    "parameters": [
      {
        "description": "The text to encode", 
        "type": "string", 
        "name": "text", 
        "example": "\ud836\udc00\ud8d8\udd31\ud8e2\udc23\ud8f4\ude61\ud836\udc03\ud836\udd1b\ud836\udd35\ud8f4\ude61\ud836\udcf4\ud836\udcf5\ud8d8\udd31\ud836\udd0c\ud836\udd06\ud8e2\udc23\ud836\udd09\ud836\udd1a"
      }
    ]
  }, 
  {
    "code": [
      "$encode = SignWriting\\utf8($text);", 
      "$searchTime = searchtime($timein);", 
      "header(\"Search-Time: \" . $searchTime);", 
      "echo $encode;"
    ], 
    "method": "GET", 
    "dialog": [
      {
        "responses": [
          {
            "status": 200, 
            "body": [
              "%F0%9D%A0%80%F1%86%84%B1%F1%88%A0%A3%F1%8D%89%A1%F0%9D%A0%83%F0%9D%A4%9B%F0%9D%A4%B5%F1%8D%89%A1%F0%9D%A3%B4%F0%9D%A3%B5%F1%86%84%B1%F0%9D%A4%8C%F0%9D%A4%86%F1%88%A0%A3%F0%9D%A4%89%F0%9D%A4%9A"
            ], 
            "type": "text/plain;charset=utf-8"
          }
        ]
      }
    ], 
    "name": "Get utf-8 encoded query string"
  }, 
  {
    "route": "/tools/test{?text,opt1,opt2}", 
    "lines": [
      "A general purpose function for testing"
    ], 
    "name": "Test with input", 
    "parameters": [
      {
        "description": "Input for testing", 
        "type": "string", 
        "name": "text", 
        "example": "S10000"
      }, 
      {
        "description": "Option one for testing", 
        "type": "string", 
        "name": "opt1", 
        "example": "AS"
      }, 
      {
        "description": "Option two for testing", 
        "type": "string", 
        "name": "opt2", 
        "example": "AS"
      }
    ]
  }, 
  {
    "code": [
      "$test = SignWriting\\test($text,$opt1,$opt2);", 
      "$searchTime = searchtime($timein);", 
      "header(\"Search-Time: \" . $searchTime);", 
      "echo $test;"
    ], 
    "method": "GET", 
    "dialog": [
      {
        "responses": [
          {
            "status": 200, 
            "body": [
              "test output"
            ], 
            "type": "text/plain;charset=utf-8"
          }
        ]
      }
    ], 
    "name": "Get test results"
  }
]
