diff --git a/CHANGES b/CHANGES new file mode 100644 index 0000000..4b4f261 --- /dev/null +++ b/CHANGES @@ -0,0 +1,8 @@ +======= +Changes +======= + +0.1.0 (*2020-07-30*) +==================== + +- Initial release diff --git a/setup.py b/setup.py index ec4bd4b..3f31f7a 100644 --- a/setup.py +++ b/setup.py @@ -1,22 +1,64 @@ #!/usr/bin/env python3 from setuptools import setup, find_packages +import distutils + + +class TranslateCommand(distutils.cmd.Command): + description = "Translation" + + user_options = [] + sub_commands = [ + ('extract_messages', None), + ('update_catalog', None), + ('compile_catalog', None), + ] + + def initialize_options(self): + pass + + def finalize_options(self): + pass + + def run(self): + for cmd_name in self.get_sub_commands(): + self.run_command(cmd_name) + + +with open("README.rst", "r") as fh: + long_description = fh.read() + setup( name='sphinx_storymaker', - version='0.1', - packages=find_packages(), + version='0.1.0', + url="https://procrastinator.nerv-project.eu/nerv-project/sphinx_storymaker", + license="EUPL 1.2", + author="Kujiu", + author_email="kujiu-pypi@kujiu.org", + descrption="Make your book and visual novel with Sphinx and Escoria", + keywords="novel sphinx escoria", + long_description=long_description, + long_description_content_type="text/x-rst", + packages=["sphinx_storymaker"], + cmdclass={ + 'translate': TranslateCommand, + }, + package_data={ + "sphinx_storymaker": [ + "locale/*/LC_MESSAGES/*.mo", + "locale/*/LC_MESSAGES/*.po", + ] + }, entry_points={ 'sphinx.builders': [ 'escoria = sphinx_storymaker.escoria_builder.EscoriaBuilder', ] }, - install_requires=["Sphinx", "sphinxcontrib-blockdiag"], - author="kujiu", - author_email="kujiu-storymaker@kujiu.org", - descrption="Make your book and visual novel with Sphinx and Escoria", - keywords="novel sphinx escoria", - license="EUPL 1.2", + install_requires=[ + "Sphinx>=3.0.0", + "sphinxcontrib-blockdiag" + ], license_files=["LICENSE", "LICENSE-de", "LICENSE-fr", "LICENSE-nl"], classifiers=[ "Development Status :: 2 - Pre-Alpha", @@ -27,5 +69,9 @@ setup( "Programming Language :: Python :: 3", "Topic :: Artistic Software", "Topic :: Games/Entertainment :: Role-Playing", - ] + ], + project_urls={ + "Source": "https://procrastinator.nerv-project.eu/nerv-project/sphinx_storymaker", + "Issues": "https://procrastinator.nerv-project.eu/nerv-project/sphinx_storymaker/issues", + }, ) diff --git a/sphinx_storymaker/__init__.py b/sphinx_storymaker/__init__.py index 9ef8bbe..064cefc 100644 --- a/sphinx_storymaker/__init__.py +++ b/sphinx_storymaker/__init__.py @@ -1,3 +1,67 @@ #!/usr/bin/env python3 -from . import storymaker + +from sphinx.domains import Domain + + +from .escoria_builder import EscoriaBuilder + +from .character import CharacterDirective + +from .scene import EpisodeDirective +from .scene import SceneDirective +from .scene import PlaceDirective +from .scene import SettingDirective + +from .universe import ItemDirective +from .universe import KnowledgeDirective +from .universe import AbilityDirective + +from .timeline import EventDirective +from .timeline import ActionDirective +from .timeline import UpdateDirective + +from .dialogue import DialogueDirective +from .dialogue import DlineDirective + + +version = (0, 1, 0) + + +class StoryMakerDomain(Domain): + """ StoryMaker domain """ + + name = "story" + label = "StoryMaker" + + directives = { + 'character': CharacterDirective, + 'scene': SceneDirective, + 'place': PlaceDirective, + 'setting': SettingDirective, + 'item': ItemDirective, + 'knowledge': KnowledgeDirective, + 'ability': AbilityDirective, + 'event': EventDirective, + 'action': ActionDirective, + 'dialogue': DialogueDirective, + 'dline': DlineDirective, + 'episode': EpisodeDirective, + 'update': UpdateDirective, + } + + +def setup(app): + + app.add_config_value('STORY_BUILD_ANNEXES', True, 'env') + app.add_config_value('STORY_BUILD_GRAPHS', True, 'env') + + app.add_domain(StoryMakerDomain) + + app.add_builder(EscoriaBuilder) + + return { + 'version': version, + 'parallel_read_safe': True, + 'parallel_write_safe': True + } diff --git a/sphinx_storymaker/storymaker.py b/sphinx_storymaker/storymaker.py deleted file mode 100644 index 76e5aea..0000000 --- a/sphinx_storymaker/storymaker.py +++ /dev/null @@ -1,64 +0,0 @@ -#!/usr/bin/env python3 - - -from sphinx.domains import Domain - - -from .escoria_builder import EscoriaBuilder - -from .character import CharacterDirective - -from .scene import EpisodeDirective -from .scene import SceneDirective -from .scene import PlaceDirective -from .scene import SettingDirective - -from .universe import ItemDirective -from .universe import KnowledgeDirective -from .universe import AbilityDirective - -from .timeline import EventDirective -from .timeline import ActionDirective -from .timeline import UpdateDirective - -from .dialogue import DialogueDirective -from .dialogue import DlineDirective - - -class StoryMakerDomain(Domain): - """ StoryMaker domain """ - - name = "story" - label = "StoryMaker" - - directives = { - 'character': CharacterDirective, - 'scene': SceneDirective, - 'place': PlaceDirective, - 'setting': SettingDirective, - 'item': ItemDirective, - 'knowledge': KnowledgeDirective, - 'ability': AbilityDirective, - 'event': EventDirective, - 'action': ActionDirective, - 'dialogue': DialogueDirective, - 'dline': DlineDirective, - 'episode': EpisodeDirective, - 'update': UpdateDirective, - } - - -def setup(app): - - app.add_config_value('STORY_BUILD_ANNEXES', True, 'env') - app.add_config_value('STORY_BUILD_GRAPHS', True, 'env') - - app.add_domain(StoryMakerDomain) - - app.add_builder(EscoriaBuilder) - - return { - 'version': '0.1', - 'parallel_read_safe': True, - 'parallel_write_safe': True - }