diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml new file mode 100644 index 0000000..0081683 --- /dev/null +++ b/.github/workflows/docs.yml @@ -0,0 +1,44 @@ +name: docs + +on: + push: + branches: + - 'lab-4.10' +env: + SITE_DIR: "gh-pages" +jobs: + build_site: + name: "Build site with Antora" + runs-on: [ubuntu-latest] + steps: + - name: Checkout + uses: actions/checkout@v3 + - name: "Generate site using antora site action" + uses: kameshsampath/antora-site-action@master + with: + antora_playbook: site.yml + - name: "Upload generated site" + uses: actions/upload-artifact@v1.0.0 + with: + name: site + path: "${{ github.workspace }}/${{ env.SITE_DIR }}" + deploy_site: + runs-on: [ubuntu-latest] + needs: [build_site] + name: "Deploy GitHub Pages" + steps: + - name: Checkout + uses: actions/checkout@v3 + - name: Download generated site + uses: actions/download-artifact@v1 + with: + name: site + path: "${{ github.workspace }}/${{ env.SITE_DIR }}" + - name: Deploy to GitHub Pages + uses: JamesIves/github-pages-deploy-action@3.2.1 + with: + # ACCESS_TOKEN: # optional + GITHUB_TOKEN: "${{ github.token}}" + FOLDER: "${{ env.SITE_DIR }}" + BRANCH: "gh-pages" + COMMIT_MESSAGE: "[CI] Publish Documentation for ${{ github.sha }}" diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..2cc48aa --- /dev/null +++ b/.gitignore @@ -0,0 +1,43 @@ +target/ +!.mvn/wrapper/maven-wrapper.jar +audit.log +.cache/ +*.log + +docs/ +gh-pages/ +dependency-reduced-pom.xml +svm.jar + +### STS ### +.apt_generated +.classpath +.factorypath +.project +.settings +.springBeans + +### IntelliJ IDEA ### +.idea +*.iws +*.iml +*.ipr + +### NetBeans ### +nbproject/private/ +build/ +nbbuild/ +dist/ +nbdist/ +.nb-gradle/ + +.DS_Store +.vscode +istio-1.1.1 +firebase* +yarn* +package* +!package.json +node_modules +.firebaserc +.firebase diff --git a/.gitleaks.toml b/.gitleaks.toml new file mode 100644 index 0000000..d52acb3 --- /dev/null +++ b/.gitleaks.toml @@ -0,0 +1,16 @@ +[allowlist] + description = "Global Allowlist" + + # Ignore based on any subset of the file path + paths = [ + + # Ignore lab key (this is used for accessing VMs and these VMs run on a isolated network + '''lab-materials\/lab-env-data\/hypervisor\/ssh-key$''', + ] + + # Ignore based on any subset of the line + regexes = [ + # Ignore lines containing student:student + '''student:student''', + ] + diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..16ac6ec --- /dev/null +++ b/Dockerfile @@ -0,0 +1,9 @@ +FROM docker.io/antora/antora as builder + +ADD . /antora/ + +RUN antora generate --stacktrace site.yml + +FROM registry.access.redhat.com/rhscl/httpd-24-rhel7 + +COPY --from=builder /antora/gh-pages/ /var/www/html/ diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..8dada3e --- /dev/null +++ b/LICENSE @@ -0,0 +1,201 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "{}" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright {yyyy} {name of copyright owner} + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/README.md b/README.md new file mode 100644 index 0000000..f17b8bd --- /dev/null +++ b/README.md @@ -0,0 +1 @@ +This is the source code for [https://labs.sysdeseng.com/hypershift-baremetal-lab/4.13/index.html](https://labs.sysdeseng.com/hypershift-baremetal-lab/4.13/index.html) diff --git a/dev-site.yml b/dev-site.yml new file mode 100644 index 0000000..e471126 --- /dev/null +++ b/dev-site.yml @@ -0,0 +1,35 @@ +runtime: + cache_dir: ./.cache/antora + +site: + title: LAB - Telco OCP Upgrade Lab + url: http://localhost:3000/telco-ocp-upgrade-lab/index.html + start_page: telco-ocp-upgrade-lab::index.adoc + +content: + sources: + - url: . + branches: + - 'lab-4.13' + start_path: documentation + +asciidoc: + attributes: + release-version: 4.13 + page-pagination: true + extensions: + - ./lib/tab-block.js + - ./lib/remote-include-processor.js + +ui: + bundle: + url: ./ui-bundle-telco.zip + snapshot: true + supplemental_files: + - path: ./supplemental-ui + - path: .nojekyll + - path: ui.yml + contents: "static_files: [ .nojekyll ]" + +output: + dir: ./gh-pages diff --git a/documentation/antora.yml b/documentation/antora.yml new file mode 100644 index 0000000..9ce2187 --- /dev/null +++ b/documentation/antora.yml @@ -0,0 +1,7 @@ +name: 4.10 +title: LAB - Telco OCP Upgrade Lab +version: ~ +nav: + - modules/ROOT/nav.adoc + +start_page: ROOT:index.adoc diff --git a/documentation/modules/ROOT/assets/images/put_your_images_here b/documentation/modules/ROOT/assets/images/put_your_images_here new file mode 100644 index 0000000..e69de29 diff --git a/documentation/modules/ROOT/nav.adoc b/documentation/modules/ROOT/nav.adoc new file mode 100644 index 0000000..c7e464e --- /dev/null +++ b/documentation/modules/ROOT/nav.adoc @@ -0,0 +1,8 @@ +* xref:index.adoc[Welcome] +** xref:index.adoc#contributors[Contributors] + +* xref:introduction.adoc[Introduction] +** xref:introduction.adoc#lab-aim[Who is this lab aimed at?] +** xref:introduction.adoc#lab-software-versions[Lab Software Versions] + + diff --git a/documentation/modules/ROOT/pages/index.adoc b/documentation/modules/ROOT/pages/index.adoc new file mode 100644 index 0000000..e4f7893 --- /dev/null +++ b/documentation/modules/ROOT/pages/index.adoc @@ -0,0 +1,25 @@ += Welcome to the Red Hat Lab - Telco OCP Upgrades +:page-layout: home +:!sectids: + +[.text-center.strong] +== Red Hat Lab - Telco OCP Upgrades + +This hands-on lab ... + +IMPORTANT: This is not an official Red Hat Training. Please contact with your Red Hat representative if you want more information about Training or Guidelines about this topic / product. + +[#contributors] +== Contributors + +[cols="1,1"] +|=== +|Name |Role + +|Alice +|Lab Developer / Maintainer + +|Bob +|Lab Reviewer + +|=== diff --git a/documentation/modules/ROOT/pages/introduction.adoc b/documentation/modules/ROOT/pages/introduction.adoc new file mode 100644 index 0000000..7e2a393 --- /dev/null +++ b/documentation/modules/ROOT/pages/introduction.adoc @@ -0,0 +1,20 @@ += Introduction +include::_attributes.adoc[] +:profile: telco-ocp-upgrade-lab + +Welcome to this Telco OCP Upgrades Lab. + +[#lab-aim] +== Who is this lab aimed at? + +The lab is aimed to technical profiles working with OpenShift who are interested in any of these areas: + +* Foo +* Bar + +[#lab-software-versions] +== Lab Software Versions + +The lab is based on the following software versions. + +* OpenShift Container Platform v4.X diff --git a/gulpfile.babel.js b/gulpfile.babel.js new file mode 100644 index 0000000..1f4e974 --- /dev/null +++ b/gulpfile.babel.js @@ -0,0 +1,78 @@ +/*jshint esversion: 6 */ + +import { series, watch } from "gulp"; +import { remove } from "fs-extra"; +import { readFileSync } from "fs"; +import {load as yamlLoad} from "yaml-js"; +import generator from "@antora/site-generator-default"; +import browserSync from "browser-sync"; + +const filename = "dev-site.yml"; +const server = browserSync.create(); +const args = ["--playbook", filename]; + +//Watch Paths +function watchGlobs() { + let json_content = readFileSync(`${__dirname}/${filename}`, "UTF-8"); + let yaml_content = yamlLoad(json_content); + let dirs = yaml_content.content.sources.map(source => [ + `${source.url}/**/**.yml`, + `${source.url}/**/**.adoc`, + `${source.url}/**/**.hbs` + ]); + dirs.push(["dev-site.yml"]); + dirs = [].concat(...dirs); + //console.log(dirs); + return dirs; +} + +const siteWatch = () => watch(watchGlobs(), series(build, reload)); + +const removeSite = done => remove("gh-pages", done); +const removeCache = done => remove(".cache", done); + +function build(done) { + generator(args, process.env) + .then(() => { + done(); + }) + .catch(err => { + console.log(err); + done(); + }); +} + +function workshopSite(done){ + generator(["--pull", "--stacktrace","--playbook","workshop-site.yaml"], process.env) + .then(() => { + done(); + }) + .catch(err => { + console.log(err); + done(); + }); +} + +function reload(done) { + server.reload(); + done(); +} + +function serve(done) { + server.init({ + server: { + baseDir: "./gh-pages" + } + }); + done(); +} + +const _build = build; +export { _build as build }; +const _clean = series(removeSite, removeCache); +export { _clean as clean }; +const _default = series(_clean, build, serve, siteWatch); +export { _default as default }; +//build workshop docs +const _wsite = series(_clean, workshopSite); +export { _wsite as workshopSite }; \ No newline at end of file diff --git a/lib/remote-include-processor.js b/lib/remote-include-processor.js new file mode 100644 index 0000000..9358c7f --- /dev/null +++ b/lib/remote-include-processor.js @@ -0,0 +1,11 @@ +module.exports = function () { + this.includeProcessor(function () { + this.$option('position', '>>') + this.handles((target) => target.startsWith('http')) + this.process((doc, reader, target, attrs) => { + const contents = require('child_process').execFileSync('curl', ['--silent', '-L', target], { encoding: 'utf8' }) + reader.pushInclude(contents, target, target, 1, attrs) + }) + }) + } + \ No newline at end of file diff --git a/lib/tab-block.js b/lib/tab-block.js new file mode 100644 index 0000000..972dc9e --- /dev/null +++ b/lib/tab-block.js @@ -0,0 +1,99 @@ +/* Copyright (c) 2018 OpenDevise, Inc. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +/** + * Extends the AsciiDoc syntax to support a tabset. The tabset is created from + * a dlist enclosed in an example block that is marked with the tabs style. + * + * Usage: + * + * [tabs] + * ==== + * Tab A:: + * + + * -- + * Contents of tab A. + * -- + * Tab B:: + * + + * -- + * Contents of tab B. + * -- + * ==== + * + * @author Dan Allen + */ +const IdSeparatorCh = "-"; +const ExtraIdSeparatorsRx = /^-+|-+$|-(-)+/g; +const InvalidIdCharsRx = /[^a-zA-Z0-9_]/g; +const List = Opal.const_get_local(Opal.module(null, "Asciidoctor"), "List"); +const ListItem = Opal.const_get_local( + Opal.module(null, "Asciidoctor"), + "ListItem" +); + +const generateId = (str, idx) => + `tabset${idx}_${str + .toLowerCase() + .replace(InvalidIdCharsRx, IdSeparatorCh) + .replace(ExtraIdSeparatorsRx, "$1")}`; + +function tabsBlock() { + this.onContext("example"); + this.process((parent, reader, attrs) => { + const createHtmlFragment = html => this.createBlock(parent, "pass", html); + const tabsetIdx = parent.getDocument().counter("idx-tabset"); + const nodes = []; + nodes.push(createHtmlFragment('
')); + const container = this.parseContent( + this.createBlock(parent, "open"), + reader + ); + const sourceTabs = container.getBlocks()[0]; + if ( + !( + sourceTabs && + sourceTabs.getContext() === "dlist" && + sourceTabs.getItems().length + ) + ) + return; + const tabs = List.$new(parent, "ulist"); + tabs.addRole("tabs"); + const panes = {}; + sourceTabs.getItems().forEach(([[title], details]) => { + const tab = ListItem.$new(tabs); + tabs.$append(tab); + const id = generateId(title.getText(), tabsetIdx); + tab.text = `[[${id}]]${title.text}`; + let blocks = details.getBlocks(); + const numBlocks = blocks.length; + if (numBlocks) { + if (blocks[0].context === "open" && numBlocks === 1) + blocks = blocks[0].getBlocks(); + panes[id] = blocks.map(block => (block.parent = parent) && block); + } + }); + nodes.push(tabs); + nodes.push(createHtmlFragment('
')); + Object.entries(panes).forEach(([id, blocks]) => { + nodes.push( + createHtmlFragment(`
`) + ); + nodes.push(...blocks); + nodes.push(createHtmlFragment("
")); + }); + nodes.push(createHtmlFragment("
")); + nodes.push(createHtmlFragment("
")); + parent.blocks.push(...nodes); + }); +} + +function register(registry, context) { + registry.block("tabs", tabsBlock); +} + +module.exports.register = register; \ No newline at end of file diff --git a/package.json b/package.json new file mode 100644 index 0000000..ed76b55 --- /dev/null +++ b/package.json @@ -0,0 +1,39 @@ +{ + "name": "rhs-openshift-admins-devops", + "description": "OpenShift Admins Devops Course Documentation Site", + "homepage": "https://redhat-scholars.github.io/openshift-admins-devops", + "author": { + "email": "kamesh.sampath@hotmail.com", + "name": "Kamesh Sampath", + "url": "https://twitter.com/@kamesh_sampath" + }, + "dependencies": { + "@antora/cli": "^2.3.1", + "@antora/site-generator-default": "^2.3.1", + "@babel/cli": "^7.5.5", + "@babel/core": "^7.5.5", + "@babel/polyfill": "^7.4.4", + "@babel/preset-env": "^7.5.5", + "@babel/register": "^7.5.5", + "browser-sync": "^2.26.7", + "fs-extra": "^8.1.0", + "gulp": "^4.0.0", + "yaml-js": "^0.2.3" + }, + "devDependencies": {}, + "scripts": { + "dev": "gulp", + "clean": "gulp clean", + "workshop": "gulp workshopSite" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/redhat-scholars/openshift-admins-devops.git" + }, + "license": "Apache-2.0", + "babel": { + "presets": [ + "@babel/preset-env" + ] + } +} diff --git a/site.sh b/site.sh new file mode 100755 index 0000000..9bc2e54 --- /dev/null +++ b/site.sh @@ -0,0 +1,6 @@ +#!/bin/bash + +_CURR_DIR="$( cd "$(dirname "$0")" ; pwd -P )" +rm -rf $_CURR_DIR/gh-pages $_CURR_DIR/.cache + +antora --pull --stacktrace site.yml \ No newline at end of file diff --git a/site.yml b/site.yml new file mode 100644 index 0000000..7956118 --- /dev/null +++ b/site.yml @@ -0,0 +1,35 @@ +runtime: + cache_dir: ./.cache/antora + +site: + title: LAB - Telco OCP Upgrade Lab + url: https://labs.sysdeseng.com/ + start_page: telco-ocp-upgrade-lab::index.adoc + +content: + sources: + - url: ./ + branches: + - 'lab-4.10' + start_path: documentation + +asciidoc: + attributes: + release-version: 4.10 + page-pagination: true + extensions: + - ./lib/tab-block.js + - ./lib/remote-include-processor.js + +ui: + bundle: + url: ./ui-bundle-telco.zip + snapshot: true + supplemental_files: + - path: ./supplemental-ui + - path: .nojekyll + - path: ui.yml + contents: "static_files: [ .nojekyll ]" + +output: + dir: ./gh-pages diff --git a/supplemental-ui/.nojekyll b/supplemental-ui/.nojekyll new file mode 100644 index 0000000..e69de29 diff --git a/supplemental-ui/img/favicon.ico b/supplemental-ui/img/favicon.ico new file mode 100644 index 0000000..c483f34 Binary files /dev/null and b/supplemental-ui/img/favicon.ico differ diff --git a/supplemental-ui/partials/footer-nav.hbs b/supplemental-ui/partials/footer-nav.hbs new file mode 100644 index 0000000..65cd1c9 --- /dev/null +++ b/supplemental-ui/partials/footer-nav.hbs @@ -0,0 +1,17 @@ + \ No newline at end of file diff --git a/supplemental-ui/ui.yml b/supplemental-ui/ui.yml new file mode 100644 index 0000000..079c1fc --- /dev/null +++ b/supplemental-ui/ui.yml @@ -0,0 +1,2 @@ +static_files: +- .nojekyll \ No newline at end of file diff --git a/ui-bundle-telco.zip b/ui-bundle-telco.zip new file mode 100644 index 0000000..440348e Binary files /dev/null and b/ui-bundle-telco.zip differ diff --git a/vscode-asciidoc-extra.json b/vscode-asciidoc-extra.json new file mode 100644 index 0000000..c36b5e1 --- /dev/null +++ b/vscode-asciidoc-extra.json @@ -0,0 +1,48 @@ +{ + "Add Tabs": { + "prefix": "tabs", + "body": [ + "[tabs]", + "====", + "${1:tab1}::", + "+", + "--", + "--", + "${2:tab2}::", + "+", + "--", + "--", + "====" + ], + "description": "Add Tabs macro" + }, + "Add Navigation": { + "prefix": "nav", + "body": [ + "${1|*,**,***|} xref:${2:page.adoc}[${3:Nav Title}]" + ], + "description": "Add new navigation" + }, + "Console Input": { + "prefix": "input", + "body": [ + "[.console-input]", + "[source,${1:bash}]", + "----", + "${2:echo \"Hello World\"}", + "----" + ], + "description": "Adds Console Input source fragment" + }, + "Console Output": { + "prefix": "output", + "body": [ + "[.console-output]", + "[source,${1:bash}]", + "----", + "${2:\"Hello World\"}", + "----" + ], + "description": "Adds Console Output source fragment" + } +} \ No newline at end of file