[Docs] Update documentation files (#1726) (#1732)
authorWonYoung Choi <wy80.choi@samsung.com>
Mon, 22 Jun 2020 06:19:49 +0000 (15:19 +0900)
committerGitHub <noreply@github.com>
Mon, 22 Jun 2020 06:19:49 +0000 (15:19 +0900)
- Modify description of first page
- Apply material designs
- Apply wide layouts
- Apply Tizen.DocFX.Plugins to provide tizen-specific tags.

22 files changed:
docs/api/index.md
docs/docfx.json
docs/index.md
docs/template/ManagedReference.common.js [deleted file]
docs/template/ManagedReference.extension.js [deleted file]
docs/template/RestApi.common.js [deleted file]
docs/template/partials/namespace.tmpl.partial [deleted file]
docs/template/styles/main.css [deleted file]
docs/templates/material/LICENSE [new file with mode: 0644]
docs/templates/material/partials/head.tmpl.partial [new file with mode: 0644]
docs/templates/material/styles/main.css [new file with mode: 0644]
docs/templates/tizen/favicon.ico [moved from docs/template/favicon.ico with 100% similarity]
docs/templates/tizen/partials/affix.tmpl.partial [new file with mode: 0644]
docs/templates/tizen/partials/class.header.tmpl.partial [moved from docs/template/partials/class.header.tmpl.partial with 87% similarity]
docs/templates/tizen/partials/class.tmpl.partial [moved from docs/template/partials/class.tmpl.partial with 85% similarity]
docs/templates/tizen/partials/footer.tmpl.partial [moved from docs/template/partials/footer.tmpl.partial with 100% similarity]
docs/templates/tizen/partials/head.tmpl.partial [new file with mode: 0644]
docs/templates/tizen/partials/logo.tmpl.partial [moved from docs/template/partials/logo.tmpl.partial with 100% similarity]
docs/templates/tizen/plugins/Tizen.DocFX.Plugins.MetadataProvider.dll [new file with mode: 0644]
docs/templates/tizen/styles/tizen.css [new file with mode: 0644]
docs/templates/tizen/token.json [moved from docs/template/token.json with 93% similarity]
docs/toc.yml

index 70f7a9b..c0eb072 100644 (file)
@@ -1,4 +1,4 @@
-## TizenFX API
+## API Level 6
 
 TizenFX API constists of the following namespaces:
 
index eab3762..068e9b9 100644 (file)
         "_appLogoPath" : "images/tizen_logo.png",
         "_appFaviconPath" : "images/tizen_favicon.ico",
         "_appFooter" : "<span>Copyright &copy; 2016-2020 Samsung <br> Generated by <strong>DocFX</strong></span>",
-       "_disableAffix": false,
-        "_disableContribution": true,
+        "_disableAffix": false,
+        "_disableContribution": false,
         "_baseUrl": "https://samsung.github.io/TizenFX/master/",
-        "_newIssueUrl": "https://github.com/Samsung/TizenFX/issues/new",
-        "_docEditBaseUrl": "https://github.com/Samsung/TizenFX/edit/docs/",
         "_enableSearch" : "true"
     },
     "dest": "../Artifacts/docs",
     "xrefService": [ "https://xref.docs.microsoft.com/query?uid={uid}" ],
     "template": [
       "default",
-      "./template"
+      "./templates/material",
+      "./templates/tizen"
     ],
     "postProcessors": ["ExtractSearchIndex"],
     "noLangKeyword": false,
index d2a5e22..c444ac3 100644 (file)
@@ -1,20 +1,23 @@
-# Tizen .NET
+## Tizen .NET
 
-Tizen .NET provides a rich set of interfaces allowing you to build compelling TV, mobile and wearable(preview) applications which achieve native performance. The programming environment includes the following:
+Tizen .NET is an exciting new way to develop applications for the Tizen operating system, running on 50 million Samsung devices, including TVs, wearables, mobile phones, and many other IoT devices around the world.
 
-- .NET Standard API, which implements the .NET Base Class library, allows you to use the well known C# language base class libraries and features, such as collections, threading, file I/O, and LINQ.
-- Xamarin.Forms, which allows you to efficiently build a user interface from standard components in C# or XAML.
-- TizenFX API, which allows you to access platform-specific features not covered by the generic .NET and Xamarin.Forms features,  such as system information and status, battery status, sensor date, and account and connectivity services.
-  For the full specification, see the [TizenFX API Reference.](api/index.md)
+The existing Tizen frameworks are either C-based with no advantages of a managed runtime, or HTML5-based with fewer features and lower performance than the C-based solution. With Tizen .NET, you can use the C# programming language and the Common Language Infrastructure standards, and have benefits from a managed runtime for faster application development and code execution that is efficient and secure.
 
-## .NET Standard API
 
