Skip to content

Commit cb164ca

Browse files
authored
Merge branch '6-dev' into csrf
2 parents 552224b + 24d2f6c commit cb164ca

File tree

8 files changed

+84
-37
lines changed

8 files changed

+84
-37
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
@@ -161,30 +161,48 @@ record
161161
A Rapido app is able to store data as records.
162162
Records are basic dictionaries.
163163
164-
Project (Volto)
165-
The product of running the package `@plone/generator-volto`, resulting in a customizable instance of Volto.
164+
Add-on
165+
An add-on in Plone extends its functionality.
166+
It is code that is released as a package to make it easier to install.
166167
167-
Add-on (Volto)
168-
A JavaScript package that integrates with Volto's configuration registry and is able to enhance, extend, and customize it.
168+
In Volto, an add-on is a JavaScript package.
169169
170-
Add-on configuration loader (Volto)
170+
In Plone core, an add-on is a Python package.
171+
172+
- [Plone core add-ons](https://github.com/collective/awesome-plone#readme)
173+
- [Volto add-ons](https://github.com/collective/awesome-volto#readme)
174+
- [Add-ons tagged with the trove classifier `Framework :: Plone` on PyPI](https://pypi.org/search/?c=Framework+%3A%3A+Plone)
175+
176+
Volto configuration loader
171177
A function with signature `config => config`.
172-
It gets the Volto Configuration registry, and it must return it back after mutating it.
173-
It is similar to `GenericSetup` profiles in Plone Backend.
178+
It gets the Volto configuration registry, and it must return it back after mutating it.
179+
It is similar to `GenericSetup` profiles in the Plone backend.
174180
An add-on must provide a default configuration loader that is always loaded when Volto runs.
175181
An add-on can have multiple configuration loaders, and they can be loaded optionally from the Volto configuration.
176182
177-
Configuration registry (Volto)
178-
A singleton object modeled using JavaScript modules.
183+
Configuration registry
184+
In Plone and in general, the configuration registry is where resources are registered for an application.
185+
186+
In Volto, it is a singleton object modeled using JavaScript modules.
179187
It is accessible from the Volto project by importing the module `@plone/volto/config` with `import registry from '@plone/volto/config'`.
180188
It contains the configuration of the Volto app.
189+
190+
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.
181191
182-
Shadowing (Volto)
183-
Webpack provides an "alias" mechanism, where the path for a module can be aliased to another module.
184-
By using this mechanism Volto enables customization (file overrides), similar to `z3c.jbot.`
192+
component shadowing
193+
shadowing
194+
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.
195+
196+
Volto's source components are located in the filepath stem of `omelette/src/components/`.
197+
Custom components that shadow Volto's source would be located in the filepath stem of `src/customizations/components/`.
198+
Shadow components would have the same filepath as Volto's source compenents, excluding the stem.
199+
Thus `omelette/src/components/theme/Header/Header.jsx` would be shadowed by `src/customizations/components/theme/Header/Header.jsx`.
200+
201+
Webpack provides an alias mechanism that allows component shadowing in Volto, where the path for a module can be aliased to another module.
202+
By using this mechanism of file overrides, or component shadowing, Volto enables customization, similar to `z3c.jbot.`
185203
186204
Razzle
187-
A tool that simplifies SPA and SSR configuration for React projects.
205+
A tool that simplifies {term}`SPA` and {term}`SSR` configuration for React projects.
188206
189207
Webpack
190208
A tool that loads and bundles code and web resources using loaders.
@@ -201,14 +219,39 @@ Express
201219
A JavaScript HTTP server with a simple API to build custom applications.
202220
Volto uses it as its server.
203221
204-
Server-Side Rendering (SSR)
205-
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.
222+
SSR
223+
server-side rendering
224+
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.
225+
226+
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.
227+
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.
206228
207-
Single Page Application (SPA)
208-
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.
229+
In Classic UI, SSR returns the complete page back to the client in the response.
230+
In some rare cases, additional HTML snippets may be loaded, such as in overlays or dialogs.
209231
210-
Hot Module Replacement (HMR)
211-
A development feature provided by Webpack that automatically reloads, in the browser, the JavaScript modules that have changed on disk.
232+
SSR enables a developer to customize a website per request and per user.
233+
In addition, SSR can improve performance and search engine optimization (SEO) for a website.
234+
235+
DOM
236+
Document Object Model
237+
The Document Object Model (DOM) is a programming interface for web documents.
238+
It represents the page so that programs can change the document structure, style, and content.
239+
The DOM represents the document as nodes and objects; that way, programming languages, such as JavaScript and React, can interact with the page.
240+
241+
SPA
242+
single page application
243+
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.
244+
245+
HMR
246+
hot module replacement
247+
[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.
248+
249+
Ajax
250+
AJAX
251+
Asynchronous JavaScript and XML
252+
AJAX allows web applications to change parts of the page dynamically without reloading the entire page.
253+
In Plone, after a page with JavaScript is loaded, the JavaScript will send an asynchronous request to the server.
254+
The server will send a response back to the client, which is then rendered on the client side.
212255
213256
Yeoman
214257
A popular scaffolding tool similar to Plone's `mr.bob` or `ZopeSkel`.
@@ -232,8 +275,8 @@ mrs-developer
232275
Yarn
233276
[Yarn](https://classic.yarnpkg.com/) is a JavaScript package manager.
234277
235-
Hydration (SSR)
236-
After loading an HTML page generated with SSR in the browser, React can "populate" the existing DOM elements, recreate and attach their coresponding components.
278+
Hydration
279+
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.
237280
238281
JSX
239282
A dialect of JavaScript that resembles XML, it is transpiled by Babel to JavaScript functions.
@@ -242,16 +285,20 @@ JSX
242285
Scoped packages
243286
Namespace for JavaScript packages, they provide a way to avoid naming conflicts for common package names.
244287
245-
middleware (Redux)
246-
Custom wrappers for the Redux store dispatch methods.
247-
They allow customizing the behavior of the data flow inside the redux store.
288+
Redux
289+
Redux middleware
290+
Custom wrappers for the [Redux](https://redux.js.org/) store dispatch methods.
291+
They allow customizing the behavior of the data flow inside the Redux store.
292+
293+
hook
294+
hooks
295+
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.
248296
249-
hooks (React)
250-
Hooks are a React API that allow function components to use React features such as lifecycle methods, states, and so on.
297+
**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.
251298
252-
hoisting (Yarn)
253-
An optimization provided by Yarn.
254-
By default JavaScript packages will directly include dependencies inside their local node_modules.
299+
hoisting
300+
[Hoisting](https://yarnpkg.com/advanced/lexicon#hoisting) is an optimization provided by Yarn.
301+
By default JavaScript packages will directly include dependencies inside their local `node_modules`.
255302
By hoisting we're "lifting" these inner dependencies to the top level `node_modules` directory, and thus optimize the generated bundles.
256303
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.
257304

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)