Giter VIP home page Giter VIP logo

clay-starter's Introduction

Clay

Clay is an open-source CMS created by New York Media powering New York Magazine, Vulture, The Cut, Grub Street and Slate.

Clay is comprised of modules available on npm, but the core system is comprised of Kiln, the editing interface, and Amphora, the REST API. For more information on the two modules please see documentation on each. The documentation in this space is meant to explain core concepts of Clay, but for a deeper technical dive you can explore the documentation for each of the modules themselves.

clay-starter's People

Contributors

amelvisfranco avatar dependabot[bot] avatar james-owen avatar jeanrodriguez avatar jonwinton avatar jpope19 avatar manuelurenah avatar mattoberle avatar phyllisstein avatar ritsok avatar robcombs avatar scottnash avatar

Stargazers

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

Watchers

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

clay-starter's Issues

Article Component Elastic Integration

Is your feature request related to a problem? Please describe.

When #24 is done we will need to integrate the article component with ElasticSearch so we can populate the feed component.

Describe the solution you'd like

We need to handle following questions/tasks:

  • Write a search service
    • Do we use an open source query builder or write our own
    • The query builder needs to be universal
    • Must be able to execute a query from the client
    • Must be able to execute a query from the server
  • Define a mapping for an index based on the metadata in the feed component requires
  • Write a handler for the article component to ship data to the Elastic index

Describe alternatives you've considered

N/A

Additional context

  • We will want to refer to the NYMag implementation for building indices and search.
  • We'll also want to amend the first-run bootstraps to include a greater set of sample data to demonstrate how the feed works and it's features

Simple paragraph component Links [WIP]

Is your feature request related to a problem? Please describe.

When you click on a paragraph link it redirects you to the page instead of open the link on a new tab

Describe the solution you'd like

As a reader I want to be able to open the link in a new tab so that I can continue reading the current article while I can also read the external links.

Acceptance Criteria

  • Sites links can open on the same tab
  • External links should open on a new tab

Subheader

screen shot 2019-02-22 at 10 45 52 am

Editing

  • Allow users to select between the three different font sizes
  • though the user-facing interface would only display as s/m/l.
  • it would have s/m/l options that would correspond to specific font and line-heights.
  • An id for each element should be computed from the text value so we can handle linking to individual sections. Follow GitHub's pattern for this id generation but also allow users to define their own value for this id

Issue with Handlbars version

Description

In edit mode, this error is thrown -

Template was precompiled with a newer version of Handlebars than the current runtime. Please update your runtime to a newer version (>= 4.3.0)

Steps to Reproduce

Start up server, go into edit mode

Expected Behavior

Correct runtime included with repo and edit page works

Additional

Clicking on various buttons, I also see this error

clay-kiln-edit.js?version=8.16.1:1 Error: Argument must be a string, not undefined

Could possibly be related to runtime version issue.

Headline

screen shot 2019-02-26 at 4 26 57 pm

  • Allow the users to edit article headline
  • WYSIWYG

Remove GOOGLE_CONSUMER_KEY from .env

Description

It has being pointed out that there is a Google consumer key inside the .env file that shouldn't be tracked by the version control.

Steps to Reproduce

Steps to reproduce the behavior:

  1. Go to this file: https://github.com/clay/clay-starter/blob/master/app/.env
  2. Check which keys should excluded

Expected Behavior

The .env file should be untracked and we can set a .env.sample file with sample key/values to maintain the standard

Screenshots

  • N/A

Additional Context

  • N/A

Global Footer

Is your feature request related to a problem? Please describe.

We need a simple, global footer

Describe the solution you'd like

The footer should be able to:

  • Render a logo
  • Display links to social media sites
  • Display links that a user can update via a complex list

Describe alternatives you've considered

Idea: it might be good if a user can paste and svg into a field rather than requiring a file be on the filesystem.

Additional context

Designs can be found in Zeplin: https://app.zeplin.io/project/5c6f153327f5b4405c6ce26c/screen/5c87c5f1fd5b8704501870d2

NYMag has a footer that has some but not all of the same functionality: https://github.com/nymag/sites/tree/master/components/global-footer

Simple Paragraph Component Styles

Is your feature request related to a problem? Please describe.

Add styles to the simple paragraph component on Clay Starter site.

Describe the solution you'd like

screen shot 2019-02-28 at 3 02 17 pm

For reference see Zeplin Desings:
Zeplin

Type: WYSIWYG
Behavior: it allows for bold, italic, strikethrough, links, and removing formatting

Makefile has inconsistent keys

make bootstrap is hard-coded to use the claydemo-local key.

make bootstrap-user is hardcoded to use the starter key.

make add-access-key is hardcoded to use the starter key.

This should be consistent.

Global Header

Is your feature request related to a problem? Please describe.

We need a simple, global header

Describe the solution you'd like

The header should be able to:

  • Render a logo
    • Logo should link to the homepage
  • Display a tagline
  • Display links to social media sites
  • The social links should have to different behaviors:
    • On section front pages the links should be able to be configured to go to a specific page (facebook page, twitter profile, etc)
    • On a content page (article or otherwise) they should be share links for the current url you're on

Describe alternatives you've considered

Idea: it might be good if a user can paste and svg into a field rather than requiring a file be on the filesystem.

Additional context

Designs can be found in Zeplin: https://app.zeplin.io/project/5c6f153327f5b4405c6ce26c/screen/5c89600a4b61e5250767d342