-One of the major components of .NET Core is the .NET Standard. The .NET APIs provided by Tizen .NET follow the .NET Standard 2.0. The column titled "2.0" in the [official list](https://docs.microsoft.com/en-us/dotnet/standard/net-standard) of supported CoreFX APIs lists all the available .NET APIs.
+## TizenFX API
 
-## Xamarin.Forms
+TizenFX API allows applications to call into platform-specific functionality from the shared code. This functionality enables Xamarin.Forms applications to do things a native application can do, without causing the portable part of the application to become littered with operating system-specific details.
 
-[Xamarin.Forms](https://developer.xamarin.com/guides/xamarin-forms/getting-started/) provides cross-platform APIs, which allow you to create user interfaces that can be shared across platforms. The Tizen.NET Visual Studio extension enables Tizen support for Xamarin.Forms.
+The following table specifies the API Level supported by each version of the Tizen platform:
+
+| API Level   | Target Framework | Target Platform | API Reference   |
+|-------------|------------------|-----------------|-----------------|
+| API Level 8 | tizen80          | Tizen vNext     | https://samsung.github.io/TizenFX/master/ |
+| API Level 7 | tizen70          | Tizen 5.5 M3    | https://samsung.github.io/TizenFX/API7/   |
+| API Level 6 | tizen60          | Tizen 5.5 M2    | https://samsung.github.io/TizenFX/API6/   |
+| API Level 5 | tizen50          | Tizen 5.0 M2    | https://samsung.github.io/TizenFX/API5/   |
+| API Level 4 | tizen40          | Tizen 4.0 M2    | https://samsung.github.io/TizenFX/API4/   |
 
-You can efficiently build your Tizen .NET application UI and its supporting logic using the Xamarin.Forms APIs. Extended details for these APIs are available on the [Xamarin Web site](https://developer.xamarin.com/api/namespace/Xamarin.Forms/).
 
 [!include[TizenFX API](api/index.md)]
diff --git a/docs/template/ManagedReference.common.js b/docs/template/ManagedReference.common.js
deleted file mode 100644 (file)
index 4747772..0000000
+++ /dev/null
@@ -1,264 +0,0 @@
-// Copyright (c) Microsoft. All rights reserved. Licensed under the MIT license. See LICENSE file in the project root for full license information.
-var common = require('./common.js');
-var classCategory = 'class';
-var namespaceCategory = 'ns';
-
-exports.transform = function (model) {
-
-  if (!model) return null;
-
-  langs = model.langs;
-  handleItem(model, model._gitContribute, model._gitUrlPattern);
-  if (model.children) {
-    model.children.forEach(function (item) {
-      handleItem(item, model._gitContribute, model._gitUrlPattern);
-    });
-  }
-
-  if (model.type) {
-    switch (model.type.toLowerCase()) {
-      case 'namespace':
-        model.isNamespace = true;
-        if (model.children) groupChildren(model, namespaceCategory);
-        break;
-      case 'class':
-      case 'interface':
-      case 'struct':
-      case 'delegate':
-      case 'enum':
-        model.isClass = true;
-        if (model.children) groupChildren(model, classCategory);
-        model[getTypePropertyName(model.type)] = true;
-        break;
-      default:
-        break;
-    }
-  }
-
-  return model;
-}
-
-exports.getBookmarks = function (model, ignoreChildren) {
-  if (!model || !model.type || model.type.toLowerCase() === "namespace") return null;
-
-  var bookmarks = {};
-
-  if (typeof ignoreChildren == 'undefined' || ignoreChildren === false) {
-    if (model.children) {
-      model.children.forEach(function (item) {
-        bookmarks[item.uid] = common.getHtmlId(item.uid);
-        if (item.overload && item.overload.uid) {
-          bookmarks[item.overload.uid] = common.getHtmlId(item.overload.uid);
-        }
-      });
-    }
-  }
-
-  // Reference's first level bookmark should have no anchor
-  bookmarks[model.uid] = "";
-  return bookmarks;
-}
-
-exports.groupChildren = groupChildren;
-exports.getTypePropertyName = getTypePropertyName;
-exports.getCategory = getCategory;
-
-function groupChildren(model, category) {
-  if (!model || !model.type) {
-    return;
-  }
-  var typeChildrenItems = getDefinitions(category);
-  var grouped = {};
-
-  model.children.forEach(function (c) {
-    if (c.isEii) {
-      var type = "eii";
-    } else {
-      var type = c.type.toLowerCase();
-    }
-    if (!grouped.hasOwnProperty(type)) {
-      grouped[type] = [];
-    }
-    // special handle for field
-    if (type === "field" && c.syntax) {
-      c.syntax.fieldValue = c.syntax.return;
-      c.syntax.return = undefined;
-    }
-    // special handle for property
-    if ((type === "property" || type === "attachedproperty") && c.syntax) {
-      c.syntax.propertyValue = c.syntax.return;
-      c.syntax.return = undefined;
-    }
-    // special handle for event
-    if ((type === "event" || type === "attachedevent") && c.syntax) {
-      c.syntax.eventType = c.syntax.return;
-      c.syntax.return = undefined;
-    }
-    grouped[type].push(c);
-  })
-
-  var children = [];
-  for (var key in typeChildrenItems) {
-    if (typeChildrenItems.hasOwnProperty(key) && grouped.hasOwnProperty(key)) {
-      var typeChildrenItem = typeChildrenItems[key];
-      var items = grouped[key];
-      if (items && items.length > 0) {
-        var item = {};
-        for (var itemKey in typeChildrenItem) {
-          if (typeChildrenItem.hasOwnProperty(itemKey)) {
-            item[itemKey] = typeChildrenItem[itemKey];
-          }
-        }
-        item.children = items;
-        children.push(item);
-      }
-    }
-  }
-
-  model.children = children;
-}
-
-function getTypePropertyName(type) {
-  if (!type) {
-    return undefined;
-  }
-  var loweredType = type.toLowerCase();
-  var definition = getDefinition(loweredType);
-  if (definition) {
-    return definition.typePropertyName;
-  }
-
-  return undefined;
-}
-
-function getCategory(type) {
-  var classItems = getDefinitions(classCategory);
-  if (classItems.hasOwnProperty(type)) {
-    return classCategory;
-  }
-
-  var namespaceItems = getDefinitions(namespaceCategory);
-  if (namespaceItems.hasOwnProperty(type)) {
-    return namespaceCategory;
-  }
-  return undefined;
-}
-
-function getDefinition(type) {
-  var classItems = getDefinitions(classCategory);
-  if (classItems.hasOwnProperty(type)) {
-    return classItems[type];
-  }
-  var namespaceItems = getDefinitions(namespaceCategory);
-  if (namespaceItems.hasOwnProperty(type)) {
-    return namespaceItems[type];
-  }
-  return undefined;
-}
-
-function getDefinitions(category) {
-  var namespaceItems = {
-    "class":        { inClass: true,        typePropertyName: "inClass",        id: "classes" },
-    "struct":       { inStruct: true,       typePropertyName: "inStruct",       id: "structs" },
-    "interface":    { inInterface: true,    typePropertyName: "inInterface",    id: "interfaces" },
-    "enum":         { inEnum: true,         typePropertyName: "inEnum",         id: "enums" },
-    "delegate":     { inDelegate: true,     typePropertyName: "inDelegate",     id: "delegates" }
-  };
-  var classItems = {
-    "constructor":      { inConstructor: true,      typePropertyName: "inConstructor",      id: "constructors" },
-    "field":            { inField: true,            typePropertyName: "inField",            id: "fields" },
-    "property":         { inProperty: true,         typePropertyName: "inProperty",         id: "properties" },
-    "attachedproperty": { inAttachedProperty: true, typePropertyName: "inAttachedProperty", id: "attachedProperties" },
-    "method":           { inMethod: true,           typePropertyName: "inMethod",           id: "methods" },
-    "event":            { inEvent: true,            typePropertyName: "inEvent",            id: "events" },
-    "attachedevent":    { inAttachedEvent: true,    typePropertyName: "inAttachedEvent",    id: "attachedEvents" },
-    "operator":         { inOperator: true,         typePropertyName: "inOperator",         id: "operators" },
-    "eii":              { inEii: true,              typePropertyName: "inEii",              id: "eii" }
-  };
-  if (category === 'class') {
-    return classItems;
-  }
-  if (category === 'ns') {
-    return namespaceItems;
-  }
-  console.err("category '" + category + "' is not valid.");
-  return undefined;
-}
-
-function handleItem(vm, gitContribute, gitUrlPattern) {
-  // get contribution information
-  vm.docurl = common.getImproveTheDocHref(vm, gitContribute, gitUrlPattern);
-  vm.sourceurl = common.getViewSourceHref(vm, null, gitUrlPattern);
-
-  // set to null incase mustache looks up
-  vm.summary = vm.summary || null;
-  vm.remarks = vm.remarks || null;
-  //TIZEN
-  vm.sinceTizen = vm.sinceTizen || null;
-  vm.precondition = vm.precondition || null;
-  vm.postcondition = vm.postcondition || null;
-  vm.feature = vm.feature || null;
-  vm.privlevel = vm.privlevel || null;
-  vm.privilege = vm.privilege || null;
-  //
-  vm.conceptual = vm.conceptual || null;
-  vm.syntax = vm.syntax || null;
-  vm.implements = vm.implements || null;
-  vm.example = vm.example || null;
-  common.processSeeAlso(vm);
-
-  // id is used as default template's bookmark
-  vm.id = common.getHtmlId(vm.uid);
-  if (vm.overload && vm.overload.uid) {
-    vm.overload.id = common.getHtmlId(vm.overload.uid);
-  }
-
-  if (vm.supported_platforms) {
-    vm.supported_platforms = transformDictionaryToArray(vm.supported_platforms);
-  }
-
-  if (vm.requirements) {
-    var type = vm.type.toLowerCase();
-    if (type == "method") {
-      vm.requirements_method = transformDictionaryToArray(vm.requirements);
-    } else {
-      vm.requirements = transformDictionaryToArray(vm.requirements);
-    }
-  }
-
-  if (vm && langs) {
-    if (shouldHideTitleType(vm)) {
-      vm.hideTitleType = true;
-    } else {
-      vm.hideTitleType = false;
-    }
-
-    if (shouldHideSubtitle(vm)) {
-      vm.hideSubtitle = true;
-    } else {
-      vm.hideSubtitle = false;
-    }
-  }
-
-  function shouldHideTitleType(vm) {
-    var type = vm.type.toLowerCase();
-    return ((type === 'namespace' && langs.length == 1 && (langs[0] === 'objectivec' || langs[0] === 'java' || langs[0] === 'c'))
-      || ((type === 'class' || type === 'enum') && langs.length == 1 && langs[0] === 'c'));
-  }
-
-  function shouldHideSubtitle(vm) {
-    var type = vm.type.toLowerCase();
-    return (type === 'class' || type === 'namespace') && langs.length == 1 && langs[0] === 'c';
-  }
-
-  function transformDictionaryToArray(dic) {
-    var array = [];
-    for (var key in dic) {
-      if (dic.hasOwnProperty(key)) {
-        array.push({ "name": key, "value": dic[key] })
-      }
-    }
-
-    return array;
-  }
-}
\ No newline at end of file
diff --git a/docs/template/ManagedReference.extension.js b/docs/template/ManagedReference.extension.js
deleted file mode 100644 (file)
index 714f939..0000000
+++ /dev/null
@@ -1,27 +0,0 @@
-// Copyright (c) Microsoft. All rights reserved. Licensed under the MIT license. See LICENSE file in the project root for full license information.
-
-/**
- * This method will be called at the start of exports.transform in ManagedReference.html.primary.js
- */
-exports.preTransform = function (model) {
-  function applyDefaultPrivilegeLevel(item) {
-    if (item.privilege && !item.privlevel) {
-      //console.log('Default "public" privilege for ' + item.uid);
-      item.privlevel = 'public';
-    }
-    if (item.children) {
-      for (var i=0, len=item.children.length; i < len; i++) {
-        applyDefaultPrivilegeLevel(item.children[i]);
-      }
-    }
-  };
-  applyDefaultPrivilegeLevel(model);
-  return model;
-}
-
-/**
- * This method will be called at the end of exports.transform in ManagedReference.html.primary.js
- */
-exports.postTransform = function (model) {
-  return model;
-}
\ No newline at end of file
diff --git a/docs/template/RestApi.common.js b/docs/template/RestApi.common.js
deleted file mode 100644 (file)
index 509d6e5..0000000
+++ /dev/null
@@ -1,298 +0,0 @@
-// Copyright (c) Microsoft. All rights reserved. Licensed under the MIT license. See LICENSE file in the project root for full license information.
-var common = require('./common.js');
-
-exports.transform = function (model) {
-    var _fileNameWithoutExt = common.path.getFileNameWithoutExtension(model._path);
-    model._jsonPath = _fileNameWithoutExt + ".swagger.json";
-    model.title = model.title || model.name;
-    model.docurl = model.docurl || common.getImproveTheDocHref(model, model._gitContribute, model._gitUrlPattern);
-    model.sourceurl = model.sourceurl || common.getViewSourceHref(model, null, model._gitUrlPattern);
-    model.htmlId = common.getHtmlId(model.uid);
-    if (model.children) {
-        for (var i = 0; i < model.children.length; i++) {
-            var child = model.children[i];
-            child.docurl = child.docurl || common.getImproveTheDocHref(child, model._gitContribute, model._gitUrlPattern);
-            if (child.operation) {
-                child.operation = child.operation.toUpperCase();
-            }
-            child.path = appendQueryParamsToPath(child.path, child.parameters);
-            child.sourceurl = child.sourceurl || common.getViewSourceHref(child, null, model._gitUrlPattern);
-            child.conceptual = child.conceptual || ''; // set to empty incase mustache looks up
-            child.summary = child.summary || ''; // set to empty incase mustache looks up
-            child.description = child.description || ''; // set to empty incase mustache looks up
-            child.footer = child.footer || ''; // set to empty incase mustache looks up
-            child.remarks = child.remarks || ''; // set to empty incase mustache looks up
-            //TIZEN
-            child.sinceTizen = child.sinceTizen || ''; 
-            child.precondition = child.precondition || ''; 
-            child.postcondition = child.postcondition || ''; 
-            child.feature = child.feature || ''; 
-            child.privlevel = child.privlevel || ''; 
-            child.privilege = child.privilege || ''; 
-            //
-            child.htmlId = common.getHtmlId(child.uid);
-
-            formatExample(child.responses);
-            resolveAllOf(child);
-            transformReference(child);
-        };
-        if (!model.tags || model.tags.length === 0) {
-            var childTags = [];
-            for (var i = 0; i < model.children.length; i++) {
-                var child = model.children[i];
-                if (child.tags && child.tags.length > 0) {
-                    for (var k = 0; k < child.tags.length; k++) {
-                        // for each tag in child, add unique tag string into childTags
-                        if (childTags.indexOf(child.tags[k]) === -1) {
-                            childTags.push(child.tags[k]);
-                        }
-                    }
-                }
-            }
-            // sort alphabetically
-            childTags.sort();
-            if (childTags.length > 0) {
-                model.tags = [];
-                for (var i = 0; i < childTags.length; i++) {
-                    // add tags into model
-                    model.tags.push({ "name": childTags[i] });
-                }
-            }
-        }
-        if (model.tags) {
-            for (var i = 0; i < model.tags.length; i++) {
-                var children = getChildrenByTag(model.children, model.tags[i].name);
-                if (children) {
-                    // set children into tag section
-                    model.tags[i].children = children;
-                }
-                model.tags[i].conceptual = model.tags[i].conceptual || ''; // set to empty incase mustache looks up
-                if (model.tags[i]["x-bookmark-id"]) {
-                    model.tags[i].htmlId = model.tags[i]["x-bookmark-id"];
-                } else if (model.tags[i].uid) {
-                    model.tags[i].htmlId = common.getHtmlId(model.tags[i].uid);
-                }
-            }
-            for (var i = 0; i < model.children.length; i++) {
-                var child = model.children[i];
-                if (child.includedInTags) {
-                    // set child to undefined, which is already moved to tag section
-                    model.children[i] = undefined;
-                    if (!model.isTagLayout) {
-                        // flags to indicate the model is tag layout
-                        model.isTagLayout = true;
-                    }
-                }
-            }
-            // remove undefined child
-            model.children = model.children.filter(function (o) { return o; });
-        }
-    }
-
-    return model;
-
-    function getChildrenByTag(children, tag) {
-        if (!children) return;
-        return children.filter(function (child) {
-            if (child.tags && child.tags.indexOf(tag) > -1) {
-                child.includedInTags = true;
-                return true;
-            }
-        })
-    }
-
-    function formatExample(responses) {
-        if (!responses) return;
-        for (var i = responses.length - 1; i >= 0; i--) {
-            var examples = responses[i].examples;
-            if (!examples) continue;
-            for (var j = examples.length - 1; j >= 0; j--) {
-                var content = examples[j].content;
-                if (!content) continue;
-                var mimeType = examples[j].mimeType;
-                if (mimeType === 'application/json') {
-                    try {
-                        var json = JSON.parse(content)
-                        responses[i].examples[j].content = JSON.stringify(json, null, '  ');
-                    } catch (e) {
-                        console.warn("example is not a valid JSON object.");
-                    }
-                }
-            }
-        }
-    }
-
-    function resolveAllOf(obj) {
-        if (Array.isArray(obj)) {
-            for (var i = 0; i < obj.length; i++) {
-                resolveAllOf(obj[i]);
-            }
-        }
-        else if (typeof obj === "object") {
-            for (var key in obj) {
-                if (obj.hasOwnProperty(key)) {
-                    if (key === "allOf" && Array.isArray(obj[key])) {
-                        // find 'allOf' array and process
-                        processAllOfArray(obj[key], obj);
-                        // delete 'allOf' value
-                        delete obj[key];
-                    } else {
-                        resolveAllOf(obj[key]);
-                    }
-                }
-            }
-        }
-    }
-
-    function processAllOfArray(allOfArray, originalObj) {
-        // for each object in 'allOf' array, merge the values to those in the same level with 'allOf'
-        for (var i = 0; i < allOfArray.length; i++) {
-            var item = allOfArray[i];
-            for (var key in item) {
-                if (originalObj.hasOwnProperty(key)) {
-                    mergeObjByKey(originalObj[key], item[key]);
-                } else {
-                    originalObj[key] = item[key];
-                }
-            }
-        }
-    }
-
-    function mergeObjByKey(targetObj, sourceObj) {
-        for (var key in sourceObj) {
-            // merge only when target object doesn't define the key
-            if (!targetObj.hasOwnProperty(key)) {
-                targetObj[key] = sourceObj[key];
-            }
-        }
-    }
-
-    function transformReference(obj) {
-        if (Array.isArray(obj)) {
-            for (var i = 0; i < obj.length; i++) {
-                transformReference(obj[i]);
-            }
-        }
-        else if (typeof obj === "object") {
-            for (var key in obj) {
-                if (obj.hasOwnProperty(key)) {
-                    if (key === "schema") {
-                        // transform schema.properties from obj to key value pair
-                        transformProperties(obj[key]);
-                    } else {
-                        transformReference(obj[key]);
-                    }
-                }
-            }
-        }
-    }
-
-    function transformProperties(obj) {
-        if (obj.properties) {
-            if (obj.required && Array.isArray(obj.required)) {
-                for (var i = 0; i < obj.required.length; i++) {
-                    var field = obj.required[i];
-                    if (obj.properties[field]) {
-                        // add required field as property
-                        obj.properties[field].required = true;
-                    }
-                }
-                delete obj.required;
-            }
-            var array = [];
-            for (var key in obj.properties) {
-                if (obj.properties.hasOwnProperty(key)) {
-                    var value = obj.properties[key];
-                    // set description to null incase mustache looks up
-                    value.description = value.description || null;
-
-                    transformPropertiesValue(value);
-                    array.push({ key: key, value: value });
-                }
-            }
-            obj.properties = array;
-        }
-    }
-
-    function transformPropertiesValue(obj) {
-        if (obj.type === "array" && obj.items) {
-            // expand array to transformProperties
-            obj.items.properties = obj.items.properties || null;
-            obj.items['x-internal-ref-name'] = obj.items['x-internal-ref-name'] || null;
-            obj.items['x-internal-loop-ref-name'] = obj.items['x-internal-loop-ref-name'] || null;
-            transformProperties(obj.items);
-        } else if (obj.properties && !obj.items) {
-            // fill obj.properties into obj.items.properties, to be rendered in the same way with array
-            obj.items = {};
-            obj.items.properties = obj.properties || null;
-            delete obj.properties;
-            if (obj.required) {
-                obj.items.required = obj.required;
-                delete obj.required;
-            }
-            obj.items['x-internal-ref-name'] = obj['x-internal-ref-name'] || null;
-            obj.items['x-internal-loop-ref-name'] = obj['x-internal-loop-ref-name'] || null;
-            transformProperties(obj.items);
-        }
-    }
-
-    function appendQueryParamsToPath(path, parameters) {
-        if (!path || !parameters) return path;
-
-        var requiredQueryParams = parameters.filter(function (p) { return p.in === 'query' && p.required; });
-        if (requiredQueryParams.length > 0) {
-            path = formatParams(path, requiredQueryParams, true);
-        }
-
-        var optionalQueryParams = parameters.filter(function (p) { return p.in === 'query' && !p.required; });
-        if (optionalQueryParams.length > 0) {
-            path += "[";
-            path = formatParams(path, optionalQueryParams, requiredQueryParams.length === 0);
-            path += "]";
-        }
-        return path;
-    }
-
-    function formatParams(path, parameters, isFirst) {
-        for (var i = 0; i < parameters.length; i++) {
-            if (i === 0 && isFirst) {
-                path += "?";
-            } else {
-                path += "&";
-            }
-            path += parameters[i].name;
-        }
-        return path;
-    }
-}
-
-exports.getBookmarks = function (model) {
-    if (!model) return null;
-
-    var bookmarks = {};
-
-    bookmarks[model.uid] = "";
-    if (model.tags) {
-        model.tags.forEach(function (tag) {
-            if (tag.uid) {
-                bookmarks[tag.uid] = tag["x-bookmark-id"] ? tag["x-bookmark-id"] : common.getHtmlId(tag.uid);
-            }
-            if (tag.children) {
-                tag.children.forEach(function (child) {
-                    if (child.uid) {
-                        bookmarks[child.uid] = common.getHtmlId(child.uid);
-                    }
-                })
-            }
-        })
-    }
-    if (model.children) {
-        model.children.forEach(function (child) {
-            if (child.uid) {
-                bookmarks[child.uid] = common.getHtmlId(child.uid);
-            }
-        });
-    }
-
-    return bookmarks;
-}
diff --git a/docs/template/partials/namespace.tmpl.partial b/docs/template/partials/namespace.tmpl.partial
deleted file mode 100644 (file)
index 8cbc3e3..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-{{!Copyright (c) Microsoft. All rights reserved. Licensed under the MIT license. See LICENSE file in the project root for full license information.}}
-
-<h1 id="{{id}}" data-uid="{{uid}}" class="text-break">{{>partials/title}}</h1>
-<div class="markdown level0 summary">{{{summary}}}</div>
-<div class="markdown level0 conceptual">{{{conceptual}}}</div>
-<div class="markdown level0 remarks">{{{remarks}}}</div>
-{{#sincetizen}}
-<h5 id="{{id}}_sincetizen" class="sincetizen">{{__global.sincetizen}}</h5>
-<span class="level0 sincetizen">{{{sincetizen}}}</span>
-{{/sincetizen}}
-{{#feature}}
-<h5 id="{{id}}_feature" class="feature">{{__global.feature}}</h5>
-<div class="markdown level0 feature">{{{feature}}}</div>
-{{/feature}}
-{{#children}}
-  <h3 id="{{id}}">{{>partials/namespaceSubtitle}}</h3>
-  {{#children}}
-    <h4><xref uid="{{uid}}" altProperty="fullName" displayProperty="name"/></h4>
-    <section>{{{summary}}}</section>
-  {{/children}}
-{{/children}}
diff --git a/docs/template/styles/main.css b/docs/template/styles/main.css
deleted file mode 100644 (file)
index 4ff3af1..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
-h5.sinceTizen, h5.privlevel {
-  display: inline-block;
-}
-h5.sinceTizen:after, h5.privlevel:after {
-  content: ": ";
-}
-span.sinceTizen:after, span.privlevel:after {
-  white-space: pre;
-  content: "\A";
-}
diff --git a/docs/templates/material/LICENSE b/docs/templates/material/LICENSE
new file mode 100644 (file)
index 0000000..4576c42
--- /dev/null
@@ -0,0 +1,21 @@
+MIT License
+
+Copyright (c) 2019 Oscar Vásquez
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
diff --git a/docs/templates/material/partials/head.tmpl.partial b/docs/templates/material/partials/head.tmpl.partial
new file mode 100644 (file)
index 0000000..c05e8c1
--- /dev/null
@@ -0,0 +1,21 @@
+{{!Copyright (c) Oscar Vasquez. All rights reserved. Licensed under the MIT license. See LICENSE file in the project root for full license information.}}
+
+<head>
+  <meta charset="utf-8">
+  <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
+  <title>{{#title}}{{title}}{{/title}}{{^title}}{{>partials/title}}{{/title}} {{#_appTitle}}| {{_appTitle}} {{/_appTitle}}</title>
+  <meta name="viewport" content="width=device-width">
+  <meta name="title" content="{{#title}}{{title}}{{/title}}{{^title}}{{>partials/title}}{{/title}} {{#_appTitle}}| {{_appTitle}} {{/_appTitle}}">
+  <meta name="generator" content="docfx {{_docfxVersion}}">
+  {{#_description}}<meta name="description" content="{{_description}}">{{/_description}}
+  <link rel="shortcut icon" href="{{_rel}}{{{_appFaviconPath}}}{{^_appFaviconPath}}favicon.ico{{/_appFaviconPath}}">
+  <link rel="stylesheet" href="{{_rel}}styles/docfx.vendor.css">
+  <link rel="stylesheet" href="{{_rel}}styles/docfx.css">
+  <link rel="stylesheet" href="{{_rel}}styles/main.css">
+  <link href="https://fonts.googleapis.com/css?family=Roboto" rel="stylesheet"> 
+  <meta property="docfx:navrel" content="{{_navRel}}">
+  <meta property="docfx:tocrel" content="{{_tocRel}}">
+  {{#_noindex}}<meta name="searchOption" content="noindex">{{/_noindex}}
+  {{#_enableSearch}}<meta property="docfx:rel" content="{{_rel}}">{{/_enableSearch}}
+  {{#_enableNewTab}}<meta property="docfx:newtab" content="true">{{/_enableNewTab}}
+</head>
\ No newline at end of file
diff --git a/docs/templates/material/styles/main.css b/docs/templates/material/styles/main.css
new file mode 100644 (file)
index 0000000..165a878
--- /dev/null
@@ -0,0 +1,299 @@
+/* COLOR VARIABLES*/
+:root {
+  --header-bg-color: #0d47a1;
+  --header-ft-color: #fff;
+  --highlight-light: #5e92f3;
+  --highlight-dark: #003c8f;
+  --accent-dim: #eee;
+  --font-color: #34393e;
+  --card-box-shadow: 0 1px 2px 0 rgba(61, 65, 68, 0.06), 0 1px 3px 1px rgba(61, 65, 68, 0.16);
+  --under-box-shadow: 0 4px 4px -2px #eee;
+  --search-box-shadow: 0px 0px 5px 0px rgba(255,255,255,1);
+}
+
+body {
+  color: var(--font-color);
+  font-family: "Roboto", sans-serif;
+  line-height: 1.5;
+  font-size: 16px;
+  -ms-text-size-adjust: 100%;
+  -webkit-text-size-adjust: 100%;
+  word-wrap: break-word;
+}
+
+/* HIGHLIGHT COLOR */
+
+button,
+a {
+  color: var(--highlight-dark);
+  cursor: pointer;
+}
+
+button:hover,
+button:focus,
+a:hover,
+a:focus {
+  color: var(--highlight-light);
+  text-decoration: none;
+}
+
+.toc .nav > li.active > a {
+  color: var(--highlight-dark);
+}
+
+.toc .nav > li.active > a:hover,
+.toc .nav > li.active > a:focus {
+  color: var(--highlight-light);
+}
+
+.pagination > .active > a {
+  background-color: var(--header-bg-color);
+  border-color: var(--header-bg-color);
+}
+
+.pagination > .active > a,
+.pagination > .active > a:focus,
+.pagination > .active > a:hover,
+.pagination > .active > span,
+.pagination > .active > span:focus,
+.pagination > .active > span:hover {
+  background-color: var(--highlight-light);
+  border-color: var(--highlight-light);
+}
+
+/* HEADINGS */
+
+h1 {
+  font-weight: 600;
+  font-size: 32px;
+}
+
+h2 {
+  font-weight: 600;
+  font-size: 24px;
+  line-height: 1.8;
+}
+
+h3 {
+  font-weight: 600;
+  font-size: 20px;
+  line-height: 1.8;
+}
+
+h5 {
+  font-size: 14px;
+  padding: 10px 0px;
+}
+
+article h1,
+article h2,
+article h3,
+article h4 {
+  margin-top: 35px;
+  margin-bottom: 15px;
+}
+
+article h4 {
+  padding-bottom: 8px;
+  border-bottom: 2px solid #ddd;
+}
+
+/* NAVBAR */
+
+.navbar-brand > img {
+  color: var(--header-ft-color);
+}
+
+.navbar {
+  border: none;
+  /* Both navbars use box-shadow */
+  -webkit-box-shadow: var(--card-box-shadow);
+  -moz-box-shadow: var(--card-box-shadow);
+  box-shadow: var(--card-box-shadow);
+}
+
+.subnav {
+  border-top: 1px solid #ddd;
+  background-color: #fff;
+}
+
+.navbar-inverse {
+  background-color: var(--header-bg-color);
+  z-index: 100;
+}
+
+.navbar-inverse .navbar-nav > li > a,
+.navbar-inverse .navbar-text {
+  color: var(--header-ft-color);
+  background-color: var(--header-bg-color);
+  border-bottom: 3px solid transparent;
+  padding-bottom: 12px;
+}
+
+.navbar-inverse .navbar-nav > li > a:focus,
+.navbar-inverse .navbar-nav > li > a:hover {
+  color: var(--header-ft-color);
+  background-color: var(--header-bg-color);
+  border-bottom: 3px solid white;
+}
+
+.navbar-inverse .navbar-nav > .active > a,
+.navbar-inverse .navbar-nav > .active > a:focus,
+.navbar-inverse .navbar-nav > .active > a:hover {
+  color: var(--header-ft-color);
+  background-color: var(--header-bg-color);
+  border-bottom: 3px solid white;
+}
+
+.navbar-form .form-control {
+  border: 0;
+  border-radius: 0;
+}
+
+.navbar-form .form-control:hover {
+  box-shadow: var(--search-box-shadow);
+}
+
+.toc-filter > input:hover {
+  box-shadow: var(--under-box-shadow);
+}
+
+/* NAVBAR TOGGLED (small screens) */
+
+.navbar-inverse .navbar-collapse, .navbar-inverse .navbar-form {
+  border: none;
+}
+.navbar-inverse .navbar-toggle {
+  box-shadow: var(--card-box-shadow);
+  border: none;
+}
+
+.navbar-inverse .navbar-toggle:focus,
+.navbar-inverse .navbar-toggle:hover {
+  background-color: var(--header-ft-color);
+}
+
+/* SIDEBAR */
+
+.toc .level1 > li {
+  font-weight: 400;
+}
+
+.toc .nav > li > a {
+  color: var(--font-color);
+}
+
+.sidefilter {
+  background-color: #fff;
+  border-left: none;
+  border-right: none;
+}
+
+.sidefilter {
+  background-color: #fff;
+  border-left: none;
+  border-right: none;
+}
+
+.toc-filter {
+  padding: 10px;
+  margin: 0;
+}
+
+.toc-filter > input {
+  border: none;
+  border-bottom: 2px solid var(--accent-dim);
+}
+
+.toc-filter > .filter-icon {
+  display: none;
+}
+
+.sidetoc > .toc {
+  background-color: #fff;
+  overflow-x: hidden;
+}
+
+.sidetoc {
+  background-color: #fff;
+  border: none;
+}
+
+/* ALERTS */
+
+.alert {
+  padding: 0px 0px 5px 0px;
+  color: inherit;
+  background-color: inherit;
+  border: none;
+  box-shadow: var(--card-box-shadow);
+}
+
+.alert > p {
+  margin-bottom: 0;
+  padding: 5px 10px;
+}
+
+.alert > ul {
+  margin-bottom: 0;
+  padding: 5px 40px;
+}
+
+.alert > h5 {
+  padding: 10px 15px;
+  margin-top: 0;
+  text-transform: uppercase;
+  font-weight: bold;
+  border-radius: 4px 4px 0 0;
+}
+
+.alert-info > h5 {
+  color: #1976d2;
+  border-bottom: 4px solid #1976d2;
+  background-color: #e3f2fd;
+}
+
+.alert-warning > h5 {
+  color: #f57f17;
+  border-bottom: 4px solid #f57f17;
+  background-color: #fff3e0;
+}
+
+.alert-danger > h5 {
+  color: #d32f2f;
+  border-bottom: 4px solid #d32f2f;
+  background-color: #ffebee;
+}
+
+/* CODE HIGHLIGHT */
+pre {
+  padding: 9.5px;
+  margin: 0 0 10px;
+  font-size: 13px;
+  word-break: break-all;
+  word-wrap: break-word;
+  background-color: #fffaef;
+  border-radius: 4px;
+  border: none;
+  box-shadow: var(--card-box-shadow);
+}
+
+/* STYLE FOR IMAGES */
+
+.article .small-image {
+  margin-top: 15px;
+  box-shadow: var(--card-box-shadow);
+  max-width: 350px;
+}
+
+.article .medium-image {
+  margin-top: 15px;
+  box-shadow: var(--card-box-shadow);
+  max-width: 550px;
+}
+
+.article .large-image {
+  margin-top: 15px;
+  box-shadow: var(--card-box-shadow);
+  max-width: 700px;
+}
\ No newline at end of file
diff --git a/docs/templates/tizen/partials/affix.tmpl.partial b/docs/templates/tizen/partials/affix.tmpl.partial
new file mode 100644 (file)
index 0000000..e08400f
--- /dev/null
@@ -0,0 +1,20 @@
+{{!Copyright (c) Microsoft. All rights reserved. Licensed under the MIT license. See LICENSE file in the project root for full license information.}}
+
+<div class="hidden-sm col-md-2" role="complementary">
+  <div class="sideaffix">
+    {{^_disableContribution}}
+    <div class="contribution">
+      <ul class="nav">
+        {{#sourceurl}}
+        <li>
+          <a href="{{sourceurl}}" class="contribution-link">{{__global.viewSource}}</a>
+        </li>
+        {{/sourceurl}}
+      </ul>
+    </div>
+    {{/_disableContribution}}
+    <nav class="bs-docs-sidebar hidden-print hidden-xs hidden-sm affix" id="affix">
+    <!-- <p><a class="back-to-top" href="#top">Back to top</a><p> -->
+    </nav>
+  </div>
+</div>
 {{/inheritedMembers.0}}
 <h6><strong>{{__global.namespace}}</strong>: {{{namespace.specName.0.value}}}</h6>
 <h6><strong>{{__global.assembly}}</strong>: {{assemblies.0}}.dll</h6>
+{{#sincetizen}}
+<h6><strong>{{__global.sincetizen}}</strong>: {{{sincetizen}}}</h6>
+{{/sincetizen}}
+{{#privlevel}}
+<h6><strong>{{__global.privlevel}}</strong>: {{{privlevel}}}</h6>
+{{/privlevel}}
+{{#privilege}}
+<h6><strong>{{__global.privilege}}</strong>: <span class="tz_multiple_items">{{{privilege}}}</span></h6>
+{{/privilege}}
+{{#feature}}
+<h6><strong>{{__global.feature}}</strong>: <span class="tz_multiple_items">{{{feature}}}</span></h6>
+{{/feature}}
 <h5 id="{{id}}_syntax">{{__global.syntax}}</h5>
 <div class="codewrapper">
   <pre><code class="lang-{{_lang}} hljs">{{syntax.content.0.value}}</code></pre>
 <h5 id="{{id}}_remarks"><strong>{{__global.remarks}}</strong></h5>
 <div class="markdown level0 remarks">{{{remarks}}}</div>
 {{/remarks}}
-
-{{#sincetizen}}
-<h5 id="{{id}}_sincetizen" class="sincetizen">{{__global.sincetizen}}</h5>
-<span class="level0 sincetizen">{{{sincetizen}}}</span>
-{{/sincetizen}}
-{{#privlevel}}
-<h5 id="{{id}}_privlevel" class="privlevel">{{__global.privlevel}}</h5>
-<div class="markdown level0 privlevel">{{{privlevel}}}</div>
-{{/privlevel}}
-{{#privilege}}
-<h5 id="{{id}}_privilege" class="privilege">{{__global.privilege}}</h5>
-<div class="markdown level0 privilege">{{{privilege}}}</div>
-{{/privilege}}
-{{#feature}}
-<h5 id="{{id}}_feature" class="feature">{{__global.feature}}</h5>
-<div class="markdown level0 feature">{{{feature}}}</div>
-{{/feature}}
-
 {{#example.0}}
 <h5 id="{{id}}_examples"><strong>{{__global.examples}}</strong></h5>
 {{/example.0}}
similarity index 85%
rename from docs/template/partials/class.tmpl.partial
rename to docs/templates/tizen/partials/class.tmpl.partial
index d2475c2..0e6f4ce 100644 (file)
@@ -5,11 +5,6 @@
 <h3 id="{{id}}">{{>partials/classSubtitle}}</h3>
 {{#children}}
 {{^_disableContribution}}
-{{#docurl}}
-<span class="small pull-right mobile-hide">
-  <span class="divider">|</span>
-  <a href="{{docurl}}">{{__global.improveThisDoc}}</a>
-</span>{{/docurl}}
 {{#sourceurl}}
 <span class="small pull-right mobile-hide">
   <a href="{{sourceurl}}">{{__global.viewSource}}</a>
 <h5 id="{{id}}_remarks">{{__global.remarks}}</h5>
 <div class="markdown level1 remarks">{{{remarks}}}</div>
 {{/remarks}}
-
-{{#sinceTizen}}
-<h5 id="{{id}}_sinceTizen" class="sinceTizen">{{__global.sinceTizen}}</h5>
-<span class="level1 sinceTizen">{{{sinceTizen}}}</span>
-{{/sinceTizen}}
-{{#pre}}
-<h5 id="{{id}}_pre" class="preconditions">{{__global.pre}}</h5>
-<div class="markdown level1 preconditions">{{{pre}}}</div>
-{{/pre}}
-{{#post}}
-<h5 id="{{id}}_post" class="postconditions">{{__global.post}}</h5>
-<div class="markdown level1 postconditions">{{{post}}}</div>
-{{/post}}
-{{#privlevel}}
-<h5 id="{{id}}_privlevel" class="privlevel">{{__global.privlevel}}</h5>
-<span class="markdown level1 privlevel">{{{privlevel}}}</span>
-{{/privlevel}}
-{{#privilege}}
-<h5 id="{{id}}_privilege" class="privilege">{{__global.privilege}}</h5>
-<div class="markdown level1 privilege">{{{privilege}}}</div>
-{{/privilege}}
-{{#feature}}
-<h5 id="{{id}}_feature" class="feature">{{__global.feature}}</h5>
-<div class="markdown level1 feature">{{{feature}}}</div>
-{{/feature}}
-
 {{#example.0}}
 <h5 id="{{id}}_examples">{{__global.examples}}</h5>
 {{/example.0}}
 {{#seealso.0}}
 </div>
 {{/seealso.0}}
+
+{{#sincetizen}}
+<h6><strong>{{__global.sincetizen}}</strong>: {{{sincetizen}}}</h6>
+{{/sincetizen}}
+{{#privlevel}}
+<h6><strong>{{__global.privlevel}}</strong>: {{{privlevel}}}</h6>
+{{/privlevel}}
+{{#privilege}}
+<h6><strong>{{__global.privilege}}</strong>: <span class="tz_multiple_items">{{{privilege}}}</span></h6>
+{{/privilege}}
+{{#feature}}
+<h6><strong>{{__global.feature}}</strong>: <span class="tz_multiple_items">{{{feature}}}</span></h6>
+{{/feature}}
+{{#precondition}}
+<h6><strong>{{__global.precondition}}</strong>: {{{precondition}}}</h6>
+{{/precondition}}
+{{#postcondition}}
+<h6><strong>{{__global.postcondition}}</strong>: {{{postcondition}}}</h6>
+{{/postcondition}}
+
 {{/children}}
 {{/children}}
 {{#implements.0}}
diff --git a/docs/templates/tizen/partials/head.tmpl.partial b/docs/templates/tizen/partials/head.tmpl.partial
new file mode 100644 (file)
index 0000000..c8d3669
--- /dev/null
@@ -0,0 +1,20 @@
+<head>
+  <meta charset="utf-8">
+  <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
+  <title>{{#title}}{{title}}{{/title}}{{^title}}{{>partials/title}}{{/title}} {{#_appTitle}}| {{_appTitle}} {{/_appTitle}}</title>
+  <meta name="viewport" content="width=device-width">
+  <meta name="title" content="{{#title}}{{title}}{{/title}}{{^title}}{{>partials/title}}{{/title}} {{#_appTitle}}| {{_appTitle}} {{/_appTitle}}">
+  <meta name="generator" content="docfx {{_docfxVersion}}">
+  {{#_description}}<meta name="description" content="{{_description}}">{{/_description}}
+  <link rel="shortcut icon" href="{{_rel}}{{{_appFaviconPath}}}{{^_appFaviconPath}}favicon.ico{{/_appFaviconPath}}">
+  <link rel="stylesheet" href="{{_rel}}styles/docfx.vendor.css">
+  <link rel="stylesheet" href="{{_rel}}styles/docfx.css">
+  <link rel="stylesheet" href="{{_rel}}styles/main.css">
+  <link rel="stylesheet" href="{{_rel}}styles/tizen.css">
+  <link href="https://fonts.googleapis.com/css?family=Roboto" rel="stylesheet">
+  <meta property="docfx:navrel" content="{{_navRel}}">
+  <meta property="docfx:tocrel" content="{{_tocRel}}">
+  {{#_noindex}}<meta name="searchOption" content="noindex">{{/_noindex}}
+  {{#_enableSearch}}<meta property="docfx:rel" content="{{_rel}}">{{/_enableSearch}}
+  {{#_enableNewTab}}<meta property="docfx:newtab" content="true">{{/_enableNewTab}}
+</head>
\ No newline at end of file
diff --git a/docs/templates/tizen/plugins/Tizen.DocFX.Plugins.MetadataProvider.dll b/docs/templates/tizen/plugins/Tizen.DocFX.Plugins.MetadataProvider.dll
new file mode 100644 (file)
index 0000000..012f47d
Binary files /dev/null and b/docs/templates/tizen/plugins/Tizen.DocFX.Plugins.MetadataProvider.dll differ
diff --git a/docs/templates/tizen/styles/tizen.css b/docs/templates/tizen/styles/tizen.css
new file mode 100644 (file)
index 0000000..2df69e1
--- /dev/null
@@ -0,0 +1,38 @@
+:root {
+  --header-bg-color: #005;
+}
+
+.tz_multiple_items > span {
+  margin-right: 10px;
+  background-color: #ccc;
+}
+
+.decalaration, .parameters, .returns, .typeParameters, .fieldValue, .propertyValue, .eventType, .overrides, .exceptions {
+  color: #777;
+}
+
+.container {
+  width: calc(100% - 10vw);
+}
+
+.sidetoc {
+  width: 350px;
+}
+
+.sidefilter {
+  width: 350px;
+}
+
+.toc .level1 > li {
+  font-size: 14px;
+}
+
+.article.grid-right {
+  margin-left: 360px;
+}
+
+@media only screen and (max-width: 768px) {
+  .article.grid-right {
+    margin-left: 0;
+  }
+}
similarity index 93%
rename from docs/template/token.json
rename to docs/templates/tizen/token.json
index 3b44379..9079280 100644 (file)
@@ -43,9 +43,9 @@
   "tip": "<h5>Tip</h5>",
   "important": "<h5>Important</h5>",
   "caution": "<h5>Caution</h5>",
-  "pre": "Precondition",
-  "post": "Postcondition",
-  "sinceTizen": "API Version",
+  "precondition": "Precondition",
+  "postcondition": "Postcondition",
+  "sincetizen": "API Level",
   "feature": "Feature",
   "privlevel": "Privilege Level",
   "privilege": "Privilege"
index fa99406..bad8f9c 100644 (file)
@@ -1,4 +1,4 @@
 # YamlMime:TableOfContent
-- name: API Documentation
+- name: API Reference
   href: api/
   homepage: api/index.md