mirror of
https://github.com/olivierkes/manuskript.git
synced 2024-06-14 00:44:34 +12:00
Adds: import with pandoc through either OPML or markdown. #200
This commit is contained in:
parent
34b55b511c
commit
9c99d186e5
|
@ -1,7 +1,6 @@
|
||||||
#!/usr/bin/env python
|
#!/usr/bin/env python
|
||||||
# --!-- coding: utf8 --!--
|
# --!-- coding: utf8 --!--
|
||||||
|
|
||||||
from manuskript.importer.abstractImporter import abstractImporter
|
|
||||||
from manuskript.importer.abstractImporter import abstractImporter
|
from manuskript.importer.abstractImporter import abstractImporter
|
||||||
from manuskript.models.outlineModel import outlineItem
|
from manuskript.models.outlineModel import outlineItem
|
||||||
from manuskript.enums import Outline
|
from manuskript.enums import Outline
|
||||||
|
@ -62,9 +61,12 @@ class markdownImporter(abstractImporter):
|
||||||
```
|
```
|
||||||
"""
|
"""
|
||||||
|
|
||||||
# Read file
|
if not fromString:
|
||||||
with open(filePath, "r") as f:
|
# Read file
|
||||||
txt = f.read()
|
with open(filePath, "r") as f:
|
||||||
|
txt = f.read()
|
||||||
|
else:
|
||||||
|
txt = fromString
|
||||||
|
|
||||||
items = []
|
items = []
|
||||||
|
|
||||||
|
|
|
@ -4,6 +4,9 @@
|
||||||
from manuskript.importer.abstractImporter import abstractImporter
|
from manuskript.importer.abstractImporter import abstractImporter
|
||||||
from manuskript.exporter.pandoc import pandocExporter
|
from manuskript.exporter.pandoc import pandocExporter
|
||||||
from manuskript.importer.opmlImporter import opmlImporter
|
from manuskript.importer.opmlImporter import opmlImporter
|
||||||
|
from manuskript.importer.markdownImporter import markdownImporter
|
||||||
|
from PyQt5.QtWidgets import qApp
|
||||||
|
|
||||||
|
|
||||||
class pandocImporter(abstractImporter):
|
class pandocImporter(abstractImporter):
|
||||||
|
|
||||||
|
@ -13,21 +16,57 @@ class pandocImporter(abstractImporter):
|
||||||
def isValid(cls):
|
def isValid(cls):
|
||||||
return pandocExporter().isValid()
|
return pandocExporter().isValid()
|
||||||
|
|
||||||
@classmethod
|
def startImport(self, filePath, parentItem, settingsWidget):
|
||||||
def startImport(cls, filePath, parentItem, settingsWidget):
|
|
||||||
|
formatTo = self.getSetting("formatTo").value().lower()
|
||||||
|
|
||||||
# pandoc --from=markdown filename --to=opml --standalone
|
# pandoc --from=markdown filename --to=opml --standalone
|
||||||
args = [
|
args = [
|
||||||
"--from={}".format(cls.formatFrom),
|
"--from={}".format(self.formatFrom),
|
||||||
filePath,
|
filePath,
|
||||||
"--to=opml",
|
"--to={}".format(formatTo),
|
||||||
"--standalone"
|
"--standalone"
|
||||||
]
|
]
|
||||||
|
|
||||||
r = pandocExporter().run(args)
|
r = pandocExporter().run(args)
|
||||||
|
|
||||||
return opmlImporter.startImport("", parentItem,
|
if formatTo == "opml":
|
||||||
settingsWidget, fromString=r)
|
return self.opmlImporter.startImport("", parentItem,
|
||||||
|
settingsWidget, fromString=r)
|
||||||
|
elif formatTo == "markdown":
|
||||||
|
return self.mdImporter.startImport(filePath, parentItem,
|
||||||
|
settingsWidget, fromString=r)
|
||||||
|
|
||||||
|
def settingsWidget(self, widget):
|
||||||
|
"""
|
||||||
|
Takes a QWidget that can be modified and must be returned.
|
||||||
|
"""
|
||||||
|
|
||||||
|
# Add group
|
||||||
|
group = self.addGroup(widget.toolBox.widget(0),
|
||||||
|
qApp.translate("Import", "Pandoc import"))
|
||||||
|
|
||||||
|
self.addSetting("info", "label",
|
||||||
|
qApp.translate("Import", """<b>Info:</b> Manuskript can
|
||||||
|
import from <b>markdown</b> or <b>OPML</b>. Pandoc will
|
||||||
|
convert your document to either (see option below), and
|
||||||
|
then it will be imported in manuskript. One or the other
|
||||||
|
might give better result depending on your document.
|
||||||
|
<br/> """))
|
||||||
|
|
||||||
|
self.addSetting("formatTo", "combo",
|
||||||
|
qApp.translate("Import", "Import using:"),
|
||||||
|
vals="markdown|OPML")
|
||||||
|
|
||||||
|
for s in self.settings:
|
||||||
|
self.settings[s].widget(group)
|
||||||
|
|
||||||
|
self.mdImporter = markdownImporter()
|
||||||
|
widget = self.mdImporter.settingsWidget(widget)
|
||||||
|
self.opmlImporter = opmlImporter()
|
||||||
|
widget = self.opmlImporter.settingsWidget(widget)
|
||||||
|
|
||||||
|
return widget
|
||||||
|
|
||||||
|
|
||||||
class markdownPandocImporter(pandocImporter):
|
class markdownPandocImporter(pandocImporter):
|
||||||
|
|
Loading…
Reference in a new issue