Manuskript 阅读 1

项目的主要代码存放于 manuskript 文件夹下。

manuskript 文件夹的结构

manuskript
├── converters
│   ├── abstractConverter.py
│   ├── __init__.py
│   ├── markdownConverter.py
│   ├── pandocConverter.py
│   └── __pycache__
│       ├── abstractConverter.cpython-310.pyc
│       ├── __init__.cpython-310.pyc
│       └── pandocConverter.cpython-310.pyc
├── enums.py
├── exporter
│   ├── basic.py
│   ├── __init__.py
│   ├── manuskript
│   │   ├── HTML.py
│   │   ├── __init__.py
│   │   ├── markdown.py
│   │   ├── plainText.py
│   │   └── __pycache__
│   │       ├── HTML.cpython-310.pyc
│   │       ├── __init__.cpython-310.pyc
│   │       ├── markdown.cpython-310.pyc
│   │       └── plainText.cpython-310.pyc
│   ├── pandoc
│   │   ├── abstractOutput.py
│   │   ├── abstractPlainText.py
│   │   ├── HTML.py
│   │   ├── __init__.py
│   │   ├── outputFormats.py
│   │   ├── PDF.py
│   │   ├── plainText.py
│   │   └── __pycache__
│   │       ├── abstractOutput.cpython-310.pyc
│   │       ├── abstractPlainText.cpython-310.pyc
│   │       ├── HTML.cpython-310.pyc
│   │       ├── __init__.cpython-310.pyc
│   │       ├── outputFormats.cpython-310.pyc
│   │       ├── PDF.cpython-310.pyc
│   │       └── plainText.cpython-310.pyc
│   └── __pycache__
│       ├── basic.cpython-310.pyc
│       └── __init__.cpython-310.pyc
├── functions
│   ├── history
│   │   ├── History.py
│   │   ├── NavigatedEvent.py
│   │   ├── __pycache__
│   │   │   ├── History.cpython-310.pyc
│   │   │   ├── NavigatedEvent.cpython-310.pyc
│   │   │   └── Signal.cpython-310.pyc
│   │   └── Signal.py
│   ├── __init__.py
│   ├── __pycache__
│   │   ├── __init__.cpython-310.pyc
│   │   └── spellchecker.cpython-310.pyc
│   └── spellchecker.py
├── importer
│   ├── abstractImporter.py
│   ├── folderImporter.py
│   ├── __init__.py
│   ├── markdownImporter.py
│   ├── mindMapImporter.py
│   ├── opmlImporter.py
│   ├── pandocImporters.py
│   └── __pycache__
│       ├── abstractImporter.cpython-310.pyc
│       ├── folderImporter.cpython-310.pyc
│       ├── __init__.cpython-310.pyc
│       ├── markdownImporter.cpython-310.pyc
│       ├── mindMapImporter.cpython-310.pyc
│       ├── opmlImporter.cpython-310.pyc
│       └── pandocImporters.cpython-310.pyc
├── __init__.py
├── load_save
│   ├── __init__.py
│   ├── __pycache__
│   │   ├── __init__.cpython-310.pyc
│   │   ├── version_0.cpython-310.pyc
│   │   └── version_1.cpython-310.pyc
│   ├── version_0.py
│   └── version_1.py
├── loadSave.py
├── logging.py
├── main.py
├── mainWindow.py
├── models
│   ├── abstractItem.py
│   ├── abstractModel.py
│   ├── characterModel.py
│   ├── characterPOVModel.py
│   ├── flatDataModelWrapper.py
│   ├── __init__.py
│   ├── outlineItem.py
│   ├── outlineModel.py
│   ├── persosProxyModel.py
│   ├── plotModel.py
│   ├── plotsProxyModel.py
│   ├── __pycache__
│   │   ├── abstractItem.cpython-310.pyc
│   │   ├── abstractModel.cpython-310.pyc
│   │   ├── characterModel.cpython-310.pyc
│   │   ├── characterPOVModel.cpython-310.pyc
│   │   ├── flatDataModelWrapper.cpython-310.pyc
│   │   ├── __init__.cpython-310.pyc
│   │   ├── outlineItem.cpython-310.pyc
│   │   ├── outlineModel.cpython-310.pyc
│   │   ├── plotModel.cpython-310.pyc
│   │   ├── references.cpython-310.pyc
│   │   ├── searchableItem.cpython-310.pyc
│   │   ├── searchableModel.cpython-310.pyc
│   │   ├── searchFilter.cpython-310.pyc
│   │   ├── searchResultModel.cpython-310.pyc
│   │   └── worldModel.cpython-310.pyc
│   ├── references.py
│   ├── searchableItem.py
│   ├── searchableModel.py
│   ├── searchFilter.py
│   ├── searchResultModel.py
│   └── worldModel.py
├── __pycache__
│   ├── enums.cpython-310.pyc
│   ├── __init__.cpython-310.pyc
│   ├── loadSave.cpython-310.pyc
│   ├── logging.cpython-310.pyc
│   ├── main.cpython-310.pyc
│   ├── mainWindow.cpython-310.pyc
│   ├── searchLabels.cpython-310.pyc
│   ├── settings.cpython-310.pyc
│   ├── settingsWindow.cpython-310.pyc
│   └── version.cpython-310.pyc
├── searchLabels.py
├── settings.py
├── settingsWindow.py
├── tests
│   ├── conftest.py
│   ├── __init__.py
│   ├── load_save
│   │   ├── __init__.py
│   │   └── test_ParseMMDFile.py
│   ├── models
│   │   ├── conftest.py
│   │   ├── __init__.py
│   │   ├── test_outlineItem.py
│   │   ├── test_references.py
│   │   ├── test_searchFilter.py
│   │   └── test_searchResultModel.py
│   ├── test_functions.py
│   ├── test_settingsWindow.py
│   └── ui
│       ├── exporters
│       │   ├── __init__.py
│       │   └── test_exporters.py
│       ├── importers
│       │   ├── __init__.py
│       │   └── test_importers.py
│       ├── __init__.py
│       ├── test_searchMenu.py
│       └── test_welcome.py
├── ui
│   ├── about.py
│   ├── about_ui.py
│   ├── about_ui.ui
│   ├── bulkInfoManager.py
│   ├── bulkInfoManager.ui
│   ├── characterInfoDialog.py
│   ├── characterInfoDialog.ui
│   ├── cheatSheet.py
│   ├── cheatSheet_ui.py
│   ├── cheatSheet_ui.ui
│   ├── collapsibleDockWidgets.py
│   ├── collapsibleGroupBox2.py
│   ├── collapsibleGroupBox.py
│   ├── editors
│   │   ├── blockUserData.py
│   │   ├── completer.py
│   │   ├── completer_ui.py
│   │   ├── completer_ui.ui
│   │   ├── editorWidget.py
│   │   ├── editorWidget_ui.py
│   │   ├── editorWidget_ui.ui
│   │   ├── fullScreenEditor.py
│   │   ├── __init__.py
│   │   ├── locker.py
│   │   ├── locker_ui.py
│   │   ├── locker_ui.ui
│   │   ├── mainEditor.py
│   │   ├── mainEditor_ui.py
│   │   ├── mainEditor_ui.ui
│   │   ├── MDFunctions.py
│   │   ├── __pycache__
│   │   │   ├── completer.cpython-310.pyc
│   │   │   ├── completer_ui.cpython-310.pyc
│   │   │   ├── editorWidget.cpython-310.pyc
│   │   │   ├── editorWidget_ui.cpython-310.pyc
│   │   │   ├── fullScreenEditor.cpython-310.pyc
│   │   │   ├── __init__.cpython-310.pyc
│   │   │   ├── locker.cpython-310.pyc
│   │   │   ├── locker_ui.cpython-310.pyc
│   │   │   ├── mainEditor.cpython-310.pyc
│   │   │   ├── mainEditor_ui.cpython-310.pyc
│   │   │   ├── tabSplitter.cpython-310.pyc
│   │   │   ├── tabSplitter_ui.cpython-310.pyc
│   │   │   └── themes.cpython-310.pyc
│   │   ├── tabSplitter.py
│   │   ├── tabSplitter_ui.py
│   │   ├── tabSplitter_ui.ui
│   │   ├── textFormat.py
│   │   ├── textFormat_ui.py
│   │   ├── textFormat_ui.ui
│   │   └── themes.py
│   ├── exporters
│   │   ├── exporter.py
│   │   ├── exportersManager.py
│   │   ├── exportersManager_ui.py
│   │   ├── exportersManager_ui.ui
│   │   ├── exporter_ui.py
│   │   ├── exporter_ui.ui
│   │   ├── __init__.py
│   │   ├── manuskript
│   │   │   ├── __init__.py
│   │   │   ├── plainTextSettings.py
│   │   │   ├── plainTextSettings_ui.py
│   │   │   ├── plainTextSettings_ui.ui
│   │   │   └── __pycache__
│   │   │       ├── __init__.cpython-310.pyc
│   │   │       ├── plainTextSettings.cpython-310.pyc
│   │   │       └── plainTextSettings_ui.cpython-310.pyc
│   │   └── __pycache__
│   │       ├── exporter.cpython-310.pyc
│   │       ├── exportersManager.cpython-310.pyc
│   │       ├── exportersManager_ui.cpython-310.pyc
│   │       ├── exporter_ui.cpython-310.pyc
│   │       └── __init__.cpython-310.pyc
│   ├── helpLabel.py
│   ├── highlighters
│   │   ├── basicHighlighter.py
│   │   ├── __init__.py
│   │   ├── markdownEnums.py
│   │   ├── markdownHighlighter.py
│   │   ├── markdownTokenizer.py
│   │   ├── MMDHighlighter.py
│   │   ├── __pycache__
│   │   │   ├── basicHighlighter.cpython-310.pyc
│   │   │   ├── __init__.cpython-310.pyc
│   │   │   ├── markdownEnums.cpython-310.pyc
│   │   │   ├── markdownHighlighter.cpython-310.pyc
│   │   │   ├── markdownTokenizer.cpython-310.pyc
│   │   │   └── MMDHighlighter.cpython-310.pyc
│   │   └── searchResultHighlighters
│   │       ├── abstractSearchResultHighlighter.py
│   │       ├── abstractSpecificSearchResultHighlighter.py
│   │       ├── characterSearchResultHighlighter.py
│   │       ├── flatDataSearchResultHighlighter.py
│   │       ├── __init__.py
│   │       ├── outlineSearchResultHighlighter.py
│   │       ├── plotSearchResultHighlighter.py
│   │       ├── plotStepSearchResultHighlighter.py
│   │       ├── __pycache__
│   │       │   ├── abstractSearchResultHighlighter.cpython-310.pyc
│   │       │   ├── abstractSpecificSearchResultHighlighter.cpython-310.pyc
│   │       │   ├── characterSearchResultHighlighter.cpython-310.pyc
│   │       │   ├── flatDataSearchResultHighlighter.cpython-310.pyc
│   │       │   ├── __init__.cpython-310.pyc
│   │       │   ├── outlineSearchResultHighlighter.cpython-310.pyc
│   │       │   ├── plotSearchResultHighlighter.cpython-310.pyc
│   │       │   ├── plotStepSearchResultHighlighter.cpython-310.pyc
│   │       │   ├── searchResultHighlighter.cpython-310.pyc
│   │       │   ├── widgetSelectionHighlighter.cpython-310.pyc
│   │       │   └── worldSearchResultHighlighter.cpython-310.pyc
│   │       ├── searchResultHighlighter.py
│   │       ├── widgetSelectionHighlighter.py
│   │       └── worldSearchResultHighlighter.py
│   ├── importers
│   │   ├── generalSettings.py
│   │   ├── generalSettings_ui.py
│   │   ├── generalSettings_ui.ui
│   │   ├── importer.py
│   │   ├── importer_ui.py
│   │   ├── importer_ui.ui
│   │   ├── __init__.py
│   │   └── __pycache__
│   │       ├── generalSettings.cpython-310.pyc
│   │       ├── generalSettings_ui.cpython-310.pyc
│   │       ├── importer.cpython-310.pyc
│   │       ├── importer_ui.cpython-310.pyc
│   │       └── __init__.cpython-310.pyc
│   ├── __init__.py
│   ├── listDialog.py
│   ├── listDialog_ui.py
│   ├── listDialog_ui.ui
│   ├── mainWindow.py
│   ├── mainWindow.ui
│   ├── __pycache__
│   │   ├── about.cpython-310.pyc
│   │   ├── about_ui.cpython-310.pyc
│   │   ├── bulkInfoManager.cpython-310.pyc
│   │   ├── characterInfoDialog.cpython-310.pyc
│   │   ├── cheatSheet.cpython-310.pyc
│   │   ├── cheatSheet_ui.cpython-310.pyc
│   │   ├── collapsibleDockWidgets.cpython-310.pyc
│   │   ├── collapsibleGroupBox2.cpython-310.pyc
│   │   ├── helpLabel.cpython-310.pyc
│   │   ├── __init__.cpython-310.pyc
│   │   ├── listDialog.cpython-310.pyc
│   │   ├── listDialog_ui.cpython-310.pyc
│   │   ├── mainWindow.cpython-310.pyc
│   │   ├── revisions.cpython-310.pyc
│   │   ├── revisions_ui.cpython-310.pyc
│   │   ├── search.cpython-310.pyc
│   │   ├── searchMenu.cpython-310.pyc
│   │   ├── search_ui.cpython-310.pyc
│   │   ├── settings_ui.cpython-310.pyc
│   │   ├── statusLabel.cpython-310.pyc
│   │   ├── style.cpython-310.pyc
│   │   ├── welcome.cpython-310.pyc
│   │   └── welcome_ui.cpython-310.pyc
│   ├── revisions.py
│   ├── revisions_ui.py
│   ├── revisions_ui.ui
│   ├── searchMenu.py
│   ├── search.py
│   ├── search_ui.py
│   ├── search_ui.ui
│   ├── settings_ui.py
│   ├── settings_ui.ui
│   ├── statusLabel.py
│   ├── style.py
│   ├── tools
│   │   ├── frequencyAnalyzer.py
│   │   ├── frequency_ui.py
│   │   ├── frequency_ui.ui
│   │   ├── __init__.py
│   │   ├── __pycache__
│   │   │   ├── frequencyAnalyzer.cpython-310.pyc
│   │   │   ├── frequency_ui.cpython-310.pyc
│   │   │   ├── __init__.cpython-310.pyc
│   │   │   ├── splitDialog.cpython-310.pyc
│   │   │   ├── targets.cpython-310.pyc
│   │   │   └── targets_ui.cpython-310.pyc
│   │   ├── splitDialog.py
│   │   ├── targets.py
│   │   ├── targets_ui.py
│   │   └── targets_ui.ui
│   ├── views
│   │   ├── basicItemView.py
│   │   ├── basicItemView_ui.py
│   │   ├── basicItemView_ui.ui
│   │   ├── characterTreeView.py
│   │   ├── chkOutlineCompile.py
│   │   ├── cmbOutlineCharacterChoser.py
│   │   ├── cmbOutlineLabelChoser.py
│   │   ├── cmbOutlineStatusChoser.py
│   │   ├── corkDelegate.py
│   │   ├── corkView.py
│   │   ├── dndView.py
│   │   ├── __init__.py
│   │   ├── lineEditView.py
│   │   ├── MDEditCompleter.py
│   │   ├── MDEditView.py
│   │   ├── metadataView.py
│   │   ├── metadataView_ui.py
│   │   ├── metadataView_ui.ui
│   │   ├── outlineBasics.py
│   │   ├── outlineDelegates.py
│   │   ├── outlineView.py
│   │   ├── PDFViewer.py
│   │   ├── plotDelegate.py
│   │   ├── plotTreeView.py
│   │   ├── propertiesView.py
│   │   ├── propertiesView_ui.py
│   │   ├── propertiesView_ui.ui
│   │   ├── __pycache__
│   │   │   ├── basicItemView.cpython-310.pyc
│   │   │   ├── basicItemView_ui.cpython-310.pyc
│   │   │   ├── characterTreeView.cpython-310.pyc
│   │   │   ├── chkOutlineCompile.cpython-310.pyc
│   │   │   ├── cmbOutlineCharacterChoser.cpython-310.pyc
│   │   │   ├── cmbOutlineLabelChoser.cpython-310.pyc
│   │   │   ├── cmbOutlineStatusChoser.cpython-310.pyc
│   │   │   ├── corkDelegate.cpython-310.pyc
│   │   │   ├── corkView.cpython-310.pyc
│   │   │   ├── dndView.cpython-310.pyc
│   │   │   ├── __init__.cpython-310.pyc
│   │   │   ├── lineEditView.cpython-310.pyc
│   │   │   ├── MDEditCompleter.cpython-310.pyc
│   │   │   ├── MDEditView.cpython-310.pyc
│   │   │   ├── metadataView.cpython-310.pyc
│   │   │   ├── metadataView_ui.cpython-310.pyc
│   │   │   ├── outlineBasics.cpython-310.pyc
│   │   │   ├── outlineDelegates.cpython-310.pyc
│   │   │   ├── outlineView.cpython-310.pyc
│   │   │   ├── PDFViewer.cpython-310.pyc
│   │   │   ├── plotDelegate.cpython-310.pyc
│   │   │   ├── plotTreeView.cpython-310.pyc
│   │   │   ├── propertiesView.cpython-310.pyc
│   │   │   ├── propertiesView_ui.cpython-310.pyc
│   │   │   ├── sldImportance.cpython-310.pyc
│   │   │   ├── sldImportance_ui.cpython-310.pyc
│   │   │   ├── storylineView.cpython-310.pyc
│   │   │   ├── storylineView_ui.cpython-310.pyc
│   │   │   ├── textEditView.cpython-310.pyc
│   │   │   ├── treeDelegates.cpython-310.pyc
│   │   │   ├── treeView.cpython-310.pyc
│   │   │   └── webView.cpython-310.pyc
│   │   ├── sldImportance.py
│   │   ├── sldImportance_ui.py
│   │   ├── sldImportance_ui.ui
│   │   ├── storylineView.py
│   │   ├── storylineView_ui.py
│   │   ├── storylineView_ui.ui
│   │   ├── textEditView.py
│   │   ├── treeDelegates.py
│   │   ├── treeView.py
│   │   └── webView.py
│   ├── welcome.py
│   ├── welcome_ui.py
│   └── welcome_ui.ui
└── version.py

