Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

14.0 web widget html markdown #6

Open
wants to merge 6 commits into
base: 14.0
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 0 additions & 2 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,6 @@ build/
develop-eggs/
dist/
eggs/
lib/
lib64/
parts/
sdist/
Expand Down Expand Up @@ -72,4 +71,3 @@ docs/_build/
*.swp

# OCA rules
!static/lib/
118 changes: 118 additions & 0 deletions web_widget_html_markdown/README.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,118 @@
========================
Web Widget Html Markdown
========================

.. !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! This file is generated by oca-gen-addon-readme !!
!! changes will be overwritten. !!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

.. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png
:target: https://odoo-community.org/page/development-status
:alt: Beta
.. |badge2| image:: https://img.shields.io/badge/licence-AGPL--3-blue.png
:target: http://www.gnu.org/licenses/agpl-3.0-standalone.html
:alt: License: AGPL-3
.. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fweb-lightgray.png?logo=github
:target: https://github.com/OCA/web/tree/14.0/web_widget_html_markdown
:alt: OCA/web
.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png
:target: https://translation.odoo-community.org/projects/web-14-0/web-14-0-web_widget_html_markdown
:alt: Translate me on Weblate
.. |badge5| image:: https://img.shields.io/badge/runbot-Try%20me-875A7B.png
:target: https://runbot.odoo-community.org/runbot/162/14.0
:alt: Try me on Runbot

|badge1| |badge2| |badge3| |badge4| |badge5|

Behaviour of the module and best practices
==========================================

- In readonly mode, the widget renders as Html
- In editable mode, there is a switcher to choose if the source should be HTML or Markdown. If HTML, it shows the HTML edit widget. If Markdown, it shows a markdown widget. When done editing, it will save in the field as Html, no matter which widget is chosen.
- In markdown mode, the markdown is saved embedded within the HTML so that it can be shown again on subsequent edits of the field and there is no loss from backconversion of Html to Markdown.
- When switching the widget from Markdown to HTML, the Markdown source is lost.
- When switching the widget from HTML back to Markdown, the Showdown.JS backconversion is used to generate a reasonable representation of the HTML in markdown. This is where some information loss can occur, so the user should not needlessly switch from HTML to Markdown and back - in general, choose one way to edit your field content, and stick to it.
- In edit mode, the widget provides some feedback about potential loss of information when switching from HTML to markdown or when editing in HTML text that was edited in markdown.


Utility of this module vs web_widget_text_markdown
==================================================

Why this module when web_widget_text_markdown already exists? Mainly because it is designed to work on Text fields, and most fields within Odoo are HTML fields for example: mail content, project.task description etc. Although you could develop a custom module that overrides these fields to be Text fields and render them on-screen as HTML, this rendering would not be done when the field is for example used in sending out a mail or fetching the field content through Odoo API. In these cases this widget comes in handy because it is plug-and-play: the field type and content remains as HTML, but you can choose to edit it with a markdown widget.

**Table of contents**

.. contents::
:local:

Usage
=====

Your XML form view definition should contain:

...
<field name="field_name" widget="html_markdown"/>
...


This will replace the default Html widget by the new Markdown/HTML widget and
allow the field to be edited as Markdown or HTML, depending on the user's choice.


Known issues / Roadmap
======================

* Images Will be lost when passing from Html to markdown
* Other information may be lost when switching from Html to markdown


Bug Tracker
===========

Bugs are tracked on `GitHub Issues <https://github.com/OCA/web/issues>`_.
In case of trouble, please check there if your issue has already been reported.
If you spotted it first, help us smashing it by providing a detailed and welcomed
`feedback <https://github.com/OCA/web/issues/new?body=module:%20web_widget_html_markdown%0Aversion:%2014.0%0A%0A**Steps%20to%20reproduce**%0A-%20...%0A%0A**Current%20behavior**%0A%0A**Expected%20behavior**>`_.

Do not contact contributors directly about support or help with technical issues.

Credits
=======

Authors
~~~~~~~

* Giovanni Francesco Capalbo
* Therp B.V.Komit
* Sudokeys
* Sunflower IT

Contributors
~~~~~~~~~~~~

* Tom Blauwendraat <[email protected]>
* Kevin Kamau <[email protected]>
* Giovanni Francesco Capalbo <[email protected]>

Other credits
~~~~~~~~~~~~~

* Therp B.V. https://therp.nl

Maintainers
~~~~~~~~~~~

This module is maintained by the OCA.

