Glossary#

Add-on (Volto)#

A JavaScript package that integrates with Volto's configuration registry and is able to enhance, extend, and customize it.

Add-on configuration loader (Volto)#

A function with signature config => config. It gets the Volto Configuration registry, and it must return it back after mutating it. It is similar to Generic Setup profiles in Plone Backend. An add-on must provide a default configuration loader that is always loaded when Volto runs. An add-on can have multiple configuration loaders, and they can be loaded optionally from the Volto configuration.

Amazon Opsworks#

AWS OpsWorks is a configuration management service that uses Chef, an automation platform that treats server configurations as code.

Ansible#

Ansible is an open source automation platform. Ansible can help you with configuration management, application deployment, task automation.

Archetypes#

The deprecated framework for building content types in Plone.

AWS#

Amazon Web Services offers reliable, scalable, and inexpensive cloud computing services. Free to join, pay only for what you use.

Babel#

A JavaScript compiler that "transpiles" newer standards JavaScript to something that any browser can load.

Barceloneta#

The default theme for Plone 5.

block#

Blocks display a chunk of HTML which can be inserted in your Plone pages.

Chef#

A configuration management tool written in Ruby and Erlang.

Classic UI#

Classic UI is a secondary frontend for Plone 6. It is integrated with Products.CMFPlone. Its theme is named Barceloneta. It is based on Twitter Bootstrap 5. It uses Mockup as its JavaScript stack. View Mockup's patterns.

The other frontend is Volto.

CloudFormation#

AWS CloudFormation gives developers and systems administrators an way to create and manage a collection of related AWS resources, provisioning and updating them in an orderly and predictable fashion.

CMS#

Content Management System

CommonJS#

A JavaScript package standard, the equivalent of a Python wheel or egg. Enables JavaScript modules.

Configuration registry (Volto)#

A singleton object modeled using JavaScript modules. It is accessible from the Volto project by importing the module @plone/volto/config with import registry from '@plone/volto/config'. It contains the configuration of the Volto app.

Cookiecutter#

A command-line utility that creates projects from cookiecutters (project templates), e.g. creating a Python package project from a Python package project template. See Cookiecutter's documentation.

cookiecutter-zope-instance#

cookiecutter-zope-instance is a cookiecutter template to create a full and complex configuration of a Zope WSGI instance.

CSS#

Cascading Style Sheets (CSS) is a stylesheet language used for describing the (most of the times visual) representation of web pages.

Dexterity#

Dexterity, the base framework for building content types, both through-the-web and as filesystem code for Zope.

Diazo#

Diazo theme engine guide. Diazo allows you to apply a theme contained in a static HTML web page to a dynamic website created using any server-side technology.

DigitalOcean#

DigitalOcean, Inc. is an American cloud infrastructure provider headquartered in New York City with data centers worldwide.

Docker#

Docker is an open platform for developing, shipping, and running applications using containers.

Docker Compose#

Docker Compose is a tool for defining and running multi-container Docker applications.

Docutils#

Docutils is an open-source text processing system for processing plaintext documentation into useful formats, such as HTML, LaTeX, man-pages, OpenDocument, or XML. It includes reStructuredText, the easy to read, easy to use, what-you-see-is-what-you-get plaintext markup language.

dots per inch#
DPI#

Represents the number of dots per inch. Screens typically contain 72 or 96 dots per inch.

Dublin Core#

The Dublin Core Schema is a small set of vocabulary terms that can be used to describe web resources (video, images, web pages, etc.), as well as physical resources such as books or CDs, and objects like artworks.

element#

Elements are the dynamic components of your blocks. They can be input fields, buttons, or computed HTML. They can also return JSON if you call them from a JavaScript app.

elementEditor#

A generic volto-slate plugin architecture that can be used to create other editor interactions that follow the pattern of having a button that toggles a format (an inline element). It also creates a separate edit form for advanced customization of the data attached to the element.

ES6#

ECMAScript 6, a newer version of the JavaScript language.

Express#

A JavaScript HTTP server with a simple API to build custom applications. Volto uses it as its server.

fence#

