diff options
Diffstat (limited to 'html/doc/set.html')
-rw-r--r-- | html/doc/set.html | 871 |
1 files changed, 871 insertions, 0 deletions
diff --git a/html/doc/set.html b/html/doc/set.html new file mode 100644 index 000000000..646c79ce8 --- /dev/null +++ b/html/doc/set.html @@ -0,0 +1,871 @@ +<!doctype html> +<html> + <title>npm-set</title> +<style type="text/css"> + +/* reset */ +* { + margin:0; + padding:0; + border:none; + font-family:inherit; + font-size:inherit; + font-weight:inherit; +} +:target::before { + content:" → "; + position:absolute; + display:block; + opacity:0.5; + color:#f00; + margin:0 0 0 -1.2em; +} +abbr, acronym { + border-bottom:1px dotted #aaa; +} +kbd, code, pre { + font-family:monospace; + margin:0; + font-size:18px; + line-height:24px; + background:#eee; + outline:1px solid #ccc; +} +kbd code, kbd pre, kbd kbd, +pre code, pre pre, pre kbd, +code code, code pre, code kbd { outline: none } +.dollar::before { + content:"$ "; + display:inline; +} +p, ul, ol, dl, pre { + margin:30px 0; + line-height:30px; +} +hr { + margin:30px auto 29px; + width:66%; + height:1px; + background:#aaa; +} +pre { + display:block; +} +dd :first-child { + margin-top:0; +} + +body { + quotes:"“" "”" "‘" "’"; + width:666px; + margin:30px auto 120px; + font-family:Times New Roman, serif; + font-size:20px; + background:#fff; + line-height:30px; + color:#111; +} + +blockquote { + position:relative; + font-size:16px; + line-height:30px; + font-weight:bold; + width:85%; + margin:0 auto; +} +blockquote::before { + font-size:90px; + display:block; + position:absolute; + top:20px; + right:100%; + content:"“"; + padding-right:10px; + color:#ccc; +} +.source cite::before { + content:"— "; +} +.source { + padding-left:20%; + margin-top:30px; +} +.source cite span { + font-style:normal; +} +blockquote p { + margin-bottom:0; +} +.quote blockquote { + font-weight:normal; +} + +h1, h2, h3, h4, h5, h6, dt, #header { + font-family:serif; + font-size:20px; + font-weight:bold; +} +h2 { + background:#eee; +} +h1, h2 { + line-height:40px; +} + +i, em, cite { + font-style:italic; +} +b, strong { + font-weight:bold; +} +i, em, cite, b, strong, small { + line-height:28px; +} +small, .small, .small *, aside { + font-style:italic; + color:#669; + font-size:18px; +} +spall a, .small a { + text-decoration:underline; +} +del { + text-decoration:line-through; +} +ins { + text-decoration:underline; +} +.alignright { display:block; float:right; margin-left:1em; } +.alignleft { display:block; float:left; margin-right:1em; } + +q:before, q q q:before, q q q q q:before, q q q q q q q:before { content:"“"; } +q q:before, q q q q:before, q q q q q q:before, q q q q q q q q:before { content:"‘"; } +q:after, q q q:after, q q q q q:after, q q q q q q q:after { content:"”"; } +q q:after, q q q q:after, q q q q q q:after, q q q q q q q q:after { content:"’"; } + +a { color:#00f; text-decoration:none; } +a:visited { color:#636; } +a:hover, a:active { color:#900!important; text-decoration:underline; } + +h1 { + font-weight:bold; + background:#fff; +} + +.navigation { + display:table; + width:100%; + margin:0 0 30px 0; + position:relative; +} +#nav-above { + margin-bottom:0; +} +.navigation .nav-previous { + display:table-cell; + text-align:left; + width:50%; +} +/* hang the » and « off into the margins */ +.navigation .nav-previous a:before, .navigation .nav-next a:after { + content: "«"; + display:block; + height:30px; + margin-bottom:-30px; + text-decoration:none; + margin-left:-15px; +} +.navigation .nav-next a:after { + content: "»"; + text-align:right; + margin-left:0; + margin-top:-30px; + margin-right:-15px; +} + + +.navigation .nav-next { + display:table-cell; + text-align:right; + width:50%; +} +.navigation a { + display:block; + width:100%; + height:100%; +} + +input, button, textarea { + border:0; + line-height:30px; +} +textarea { + height:300px; +} +input { + height:30px; + line-height:30px; +} +input.submit, input#submit, input.button, button, input[type=submit] { + cursor:hand; cursor:pointer; + outline:1px solid #ccc; +} + +#wrapper { + margin-bottom:90px; + position:relative; + z-index:1; + *zoom:1; + background:#fff; +} +#wrapper:after { + display:block; + content:"."; + visibility:hidden; + width:0; + height:0; + clear:both; +} + +.sidebar .xoxo > li { + float:left; + width:50%; +} +.sidebar li { + list-style:none; +} +.sidebar #elsewhere { + margin-left:-10%; + margin-right:-10%; +} +.sidebar #rss-links, .sidebar #twitter-feeds { + float:right; + clear:right; + width:20%; +} +.sidebar #comment { + clear:both; + float:none; + width:100%; +} +.sidebar #search { + clear:both; + float:none; + width:100%; +} +.sidebar #search h2 { + margin-left:40%; +} +.sidebar #search #s { + width:90%; + float:left; +} +.sidebar #search #searchsubmit { + width:10%; + float:right; +} +.sidebar * { + font-size:15px; + line-height:30px; +} + +#footer, #footer * { + margin:300px 0 0; + text-align:right; + font-size:14px; + line-height:90px; +} + +#toc { + position:absolute; + top:0; + right:0; + padding:40px 0 40px 20px; + margin:0; + width:200px; + opacity:0.2; + z-index:-1; +} +#toc:hover { + opacity:1; + background:#fff; + z-index:999; +} +#toc ul { + padding:0; + margin:0; +} +#toc, #toc li { + list-style-type:none; + font-size:15px; + line-height:15px; +} +#toc li { + padding:0 0 0 10px; +} + + +@media print { + a[href] { + color:inherit; + } + a[href]:after { + white-space:nowrap; + content:" " attr(href); + } + a[href^=\#], .navigation { + display:none; + } +} +</style> + + <body> + <div id="wrapper"> +<h1><a href="config.html">npm-config(1)</a> -- Manage the npm configuration file</h1> + +<h2 id="SYNOPSIS">SYNOPSIS</h2> + +<pre><code>npm config set <key> <value> [--global] +npm config get <key> +npm config delete <key> +npm config list +npm config edit +npm get <key> +npm set <key> <value> [--global]</code></pre> + +<h2 id="DESCRIPTION">DESCRIPTION</h2> + +<p>npm gets its configuration values from 5 sources, in this priority:</p> + +<ul><li>cli: +The command line flags. Putting <code>--foo bar</code> on the command line sets the +<code>foo</code> configuration parameter to <code>"bar"</code>. A <code>--</code> argument tells the cli +parser to stop reading flags. A <code>--flag</code> parameter that is at the <em>end</em> of +the command will be given the value of <code>true</code>.</li><li>env: +Any environment variables that start with <code>npm_config_</code> will be interpreted +as a configuration parameter. For example, putting <code>npm_config_foo=bar</code> in +your environment will set the <code>foo</code> configuration parameter to <code>bar</code>. Any +environment configurations that are not given a value will be given the value +of <code>true</code>. Config values are case-insensitive, so <code>NPM_CONFIG_FOO=bar</code> will +work the same.</li><li>$HOME/.npmrc (or the <code>userconfig</code> param, if set above): +This file is an ini-file formatted list of <code>key = value</code> parameters.</li><li>$PREFIX/etc/npmrc (or the <code>globalconfig</code> param, if set above): +This file is an ini-file formatted list of <code>key = value</code> parameters</li><li>default configs: +This is a set of configuration parameters that are internal to npm, and are +defaults if nothing else is specified.</li></ul> + +<h2 id="Sub-commands">Sub-commands</h2> + +<p>Config supports the following sub-commands:</p> + +<h3 id="set">set</h3> + +<pre><code>npm config set key value</code></pre> + +<p>Sets the config key to the value.</p> + +<p>If value is omitted, then it sets it to "true".</p> + +<h3 id="get">get</h3> + +<pre><code>npm config get key</code></pre> + +<p>Echo the config value to stdout.</p> + +<h3 id="list">list</h3> + +<pre><code>npm config list</code></pre> + +<p>Show all the config settings.</p> + +<h3 id="delete">delete</h3> + +<pre><code>npm config delete key</code></pre> + +<p>Deletes the key from all configuration files.</p> + +<h3 id="edit">edit</h3> + +<pre><code>npm config edit</code></pre> + +<p>Opens the config file in an editor. Use the <code>--global</code> flag to edit the +global config.</p> + +<h2 id="Shorthands-and-Other-CLI-Niceties">Shorthands and Other CLI Niceties</h2> + +<p>The following shorthands are parsed on the command-line:</p> + +<ul><li><code>-v</code>: <code>--version</code></li><li><code>-h</code>, <code>-?</code>, <code>--help</code>, <code>-H</code>: <code>--usage</code></li><li><code>-s</code>, <code>--silent</code>: <code>--loglevel silent</code></li><li><code>-d</code>: <code>--loglevel info</code></li><li><code>-dd</code>, <code>--verbose</code>: <code>--loglevel verbose</code></li><li><code>-ddd</code>: <code>--loglevel silly</code></li><li><code>-g</code>: <code>--global</code></li><li><code>-l</code>: <code>--long</code></li><li><code>-p</code>, <code>--porcelain</code>: <code>--parseable</code></li><li><code>-reg</code>: <code>--registry</code></li><li><code>-v</code>: <code>--version</code></li><li><code>-f</code>: <code>--force</code></li><li><code>-l</code>: <code>--long</code></li><li><code>-desc</code>: <code>--description</code></li><li><code>-S</code>: <code>--save</code></li><li><code>-y</code>: <code>--yes</code></li><li><code>-n</code>: <code>--yes false</code></li><li><code>ll</code> and <code>la</code> commands: <code>ls --long</code></li></ul> + +<p>If the specified configuration param resolves unambiguously to a known +configuration parameter, then it is expanded to that configuration +parameter. For example:</p> + +<pre><code>npm ls --par +# same as: +npm ls --parseable</code></pre> + +<p>If multiple single-character shorthands are strung together, and the +resulting combination is unambiguously not some other configuration +param, then it is expanded to its various component pieces. For +example:</p> + +<pre><code>npm ls -gpld +# same as: +npm ls --global --parseable --long --loglevel info</code></pre> + +<h2 id="Per-Package-Config-Settings">Per-Package Config Settings</h2> + +<p>When running scripts (see <code>npm help scripts</code>) +the package.json "config" keys are overwritten in the environment if +there is a config param of <code><name>[@<version>]:<key></code>. For example, if +the package.json has this:</p> + +<pre><code>{ "name" : "foo" +, "config" : { "port" : "8080" } +, "scripts" : { "start" : "node server.js" } }</code></pre> + +<p>and the server.js is this:</p> + +<pre><code>http.createServer(...).listen(process.env.npm_package_config_port)</code></pre> + +<p>then the user could change the behavior by doing:</p> + +<pre><code>npm config set foo:port 80</code></pre> + +<h2 id="Config-Settings">Config Settings</h2> + +<h3 id="always-auth">always-auth</h3> + +<ul><li>Default: false</li><li>Type: Boolean</li></ul> + +<p>Force npm to always require authentication when accessing the registry, +even for <code>GET</code> requests.</p> + +<h3 id="bin-publish">bin-publish</h3> + +<ul><li>Default: false</li><li>Type: Boolean</li></ul> + +<p>If set to true, then binary packages will be created on publish.</p> + +<p>This is the way to opt into the "bindist" behavior described below.</p> + +<h3 id="bindist">bindist</h3> + +<ul><li>Default: Unstable node versions, <code>null</code>, otherwise +<code>"<node version>-<platform>-<os release>"</code></li><li>Type: String or <code>null</code></li></ul> + +<p>Experimental: on stable versions of node, binary distributions will be +created with this tag. If a user then installs that package, and their +<code>bindist</code> tag is found in the list of binary distributions, they will +get that prebuilt version.</p> + +<p>Pre-build node packages have their preinstall, install, and postinstall +scripts stripped (since they are run prior to publishing), and do not +have their <code>build</code> directories automatically ignored.</p> + +<p>It's yet to be seen if this is a good idea.</p> + +<h3 id="browser">browser</h3> + +<ul><li>Default: OS X: <code>"open"</code>, others: <code>"google-chrome"</code></li><li>Type: String</li></ul> + +<p>The browser that is called by the <code>npm docs</code> command to open websites.</p> + +<h3 id="cache">cache</h3> + +<ul><li>Default: Windows: <code>~/npm-cache</code>, Posix: <code>~/.npm</code></li><li>Type: path</li></ul> + +<p>The location of npm's cache directory. See <code>npm help cache</code></p> + +<h3 id="color">color</h3> + +<ul><li>Default: true on Posix, false on Windows</li><li>Type: Boolean or <code>"always"</code></li></ul> + +<p>If false, never shows colors. If <code>"always"</code> then always shows colors. +If true, then only prints color codes for tty file descriptors.</p> + +<h3 id="depth">depth</h3> + +<ul><li>Default: Infinity</li><li>Type: Number</li></ul> + +<p>The depth to go when recursing directories for <code>npm ls</code> and +<code>npm cache ls</code>.</p> + +<h3 id="description">description</h3> + +<ul><li>Default: true</li><li>Type: Boolean</li></ul> + +<p>Show the description in <code>npm search</code></p> + +<h3 id="dev">dev</h3> + +<ul><li>Default: false</li><li>Type: Boolean</li></ul> + +<p>Install <code>dev-dependencies</code> along with packages.</p> + +<p>Note that <code>dev-dependencies</code> are also installed if the <code>npat</code> flag is +set.</p> + +<h3 id="editor">editor</h3> + +<ul><li>Default: <code>EDITOR</code> environment variable if set, or <code>"vi"</code></li><li>Type: path</li></ul> + +<p>The command to run for <code>npm edit</code> or <code>npm config edit</code>.</p> + +<h3 id="force">force</h3> + +<ul><li>Default: false</li><li>Type: Boolean</li></ul> + +<p>Makes various commands more forceful.</p> + +<ul><li>lifecycle script failure does not block progress.</li><li>publishing clobbers previously published versions.</li><li>skips cache when requesting from the registry.</li><li>prevents checks against clobbering non-npm files.</li></ul> + +<h3 id="global">global</h3> + +<ul><li>Default: false</li><li>Type: Boolean</li></ul> + +<p>Operates in "global" mode, so that packages are installed into the +<code>prefix</code> folder instead of the current working directory. See +<code>npm help folders</code> for more on the differences in behavior.</p> + +<ul><li>packages are installed into the <code>prefix/node_modules</code> folder, instead of the +current working directory.</li><li>bin files are linked to <code>prefix/bin</code></li><li>man pages are linked to <code>prefix/share/man</code></li></ul> + +<h3 id="globalconfig">globalconfig</h3> + +<ul><li>Default: {prefix}/etc/npmrc</li><li>Type: path</li></ul> + +<p>The config file to read for global config options.</p> + +<h3 id="globalignorefile">globalignorefile</h3> + +<ul><li>Default: {prefix}/etc/npmignore</li><li>Type: path</li></ul> + +<p>The config file to read for global ignore patterns to apply to all users +and all projects.</p> + +<p>If not found, but there is a "gitignore" file in the +same directory, then that will be used instead.</p> + +<h3 id="group">group</h3> + +<ul><li>Default: GID of the current process</li><li>Type: String or Number</li></ul> + +<p>The group to use when running package scripts in global mode as the root +user.</p> + +<h3 id="gzipbin">gzipbin</h3> + +<ul><li>Default: "gzip"</li><li>Type: path</li></ul> + +<p>The gzip binary</p> + +<h3 id="https-proxy">https-proxy</h3> + +<ul><li>Default: the <code>HTTPS_PROXY</code> or <code>https_proxy</code> or <code>HTTP_PROXY</code> or +<code>http_proxy</code> environment variables.</li><li>Type: url</li></ul> + +<p>A proxy to use for outgoing https requests.</p> + +<h3 id="ignore">ignore</h3> + +<ul><li>Default: ""</li><li>Type: string</li></ul> + +<p>A white-space separated list of glob patterns of files to always exclude +from packages when building tarballs.</p> + +<h3 id="init-version">init.version</h3> + +<ul><li>Default: "0.0.0"</li><li>Type: semver</li></ul> + +<p>The value <code>npm init</code> should use by default for the package version.</p> + +<h3 id="init-author-name">init.author.name</h3> + +<ul><li>Default: "0.0.0"</li><li>Type: String</li></ul> + +<p>The value <code>npm init</code> should use by default for the package author's name.</p> + +<h3 id="init-author-email">init.author.email</h3> + +<ul><li>Default: ""</li><li>Type: String</li></ul> + +<p>The value <code>npm init</code> should use by default for the package author's email.</p> + +<h3 id="init-author-url">init.author.url</h3> + +<ul><li>Default: ""</li><li>Type: String</li></ul> + +<p>The value <code>npm init</code> should use by default for the package author's homepage.</p> + +<h3 id="link">link</h3> + +<ul><li>Default: false</li><li>Type: Boolean</li></ul> + +<p>If true, then local installs will link if there is a suitable globally +installed package.</p> + +<p>Note that this means that local installs can cause things to be +installed into the global space at the same time. The link is only done +if one of the two conditions are met:</p> + +<ul><li>The package is not already installed globally, or</li><li>the globally installed version is identical to the version that is +being installed locally.</li></ul> + +<h3 id="logfd">logfd</h3> + +<ul><li>Default: stderr file descriptor</li><li>Type: Number or Stream</li></ul> + +<p>The location to write log output.</p> + +<h3 id="loglevel">loglevel</h3> + +<ul><li>Default: "warn"</li><li>Type: String</li><li>Values: "silent", "win", "error", "warn", "info", "verbose", "silly"</li></ul> + +<p>What level of logs to report. On failure, <em>all</em> logs are written to +<code>npm-debug.log</code> in the current working directory.</p> + +<h3 id="logprefix">logprefix</h3> + +<ul><li>Default: true on Posix, false on Windows</li><li>Type: Boolean</li></ul> + +<p>Whether or not to prefix log messages with "npm" and the log level. See +also "color" and "loglevel".</p> + +<h3 id="long">long</h3> + +<ul><li>Default: false</li><li>Type: Boolean</li></ul> + +<p>Show extended information in <code>npm ls</code></p> + +<h3 id="node-version">node-version</h3> + +<ul><li>Default: process.version</li><li>Type: semver or false</li></ul> + +<p>The node version to use when checking package's "engines" hash.</p> + +<h3 id="npat">npat</h3> + +<ul><li>Default: false</li><li>Type: Boolean</li></ul> + +<p>Run tests on installation and report results to the +<code>npaturl</code>.</p> + +<h3 id="npaturl">npaturl</h3> + +<ul><li>Default: Not yet implemented</li><li>Type: url</li></ul> + +<p>The url to report npat test results.</p> + +<h3 id="onload-script">onload-script</h3> + +<ul><li>Default: false</li><li>Type: path</li></ul> + +<p>A node module to <code>require()</code> when npm loads. Useful for programmatic +usage.</p> + +<h3 id="outfd">outfd</h3> + +<ul><li>Default: standard output file descriptor</li><li>Type: Number or Stream</li></ul> + +<p>Where to write "normal" output. This has no effect on log output.</p> + +<h3 id="parseable">parseable</h3> + +<ul><li>Default: false</li><li>Type: Boolean</li></ul> + +<p>Output parseable results from commands that write to +standard output.</p> + +<h3 id="prefix">prefix</h3> + +<ul><li>Default: node's process.installPrefix</li><li>Type: path</li></ul> + +<p>The location to install global items. If set on the command line, then +it forces non-global commands to run in the specified folder.</p> + +<h3 id="production">production</h3> + +<ul><li>Default: false</li><li>Type: Boolean</li></ul> + +<p>Set to true to run in "production" mode.</p> + +<ol><li>devDependencies are not installed at the topmost level when running +local <code>npm install</code> without any arguments.</li><li>Set the NODE_ENV="production" for lifecycle scripts.</li></ol> + +<h3 id="proxy">proxy</h3> + +<ul><li>Default: <code>HTTP_PROXY</code> or <code>http_proxy</code> environment variable, or null</li><li>Type: url</li></ul> + +<p>A proxy to use for outgoing http requests.</p> + +<h3 id="rebuild-bundle">rebuild-bundle</h3> + +<ul><li>Default: true</li><li>Type: Boolean</li></ul> + +<p>Rebuild bundled dependencies after installation.</p> + +<h3 id="registry">registry</h3> + +<ul><li>Default: https://registry.npmjs.org/</li><li>Type: url</li></ul> + +<p>The base URL of the npm package registry.</p> + +<h3 id="rollback">rollback</h3> + +<ul><li>Default: true</li><li>Type: Boolean</li></ul> + +<p>Remove failed installs.</p> + +<h3 id="save">save</h3> + +<ul><li>Default: false</li><li>Type: Boolean</li></ul> + +<p>Save installed packages to a package.json file as dependencies.</p> + +<p>Only works if there is already a package.json file present.</p> + +<h3 id="searchopts">searchopts</h3> + +<ul><li>Default: ""</li><li>Type: String</li></ul> + +<p>Space-separated options that are always passed to search.</p> + +<h3 id="searchexclude">searchexclude</h3> + +<ul><li>Default: ""</li><li>Type: String</li></ul> + +<p>Space-separated options that limit the results from search.</p> + +<h3 id="shell">shell</h3> + +<ul><li>Default: SHELL environment variable, or "bash"</li><li>Type: path</li></ul> + +<p>The shell to run for the <code>npm explore</code> command.</p> + +<h3 id="tag">tag</h3> + +<ul><li>Default: latest</li><li>Type: String</li></ul> + +<p>If you ask npm to install a package and don't tell it a specific version, then +it will install the specified tag.</p> + +<p>Also the tag that is added to the package@version specified by the <code>npm +tag</code> command, if no explicit tag is given.</p> + +<h3 id="tar">tar</h3> + +<ul><li>Default: TAR environment variable, or "tar"</li><li>Type: path</li></ul> + +<p>The tar executable</p> + +<h3 id="tmp">tmp</h3> + +<ul><li>Default: TMPDIR environment variable, or "/tmp"</li><li>Type: path</li></ul> + +<p>Where to store temporary files and folders. All temp files are deleted +on success, but left behind on failure for forensic purposes.</p> + +<h3 id="unicode">unicode</h3> + +<ul><li>Default: true</li><li>Type: Boolean</li></ul> + +<p>When set to true, npm uses unicode characters in the tree output. When +false, it uses ascii characters to draw trees.</p> + +<h3 id="unsafe-perm">unsafe-perm</h3> + +<ul><li>Default: false if running as root, true otherwise</li><li>Type: Boolean</li></ul> + +<p>Set to true to suppress the UID/GID switching when running package +scripts. If set explicitly to false, then installing as a non-root user +will fail.</p> + +<h3 id="usage">usage</h3> + +<ul><li>Default: false</li><li>Type: Boolean</li></ul> + +<p>Set to show short usage output (like the -H output) +instead of complete help when doing <code>npm help</code>.</p> + +<h3 id="user">user</h3> + +<ul><li>Default: "nobody"</li><li>Type: String or Number</li></ul> + +<p>The UID to set to when running package scripts as root.</p> + +<h3 id="username">username</h3> + +<ul><li>Default: null</li><li>Type: String</li></ul> + +<p>The username on the npm registry. Set with <code>npm adduser</code></p> + +<h3 id="userconfig">userconfig</h3> + +<ul><li>Default: ~/.npmrc</li><li>Type: path</li></ul> + +<p>The location of user-level configuration settings.</p> + +<h3 id="userignorefile">userignorefile</h3> + +<ul><li>Default: ~/.npmignore</li><li>Type: path</li></ul> + +<p>The location of a user-level ignore file to apply to all packages.</p> + +<p>If not found, but there is a .gitignore file in the same directory, then +that will be used instead.</p> + +<h3 id="version">version</h3> + +<ul><li>Default: false</li><li>Type: boolean</li></ul> + +<p>If true, output the npm version and exit successfully.</p> + +<p>Only relevant when specified explicitly on the command line.</p> + +<h3 id="viewer">viewer</h3> + +<ul><li>Default: "man"</li><li>Type: path</li></ul> + +<p>The program to use to view help content.</p> + +<h3 id="yes">yes</h3> + +<ul><li>Default: null</li><li>Type: Boolean or null</li></ul> + +<p>If set to <code>null</code>, then prompt the user for responses in some +circumstances.</p> + +<p>If set to <code>true</code>, then answer "yes" to any prompt. If set to <code>false</code> +then answer "no" to any prompt.</p> +</div> +<script> +els = Array.prototype.slice.call((wrapper = document.getElementById("wrapper")) +.getElementsByTagName("*"), 0) +.filter(function (el) { + return el.parentNode === wrapper + && el.tagName.match(/H[1-6]/) + && el.id +}) +var l = 2 +;(toc = document.createElement("ul")).innerHTML = els.map(function (el) { + var i = el.tagName.charAt(1) + , out = "" + while (i > l) { + out += "<ul>" + l ++ + } + while (i < l) { + out += "</ul>" + l -- + } + out += "<li><a href='#" + el.id + "'>" + el.innerHTML + "</a>" + return out +}).join("\n") +toc.id = "toc" +document.body.appendChild(toc) + +</script> +</body></html> +<!-- npm help set - 2011-31-04 05:09:25 --> |