Skip to content
This repository was archived by the owner on Apr 13, 2020. It is now read-only.

Commit 0579b42

Browse files
authored
having git commands document on github pages (#317)
* generate docs * stage * stage * in html mode * dealing with init command * stage * added code to handle md files * having commands manual in github pages * encode the spk command url * add yarn build-cmd-docs to release script * add command implementation guide
1 parent abae4ea commit 0579b42

File tree

13 files changed

+21993
-0
lines changed

13 files changed

+21993
-0
lines changed

docs/commands/data.json

Lines changed: 635 additions & 0 deletions
Large diffs are not rendered by default.

docs/commands/favicon.icon

16.8 KB
Binary file not shown.

docs/commands/images/mslogo.png

3.34 KB
Loading

docs/commands/index.html

Lines changed: 70 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,70 @@
1+
<!DOCTYPE html>
2+
<html>
3+
<head>
4+
<meta charset="utf-8" />
5+
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
6+
<link rel="stylesheet" href="styles/feb02e3b.site-ltr.css">
7+
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
8+
<link rel="stylesheet" href="styles/spk.css ">
9+
<script src="https://ajax.aspnetcdn.com/ajax/jQuery/jquery-3.3.1.min.js" integrity="sha384-tsQFqpEReu7ZLhBV2VZlAu7zcOV+rXbYlF2cqB8txI/8aZajjp4Bqd+V6D5IgvKT" crossorigin="anonymous"></script>
10+
<script src="https://cdnjs.cloudflare.com/ajax/libs/showdown/1.9.1/showdown.min.js"></script>
11+
<script src="./spk.js"></script>
12+
<title>SPK Commands</title>
13+
</head>
14+
<body>
15+
<div class="dropdown-menu has-padding-small" id="sharing-menu" style="display: none; top: 70px; right: 8px;">
16+
<ul data-bi-name="share-links">
17+
<li>
18+
<a class="button is-text is-fullwidth has-flex-justify-content-start has-inner-focus is-small share-twitter"
19+
data-bi-name="twitter" href="https://twitter.com/intent/tweet?text=Bedrock%20SPK%20%7C%20Commands&tw_p=tweetbutton&url=https%3A%2F%2Fcatalystcode.github.io%2Fspk%2Fcommands%2Findex.html">
20+
<span class="icon">
21+
<span class="docon docon-brand-twitter has-text-primary" aria-hidden="true"></span>
22+
</span>
23+
<span>Twitter</span>
24+
</a>
25+
</li>
26+
<li>
27+
<a class="button is-text is-fullwidth has-flex-justify-content-start has-inner-focus is-small share-linkedin"
28+
data-bi-name="linkedin" href="https://www.linkedin.com/sharing/share-offsite/?url=https%3A%2F%2Fcatalystcode.github.io%2Fspk%2Fcommands%2Findex.html">
29+
<span class="icon">
30+
<span class="docon docon-brand-linkedin has-text-primary" aria-hidden="true"></span>
31+
</span>
32+
<span>LinkedIn</span>
33+
</a>
34+
</li>
35+
</ul>
36+
</div>
37+
<div id="header">
38+
<div class="header-left-text">
39+
<div><img width="30px" src="images/mslogo.png"></div>
40+
<div class="header-text">SPK</div>
41+
</div>
42+
</div>
43+
<div id="subheader">
44+
<div id="item_share" class="tab-item">
45+
<span class="fa fa-share-square-o"></span>
46+
<span class="tinyfont">Share</span>
47+
</div>
48+
</div>
49+
<div id="content">
50+
<div class="content-left">
51+
<div class="title">SPK Commands</div>
52+
<div>
53+
<div class="control has-icons-left">
54+
<input id="commandfilter" role="combobox" maxlength="100" aria-autocomplete="list" autocapitalize="off" autocomplete="off" autocorrect="off" spellcheck="false" id="ax-0" class="autocomplete-input input control has-icons-left is-small is-full-width" type="text" aria-expanded="false" aria-owns="ax-1-listbox" aria-activedescendant="" placeholder="Filter by command">
55+
56+
<span class="icon is-small is-left" aria-hidden="true">
57+
<span class="fa fa-filter input-icon"></span>
58+
</span>
59+
60+
<span class="autocomplete-loader loader has-text-primary" aria-hidden="true" hidden=""></span>
61+
</div>
62+
</div>
63+
<div id="command-list"></div>
64+
</div>
65+
66+
<div id="spk-details" class="content-right"></div>
67+
</div>
68+
69+
</body>
70+
</html>

docs/commands/spk.js

Lines changed: 118 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,118 @@
1+
var data = null;
2+
var filter = "";
3+
var converter = new showdown.Converter();
4+
5+
var template =
6+
'<p class="cmd-title">@@main-cmd@@</p><p class="cmd-description">@@cmd-description@@</p><p>&nbsp;</p><p>Options:</p>@@options@@<p>&nbsp;</p>';
7+
var optionTemplate =
8+
'<p>@@option@@</p><p class="cmd-description">@@description@@</p><div class="line-space"></div>';
9+
10+
function sanitize(str) {
11+
return str.replace("<", "&lt;").replace(">", "&gt;");
12+
}
13+
14+
function showDetails(key) {
15+
if (!key) {
16+
window.location.hash = "";
17+
$("#spk-details").html("");
18+
return;
19+
}
20+
window.location.hash = key.replace(/\s/g, "_");
21+
var cmd = data[key];
22+
var valuesArray = cmd.command.split(/\s/);
23+
var values = "";
24+
if (valuesArray.length > 1) {
25+
valuesArray.shift();
26+
values = " " + valuesArray.join(" ");
27+
}
28+
var alias = cmd.alias ? `|${cmd.alias}` : "";
29+
var content = template.replace(
30+
"@@main-cmd@@",
31+
"spk " + key + alias + sanitize(values) + " [options]"
32+
);
33+
content = content.replace("@@cmd-description@@", cmd.description);
34+
35+
var options = cmd.options.reduce(function(a, c) {
36+
a += optionTemplate
37+
.replace("@@option@@", sanitize(c.arg))
38+
.replace("@@description@@", sanitize(c.description));
39+
return a;
40+
}, "");
41+
options += optionTemplate
42+
.replace("@@option@@", "-h, --help")
43+
.replace("@@description@@", "output usage information");
44+
45+
content = content.replace("@@options@@", options);
46+
47+
if (cmd.markdown) {
48+
content =
49+
'<div class="markdown">' +
50+
converter.makeHtml(cmd.markdown) +
51+
"</div><hr>" +
52+
content;
53+
}
54+
55+
$("#spk-details").html(content);
56+
}
57+
58+
function populateListing() {
59+
var cmdKeys = Object.keys(data);
60+
if (filter) {
61+
cmdKeys = cmdKeys.filter(function(k) {
62+
return k.indexOf(filter) !== -1;
63+
});
64+
}
65+
var listing = cmdKeys.reduce(function(a, c) {
66+
a +=
67+
"<li><a href=\"javascript:showDetails('" +
68+
c +
69+
"');\">spk " +
70+
c +
71+
"</a></li>";
72+
return a;
73+
}, "");
74+
75+
if (listing) {
76+
$("#command-list").html("<ul>" + listing + "</ul>");
77+
} else {
78+
$("#command-list").html(
79+
'<span class="small-font">no matching commands</span>'
80+
);
81+
}
82+
if (window.location.hash) {
83+
var key = window.location.hash.replace(/_/g, " ").substring(1); // remove #
84+
if (cmdKeys.indexOf(key) !== -1) {
85+
showDetails(key);
86+
} else {
87+
showDetails(cmdKeys[0]);
88+
}
89+
} else {
90+
showDetails(cmdKeys[0]);
91+
}
92+
}
93+
94+
var subheaderItems = function() {
95+
$("#item_share").click(function(evt) {
96+
evt.stopPropagation();
97+
$("#sharing-menu").css("display", "block");
98+
});
99+
$("body").click(function() {
100+
$("#sharing-menu").css("display", "none");
101+
});
102+
};
103+
104+
$(function() {
105+
$.getJSON("./data.json", function(json) {
106+
data = json;
107+
subheaderItems();
108+
populateListing();
109+
110+
$("#commandfilter").on("input", function() {
111+
filter = $(this)
112+
.val()
113+
.trim()
114+
.toLowerCase();
115+
populateListing();
116+
});
117+
});
118+
});
9.35 KB
Binary file not shown.

0 commit comments

Comments
 (0)