docs: simplify docs

This commit is contained in:
Tony Brix 2021-02-25 01:31:26 -06:00
parent 0b2ac8b23c
commit 7d01d1679c
9 changed files with 37 additions and 143 deletions

2
.gitignore vendored
View File

@ -77,4 +77,4 @@ xcuserdata
*.env
# built docs
public
/public

View File

@ -1,7 +0,0 @@
</div><!-- end #content -->
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
<script type="text/javascript" src="media/js/script.js"></script>
</body>
</html>

View File

@ -1,47 +0,0 @@
/* eslint-disable */
$(function() {
var headerHeight = $("#header").height();
var offsets = [];
var current = -1;
function endpoint(scrollDistance) {
if (scrollDistance < offsets[0]) {
return -1;
} else {
for (var id = offsets.length; id > 0; id--) {
if (scrollDistance > offsets[id - 1]) {
return id - 1;
break;
}
}
}
}
$("h2").each(function(i) {
offsets.push($(this).offset().top - headerHeight)
});
$("#content").append('<h2 class="fixed" style="display: none"><span>&nbsp;</span></h2>');
var fixed_h2 = $("h2.fixed");
var fixed_span = $("h2.fixed span");
$("#content").scroll(function() {
var scrollDistance = $("#content").attr('scrollTop');
var now = endpoint(scrollDistance);
if (now !== current) {
$("#sidebar li").removeClass("current");
current = now;
if (current < 0) {
fixed_h2.hide();
} else if (current >= 0) {
var heading = $($("h2 span")[current]).text();
$("#sidebar a[href|=#" + heading.replace(' ', '-') + "]").parent().addClass("current");
fixed_span.text(heading);
fixed_h2.show();
}
}
});
});

View File

