[PYTHON] Qiita Memo meiner Gedanken

Überblick

Umweltbau Memo, um den Wunsch zu befriedigen

Bild von dem, was Sie tun möchten

やりたいことイメージ図

  1. Machen Sie mit Markdown verschiedene Notizen
  2. Bauen Sie mit Sphinx
  3. Zeigen Sie Sphinx-Dokumente in Ihrem Browser an
  4. Poste von Kobito nach Qiita, während du Dateien mit Kobito verknüpfst
  5. Suchen Sie schnell nach Sphinx-Dokumenten von Alfred + Dash

Umgebung

Vorbereitung

Wie auch immer, bereiten Sie ein Sphinx-Projekt vor

$ mkvirtualenv qiitanote #Ich benutze virualenvwrapper

(qiitanote)$ pip install Sphinx
(qiitanote)$ mkdir qiitanote
(qiitanote)$ cd qiitanote
(qiitanote)$ sphinx-quickstarpt 

#Sie können im Dialog verschiedene Dinge hören. Wenn Sie also ein wenig antworten, ist die Erstellung beendet

#versuche HTML zu machen
(qiitanote)$ make html

# _build/html/Das HTML-Dokument wird unten generiert
#Deaktivieren Sie Virtualhost mit Apache und http://qiitanote.dev/damit_build/Ich versuche unten HTML zu sehen

#Überprüfen Sie das Dokument(Chrome wird geöffnet)
(qiitanote)$ open -a Google\ Chrome.app  http://qiitanote.dev

Anfängliche Verzeichnisstruktur

qiitanote
├── Makefile
├── _build
│   ├── doctrees
│   └── html <-Hier wird HTML generiert
├── _static
├── _templates
├── conf.py <-Sphinx-Konfigurationsdatei
└── index.rst

Schreiben Sie in Markdown

Pandoc Insco

(qiitanote)$ brew install pandoc

Erweiterungseinstellungen

# conf.Schreibe py um

#Folgende Inhalte wurden hinzugefügt
PROJECT_DIR = os.path.dirname(__file__)
sys.path.insert(0, PROJECT_DIR)
sys.path.insert(0, os.path.join(PROJECT_DIR, "libs"))  #Erweiterungsskript unter libs installiert
extensions += ["sphinxcontrib_markdown"]

markdown_title = 'Qiita Note'
source_suffix = '.md'

Erstellen Sie eine MD-Datei und schreiben Sie sie

(qiitanote)$ touch fisrtnote.md

Inhalt

# My First Qiita Memo!!!

## 1. Hoge

hogehogehogehoge
hogehogehogehoge

## 2. Fuga

fugafugafugafuga
fugafugafugafuga

Bauen

(qiitanote)$ make html

Ergebnis

Mifirst Qiita Memo

Arbeite mit Kobito

Stellen Sie sicher, dass Dateien mit Kobito für die Veröffentlichung in Qiita funktionieren

(qiitanote)$ open -a Kobito firstnote.md
# -*- coding: utf-8 -*-

import os
import time
import subprocess

TARGET_DIR = os.path.join(os.path.dirname(__file__), '..')
cmd = "open --hide -g -a Kobito {}"

# start Koibito.app
subprocess.call(cmd.format(""), shell=True)
time.sleep(3)

# associate .md file to Koibito.app
for root, dirs, files in os.walk(TARGET_DIR):
    for f in files:
        if f.endswith(".md"):
            f = os.path.abspath(os.path.join(root, f))
            subprocess.call(cmd.format(f), shell=True)

# hyde Kobito.app
subprocess.call(
    "osascript -e 'tell application \"Finder\"'"
    " -e 'set visible of process \"Kobito\" to false'"
    " -e 'end tell'",
    shell=True
)

Lassen Sie dieses Skript ausführen, wenn Sie "HTML erstellen".

html:
	$(SPHINXBUILD) -b html $(ALLSPHINXOPTS) $(BUILDDIR)/html
	python libs/associate_kobito.py  # <=hinzufügen
	@echo
	@echo "Build finished. The HTML pages are in $(BUILDDIR)/html."

Wenn Sie damit erstellen, wird in Kobito ohne Erlaubnis ein Memo angezeigt.

Konfiguration bisher

qiitanote
├── Makefile
├── _build
│   ├── doctrees
│   └── html
├── _static
├── _templates
├── conf.py
├── firstnote.md
├── index.md # <-hinzufügen
├── index.rst
└── libs
    ├── associate_kobito.py # <-hinzufügen
    └── sphinxcontrib_markdown.py # <-hinzufügen

Suche mit Alfred + Dash

Es ist ein Memo, das ich geschrieben habe, also möchte ich es leicht zur Hand haben. Suche mit Alfred und Dash. Ich habe sowohl Alfred als auch Dash gegen eine Gebühr gekauft.

sphinxcontrib-dashbuilder macht es einfach, ein Sphinx-Dokument in ein Docset für Dash zu verwandeln

Installation

(qiitanote)$ pip install sphinxcontrib-dashbuilder

Einstellungsdatei ändern

