Giter Site home page Giter Site logo

elegantframework / elegant-cli Goto Github PK

View Code? Open in Web Editor NEW
145.0 3.0 17.0 84.35 MB

โœจ Build SEO-friendly websites, super fast full-stack web applications, and much more with Elegant. ๐Ÿ’œ Built with Next.js, TipTap, Tailwind CSS, and more.

Home Page: https://www.elegantframework.com

License: Other

JavaScript 3.69% TypeScript 95.07% CSS 1.15% HTML 0.04% MDX 0.04%
elegant jest mdx nextjs react storybook tailwindcss typescript markdown next

elegant-cli's People

Contributors

armaan-singh-dhillon avatar bowens20832 avatar buneeisslo avatar dependabot[bot] avatar rabisnaqvi avatar shiv-2712 avatar wrth1337 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  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

elegant-cli's Issues

The unit test pre checks are not running and reporting their status back on PR's from contributors.

Describe the bug
The GitHub Action unit test pre checks are not running and reporting their status back on PR's from contributors.

To Reproduce
Steps to reproduce the behavior:

  1. Submit a PR on the main branch.
  2. Scroll down.
  3. Status should post back within a few minutes at max.

Expected behavior
Post a passing or failing status from the GitHub Action.

Screenshots
Screenshot 2023-06-28 215403

Additional context
The GitHub Action that should run on a PR is found here: source\elegant\.github\workflows\jest.yml

As a content creator, I would like an Editor Panel to create new pages much more rapidly.

Background / Motivation

Currently if you want to create new pages or content within Elegant, you have to manually create new Markdown pages.

I, myself am planning on adding a basic CMS editor when some of the more basic v2.* features have been completed.

Having an editor editor panel will allow creators to create new pages much more rapidly, as well as opening the door up for non technical users to being using Elegant for their website needs.

@rabisnaqvi has also suggested including an admin panel/portal in #44.

Idea

Vercel already has a number of documented basic editor panels that can be integrated into Next.js, so I'd like to not recreate anything we don't have to.

Tina

Implementation 1:

Use an open source CMS panel, or create our own if we can't an existing solution.

Just use Tina if we can self host, not be attached to any of their services, and extend their existing code.

Other things

Can we build a simple CMS panel that can then be hosted easily and securly on Vercel or Netlify?

Do we need to include an auth provider like Firebase or Next-Auth?

Originally posted by @Bowens20832 in #49

I have an Idea that in package.json it should have node dependencies and others related to it like this so that it supports 14 to all updated versions of node, you can add a `>=` sign before it for e.g: `"@types/node": ">=14.17.3",`

I have an Idea that in package.json it should have node dependencies and others related to it like this so that it supports 14 to all updated versions of node, you can add a >= sign before it for e.g: "@types/node": ">=14.17.3",
??

Originally posted by @Shiv-2712 in #78 (reply in thread)

As a content creator, I want to include a Facebook(Meta) Pixel for user engangement insights and tracking.

As a content creator, I want to include a Facebook(Meta) Pixel for user engangement insights and tracking.

You can find a simple guide from Vercel on how to fully integrate the Meta Pixel within Next.js for event and page handling.

From my initial research, the "fb:app_id" rich snippet data point that is included in the Next-Seo component is no longer used by Facebook. This .env var and Next-SEO code should be removed.

  • Delete reference to NEXT_PUBLIC_FACEBOOK_APP_ID in .env.example file
  • Delete process.env.NEXT_PUBLIC_FACEBOOK_APP_ID code within Elegant.
  • Remove Config('app.fb') from line 168 of source\elegant\src\pages_app.js
  • Add the pixel .env var as mentioned in the guide.
  • Add the complete pixel functionality as mentioned in the guide.

The Video component breaks the layout of the documentation on mobile.

Describe the bug
The new video player component breaks the layout on mobile devices. This is caused by the video player not scaling down in size on mobile.

To Reproduce
Steps to reproduce the behavior:

  1. Go to Elegant Installation
  2. Open Developer tools if not on a mobile device.
  3. Scroll down to the video component
  4. See how the mobile layout on the page is broken.

Expected behavior
The CSS should keep the video player within the mobile layout.

Screenshots
image

Smartphone (please complete the following information):

  • Device: [e.g. iPhone6]
  • OS: [e.g. iOS8.1]
  • Browser [e.g. stock browser, safari]
  • Version [e.g. 22]

Additional context
The fix is probably a simple Tailwind class on a mobile device.

Upgrade Next.js to version 13.

I would like to simply bump the current version of Next.js to the latest version.

I don't want to do anything related to the new server vs. client components.

The scope of this ticket will be to only upgrade to version 13, so that all of our dependencies are up to date.

Originally posted by @Bowens20832 in #112

Add Sitemap

Please add native sitemap support out of the box for SEO purposes.

As a developer, I would like to upgrade to React 18

As a developer, I would like to upgrade to React 18

  • Upgrade tests to support React 18
  • Upgrade to React 18

Is your feature request related to a problem? Please describe.
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]

Describe the solution you'd like
A clear and concise description of what you want to happen.

Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.

Additional context
Add any other context or screenshots about the feature request here.

As a developer or content creator, how would you describe Elegant in your own words?

Describe the bug
The top friction point and overall feedback I have received for the work that we have done with the Elegant project is that it still lacks overall documentation, and people don't understand what we have built from looking at the home page.

Expected behavior
I want to update the homepage content, and subsequent docs to be more clear of what we are building.

Screenshots
If applicable, add screenshots to help explain your problem.

Additional context
Add any other context about the problem here.

As a developer or content creator, how would you describe this Elegant project in your own words to a friend or colleage?

Create Elegant-UI Package

The Elegant package is starting to get bloated with each release and update.

To reduce the bloat, I propose to break each core Elegant feature into separate package namespaces under the "packages" directory.

elegant-cli
โ”œโ”€โ”€ .github
โ”œโ”€โ”€ tests
โ”œโ”€โ”€ packages
โ”œโ”€โ”€ package.json
โ”œโ”€โ”€ README.md
โ””โ”€โ”€ ...

Under packages would be:

packages
โ”œโ”€โ”€ elegant-core
โ”œโ”€โ”€ elegant-cms
โ”œโ”€โ”€ elegant-docs
โ”œโ”€โ”€ base-theme
โ”œโ”€โ”€ docs-theme
โ”œโ”€โ”€ blog-theme
โ”œโ”€โ”€ resume-theme
โ”œโ”€โ”€ portfolio-theme
โ”œโ”€โ”€ event-theme

This change would migrate the existing code under source/elegant into packages/elegant.

Originally posted by @Bowens20832 in #124

The Elegant install script should automatically install package dependencies

The install script should run npm install before finishing. There isn't a reason why a user would need to run this themselves.

  • Add npm install to init script.
  • Update console output message to either say run npm run dev or npm run build.
  • Update install documentation page to no longer include the npm install step,

Remove the Remark and Rehype markdown loading utilities from next.config.mjs.

As part of the Elegant version migration, we will no longer need to use Remark and Rehype at build time.

Instead, we are loading content via a [slug] route, and converting the markdown to HTML on the server side.

This upgrade simplifies a number of things inside the core code, and should improve build times on large projects.

Update the documentation to reduce developer friction.

From a chat with an Elegant developer " I have a question question if I have to contribute into your project then I was supposed to fork your repo and clone it or I have to directly use npm i elegant-cli --tag innovators".

  • Update contribution guide to really explain how to get started developing core Elegant features
  • Update install docs to explain different ways of installing, and what their purpose is.

Create Elegant-CMS package

The Elegant package is starting to get bloated with each release and update.

To reduce the bloat, I propose to break each core Elegant feature into separate package namespaces under the "packages" directory.

elegant-cli
โ”œโ”€โ”€ .github
โ”œโ”€โ”€ tests
โ”œโ”€โ”€ packages
โ”œโ”€โ”€ package.json
โ”œโ”€โ”€ README.md
โ””โ”€โ”€ ...

Under packages would be:

packages
โ”œโ”€โ”€ elegant-core
โ”œโ”€โ”€ elegant-cms
โ”œโ”€โ”€ elegant-docs
โ”œโ”€โ”€ base-theme
โ”œโ”€โ”€ docs-theme
โ”œโ”€โ”€ blog-theme
โ”œโ”€โ”€ resume-theme
โ”œโ”€โ”€ portfolio-theme
โ”œโ”€โ”€ event-theme

This change would migrate the existing code under source/elegant into packages/elegant.

Originally posted by @Bowens20832 in #124

Add `thumbnailUrl` and `uploadDate` to Video component to fix Google Search Console error.

Describe the bug
The Video component is missing a thumbnail URL and upload date values within the schema data that throws an error in the Google Search Console.

image

Here is an example of a proper video item:

<html>
  <head>
    <title>Introducing the self-driving bicycle in the Netherlands</title>
    <script type="application/ld+json">
    {
      "@context": "https://schema.org",
      "@type": "VideoObject",
      "name": "Introducing the self-driving bicycle in the Netherlands",
      "description": "This spring, Google is introducing the self-driving bicycle in Amsterdam, the world's premier cycling city. The Dutch cycle more than any other nation in the world, almost 900 kilometres per year per person, amounting to over 15 billion kilometres annually. The self-driving bicycle enables safe navigation through the city for Amsterdam residents, and furthers Google's ambition to improve urban mobility with technology. Google Netherlands takes enormous pride in the fact that a Dutch team worked on this innovation that will have great impact in their home country.",
      "thumbnailUrl": [
        "https://example.com/photos/1x1/photo.jpg",
        "https://example.com/photos/4x3/photo.jpg",
        "https://example.com/photos/16x9/photo.jpg"
       ],
      "uploadDate": "2016-03-31T08:00:00+08:00",
      "duration": "PT1M54S",
      "contentUrl": "https://www.example.com/video/123/file.mp4",
      "embedUrl": "https://www.example.com/embed/123",
      "interactionStatistic": {
        "@type": "InteractionCounter",
        "interactionType": { "@type": "WatchAction" },
        "userInteractionCount": 5647018
      },
      "regionsAllowed": "US,NL"
    }
    </script>
  </head>
  <body>
  </body>
</html>

As a developer, I would like a config directory, along with config setting files.

As a developer, I would like a seperate /config directory under the root project. This config folder will serve as the center off all Elegant app configuration.

This directory, and the config files contained within it will serve as the bootstrap point for all config values set within .env files.

  • Create /config folder
  • Create app.ts file
  • Create navigation.ts file
  • Create authors type
  • Create authors.ts file
  • Update any existing process.env vars to use new config code.
  • Refactor out the App config code from the utils folder.
  • Migrate exisiting navigation config code to the config folder, from the navs folder
  • Delete navs folder

As a developer, I would like 3 columns with multiple navigation lists in the footer, cloning the function of Stripe.com's footer.

As a developer, I would like 3 columns with multiple navigation lists in the footer. The splash footer would be similar in function to Stripe.com's footer, and would allow stacking of multiple footer list items.

Screenshot 2023-05-31 210352

The current Elegant footer just uses a basic for loop to loop over each navigation list section, and will create a new column.

This was great for a starter app, but we are now pushing 20 public pages, and do not have clear navigation paths to the news pages. To solve this, we need to add more navigation content to the footer, but still maintaining the Elegant look.

  • Refactor Splash Footer to accept column_one, column_two, and column_three props.
  • Allow for each column to appect an object that contains multiple lists with an h2 title.
  • Refactor code and types to accept this new style of creating navigation lists

As a developer I would like to rename the 'source' directory to 'packages'.

I want to rename the top-level source directory to packages. This naming convention will be consistent with other popular open-source frontend projects that developers are already familiar with.

From

elegant-cli
โ”œโ”€โ”€ .github
โ”œโ”€โ”€ integrations
โ”œโ”€โ”€ scripts
โ”œโ”€โ”€ source
โ””โ”€โ”€ ...

To

elegant-cli
โ”œโ”€โ”€ .github
โ”œโ”€โ”€ integrations
โ”œโ”€โ”€ scripts
โ”œโ”€โ”€ packages
โ””โ”€โ”€ ...
  • Update any tests
  • Update any scripts that depend on 'source'

As a developer, I want to upgrade Node from version 16, to version 18

As a developer, I want to upgrade Node from version 16, to version 18.

Upgrading to Node 18 will resolve the issues mentioned below : )

Hello,

I'm facing a problem where the terminal doesn't stop after executing the npx elegant-init command. As a result, the command-line interface (CLI) doesn't appear, preventing me from running subsequent commands.

Node.js Version - 18.16.0
Platform - Win 11
image

Originally posted by @Shiv-2712 in #78

Running `npx elegant-init` not doing anything!

Hi,

I am trying to setup this CMS on my PC, but the command npx elegant-init doesn't do anything in terminal, just starts a new session or something, but I do not see anything created.

As a website owner, I would like to have a security.txt file included in my website.

As a website owner, I would like to have a security.txt file in the root of my application. This file is similar to the robots.txt file, and will serve as a landing point for security researchers and any other people who may stumble into a security issue.

The security.txt file will hold basic info about how someone may report a security issue.

This topic has come up recently alot online, and is now a requirement of all Dutch government website. Though the Dutch government may be a small market for Elegant currently, we have ambitions of being able to support any user who wish to uses Elegant, even if it is a government entity.

https://netherlands.postsen.com/trends/198695/Securitytxt-now-mandatory-for-Dutch-government-websites.html

This topic was futher encouraged for Elegant by users on Hacker News: https://news.ycombinator.com/item?id=36149004#36152473

  • Create a ".well-known" directory under source/elegant/public/.well-known
  • Create security.txt file
  • Include link to Elegant's pgp key for secure communication.
  • Include base app contact info, and/or the contact info of Elegant.

As a developer, I want to create a slim `.env.starter` file in the Elegant-cli project.

As a developer, I want to create a slim .env.starter file in the Elegant-cli project.

During the init step, the script should copy that file over, replacing the current method of copying the example file.

During the init step, we also want to copy the example file over, but have empty values and every env var possible so users can see all options.

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.