# Manos

# onNoteStored

# Parámetros y llamada al método

/**
  * Esta función se llama cuando una nota se almacena en el disco
  * No puede modificar las notas almacenadas, eso sería un desastre ya que
  * lo más probable es que los esté editando a mano al mismo tiempo
  *
  * @param {NoteApi} nota: el objeto de nota de la nota almacenada
  */
función onNoteStored (nota);
1
2
3
4
5
6
7
8

Es posible que desee echar un vistazo al ejemplo on-note-open.qml (opens new window).

# noteOpenedHook

# Parámetros y llamada al método

/**
  * Esta función se llama después de que se abrió una nota
  *
  * @param {NoteApi} note: el objeto de nota que se abrió
 */
function noteOpenedHook(note);
1
2
3
4
5
6

Es posible que desee echar un vistazo al ejemplo on-note-open.qml (opens new window).

# noteDoubleClickedHook

# Parámetros y llamada al método

/**
  * Esta función se llama después de hacer doble clic en una nota
  *
  * @param {NoteApi} nota: el objeto de nota en el que se hizo clic
  */
function noteDoubleClickedHook(note);
1
2
3
4
5
6

Es posible que desee echar un vistazo al ejemplo external-note-open.qml (opens new window).

# insertMediaHook

Esta función se llama cuando se inserta un archivo multimedia en la nota actual.

Si esta función se define en varios scripts, entonces gana el primer script que devuelve una cadena no vacía.

# Parámetros y llamada al método

/**
  * @param fileName cadena la ruta del archivo de medios de origen antes de que se copiara a la carpeta de medios
  * @param markdownText cadena el texto de la rebaja del archivo multimedia, p. ej. ! [mi-imagen] (media / mi-imagen-4101461585.jpg)
  * @ return string el nuevo texto de rebaja del archivo multimedia
  */
function insertMediaHook (fileName, markdownText);
1
2
3
4
5
6

Es posible que desee echar un vistazo al ejemplo example.qml (opens new window).

# insertAttachmentHook

Esta función se llama cuando se inserta un archivo adjunto en la nota actual.

Si esta función se define en varios scripts, entonces gana el primer script que devuelve una cadena no vacía.

# Parámetros y llamada al método

/**
  * @param fileName cadena la ruta del archivo adjunto de origen antes de que se copiara a la carpeta de adjuntos
  * @param markdownText cadena el texto de la rebaja del archivo adjunto, p. ej. [mi-archivo.txt] (adjuntos / mi-archivo-4245650967.txt)
  * @return cadena el nuevo texto de rebaja del archivo adjunto
  */
function insertAttachmentHook (fileName, markdownText);
1
2
3
4
5
6

Es posible que desee echar un vistazo al ejemplo ejemplo.qml (opens new window).

# insertingFromMimeDataHook

# Parámetros y llamada al método

/**
  * Esta función se llama cuando se pega html o un archivo multimedia en una nota con `Ctrl + Shift + V`
  *
  * @param texto texto del objeto QMimeData
  * @param html html del objeto QMimeData
  * @ devuelve la cadena que se debe insertar en lugar del texto del objeto QMimeData
 */
function insertingFromMimeDataHook(text, html);

1
2
3
4
5
6
7
8
9

Es posible que desee echar un vistazo al ejemplo ejemplo.qml (opens new window), insertar-título-con-enlace-de-github-url.qml (opens new window) o note-text-from-5pm-mail.qml (opens new window).

# handleNoteTextFileNameHook

# Parámetros y llamada al método

/**
  * Esta función se llama cuando una nota se almacena en el disco si
  * "Permitir que el nombre del archivo de nota sea diferente del título" está habilitado
  * en la configuración
  *
  * Te permite modificar el nombre del archivo de notas
  * ¡Tenga en cuenta que usted mismo debe preocuparse por los nombres duplicados!
 *
  * Devuelve una cadena vacía si el nombre del archivo de la nota debe
  * no modificarse
*
  * @param {NoteApi} nota: el objeto de nota de la nota almacenada
  * @return {string} el nombre del archivo de la nota
  */
