Repository files navigation

titanium-docs

Website with Guides and API docs for the Titanium SDK (Powered by VuePress).

Getting started

These docs aim to be a hybrid solution of Markdown bases guides and dynamically generated docs for API references using the existing apidoc from Titanium.

Installation

git clone https://github.com/tidev/titanium-docs.git
cd titanium-docs
npm i

Development

VuePress supports a dev mode with hot reloading for a convenient developing experience.

npm run docs:dev

Now start editing the docs and you can immediatly see the results in your browser.

Building the docs

There are currently a few manual steps required to build the docs which we aim to consolidate into a single build step while this project moves foreward.

✅ For convenience the repo currently contains a pre-generate api.json so you can skip this if you just want to play with the new docs.

The following steps assume you have checked out this repo parallel to Titanium so that your folder structure looks like this:

./
├── titanium_mobile/
└── titanium-docs/

Now generate the api.json into the docs/api folder

npm run docs:metadata

Finally, let VuePress build the awesome new docs.

cd ../titanium-docs
npm run docs:build

This will output the statically rendered docs into docs/.vuepress/dist.

Versioning

Run the script with a command line argument of the version you wish to create. e.g.,

npm run docs:version 8.0

This will preserve all documents currently in the docs directory and make them available as documentation for version 8.0.

For more info please refer to the versioning guide.

Migrating docs to VuePress

VuePress renders gorgeously looking documentation directly from markdown files. This means that our currents guides and parts of the api docs have to be migrated to markdown files. Thanks to VuePress they can be enhanced with Vue components to bypass the restriction of markdown in terms of rendering complex HTML structures.

Writing guides in VuePress

Guides reside under docs/guide and a few documents already have been ported as examples. However none of those guides are complete yet.

To add a new guide first create a new markdown file under docs/guide. To add it to the sidebar navigation open docs/.vuepress/config.js and edit the /guide/ section under themeConfig.sidebar. The key you want to add is the name of the new markdown file without the .md extension.

