Skip to content

Technologies

ortfo/db has a concept of technologies. This allows you to specify with what tools the work was made. Note that the term is intended to be very broad-reaching: if you are describing a painting, for example, “oil paint” and “canvas” would be considered technologies. If you are describing a website, “HTML” and “CSS” would be considered technologies.

Usage example

Showing technologies used to make a work on ewen.works
Showing all works made with Photoshop at ewen.works/using/photoshop

Declaration

You can define all valid technologies for your works in a central place with a technologies.yaml file.

Then, reference the path to that file in your ortfodb.yaml configuration file:

yaml
...
  at: media/

technologies: 
  repository: path/to/technologies.yaml

tags:
  repository: path/to/tags.yaml

The file itself is a list of technologies that have various properties.

Example

yaml
# yaml-language-server: $schema=https://ortfo.org/technologies.schema.json

- slug: go
  name: Go
  by: Google
  files: ["*.go"]
  learn more at: https://go.dev
  description: |
    An straightforward low-level open source programming language supported by Google featuring built-in concurrency and a robust standard library

- slug: vue
  name: Vue
  aliases: ["vuejs"]
  files: ["*.vue"]
  autodetect: ["vue in package.json"]
  learn more at: https://vuejs.org
  description: |
    The progressive JavaScript framework

What's that # yaml-language-server thing?

See Declaring JSON Schemas on files

Properties

slug

The slug is a unique identifier for this technology, that's suitable for use in a website's URL. For example, the page that shows all works using a technology with slug "a" could be at https://example.org/technologies/a.

name

TODO: Documentation

by

Name of the person or organization that created this technology.

description

TODO: Documentation

learn more at

URL to a website where more information can be found about this technology.

aliases

Other technology slugs that refer to this technology. The slugs mentionned here should not be used in the definition of other technologies.

files

Files contains a list of gitignore-style patterns. If the work contains any of the patterns specified, we consider that technology to be used in the work.

autodetect

Autodetect contains an expression of the form 'CONTENT in PATH' where CONTENT is a free-form unquoted string and PATH is a filepath relative to the work folder. If CONTENT is found in PATH, we consider that technology to be used in the work.

Usage

In your work's description file, refer to technologies names by their slug, name or any of the aliases:

md
---
wip: true
tags: [automation, cli]
made with: [go, vue] 
---

# ortfo

Enforcing correct technologies Planned

In the future, ortfo/db might enforce that all technologies used in your works are defined in the technologies.yaml file.

This would prevent typos.