@centricle/rtfm 1.0.3 → 1.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bin/rtfm.js +14 -3
- package/lib/serve.js +3 -2
- package/package.json +1 -1
package/bin/rtfm.js
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
|
|
3
|
+
const fs = require('fs');
|
|
4
|
+
const path = require('path');
|
|
3
5
|
const { serve } = require('../lib/serve');
|
|
4
6
|
const { init } = require('../lib/init');
|
|
5
7
|
const { sidebar } = require('../lib/sidebar');
|
|
@@ -49,6 +51,7 @@ rtfm - Local docs reader. Zero dependencies. Zero network.
|
|
|
49
51
|
|
|
50
52
|
Usage:
|
|
51
53
|
rtfm Serve current directory, open browser
|
|
54
|
+
rtfm [file.md] Serve a single markdown file
|
|
52
55
|
rtfm serve [dir] Serve specified directory
|
|
53
56
|
rtfm init Scaffold rtfm files into current directory
|
|
54
57
|
rtfm sidebar Auto-generate _sidebar.md from *.md files
|
|
@@ -80,7 +83,15 @@ switch (cmd) {
|
|
|
80
83
|
case 'open':
|
|
81
84
|
open(positional[1] || '/', flags);
|
|
82
85
|
break;
|
|
83
|
-
default:
|
|
84
|
-
//
|
|
85
|
-
|
|
86
|
+
default: {
|
|
87
|
+
// Single .md file: serve its directory, open to that file
|
|
88
|
+
const resolved = path.resolve(cmd);
|
|
89
|
+
if (cmd.endsWith('.md') && fs.existsSync(resolved) && fs.statSync(resolved).isFile()) {
|
|
90
|
+
const dir = path.dirname(resolved);
|
|
91
|
+
const docPath = path.basename(resolved, '.md');
|
|
92
|
+
serve(dir, flags, docPath);
|
|
93
|
+
} else {
|
|
94
|
+
serve(cmd, flags);
|
|
95
|
+
}
|
|
96
|
+
}
|
|
86
97
|
}
|
package/lib/serve.js
CHANGED
|
@@ -22,7 +22,7 @@ const MIME_TYPES = {
|
|
|
22
22
|
'.ttf': 'font/ttf'
|
|
23
23
|
};
|
|
24
24
|
|
|
25
|
-
function serve(dir, flags) {
|
|
25
|
+
function serve(dir, flags, openPath) {
|
|
26
26
|
const root = path.resolve(dir);
|
|
27
27
|
|
|
28
28
|
// If not initialized, auto-init + generate sidebar
|
|
@@ -89,7 +89,8 @@ function serve(dir, flags) {
|
|
|
89
89
|
console.log('Press Ctrl+C to stop');
|
|
90
90
|
|
|
91
91
|
if (flags.open) {
|
|
92
|
-
|
|
92
|
+
const target = openPath ? `${url}/#/${openPath}` : url;
|
|
93
|
+
openBrowser(target);
|
|
93
94
|
}
|
|
94
95
|
});
|
|
95
96
|
}
|