Docs Improvements (#39)
* Restructure - wrote and added photos for online and offline use * add new images * add more info on embedding options, add CORS configuration example Co-authored-by: DaleLore <DaleLore@protonmail.com>
This commit is contained in:
+70
-10
@@ -23,7 +23,7 @@ the following snippet to your HTML page:
|
||||
my-web-archive-embed.html
|
||||
|
||||
```html
|
||||
<script src="https://unpkg.com/replaywebpage@1.0.0/ui.js"></script>
|
||||
<script src="https://cdn.jsdelivr.net/npm/replaywebpage/@{{ site.version }}/ui.js"></script>
|
||||
<replay-web-page source="s3://webrecorder-builds/warcs/netpreserve-twitter.warc"
|
||||
url="https://twitter.com/netpreserve"></replay-web-page>
|
||||
```
|
||||
@@ -39,7 +39,7 @@ one-line script
|
||||
./replay/sw.js
|
||||
|
||||
```javascript
|
||||
importScripts("https://unpkg.com/replaywebpage@1.0.0/sw.js");
|
||||
importScripts("https://cdn.jsdelivr.net/npm/replaywebpage/@{{ site.version }}/sw.js");
|
||||
```
|
||||
|
||||
Thus, if the HTML snippet was added to `https://my-site.example.com/path/my-web-archive-embed.html`
|
||||
@@ -47,7 +47,7 @@ then the sw.js should be added such that it is at: `https://my-site.example.com/
|
||||
|
||||
That's it! Loading `https://my-site.example.com/path/my-web-archive-embed.html` should now load the web archive.
|
||||
|
||||
(Be sure to add sizes to the `<replay-web-page>` tag as needed to size the embed).
|
||||
(Be sure to add width and height styles to the `<replay-web-page>` tag as needed to size the embed).
|
||||
|
||||
You can replace `s3://webrecorder-builds/warcs/netpreserve-twitter.warc` with any web archive hosted on your site,
|
||||
eg. `https://my-site.example.com/warcs/my-warc-file.warc`.
|
||||
@@ -56,19 +56,35 @@ eg. `https://my-site.example.com/warcs/my-warc-file.warc`.
|
||||
If the file is loaded from a different origin, your site must have CORS access to download the web archive.
|
||||
|
||||
|
||||
### Embedding Options
|
||||
|
||||
The `<replay-web-page>` tag is a web component and supports a number of additional attributes:
|
||||
|
||||
| Attribute | Description |
|
||||
|:-------------|:-----------------|
|
||||
| `source` | Source URL for the archive file. It should be a URL in one of the [supported formats](/docs/formats) loaded from one of the [support locations](/docs/locations) and is required. |
|
||||
| `url` | The starting URL to load from the archive. If omitted, will start with the page list or URL search view. |
|
||||
| `ts` | The timestamp of the starting URL to load. If omitted, the latest available version is used. |
|
||||
| `deepLink` | (`true` / `false`) if set to true, allow 'deep linking' to exact pages in the embed, besides the starting URL. |
|
||||
| `embed` | (`default` / `full` / `replayonly` ) - if set to `full`, will show the replayweb.page nav bar and logo. if set to `default`, omitted, will show the location bar. if set to `replayonly`, will only show the `url` and not location bar or any nav bar buttons, which may be useful for embedding a single page only. |
|
||||
| `replayBase` | Location of the `sw.js` file, defaults to `./replay/` as mentioned above, but can be overridden. |
|
||||
| `coll` | Internal id for this collection, usually generated automatically.
|
||||
| `config` | Extra per collection config options (such as custom fuzzy matching rules, TODO add more info!) |
|
||||
|
||||
|
||||
### Versioning
|
||||
|
||||
Note that the above example uses the paths as:
|
||||
Note that the above example uses the paths as, which is a CDN for Javascript packages:
|
||||
|
||||
- `https://unpkg.com/replaywebpage@1.0.0/ui.js`
|
||||
- `https://unpkg.com/replaywebpage@1.0.0/sw.js`
|
||||
- `https://cdn.jsdelivr.net/npm/replaywebpage@{{ site.version }}/ui.js`
|
||||
- `https://cdn.jsdelivr.net/npm/replaywebpage@{{ site.version }}/sw.js`
|
||||
|
||||
Another alternative would be:
|
||||
Another alternative using a different would be:
|
||||
|
||||
- `https://cdn.jsdelivr.net/npm/replaywebpage@1.0.0/ui.js`
|
||||
- `https://cdn.jsdelivr.net/npm/replaywebpage@1.0.0/sw.js`
|
||||
- `https://unpkg.com/replaywebpage@{{ site.version }}/ui.js`
|
||||
- `https://unpkg.com/replaywebpage@{{ site.version }}/sw.js`
|
||||
|
||||
These URLs point to a specific version of ReplayWeb.page software released on NPM, eg. `1.0.0`, meaning that your replay should stay stable, even if ReplayWeb.page is updated.
|
||||
These URLs point to a specific version of ReplayWeb.page software released on NPM, eg. `{{ site.version }}`, meaning that your replay should stay stable, even if ReplayWeb.page is updated.
|
||||
|
||||
You can choose another of ReplayWeb.page (or even try different versions) to ensure that you have the best available replay.
|
||||
|
||||
@@ -77,6 +93,50 @@ This addresses the potential issue of older sites breaking when web archive repl
|
||||
For production use, it is advised against linking to the latest version, eg. `https://replayweb.page/ui.js`
|
||||
and `https://replayweb.page/sw.js` as these will be updated frequently and make break your embed.
|
||||
|
||||
## Common Issues
|
||||
|
||||
Below are some possible issues that you may encounter when embedding and possible workarounds.
|
||||
|
||||
|
||||
### Embed is too small / doesn't fill page.
|
||||
|
||||
If the `<replay-web-page>` tag is the only element on a page, and you want it to use the full window width and height, adding the following
|
||||
style should fix the issue:
|
||||
|
||||
```html
|
||||
<style>
|
||||
html, body {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
}
|
||||
</style>
|
||||
```
|
||||
|
||||
### CORS restrictions
|
||||
|
||||
Browsers restrict access to files hosted on a different domain than the websites that is trying to load them.
|
||||
If you are loading web archives hosted on a different domain (for example, S3 or other cloud storage) and your site is hosted on a different domain,
|
||||
the site hosting the file needs to 'allow' the website to load the file using special CORS (Cross-Origin Resource Sharing) headers.
|
||||
|
||||
If you are hosting from S3 or S3-compatible service, here is a potential CORS bucket configuration that should work.
|
||||
|
||||
Replace `https://myarchive.example.com/` with the server (origin) of the URL where the `<replay-web-page>` embed is hosted.
|
||||
|
||||
```xml
|
||||
<CORSConfiguration
|
||||
xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
|
||||
<CORSRule>
|
||||
<AllowedMethod>GET</AllowedMethod>
|
||||
<AllowedMethod>HEAD</AllowedMethod>
|
||||
<AllowedOrigin>https://myarchive.example.com</AllowedOrigin>
|
||||
<AllowedHeader>*</AllowedHeader>
|
||||
<ExposeHeader>Content-Range</ExposeHeader>
|
||||
<ExposeHeader>Content-Encoding</ExposeHeader>
|
||||
<ExposeHeader>Content-Length</ExposeHeader>
|
||||
</CORSRule>
|
||||
```
|
||||
|
||||
See [S3 Docs](https://docs.aws.amazon.com/AmazonS3/latest/userguide/ManageCorsUsing.html) for more info on how to set this policy.
|
||||
|
||||
Other cloud providers may have a similar settings for configuring CORS.
|
||||
|
||||
|
||||
Reference in New Issue
Block a user