@ -7,7 +7,7 @@ body {
color: #4a3f2d;
}
:focus {
:focus:not(:focus-visible) {
outline: 0;
}
@ -83,22 +83,6 @@ h4 {
display: inline;
}
/* ---- custom classes */
pre.shell,
pre.shell code {
background:#444;
color:#fff;
border-width:0px;
}
pre.shell code::before {
content: '$ ';
display: inline;
}
/* ---- header and sidebar */
#header {
@ -150,15 +134,6 @@ pre.shell code::before {
z-index:0;
}
#sidebar .vertical_divider {
background-color:#FFFFFF;
bottom:0px;
position:absolute;
top:0px;
right:0px;
width:1px;
}
#sidebar h1 {
font-size:1.2em;
padding:0px;
@ -187,25 +162,6 @@ pre.shell code::before {
padding:1px 0px 1px 2px;
}
#sidebar li span.verb {
color:#aaa;
padding:2px 3px 0px;
width:30px;
display:block;
float:left;
font-size:9px;
font-family:verdana;
-moz-border-radius:3px;
-webkit-border-radius:3px;
margin-left:0px;
margin-right:5px;
}
#sidebar li.current {
background-repeat: no-repeat;
background-position:right;
}
/* ---- intro */
@ -219,13 +175,6 @@ pre.shell code::before {
border-radius: 5px;
margin-bottom:40px;
}
.intro pre.base {
background:#444;
color:#29231A;
color:#fff;
border-color:#fff;
font-size:1.5em;
}
.intro h1 {
color: #1C313C;
}
@ -259,14 +208,6 @@ h1 + h2 {
margin-top: 0px;
}
h2.fixed {
position:fixed;
margin-top: 0;
border-top:none;
right:45px;
top:66px;
}
h2 span {
background: #979592;
float:right;

View File

Before

Width:  |  Height:  |  Size: 3.2 KiB

After

Width:  |  Height:  |  Size: 3.2 KiB

View File

@ -32,3 +32,8 @@
</div>
<div id="content">
%(content)s
</div><!-- end #content -->
</body>
</html>

View File

@ -79,9 +79,7 @@ API documentation is:
# More information
- License:[MIT](http://opensource.org/licenses/mit-license.php)
- Code: [mcavage/node-ldapjs](https://github.com/mcavage/node-ldapjs)
- node.js version: >=0.8
- Twitter: [@pfmooney](http://twitter.com/pfmooney)
- Code: [ldapjs/node-ldapjs](https://github.com/ldapjs/node-ldapjs)
# What's not in the box?

View File

@ -66,56 +66,60 @@ function markdownTOC (markdown) {
}
}
function createHTML (header, footer, text) {
function createHTML (template, text) {
const { attributes, body } = fm(text)
for (const prop in attributes) {
header = header.replace(new RegExp(`%\\(${prop}\\)s`, 'ig'), attributes[prop])
footer = footer.replace(new RegExp(`%\\(${prop}\\)s`, 'ig'), attributes[prop])
}
const { toc, html } = markdownTOC(body)
attributes.toc_html = toc
attributes.content = html
header = header.replace(/%\(toc_html\)s/ig, toc)
for (const prop in attributes) {
template = template.replace(new RegExp(`%\\(${prop}\\)s`, 'ig'), attributes[prop])
}
return header + html + footer
return template
}
async function copyRecursive (src, dest) {
const stats = await fs.stat(src)
const isDirectory = stats.isDirectory()
if (isDirectory) {
await fs.mkdir(dest)
const files = await fs.readdir(src)
for (const file of files) {
await copyRecursive(path.join(src, file), path.join(dest, file))
}
} else {
await fs.copyFile(src, dest)
}
}
async function createDocs () {
const docs = path.resolve(__dirname, '..', 'docs')
const dist = path.resolve(__dirname, '..', 'public')
const branding = path.join(docs, 'branding')
const src = path.join(branding, 'public')
await fs.rmdir(dist, { recursive: true })
await fs.mkdir(dist)
await copyRecursive(src, dist)
const header = await fs.readFile(path.join(branding, 'header.html.in'), { encoding: 'utf8' })
const footer = await fs.readFile(path.join(branding, 'footer.html.in'), { encoding: 'utf8' })
const highlightjsStyles = path.resolve(__dirname, '..', 'node_modules', 'highlight.js', 'styles')
await fs.copyFile(path.join(highlightjsStyles, 'default.css'), path.join(dist, 'media', 'css', 'highlight.css'))
const template = await fs.readFile(path.join(branding, 'template.html'), { encoding: 'utf8' })
const files = await fs.readdir(docs)
for (const file of files) {
if (!file.endsWith('.md')) {
continue
}
const text = await fs.readFile(path.join(docs, file), { encoding: 'utf8' })
const html = createHTML(header, footer, text)
const html = createHTML(template, text)
await fs.writeFile(path.join(dist, file.replace(/md$/, 'html')), html)
}
const dest = path.join(dist, 'media')
const src = path.join(branding, 'media')
const highlightjsStyles = path.resolve(__dirname, '..', 'node_modules', 'highlight.js', 'styles')
await fs.mkdir(dest)
await fs.mkdir(path.join(dest, 'css'))
await fs.mkdir(path.join(dest, 'js'))
await fs.mkdir(path.join(dest, 'img'))
await fs.copyFile(path.join(src, 'css', 'style.css'), path.join(dest, 'css', 'style.css'))
await fs.copyFile(path.join(highlightjsStyles, 'default.css'), path.join(dest, 'css', 'highlight.css'))
await fs.copyFile(path.join(src, 'js', 'script.js'), path.join(dest, 'js', 'script.js'))
await fs.copyFile(path.join(src, 'img', 'logo.svg'), path.join(dest, 'img', 'logo.svg'))
await fs.copyFile(path.join(branding, 'CNAME'), path.join(dist, 'CNAME'))
}
createDocs().catch(ex => {
console.error(ex)
process.exit(1)
process.exitCode = 1
})