# conf.py
extensions += ["sphinxcontrib_markdown", "sphinxcontrib.dashbuilder"]
dash_name = 'QiitaNote'
dash_icon_file = '_static/qiita.png' # <-Favicon wurde ordnungsgemäß aus Qiita gebracht

Makefile umschreiben

# You can set these variables from the command line.
SPHINXOPTS    =
SPHINXBUILD   = sphinx-build
PAPER         =
BUILDDIR      = _build
DOCSETSDIR    = ~/Library/Application\ Support/Dash/DocSets/QiitaNote # <-hinzufügen

~ Abkürzung ~

# .Dash zu PHONY hinzugefügt
.PHONY: dash help ... 

~ Abkürzung ~

#Dash-Ziel hinzufügen
dash:
	$(SPHINXBUILD) -b dash $(ALLSPHINXOPTS) $(DOCSETSDIR)
	@echo
	@echo "Build finished. The Docset are in $(DOCSETSDIR)."

Bauen

(qiitanote)$ make dash

Fragen Sie bei Dash nach. Dash-Einstellungsbildschirm> Docsets> Klicken Sie auf die Schaltfläche Rescan

ReScan

Qiita Note wird in Dash's Docsets angezeigt

Dashの画面

Es ist mühsam, jedes Mal auf "make dash" zu klicken. Erstellen Sie also einen Dash, auch wenn "make html" verwendet wird.

html:
	$(SPHINXBUILD) -b html $(ALLSPHINXOPTS) $(BUILDDIR)/html
	$(SPHINXBUILD) -b dash $(ALLSPHINXOPTS) $(DOCSETSDIR) # <-hinzufügen
	python libs/associate_kobito.py  
	@echo
	@echo "Build finished. The HTML pages are in $(BUILDDIR)/html."

Kann nicht mit Alfred suchen

Markdown-> reST Erzwingt die Indexierung der Überschrift während der Konvertierung.

## Hoge

## Fuga 

Angenommen, es gibt eine solche Überschrift. Gehen Sie bei der Konvertierung in reST wie folgt vor.

.. index:: Hoge

Hoge
----

.. index:: Fuga

Fuga
----

Fügen Sie libs / sphinxcontrib_markdown.py die folgende Verarbeitung hinzu.

48  # insert index directive                                                                
49  newlines = []                                                                           
50  for line in source[0].split(u"\n"):                                                     
51      if self._is_heading_line(line):                                                     
52          prev = newlines[-1]                                                             
53          inedexline = u".. index:: {0}\n".format(prev)
54          newlines.insert(-1, inedexline)                                                 
55      newlines.append(line)
56  source[0] = "\n".join(newlines)

Wenn Sie jetzt wieder bauen, finden Sie die Überschriften von Alfred

Alfred検索

Konfiguration bisher

qiitanote
├── Makefile
├── _build
│   └── doctrees
├── _static
│   └── qiita.png # <-hinzufügen
├── _templates
├── conf.py
├── firstnote.md
├── index.md
├── index.rst
└── libs
    ├── associate_kobito.py
    └── sphinxcontrib_markdown.py

Ändern Sie das Aussehen von Sphinx-Dokumenten

Verwenden Sie mein Sphinx-Thema.

(qiitanote)$ pip install sphinxjp.themes.basicstrap

Einstellungen ändern

# conf.py

extensions += ["sphinxcontrib_markdown", "sphinxcontrib.dashbuilder", 'sphinxjp.themes.basicstrap']
html_theme = 'basicstrap'
html_theme_options = {
    'noheader': True,

    'header_inverse': True,
    'relbar_inverse': True,

    'inner_theme': True,
    'inner_theme_name': 'bootswatch-sandstone',
}

Bauen

(qiitanote)$ make html

Ergebnis

Qiita風

Ergebnisse

Es ist ein bisschen anders als das, was geschrieben steht, aber ich habe es auf Github gestellt. Bitte Akeptiere es.

https://github.com/tell-k/qiitanote

TODO

Zusammenfassung

Nachtrag (18.10.2014)

Recommended Posts

Qiita Memo meiner Gedanken
[Mein Memo] Python
Übergang von Qiita-Beiträgen
[Selbstmemo] Vorbereitungsstart von Django
[Mein Memo] Python -v / Python -V
Python-Tipps (mein Memo)
LGTM außerhalb von Qiita
[Persönliches Memo] Automatischer Abschluss der Bash
Merkmale der Programmiersprache [Memo]
[Memo] Bau einer Cygwin-Umgebung
Mein umgekehrtes Numpy / Scipy-Memo
[Python] Operationsnotiz von Pandas DataFrame
Holen Sie sich die Anzahl der Ansichten von Qiita
Bestätigung der Impulsantwort (persönliches Memo)
Benutzerfreundliche Hinweise für Anaconda (conda)
"Python Startbook" Python3-kompatibles Memo
[Memo] Kleine Geschichte von Pandas, numpy
Memo der kollektiven Wissensprogrammierung verstehen
Separate Python-Diagramme (Memo)
Sofortige Visualisierung des Qiita Adventskalenders 2019
Betriebsnotiz der virtuellen Conda-Umgebung