module.exports={themeConfig: {sidebar: {'/guide/': [{title: 'Titanium Guides',collapsable: false,children: ['','getting-started','first-app''my-new-guide']}],// ...}}}

Adding API docs

In theory the api.json contains all required information to automatically generate markdown files. However, some APIs contain very detailed description and various examples which are just better to maintain directly in markdown files here than in their .yaml counterpart in Titanium's apidoc. All other information regarding the API for a type in Titanium is then taken from the api.json. This creates a clear seperation of extensive documentation and simple api reference.

To automatically migrate a type over to these docs you can run the migration script.

node scripts/migrate.js

This will parse docs/api/api.json and generate the missing markdown files.

You may need to adjust the automatically generated content and fix any markdown issues or adjust the front matter section to properly display links throughout the docs.

Apart of the predefined variables from VuePress, API pages support the following additional variables:

NameDescriptions
metadataKeyFully qualified type name which is used to find metadata for a type in api.json. The page title will be used if this is not set.

Once you have made sure the automatically generated markdown is correct you can add the new type to the sidebar in docs/.vuepress/config.js under the /api/ key.

Deploy

One time:

git remote add dokku dokku@titaniumsdk.com:titaniumsdk.com

Then to release:

git push dokku main

Contributions

Open source contributions are greatly appreciated! If you have a bugfix, improvement or new feature, first make sure you have signed the TiDev CLA, then create an issue first and submit a pull request against master.

Legal

Titanium is a registered trademark of TiDev Inc. All Titanium trademark and patent rights were transferred and assigned to TiDev Inc. on 04/07/2022. Please see the LEGAL information about using our trademarks, privacy policy, terms of usage and other legal information at https://tidev.io/legal.

License

Titanium is licensed under the OSI approved Apache Public License (Version 2). All trademark rights were assigned to TiDev, Inc. on 04/07/2022 from Axway, Inc. Please see the LICENSE file for more details.

About

We use VuePress for Guides and API docs.

Topics

Resources

Stars

14 stars

Watchers

15 watching

Forks

Releases

Sponsor this project

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

Repository files navigation

titanium-docs

Website with Guides and API docs for the Titanium SDK (Powered by VuePress).

Getting started

These docs aim to be a hybrid solution of Markdown bases guides and dynamically generated docs for API references using the existing apidoc from Titanium.

Installation

git clone https://github.com/tidev/titanium-docs.git
cd titanium-docs
npm i

Development

VuePress supports a dev mode with hot reloading for a convenient developing experience.

npm run docs:dev

Now start editing the docs and you can immediatly see the results in your browser.

Building the docs

There are currently a few manual steps required to build the docs which we aim to consolidate into a single build step while this project moves foreward.

✅ For convenience the repo currently contains a pre-generate api.json so you can skip this if you just want to play with the new docs.

The following steps assume you have checked out this repo parallel to Titanium so that your folder structure looks like this:

./
├── titanium_mobile/
└── titanium-docs/

Now generate the api.json into the docs/api folder

npm run docs:metadata

Finally, let VuePress build the awesome new docs.

cd ../titanium-docs
npm run docs:build

This will output the statically rendered docs into docs/.vuepress/dist.

Versioning

Run the script with a command line argument of the version you wish to create. e.g.,

npm run docs:version 8.0

This will preserve all documents currently in the docs directory and make them available as documentation for version 8.0.

For more info please refer to the versioning guide.

Migrating docs to VuePress

VuePress renders gorgeously looking documentation directly from markdown files. This means that our currents guides and parts of the api docs have to be migrated to markdown files. Thanks to VuePress they can be enhanced with Vue components to bypass the restriction of markdown in terms of rendering complex HTML structures.

Writing guides in VuePress

Guides reside under docs/guide and a few documents already have been ported as examples. However none of those guides are complete yet.

To add a new guide first create a new markdown file under docs/guide. To add it to the sidebar navigation open docs/.vuepress/config.js and edit the /guide/ section under themeConfig.sidebar. The key you want to add is the name of the new markdown file without the .md extension.

module.exports={themeConfig: {sidebar: {'/guide/': [{title: 'Titanium Guides',collapsable: false,children: ['','getting-started','first-app''my-new-guide']}],// ...}}}

Adding API docs

In theory the api.json contains all required information to automatically generate markdown files. However, some APIs contain very detailed description and various examples which are just better to maintain directly in markdown files here than in their .yaml counterpart in Titanium's apidoc. All other information regarding the API for a type in Titanium is then taken from the api.json. This creates a clear seperation of extensive documentation and simple api reference.

To automatically migrate a type over to these docs you can run the migration script.

node scripts/migrate.js

This will parse docs/api/api.json and generate the missing markdown files.

You may need to adjust the automatically generated content and fix any markdown issues or adjust the front matter section to properly display links throughout the docs.

Apart of the predefined variables from VuePress, API pages support the following additional variables:

NameDescriptions
metadataKeyFully qualified type name which is used to find metadata for a type in api.json. The page title will be used if this is not set.

Once you have made sure the automatically generated markdown is correct you can add the new type to the sidebar in docs/.vuepress/config.js under the /api/ key.

Deploy

One time:

git remote add dokku dokku@titaniumsdk.com:titaniumsdk.com

Then to release:

git push dokku main

Contributions

Open source contributions are greatly appreciated! If you have a bugfix, improvement or new feature, first make sure you have signed the TiDev CLA, then create an issue first and submit a pull request against master.

Legal

Titanium is a registered trademark of TiDev Inc. All Titanium trademark and patent rights were transferred and assigned to TiDev Inc. on 04/07/2022. Please see the LEGAL information about using our trademarks, privacy policy, terms of usage and other legal information at https://tidev.io/legal.

License

Titanium is licensed under the OSI approved Apache Public License (Version 2). All trademark rights were assigned to TiDev, Inc. on 04/07/2022 from Axway, Inc. Please see the LICENSE file for more details.

About

We use VuePress for Guides and API docs.

Topics

Resources

Stars

14 stars

Watchers

15 watching

Forks

Releases

Sponsor this project

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

titanium-docs

Website with Guides and API docs for the Titanium SDK (Powered by VuePress).

Getting started

These docs aim to be a hybrid solution of Markdown bases guides and dynamically generated docs for API references using the existing apidoc from Titanium.

Installation

git clone https://github.com/tidev/titanium-docs.git
cd titanium-docs
npm i

Development

VuePress supports a dev mode with hot reloading for a convenient developing experience.

npm run docs:dev

Now start editing the docs and you can immediatly see the results in your browser.

Building the docs

There are currently a few manual steps required to build the docs which we aim to consolidate into a single build step while this project moves foreward.

✅ For convenience the repo currently contains a pre-generate api.json so you can skip this if you just want to play with the new docs.

The following steps assume you have checked out this repo parallel to Titanium so that your folder structure looks like this:

./
├── titanium_mobile/
└── titanium-docs/

Now generate the api.json into the docs/api folder

npm run docs:metadata

Finally, let VuePress build the awesome new docs.

cd ../titanium-docs
npm run docs:build

This will output the statically rendered docs into docs/.vuepress/dist.

Versioning

Run the script with a command line argument of the version you wish to create. e.g.,

npm run docs:version 8.0

This will preserve all documents currently in the docs directory and make them available as documentation for version 8.0.

For more info please refer to the versioning guide.

Migrating docs to VuePress

VuePress renders gorgeously looking documentation directly from markdown files. This means that our currents guides and parts of the api docs have to be migrated to markdown files. Thanks to VuePress they can be enhanced with Vue components to bypass the restriction of markdown in terms of rendering complex HTML structures.

Writing guides in VuePress

Guides reside under docs/guide and a few documents already have been ported as examples. However none of those guides are complete yet.

To add a new guide first create a new markdown file under docs/guide. To add it to the sidebar navigation open docs/.vuepress/config.js and edit the /guide/ section under themeConfig.sidebar. The key you want to add is the name of the new markdown file without the .md extension.

module.exports={themeConfig: {sidebar: {'/guide/': [{title: 'Titanium Guides',collapsable: false,children: ['','getting-started','first-app''my-new-guide']}],// ...}}}

Adding API docs

In theory the api.json contains all required information to automatically generate markdown files. However, some APIs contain very detailed description and various examples which are just better to maintain directly in markdown files here than in their .yaml counterpart in Titanium's apidoc. All other information regarding the API for a type in Titanium is then taken from the api.json. This creates a clear seperation of extensive documentation and simple api reference.

To automatically migrate a type over to these docs you can run the migration script.

node scripts/migrate.js

This will parse docs/api/api.json and generate the missing markdown files.

You may need to adjust the automatically generated content and fix any markdown issues or adjust the front matter section to properly display links throughout the docs.

Apart of the predefined variables from VuePress, API pages support the following additional variables:

NameDescriptions
metadataKeyFully qualified type name which is used to find metadata for a type in api.json. The page title will be used if this is not set.

Once you have made sure the automatically generated markdown is correct you can add the new type to the sidebar in docs/.vuepress/config.js under the /api/ key.

Deploy

One time:

git remote add dokku dokku@titaniumsdk.com:titaniumsdk.com

Then to release:

git push dokku main

Contributions

Open source contributions are greatly appreciated! If you have a bugfix, improvement or new feature, first make sure you have signed the TiDev CLA, then create an issue first and submit a pull request against master.

Legal

Titanium is a registered trademark of TiDev Inc. All Titanium trademark and patent rights were transferred and assigned to TiDev Inc. on 04/07/2022. Please see the LEGAL information about using our trademarks, privacy policy, terms of usage and other legal information at https://tidev.io/legal.

License

Titanium is licensed under the OSI approved Apache Public License (Version 2). All trademark rights were assigned to TiDev, Inc. on 04/07/2022 from Axway, Inc. Please see the LICENSE file for more details.

About

We use VuePress for Guides and API docs.

Topics

Resources

Stars

14 stars

Watchers

15 watching

Forks

Releases

Sponsor this project

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

titanium-docs

Website with Guides and API docs for the Titanium SDK (Powered by VuePress).

Getting started

These docs aim to be a hybrid solution of Markdown bases guides and dynamically generated docs for API references using the existing apidoc from Titanium.

Installation

git clone https://github.com/tidev/titanium-docs.git
cd titanium-docs
npm i

Development

VuePress supports a dev mode with hot reloading for a convenient developing experience.

npm run docs:dev

Now start editing the docs and you can immediatly see the results in your browser.

Building the docs

There are currently a few manual steps required to build the docs which we aim to consolidate into a single build step while this project moves foreward.

✅ For convenience the repo currently contains a pre-generate api.json so you can skip this if you just want to play with the new docs.

The following steps assume you have checked out this repo parallel to Titanium so that your folder structure looks like this:

./
├── titanium_mobile/
└── titanium-docs/

Now generate the api.json into the docs/api folder

npm run docs:metadata

Finally, let VuePress build the awesome new docs.

cd ../titanium-docs
npm run docs:build

This will output the statically rendered docs into docs/.vuepress/dist.

Versioning

Run the script with a command line argument of the version you wish to create. e.g.,

npm run docs:version 8.0

This will preserve all documents currently in the docs directory and make them available as documentation for version 8.0.

For more info please refer to the versioning guide.

Migrating docs to VuePress

VuePress renders gorgeously looking documentation directly from markdown files. This means that our currents guides and parts of the api docs have to be migrated to markdown files. Thanks to VuePress they can be enhanced with Vue components to bypass the restriction of markdown in terms of rendering complex HTML structures.

Writing guides in VuePress

Guides reside under docs/guide and a few documents already have been ported as examples. However none of those guides are complete yet.

To add a new guide first create a new markdown file under docs/guide. To add it to the sidebar navigation open docs/.vuepress/config.js and edit the /guide/ section under themeConfig.sidebar. The key you want to add is the name of the new markdown file without the .md extension.

module.exports={themeConfig: {sidebar: {'/guide/': [{title: 'Titanium Guides',collapsable: false,children: ['','getting-started','first-app''my-new-guide']}],// ...}}}

Adding API docs

In theory the api.json contains all required information to automatically generate markdown files. However, some APIs contain very detailed description and various examples which are just better to maintain directly in markdown files here than in their .yaml counterpart in Titanium's apidoc. All other information regarding the API for a type in Titanium is then taken from the api.json. This creates a clear seperation of extensive documentation and simple api reference.

To automatically migrate a type over to these docs you can run the migration script.

node scripts/migrate.js

This will parse docs/api/api.json and generate the missing markdown files.

You may need to adjust the automatically generated content and fix any markdown issues or adjust the front matter section to properly display links throughout the docs.

Apart of the predefined variables from VuePress, API pages support the following additional variables:

NameDescriptions
metadataKeyFully qualified type name which is used to find metadata for a type in api.json. The page title will be used if this is not set.

Once you have made sure the automatically generated markdown is correct you can add the new type to the sidebar in docs/.vuepress/config.js under the /api/ key.

Deploy

One time:

git remote add dokku dokku@titaniumsdk.com:titaniumsdk.com

Then to release:

git push dokku main

Contributions

Open source contributions are greatly appreciated! If you have a bugfix, improvement or new feature, first make sure you have signed the TiDev CLA, then create an issue first and submit a pull request against master.

Legal

Titanium is a registered trademark of TiDev Inc. All Titanium trademark and patent rights were transferred and assigned to TiDev Inc. on 04/07/2022. Please see the LEGAL information about using our trademarks, privacy policy, terms of usage and other legal information at https://tidev.io/legal.

License

Titanium is licensed under the OSI approved Apache Public License (Version 2). All trademark rights were assigned to TiDev, Inc. on 04/07/2022 from Axway, Inc. Please see the LICENSE file for more details.

About

We use VuePress for Guides and API docs.

Topics

Resources

Stars

14 stars

Watchers

15 watching

Forks

Releases

Sponsor this project

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

Repository files navigation

titanium-docs

Website with Guides and API docs for the Titanium SDK (Powered by VuePress).

Getting started

These docs aim to be a hybrid solution of Markdown bases guides and dynamically generated docs for API references using the existing apidoc from Titanium.

Installation

git clone https://github.com/tidev/titanium-docs.git
cd titanium-docs
npm i

Development

VuePress supports a dev mode with hot reloading for a convenient developing experience.

npm run docs:dev

Now start editing the docs and you can immediatly see the results in your browser.

Building the docs

There are currently a few manual steps required to build the docs which we aim to consolidate into a single build step while this project moves foreward.

✅ For convenience the repo currently contains a pre-generate api.json so you can skip this if you just want to play with the new docs.

The following steps assume you have checked out this repo parallel to Titanium so that your folder structure looks like this:

./
├── titanium_mobile/
└── titanium-docs/

Now generate the api.json into the docs/api folder

npm run docs:metadata

Finally, let VuePress build the awesome new docs.

cd ../titanium-docs
npm run docs:build

This will output the statically rendered docs into docs/.vuepress/dist.

Versioning

Run the script with a command line argument of the version you wish to create. e.g.,

npm run docs:version 8.0

This will preserve all documents currently in the docs directory and make them available as documentation for version 8.0.

For more info please refer to the versioning guide.

Migrating docs to VuePress

VuePress renders gorgeously looking documentation directly from markdown files. This means that our currents guides and parts of the api docs have to be migrated to markdown files. Thanks to VuePress they can be enhanced with Vue components to bypass the restriction of markdown in terms of rendering complex HTML structures.

Writing guides in VuePress

Guides reside under docs/guide and a few documents already have been ported as examples. However none of those guides are complete yet.

To add a new guide first create a new markdown file under docs/guide. To add it to the sidebar navigation open docs/.vuepress/config.js and edit the /guide/ section under themeConfig.sidebar. The key you want to add is the name of the new markdown file without the .md extension.

module.exports={themeConfig: {sidebar: {'/guide/': [{title: 'Titanium Guides',collapsable: false,children: ['','getting-started','first-app''my-new-guide']}],// ...}}}

Adding API docs

In theory the api.json contains all required information to automatically generate markdown files. However, some APIs contain very detailed description and various examples which are just better to maintain directly in markdown files here than in their .yaml counterpart in Titanium's apidoc. All other information regarding the API for a type in Titanium is then taken from the api.json. This creates a clear seperation of extensive documentation and simple api reference.

To automatically migrate a type over to these docs you can run the migration script.

node scripts/migrate.js

This will parse docs/api/api.json and generate the missing markdown files.

You may need to adjust the automatically generated content and fix any markdown issues or adjust the front matter section to properly display links throughout the docs.

Apart of the predefined variables from VuePress, API pages support the following additional variables:

NameDescriptions
metadataKeyFully qualified type name which is used to find metadata for a type in api.json. The page title will be used if this is not set.

Once you have made sure the automatically generated markdown is correct you can add the new type to the sidebar in docs/.vuepress/config.js under the /api/ key.

Deploy

One time:

git remote add dokku dokku@titaniumsdk.com:titaniumsdk.com

Then to release:

git push dokku main

Contributions

Open source contributions are greatly appreciated! If you have a bugfix, improvement or new feature, first make sure you have signed the TiDev CLA, then create an issue first and submit a pull request against master.

Legal

Titanium is a registered trademark of TiDev Inc. All Titanium trademark and patent rights were transferred and assigned to TiDev Inc. on 04/07/2022. Please see the LEGAL information about using our trademarks, privacy policy, terms of usage and other legal information at https://tidev.io/legal.

License

Titanium is licensed under the OSI approved Apache Public License (Version 2). All trademark rights were assigned to TiDev, Inc. on 04/07/2022 from Axway, Inc. Please see the LICENSE file for more details.

About

We use VuePress for Guides and API docs.

Topics

Resources

Stars

14 stars

Watchers

15 watching

Forks

Releases

Sponsor this project

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

titanium-docs

Website with Guides and API docs for the Titanium SDK (Powered by VuePress).

Getting started

These docs aim to be a hybrid solution of Markdown bases guides and dynamically generated docs for API references using the existing apidoc from Titanium.

Installation

git clone https://github.com/tidev/titanium-docs.git
cd titanium-docs
npm i

Development

VuePress supports a dev mode with hot reloading for a convenient developing experience.

npm run docs:dev

Now start editing the docs and you can immediatly see the results in your browser.

Building the docs

There are currently a few manual steps required to build the docs which we aim to consolidate into a single build step while this project moves foreward.

✅ For convenience the repo currently contains a pre-generate api.json so you can skip this if you just want to play with the new docs.

The following steps assume you have checked out this repo parallel to Titanium so that your folder structure looks like this:

./
├── titanium_mobile/
└── titanium-docs/

Now generate the api.json into the docs/api folder

npm run docs:metadata

Finally, let VuePress build the awesome new docs.

cd ../titanium-docs
npm run docs:build

This will output the statically rendered docs into docs/.vuepress/dist.

Versioning

Run the script with a command line argument of the version you wish to create. e.g.,

npm run docs:version 8.0

This will preserve all documents currently in the docs directory and make them available as documentation for version 8.0.

For more info please refer to the versioning guide.

Migrating docs to VuePress

VuePress renders gorgeously looking documentation directly from markdown files. This means that our currents guides and parts of the api docs have to be migrated to markdown files. Thanks to VuePress they can be enhanced with Vue components to bypass the restriction of markdown in terms of rendering complex HTML structures.

Writing guides in VuePress

Guides reside under docs/guide and a few documents already have been ported as examples. However none of those guides are complete yet.

To add a new guide first create a new markdown file under docs/guide. To add it to the sidebar navigation open docs/.vuepress/config.js and edit the /guide/ section under themeConfig.sidebar. The key you want to add is the name of the new markdown file without the .md extension.

module.exports={themeConfig: {sidebar: {'/guide/': [{title: 'Titanium Guides',collapsable: false,children: ['','getting-started','first-app''my-new-guide']}],// ...}}}

Adding API docs

In theory the api.json contains all required information to automatically generate markdown files. However, some APIs contain very detailed description and various examples which are just better to maintain directly in markdown files here than in their .yaml counterpart in Titanium's apidoc. All other information regarding the API for a type in Titanium is then taken from the api.json. This creates a clear seperation of extensive documentation and simple api reference.

To automatically migrate a type over to these docs you can run the migration script.

node scripts/migrate.js

This will parse docs/api/api.json and generate the missing markdown files.

You may need to adjust the automatically generated content and fix any markdown issues or adjust the front matter section to properly display links throughout the docs.

Apart of the predefined variables from VuePress, API pages support the following additional variables:

NameDescriptions
metadataKeyFully qualified type name which is used to find metadata for a type in api.json. The page title will be used if this is not set.

Once you have made sure the automatically generated markdown is correct you can add the new type to the sidebar in docs/.vuepress/config.js under the /api/ key.

Deploy

One time:

git remote add dokku dokku@titaniumsdk.com:titaniumsdk.com

Then to release:

git push dokku main

Contributions

Open source contributions are greatly appreciated! If you have a bugfix, improvement or new feature, first make sure you have signed the TiDev CLA, then create an issue first and submit a pull request against master.

Legal

Titanium is a registered trademark of TiDev Inc. All Titanium trademark and patent rights were transferred and assigned to TiDev Inc. on 04/07/2022. Please see the LEGAL information about using our trademarks, privacy policy, terms of usage and other legal information at https://tidev.io/legal.

License

Titanium is licensed under the OSI approved Apache Public License (Version 2). All trademark rights were assigned to TiDev, Inc. on 04/07/2022 from Axway, Inc. Please see the LICENSE file for more details.

About

We use VuePress for Guides and API docs.

Topics

Resources

Stars

14 stars

Watchers

15 watching

Forks

Releases

Sponsor this project

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

titanium-docs

Website with Guides and API docs for the Titanium SDK (Powered by VuePress).

Getting started

These docs aim to be a hybrid solution of Markdown bases guides and dynamically generated docs for API references using the existing apidoc from Titanium.

Installation

git clone https://github.com/tidev/titanium-docs.git
cd titanium-docs
npm i

Development

VuePress supports a dev mode with hot reloading for a convenient developing experience.

npm run docs:dev

Now start editing the docs and you can immediatly see the results in your browser.

Building the docs

There are currently a few manual steps required to build the docs which we aim to consolidate into a single build step while this project moves foreward.

✅ For convenience the repo currently contains a pre-generate api.json so you can skip this if you just want to play with the new docs.

The following steps assume you have checked out this repo parallel to Titanium so that your folder structure looks like this:

./
├── titanium_mobile/
└── titanium-docs/

Now generate the api.json into the docs/api folder

npm run docs:metadata

Finally, let VuePress build the awesome new docs.

cd ../titanium-docs
npm run docs:build

This will output the statically rendered docs into docs/.vuepress/dist.

Versioning

Run the script with a command line argument of the version you wish to create. e.g.,

npm run docs:version 8.0

This will preserve all documents currently in the docs directory and make them available as documentation for version 8.0.

For more info please refer to the versioning guide.

Migrating docs to VuePress

VuePress renders gorgeously looking documentation directly from markdown files. This means that our currents guides and parts of the api docs have to be migrated to markdown files. Thanks to VuePress they can be enhanced with Vue components to bypass the restriction of markdown in terms of rendering complex HTML structures.

Writing guides in VuePress

Guides reside under docs/guide and a few documents already have been ported as examples. However none of those guides are complete yet.

To add a new guide first create a new markdown file under docs/guide. To add it to the sidebar navigation open docs/.vuepress/config.js and edit the /guide/ section under themeConfig.sidebar. The key you want to add is the name of the new markdown file without the .md extension.

module.exports={themeConfig: {sidebar: {'/guide/': [{title: 'Titanium Guides',collapsable: false,children: ['','getting-started','first-app''my-new-guide']}],// ...}}}

Adding API docs

In theory the api.json contains all required information to automatically generate markdown files. However, some APIs contain very detailed description and various examples which are just better to maintain directly in markdown files here than in their .yaml counterpart in Titanium's apidoc. All other information regarding the API for a type in Titanium is then taken from the api.json. This creates a clear seperation of extensive documentation and simple api reference.

To automatically migrate a type over to these docs you can run the migration script.

node scripts/migrate.js

This will parse docs/api/api.json and generate the missing markdown files.

You may need to adjust the automatically generated content and fix any markdown issues or adjust the front matter section to properly display links throughout the docs.

Apart of the predefined variables from VuePress, API pages support the following additional variables:

NameDescriptions
metadataKeyFully qualified type name which is used to find metadata for a type in api.json. The page title will be used if this is not set.

Once you have made sure the automatically generated markdown is correct you can add the new type to the sidebar in docs/.vuepress/config.js under the /api/ key.

Deploy

One time:

git remote add dokku dokku@titaniumsdk.com:titaniumsdk.com

Then to release:

git push dokku main

Contributions

Open source contributions are greatly appreciated! If you have a bugfix, improvement or new feature, first make sure you have signed the TiDev CLA, then create an issue first and submit a pull request against master.

Legal

Titanium is a registered trademark of TiDev Inc. All Titanium trademark and patent rights were transferred and assigned to TiDev Inc. on 04/07/2022. Please see the LEGAL information about using our trademarks, privacy policy, terms of usage and other legal information at https://tidev.io/legal.

License

Titanium is licensed under the OSI approved Apache Public License (Version 2). All trademark rights were assigned to TiDev, Inc. on 04/07/2022 from Axway, Inc. Please see the LICENSE file for more details.

About

We use VuePress for Guides and API docs.

Topics

Resources

Stars

14 stars

Watchers

15 watching

Forks

Releases

Sponsor this project

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

Repository files navigation

titanium-docs

Website with Guides and API docs for the Titanium SDK (Powered by VuePress).

Getting started

These docs aim to be a hybrid solution of Markdown bases guides and dynamically generated docs for API references using the existing apidoc from Titanium.

Installation

git clone https://github.com/tidev/titanium-docs.git
cd titanium-docs
npm i

Development

VuePress supports a dev mode with hot reloading for a convenient developing experience.

npm run docs:dev

Now start editing the docs and you can immediatly see the results in your browser.

Building the docs

There are currently a few manual steps required to build the docs which we aim to consolidate into a single build step while this project moves foreward.

✅ For convenience the repo currently contains a pre-generate api.json so you can skip this if you just want to play with the new docs.

The following steps assume you have checked out this repo parallel to Titanium so that your folder structure looks like this:

./
├── titanium_mobile/
└── titanium-docs/

Now generate the api.json into the docs/api folder

npm run docs:metadata

Finally, let VuePress build the awesome new docs.

cd ../titanium-docs
npm run docs:build

This will output the statically rendered docs into docs/.vuepress/dist.

Versioning

Run the script with a command line argument of the version you wish to create. e.g.,

npm run docs:version 8.0

This will preserve all documents currently in the docs directory and make them available as documentation for version 8.0.

For more info please refer to the versioning guide.

Migrating docs to VuePress

VuePress renders gorgeously looking documentation directly from markdown files. This means that our currents guides and parts of the api docs have to be migrated to markdown files. Thanks to VuePress they can be enhanced with Vue components to bypass the restriction of markdown in terms of rendering complex HTML structures.

Writing guides in VuePress

Guides reside under docs/guide and a few documents already have been ported as examples. However none of those guides are complete yet.

To add a new guide first create a new markdown file under docs/guide. To add it to the sidebar navigation open docs/.vuepress/config.js and edit the /guide/ section under themeConfig.sidebar. The key you want to add is the name of the new markdown file without the .md extension.

module.exports={themeConfig: {sidebar: {'/guide/': [{title: 'Titanium Guides',collapsable: false,children: ['','getting-started','first-app''my-new-guide']}],// ...}}}

Adding API docs

In theory the api.json contains all required information to automatically generate markdown files. However, some APIs contain very detailed description and various examples which are just better to maintain directly in markdown files here than in their .yaml counterpart in Titanium's apidoc. All other information regarding the API for a type in Titanium is then taken from the api.json. This creates a clear seperation of extensive documentation and simple api reference.

To automatically migrate a type over to these docs you can run the migration script.

node scripts/migrate.js

This will parse docs/api/api.json and generate the missing markdown files.

You may need to adjust the automatically generated content and fix any markdown issues or adjust the front matter section to properly display links throughout the docs.

Apart of the predefined variables from VuePress, API pages support the following additional variables:

NameDescriptions
metadataKeyFully qualified type name which is used to find metadata for a type in api.json. The page title will be used if this is not set.

Once you have made sure the automatically generated markdown is correct you can add the new type to the sidebar in docs/.vuepress/config.js under the /api/ key.

Deploy

One time:

git remote add dokku dokku@titaniumsdk.com:titaniumsdk.com

Then to release:

git push dokku main

Contributions

Open source contributions are greatly appreciated! If you have a bugfix, improvement or new feature, first make sure you have signed the TiDev CLA, then create an issue first and submit a pull request against master.

Legal

Titanium is a registered trademark of TiDev Inc. All Titanium trademark and patent rights were transferred and assigned to TiDev Inc. on 04/07/2022. Please see the LEGAL information about using our trademarks, privacy policy, terms of usage and other legal information at https://tidev.io/legal.

License

Titanium is licensed under the OSI approved Apache Public License (Version 2). All trademark rights were assigned to TiDev, Inc. on 04/07/2022 from Axway, Inc. Please see the LICENSE file for more details.

About

We use VuePress for Guides and API docs.

Topics

Resources

Stars

14 stars

Watchers

15 watching

Forks

Releases

Sponsor this project

Packages

Used by

Contributors

Languages