Skip to content

Commit 7e4d853

Browse files
authored
Merge pull request plone#1416 from plone/glossary-cleanup
Glossary cleanup
2 parents 70630f9 + c538e9c commit 7e4d853

File tree

7 files changed

+83
-36
lines changed

7 files changed

+83
-36
lines changed

docs/backend/upgrading/version-specific-migration/p4x-to-p5x-upgrade.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -366,7 +366,7 @@ Here the two dependencies are jQuery and the pattern registry.
366366
We will not get into the pattern registry, as it is off-topic for this discussion.
367367
It is basically a registry of JavaScript components.
368368

369-
The necessity for using it here is with AJAX calls and binding new DOM elements dynamically added to the page.
369+
The necessity for using it here is with AJAX calls and binding new {term}`DOM` elements dynamically added to the page.
370370

371371
Additionally, above this `require` call, we provide some backward compatible code that you can inspect.
372372

docs/backend/upgrading/version-specific-migration/upgrade-to-51.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -282,7 +282,7 @@ Adding or editing a document is faster, because care was taken to avoid duplicat
282282
The [collective.indexing](https://pypi.org/project/collective.indexing) package was merged into the core of Plone.
283283
This makes sure that objects are only indexed once per transaction.
284284

285-
It also gives hooks for calling external indexers, like Solr and Elasticsearch.
285+
It also gives {term}`hooks` for calling external indexers, like Solr and Elasticsearch.
286286
See https://docs.plone.org/develop/plone/searching_and_indexing/external-catalogs.html.
287287

288288
There is a workaround when you get {ref}`catalog-errors-during-upgrades-label`.

docs/glossary.md

Lines changed: 76 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -154,30 +154,48 @@ record
154154
A Rapido app is able to store data as records.
155155
Records are basic dictionaries.
156156
157-
Project (Volto)
158-
The product of running the package `@plone/generator-volto`, resulting in a customizable instance of Volto.
157+
Add-on
158+
An add-on in Plone extends its functionality.
159+
It is code that is released as a package to make it easier to install.
159160
160-
Add-on (Volto)
161-
A JavaScript package that integrates with Volto's configuration registry and is able to enhance, extend, and customize it.
161+
In Volto, an add-on is a JavaScript package.
162162
163-
Add-on configuration loader (Volto)
163+
In Plone core, an add-on is a Python package.
164+
165+
- [Plone core add-ons](https://github.com/collective/awesome-plone#readme)
166+
- [Volto add-ons](https://github.com/collective/awesome-volto#readme)
167+
- [Add-ons tagged with the trove classifier `Framework :: Plone` on PyPI](https://pypi.org/search/?c=Framework+%3A%3A+Plone)
168+
169+
Volto configuration loader
164170
A function with signature `config => config`.
165-
It gets the Volto Configuration registry, and it must return it back after mutating it.
166-
It is similar to `GenericSetup` profiles in Plone Backend.
171+
It gets the Volto configuration registry, and it must return it back after mutating it.
172+
It is similar to `GenericSetup` profiles in the Plone backend.
167173
An add-on must provide a default configuration loader that is always loaded when Volto runs.
168174
An add-on can have multiple configuration loaders, and they can be loaded optionally from the Volto configuration.
169175
170-
Configuration registry (Volto)
171-
A singleton object modeled using JavaScript modules.
176+
Configuration registry
177+
In Plone and in general, the configuration registry is where resources are registered for an application.
178+
179+
In Volto, it is a singleton object modeled using JavaScript modules.
172180
It is accessible from the Volto project by importing the module `@plone/volto/config` with `import registry from '@plone/volto/config'`.
173181
It contains the configuration of the Volto app.
182+
183+
In Plone core, [`plone.app.registry`](https://pypi.org/project/plone.app.registry/) provides Plone UI and `GenericSetup` integration for [`plone.registry`](https://pypi.org/project/plone.registry/), which in turn implements a configuration registry for Zope applications.
184+
185+
component shadowing
186+
shadowing
187+
Volto uses a technique called component shadowing to override an existing Volto component with our local custom version, without having to modify Volto's source code.
188+
189+
Volto's source components are located in the filepath stem of `omelette/src/components/`.
190+
Custom components that shadow Volto's source would be located in the filepath stem of `src/customizations/components/`.
191+
Shadow components would have the same filepath as Volto's source compenents, excluding the stem.
192+
Thus `omelette/src/components/theme/Header/Header.jsx` would be shadowed by `src/customizations/components/theme/Header/Header.jsx`.
174193
175-
Shadowing (Volto)
176-
Webpack provides an "alias" mechanism, where the path for a module can be aliased to another module.
177-
By using this mechanism Volto enables customization (file overrides), similar to `z3c.jbot.`
194+
Webpack provides an alias mechanism that allows component shadowing in Volto, where the path for a module can be aliased to another module.
195+
By using this mechanism of file overrides, or component shadowing, Volto enables customization, similar to `z3c.jbot.`
178196
179197
Razzle
180-
A tool that simplifies SPA and SSR configuration for React projects.
198+
A tool that simplifies {term}`SPA` and {term}`SSR` configuration for React projects.
181199
182200
Webpack
183201
A tool that loads and bundles code and web resources using loaders.
@@ -194,14 +212,39 @@ Express
194212
A JavaScript HTTP server with a simple API to build custom applications.
195213
Volto uses it as its server.
196214
197-
Server-Side Rendering (SSR)
198-
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.
215+
SSR
216+
server-side rendering
217+
When a web browser or other HTTP client sends a request, the HTML markup for the page is created on the server, which sends a response consisting of HTML markup back to the client.
199218
200-
Single Page Application (SPA)
201-
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.
219+
In Volto, SSR returns HTML markup that closely matches the final {term}`DOM` structure of the React components used to render that page, but it is not the complete page.
220+
After the client loads the initial response, then the {term}`hydration` mechanism performs additional rendering on the client side, populating the DOM with additional HTML markup.
202221
203-
Hot Module Replacement (HMR)
204-
A development feature provided by Webpack that automatically reloads, in the browser, the JavaScript modules that have changed on disk.
222+
In Classic UI, SSR returns the complete page back to the client in the response.
223+
In some rare cases, additional HTML snippets may be loaded, such as in overlays or dialogs.
224+
225+
SSR enables a developer to customize a website per request and per user.
226+
In addition, SSR can improve performance and search engine optimization (SEO) for a website.
227+
228+
DOM
229+
Document Object Model
230+
The Document Object Model (DOM) is a programming interface for web documents.
231+
It represents the page so that programs can change the document structure, style, and content.
232+
The DOM represents the document as nodes and objects; that way, programming languages, such as JavaScript and React, can interact with the page.
233+
234+
SPA
235+
single page application
236+
A type of JavaScript application that aims to provide a better user experience by avoiding unnecessary reloading of the browser page, instead using {term}`AJAX` to load backend information.
237+
238+
HMR
239+
hot module replacement
240+
[Hot module replacement](https://webpack.js.org/guides/hot-module-replacement/) (HMR) is a development feature provided by Webpack that automatically reloads, in the browser, the JavaScript modules that have changed on disk.
241+
242+
Ajax
243+
AJAX
244+
Asynchronous JavaScript and XML
245+
AJAX allows web applications to change parts of the page dynamically without reloading the entire page.
246+
In Plone, after a page with JavaScript is loaded, the JavaScript will send an asynchronous request to the server.
247+
The server will send a response back to the client, which is then rendered on the client side.
205248
206249
Yeoman
207250
A popular scaffolding tool similar to Plone's `mr.bob` or `ZopeSkel`.
@@ -225,8 +268,8 @@ mrs-developer
225268
Yarn
226269
[Yarn](https://classic.yarnpkg.com/) is a JavaScript package manager.
227270
228-
Hydration (SSR)
229-
After loading an HTML page generated with SSR in the browser, React can "populate" the existing DOM elements, recreate and attach their coresponding components.
271+
Hydration
272+
After loading an HTML page generated with {term}`SSR` in the browser, React can populate the existing {term}`DOM` elements, and recreate and attach their coresponding components.
230273
231274
JSX
232275
A dialect of JavaScript that resembles XML, it is transpiled by Babel to JavaScript functions.
@@ -235,16 +278,20 @@ JSX
235278
Scoped packages
236279
Namespace for JavaScript packages, they provide a way to avoid naming conflicts for common package names.
237280
238-
middleware (Redux)
239-
Custom wrappers for the Redux store dispatch methods.
240-
They allow customizing the behavior of the data flow inside the redux store.
281+
Redux
282+
Redux middleware
283+
Custom wrappers for the [Redux](https://redux.js.org/) store dispatch methods.
284+
They allow customizing the behavior of the data flow inside the Redux store.
285+
286+
hook
287+
hooks
288+
In general, a hook in programming is a place in code that allows you to tap in to a module to either provide different behavior or to react when something happens.
241289
242-
hooks (React)
243-
Hooks are a React API that allow function components to use React features such as lifecycle methods, states, and so on.
290+
**React [Hooks](https://reactjs.org/docs/hooks-overview.html)** are a React API that allow function components to use React features, such as lifecycle methods, states, and so on.
244291
245-
hoisting (Yarn)
246-
An optimization provided by Yarn.
247-
By default JavaScript packages will directly include dependencies inside their local node_modules.
292+
hoisting
293+
[Hoisting](https://yarnpkg.com/advanced/lexicon#hoisting) is an optimization provided by Yarn.
294+
By default JavaScript packages will directly include dependencies inside their local `node_modules`.
248295
By hoisting we're "lifting" these inner dependencies to the top level `node_modules` directory, and thus optimize the generated bundles.
249296
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.
250297

docs/i18n-l10n/translating-content.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@ Plone will not translate the content for you.
6161
It will only create the content in the other language folders, and both LRFs' contents will be linked to the translations.
6262

6363
Plone does not use any third party tools to automatically translate content.
64-
If needed, you will need to develop such connector tools and hook into a content creation process.
64+
If needed, you will need to develop such connector tools and {term}`hook` into a content creation process.
6565

6666

6767
(translating-content-language-independent-content)=

docs/i18n-l10n/translating-text-strings.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -155,7 +155,7 @@ It will use the text content of the element as `msgid`.
155155
Use attributes `i18n:translate`, `i18n:attributes`, and so on.
156156
For examples, look at any core Plone `.pt` files.
157157

158-
The `i18n:translate` attribute will hook into the translation machinery, and will look up the corresponding translated string to the one stated there, while looking in the relevant `domain.po` file corresponding to the `i18n:domain` stated in the file and the language negotiated by Plone.
158+
The `i18n:translate` attribute will {term}`hook` into the translation machinery, and will look up the corresponding translated string to the one stated there, while looking in the relevant `domain.po` file corresponding to the `i18n:domain` stated in the file and the language negotiated by Plone.
159159

160160

161161
(translating-text-strings-automatically-translated-message-ids-label)=

docs/install/install-from-packages.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ When you want full control over development or deployment, installing Plone from
2121

2222
The hardware requirements below give a rough estimate of the minimum hardware setup needed for a Plone server.
2323

24-
Add-on products and caching solutions may increase RAM requirements.
24+
{term}`Add-on` products and caching solutions may increase RAM requirements.
2525

2626
A single Plone installation is able to run many Plone sites.
2727
You may host multiple Plone sites on the same server.

docs/overview/index.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,7 @@ Plone is easy to set up compared to other CMSs in its category, extremely flexib
7474
Plone is a content management platform with its backend written in Python.
7575
It is built on top of the open source Zope web application server and development system.
7676
Plone makes use of the pluggable Zope Component Architecture (ZCA) to provide a highly modular and extensible system.
77-
Throughout its history, Plone has used server-side rendering to generate HTML-based content, with advanced resource management features for adding and bundling CSS and JavaScript.
77+
Throughout its history, Plone has used {term}`server-side rendering` to generate HTML-based content, with advanced resource management features for adding and bundling CSS and JavaScript.
7878
Additionally, Plone's use of a component architecture makes it easy to extend and customize, allowing users to create unique, feature rich websites that are tailored to their specific needs.
7979

8080
With the release of Plone 6, you now have the option to choose from two different out-of-the-box supported configurations when setting up a new Plone website.
@@ -86,7 +86,7 @@ It may be used as a base image, adding customizations, to make a derivative imag
8686
The default and recommended configuration for new websites in Plone is the new React-based JavaScript frontend called "Volto".
8787
For this setup you still need to run the Python-based backend server, as well as enable the REST API, and update the configuration profile.
8888
These settings and profile are applied automatically when you select the {guilabel}`Create Plone Site` option in the Plone website creation form.
89-
In addition a separate NodeJS based frontend server will serve the JavaScript frontend resources and provide SSR with hydration.
89+
In addition a separate NodeJS based frontend server will serve the JavaScript frontend resources and provide {term}`SSR` with {term}`hydration`.
9090
To deploy this setup using containers, you will need the `plone-frontend` image for the frontend server.
9191

9292
Beginning with Plone 6, we now support two programming language stacks, one each for Python and JavaScript.

0 commit comments

Comments
 (0)