Umweltbau Memo, um den Wunsch zu befriedigen
OS X Marverics
Python2.7
virtualenv(virtualenvwrapper)
pip
Sphinx
homebrew
Pandoc
Apache
Kobito.app <= 1.9.2
"Externe Dateiverknüpfung" kann für die Kobito 2.0-Serie nicht vorübergehend verwendet werden
Dash.app
Alfred.app
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
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
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
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
Qiita Note wird in Dash's Docsets angezeigt
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."
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
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
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
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
Recommended Posts