@centricle/rtfm 1.0.3 → 1.1.1

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 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
- // Assume it's a directory to serve
85
- serve(cmd, flags);
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
- openBrowser(url);
92
+ const target = openPath ? `${url}/#/${openPath}` : url;
93
+ openBrowser(target);
93
94
  }
94
95
  });
95
96
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@centricle/rtfm",
3
- "version": "1.0.3",
3
+ "version": "1.1.1",
4
4
  "description": "Local docs reader. Zero dependencies. Zero network.",
5
5
  "bin": {
6
6
  "rtfm": "bin/rtfm.js"
@@ -184,7 +184,21 @@
184
184
  loadSidebar: true,
185
185
  subMaxLevel: 2,
186
186
  auto2top: true,
187
- routerMode: 'history'
187
+ routerMode: 'hash',
188
+ plugins: [
189
+ function(hook) {
190
+ hook.doneEach(function() {
191
+ var path = window.location.hash.replace(/^#\/?/, '');
192
+ if (path) {
193
+ // Use filename from route as tab title
194
+ var name = path.split('/').pop().replace(/\.md$/i, '');
195
+ document.title = decodeURIComponent(name);
196
+ } else {
197
+ document.title = 'rtfm';
198
+ }
199
+ });
200
+ }
201
+ ]
188
202
  }
189
203
  </script>
190
204
  <script src="/docsify.min.js"></script>