You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tinkerpop.apache.org by dk...@apache.org on 2018/03/09 15:35:59 UTC
[48/50] tinkerpop git commit: Added automatic tab generation for code
snippets in asciidoc files.
Added automatic tab generation for code snippets in asciidoc files.
Project: http://git-wip-us.apache.org/repos/asf/tinkerpop/repo
Commit: http://git-wip-us.apache.org/repos/asf/tinkerpop/commit/844d997f
Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/844d997f
Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/844d997f
Branch: refs/heads/TINKERPOP-1447
Commit: 844d997f34bd78895cbecb86aad8163a9e7113d4
Parents: 97fb12e
Author: Daniel Kuppitz <da...@hotmail.com>
Authored: Fri Dec 15 14:30:59 2017 -0700
Committer: Daniel Kuppitz <da...@hotmail.com>
Committed: Fri Mar 9 08:34:51 2018 -0700
----------------------------------------------------------------------
docs/postprocessor/processor.awk | 4 +
docs/preprocessor/awk/tabify.awk | 108 ++++++++++++++++++
docs/preprocessor/preprocess-file.sh | 4 +-
docs/sass/compile | 30 +++++
docs/sass/tabs.scss | 178 ++++++++++++++++++++++++++++++
docs/stylesheets/tabs.css | 19 ++++
6 files changed, 342 insertions(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/844d997f/docs/postprocessor/processor.awk
----------------------------------------------------------------------
diff --git a/docs/postprocessor/processor.awk b/docs/postprocessor/processor.awk
index 18ada47..da82420 100644
--- a/docs/postprocessor/processor.awk
+++ b/docs/postprocessor/processor.awk
@@ -33,6 +33,10 @@ BEGIN {
}
}
+/<body/ {
+ print "<link rel=\"stylesheet\" href=\"/docs/x.y.z/stylesheets/tabs.css\" />"
+}
+
!/<span class="comment">/ {
if (firstMatch || !isHeader) {
print gensub(/(<b class="conum">)\(([0-9]+)\)(<\/b>)/,
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/844d997f/docs/preprocessor/awk/tabify.awk
----------------------------------------------------------------------
diff --git a/docs/preprocessor/awk/tabify.awk b/docs/preprocessor/awk/tabify.awk
new file mode 100644
index 0000000..bc8d644
--- /dev/null
+++ b/docs/preprocessor/awk/tabify.awk
@@ -0,0 +1,108 @@
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements. See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership. The ASF licenses this file
+# to you 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.
+
+#
+# @author Daniel Kuppitz (http://gremlin.guru)
+#
+function print_tabs(next_id, tabs, blocks) {
+
+ num_tabs = length(tabs)
+ x = next_id
+
+ print "++++"
+ print "<section class=\"tabs tabs-" num_tabs "\">"
+
+ for (i in tabs) {
+ title = tabs[i]
+ print " <input id=\"tab-" id_part "-" x "\" type=\"radio\" name=\"radio-set-" id_part "-" next_id "\" class=\"tab-selector-" i "\"" (i == 1 ? " checked=\"checked\"" : "") " />"
+ print " <label for=\"tab-" id_part "-" x "\" class=\"tab-label-" i "\">" title "</label>"
+ x++
+ }
+
+ for (i in blocks) {
+ print " <div class=\"tabcontent\">"
+ print " <div class=\"tabcontent-" i "\">"
+ print "++++\n"
+ print blocks[i]
+ print "++++"
+ print " </div>"
+ print " </div>"
+ }
+
+ print "</section>"
+ print "++++\n"
+}
+
+BEGIN {
+ id_part=systime()
+ status = 0
+ next_id = 1
+ block[0] = 0 # initialize "blocks" as an array
+ delete blocks[0]
+}
+
+/^\[gremlin-/ {
+ status = 1
+ lang = gensub(/^\[gremlin-([^,\]]+).*/, "\\1", "g", $0)
+ code = ""
+}
+
+/^\[source,/ {
+ if (status == 3) {
+ status = 1
+ lang = gensub(/^\[source,([^\]]+).*/, "\\1", "g", $0)
+ code = ""
+ }
+}
+
+! /^\[source,/ {
+ if (status == 3 && $0 != "") {
+ print_tabs(next_id, tabs, blocks)
+ next_id = next_id + length(tabs)
+ for (i in tabs) {
+ delete tabs[i]
+ delete blocks[i]
+ }
+ status = 0
+ }
+}
+
+/^----$/ {
+ if (status == 1) {
+ status = 2
+ } else if (status == 2) {
+ status = 3
+ }
+}
+
+{ if (status == 3) {
+ if ($0 == "----") {
+ i = length(blocks) + 1
+ if (i == 1) {
+ tabs[i] = "console (" lang ")"
+ blocks[i] = code_header code "\n" $0 "\n"
+ i++
+ }
+ tabs[i] = lang
+ blocks[i] = "[source," lang "]" code "\n" $0 "\n"
+ }
+ } else {
+ if (status == 0) print
+ else if (status == 1) code_header = $0
+ else code = code "\n" $0
+ }
+}
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/844d997f/docs/preprocessor/preprocess-file.sh
----------------------------------------------------------------------
diff --git a/docs/preprocessor/preprocess-file.sh b/docs/preprocessor/preprocess-file.sh
index d5076f1..7d3956d 100755
--- a/docs/preprocessor/preprocess-file.sh
+++ b/docs/preprocessor/preprocess-file.sh
@@ -132,6 +132,7 @@ if [ ! ${SKIP} ] && [ $(grep -c '^\[gremlin' ${input}) -gt 0 ]; then
fi
sed 's/\t/ /g' ${input} |
+ awk -f ${AWK_SCRIPTS}/tabify.awk |
awk -f ${AWK_SCRIPTS}/prepare.awk |
awk -f ${AWK_SCRIPTS}/init-code-blocks.awk -v TP_HOME="${TP_HOME}" -v PYTHONPATH="${TP_HOME}/gremlin-python/target/classes/Lib" |
awk -f ${AWK_SCRIPTS}/progressbar.awk -v tpl=${AWK_SCRIPTS}/progressbar.groovy.template |
@@ -141,8 +142,9 @@ if [ ! ${SKIP} ] && [ $(grep -c '^\[gremlin' ${input}) -gt 0 ]; then
${lb} awk -f ${AWK_SCRIPTS}/cleanup.awk |
${lb} awk -f ${AWK_SCRIPTS}/language-variants.awk > ${output}
+ # check exit code for each of the previously piped commands
ps=(${PIPESTATUS[@]})
- for i in {0..6}; do
+ for i in {0..9}; do
ec=${ps[i]}
[ ${ec} -eq 0 ] || break
done
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/844d997f/docs/sass/compile
----------------------------------------------------------------------
diff --git a/docs/sass/compile b/docs/sass/compile
new file mode 100755
index 0000000..002954e
--- /dev/null
+++ b/docs/sass/compile
@@ -0,0 +1,30 @@
+#!/bin/bash
+#
+#
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements. See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership. The ASF licenses this file
+# to you 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.
+#
+
+DIR=`dirname $0`
+
+IF="${DIR}/tabs.scss"
+OF="${DIR}/../stylesheets/tabs.css"
+TF=`mktemp`
+
+scss --sourcemap=none -t compressed -C ${IF} ${OF}
+
+cat ${DIR}/../stylesheets/tinkerpop.css | awk 'BEGIN {p=1} {if (p) print} /\*\// {p=0}' | cat - ${OF} > ${TF} && mv ${TF} ${OF}
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/844d997f/docs/sass/tabs.scss
----------------------------------------------------------------------
diff --git a/docs/sass/tabs.scss b/docs/sass/tabs.scss
new file mode 100644
index 0000000..39c88f4
--- /dev/null
+++ b/docs/sass/tabs.scss
@@ -0,0 +1,178 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you 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.
+ */
+
+$blue: #3f6b9d;
+$orange: #e08f24;
+$white: #fefefe;
+$black: #1a1a1a;
+$gray: #eee;
+
+$active: #609060;
+$inactive: #e9ffe9;
+
+$tabHeight: 50px;
+$minTabs: 2;
+$maxTabs: 4;
+
+@mixin single-transition($property:all, $speed:150ms, $ease:ease, $delay: 0s) {
+ -webkit-transition: $property $speed $ease $delay;
+ transition: $property $speed $ease $delay;
+}
+
+.tabs {
+
+ position: relative;
+ margin: 40px auto;
+ width: 1024px;
+ max-width: 100%;
+ overflow: hidden;
+ padding-top: 10px;
+ margin-bottom: 60px;
+
+ input {
+ position: absolute;
+ z-index: 1000;
+ height: $tabHeight;
+ left: 0;
+ top: 0;
+ opacity: 0;
+ -ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";
+ filter: alpha(opacity=0);
+ cursor: pointer;
+ margin: 0;
+ &:hover + label {
+ background: $orange;
+ }
+ }
+
+ label {
+ background: $inactive;
+ color: $black;
+ font-size: 15px;
+ line-height: $tabHeight;
+ height: $tabHeight + 10;
+ position: relative;
+ top: 0;
+ padding: 0 20px;
+ float: left;
+ display: block;
+ letter-spacing: 1px;
+ text-transform: uppercase;
+ font-weight: bold;
+ text-align: center;
+ box-shadow: 2px 0 2px rgba(0,0,0,0.1), -2px 0 2px rgba(0,0,0,0.1);
+ box-sizing: border-box;
+ @include single-transition();
+ &:hover{
+ cursor: pointer;
+ }
+ &:after {
+ content: '';
+ background: $active;
+ position: absolute;
+ bottom: -2px;
+ left: 0;
+ width: 100%;
+ height: 2px;
+ display: block;
+ }
+ }
+}
+
+@for $n from $minTabs through $maxTabs {
+
+ .tabs-#{$n} {
+
+ input {
+ width: 100% / $n;
+ @for $i from 1 through $n {
+ &.tab-selector-#{$i}{
+ left: ($i - 1) * (100% / $n);
+ }
+ }
+ }
+
+ label {
+ width: 100% / $n;
+ }
+ }
+}
+
+.tabs label:first-of-type {
+ z-index: 4;
+}
+.tab-label-2 {
+ z-index: 4;
+}
+.tab-label-3 {
+ z-index: 3;
+}
+.tab-label-4 {
+ z-index: 2;
+}
+
+.tabs input:checked + label {
+ background: $active;
+ color: $white;
+ z-index: 6;
+}
+
+.clear-shadow {
+ clear: both;
+}
+
+.tabcontent {
+ height: auto;
+ width: 100%;
+ float: left;
+ position: relative;
+ z-index: 5;
+ background: $gray;
+ top: -10px;
+ box-sizing: border-box;
+ &>div{
+ position: relative;
+ float: left;
+ width: 0;
+ height: 0;
+ box-sizing: border-box;
+ top: 0;
+ left: 0;
+ z-index: 1;
+ opacity: 0;
+ background: $gray;
+ }
+ .CodeRay {
+ background-color: $white;
+ }
+}
+
+@for $i from 1 through $maxTabs {
+ .tabs .tab-selector-#{$i}:checked ~ .tabcontent .tabcontent-#{$i} {
+ z-index: 100;
+ -ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=100)";
+ filter: alpha(opacity=100);
+ opacity: 1;
+ width: 100%;
+ height: auto;
+ width: 100%;
+ height: auto;
+ padding-top: 30px;
+ }
+}
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/844d997f/docs/stylesheets/tabs.css
----------------------------------------------------------------------
diff --git a/docs/stylesheets/tabs.css b/docs/stylesheets/tabs.css
new file mode 100644
index 0000000..df508b7
--- /dev/null
+++ b/docs/stylesheets/tabs.css
@@ -0,0 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you 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.
+ */
+.tabs{position:relative;margin:40px auto;width:1024px;max-width:100%;overflow:hidden;padding-top:10px;margin-bottom:60px}.tabs input{position:absolute;z-index:1000;height:50px;left:0;top:0;opacity:0;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";filter:alpha(opacity=0);cursor:pointer;margin:0}.tabs input:hover+label{background:#e08f24}.tabs label{background:#e9ffe9;color:#1a1a1a;font-size:15px;line-height:50px;height:60px;position:relative;top:0;padding:0 20px;float:left;display:block;letter-spacing:1px;text-transform:uppercase;font-weight:bold;text-align:center;box-shadow:2px 0 2px rgba(0,0,0,0.1),-2px 0 2px rgba(0,0,0,0.1);box-sizing:border-box;-webkit-transition:all 150ms ease 0s;transition:all 150ms ease 0s}.tabs label:hover{cursor:pointer}.tabs label:after{content:'';background:#609060;position:absolute;bottom:-2px;left:0;width:100%;height:2px;display:block}.tabs-2 input{width:50%}.tabs-2 input.tab-selector-1{left:0%}.tabs-2 input.tab-selector-2{left:50%}.tabs-
2 label{width:50%}.tabs-3 input{width:33.33333%}.tabs-3 input.tab-selector-1{left:0%}.tabs-3 input.tab-selector-2{left:33.33333%}.tabs-3 input.tab-selector-3{left:66.66667%}.tabs-3 label{width:33.33333%}.tabs-4 input{width:25%}.tabs-4 input.tab-selector-1{left:0%}.tabs-4 input.tab-selector-2{left:25%}.tabs-4 input.tab-selector-3{left:50%}.tabs-4 input.tab-selector-4{left:75%}.tabs-4 label{width:25%}.tabs label:first-of-type{z-index:4}.tab-label-2{z-index:4}.tab-label-3{z-index:3}.tab-label-4{z-index:2}.tabs input:checked+label{background:#609060;color:#fefefe;z-index:6}.clear-shadow{clear:both}.tabcontent{height:auto;width:100%;float:left;position:relative;z-index:5;background:#eee;top:-10px;box-sizing:border-box}.tabcontent>div{position:relative;float:left;width:0;height:0;box-sizing:border-box;top:0;left:0;z-index:1;opacity:0;background:#eee}.tabcontent .CodeRay{background-color:#fefefe}.tabs .tab-selector-1:checked ~ .tabcontent .tabcontent-1{z-index:100;-ms-filter:"progid:DXImag
eTransform.Microsoft.Alpha(Opacity=100)";filter:alpha(opacity=100);opacity:1;width:100%;height:auto;width:100%;height:auto;padding-top:30px}.tabs .tab-selector-2:checked ~ .tabcontent .tabcontent-2{z-index:100;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=100)";filter:alpha(opacity=100);opacity:1;width:100%;height:auto;width:100%;height:auto;padding-top:30px}.tabs .tab-selector-3:checked ~ .tabcontent .tabcontent-3{z-index:100;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=100)";filter:alpha(opacity=100);opacity:1;width:100%;height:auto;width:100%;height:auto;padding-top:30px}.tabs .tab-selector-4:checked ~ .tabcontent .tabcontent-4{z-index:100;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=100)";filter:alpha(opacity=100);opacity:1;width:100%;height:auto;width:100%;height:auto;padding-top:30px}