.. image:: https://odoo-community.org/logo.png
:alt: Odoo Community Association
:target: https://odoo-community.org

OCA, or the Odoo Community Association, is a nonprofit organization whose
mission is to support the collaborative development of Odoo features and
promote its widespread use.

This module is part of the `OCA/web <https://github.com/OCA/web/tree/14.0/web_widget_html_markdown>`_ project on GitHub.

You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.
1 change: 1 addition & 0 deletions web_widget_html_markdown/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).
26 changes: 26 additions & 0 deletions web_widget_html_markdown/__manifest__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
# Copyright (C) 2014 Sudokeys (<http://www.sudokeys.com>)
# Copyright (C) 2017 Komit (<http://www.komit-consulting.com>)
#
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).
{
"name": "Web Widget Html Markdown",
"version": "14.0.1.0.0",
"author": "Giovanni Francesco Capalbo, Therp B.V."
"Komit, "
"Sudokeys, "
"Sunflower IT, "
"Odoo Community Association (OCA)",
"category": "Web",
"license": "AGPL-3",
"website": "https://github.com/OCA/web",
"summary": "Widget for Html fields that adds markdown Html bidirectional editor",
"depends": [
"web", "web_editor",
],
"demo": ["demo/bootstrap_markdown.xml"],
"data": ["views/assets.xml"],
"qweb": ["static/src/xml/bootstrap_markdown.xml"],
"installable": True,
"auto_install": False,
"application": False,
}
12 changes: 12 additions & 0 deletions web_widget_html_markdown/demo/bootstrap_markdown.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
<?xml version="1.0" encoding="UTF-8" ?>
<odoo>
<record id="view_groups_form_inherited" model="ir.ui.view">
<field name="model">res.groups</field>
<field name="inherit_id" ref="base.view_groups_form" />
<field name="arch" type="xml">
<field name="comment" position="attributes">
<attribute name="widget">html_markdown</attribute>
</field>
</field>
</record>
</odoo>
3 changes: 3 additions & 0 deletions web_widget_html_markdown/readme/CONTRIBUTORS.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
* Tom Blauwendraat <[email protected]>
* Kevin Kamau <[email protected]>
* Giovanni Francesco Capalbo <[email protected]>
1 change: 1 addition & 0 deletions web_widget_html_markdown/readme/CREDITS.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
* Therp B.V. https://therp.nl
15 changes: 15 additions & 0 deletions web_widget_html_markdown/readme/DESCRIPTION.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
Behaviour of the module and best practices
==========================================

- In readonly mode, the widget renders as Html
- In editable mode, there is a switcher to choose if the source should be HTML or Markdown. If HTML, it shows the HTML edit widget. If Markdown, it shows a markdown widget. When done editing, it will save in the field as Html, no matter which widget is chosen.
- In markdown mode, the markdown is saved embedded within the HTML so that it can be shown again on subsequent edits of the field and there is no loss from backconversion of Html to Markdown.
- When switching the widget from Markdown to HTML, the Markdown source is lost.
- When switching the widget from HTML back to Markdown, the Showdown.JS backconversion is used to generate a reasonable representation of the HTML in markdown. This is where some information loss can occur, so the user should not needlessly switch from HTML to Markdown and back - in general, choose one way to edit your field content, and stick to it.
- In edit mode, the widget provides some feedback about potential loss of information when switching from HTML to markdown or when editing in HTML text that was edited in markdown.


Utility of this module vs web_widget_text_markdown
==================================================

Why this module when web_widget_text_markdown already exists? Mainly because it is designed to work on Text fields, and most fields within Odoo are HTML fields for example: mail content, project.task description etc. Although you could develop a custom module that overrides these fields to be Text fields and render them on-screen as HTML, this rendering would not be done when the field is for example used in sending out a mail or fetching the field content through Odoo API. In these cases this widget comes in handy because it is plug-and-play: the field type and content remains as HTML, but you can choose to edit it with a markdown widget.
3 changes: 3 additions & 0 deletions web_widget_html_markdown/readme/ROADMAP.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
* Images Will be lost when passing from Html to markdown
gfcapalbo marked this conversation as resolved.
Show resolved Hide resolved
* Other information may be lost when switching from Html to markdown

10 changes: 10 additions & 0 deletions web_widget_html_markdown/readme/USAGE.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
Your XML form view definition should contain:

...
<field name="field_name" widget="html_markdown"/>
...


This will replace the default Html widget by the new Markdown/HTML widget and
allow the field to be edited as Markdown or HTML, depending on the user's choice.

Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading