Giter Site home page Giter Site logo

algid-content's People

Contributors

zoramite avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

algid-content's Issues

Custom Error Pages

When displaying error pages there will be a default error page built into the content plugin.

If a site wants to override the default error page with one of their own they set the path of their custom error page to end with the correct error code.

For example, a custom 404 error could be placed at the /404 path and it will be served when there is a 404 error.

To facilitate more specialized errors for certain areas of a site the closest error page will be used.

For example, a page not found at /some/page/not/here would look for /some/page/not/404, /some/page/404, /some/404, /404, and built in 404. The first match gets displayed.

Content Locking

Pages should be able to be locked and unlocked temporarily if there are problems or security issues found with a page. Content can still be modified and worked with but until the page is unlocked it will not show to the public.

Content Path Wildcards

Allow for a path to have an ending wildcard. Anything that appears after the wildcard character can be stored in as a variable.

For example:

/some/path/* would capture with the extra passed as a parameter:

* <code>/some/path/goes/here</code> => <code>/goes/here</code>
* <code>/some/path/goes/anywhere</code> => <code>/goes/anywhere</code>
* <code>/some/path/was/here</code> => <code>/was/here</code>

Wildcards and static paths can co-exist. The wildcard will act as a catch-all if there is not a specific path found.

Navigation component also needs to respect the wildcard when locating the page.

404 pages will only be triggered when a wildcard path does not exist.

Error Response Title

Make sure that the error content title is part of the title/breadcrumb for the page when it is displayed.

Bulk Edit Pages

Ability to select multiple pages and modify properties about the pages such as
status, theme, publishing, archiving, adding metadata, etc.

Partial output option

Allow the template to do a partial content output when the isPartial setting is turned on in the template.

There could be multiple triggers that would cause the isPartial to be true:

  • Detect the HTTP_X_REQUESTED_WITH header that jquery sends for ajax requests.
  • Url variable for specifying that the page should be rendered as a partial using isPartial=true.

Markdown Page Type

Ability to choose markdown as the page type.

Can use MarkItUp! as the editor.

Error Response: 503 Service Unavailable

Add the 503 Service Unavailable error response when a user tries to access a page when the server is in a maintenance mode.

Use the same searching logic that the 404 page does for showing specific error page content.

Multiple Editor Locking

When a person starts editing a document the document should have a lock applied.

The lock should have a timeout but should also contain information about who has the lock.

When a user is done editing a page the lock is removed so that others can edit the content.

Content Themes

Ability to manage the content themes available to websites.

Timed Drafts

Ability to have a future draft of the content so that it can be worked with separately from the current draft.

Auto-saving would be done similarly as the regular content in the background. Future drafts will replace the current version when it is published, but the current version is still fully stable while working on the new version of the page.

The contents of the future draft can be replaced by the current revision, or any of the other versions or drafts of the page at any time.

Auto-Saving Drafts

Need to have JavaScript that periodically saves the changes to the content in the background.

Custom Meta Information

Allow the pages to have their own custom meta html meta information. This includes:

  • tags
  • description
  • rss
  • etc...

Keyboard Shortcuts

Need the advanced ability to be able to do keyboard shortcuts to automate actions.

For example:

  • c : create page
  • # : delete page

Also should use ? to show the complete guide to the keyboard shortcuts

Keyboard shortcuts should also work with the mac Command key, not just the Control key for Windows and Linux.

Add getContentHtml() to the content model

Add a getContentHtml function to the content model that can be used to retrieve the completely processed html version of the content.

By default the value would be the same as the getContent() but plugins can update the value to hold a different value.

When using setContent() it should reset the contents of the ContentHtml variable.

This could be used for onRead functionality, such as converting markdown into html.

Short Urls and Permalinks

Need the ability to have trigger words that act as permalinks. By default these will be randomly generated strings for each page, but can be customized.

When a permalink is customized it should still be accessible from the original permalink if it was not overridden originally.

Use 301 Redirects (Permanent Redirect) on the redirects so that the search engines properly handle the redirect.

Page Caching

Use the plugin cache manager to cache the content objects using the domain and path as the cache key.

Add the event handling for afterSave to remove any cached version of the content when it is saved.

Create an admin screen to work with the content cache. Includes showing how many pages are cached, potentially listing them all out or showing for a given domain the pages that are cached. Also allow the ability to flush the cache or remove specific pages from the cache.

Error Response: 500 Internal Server Error

Add the 500 Internal Server Error error response when a user tries to access a page that throws an error. The error should be logged during the process since it is an unintended error.

Use the same searching logic that the 404 page does for showing specific error page content.

Broken Link Checker

Need to have a utility for checking links to make sure that they work.

Probably just parse through all the content to look for tags that have a http[s]+:// string and run through each of the unique ones to test if they work or not. May want to use threading and a configurable timeout on link checking.

Cron job that does the checking on all domains periodically so that it doesn't DOS websites but still checks through the entire content of the CMS. Should only need to check any content that is updated in the time frame of the cron job.

May also consider a setting for running every time a page is published to help prevent bad links.

Content Formats

Ability to specify the format that the page should be rendered as.

Basic formats include PDF and plain text.

Database Driven Navigation

Navigation driven off the content database.

Needs to support navigation caching.

Preferably with the ability to clear the query on demand.

Post Submit Content Validation

Should have the ability to define custom regular expression checks to find information that is sensitive or invalid.

This would show a warning when being saved and potentially prevent the content from being published without correct privileges.

Content Editing Hooks

Add in ability to call pre-save and post-save hooks on the content.

Initial thinking will be to allow plugins to work with the data before and after it is persisted.

Possible uses:

  • Content validation
  • Broken link checking
  • Markdown parsing
  • SCM Update/Commit

Page Type Selection

Ability to select what page type(format) the source of the page is in.

Pull the list from the type table and display to the screen using jQueryUI's buttons from radio inputs.

Advanced View for Layout

Add the ability to toggle advanced layout options. For instance, ctrl+shift+g to show the grid (add a class to the body that will trigger the background change).

This idea could also trigger other advanced views and options to appear.

Error Response: 403 Forbidden

Add the 403 Forbidden error response when a user tries to access a page that they do not have permissions for and are already logged in.

Use the same searching logic that the 404 page does for showing specific error page content.

Content Path Auto-Suggest

Setup an Ajax call on the load of the content edit page to get a list of all the paths in use on a domain.

Make the auto-suggest do the following:

  • Show even when there is no current value.
  • Not allow duplicates with existing paths or new paths on the same page unless it is the same pathID.
  • Add a trailing slash to all the suggested paths.
  • Clean the path when doing comparison.
  • Validate the path with the same validation rules that the admin uses and give feedback to the user as they type.

Textile Page Type

Ability to choose textile as the page type.

Can use MarkItUp! as the editor.

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.