JPress , uma alternativa java ao wordpress, desenvolvida usando JFinal. Suporta quase todas as funções semelhantes ao WordPress, como modelos, plug-ins, etc. Ao mesmo tempo, em termos de modelos, o JPress apresenta o conceito de "modelo como modelo", que facilita aos produtores de modelos a criação flexível de modelos de negócios, remove funções complicadas, como widgets, e é mais flexível e conciso do que o WordPress em termos de produção de modelos e plug-ins.
No entanto, JPress não é a versão Java do WordPress. Ele está naturalmente integrado à plataforma pública WeChat e integra muitas plataformas domésticas de nuvem, envio de SMS e plataformas de envio de e-mail. O conceito original de "modelo como modelo" não está disponível no WordPress. apenas jogadores experientes do wordpress podem entender o relacionamento sutil interno. Ao mesmo tempo, a função de sincronização de artigos do WeChat, plataforma pública QQ, Toutiao, Yidian e outras novas mídias serão adicionadas no futuro, tornando-as mais domésticas e localizadas.
JPress em termos de funcionalidadeOferece suporte a modelos personalizados, que são definidos por meio de modelos em vez de funções em segundo plano. Ao mesmo tempo, o conteúdo do modelo oferece suporte a categorias personalizadas. Por exemplo, o modelo de artigo oferece suporte a tópicos, categorias, tags e outras categorias.
Suporta vários mecanismos de modelo. O Freemarker é usado por padrão. Os criadores de modelos podem usar outros mecanismos, como o thymeleaf, para renderização.
Suporta vários tipos de banco de dados e pode configurar diferentes bancos de dados (atualmente apenas o mysql é suportado).
Suporta vários editores, alternância gratuita entre edição visual em segundo plano e edição de markdown e suporta funções como edição de imagens online e destaque de código por padrão.
Ele suporta plug-in e você pode concluir o desenvolvimento de um plug-in com apenas algumas linhas de código. Já existem instâncias helloworld do plug-in em git.oschina.net e github.
Suporta URLs personalizados e personalização de estilo de URL de conteúdo de site.
O suporte da API facilita que o APP ou outros terceiros chamem dados.
Suporte à internacionalização, use JPress para criar sites facilmente em qualquer idioma.
Função de SEO minimalista, você pode definir o SEO separadamente para cada artigo, cada categoria e cada tag, e oferecer suporte à saída do mapa do site.
O registro do usuário suporta verificação de e-mail e SMS Atualmente, os provedores de serviços de SMS oferecem suporte apenas ao Alibaba Dayu.
Suporta configurações de CDN, incluindo Qiniu, Alibaba Cloud, Youpai Cloud, etc.
As imagens carregadas suportam configurações de marca d'água e as imagens carregadas são automaticamente cortadas em vários tamanhos de imagem exigidos pelo modelo para garantir que a exibição da imagem não seja esticada.
O login do usuário suporta login de terceiros e suporta QQ, WeChat, Weibo, Open Source China, Github, Facebook, Twitter e LinkedIn (atualmente apenas o login em QQ, WeChat, Weibo, Open Source China e Github está concluído).
JPress no WeChatSuporte às configurações do menu WeChat.
Suporta respostas automáticas, adicionando palavras-chave e conteúdo de resposta.
Suporta respostas padrão, incluindo: quando o usuário presta atenção, ao entrar no atendimento multicliente, ao sair do atendimento multicliente, ao enviar fotos, ao enviar voz, ao enviar vídeo, ao enviar localização, ao enviar conexão, quando o usuário digitaliza o código QR com parâmetros, quando o usuário treme.
Todas as respostas automáticas ou respostas padrão suportam a função "resposta avançada", como responder a um artigo, responder a um URL... Respostas avançadas são respostas especiais integradas ao JPress, mas são totalmente configuráveis, e mais "respostas avançadas" serão adicionado na função futura.
A resposta automática ou resposta padrão suporta resposta de plug-in e chama o plug-in JPress para concluir a resposta.
Suporta pesquisa de artigos. Responder a palavras-chave retornará artigos correspondentes a palavras-chave.
No futuro, serão suportadas funções práticas como sincronização de artigos ou importação de WeChat.
JPress no lado técnicoUsando orgulhosamente o JFinal como núcleo, o JPress também se beneficia da arquitetura flexível do JFinal. No sistema de código aberto JFinalframework, o JPress se preocupa com a implementação de cada linha de lógica e se preocupa com a qualidade de cada linha de código. Deve estar entre as melhores práticas do JFinal, por isso também deve ser um item de leitura obrigatória. cada JFinaler.
Use Freemarker e thymeleaf como motores de modelo. O cache exclusivo integrado ao JPress torna a velocidade de renderização da IU independente do mecanismo de modelo.
Tinymce é usado como editor visual e simplemde é usado como editor de markdown. Os dois podem ser alternados livremente em segundo plano.
O plug-in de UI para upload de arquivos e imagens usa o uploader fino.
No front-end, o JPress usa jquery, bootstrap, adminlte, font-awesome, x-editable, fastclick, toastr, tag-editor, pace, layer, etc.
Em termos de segurança, embora eu pessoalmente tenha feito muitos esforços e trabalhado muito em XSS, CSRF, injeção de SQL, segurança de cookies, etc., ainda são necessárias mais pessoas para cavar e melhorar juntos. A segurança é uma eternidade. tópico. (Mas para amigos novatos, vale a pena aprender e compreender essas seguranças, certo?)
Para suportar a implantação distribuída, o JPress reescreve o HttpSession e usa o ehcache para implementar a função de sessão. Ao mesmo tempo, o projeto depende muito de cookies, portanto, não há pressão na arquitetura distribuída.
JPress tem os seguintes recursos1. Luz.
É tão leve quanto apenas 8 tabelas de dados, mas pode realizar quase todas as funções do wordpress. Os pacotes jar dependentes também são extremamente leves. Atualmente, existem apenas cos-26Dec2008.jar, druid-1.0.16.jar, ehcache-2.7.5.jar, fastjson-1.2.7.jar, freemarker-2.3.23. jar e javax.jar, jfinal-2.2-bin-with-src.jar, jfinal-weixin-1.7-bin-with-src.jar, jsoup-1.8.3.jar, log4j-1.2.17.jar , mysql-connector- 14 pacotes jar: java-5.1.36.jar, slf4j-api-1.7.7.jar, slf4j-log4j12-1.7.7.jar, jetty-server-8.1.8.jar, entre os quais jetty -server-8.1 .8.jar não é necessário e é usado apenas para facilitar a depuração.
O projeto inteiro, incluindo o pacote jar, tem cerca de 20 MB.
2. Rápido.
Não importa quão complexa seja a página, o JPress responde em quase 10 milissegundos. Ao mesmo tempo, o JPress suporta Alibaba Cloud, Qiniu, Youpaiyun e outros CDNs como aceleração e suporta implantação distribuída e outras funções. Kong, só pode ser usado com "rápido" para descrever.
3. Flexível.
JPress propõe o conceito de "modelo como modelo". Os produtores de modelos podem usar o JPress para construir blogs, sistemas de notícias, fóruns, comunidades de perguntas e respostas, shopping centers... além de sua função de plug-in flexível, ele pode ser usado para construir quase qualquer tipo. do site.
4. Doméstico.
Por ser fabricado na China, está mais de acordo com as necessidades do povo chinês. O JPress é naturalmente integrado à conta pública do WeChat. O JPress possui a função de envio de SMS integrada do Alibaba Big Fish e suporta caixa de correio QQ, caixa de correio 163, etc., como servidores de envio de correio. ser adicionadas e outras funções que estejam mais de acordo com as necessidades do povo chinês.
O mais importante é
O JPress usa a licença de código aberto LGPL mais flexível, que não está no mesmo nível dos produtos domésticos de "código aberto" que usam licenças privadas.
Registro de atualização do jpressv4.0.9:
Novo: Adicionada a função de enviar vídeos para editores de artigos
Novo: Adicionada API html2wxml e sua documentação
Otimização: atualize artigos, produtos, APIs de páginas e documentação
Otimização: melhore APIs relacionadas a produtos, carrinhos de compras e cupons
Correção: o título e o negrito do editor do artigo são inválidos.
Correção: Após importar o JPress para o Eclipse, o caminho do recurso obtido estava errado em alguns casos.
Reparo: Menu.isUrlEquals pode ser determinado incorretamente no diretório secundário
Correção: os usuários do miniprograma não podem obter informações de opções quando não estão logados e as informações do prompt estão incorretas.
Correção: depois de desligar o código de verificação, a caixa de entrada do código de verificação de login em segundo plano não é exibida.
Exibição da página JPress