J'aime écrire sur Geektimes , mais il y a un inconvénient. C'est la nécessité d'utiliser un balisage personnalisé dans le style d'habra et de transférer manuellement les images vers habrastorage.org . J'écris des articles dans MS Word sous Windows . Honnêtement, j'ai passé environ une heure pour trouver des solutions toutes faites à ce problème. La meilleure découverte a été une analyse de l'API habrastorage pour automatiser le chargement des images, mais elle semble obsolète. Il y avait une mention d'un certain convertisseur, mais avec un lien cassé.L'essence de l'automatisation proposée est de préparer le texte à être copié dans la fenêtre de l' éditeur Geektimes en cliquant sur un bouton dans Word . Et après la copie, pour que les images y apparaissent automatiquement. La technologie est très simple. MS Word , comme vous le savez, peut contenir du code incorporé dans Visual Basic . Il s'agit d'un dialecte spécial Visual Basic appelé VBA ( Visual Basic pour Applications.) Dans VBA, vous pouvez écrire des scripts assez complexes pour convertir des documents en Word. Les procédures écrites en VBA sont appelées macros. Les macros dans Word peuvent être appelées explicitement à partir d'un menu spécial, ou vous pouvez affecter un appel à leur exécution à un bouton spécifique de la barre d'outils.Photos Geektimes il se pompe . Pour qu'il puisse télécharger quelque part, il doit placer les photos quelque part sur Internet. Afin de ne pas perdre mon temps à développer et analyser diverses API pour des sites d'hébergement d'images gratuits comme photos.google.com, j'ai décidé de me tourner vers le bon vieux FTP . Nous achetons ou recevons de quelque manière que ce soit un service d'hébergement de site Web avec téléchargement de contenu FTP . Sam MS Word VBAIl ne dispose pas d'outils pour travailler avec FTP , mais il interagit bien avec les objets COM (c'est-à-dire les fichiers DLL spéciaux ). Pour travailler sur FTP , un module COM du projet WinSCP a été utilisé .La macro VBA écrite par moi remplace d'abord les styles spécifiés du document Word par le balisage du texte, puis convertit le document Word en un document HTML . La représentation HTML elle - même n'est pas nécessaire pour nous. À la suite de la conversion, Word crée un sous-répertoire avec toutes les images du document au format. png. Les images en vrac sont transférées vers un serveur FTP donné . Après cela, la macro supprime les images du document et remplace à leur place les liens vers le site où ces images viennent d'être téléchargées. Il reste dans la fenêtre du document Word pour sélectionner tout le texte et le copier dans la fenêtre de l'éditeur dans Geektimes . Cliquez sur un bouton dans Geektimes pour l'enregistrer en tant que brouillon. Ensuite, cliquez à nouveau sur l'édition et assurez-vous que Geektimes a déjà téléchargé les images et les a remplacées par des liens vers habrastorage . Le travail est terminé.Installez WinSCP
Téléchargez le fichier . Bibliothèque NET assembly / COM et décompressez-la dans un répertoire accessible.Dans ce répertoire, exécutez la ligne de commande: % WINDIR% \ Microsoft.NET \ Framework64 \ v4.0.30319 \ RegAsm.exe WinSCPnet.dll / codebase /tlb:WinSCPnet64.tlbC'est tout.Comment créer un article sur cette technologie.
Pour simplifier les choses, un fichier modèle , Article_GT.dotm , a été créé qui contient la macro VBA nécessaire et un pointeur pour se connecter à l'objet WinSCP .Pour consulter la macro et vérifier l'opérabilité de connexion de l'objet WinSCP , après avoir ouvert le fichier modèle, cliquez sur ce bouton dans la barre d'outils Word
et sélectionnez Afficher les macros dedans , puis Modifier . Une fenêtre de ce type devrait apparaître:
Dans cette fenêtre, dans le menu Outils-> Références , cette boîte de dialogue s'ouvre. Il doit être marqué en ligne avec WinSCP .
Si vous ouvrez le fichier directement dans Googlealors une feuille vierge s'ouvrira. C'est vrai, le modèle est vide. Dans ce document, seuls le style Normal et le style Titre 1 ressemblent au style habr. Vous devez écrire le texte vous-même.La macro dans le modèle doit être ajustée avant utilisation. Au début de la macro est un tel blocConst TMPNAME = "TMP" '
Const URL = "http://www..ru"
Const FTPPATH = "/public_html/imgs/" ' FTP,
Const WEBPATH = "/imgs/" ' ,
Const HOSTNMAE = "ftp..ru" ' FTP
Const USERNAME = " " ' FTP
Const PASSWORD = " " '
Vous devez ouvrir le fichier en tant que modèle dans Word , entrer les paramètres corrects et enregistrer en tant que modèle.Ensuite, vous pouvez cliquer sur le modèle et écrire un article. Enregistrez l'article et appelez la macro ConvertToHabr .Si le téléchargement des images s'est bien passé, cela sera écrit dans la barre d'état de la fenêtre Word .Le document initial se ferme, à sa place le texte converti apparaît.Clause de non-responsabilité
Ce n'est pas un convertisseur entièrement fonctionnel. Désormais, il remplace uniquement les styles des polices Gras et Italique par les balises Haber, modifie les styles Titre 1 à 5 par les balises et les remplace par des hyperliens et des images. Puisque c'est tout ce dont j'avais besoin de ce convertisseur lors de l'écriture de cet article.Le fichier modèle est disponible ici et est accessible à tous pour amélioration, mais je ne peux pas garantir la poursuite de ce projet, son support, sa qualité, sa pureté patente et la vie éternelle de ce lien .