Giter VIP home page Giter VIP logo

archivist's Issues

Add multiple article fixtures for testing

Testing is currently only being performed with a single article fixture. Let's add a few different article examples in sub-directories to ensure that attribute lists are being parsed and compiled as expected.

Add support for image parsing

Add functionality for storing images at priv/images in the target image directory, and parsing available image filenames.

Add compile-time constraints for author names

Add some kind of functionality for allowing users to create a constrained list of author names, allowing only those specific author names to be used. Articles with author names that do not exist within the constrained list should throw warnings at compile-time.

Add compile-time contstraints for tags

We need some kind of functionality for allowing users to create a constrained list of tags for each application, allowing only certain tags to be used within articles. Articles that apply tags that do not exist within the constrained list should throw errors at compile-time.

Add docs for using intermediate Archivist repository

The best design pattern for using Archivist seems to be installing it in an intermediary mix library (some_app_blog etc.), collecting the archived articles and image there, and then including the intermediate mix library in the final target application. This approach separates clutter from commit messages related to the content into an archive/content-specific repository, and allows the consumer library to focus just on commits for code. We need documentation in the README and/or Wiki to outline this process and how it needs to be setup, both as an intermediate library and in the final destination (including using Plug.Static to serve image assets).

Integrate article_parser option into parsing workflow

The article_parser Archive flag currently is unused and is a placeholder. We need to inject this into the article parsing workflow so that content is actually parsed using the module or anonymous function stored in the article_parser setting.

Add archive_root option to abstract priv path issue

Currently the archive_dir option has to change if the application flag is used to utilize a 'remote-style' archive. This seems like an antipattern. archive_dir should refer only to the name of the archive directory, and the archive_root should be the path to the entire archive entity.

Add docs for using Archivist through an OTP app

README and docs currently outline a basic workflow for using Archivist in the same Mix library/application in which the archive content is being held, but we need to outline the process of referencing content from an external OTP application being used as a dependency.

Resolve assets dirs relative to the app priv path

Assets directories for articles and images are currently being resolved relative to the current working directory (Path.relative_to_cwd) but should be resolved to the priv dir for the target BEAM application that is housing the archive assets (Path.join(:code.priv_dir(:some_app), "archive")).

We need to add an archive option to determine which app is housing the target assets, either instead of the current solution or as an override to the existing approach.

Add intelligent parsing for system-wide topic hierarchies

Currently Topics and sub-topics are being parsed as single-level entities and mixed together without any enforced hierarchy. The topics parser should retain the hierarchy set forth in all articles and infer topics and sub-topics based on the hierarchy established in the articles.

Consolidate articles and image dirs into common priv/archive dir

Articles and images are currently stored in separate directories in the priv dir, which could get messy for applications that already have several directories under priv. By default these should be grouped into a top-level priv/archive dir to create less clutter in the priv dir.

Allow parsing content from external OTP applications

Currently Archivist only works if it is implemented as a dependency in the application where the content and images also reside. We need to add functionality to allow the user to declare which
OTP app to fetch the content from so that content paths are correctly resolved to the target directory, not just the current working directory.

Add compile-time constraints for Topics

Add some kind of functionality for allowing users to create a constrained list of topics and sub-topics, allowing only those specific topics and sub-topics to be used by articles. Articles that apply topics and sub-topics that do not exist within the constrained list should throw errors at compile-time.

Add option for parsing topics from directory paths or articles

Currently topics are being parsed based on the directories and sub-directories used to store the articles within the archive. The user should have the option to ignore those directory paths and instead use only the topic hierarchies listed within the article arcdown content itself.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.