function handleNoteTextFileNameHook (nota);
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15

Es posible que desee echar un vistazo al ejemplo ejemplo.qml (opens new window) o use-tag-names-in-filename.qml (opens new window).

# handleNoteNameHook

# Parámetros y llamada al método

/**
  * Esta función se llama cuando se determina el nombre de la nota para una nota
  *
  * Te permite modificar el nombre de la nota que se visualiza
  *
  * Devuelve una cadena vacía si el nombre de la nota no debe modificarse
  *
  * @param {NoteApi} nota: el objeto de nota de la nota almacenada
  * @return {string} el nombre de la nota
  */
function handleNoteNameHook(note);
1
2
3
4
5
6
7
8
9
10
11

Es posible que desee echar un vistazo al ejemplo example.qml (opens new window).

Puede que no sea una buena idea usar este gancho si la configuración para usar el nombre de archivo como nombre de nota está activa.

# handleNewNoteHeadlineHook

# Parámetros y llamada al método

/**
  * Esta función se llama antes de crear una nota.
  *
  * Te permite modificar el título de la nota antes de que se cree
  * Tenga en cuenta que debe tener cuidado con un nombre de nota único, de lo contrario
  * la nueva nota no se creará, solo se encontrará en la lista de notas
  *
  * Puede utilizar este método para crear plantillas de notas
  *
  * @param texto del título que se usaría para crear el título
  * @ return {string} el título de la nota
  */
function handleNewNoteHeadlineHook(headline);
1
2
3
4
5
6
7
8
9
10
11
12
13

Es posible que desee echar un vistazo al ejemplo título-nuevo-de-nota-personalizado.qml (opens new window).

# preNoteToMarkdownHtmlHook

# Parámetros y llamada al método

/**
  * Esta función se llama antes de que se genere el html de descuento de una nota
  *
  * Le permite modificar lo que se pasa al convertidor de rebajas a html
  *
  * El método se puede usar, por ejemplo, en múltiples scripts para renderizar código (como matemáticas LaTeX o sirena)
  * a su representación gráfica para la vista previa
  *
  * La nota no se modificará en este proceso
  *
  * @param {NoteApi} nota: el objeto de nota
  * @param {string} markdown: el descuento que está a punto de convertirse a html
  * @param {string} forExport: verdadero si el html se utiliza para una exportación, falso para la vista previa
  * @return {string} la rebaja modificada o una cadena vacía si no se debe modificar nada
  */
function preNoteToMarkdownHtmlHook(note, markdown, forExport);
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16

Es posible que desee echar un vistazo al ejemplo preview-styling.qml (opens new window).

# noteToMarkdownHtmlHook

# Parámetros y llamada al método

/**
  * Esta función se llama cuando se genera el html de descuento de una nota
  *
  * Te permite modificar este html
  * Esto es, por ejemplo, llamado antes por la vista previa de la nota
  *
  * El método se puede utilizar en varios scripts para modificar el html de la vista previa
  *
  * @param {NoteApi} nota: el objeto de nota
  * @param {string} html - el html que está a punto de ser renderizado
  * @param {string} forExport: verdadero si el html se utiliza para una exportación, falso para la vista previa
  * @return {string} el html modificado o una cadena vacía si no se debe modificar nada
  */
función noteToMarkdownHtmlHook (nota, html, para exportación);
1
2
3
4
5
6
7
8
9
10
11
12
13
14

Es posible que desee echar un vistazo al ejemplo ejemplo.qml (opens new window) o preview-styling.qml (opens new window).

Consulte el HTML compatible. Documentación del subconjunto (opens new window) para obtener una lista de todos los estilos CSS admitidos.

# encryptionHook

# Parámetros y llamada al método

