コード例 #1
0
ファイル: plugin.py プロジェクト: mcbeet/lectern
def lectern(ctx: Context, opts: LecternOptions):
    """Plugin that handles markdown files with lectern."""
    document = ctx.inject(Document)

    for pattern in opts.load:
        for path in ctx.directory.glob(pattern):
            document.load(path)

    for arguments in opts.scripts:
        result = subprocess.run(
            arguments,
            cwd=ctx.directory,
            check=True,
            stdout=subprocess.PIPE,
        )
        document.add_text(result.stdout.decode())

    yield

    if opts.snapshot:
        with document.markdown_serializer.use_flat_format(opts.snapshot_flat):
            document.save(
                ctx.directory / opts.snapshot,
                ctx.directory /
                opts.external_files if opts.external_files else None,
            )
コード例 #2
0
ファイル: load_yaml.py プロジェクト: mcbeet/beet
def load_yaml(ctx: Context, opts: LoadYamlOptions):
    """Plugin that loads yaml resources for data packs and resource packs."""
    yaml_pack_loader = ctx.inject(YamlPackLoader)

    for pattern in opts.resource_pack:
        for path in ctx.directory.glob(pattern):
            yaml_pack_loader.load_resource_pack(ctx.directory / path)
    for pattern in opts.data_pack:
        for path in ctx.directory.glob(pattern):
            yaml_pack_loader.load_data_pack(ctx.directory / path)
コード例 #3
0
ファイル: my_plugins.py プロジェクト: mcbeet/beet
def add_greeting(ctx: Context):
    i18n = ctx.inject(Internationalization)
    i18n.set("greeting.hello", en_us="hello", fr_fr="bonjour")

    greeting_count = ctx.meta["greeting_count"]

    ctx.data["greeting:hello"] = Function(
        ['tellraw @a {"translate": "greeting.hello"}'] * greeting_count,
        tags=["minecraft:load"],
    )
コード例 #4
0
ファイル: livereload.py プロジェクト: mcbeet/beet
def livereload(ctx: Context):
    link_manager = ctx.inject(LinkManager)
    if not link_manager.data_pack or not ctx.data:
        return

    data = create_livereload_data_pack()
    livereload_path = data.save(link_manager.data_pack)
    link_manager.dirty.append(str(livereload_path))

    with ctx.worker(livereload_server) as channel:
        channel.send((link_manager.minecraft, livereload_path))
コード例 #5
0
ファイル: livereload.py プロジェクト: mcbeet/beet
def beet_default(ctx: Context):
    autosave = ctx.inject(Autosave)
    autosave.add_link(livereload)
コード例 #6
0
def beet_default(ctx: Context):
    document = ctx.inject(Document)
    document.directives["plugin"] = PluginDirective(ctx)
コード例 #7
0
ファイル: demo.py プロジェクト: mcbeet/beet
def beet_default(ctx: Context):
    ctx.inject(HELLO_PATH).thing()
    ctx.inject(WORLD_PATH).thing()
コード例 #8
0
ファイル: relative_location.py プロジェクト: mcbeet/lectern
def beet_default(ctx: Context):
    document = ctx.inject(Document)
    document.loaders.append(RelativeNamespacedResourceLoader(ctx))
コード例 #9
0
ファイル: json_reporter.py プロジェクト: mcbeet/beet
def beet_default(ctx: Context):
    with ctx.inject(JsonReporter).activate():
        yield
コード例 #10
0
ファイル: json_reporter.py プロジェクト: mcbeet/beet
def data_pack_zip(ctx: Context):
    json_reporter = ctx.inject(JsonReporter)
    json_reporter.data.setdefault("data_pack",
                                  {}).update(create_pack_zip(ctx.data))
コード例 #11
0
ファイル: json_reporter.py プロジェクト: mcbeet/beet
def data_pack_listing(ctx: Context):
    json_reporter = ctx.inject(JsonReporter)
    json_reporter.data.setdefault("data_pack", {}).update(
        create_pack_listing(ctx.data, json_reporter.opts.binary_files))
コード例 #12
0
ファイル: json_reporter.py プロジェクト: mcbeet/beet
def resource_pack_zip(ctx: Context):
    json_reporter = ctx.inject(JsonReporter)
    json_reporter.data.setdefault("resource_pack",
                                  {}).update(create_pack_zip(ctx.assets))
コード例 #13
0
ファイル: json_reporter.py プロジェクト: mcbeet/beet
def stdout(ctx: Context):
    json_reporter = ctx.inject(JsonReporter)
    json_reporter.data["stdout"] = json_reporter.stdout.getvalue()
コード例 #14
0
def beet_default(ctx: Context):
    ctx.inject(Document).directives["custom_directive"] = custom_directive
コード例 #15
0
def beet_default(ctx: Context):
    document = ctx.inject(Document)
    document.loaders.append(handle_yaml)
コード例 #16
0
ファイル: require.py プロジェクト: mcbeet/lectern
def beet_default(ctx: Context):
    document = ctx.inject(Document)
    document.directives["require"] = RequireDirective(ctx)
コード例 #17
0
def beet_default(ctx: Context):
    document = ctx.inject(Document)
    document.directives["hello"] = hello
コード例 #18
0
def beet_default(ctx: Context):
    messages = ctx.inject(MessageManager)
    ctx.template.env.filters["msg"] = messages.get_as_string  # type: ignore
コード例 #19
0
def beet_default(ctx: Context):
    document = ctx.inject(Document)
    document.directives["script"] = ScriptDirective(ctx)