semanticeditor é um plugin Django CMS para edição de texto. & Nbsp; Ele permite que você edite um web site de uma forma semântica, em seguida, atribuir apresentação e layout detalhes para cada seção do texto. Ele suporta layouts de coluna complexas usando um conjunto simples de controles (nova linha, nova coluna).
Classes CSS são armazenadas no banco de dados, e pode ser limitado a certos elementos (p, ul li, etc) e para determinados modelos.
Este projeto é usado como parte de Arkestra pela Escola de Medicina da Universidade de Cardiff, que concebeu o sistema.
Visão geral
O objetivo é ter um editor em que o conteúdo é editado semanticamente, e ambos layout de coluna e estilo são aplicados separadamente. No entanto, na base de dados apenas o HTML combinado é armazenado. Então, nós temos a seguinte situação:
Conteúdo HTML é armazenado no banco de dados algo como:
& Nbsp;
& Nbsp;
Título
& Nbsp;
Some text
& Nbsp;
& Nbsp;
& Nbsp;
Alguns mais texto
& Nbsp;
Este é carregado em um editor personalizado no navegador que, em seguida, imediatamente faz algumas chamadas de AJAX para o servidor para decompô-la em HTML simplificado:
Título
Some text
Alguns mais texto
e uma matriz de objetos que especificam a apresentação, por exemplo:
[
& nbsp; {'h1_1': ['fantasia']}, # estilos para o H1
& nbsp; {'P_1': ['nota', 'limitado']}, # estilos para o P
& Nbsp; {'newrow_h1_1': 'NewRow'}, # especifica linha antes h1_1
& Nbsp; {'newrow_p_2': 'newcolum'},
]
Essas duas partes são então editados separadamente, ou seja, o usuário não ver o código HTML combinado durante a edição. Antes de salvar o banco de dados, o editor faz uma chamada AJAX para combinar as duas partes. Observe o uso dos atributos "id" são adicionados para ajudar a identificar o que as informações de estilo pertence - estes serão removidos antes de salvar no banco de dados.
Dependendo do GUI para editar as informações de apresentação, o usuário pode ter que pressionar um botão 'Atualizar' para que possam atribuir Informação apresentação aos parágrafos e cabeçalhos recém-ingressados etc. parágrafos e cabeçalhos recentemente introduzidos, obviamente, não terá o 'id' atributos , de modo que o HTML pode ter que ser atualizado neste momento, bem, então tudo tem um id.
Extensões WYMeditor
O aplicativo Editor de Semântica fornece sua própria versão do WYMeditor. Esta é derivada das peles / modelos encontrados na django-CMS2, com as seguintes personalizações:
& Nbsp; * Nome da pele mudou de 'Django' para 'semanticeditor'. Isso é necessário se quisermos permitir que duas versões diferentes do WYMeditor na mesma página, uma usando os controles normais WYMeditor + CMS, outro com os controles completos 'editor' semântica, por mais pedaços de conteúdo.
& Nbsp; * O arquivo skin.js remove o painel 'classes', uma vez que isso não é necessário e é substituído por elementos dinâmicos.
& Nbsp; * skins.css - acrescentou styling para controles de apresentação adicionais
& Nbsp; * um plugin WYMeditor chamado 'semântica' foi adicionada. Este implementa a maioria da lógica do lado do cliente para esta aplicação.
& Nbsp; * o modelo editorwidget.html foi alterado. Em particular:
- A pele foi alterado para 'semanticeditor'
- Uma chamada para wymeditor.semantic () foi adicionada para configurar o plugin.
& Nbsp; * um novo widget do Django SemanticEditor "foi criada que herda da django Widget 'WYMEditor' em django-CMS2. Isto é necessário de modo a que:
- Plugin do WYMeditor "semântica" javascript arquivo pode ser adicionado à mídia
- O nosso modelo editorwdiget.html pode ser usado
O que é novo nesta versão:
- Compatibilidade com django-CMS 2.3. e 2,4
- Agrupamento de classes CSS por categoria
- Botão para abrir em uma nova guia editor
- melhorias de interface do usuário
- Corrigido erro de digitação que causou a falha completa do plugin do jQuery 1.4.2 semântica sob
- Outras correções de bugs
O que é novo na versão 0.2.1:
- bug embalagem Fixo (não há modelos ou mídia estática)
Requisitos :
- Python
- django-CMS
Comentários não encontrado