/**
  * Esta función se llama cuando el texto debe cifrarse o descifrarse
  *
  * @param text cadena el texto para cifrar o descifrar
  * @param contraseña cadena la contraseña
  * @param decrypt bool si se exige un cifrado falso, si se exige un descifrado verdadero
  * @return el texto descifrado cifrado
  */
function encryptionHook(text, password, decrypt);
1
2
3
4
5
6
7
8
9

Es posible que desee echar un vistazo al ejemplo encryption-keybase.qml (opens new window), encryption-pgp.qml (opens new window) or encryption-rot13.qml (opens new window).

# noteTaggingHook

Puede implementar su propio mecanismo de etiquetado de notas, por ejemplo, con texto especial en su nota como @tag1, @tag2, @tag3.

# Parámetros y llamada al método

/**
  * Maneja el etiquetado de notas para una nota
  *
  * Esta función se llama cuando las etiquetas se agregan, eliminan o renombran en
  * debe incluirse una nota o las etiquetas de una nota
  *
  * @param nota
  * La acción @param puede ser "agregar", "eliminar", "renombrar" o "listar"
  * @param tagName nombre de la etiqueta que se agregará, eliminará o cambiará de nombre
  * @param newTagName nombre de la etiqueta a la que se le cambiará el nombre si action = "rename"
  * @return nota cadena de texto o lista de cadenas de nombres de etiquetas (si acción = "lista")
  */
function noteTaggingHook(note, action, tagName, newTagName);
1
2
3
4
5
6
7
8
9
10
11
12
13
  • tan pronto como se active un script que implemente la nueva función noteTaggingHook el etiquetado de notas será manejado por esa función
  • las siguientes funciones deberían funcionar a través de la interfaz de usuario de QOwnNotes
    • inicialmente importando etiquetas como @tag de sus notas y sobrescribiendo su asignación de etiqueta actual
      • no perderá su árbol de etiquetas, solo la asignación anterior a las notas
      • aún puede mover etiquetas a otras etiquetas
      • si más de una etiqueta tiene el mismo nombre en su árbol de etiquetas, se asignará el primer resultado
    • agregar una etiqueta a una nota agregará la etiqueta al texto de la nota
    • eliminar una etiqueta de una nota eliminará la etiqueta del texto de la nota
    • la eliminación de etiquetas en la lista de etiquetas eliminará esas etiquetas de sus notas
    • el cambio de nombre de las etiquetas en la lista de etiquetas cambiará el nombre de esas etiquetas en su notas
    • el etiquetado masivo de notas en la lista de notas agregará esas etiquetas a sus notas
    • la eliminación masiva de etiquetas de notas en la lista de notas eliminará esas etiquetas de sus notas
    • la aplicación activará una serie de acciones agregar y eliminar para todas las etiquetas seleccionadas y sus hijos en todas las notas si las etiquetas se mueven en el panel de etiquetas

Es posible que desee echar un vistazo al ejemplo note-tagging.qml (opens new window) para implementar su propio mecanismo de etiquetado.

WARNING

Asegúrese de que su acción list sea realmente rápida, ¡porque se ejecutará para cada nota cada vez que se recargue la carpeta de notas!

# noteTaggingByObjectHook

De manera similar a noteTaggingHook, puede implementar su propio mecanismo de etiquetado de notas, pero no está obligado a etiquetar nombres en la raíz del árbol de etiquetas. De esta forma, puede utilizar todo el árbol de etiquetas en lugar de solo una lista de etiquetas.

Con noteTaggingByObjectHook obtienes un objeto TagApi como parámetro, en lugar de un nombre de etiqueta. Y como resultado de la acción list, debe proporcionar una lista de identificadores de etiquetas.

Esto también significa que debe crear usted mismo las etiquetas faltantes para poder proporcionar una lista de los identificadores de etiquetas ya existentes para la acción list.

# Parámetros y llamada al método