A method to extend basic MyST syntax. You can define a directive with backticks (`) followed by a reStructuredText directive in curly brackets ({}), and a matching number of closing backticks. You can also nest fences by increasing the number of backticks.

````{warning}
There be dragons!
```{important}
Dragons have feelings, too!
```
````

Warning

There be dragons!

Important

Dragons have feelings, too!

gettext#

UNIX standard software translation tool. See https://www.gnu.org/software/gettext/.

Grunt#

The JavaScript Task Runner. Automates the creation and manipulation of static assets for the theme.

HAProxy#

HAProxy is a free, very fast and reliable reverse-proxy offering high availability, load balancing, and proxying for TCP and HTTP-based applications.

hoisting (Yarn)#

An optimization provided by Yarn. By default JavaScript packages will directly include dependencies inside their local node_modules. By hoisting we're "lifting" these inner dependencies to the top level node_modules directory, and thus optimize the generated bundles. In case two dependencies have conflicting version dependencies of the same library, the hoisting will not be possible (for that conflicting dependency) and you'll see multiple instances of the same library in the bundle, or you'll see that the add-on receives its own node_modules folder.

hooks (React)#

Hooks are a React API that allow function components to use React features such as lifecycle methods, states, and so on.

Hot Module Replacement (HMR)#

A development feature provided by Webpack that automatically reloads, in the browser, the JavaScript modules that have changed on disk.

Hydration (SSR)#

After loading an HTML page generated with SSR in the browser, React can "populate" the existing DOM elements, recreate and attach their coresponding components.

i18n#
internationalization#
Internationalization#

Internationalization is the process of preparing an application for displaying content in languages and formats specifically to the audience. Developers and template authors usually internationalize the application. "i18n" is shorthand for "internationalization" (the letter "I", 18 letters, the letter "N"). Plone is fully internationalized.

See also

localization

i18ndude#

Support tool to create and update message catalogs from instrumented source code.

JSX#

A dialect of JavaScript that resembles XML, it is transpiled by Babel to JavaScript functions. React uses JSX as its component templating.

l10n#
localization#
Localization#

Localization is the process of writing the translations of text and local formats for an application that has already been internationalized. Formats include dates, times, numbers, time zones, and currency. Translators usually localize the application. "l10n" is shorthand for "localization" (the letter "L", 10 letters, the letter "N"). Plone is fully localized.

language tag#

A language tag is a string used as an identifier for a language. A language tag may have one or more subtags. The basic form of a language tag is LANGUAGE-[SUBTAG].

Less#

A dynamic stylesheet language that can be compiled into CSS (Cascading Style Sheets).

LIF#
Language Independent Folder#

A folder containing static assets, such as images and files, for a given language.

Linode#

Linode.com is an American privately owned virtual private server provider company based in Galloway, New Jersey, United States.

locale#

A locale is an identifier, such as a language tag, for a specific set of cultural preferences for some country, together with all associated translations targeted to the same native language.

LRF#
Language Root Folder#

A content-type that contains the translated content for a specified language. For example, an LRF located at your site root for English would be www.domain.com/en, where en represents the LRF.

manual .po entries#

Entries which cannot be detected by an automatic code scan.

Markdown#

Markdown is a text-to-HTML conversion tool for web writers.

middleware (Redux)#

Custom wrappers for the Redux store dispatch methods. They allow customizing the behavior of the data flow inside the redux store.

MO file#
.mo#

Machine Object file. The binary message file compiled from the .po message file.

mrs-developer#

Also called "missdev", a tool similar to buildout's mr.developer. It automatically downloads and keeps up to date copies of software and add-ons under development based on definitions stored in mrs.developer.json. As a byproduct of its update operations, it also automatically adjusts jsconfig.json, which is used by Volto to configure webpack aliases.

mxdev#

mxdev [mɪks dɛv] is a utility that makes it easy to work with Python projects containing lots of packages, of which you only want to develop some. It is designed for developers who use stable version constraints, then layer their customizations on top of that base while using a version control system. This design allows developers to override their base package constraints with a customized or newer version.

MyST#

Markedly Structured Text (MyST) is a rich and extensible flavor of Markdown, for authoring Plone Documentation.

NFS#

Network File System.

nginx#

nginx (pronounced "engine x") is an HTTP and reverse proxy server, a mail proxy server, and a generic TCP/UDP proxy server, originally written by Igor Sysoev.

NPM#

npm is a package manager for the JavaScript programming language. It is the default package manager for the JavaScript runtime environment Node.js. Also a registry of JavaScript packages, similar to PyPI.

Open Graph#

The Open Graph protocol enables any web page to become a rich object in a social graph. For instance, this is used on Facebook to allow any web page to have the same functionality as any other object on Facebook.

pip#

pip is the package installer for Python. See tool recommendations for more information.

pm2#

PM2 is a daemon process manager.

PO file#
.po#

Portable Object (PO) file. The file format used by the gettext translation system. See https://www.gnu.org/savannah-checkouts/gnu/gettext/manual/html_node/PO-Files.html.

PO template file#
.pot#

Portable Object (PO) template file, not yet oriented towards any particular language.

PostgreSQL#

PostgreSQL is a powerful, open source object-relational database.

Project (Volto)#

The product of running the package @plone/generator-volto, resulting in a customizable instance of Volto.

Rapido application#

It contains the features you implement. It is a folder containing templates, Python code, and YAML files.

Razzle#

A tool that simplifies SPA and SSR configuration for React projects.

React#

React is a JavaScript library for building user interfaces. Volto, the frontend for Plone 6, uses React.

react-intl#

A library that is part of Format.JS which helps developers set up their applications for internationalization.

record#

A Rapido app is able to store data as records. Records are basic dictionaries.

RelStorage#

RelStorage is a storage implementation for ZODB that stores pickles in a relational database.

REST API#

TODO REST API in general. TODO REST API of Plone.

reStructuredText#

reStructuredText (rST) is an easy-to-read, what-you-see-is-what-you-get plaintext markup syntax and parser system. The Plone 6 Documentation was written in reStructuredText originally, then converted to MyST in 2022.

S3#

Amazon Web Services S3. Object storage built to store and retrieve any amount of data from anywhere.

Scoped packages#

Namespace for JavaScript packages, they provide a way to avoid naming conflicts for common package names.

Server-Side Rendering (SSR)#

When first loading any Plone page, users will get HTML markup that closely matches the final DOM structure of the React components used to render that page.

Shadowing (Volto)#

Webpack provides an "alias" mechanism, where the path for a module can be aliased to another module. By using this mechanism Volto enables customization (file overrides), similar to z3c.jbot.

Single Page Application (SPA)#

A type of JavaScript application that aims to provide a better user experience by avoiding unnecessary reloading of the browser page, instead using AJAX to load backend information.

Slate#

Slate.js is a highly customizable platform for creating rich-text editors, also known as WYSIWYG editors. It enables you to create powerful, intuitive editors similar to those you've probably used in Medium, Dropbox Paper, or Google Docs.

Solr#

Solr is a popular, blazing-fast, open source enterprise search platform built on Apache Lucene.

Sphinx#

Sphinx is a tool that makes it easy to create intelligent and beautiful documentation. It was originally created for Python documentation, and it has excellent facilities for the documentation of software projects in a range of languages. Sphinx uses reStructuredText as its markup language, and many of its strengths come from the power and straightforwardness of reStructuredText and its parsing and translating suite, Docutils.

srcset#

The HTMLImageElement property srcset is a string which identifies one or more image candidate strings, separated using commas ,. Each image candidate string specifies image resources to display in web pages under given circumstances.

TALES#

TAL Expression Syntax (TALES) expression, which by default expects a path. Python and string expressions are also allowed.

Transpilation#

The transformation of JavaScript code that uses advanced language features, unavailable for some browsers, to code rewritten to support them.

Travis CI#

Travis CI is a hosted, distributed continuous integration service used to build and test software projects hosted at GitHub. Open source projects may be tested with limited runs via travis-ci.com.

TTW#

Through-The-Web allows editing or customizing a Plone site through a web browser.

Volto#

Volto is a React-based frontend for the Plone CMS. It is the default user interface for Plone 6.

The other frontend is Classic UI.

volto-slate#

volto-slate is an interactive default text editor for Volto, developed on top of Slate while offering enhanced WYSIWYG functionality and behavior.

Webpack#

A tool that loads and bundles code and web resources using loaders.

Webpack entrypoint#

The main files generated by webpack as a result. They typically contain the application source code based on modules bundled together, but it can also include other resources, such as static resources. It can contain code to automatically trigger the load of other JavaScript code files called "chunks".

WSGI#

The Web Server Gateway Interface (WSGI, pronounced WIZ-ghee) is a simple calling convention for web servers to forward requests to web applications or frameworks written in the Python programming language.

XML#

The Extensible Markup Language.

XPath#

XPath (XML Path Language) is a query language for selecting nodes from an XML document.

XSLT#

The Extensible Stylesheet Language Transformations. A language which defines elements to describe transformations to be applied on a document.

Yarn#

Yarn is a JavaScript package manager.

Yeoman#

A popular scaffolding tool similar to Plone's mr.bob or ZopeSkel.

ZCML#

The Zope Configuration Mark-up Language.

ZEO#

ZEO is a client-server storage for ZODB for sharing a single storage among many clients.

ZMI#

The Zope Management Interface. The ZMI is a direct interface into the backend software stack of Plone. While it can still serve as a valuable tool for Plone specialists to fix problems or accomplish certain tasks, it is not recommended as a regular tool for Plone maintenance.

ZODB#

A native object database for Python.

Zope#

Zope is a Python-based application server for building secure and highly scalable web applications.