Source code for cioxml.handlers.handler_ciomemo

"""A file handler for Ciomemo XML files."""

from os.path import join, dirname, normpath

from ciowarehouse.lib.handler import LAYOUT_VIEW_PT, LAYOUT_EDIT_PT
from ciowarehouse.lib.handler import CHRYSALIO_JS
from ...lib.i18n import _, translate
from ..handler_xml import HANDLER_CSS, HANDLER_XML_CSS, CODEMIRROR_CSS
from ..handler_xml import HandlerXml


CIOMEMO_CSS = ('/cioxml/css/handler_ciomemo.css',)
CIOMEMO_PROOFING_CSS = ('/cioxml/css/handler_ciomemo_proofing.css',)
CIOMEMO_CXE_CSS = ('/cioxml/css/handler_ciomemo_cxe.css',)
CIOMEMO_CXE_JS = ('/cioxml/js/cxe4ciomemo.js',)
CODEMIRROR_JS = ('/cioxml/js/cm4ciomemo.js',)
RELAXNG_CIOMEMO = {
    'root': 'ciomemo', 'version': '1.0', 'file': join(
        dirname(__file__), '..', '..', 'Processors', 'CiomemoValidate',
        'RelaxNG', 'ciomemo.rng')}


# =============================================================================
[docs] def includeme(configurator): """Function to include WBWarehouse a handler. :type configurator: pyramid.config.Configurator :param configurator: Object used to do configuration declaration within the application. """ HandlerXml.register(configurator, HandlerCiomemo)
# =============================================================================
[docs] class HandlerCiomemo(HandlerXml): """Class to manage a Ciomemo XML file.""" uid = 'ciomemo' label = _('Ciomemo XML file handling') extensions = ('.xml',) content_regex = b'<ciomemo ' seeds = { 'ciomemo': ( '/cioxml/images/seed_ciomemo.png', _('Memo'), join('Seeds', 'ciomemo.xml'))} viewings = ( {'name': 'preview', 'label': _('Ciomemo Preview'), 'template': LAYOUT_VIEW_PT, 'css': HANDLER_CSS + CIOMEMO_CSS, 'js': CHRYSALIO_JS, 'xsl': join('Xsl', 'ciomemo_preview.xsl')}, {'name': 'proofing', 'label': _('Ciomemo Proofing'), 'template': LAYOUT_VIEW_PT, 'css': HANDLER_CSS + CIOMEMO_PROOFING_CSS, 'js': CHRYSALIO_JS, 'xsl': join('Xsl', 'ciomemo_proofing.xsl')}, {'name': 'xml', 'label': _('XML'), 'template': LAYOUT_VIEW_PT, 'css': HANDLER_XML_CSS, 'js': CHRYSALIO_JS}) editings = ( {'name': 'cxe', 'label': _('Wysiwym'), 'template': LAYOUT_EDIT_PT, 'css': HANDLER_CSS + CIOMEMO_CXE_CSS, 'js': CHRYSALIO_JS + CIOMEMO_CXE_JS, 'only_groups': set(('cxe',))}, {'name': 'xml', 'label': _('XML'), 'template': LAYOUT_EDIT_PT, 'css': CODEMIRROR_CSS, 'js': CHRYSALIO_JS + CODEMIRROR_JS}) thumbnailing = { 'css': normpath(join( dirname(__file__), '..', '..', 'Static', 'Css', 'handler_ciomemo.css')), 'xsl': join('Xsl', 'ciomemo_thumbnail.xsl'), 'image_paths': ('{directory}/Images', '{directory}')} relaxng = RELAXNG_CIOMEMO _home = dirname(__file__) # ------------------------------------------------------------------------- @classmethod def _edit_cxe_i18n(cls, request): """Return a string of data-i18n_* attributes for translations in CioXmlEditor. See: :meth:.handlers.handler_xml.HandlerXml._edit_cse_i18n """ return '{data}'\ ' data-i18n_tag_title="{tag_title}"'\ ' data-i18n_tag_sup="{tag_sup}"'\ ' data-i18n_tag_strong="{tag_strong}"'.format( data=HandlerXml._edit_cxe_i18n(request), tag_title=translate(_('Title'), request=request), tag_sup=translate(_('Exponent'), request=request), tag_strong=translate( _('Highlighting (Ctrl-b)'), request=request))