Failing to run make

Description

When trying to run make for the first time it seems to be failing on the index creation process

Steps to Reproduce

Steps to reproduce the behavior:
execute make

Following error is noticed

ERROR [2019-04-10T20:41:09.526Z] (amphora-search/32596 on bobs-MacBook-Pro-4.local): Client.bulk errored on batch operation
amphoraSearchVersion: "7.3.0"
file: "/Users/bob/Desktop/Project_Workspaces/clay-starter/app/node_modules/amphora-search/lib/services/elastic.js"
ops: [
{
"index": {
"_index": "local_sites_v1",
"_type": "_doc",
"_id": "claydemo"
}
},
{
"name": "Clay Demo",
"slug": "claydemo",
"host": "localhost",
"path": "",
"port": 80,
"protocol": "http",
"assetDir": "public",
"assetPath": "",
"mediaPath": "localhost/media/sites/claydemo/",
"siteIcon": "undefined"
}
]
items: [
{
"index": {
"_index": "local_sites_v1",
"_type": "_doc",
"_id": "claydemo",
"status": 403,
"error": {
"type": "cluster_block_exception",
"reason": "blocked by: [FORBIDDEN/12/index read-only / allow delete (api)];"
}
}
}
]
_label: "ERROR"
ERROR [2019-04-10T20:41:09.527Z] (amphora-search/32596 on bobs-MacBook-Pro-4.local): Error initialzing lists: Client.bulk errored on batch operation
amphoraSearchVersion: "7.3.0"
file: "/Users/bob/Desktop/Project_Workspaces/clay-starter/app/node_modules/amphora-search/lib/init.js"
stack: "Error: Client.bulk errored on batch operation\n at /Users/bob/Desktop/Project_Workspaces/clay-starter/app/node_modules/amphora-search/lib/services/elastic.js:384:17\n at tryCatcher (/Users/bob/Desktop/Project_Workspaces/clay-starter/app/node_modules/bluebird/js/release/util.js:16:23)\n at Promise._settlePromiseFromHandler (/Users/bob/Desktop/Project_Workspaces/clay-starter/app/node_modules/bluebird/js/release/promise.js:512:31)\n at Promise._settlePromise (/Users/bob/Desktop/Project_Workspaces/clay-starter/app/node_modules/bluebird/js/release/promise.js:569:18)\n at Promise._settlePromise0 (/Users/bob/Desktop/Project_Workspaces/clay-starter/app/node_modules/bluebird/js/release/promise.js:614:10)\n at Promise._settlePromises (/Users/bob/Desktop/Project_Workspaces/clay-starter/app/node_modules/bluebird/js/release/promise.js:694:18)\n at _drainQueueStep (/Users/bob/Desktop/Project_Workspaces/clay-starter/app/node_modules/bluebird/js/release/async.js:138:12)\n at _drainQueue (/Users/bob/Desktop/Project_Workspaces/clay-starter/app/node_modules/bluebird/js/release/async.js:131:9)\n at Async._drainQueues (/Users/bob/Desktop/Project_Workspaces/clay-starter/app/node_modules/bluebird/js/release/async.js:147:5)\n at Immediate.Async.drainQueues [as _onImmediate] (/Users/bob/Desktop/Project_Workspaces/clay-starter/app/node_modules/bluebird/js/release/async.js:17:14)\n at processImmediate (internal/timers.js:443:21)"
_label: "ERROR"

Desktop

  • OS: MacOS High Seirra
  • Node: v11.13.0
  • Docker version 18.09.2, build 6247962

Content Feed v1

Is your feature request related to a problem? Please describe.

We need a component which displays a feed of content. For this phase let's just do the frontend work because we still need to push content into ElasticSearch to be queried

Describe the solution you'd like

We would like one feed component with the following options:

Describe alternatives you've considered

N/A

Additional context

This v1 of the component will only display grey boxes and lorem ipsum text.

Design

https://app.zeplin.io/project/5c6f153327f5b4405c6ce26c/dashboard

Article Text List

This is a simple and semantic list of text items which can take custom styling.

screen shot 2019-03-05 at 10 43 54 am

Additional context

settings

Placeholder: If items is empty

Fields

List Items

Input: Complex List

Ordered List

Select when the list items have a strict order. E.g. ranked items, or steps in a process

Input: Checkbox

Use Custom Indicator

Use a custom list item indicator instead of the browser's default. This can be targeted in per-instance styles using '&.custom-indicator ul .text-list-item:before'

Input: Checkbox

Custom Styles

Custom styles for this specific component can be written in CSS/SASS.

Implement a Code Formatter

Is your feature request related to a problem? Please describe.

Right now, we rely on ESLint rules to stick to a code style convention for our development workflow. However, this does not enforce people to adopt those standards bringing noise when doing code review for a PR and introducing different code styles drifting from our standards.

Describe the solution you'd like

A plausible solution would be to implement a pre-commit hook that would take care of this issue automatically before committing any changes to the repo. This would reduce the amount of noise brought by the different code styles from developers. Thus, making code review easier for everyone

Describe alternatives you've considered

A good contender for this would be to implement Prettier โœจ which would take care of it.

Additional context

We would need to define a good set of rules to best fit our configuration

Add Linting

Description

We need to add eslint and stylelint to the project to add consistency to components.

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.