跳转到主要内容

用于LSST PDF文档的HTML着陆页生成器,从Git部署到LSST the Docs。

项目描述

Lander

Python Package Index Travis CI build status

用于LSST PDF文档的HTML着陆页生成器,从Git部署到LSST the Docs。

安装

Lander适用于Python 3.5或更高版本。您可以从PyPI安装它

pip install lander

运行 lander -h 以获取命令行帮助。

用法

基本用法

要创建一个着陆页网站,使用本地PDF文件的路径运行 lander

lander --pdf <path>

构建的PDF着陆页网站默认情况下位于 _build 目录中。通过运行Python网络服务器在浏览器中查看该网站

cd _build && python -m http.server 8000 --bind 127.0.0.1

从lsstdoc文档获取元数据

使用 --lsstdoc <tex path> 参数,Lander将尝试从 lsstdoc-class LaTeX文件的源中抓取元数据,包括

  • 摘要

  • 作者

  • 文档处理

  • 标题

有关 lsstdoc 类的信息,请参阅 https://lsst-texmf.lsst.io

从Travis环境获取元数据

如果您在Travis CI上运行,请设置 --env=travis 以从Travis的环境变量获取元数据

  • $TRAVIS_COMMIT

  • $TRAVIS_BRANCH

  • $TRAVIS_TAG

  • $TRAVIS_REPO_SLUG

  • $TRAVIS_JOB_NUMBER

覆盖元数据