文件夹有:

  • converters
  • exporter
  • functions
  • importer
  • load_save
  • models
  • tests
  • ui

文件有:

  • __init__.py
  • enums.py
  • loadSave.py
  • logging.py
  • main.py
  • mainWindow.py
  • searchLabels.py
  • settings.py
  • settingsWindow.py
  • version.py

分析文件的作用

init.py

该文件为空白,仅标识当前目录是一个包目录。

enums.py

这个Python文件定义了一系列枚举类型,用于表示不同的概念与其特征,如角色、情节、世界、大纲等。

每个枚举类型都包含了一系列具体的项,用于描述该概念的不同属性或特征。这些枚举类型的作用是为了提供一种便捷的方式来表示和操作这些概念,使得代码更加清晰易懂,并且可以避免在不同部分之间使用魔法数字或者字符串来表示这些概念。

具体来说,这些枚举类型的作用可以包括:

  • 为不同的概念创建可读性更强的表示方式,如角色、情节、大纲等。
  • 使得代码中使用这些概念的地方更加清晰易懂,比如可以使用Character.name来表示角色的名字属性。
  • 避免在代码中硬编码数字或字符串来表示特定的属性或类型,从而提高代码的可维护性和可读性。

loadSave.py

这个Python文件调用合适的函数来加载和保存文件。

