Vous vous souvenez de "The Word Editor" !? Voici le script responsable qui implémente ses fonctionnalités de bout en bout qui permettent d'écrire des modifications via l'interface utilisateur dans le référentiel forké d'un utilisateur.
La répartition fonctionnelle
L'éditeur Word habilité par le script doit remplir deux (2) fonctions, en suivant certaines étapes
- Écrire un nouveau mot - essentiellement pour ajouter un nouveau mot au dictionnaire ; le fait dans les étapes suivantes...
- Obtenez un fichier de modèle Word (.md) déjà établi
- Remplissez l'espace réservé du modèle avec le titre et le contenu des mots collectés pour créer un fichier word.mdx dans le répertoire de mots approprié src/pages/browse
- et validez la modification dans une branche/référence de modification établie sur le référentiel forké de l'utilisateur
- Modifier/Mettre à jour les mots existants - modifiez le mot existant dans le dictionnaire, il le fait dans les étapes suivantes...
- Récupérez un mot existant à partir du fork de l'utilisateur de jargons.dev (en recherchant dans le répertoire de mots src/pages/browse)
- Analyser son contenu et apporter les modifications nécessaires
- et et validez la modification dans une branche/référence de modification établie sur le référentiel forké de l'utilisateur
La répartition a inspiré la création des fonctions d'assistance et utilitaires suivantes.
- writeNewWord - une fonction qui accepte entre autres le titre et le contenu du mot, en exploitant l'instance authentifiée GitHub de l'utilisateur, elle effectue une opération d'écriture, c'est-à-dire l'écriture d'un nouveau fichier (word.mdx) dans un fork de jargons.dev sur le compte de l'utilisateur en son nom via le point de terminaison "PUT /repos/{owner}/{repo}/contents/{path}".
-
getExistingWord - une fonction qui récupère simplement le contenu d'un fichier Word existant sur le référentiel forké de l'utilisateur, dans le but de l'utiliser pour le modifier. Pour ce faire, il prend le mot comme argument et le concatène dans le paramètre de chemin (exemple src/pages/browse/${normalizeAsUrl(word)}.mdx) de la requête qu'il adresse au point de terminaison "GET /repos/{owner} /{dépôt}/contents/{chemin}" ; Il est important de préciser que j'ai dû faire quelques ajustements aux données renvoyées par cette aide pour des raisons de consommation, les ajustements sont les suivants
- Propriété title ajoutée : l'objet réponse.data qui provient de la requête vers le point de terminaison "GET /repos/{owner}/{repo}/contents/{path}" n'a pas de propriété title (c'est la mot lui-même);
-
Ajout de la propriété content_decoded : la propriété Response.data.content contient le contenu principal du mot récupéré, MAIS il est au format "base64" ; j'ai donc pensé que ce serait bien si la fonctionnalité l'utilise dans un format prêt à la consommation qui peut être utilisé immédiatement sans avoir besoin de convertir au moment de la consommation. C'est ce que j'ai fait avec le code ci-dessous...
const { content, ...responseData } = response.data; return { title: word, content, content_decoded: Buffer.from(content, "base64").toString("utf-8"), ...responseData };
updateExistingWord - avec un nom initial de editExistingWord et changé en nom actuel dans jargonsdev/jargons.dev#34, cette fonction effectue une opération similaire avec writeNewWord mais elle écrase le contenu du mot existant dans un fichier spécifique en remplaçant le fichier avec un autre fichier avec un contenu mis à jour. Cela se fait également via le compte de l'utilisateur en son nom via le point de terminaison "PUT /repos/{owner}/{repo}/contents/{path}".
writeFileContent - cet assistant, comme son nom l'indique, fait une chose : il écrit le contenu du fichier pour les mots qui est soumis dans les requêtes faites à la fois par writeNewWord et updateExistingWord à l'API GitHub, il le fait en prenant un titre de mot et contenu (c'est-à-dire la définition du mot) en tant que variable et génère un contenu à partir d'un modèle qui en remplace le contenu de l'espace réservé.
Les relations publiques
exploit : implémenter le script `word-editor`
#18
Cette Pull request implémente le script de l'éditeur de mots ; la fonctionnalité principale de ce script est de permettre l'ajout d'un nouveau mot, la récupération et la mise à jour de mots existants qui sont des fichiers .mdx individuels résidant dans le répertoire src/pages/browse du projet. Ce script nous profite de toutes les fonctions d'assistance nécessaires pour effectuer ces opérations.
Modifications apportées
- Implémentation de la fonction writeNewWord - cette fonction prend 3 paramètres à savoir le userOctokit, forkedRepoDetails et le mot ; il exploite l'instance userOctokit pour effectuer une opération d'écriture, c'est-à-dire écrire un nouveau fichier (newWord.mdx) dans un fork de notre projet sur le compte de l'utilisateur au nom de l'utilisateur via le "PUT /repos/{owner}/{repo}/ contents/{path}" point de terminaison
- Implémentation de la fonction getExistingWord - cette fonction permet de récupérer les données des mots existants dans le fork de notre projet sur le compte de l'utilisateur en appelant le point de terminaison "GET /repos/{owner}/{repo}/contents/{path}" ; il renvoie un objet qui porte les propriétés suivantes qui nous intéressent principalement...
- titre - titre du mot existant - il s'agit en fait de données personnalisées ajoutées à la réponse.données de l'appel effectué vers le point de terminaison
- chemin - chemin d'accès au fichier Word existant
- sha - SHA unique du mot existant
- Implémentation de la fonction editExistingWord - cette fonction prend 3 paramètres à savoir le userOctokit, forkedRepoDetails et le mot (contient les propriétés : chemin, sha, titre et contenu) ; il exploite l'instance userOctokit pour effectuer une opération d'édition, c'est-à-dire mettre à jour le fichier existant sur un fork de notre projet sur le compte de l'utilisateur au nom de l'utilisateur via le même "PUT /repos/{owner}/{repo}/contents/{path} "point de terminaison
- Fonction d'assistance writeFileContent implémentée - cette fonction aide à écrire un contenu pour notre fichier de mots de dictionnaire en le générant à partir d'une autre constante ajoutée dans le src/lib/template/word.md.js
Diffusion d'écran/Capture d'écran
trop paresseux pour enregistrer un screencast pour celui-ci ?, mais croyez-moi ? ça marche ??
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Les applications de JavaScript dans le monde réel incluent la programmation côté serveur, le développement des applications mobiles et le contrôle de l'Internet des objets: 1. La programmation côté serveur est réalisée via Node.js, adaptée au traitement de demande élevé simultané. 2. Le développement d'applications mobiles est effectué par le reactnatif et prend en charge le déploiement multiplateforme. 3. Utilisé pour le contrôle des périphériques IoT via la bibliothèque Johnny-Five, adapté à l'interaction matérielle.

J'ai construit une application SAAS multi-locataire fonctionnelle (une application EdTech) avec votre outil technologique quotidien et vous pouvez faire de même. Premièrement, qu'est-ce qu'une application SaaS multi-locataire? Les applications saas multi-locataires vous permettent de servir plusieurs clients à partir d'un chant

Cet article démontre l'intégration frontale avec un backend sécurisé par permis, construisant une application fonctionnelle EdTech SaaS en utilisant Next.js. Le frontend récupère les autorisations des utilisateurs pour contrôler la visibilité de l'interface utilisateur et garantit que les demandes d'API adhèrent à la base de rôles

JavaScript est le langage central du développement Web moderne et est largement utilisé pour sa diversité et sa flexibilité. 1) Développement frontal: construire des pages Web dynamiques et des applications à une seule page via les opérations DOM et les cadres modernes (tels que React, Vue.js, Angular). 2) Développement côté serveur: Node.js utilise un modèle d'E / S non bloquant pour gérer une concurrence élevée et des applications en temps réel. 3) Développement des applications mobiles et de bureau: le développement de la plate-forme multiplateuse est réalisé par réact noral et électron pour améliorer l'efficacité du développement.

