[PYTHON] Migrieren Sie Qiita-Artikel zu GitHub Pages + VuePress

Ich las den Artikel von @ mima_ita Qiita-Artikel nach GitHub migrieren - Qiita und schreibe (?), Weil ich auch migrieren wollte. Nach der Bergung → Es ist eine Geschichte, die auf GitHub Pages + VuePress veröffentlicht wird. Da sich der Zweck ein wenig vom Originalartikel unterscheidet, wird PR nicht veröffentlicht.

Das Ergebnis ist hier: perpouh / blog

Vorbereitung für Vuepress

Ich werde es weglassen, weil es bereits existiert. Befolgen Sie die Schritte in Offiziell.

Vorbereitung von qiita_exporter

Weitere Informationen finden Sie unter Migrieren von Qiita-Artikeln zu GitHub. Als ich das Zugriffstoken erhielt, überprüfte ich sowohl "read_qiita" als auch "write_qiita". Ich habe nicht geschrieben.

Außerdem funktionierte der ursprüngliche Code in meiner Umgebung nicht, also am Anfang der Datei

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

Ich habe reingesteckt. Ich frage mich, ob dies von der Umgebung abhängt.

Ändern Sie das Speicherziel der Bilddatei

Ich möchte das Bild in .vuepress / public / assets / img anstelle von image speichern, also schreibe den Pfad neu. Die Anzeige lautet "/ blog / assets / img /" (abhängig von den vuepress-Einstellungen). Ich möchte nicht zu viel harten Code machen, aber ich schreibe ihn und frage mich, ob es sich nicht um eine Art Skript handelt, das ich oft benutze.

    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):
    """Ändern Sie die Server-Image-Datei von Qiita, um Dateien in Ihrem Repository anzuzeigen."""
    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

Ich wollte den Titel und das Datum in den Text aufnehmen, also fügte ich Folgendes hinzu.

    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("zuletzt aktualisiert:" + datetime.strptime(i['updated_at'], '%Y-%m-%dT%H:%M:%S+09:00').strftime('%Y Jahr%m Monat%d Tag') + "\n\n")
            md_file.write(text)

Ich habe die Datei erhalten, also habe ich versucht, sie hier zu erstellen, und bestätigt, dass sie in Ordnung zu sein scheint.

Erstellen Sie einen Link in der Seitenleiste

Da es keine Flusslinie zum Artikel gibt, werde ich einen Link erstellen. Ich möchte es wirklich mit nur einem Befehl tun, aber ist diese Art des Kopierens und Einfügens akzeptabel?

import os
if __name__ == '__main__':
  filelist = os.listdir('../blog/qiita')
  for item in filelist:
    #Letzte 3 Zeichen(.md)Beseitigen, abschütteln
    print("['qiita/"+item[-4::-1][-1::-1]+"', '"+item[-4::-1][-1::-1]+"']")

Ich bekomme so etwas.

['qiita/Starten Sie die Git-Verwaltung auf dem Mac', 'Starten Sie die Git-Verwaltung auf dem Mac'],
...

Ich bin in den .DS_Store gekommen und habe ihn manuell entfernt. Kopieren Sie dies nach .vuepress / config.js. Weitere Informationen finden Sie auch beim Beamten in der Seitenleiste.

Poste einen Umzugsartikel an Qiita

Ich habe die Quelle unter Bezugnahme auf hier geschrieben Versuchen Sie, den Artikel über API - Qiita auf Qiita zu aktualisieren. Da der Artikeltitel so wie er ist als Übertragungsziel-URL behandelt werden könnte

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'''
Dieser Artikel wurde auf GitHub Pages verschoben.\n
        "https://perpouh.github.io/blog/qiita/{item['title']}.html"
        ''',
        'tweet': False,
        'private': False,
    }

Ich habe versucht, es zu kneten Ich hörte auf, weil ich zu ängstlich war, um mich auch ohne Schleifen zu bewegen, und mein Magen schmerzte (verdammt noch mal den Kommentar) Sie können es manuell tun, wenn Sie Lust dazu haben: schwerwiegend:

(Bonus) VuePress automatische Erstellung

Ich mache es mit GitHub Actions. Automatische Bereitstellung auf GitHub-Seiten durch GitHub Actions-Qiita Es ist schön, dass Sie keine Dateien (Post-Deployment-Dateien) in den Hauptzweig einfügen müssen, die Sie nicht manuell berühren würden, sondern automatisch ausführen würden.

Recommended Posts

Migrieren Sie Qiita-Artikel zu GitHub Pages + VuePress
Migrieren Sie Qiita-Artikel zu GitHub
Migrieren Sie Qiita-Artikel zu WordPress
Sichern von Qiita-Posts auf GitHub
Migrieren Sie Qiita-Aktien und LGTM zu "Hatena Bookmark".
Verschrotten Sie Ihren Qiita-Artikel, um eine Wortwolke zu erstellen
Konvertieren Sie Qiita-Artikel zur Sicherung in das Jekyll-Post-Format