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
Je vais l'omettre car il existe déjà. Suivez les étapes dans Officiel.
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?
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.
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.
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:
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