Lander会尽可能从环境中获取尽可能多的元数据(包括从Git仓库和LaTeX文档本身),但有时这是不可能的。在这种情况下,您可以使用以下标志显式设置元数据(有关更多信息,请参阅 lander -h

  • --abstract

  • --authors(见注解)

  • --title

  • --handle(例如 LDM-151

  • --repo-url(例如 https://github.com/lsst/ldm-151

  • --repo-branch(例如 master

  • --date(例如 2017-05-22

  • --docushare-url(首选多版本形式,https://ls.st/ldm-151*

--authors 应该是JSON格式的数组,即使只有一个作者也是如此。例如

--authors "[\"First Author\", \"Second Author\"]"

从着陆页分发额外文件

要包括与主PDF文档一起的辅助文件,请使用 --extra-download 参数提供它们的文件路径。这些额外文件列在着陆页的 下载 部分。主PDF始终在列表中首先列出。

例如

--extra-download demo.ipynb

上传到LSST the Docs

Lander与LSST the Docs配合良好。Lander可以使用这些配置直接为您上传LSST the Docs页面。

  • --upload — 提供此标志以指示应上传构建。

  • --ltd-product — LSST the Docs上的产品名称。

  • --keeper-url$LTD_KEEPER_URL

  • --keeper-user$LTD_KEEPER_USER

  • --keeper-password$LTD_KEEPER_PASSWORD

  • --aws-id$LTD_AWS_ID

  • --aws-secret$LTD_AWS_SECRET

注意:这些是高级配置,通常自动添加到CI配置中或由文档工程师添加。有关帮助,请联系Slack上的 #dm-docs

开发工作流程

您需要Python 3.5+ 和 node.js 来开发Lander。

初始设置

克隆并安装依赖项(使用您选择的Python虚拟环境)

git clone https://github.com/lsst-sqre/lander
cd lander
npm install -g gulp-cli
npm install
gulp assets
pip install -e ".[dev]"

运行Python测试和linting

我们使用pytest进行单元测试和样式检查

make pytest

您还可以运行着陆页构建的端到端测试

make test

这些集成测试会克隆真实的LSST文档,使用Docker编译它们,并构建着陆页以模拟生产环境中的持续交付工作流程。请查看 _tests 中的站点。

构建开发网站

默认的 gulp 工作流程创建网站资源并生成测试网站

gulp

此Gulp任务运行browsersync服务器,并在CSS、JavaScript或HTML资源更改时刷新页面。

仅构建资源

如果您只想构建CSS、图标和JavaScript资源,请运行此任务

gulp assets --env=deploy

这是在CI上构建Lander发布版本时资源构建的方式。

在Lander中开发CSS/Sass

Lander使用squared进行视觉设计。所有Lander CSS都应该提交到squared仓库,以便LSST SQuaRE网络项目共享一种共同的视觉语言。

为了使在Lander中开发落地页面时编写Sass更加容易,我们建议将squared的克隆链接到Lander的node_modules。假设您从lander/根目录开始

git clone https://github.com/lsst-sqre/squared ../squared
npm link ../squared

一些模式

  • 如果您在squared中工作在分支上,请将package.json中的squared版本更新到该分支。例如:"squared": "lsst-sqre/squared#tickets/DM-10503"。这允许Travis在测试Lander时安装squared的开发版本。发布Lander新版本之前,请记住先发布squared,详情见下文。

  • lander仓库中的scss/app.scss导入了squared和其他包(包括inuitcss)的Sass部分。

发布工作流程

  1. 如果squared已被修改,首先创建一个squared发布。

  2. 使用已发布的squared版本更新package.json。使用带标签的npm发布版本比GitHub分支更可取,以便使发布版本的构建可重复。

  3. 创建一个签名标签:git tag -s 0.1.0 -m "v0.1.0"。使用PEP 440模式。

  4. 推送标签:git push --tags。这将自动在PyPI上创建一个Lander发布。

  5. 根据需要合并开发分支。

许可证

本项目采用MIT许可证开源。有关详细信息,请参阅LICENSE

变更日志

1.0.6 (2023-07-04)

  • 锁定pydantic<2.0.0

  • 停止支持Python 3.7。

1.0.1 (2021-05-11)

  • 锁定click<8,因为Click 8.0.0目前触发--version模式,无论是否在命令行上设置。

1.0.0 (2021-01-06)

这是Lander的第一个发布版本!版本1发布线基于0.1发布,此线将继续维护Lander的现有用户。

Lander的新版本正在开发中,版本2.0,它将包括用于添加自定义文档解析器和网站主题的插件接口。

0.1.16 (2019-07-04)

  • 更新Jinja到>=2.10.1以解决CVE-2019-10906。

  • 更新资产构建管道到Gulp 4,并在此同时更新所有其他npm依赖项。

0.1.15 (2019-04-02)

  • lsst-projectmeta-kit更新到0.3.5,以改善作者解析。

  • requests更新到2.20.0(安全)。

0.1.14 (2019-02-18)

  • Lander现在在Travis CI上构建时会干净地终止,但安全环境变量不可用。如果构建是由分叉触发的,就会发生这种情况。

  • 切换到使用$TRAVIS_BUILD_WEB_URL以获取构建的URL。这在travis-ci.org到travis-ci.com过渡期间计算构建URL时更好。

  • 将测试依赖项更新到pytest 4.2.1。

  • 切换到setuptools_scm进行版本字符串管理。

0.1.13 (2018-11-26)

  • 升级到lsst-projectmeta-kit 0.3.3以改进TeX源中对输入和包含命令的检测。

0.1.12 (2018-02-10)

  • 升级到lsst-projectmeta-kit 0.3.1以提高metadata.jsonld生成的可靠性(解决了pandoc将某些文档转换为纯文本时的问题)。有一个新的集成测试make dmtn070演示了这一点。

  • 改进测试策略:- 运行make pytest以使用正确的参数运行pytest,而不是在setup.cfg中使用--add-opts。这允许我们直接使用临时参数运行pytest。- 运行make test以同时运行pytest和集成测试。

0.1.11 (2018-02-07)

  • Lander现在会在着陆页内容(例如index.html)旁边创建和上传metadata.jsonld文档。其他工具可以将此内容导入到LSST Projectmeta数据库中。

  • 从metasrc切换到lsst-projectmeta-kit 0.3.0。这是一个相同的包,但新命名的lsst-projectmeta-kit包括从LsstLatexDoc对象生成JSON-LD的能力。

0.1.10 (2017-12-11)

  • 将DocuShare的已知域名从docushare.lsstcorp.org更改为docushare.lsst.org。这确保ls.st短链接可以继续验证。

  • 为abstract_plain和title_plain创建默认值。这解决了底层LaTeX文档中未设置摘要的情况。

0.1.9 (2017-11-20)

  • 将metasrc更新到0.2.2以解决Travis CI中自动下载Pandoc的问题(DM-12569)。

  • 将pytest更新到3.2.5和pytest-flake8更新到0.9.1以解决浮动间接依赖中的不兼容性。

0.1.8 (2017-10-09)

  • 将metasrc更新到0.2.1

  • 使用metasrc的LsstLatexDoc.revision_datetime获取文档的日期。此方法结合了解析\date LaTeX命令、查看内容Git提交以及回退到“now”以获取适当的时间戳。

0.1.7 (2017-09-28)

  • 将metasrc更新到0.2.0。这为从LaTeX文档提取的内容提供了Pandoc集成,以改进HTML渲染。

  • 改进日志记录器的配置(第三方日志记录器的警告级别,以及LSST SQuaRE代码的第一方info/debug级别)。

0.1.6 (2017-09-07)

  • 将metasrc更新到0.1.4。此更新提供了改进的LaTeX命令元数据提取。(DM-11821)

  • 暂时跳过ls.st和DocuShare相关的单元测试,因为由于DocuShare升级,ls.st链接到DocuShare已损坏。

0.1.5 (2017-07-12)

  • 锁定metasrc到0.1.3

  • 通过metasrc改进了LaTeX源处理,包括处理引用源文件(\input和\include)和宏(\def和\newcommand)。

  • 改进了对草稿状态的对待。启发式方法是一个文档被认为是草稿,如果分支不是master并且lsstdraft不在lsstdoc文档的选项中。

0.1.4 (2017-07-06)

  • 修复了确定Lander是否在Travis PR环境中运行的逻辑。

  • 在启动时记录Lander版本。

0.1.3 (2017-07-02)

  • 修复了Travis部署问题。在.travis.yml中使用skip_cleanup: true以防止在创建发布版之前清理CSS和JS资产。

0.1.2 (2017-06-27)

  • 检测是否从Travis PR构建运行(使用TRAVIS_PULL_REQUEST环境变量),如果是,则终止页面构建和上传。这是为了防止基于分支和PR的Travis作业的双重上传。

  • 由于beta5中删除了rem函数,将inuitcss锁定到6.0.0-beta4。

0.1.1 (2017-06-17)

  • 更新到 metasrc>=0.1.1,<0.2

  • 从 metasrc 使用 remove_commentsremove_trailing_whitespace 功能。这提高了从 tex 源提取元数据的准确性。例如,注释字符不会出现在提取的摘要内容中。

0.1.0 (2017-05-24)

初始版本。

  • 通过 PDFObject 原生显示 PDF。

  • 用于填充着陆页的多级元数据模型。Lander 使用 https://github.com/lsst-sqre/metasrctex 源提取内容(需要更多工作)。否则,它从环境变量(包括 Travis CI 变量)获取数据。最后,可以使用命令行参数显式指定元数据。

  • 使用 https://github.com/lsst-sqre/squared 进行 CSS、图标和标志。Gulp 和 webpack 流程将这些源构建为可部署的依赖项。Gulp 和 webpack 只需开发者 CI;可部署的工件包含在 PyPI 发布中。

  • 发布工作流程在 Travis 中完全自动化。创建 PEP 440 版本标签,推送它,发布就会出现在 PyPI 上。

  • 内置了 LSST the Docs 上传客户端(通过 https://github.com/lsst-sqre/ltd-conveyor),因此不需要 https://github.com/lsst-sqre/ltd-mason

  • 使用和开发文档目前位于 README 中。

MIT 许可证

版权所有 (c) 2017 天文研究大学协会

特此授予任何人获得此软件及其相关文档文件(“软件”)副本(以下简称“软件”)的权利,无需支付任何费用,自由地使用该软件,不受任何限制,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或销售软件副本,并允许获得软件副本的人进行此类操作,但以下条件适用

上述版权声明和本许可声明应包含在软件的所有副本或实质性部分中。

软件按“原样”提供,不提供任何明示或暗示的保证,包括但不限于适销性、针对特定目的的适用性和非侵权性保证。在任何情况下,作者或版权持有人均不对任何索赔、损害或其他责任负责,无论该索赔、损害或其他责任是基于合同、侵权或其他方式,是否与软件或其使用或其他交易有关。

项目详情


发布历史 发布通知 | RSS 源

下载文件

下载适用于您平台的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。

源代码分发

lander-1.0.7.tar.gz (77.1 kB 查看哈希值)

上传时间 源代码

构建分发

lander-1.0.7-py3-none-any.whl (80.0 kB 查看哈希值)

上传时间 Python 3

由以下机构支持