Apache AutoIndex and Python PEP 503



我正在尝试基于这些说明设置一个简单的Python存储库。

我创建了所需的目录结构,但是pip找不到任何版本。在深入研究主题并参考PEP 503-简单存储库API之后,我发现自动生成的HTML网站的结构应为:

<!DOCTYPE html>
<html>
  <body>
    <a href="/frob/">frob</a>
    <a href="/spamspamspam/">spamspamspam</a>
  </body>
</html>

同一PEP还说:

锚标签的文本必须是项目的归一化名称 HREF属性必须链接到该特定的URL 项目。

在我的情况下,看起来像:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
<html>
 <head>
  <title>Index of /</title>
 </head>
 <body>
<h1>Index of /</h1>
<ul><li><a href="packet_name/"> packet_name/</a></li>
</ul>
</body></html>

请注意开始时的空格,并在<a>标签的末端砍伐。是

<a href="packet_name/"> packet_name/</a>

,但应该是

<a href="packet_name/">packet_name</a>

当前看起来像这样的.htaccess文件:

Options +Indexes
IndexOptions SuppressColumnSorting -FancyIndexing
IndexIgnore ..

有没有办法指示Apache按PEP 503的要求使用目录布局?

事实证明,链接的格式不是问题,而是归一化文件夹结构。PEP 503期望将文件夹在根级别上进行标准化。考虑该项目的名称为foo_bar。然后,目录布局必须为:

.
|- foo-bar
|-- foo_bar-0.1.tar.gz

请注意,该文件夹通过用单个-替换., -, or _字符"归一化"。之后.htaccess文件和自动基因索引工作正常。

这是PEP 503的相关部分:

是PEP参考"归一化"项目名称的概念。按照 PEP 426名称中唯一有效的字符是ASCII字母, ASCII数字,。, - 和_。该名称应与所有人相提并论 字符的运行。, - 或_替换为单个字符。 可以在Python中使用RE模块实现:

最新更新