本文共 3173 字,大约阅读时间需要 10 分钟。
刚开始制作网站时,我的文件分散在我的/ var / www目录中。 随着我向专业设计师学习和学习,我发现在某些子目录(如css , fonts和image)中构建更聪明。 最终,我了解到,标准化文件结构使我可以更轻松地在项目之间轻松切换,而不必使用新的布局来定位自己。
对于Python和C ++项目,音乐项目,电影作品,甚至电子项目也是如此。 实际上,几乎任何创造性的计算机工作通常都涉及将各种类型的几个文件组织到目录中。
如果您经常处理需要相同目录集的项目,那么这将花费大量的设置时间。 当您真正想要做的只是开始工作时,您一次又一次地创建了相同的旧的空目录树。
解决这个问题不是火箭科学。 您可以创建一个不变的主模板目录,然后在每次启动新项目时将其复制。 您可以为或Bash脚本添加一些命令别名。
有许多选择,其中许多相当明显。 但是,在电影行业工作时,我发现很少有选择能够同时满足非技术用户和技术用户的需求。 答案? 。
Planter是一个用Python 3编写的简单应用程序。它的唯一目的是根据用户定义的模板创建空目录结构。 它使用简单的GUI,以便使不熟悉Unix Shell的用户可以轻松创建项目目录,但是它也为喜欢该Shell的用户提供命令。
它的用法很简单。 在“ 项目名称”字段中输入名称,并在该目录中创建一个位置,然后单击“ 创建”按钮。 这将在您提供的目录名称下,在您指定的任何位置创建默认目录树。
在外壳程序中,过程类似,但更为灵活:
$ planter
没有参数的planter命令在当前位置的名为Directory的文件夹中创建默认目录树。
$ planter --destination ~ / projects foo
通过向命令提供更多信息,例如,您可以在主目录的projects文件夹下创建一个默认目录树,名称为foo 。
在电影制片厂中,目录结构可能非常复杂。 通常,顶级目录是电影的标题或制作代号。 在此之下是工作室要制作合同的每个场景的目录。 在每个目录中都有单独的镜头。 每张照片中都有几种资产类型的目录:板,网格,纹理,运动捕捉数据, 转储,参考照片,情节提要以及其他不同艺术家在项目上所需的其他东西。
许多类型的数据跨越多个镜头,因此,如果影片中的其他每个镜头都需要将Godzilla的皮肤纹理放入镜头001中,这是没有意义的。 但是它仍然需要可访问性,否则哥斯拉将无法为管道中的每个人正确渲染。
因此,工作室内部的目录结构经常充满从一个位置到另一个位置的符号链接(或“别名”)。 在Planter中,您可以为每个新项目定义一个根共享资产位置。 默认情况下,此位置设置为/ usr / local / share ,但是可以在GUI的“ 共享位置”字段中或使用--shared标志对其进行自定义:
$ planter --destination ~ / projects --shared / movie / assets foo
播种机最初是为在视觉效果工作室使用而开发的,那里有一个用于项目树的标准模板,因此始终只有一种类型的项目:需要效果的电影。 但是,当独立艺术家开始使用Planter时,很明显,它不仅是VFX房屋的一种有用的组织工具。
作为响应,可定制的模板系统已添加到Planter中,以允许用户为各种项目类型创建标准化的目录树。 例如,电影制作可能需要纹理,网格和板,但是摇滚乐队对此毫无用处。
模板系统由YAML(一种简单直观的文本格式)驱动。 模板的顶层是项目类型,可以是对用户有意义的任何术语。 音乐家可以定义一种项目类型,称为摇滚 ,另一种称为管弦乐队 ,或者多媒体艺术家可以定义项目类型, 音乐和另一部电影 。 这是一个任意术语。
项目类型下方是Planter应该为该项目制定的目标列表。 目标有四种类型:目录, symlink和symdir关键字(用于创建到文件或目录的符号链接),以及关键字copyfile(用于复制文件)。
还有两个全局设置,它们用作所有Planter操作的默认值:
必须存在默认模板,但是可以定义任何数量的项目类型。
这是一个模板文件的示例,其中设置了自定义全局变量并定义了三个项目:
var: - COMMON: "/nfsdrive/artkit" - NAME: "Project" default: - mkdir: font - mkdir: graphic - copyfile: / nfsdrive / everylicense / cc / cc-by-sa.md:LICENSE web: - mkdir: css - mkdir: font - mkdir: img music: - symdir: % COMMON %/ soundfont:soundfont - symdir: % COMMON %/ bank:bank - mkdir: midi - mkdir: audio - mkdir: data - mkdir: bounce
要使用以下任何模板:
$ planter --type web --destination ~ / public_html mysite
用户报告的使用Planter的好处之一是可以通过重复进行更好的组织。
大多数艺术家,不管是图形,音乐,网页设计还是代码,都从一个空目录开始,并在工作时建立结构。 您开始时想做一个快速而又小巧的项目,“只是为了好玩”,三周后,您意识到正在进行的工作有五个不同版本,从本地字体目录中提取的字体,一些画笔从您的下载文件夹中,还有谁知道。 更糟糕的是,您上个月执行的项目虽然工作流程基本相同,但目录结构却完全不同。 您不可能将这些项目从创建它们的机器上移开,因为您有许多未知的依赖项,例如字体和画笔,因此您只导出最终草案,希望不再需要这些源。
最好的情况令人沮丧,但最坏的情况是,它在旨在改善生活的平台上冒着工作完整性的风险。
无论出于何种原因,出售给消费者的计算机似乎都预设了相同的空文件夹集:文档,音乐,图片和电影。 现在该承认我们的大多数生活都不适合这四个类别了。 创建自己的类别,并以适当的组织开始每个项目,以便您的工作可以发展壮大。
翻译自:
转载地址:http://egszd.baihongyu.com/