Les dernières tendances de JavaScript incluent la montée en puissance de TypeScript, la popularité des frameworks et bibliothèques modernes et l'application de WebAssembly. Les prospects futurs couvrent des systèmes de type plus puissants, le développement du JavaScript côté serveur, l'expansion de l'intelligence artificielle et de l'apprentissage automatique, et le potentiel de l'informatique IoT et Edge.

JavaScript est la pierre angulaire du développement Web moderne, et ses principales fonctions incluent la programmation axée sur les événements, la génération de contenu dynamique et la programmation asynchrone. 1) La programmation axée sur les événements permet aux pages Web de changer dynamiquement en fonction des opérations utilisateur. 2) La génération de contenu dynamique permet d'ajuster le contenu de la page en fonction des conditions. 3) La programmation asynchrone garantit que l'interface utilisateur n'est pas bloquée. JavaScript est largement utilisé dans l'interaction Web, les applications à une page et le développement côté serveur, améliorant considérablement la flexibilité de l'expérience utilisateur et du développement multiplateforme.

Python est plus adapté à la science des données et à l'apprentissage automatique, tandis que JavaScript est plus adapté au développement frontal et complet. 1. Python est connu pour sa syntaxe concise et son écosystème de bibliothèque riche, et convient à l'analyse des données et au développement Web. 2. JavaScript est le cœur du développement frontal. Node.js prend en charge la programmation côté serveur et convient au développement complet.

JavaScript ne nécessite pas d'installation car il est déjà intégré à des navigateurs modernes. Vous n'avez besoin que d'un éditeur de texte et d'un navigateur pour commencer. 1) Dans l'environnement du navigateur, exécutez-le en intégrant le fichier HTML via des balises. 2) Dans l'environnement Node.js, après avoir téléchargé et installé Node.js, exécutez le fichier JavaScript via la ligne de commande.


Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Télécharger la version Mac de l'éditeur Atom
L'éditeur open source le plus populaire

Listes Sec
SecLists est le compagnon ultime du testeur de sécurité. Il s'agit d'une collection de différents types de listes fréquemment utilisées lors des évaluations de sécurité, le tout en un seul endroit. SecLists contribue à rendre les tests de sécurité plus efficaces et productifs en fournissant facilement toutes les listes dont un testeur de sécurité pourrait avoir besoin. Les types de listes incluent les noms d'utilisateur, les mots de passe, les URL, les charges utiles floues, les modèles de données sensibles, les shells Web, etc. Le testeur peut simplement extraire ce référentiel sur une nouvelle machine de test et il aura accès à tous les types de listes dont il a besoin.

DVWA
Damn Vulnerable Web App (DVWA) est une application Web PHP/MySQL très vulnérable. Ses principaux objectifs sont d'aider les professionnels de la sécurité à tester leurs compétences et leurs outils dans un environnement juridique, d'aider les développeurs Web à mieux comprendre le processus de sécurisation des applications Web et d'aider les enseignants/étudiants à enseigner/apprendre dans un environnement de classe. Application Web sécurité. L'objectif de DVWA est de mettre en pratique certaines des vulnérabilités Web les plus courantes via une interface simple et directe, avec différents degrés de difficulté. Veuillez noter que ce logiciel

SublimeText3 Linux nouvelle version
Dernière version de SublimeText3 Linux

Version crackée d'EditPlus en chinois
Petite taille, coloration syntaxique, ne prend pas en charge la fonction d'invite de code