acdh-oeaw/arche-biblatex

分发服务从 ARCHE 元数据生成 BibLaTeX 书目信息数据 (.bib 文件)

1.8.1 2024-02-26 15:17 UTC

This package is auto-updated.

Last update: 2024-08-26 16:16:46 UTC


README

一个 ARCHE 分发服务,提供将资源元数据映射到 BibLaTeX 书目条目的功能。

安装

  • 在 web 服务器 docroot 中运行
    composer require acdh-oeaw/arche-biblatex
    ln -s vendor/acdh-oeaw/arche-biblatex/index.php index.php
    cp vendor/acdh-oeaw/arche-biblatex/config-sample.yaml config.yaml
  • 调整 config.yaml

使用方法

http://deploymentUrl/?id=url-encoded-arche-resource-identifier&lang=preferredLanguageCode

可选地,也可以提供一个 override 查询参数,提供 URL 编码的 BibLaTeX 书目条目或其片段。它与来自 ARCHE 资源元数据(如下文所述)的 override 作用相同,只是在之后应用。

覆盖规则

  • 基本的 BibLaTeX 书目条目是根据在 config.yaml 中提供的映射创建的。映射是根据 ARCHE 资源 RDF 类别选择的。
  • 然后应用由 config.yaml->biblatex->biblatexProperty 配置选项指定的 ARCHE 资源元数据属性指定的覆盖。
  • 最后应用来自 override 请求参数的覆盖。

详细信息

  • 所有书目条目信息,包括条目类型和引用键都已被覆盖。如果您想保留条目类型和/或引用键
    • 则可以使用“魔法”NOOVERRIDE 类型/引用键值,例如。
      @NOOVERRIDE{NOOVERRIDE,
        fieldToOverride = {overriding value},
      }
      
    • 或者只提供 BibLaTeX 字段,跳过书目条目头部(以及最后的括号),例如。
      fieldToOverride = {overriding value},
      
  • 如果您想从输出中跳过一个字段,可以用空值覆盖它。

示例

比较样本资源的输出(https://hdl.handle.net/21.11115/0000-000E-753C-C)。
(请注意以下提供的相同数据也可以在“自定义引用”资源元数据属性中提供)

Docker 部署

build/docker 目录包含一个 Dockerfile,定义了服务的运行环境。

该构建过程需要一个名为 VARIANT 的参数,可以是 productiondevelopment,这将影响 PHP 的 ini 设置 - 请参阅 https://hub.docker.com/_/php 中的配置部分。

在构建过程中,它期望所有服务文件(包括 composer 库和所需的 config.yaml)都位于 build/docroot 目录中。

对于实际开发,您只需使用空的 build/docroot 目录进行构建,并在 docker run 时挂载服务文件。

示例

  • 创建生产镜像
    # install dependencies skipping development ones and optimizing autoloader
    composer update --no-dev -o
    # prepare the docroot using build/config/arche.yaml as the config.yaml
    mkdir build/docroot && cp -R index.php src vendor build/docroot/ && cp build/config/arche.yaml build/docroot/config.yaml
    # build the image
    docker build --rm -t acdhch/arche-biblatex --build-arg VARIANT=production build
    # try to run it locally
    docker run -d --name arche-biblatex -p 80:80 acdhch/arche-biblatex
    # check if it works locally
    curl -i 'http://127.0.0.1/?id=https%3A%2F%2Fid.acdh.oeaw.ac.at%2Fgtrans'
    # push the image to the registry
    docker push acdhch/arche-biblatex
    # redeploy on ACDH Kubernetes
    curl -X POST 'https://rancher.acdh-dev.oeaw.ac.at/v3/project/{pathToDesiredWorkload}?action=redeploy' -H 'Authorization: Bearer {myRancherApiToken}'
  • 创建开发镜像并在本地运行
    # install dependencies
    composer update
    # prepare an empty docroot
    mkdir build/docroot
    # build the image
    docker build --rm -t acdhch/arche-biblatex:dev --build-arg VARIANT=development build
    # run the image using current directory as a docroot making it available on local port 8080
    docker run -d --name arche-biblatex -p 8080:80 -v `pwd`:/var/www/html acdhch/arche-biblatex:dev
    # check if it works
    curl -i 'http://127.0.0.1:8080/?id=https%3A%2F%2Fid.acdh.oeaw.ac.at%2Fgtrans'