/**
  * Maneja el etiquetado de notas para una nota
  *
  * Esta función se llama cuando las etiquetas se agregan, eliminan o renombran en
  * debe incluirse una nota o las etiquetas de una nota
  *
  * @param nota
  * La acción @param puede ser "agregar", "eliminar", "renombrar" o "listar"
  * Etiqueta @param para agregar, eliminar o renombrar
  * @param newTagName nombre de la etiqueta a la que se le cambiará el nombre si action = "rename"
  * @return nota cadena de texto o lista de cadenas de identificadores de etiquetas (si acción = "lista")
  */
function noteTaggingByObjectHook(note, action, tag, newTagName);
1
2
3
4
5
6
7
8
9
10
11
12
13

Es posible que desee echar un vistazo al ejemplo etiquetado-de-notas-por-objeto.qml (opens new window) para implementar su propio mecanismo de etiquetado.

# autocompletionHook

Puede devolver una lista de cadenas para agregar a la lista de autocompletar cuando se invoca el autocompletado (por ejemplo, presionando Ctrl + Espacio).

# Parámetros y llamada al método

/**
  * Llama a la función autocompletionHook para todos los componentes del script
  * Esta función se llama cuando se invoca el autocompletado en una nota
  *
  * @return QStringList of text for the autocomplete list
  */
function callAutocompletionHook();
1
2
3
4
5
6
7

Es posible que desee echar un vistazo al ejemplo autocompletado.qml (opens new window).

# websocketRawDataHook

Este enlace se llama cuando se envían datos desde la extensión del navegador QOwnNotes Web Companion a través del menú contextual del navegador web.

# Parámetros y llamada al método

/**
  * @param requestType puede ser "página" o "selección"
  * @param pageUrl la URL de la página web donde se realizó la solicitud
  * @param pageTitle el título de la página web donde se realizó la solicitud
  * @param rawData los datos que se transmitieron, html para requestType "página" o texto sin formato para requestType "selección"
  * @param screenshotDataUrl la URL de datos de la captura de pantalla si la página web donde se realizó la solicitud
  * @return verdadero si los datos fueron manejados por un gancho
 */
function callHandleWebsocketRawDataHook(requestType, pageUrl, pageTitle, rawData, screenshotDataUrl);
1
2
3
4
5
6
7
8
9

Es posible que desee echar un vistazo a los ejemplos websocket-raw-data-new-note.qml (opens new window) y websocket-raw-data-selection-in-note.qml (opens new window).

# onDetachedProcessCallback

Este gancho se llama cuando un hilo de script de startDetachedProcess termina de ejecutarse.

# Parámetros y llamada al método

/**
  * Esta función se llama cuando se termina de ejecutar un hilo de script.
 * Sugerencia: thread[1]==0 ayuda a determinar si se realiza una gran parte de los procesos iniciados para un determinado identificador.
 *
  * @param {QString} callbackIdentifier: la identificación proporcionada al llamar a startDetachedProcess ()
  * @param {QString} resultSet - el resultado del proceso
  * @param {QVariantList} cmd: la matriz de comandos completa [0-ejecutablePath, 1-parameters, 2-exitCode]
  * @param {QVariantList} hilo: la matriz de información del hilo [0-pass callbackParameter, 1-hilos restantes para este identificador]
 */
function onDetachedProcessCallback(callbackIdentifier, resultSet, cmd, thread);
1
2
3
4
5
6
7
8
9
10

Es posible que desee echar un vistazo al ejemplo callback-example.qml (opens new window).

# windowStateChangedHook

# Parámetros y llamada al método

/**
* Esta función se llama después de que se activara un evento WindowStateChange
  *
  * @param {QString} windowState: el nuevo estado de la ventana, el valor del parámetro puede ser "minimizado", "maximizado", "pantalla completa", "activo" o "nostate"
  */
function windowStateChangedHook (windowState);
1
2
3
4
5
6

Es posible que desee echar un vistazo al ejemplo window-state-changed.qml (opens new window).