Git Product home page Git Product logo

blueink's Introduction

BlueInk™

GitHub license Patreon

BlueInk™ began in late 2005 from ideas gathered from previous projects, problems, and paper sketches. Over the years it grew into a unique and powerful CMS.

Using the current commercial Software-as-a-Service BlueInk CMS as the conceptual prototype, BlueInk is being rewritten into an Open Source CMS built on Apache CouchDB and Cloudant mostly as a CouchApp.

Development

It's a bit rough in here still...but improving!

  1. copy config.json.sample to config.json
  2. update it with your settings
  3. copy config_ui.json.sample to config_ui.json
  4. update it with your settings
  5. npm install
  6. npm run prosemirror to build & install ProseMirror
  7. npm run semantic to install Semantic-UI for rework to rework
  8. gulp rework to "namespace" Semantic-UI under .blueink-ui
  9. gulp
  10. visit the URL you stored in config.json sans login info plus /_design/blueink/_rewrite/

That should load the home (see home.json) page.

The site contents (content, templates, schemas, the whole shootin' match) lives in _docs. The BlueInk editing UI and CouchDB views live in _design/blueink.

The default gulp task will run browserify and push the resulting contents of the various Design Docs which make up BlueInk to the database you configured.

If you're working with CSS changes you'll need to re-run gulp rework as it is not (by design) part of the default gulp task. Also npm run semantic can be used in conjunction with a package.json tweak to update the underlying Semantic-UI code. If you've made changes to src/semantic/src/theme.config, you can use npm run styles to rebuild the CSS and then gulp rework.

Note: plans exist in my brain to restructure the top-level gulpfile.js and leverage Semantic's gulp stuff directly. Patches welcome! 😺

Page Demos

License

BlueInk on CouchDB is release under the Apache License 2.0

blueink's People

Contributors

bigbluehat avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

blueink's Issues

Refactor template system

There's a tricky balance between flexibility for designers/developers and consistent feature delivery (RDFa) among BlueInk sites. Try to balance that...simply.

Add Content Item sub-menu

Ran into some trouble with v-repeat over objects passed in with v-with...

Likely, there's a much better way to approach this anyhow as a stack of simpler Vue Models.

Refactor `type~{name}` document structure and finding system

Currently this thing's pretty tangled... 🍝

The doc.name === the type~{name} value. When really, doc.name should be the display name...or at least there should be a "pretty" display name stored somewhere.

Things to fix/refactor:

  • _view/by_type
  • _view/type_definitions
  • _list/types_list (...which is currently busted and unused...)
  • src/menu-content/*
  • type loading in main.js (which uses _view/type_definitions to load component.js files.

Somewhat related to #18 as getting this right means meaningful content shared "everywhere." Doing it wrong will be...less good... 😩

Store created/updated data

Options:

  • use an _update endpoint
  • set from the UI code
  • validate_doc_update (with either option)
    • prevents replication of non-valid docs...which is probably not what we want...actually

Use npm for `type~{name}` documents

Dug into this a bit last night, but hit issues with doing npm install, etc from gulp.

Ideally, you'd gulp the site project, it would in turn handle building all the type~{name} documents (and/or grabbing them from npm), and push them all to the database along with BlueInk itself (and possibly the BlueInk "core" types--assuming you've not overridden them.

create 'sitemap' doc generator MapReduce and _list

This MapReduce and associated _list function should be able to generate the 'sitemap' document. Initially it'll be requested and then stored (replacing the old 'sitemap') via the UI (on page add or URL change), but eventually it would be great to have this use view merging (once that's available).

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.