mirror of
https://github.com/zadam/trilium.git
synced 2025-12-23 16:49:58 +01:00
docs(guide): document exporting for web publishing
This commit is contained in:
35
docs/User Guide/!!!meta.json
vendored
35
docs/User Guide/!!!meta.json
vendored
@@ -11612,6 +11612,41 @@
|
||||
"dataFileName": "1_Serving directly the conte.png"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"isClone": false,
|
||||
"noteId": "ycBFjKrrwE9p",
|
||||
"notePath": [
|
||||
"pOsGYCXsbNQG",
|
||||
"tC7s2alapj8V",
|
||||
"R9pX4DGra2Vt",
|
||||
"ycBFjKrrwE9p"
|
||||
],
|
||||
"title": "Exporting HTML for web publishing",
|
||||
"notePosition": 20,
|
||||
"prefix": null,
|
||||
"isExpanded": false,
|
||||
"type": "text",
|
||||
"mime": "text/html",
|
||||
"attributes": [
|
||||
{
|
||||
"type": "relation",
|
||||
"name": "internalLink",
|
||||
"value": "R9pX4DGra2Vt",
|
||||
"isInheritable": false,
|
||||
"position": 30
|
||||
},
|
||||
{
|
||||
"type": "label",
|
||||
"name": "iconClass",
|
||||
"value": "bx bxs-file-html",
|
||||
"isInheritable": false,
|
||||
"position": 40
|
||||
}
|
||||
],
|
||||
"format": "markdown",
|
||||
"dataFileName": "Exporting HTML for web publish.md",
|
||||
"attachments": []
|
||||
}
|
||||
]
|
||||
},
|
||||
|
||||
40
docs/User Guide/User Guide/Advanced Usage/Sharing/Exporting HTML for web publish.md
vendored
Normal file
40
docs/User Guide/User Guide/Advanced Usage/Sharing/Exporting HTML for web publish.md
vendored
Normal file
@@ -0,0 +1,40 @@
|
||||
# Exporting HTML for web publishing
|
||||
As described in <a class="reference-link" href="../Sharing.md">Sharing</a>, Trilium can act as a public server in which the shared notes are displayed in read-only mode. While this can work in most cases, it's generally not meant for high-traffic websites and since it's running on a Node.js server it can be potentially exploited.
|
||||
|
||||
Another alternative is to generate static HTML files (just like other static site generators such as [MkDocs](https://www.mkdocs.org/)). Since the normal HTML ZIP export does not contain any styling or additional functionality, Trilium provides a way to export the same layout and style as the <a class="reference-link" href="../Sharing.md">Sharing</a> function into static HTML files.
|
||||
|
||||
Apart from the enhanced security, these HTML files are also easy to deploy on “serverless” deployments such as GitHub Pages or CloudFlare Pages and cache very easily.
|
||||
|
||||
> [!TIP]
|
||||
> Trilium's documentation, available at [docs.triliumnotes.org](https://docs.triliumnotes.org/) is built using this function of exporting to static HTML files which are then deployed automatically to CloudFlare Pages.
|
||||
>
|
||||
> The process is [automated](https://github.com/TriliumNext/Trilium/blob/main/apps/edit-docs/src/build-docs.ts) by importing the Markdown documentation and exporting it via a script to the static web format.
|
||||
|
||||
## Differences from normal sharing and export
|
||||
|
||||
Apart from normal <a class="reference-link" href="../Sharing.md">Sharing</a>, exporting to static HTML files comes with a few subtle differences:
|
||||
|
||||
* The URL structure is different. Where in normal sharing it's something along the way of `example.com/share/noteid`, the notes follow an hierarchical structure, such as `docs.triliumnotes.org/user-guide/concepts/navigation/tree-concepts`.
|
||||
* The `favicon.ico` is not handled automatically, it needs to be manually added on the server after the export is generated.
|
||||
* The “Last updated” for notes is not available.
|
||||
|
||||
## Differences from normal .zip export
|
||||
|
||||
* The name of the files/URLs will prefer `shareAlias` to allow for clean URLs.
|
||||
* The export requires a functional web server as the pages will not render properly if accessed locally via a web browser due to the use of module scripts.
|
||||
|
||||
## Testing locally
|
||||
|
||||
As mentioned previously, the exported static pages require a website to function. In order to test locally, a web server needs to be used.
|
||||
|
||||
One example is to use the Node.js-based [`http-server`](https://www.npmjs.com/package/http-server) which can be installed via:
|
||||
|
||||
```
|
||||
npm i -g http-server
|
||||
```
|
||||
|
||||
Once installed simply:
|
||||
|
||||
1. Extract the exported .zip file.
|
||||
2. Inside the extracted directory, run `http-server`.
|
||||
3. Access the indicated address (e.g. http://localhost:8080).
|
||||
Reference in New Issue
Block a user