logging.py

虽然所有的日志记录都应该通过标准python ’ logging '模块提供的工具来完成,但这个模块将处理特定的日志记录
manuscript 需要将其与逻辑的其余部分分开。

main.py

这个Python文件是一个应用程序的入口点,它负责解析命令行参数、初始化应用程序并运行主窗口循环,以及处理各种准备工作。

它负责启动一个名为"manuskript"的应用程序。这个应用程序似乎是用于写作和创作的工具,它使用了PyQt5库来创建图形用户界面。

具体来说,这个文件的主要作用包括:

  • 解析命令行参数,根据参数决定是否启动调试控制台、设置日志等级和文件位置,以及指定要打开的manuskript项目文件。
  • 准备和初始化Qt应用程序对象,设置应用程序的名称、版本号、图标等信息,设置应用程序的风格,设置应用程序的翻译和国际化等。
  • 运行主窗口的循环,处理Qt事件,接受用户输入,并在适当的时候展示主窗口和启动调试控制台。

此外,该文件还包括了一些辅助函数,如设置信号处理程序、处理系统主题设置、加载翻译等。

mainWindow.py

主界面的布局文件。

searchLabels.py

为Manuskript(一个小说写作软件)定义了搜索标签的映射,用于在各种模型(如大纲、角色、情节等)中进行搜索。例如,定义了大纲、角色、平面数据、世界、情节和情节步骤的搜索标签,以便在搜索菜单中使用这些标签进行搜索。文件中还定义了一个偏移量常量PLOT_STEP_COLUMNS_OFFSET,用于区分情节和情节步骤相关的字段。

settings.py

这个Python文件是用来定义Manuskript(一款小说写作软件)的应用设置的。
它包含了关于视图设置、全屏设置、拼写检查、自动保存、修订、频率分析等各种应用程序设置的信息。此外,文件中还包含了一些函数,用于加载和保存这些应用设置。

settingsWindow.py

设置界面的布局文件。

version.py

返回当前版本值。

你可能感兴趣的:(python学习,python,开源软件)