[PYTHON] Migrer les articles Qiita vers GitHub Pages + VuePress

J'ai lu l'article de @ mima_ita Migrer les articles Qiita vers GitHub --Qiita, et je veux aussi migrer, donc j'écrirai (?). Après récupération → Ceci est une histoire à publier sur Pages GitHub + VuePress. Comme le but est un peu différent de l'article original, PR n'est pas publié.

Le livrable est ici: perpouh / blog

Préparation de Vuepress

Je vais l'omettre car il existe déjà. Suivez les étapes dans Officiel.

Préparation de qiita_exporter

Veuillez vous référer à Migrer les articles Qiita vers GitHub. Lors de l'obtention du jeton d'accès, j'ai vérifié à la fois read_qiita et write_qiita. Je n'ai pas utilisé l'écriture.

De plus, le code d'origine ne fonctionnait pas dans mon environnement, donc au début du fichier

# -*- coding: utf-8 -*-
# %%

J'ai mis. Je me demande si cela dépend de l'environnement?

Modifier la destination d'enregistrement du fichier image

Je veux enregistrer l'image dans .vuepress / public / assets / img au lieu de ʻimage, alors réécrivez le chemin. L'affichage sera / blog / assets / img /` (selon les paramètres de vuepress) Je ne veux pas trop faire de code dur, mais je l'écris en me demandant si ce n'est pas un type de script que j'utilise plusieurs fois.

    if not os.path.exists(dst):
        os.mkdir(dst)
-   if not os.path.exists(dst + '/image'):
-       os.mkdir(dst + '/image')
def fix_image(dst_folder, line):
    """Modifiez le fichier image du serveur de Qiita pour afficher les fichiers dans votre référentiel."""
    images = re.findall(r'https://qiita-image-store.+?\.(?:png|gif|jpeg|jpg)', line)
    if not images:
        return line
    for url in images:
        name = url.split("/")[-1]
-        download(url, dst_folder + '/image/' + name)
+        download(url, dst_folder + '/../.vuepress/public/assets/img/' + name)
        ix = line.find(url)

-        line = line.replace(url, '/image/' + name)
+        line = line.replace(url, '/blog/assets/img/' + name)
    return line

Je voulais inclure le titre et la date dans le texte, j'ai donc ajouté ce qui suit.

    for i in items:
        text = fix_markdown(github_url, dst, i['body'], dict_title)
        with open(dst + '/' + i['title'] + '.md', 'w', encoding='utf-8') as md_file:
+           md_file.write("#" + i['title'] + "\n")
+           md_file.write("dernière mise à jour:" + datetime.strptime(i['updated_at'], '%Y-%m-%dT%H:%M:%S+09:00').strftime('%Y année%m mois%jour j') + "\n\n")
            md_file.write(text)

J'ai récupéré le fichier, alors j'ai essayé de le créer ici et j'ai confirmé qu'il semblait aller bien.

Créez un lien dans la barre latérale

Puisqu'il n'y a pas de ligne de flux vers l'article, je vais faire un lien. Je veux vraiment le faire avec une seule commande, mais ce type de copier-coller est-il acceptable?

import os
if __name__ == '__main__':
  filelist = os.listdir('../blog/qiita')
  for item in filelist:
    #3 derniers caractères(.md)Se débarrasser de
    print("['qiita/"+item[-4::-1][-1::-1]+"', '"+item[-4::-1][-1::-1]+"']")

J'ai quelque chose comme ça.

['qiita/Démarrer la gestion git sur mac', 'Démarrer la gestion git sur mac'],
...

Je suis entré dans le .DS_Store alors je l'ai supprimé manuellement. Copiez ceci dans .vuepress / config.js. Voir également le fonctionnaire pour plus d'informations sur la barre latérale.

Publier un article sur le déménagement sur Qiita

J'ai écrit la source en me référant ici Essayez de mettre à jour l'article vers Qiita via l'API --Qiita. Étant donné que le titre de l'article peut être traité comme l'URL de destination du transfert tel quel

if __name__ == "__main__":
    argvs = sys.argv
    token = argvs[1]
    user = argvs[2]
    qiitaApi = qiita_api.QiitaApi(token)

    items = qiitaApi.query_user_items(user)
    for item in items:
      execute(item, token)
      break
def parse(item):
    return {
        'title': item['title'],
        'qiita_id': item['id'],
        'tags': item['tags'],
        'body': f'''
Cet article a été déplacé vers les pages GitHub.\n
        "https://perpouh.github.io/blog/qiita/{item['title']}.html"
        ''',
        'tweet': False,
        'private': False,
    }

J'ai essayé de le pétrir J'ai arrêté parce que j'avais trop peur pour bouger même sans boucler et j'avais mal au ventre (putain de commentaire) Vous pouvez le faire manuellement si vous en avez envie: sévère:

(Bonus) Construction automatique de VuePress

Je le fais avec des actions GitHub. Déploiement automatique sur les pages GitHub par GitHub Actions-Qiita C'est bien que vous n'ayez pas à mettre des fichiers (fichiers post-déploiement) dans la branche principale que vous ne toucheriez pas manuellement plutôt que de s'exécuter automatiquement.

Recommended Posts

Migrer les articles Qiita vers GitHub Pages + VuePress
Migrer les articles Qiita vers GitHub
Migrer les articles Qiita vers WordPress
Sauvegarder les publications Qiita sur GitHub
Migrez le stock Qiita et LGTM vers «Hatena Bookmark»
Racler votre article Qiita pour créer un nuage de mots
Convertir les articles Qiita au format de publication Jekyll pour la sauvegarde