1. Versión del complemento html2wxml
https://gitee.com/qwqoffice/html2wxml
Notas sobre el uso de la aplicación
El servicio de análisis de la versión del complemento se QwqOffice
completa con y hay factores inestables. Si tiene altos requisitos de estabilidad, cree el servicio de análisis usted mismo o complete el análisis directamente en su propio servidor. No habrá respuesta a las preguntas sobre la versión del complemento que no se puede utilizar/analizar.
Efecto
Miniprograma de referencia Análisis de texto enriquecido https://github.com/icindy/wxParse
Versión portada de PHP resaltado.js https://github.com/scrivo/highlight.php
Analizador de Markdown escrito en PHP https://github.com/erusev/parsedown
manifestación
Escanee el código QR para abrir el subprograma de demostración
Uso del miniprograma
Demostraciones de tres versiones
Los códigos fuente de los miniprogramas utilizados en las tres versiones de demostraciones se encuentran todos en el directorio de demostración.
(1) Preparación de la versión del complemento
-
Abra el fondo de administración del mini programa, vaya a Configuración - Servicios de terceros, haga clic en Agregar complemento
-
Buscar
html2wxml
, seleccionar y agregar
-
Agregado exitosamente
-
Regrese al entorno de desarrollo del miniprograma, edite app.json y agregue la declaración del complemento. La última versión es 1.4.0
"plugins": {
"htmltowxml": {
"version": "1.4.0",
"provider": "wxa51b9c855ae38f3c"
}
}
- En el archivo de la página correspondiente
json
, como la página de inicioindex.json
, agregue una declaración utilizando el componente de complemento
"usingComponents": {
"htmltowxml": "plugin://htmltowxml/view"
}
La configuración básica ya está completa, el resto es cómo renderizarla y usarla en la página.
Debido a que la página escrita tiene muchos datos, también la marqué para todos, que es declarar datos vacíos para recibir su texto enriquecido. campo. El último
paso Simplemente renderícelo en la página y úselo
(2) Preparación de la versión del componente
-
Copie la carpeta completa
html2wxml-component
al directorio del subprograma -
En
json
el archivo de la página correspondiente, como la página de inicioindex.json
, agregue la declaración de uso del componente, preste atención a la ruta
"usingComponents": {
"htmltowxml": "path/to/html2wxml-component/html2wxml"
}
(3) Preparación de la versión de la plantilla
-
Copie la carpeta completa
html2wxml-template
al directorio del subprograma -
En el archivo js de la página correspondiente, como la página de inicio
index.js
, agregue una declaración de referencia y usehtml2wxml
el método para el enlace de datos, preste atención a la ruta, los parámetros son el nombre de los datos enlazados, los datos de texto enriquecido analizados y el actual. objeto de la página y el borde del contenedor y la pantalla Distancia unilateral
var html2wxml = require(‘path/to/html2wxml-template/html2wxml.js’);
html2wxml.html2wxml(‘article’, res.data, this, 5);
- En
wxml
el archivo de la página correspondiente, como la página de inicioindex.wxml
, agregue una declaración que haga referencia a la plantilla y use la plantilla, preste atención a la ruta y al nombre de los datos vinculados.
<import src="path/to/html2wxml-template/html2wxml.wxml" />
<template is="html2wxml" data="{
{wxmlData:article}}" />
- En
wxss
el archivo de la página correspondiente, como la página de inicioindex.wxss
oapp.wxss
, introduzca la hoja de estilo y su código favorito resaltando el estilo, preste atención a la ruta
@import "path/to/html2wxml-template/html2wxml.wxss";
@import "path/to/html2wxml-template/highlight-styles/darcula.wxss";
(4) Cómo utilizar los componentes (solo aplicable a la versión del complemento y a la versión del componente)
Nombre del Atributo | tipo | Valores predeterminados | ilustrar |
---|---|---|---|
texto | Cadena | nulo | Texto HTML o Markdown para renderizar |
json | Objeto | {} | Datos JSON analizados |
tipo | Cadena | HTML | Tipo de texto a renderizar, valores disponibles html , markdown ,md |
destacar | Booleano | verdadero | Si se debe realizar resaltado de código pre en texto interno |
resaltarEstilo | Cadena | Dárcula | pre Estilo de resaltado de código, valores disponibles default , darcula , dracula ,tomorrow |
resaltarIdiomas | Formación | ['html', 'js', 'css', 'php'] | pre Código que resalta el idioma de detección. |
linos | Booleano | verdadero | Ya sea para pre mostrar el número de línea agregado |
relleno | Número | 5 | html2wxml La distancia unilateral entre el componente y el borde de la pantalla, utilizada para la adaptación de la imagen. |
Soy fantasma | Cadena | nulo | Completar nombres de dominio en posibles rutas relativas de atributos img en etiquetassrc |
mostrarCargando | Booleano | verdadero | Ya sea para mostrar la animación de carga |
enlazarWxmlTagATap | Manipulador | Devolución de llamada al hacer clic a en la etiqueta |
Ejemplo
// 将Page中的content数据作为HTML格式渲染
<htmltowxml text="{
{content}}" bindWxmlTagATap="wxmlTagATap" ></htmltowxml>
// 禁用代码高亮功能
<htmltowxml text="{
{content}}" highlight="{
{false}}" bindWxmlTagATap="wxmlTagATap" ></htmltowxml>
// 禁用代码行号显示功能
<htmltowxml text="{
{content}}" linenums="{
{false}}" bindWxmlTagATap="wxmlTagATap" ></htmltowxml>
// 代码高亮样式改为tomorrow
<htmltowxml text="{
{content}}" highlightStyle="tomorrow" bindWxmlTagATap="wxmlTagATap" ></htmltowxml>
// 设置代码高亮检测语言 (最多6个,自行搭建服务不受限制)
<htmltowxml text="{
{content}}" highlightLanguages="{
{['html','js','php','css','cpp','ruby']}}" bindWxmlTagATap="wxmlTagATap" ></htmltowxml>
// 对HTML数据中的img标签的相对路径补全域名
<htmltowxml text="{
{content}}" imghost="https://www.qwqoffice.com" bindWxmlTagATap="wxmlTagATap" ></htmltowxml>
// 禁用加载中动画
<htmltowxml text="{
{content}}" showLoading="{
{false}}" bindWxmlTagATap="wxmlTagATap" ></htmltowxml>
// 将Page中的text数据作为Markdown格式渲染
<htmltowxml text="{
{text}}" type="md" bindWxmlTagATap="wxmlTagATap" ></htmltowxml>
// 直接渲染Page中的已经过解析的obj数据
<htmltowxml json="{
{obj}}" bindWxmlTagATap="wxmlTagATap" ></htmltowxml>
Uso del servidor
Para un uso específico, consulte: https://github.com/qwqoffice/html2wxml
QwqOffice realiza el análisis de texto enriquecido de forma predeterminada, existen factores inestables, puede crear el servicio de análisis usted mismo o introducir componentes de análisis en su proyecto.
-
Copie toda la
html2wxml-php
carpeta al directorio del proyecto. -
Importar archivos de clase
class.ToWXML.php
include( 'path/to/html2wxml-php/class.ToWXML.php' );
- Crear instancias
html2wxml
, analizar y generar resultados, ejemplo:
$towxml = new ToWXML();
$json = $towxml->towxml( '<h1>H1标题</h1>', array(
'type' => 'html',
'highlight' => true,
'linenums' => true,
'imghost' => null,
'encode' => false,
'highlight_languages' => array( 'html', 'js', 'php', 'css' )
) );
echo json_encode( $json, JSON_UNESCAPED_UNICODE );
Introducción de parámetros
nombre del parámetro | tipo | Valores predeterminados | ilustrar |
---|---|---|---|
texto | Cadena | Texto HTML o Markdown para renderizar | |
argumentos | Formación | [] | parámetros adicionales |
introducción al parámetro args
nombre del parámetro | tipo | Valores predeterminados | ilustrar |
---|---|---|---|
tipo | Cadena | HTML | Tipo de texto a renderizar, valores disponibles html , markdown ,md |
destacar | Booleano | verdadero | Si se debe realizar resaltado de código pre en texto interno |
idiomas_destacados | Formación | ['html', 'js', 'css', 'php'] | pre El resaltado de código detecta idiomas. Ver idiomas disponibles |
linos | Booleano | verdadero | Ya sea para pre mostrar el número de línea agregado |
Soy fantasma | Cadena | nulo | Completar nombres de dominio en posibles rutas relativas de atributos img en etiquetassrc |
codificar | Booleano | verdadero | Ya sea para codificar JSON los resultados |
2. remolquexml
https://gitcode.net/mirrors/sbfkcel/towxml
https://github.com/sbfkcel/towxml
Towxml es una biblioteca de renderizado que puede convertir HTML y rebajas a WXML (WeiXin Markup Language).
Dado que el miniprograma WeChat no puede representar HTML directamente, el contenido HTML generado por el editor de texto enriquecido no se puede mostrar directamente en el miniprograma.
Posiblemente por razones de seguridad, incluso el texto WXML se representa como una cadena en el subprograma.
Entonces...
y...
así llegó Towxml.
característica
- Resaltado de sintaxis de código de soporte
- Fácil de usar
- Soporte dinámico multitema
- Optimización definitiva de la tipografía china
Comience rápidamente
- Clonar TOWXML al directorio raíz del mini programa
git clone https://github.com/sbfkcel/towxml.git
- Introduce la biblioteca en el mini programa app.js.
//app.js
const Towxml = require('/towxml/main'); //引入towxml库
App({
onLaunch: function () {
},
towxml:new Towxml() //创建towxml对象,供小程序页面使用
})
- Introducir plantillas en archivos de páginas de mini programas
<!--pages/index.wxml-->
<!--引入towxml模版入口文件,并使用模版-->
<import src="/towxml/entry.wxml"/>
<template is="entry" data="{
{...article}}"/>
- Solicitar datos en js correspondientes al mini programa.
//pages/index.js
const app = getApp();
Page({
data: {
//article将用来存储towxml数据
article:{
}
},
onLoad: function () {
const _ts = this;
//请求markdown文件,并转换为内容
wx.request({
url: 'http://xxx/doc.md',
header: {
'content-type': 'application/x-www-form-urlencoded'
},
success: (res) => {
//将markdown内容转换为towxml数据
let data = app.towxml.toJson(res.data,'markdown');
//设置文档显示主题,默认'light'
data.theme = 'dark';
//设置数据
_ts.setData({
article: data
});
}
});
}
})
- Introducir el WXSS correspondiente
/**pages/index.wxss**/
/**基础风格样式**/
@import '/towxml/style/main.wxss';
/**如果页面有动态主题切换,则需要将使用到的样式全部引入**/
/**主题配色(浅色样式)**/
@import '/towxml/style/theme/light.wxss';
/**主题配色(深色样式)**/
@import '/towxml/style/theme/dark.wxss';
Bien, ya terminaste~~
API
Si desea obtener la mejor experiencia, se recomienda colocar el proceso de conversión de Markdown y HTML en datos towxml en el servidor y solicitar los datos directamente en el subprograma.
- Depende del entorno
Requiere el entorno Node.js. (Ignore si ya está instalado)
- Instalar
towxml
npm install towxml
- Uso de la interfaz
const Towxml = require('towxml');
const towxml = new Towxml();
//Markdown转WXML
let wxml = towxml.md2wxml('# Article title');
//html转WXML
let wxml = towxml.html2wxml('<h1>Article title</h1>');
//Markdown转towxml数据
let data = towxml.toJson('# Article title','markdown');
//htm转towxml数据
let data = towxml.toJson('# Article title');
Ejemplo de demostración
- Se agregará
towxml/demo
como un mini proyecto de programa. - Clonar
towxml
aldemo
directorio - Simplemente compila usando mini herramientas de desarrollo de programas.