From 8a5cdd3eae5c742fb1bc3a868fb915632fecca82 Mon Sep 17 00:00:00 2001 From: jacbodoo Date: Mon, 17 Nov 2025 13:13:50 +0000 Subject: [PATCH] [IMP] blog: update and restructure blog documentation Task - 5136454 closes odoo/documentation#16998 X-original-commit: e5fd6a27ce9860b85c2b7edddbb2bd7e15a8707d Signed-off-by: Xavier Platteau (xpl) --- content/applications/websites/blog.rst | 233 ++++++++++-------- .../applications/websites/blog/create-tag.png | Bin 10592 -> 0 bytes .../websites/blog/tag-categories.png | Bin 0 -> 5569 bytes 3 files changed, 134 insertions(+), 99 deletions(-) delete mode 100644 content/applications/websites/blog/create-tag.png create mode 100644 content/applications/websites/blog/tag-categories.png diff --git a/content/applications/websites/blog.rst b/content/applications/websites/blog.rst index bf9e9e7229..1408387b8c 100644 --- a/content/applications/websites/blog.rst +++ b/content/applications/websites/blog.rst @@ -2,128 +2,163 @@ Blog ==== -**Odoo Blog** allows you to create and manage blog posts on your website to engage your audience and -build a community. +**Odoo Blog** lets you manage blog pages and posts, and customize them with the website builder. .. tip:: - If the Blog module is not yet installed, click :guilabel:`+New` on the website builder, select - :guilabel:`Blog Post`, and click :guilabel:`Install`. + Install the :guilabel:`Blog` app by clicking :guilabel:`New` on the website builder, then + selecting :guilabel:`Blog Post`, and clicking :guilabel:`Install`. -Creating a blog -=============== +.. seealso:: + `Odoo Tutorials: Blogs [video] `_ -To create or edit a blog, go to :menuselection:`Website --> Configuration --> Blogs: Blogs`. Click -:guilabel:`New`, and enter the :guilabel:`Blog Name` and the :guilabel:`Blog Subtitle`. - -The :guilabel:`Blog` menu item is added to your website's menu the first time you create a blog and -gathers all your blogs. - -Adding a blog post -================== - -Go to your website, click :guilabel:`+New` in the top-right corner, and select -:guilabel:`Blog Post`. In the pop-up, **select the blog** where the post should appear, write the -post's :guilabel:`Title`, and :guilabel:`Save`. You can then write the post's content and customize -the page using the website builder. - -.. tip:: - - Illustrate your articles with copyright-free images from :doc:`Unsplash - `. - - Type `/` in the text editor to format and add elements to your text. - -.. important:: - Don't forget to toggle the :guilabel:`Unpublished` switch in the top-right corner to publish - your post. - -Using tags +Blog posts ========== -Tags let visitors filter all posts sharing the same tag. By default, they are displayed at the -bottom of posts, but can also be displayed on the blog's main page. To do so, click -:menuselection:`Edit --> Customize` and enable the :guilabel:`Sidebar`. By default, the sidebar's -:guilabel:`Tags List` is enabled. +To create a blog post, click :guilabel:`New` on the website builder and click :guilabel:`Blog Post`. +Select a :ref:`blog `, define a :guilabel:`Blog Post Title`, and click +:guilabel:`Save`. Write the post's content and customize it using the website builder. -To create a tag, go to :menuselection:`Website --> Configuration --> Blogs: Tags` and click +To publish a post, toggle the :guilabel:`Unpublished` switch in the top-right corner of the page. + +To delete a blog post, go to :menuselection:`Website --> Site --> Blog post`. Select the blog +post to delete, click :icon:`fa-cog` :guilabel:`Actions`, and :icon:`fa-trash-o` :guilabel:`Delete`. + +Customize blog posts +-------------------- + +To customize the layout of all blog posts, open one and click :menuselection:`Edit --> Style`. +Under the :guilabel:`Blog page` section, different options can be used to customize the posts: + +- :guilabel:`Layout`: display the title inside or above the cover. +- :guilabel:`Increase Readability`: adjust or not the posts' formatting for better reading comfort. +- :guilabel:`Sidebar`: display or hide a sidebar that can contain several elements: + + - :guilabel:`Archive`: allow visitors to view all posts from a specific month by selecting it. + - :guilabel:`Author`: display the post author. + - :guilabel:`Blog List`: display links to all :ref:`blog pages `. + - :guilabel:`Share Links`: add clickable icons that link to your social network profiles and a + subscription field for your newsletter. + - :guilabel:`Tags`: create or select existing :ref:`tags ` and display them on the post. + +- :guilabel:`Breadcrumb`: display the breadcrumb trail. +- :guilabel:`Bottom`: click the :guilabel:`Next Article` to hide or display the next post at the + end of the page, and click :guilabel:`Comments` to enable or disable visitors' comments. + +To add tags or customize the cover of a specific post, click the cover and use the following +settings under the :guilabel:`Blog Post Cover` section: + +- :guilabel:`Tags` +- :guilabel:`Background`: add an image by clicking the :icon:`os-camera` :guilabel:`(camera)` icon, + or use a background color by clicking the :icon:`fa-ban` (:guilabel:`None`) icon and selecting a + color. + +- :guilabel:`Size`: select the size of the cover (:guilabel:`Full screen`, :guilabel:`Half screen`, + or :guilabel:`Fit text`). +- :guilabel:`Filter Intensity`: choose the cover filter's intensity + (:guilabel:`Low`, :guilabel:`Medium`, :guilabel:`High`) or disable it by selecting + :guilabel:`No filter`. + +After applying the desired changes, click :guilabel:`Save`. + +.. tip:: + - Illustrate your posts with copyright-free images from :doc:`Unsplash + `. + - Use :ref:`Plausible ` to track traffic on your blog. + - Customize blog building blocks through the website editor. For example, filter by the + :guilabel:`Latest blog posts` or :guilabel:`Most viewed blog posts` and determine which blog + to display in the building block. + +.. seealso:: + - :doc:`Building block documentation ` + - :doc:`Odoo rich-text editor documentation <../essentials/html_editor>` + +.. _blog/tags: + +Tags +~~~~ + +Tags let visitors filter blog posts that share a specific tag. They are displayed at the bottom of +each post. + +To create a tag, go to :menuselection:`Website --> Configuration --> Tags` and click :guilabel:`New`. Fill in the: - :guilabel:`Name` -- :guilabel:`Category`: tag categories let you group tags displayed on the sidebar by theme. -- :guilabel:`Used in`: to apply the tag to existing blog posts, click :guilabel:`Add a line`, - select the posts, and click :guilabel:`Select`. +- :ref:`Category ` +- :guilabel:`Color` +- :guilabel:`Used in`: to apply tags to existing blog posts, click :guilabel:`Add a line`. -You can add and create tags directly from posts by clicking :menuselection:`Edit --> Customize` and -select the post's cover. Under :guilabel:`Tags`, click :guilabel:`Choose a record...`, and select -or create a tag. +Add and create tags directly from posts by clicking :menuselection:`Edit --> Style` and +selecting the post's cover. Under :guilabel:`Tags`, click :guilabel:`Choose a record...`, and select +or create a tag by writing a new name. -.. image:: blog/create-tag.png - :alt: Adding a tag to a blog post +.. _blog/tag-category: + +Tag category +************ + +Tag categories let you organize tags displayed on the sidebar into groups. + +.. image:: blog/tag-categories.png + :alt: tag categories + +To create tag categories, go to :menuselection:`Website --> Configuration --> Tag Categories` +and click :guilabel:`New`. + +.. _blog/blog-pages: + +Blog landing pages +================== + +To create multiple blogs, go to :menuselection:`Website --> Configuration --> Blogs` and click +:guilabel:`New`. Next, enter the :guilabel:`Blog Name` and the :guilabel:`Blog Subtitle`. + +The :guilabel:`Blog` menu gathers all the blogs and their posts. .. note:: - To manage tag categories, go to :menuselection:`Website --> Configuration --> Blogs: Tag - Categories`. + With two or more blogs, the blog landing page (/blog) aggregates posts from all blogs and lets + visitors choose which blog to view. -Customizing blog homepages -========================== +Customize blog landing pages +---------------------------- -Customize the content of blog homepages by opening a blog homepage and clicking :menuselection:`Edit ---> Customize`. +To customize the blog landing pages, go to :menuselection:`Edit --> Style` and use the available +options as desired. .. note:: - Settings apply to **all** blogs homepages. + If you use multiple blogs, settings configured on the main blog landing page or on a specific + blog landing page will be applied to all other pages. -:guilabel:`Top Banner`: :guilabel:`Name/Latest Post` displays the title of the latest post on the -top banner, while :guilabel:`Drop Zone for Building Blocks` removes the top banner and lets you use -any building block instead. +- :guilabel:`Top Banner`: display or hide the page's banner: -:guilabel:`Layout`: organizes posts as a :guilabel:`Grid` or :guilabel:`List`. + - :guilabel:`Full-width`: make the banner use the page's full-width or display a condensed banner. +- :guilabel:`Layout`: display blog posts as a grid or as a list. +- :guilabel:`Cards`: display blog posts with or without the *card* effect. +- :guilabel:`Increase Readability`: enlarge or not the blog posts' size for better reading comfort . +- :guilabel:`Sidebar`: display or hide a sidebar that contains an *about us* section, and, depending + on the options selected: -- :guilabel:`Cards`: adds a *card* effect. -- :guilabel:`Increase Readability`: improves the text's readability. + - :guilabel:`Archives`: allow visitors to view all posts from a specific month by selecting it. + - :guilabel:`Follow Us`: add clickable icons that link to your social network profiles and a + subscription field for your newsletter. + - :ref:`Tags List `: allow visitors to view all blog posts that share a specific tag by + selecting it. -:guilabel:`Sidebar`: displays a sidebar containing an :guilabel:`About us` section. +- :guilabel:`Posts List`: select :guilabel:`Cover` to display the posts' covers or select + :guilabel:`No Cover` to hide them. +- :guilabel:`Author`: display the posts' authors. +- :guilabel:`Comments/Views Stats`: display or hide the number of comments and views for each post. +- :guilabel:`Teaser & Tags`: display the posts' first sentences and tags. -- :guilabel:`Archives`: allows visitors to select a month and filter all posts created during that - month. -- :guilabel:`Follow Us`: displays links to your social media networks. They can be configured using - the Social Media building block somewhere on your website. -- :guilabel:`Tags List`: displays all tags related to a blog. Visitors can select a tag to filter - all related posts. - -:guilabel:`Posts List`: :guilabel:`Cover` displays the posts' images, and :guilabel:`No Cover` hides -them. - -- :guilabel:`Author`: displays the posts' authors. -- :guilabel:`Comments/Views Stats`: displays the posts' number of comments and views. -- :guilabel:`Teaser & Tags`: displays the posts' first sentences and tags. - -Customizing blog posts -====================== - -Customize posts by opening a blog post and clicking :menuselection:`Edit --> Customize`. +After applying the desired changes, click :guilabel:`Save`. .. note:: - Settings apply to **all** posts. + Increase your blog's visibility in search engines, attract more visitors while + improving the :doc:`SEO <../../../applications/websites/website/structure/seo>` by: -:guilabel:`Layout`: :guilabel:`Title Inside Cover` displays the title inside the cover image, and -:guilabel:`Title above Cover` displays it above. - -- :guilabel:`Increase Readability`: increases the text's readability. - -:guilabel:`Sidebar`: displays the :guilabel:`Sidebar` and additional options: - -- :guilabel:`Archive`: allows visitors to select a month and filter all posts created during that - month. -- :guilabel:`Author`: displays the post's author and creation date. -- :guilabel:`Blog List`: displays links to all your blogs. -- :guilabel:`Share Links`: displays share buttons to several social networks. -- :guilabel:`Tags`: displays the post's tags. - -:guilabel:`Breadcrumb`: displays the path to the post. - -:guilabel:`Bottom`: :guilabel:`Next Article` displays the next post at the bottom, and -:guilabel:`Comments` enable visitors to comment on the post. - -:guilabel:`Select To Tweet`: visitors are offered to tweet the text they select. - -.. tip:: - Use :ref:`Plausible ` to keep track of the traffic on your blog. + - Updating the content of the website regularly. + - Using meta tags and ensuring that both the content and metadata are translated. + - Never having more than one :ref:`Heading 1 ` per page, so + search engines can easily identify the page's main topic. + - Use the :guilabel:`Blog` :ref:`building blocks ` anywhere on the + website. diff --git a/content/applications/websites/blog/create-tag.png b/content/applications/websites/blog/create-tag.png deleted file mode 100644 index f661d92db96713d20bddffacf724fd9267073991..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10592 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 diff --git a/content/applications/websites/blog/tag-categories.png b/content/applications/websites/blog/tag-categories.png new file mode 100644 index 0000000000000000000000000000000000000000..efdb43a731cc39f81dacc085861a156d2beb7964 GIT binary patch literal 5569 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 P00000NkvXXu0mjfaf%9; literal 0 HcmV?d00001