iron-component-page
A reusable landing page for elements
<iron-component-page>
iron-component-page
is a full-page documentation browser for custom elements,
mixins, classes, and more. It consumes the JSON descriptor format produced by
Polymer Analyzer.
See: Documentation, Demo.
You may also be interested in the
iron-doc-*
element
collection which underlies this element and can be used to embed documentation
in other apps (for example, webcomponents.org
does this).
Usage
Documenting your element
iron-component-page
is designed to make it easy to view documentation for
your custom element project.
Install the Polymer CLI with
npm install -g polymer-cli
. This gives you a command-line interface to Polymer Analyzer (among other things).cd
to your project directory. This can be a custom element, a full app, or even a plain JavaScript library. Polymer Analyzer will discover all of the interesting items recursively in your project directory.Analyze your project with
polymer analyze > analysis.json
. This produces a JSON descriptor file. By defaultiron-component-page
will look for a file calledanalysis.json
(you can override this with thedescriptor-url
property).Add
iron-component-page
as a dev dependency of your project:npm install @polymer/iron-component-page --save-dev
.Create an HTML file to instantiate an
iron-component-page
element (e.g.index.html
ordocs.html
). Note that you may need to adjust your import paths depending on your project layout:
<!doctype html>
<html>
<head>
<script type="module">
import '@polymer/iron-component-page/iron-component-page.js';
</script>
</head>
<body>
<iron-component-page></iron-component-page>
</body>
</html>
- Serve that page using
polymer serve --npm
.
Routing
iron-component-page
handles URL routing (via iron-doc-viewer
) to provide
permanent addresses for all locations in the documentation tree, including
scroll anchor targets.
By default it uses the URL fragment for routing (e.g.
docs.html#/elements/my-element#property-foo
), in order to support simple
static file hosts.
To use the real URL path for routing, set the base-href
property to the
server mount point (e.g. /api/docs
or empty string for the root path). Note
that this requires a host that serves the application from all paths that
should be handled by the doc viewer.
Styling
iron-component-page
uses the default theme from
iron-doc-viewer
. See
its documentation for styling. The following custom properties and mixins are
also available:
Custom property | Description | Default |
---|---|---|
--iron-component-page-header-color |
Background color of main header. | paper-pink-600 |
Contributing
If you want to send a PR to this element, here are the instructions for running the tests and demo locally:
Installation
git clone https://github.com/PolymerElements/iron-component-page
cd iron-component-page
npm install
npm install -g polymer-cli
Running the demo locally
polymer serve --npm
open http://127.0.0.1:<port>/demo/
Running the tests
polymer test --npm
Links
Compatibility
Was this helpful? Need more help?
Leave a comment or a question below. You can also join
the chat on Discord or
ask questions on StackOverflow.
Version
Dependencies
- @polymer/app-layout#^3.0.0-pre.26
- @polymer/iron-ajax#^3.0.0-pre.26
- @polymer/iron-doc-viewer#^4.0.0-pre.4
- @polymer/iron-icons#^3.0.0-pre.26
- @polymer/paper-icon-button#^3.0.0-pre.26
- @polymer/paper-styles#^3.0.0-pre.26
- @polymer/paper-toast#^3.0.0-pre.26
- @polymer/polymer#^3.0.0
- Released
- 2018-09-14
- Maturity
- IMPORTED
- License
- BSD 3-clause "New" or "Revised" License
Compatibility
- Framework
- Polymer 3.0+
- Polymer 2.0+ in 3.0.1
- Polymer 1.0+ in 1.1.9
- Browser
- Browser Independent