revolter/idealist-bundle

用于Symfony组件的包。创建文本的视觉框架。文本传播的基础。独立作者文本的协同编辑和发布。

dev-master 2017-12-20 08:57 UTC

This package is not auto-updated.

Last update: 2024-09-29 05:41:47 UTC


README

技术上是用于Symfony的包,它将Markdown格式的文本转换为更简单、更易于阅读和使用的视图。主要目标是最大程度地简化从思想到纸张打印和在社会中传播的路径。

总的来说,这个包足以在Symfony或Laravel等任何使用Symfony组件的项目中部署完整的文本访问点 - 任何其他使用Symfony组件的项目。工作正在进行中。要连接到项目,请通过composer.json添加依赖,并导入或配置文本路由。

安装和配置

composer require "revolter/idealist-bundle:dev-master"composer require revolter/idealist-bundle

然后,将包的初始化添加到 app/AppKernel.php new Revolter\IdealistBundle\RevolterIdealistBundle(),

安装后,包的代码将位于项目根目录下的同一名称的文件夹中。通常这是根目录下的 vendor 文件夹。然后整个路径是 vendor/revolter/idealist-bundle。那里将有两个文件需要单独复制。

  • base.html.twig - 项目页面的主模板。在代码中引用计数器文件
    • counters.html.twig - 统计计数器文件

有三种选择。建议创建对 base.html.twig 的链接,然后复制并编辑 counters.html.twig,在其中添加自己的统计计数器。

  • 如果不需要计数器,则对两个文件进行链接
  • 如果需要自定义设计,则复制两个

例如,如果您的项目是基于Symfony的,您需要将这两个文件复制到 app/Resources/views 文件夹中。这样,您就可以根据需要编辑标准项目设计,并添加自己的统计计数器。包仅负责生成文本/内容以及生成用于打印的文本,其他格式也是如此。在复制/修改 base.html.twig 时,可能会使更新复杂化。

配置需要指定包的标准参数,例如默认文本(index_idea),当访问主页时将打开该文本。参数在项目的 parameters.yml 文件中指定。

    index_file: README # Имя файла текста
    index_idea: revolter-social-project # Текст по умолчанию
    index_name: info # Ссылка по умолчанию
    path.web: '%kernel.root_dir%/../web' # Папка веб
    path.idea: '' # Папка идеи
    path.texts: '%path.web%/texts' # Папка текстов

样式、图片、脚本

由于包涉及设计更改,因此样式和背景图片以及使用它们的模板不会自动安装。格式位于包的 Resources/public 文件夹中。

  • php app/console assets:install --symlink - 这个命令会自动复制或创建资源文件的链接。选项 --symlink 创建资源的一个简单链接而不是复制文件。这样,在更新包时,您无需更新之前复制的文件。
    • 模板中的 css 文件路径将根据项目的 assets 配置自动生成。您可以配置项目配置的这部分,或者更改访问样式的路径,或者将样式的路径硬编码到模板中。
  • 您可以手动将内容复制到项目的网络根目录中,通常这是 web 文件夹。这样,您将添加至少一个包含模板样式和背景的 web/static 文件夹。您将能够编辑样式,并且需要更新模板中 css 文件的链接,但更新将会变得困难。

添加文本

文本从独立的仓库中连接 - 每个想法在一个仓库中,一个项目。文本包关联文本名称和路由。文本必须放置在可从Web访问的根公共文件夹中的 texts 文件夹中。在Symphony项目中,这是 web 项目文件夹。

至少有三种方法可以连接文本。

  • 最简单的是将文件复制到相应的文件夹中。一个缺点是更新无法自动化,每次都需要手动更新。这将是您网站上文本过时的主要原因。
  • 使用命令 git clone <repo> <web/texts/name-repo> 将仓库 <repo> 克隆到 <web/texts/name-repo> 的位置,其中 web/texts 是文本文件夹,而 name-repo 是文本/仓库的名称。例如,将关于分布式社区的文本克隆到 git clone https://github.com/revolter-idealist/distributed-community web/texts/distributed-community
    • 要更新,需要转到文本文件夹并执行命令 git pull - 新文本将自动下载/更新。
    • 优点是您还可以直接在这个文件夹中编辑文本,并将更改发送到服务器。
    • 缺点是必须为每个文本执行命令。如果您的核心项目也受版本控制,可能会发生冲突。
  • 将文本作为子模块添加到您的项目中 git submodule add <repo> <web/texts/name-repo>。命令与上一个几乎相同,但有一些优点。
    • 可以使用一个命令 git submodule update 更新所有文本。
    • 与项目根仓库没有冲突。子模块补充了它。

最好将文本添加为子模块。这样,可以直接从其文件夹中在项目中处理文本。如果您只是下载文本,可以轻松地使用一个命令更新它们的所有状态。在这种情况下,发布项目后,可以轻松地使用一个命令克隆和部署,包括之前添加的文本子模块。这需要知道三个Git命令,但我还没有找到更简单的方法。

常见问题解答 - 问题/答案

为什么文本文件夹在公共访问中? - 公开性将取决于您服务器/托管服务的设置。最好是使文本文件夹可访问。这样,就可以

  • 直接访问源代码/文本
  • 可以复制/克隆文本仓库

不轻易使用子模块 - 子模块在创建完整的文本项目并使用一个命令在分布式系统中克隆它时具有优势。我目前不知道其他实现这一目标的方法。