lektor-website/content/docs/api/build/artifact/contents.lr

35 lines
1.1 KiB
Markdown

title: Artifact
---
summary: Represents an artifact during the build process.
---
type: class
---
body:
During the build process Lektor creates artifact objects to represent final
build artifacts. Generally each [Source Object :ref](../../db/obj/) will
generate one artifact for which it acts as a primary source.
There are however many cases in which a source object will create
sub-artifacts. For instance any thumbnail created in the context of a page
will be creating its own artifact. To give plugins the same ability the
artifact system is partially documented. See also [sub_artifact
:ref](../context/sub-artifact/) to see how to create your own artifact
instances.
The most important function of an artifact is [open :ref](open/) which can
open the artifact for reading or writing. If the build goes well, Lektor
will commit those changes and persist them.
## Example
```python
ctx = get_ctx()
@ctx.sub_artifact('artifact.txt')
def build_stylesheet(artifact):
with artifact.open('w') as f:
f.write('Hello World!\n')
```
---
module: lektor.builder