Giter Site home page Giter Site logo

bucephalus's Introduction

bucephalus's People

Contributors

aelzenaar avatar

Watchers

 avatar  avatar

bucephalus's Issues

More sane file storage

Instead of storing file.tex and file.pdf like YYYY/MM/DD/src/file.tex and YYYY/MM/DD/file.pdf, store them like YYYY/MM/DD/file/file.tex and YYYY/MM/DD/file/file.pdf. This allows us to serve support files (e.g. images) along with the files themselves, allowing us to properly implement #9 .

Centralise database open

Currently, every subroutine which wants to access database.db will open its own database instance. This should be moved into its own function in dbops, so that we can globally change database opening parameters like indent.

Add support for HTML output into bucvac

(Depends on #3.)

Add support for outputting an HTML render rather than a PDF render from bucvac upon adding. This will also require testing to make sure that HTML outputs are rendered correctly by the browser in the iframe, otherwise we may need to do some mimetype fiddling like the small piece of code already in server.py that handles markdown.

Implement chains and next/prev links

On /v/ pages, the next/prev links should point to (for example) the next/previous day with articles. (This will require us to pass the list of items in each db entry around.)

Inside the database, there will be a `chains' table which points to the first article in each chain; then each item in the chain will be linked (1) back to the chains table entry, and (2) to both the next and previous items as a doubly-linked list.

Caching in dbops

Code like this:

  if year == None:
    years = []
    for item in db:
      if not(item['ts_year'] in years):
        years.append(item['ts_year'])
    return sorted(years)

Belongs on tdwtf (does anyone still read that? :o). Iterating through every item in the database just to enumerate the possible values of 'ts_year' tags? Really? We need to cache this, and every place where this kind of pattern occurs, before my database gets too big.

Possible implementation: add an additional table in the database to store [years/months/whatever], add a command-line to update it manually (based on iterating the full db), and update it whenever we add/update an article (i.e. check whether the year attached to the article is in the table, if not add it).

Better tag management

This feature would consist of two parts:

  1. Expose multi-tag views in the web UI.
  2. Provide a nice command-line interface, like buctask, for tag management. (This tool could also handle chain management, for #2).

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.