Giter Site home page Giter Site logo

lokl's Introduction

Elementor Website Builder

Welcome to the Elementor GitHub repository!

Elementor is the most advanced front-end drag-and-drop website builder. Create high-end, pixel-perfect websites at record speeds. Build any theme, any page, and any design with no code.


Elementor Website Builder


Introducing a WordPress website builder with no limits of design. A website builder that delivers high-end page designs and advanced capabilities never before seen on WordPress.

It's time for Elementor Website Builder.

The leading website builder for any purpose

Whether you are a web designer looking for a way to achieve pixel-perfect websites, a marketer looking to get online fast, or a developer who wants to expand their capabilities, Elementor's website builder has what you need - intuitive drag-and-drop Editor, advanced design features and a complete open-source approach.

There are many other features to help you build better websites. Join the elite web professionals who enjoy Elementor Pro!

Elementor Roadmap

Discover what's Next in Elementor. Visit the Elementor Roadmap and learn about the status of upcoming or newly-released features.

Developer API

Elementor website builder is free and open source. It's the perfect plugin to extend and integrate further. It was envisioned with the developer in mind, and we have already seen some truly remarkable addons created by many skilled developers.

To help you get started and learn just how to integrate with Elementor, we have created the official Elementor Developers Center.

Check the Developers Blog to discover the latest information from our engineers working on the newest Elementor versions, or visit the Developers Documentation to learn how to extend Elementor and create your Addons.

Developers Community

Join our Developers Community and share tips, tricks, and knowledge with other developers about extending and developing Addons for Elementor.

Be a Contributor

Community contributions are always welcomed and help us remain the Number 1 WordPress Website Builder. Feel free to answer questions on GitHub and within the various Elementor communities.

There are many ways to contribute to Elementor:

Contribution Guidelines

Please read our Contribution Guidelines to learn the best practices for contributing to Elementor.

Bug Report

If you found a bug in the source code and can reproduce it consistently after troubleshooting it, you can help us by submitting a Bug Report.

Even better, you can submit a Pull Request with a fix, and we will happily review it.

Security Report

Join our community-driven Bug Bounty programs.

We leverage the collective expertise of our community, offering round-the-clock crowdsourced vulnerability detection. The programs provide a comprehensive overview of features and endpoints considered 'in scope,' reward specifics where relevant, and our complete terms and conditions.

To learn more about our security efforts, visit our Trust Center. Security issues can be reported through our dedicated Bug Bounty Programs page.

Feature Request

Do you have a brilliant idea, enhancement, or feature you would love to see in Elementor? We're all ears!

Suggest new ideas, features, or enhancements by submitting a Feature Request.
You can also support existing ideas by voting for your favorite requests.

Translate

The Elementor User Interface was designed with a global audience in mind. It supports a wide range of languages and is also RTL compatible. Out of the box, we offer support for over 60 languages.

Want to make a difference?
We would appreciate your contribution by adding a new language or helping translate existing ones at translate.wordpress.org. To assist you, we've built a short guide explaining how to translate and localize the plugin.

Support

Need Help, Guidance, Assistance, or Support?

Use one of the support channels below to find solutions to your questions and get assistance.

Note that we are unable to offer any support through this repository.

Please DO NOT open issues or discussions to request support.
For those, use the appropriate channels.

Alternatively, you can visit one of these resources:

  • Help Center
    Visit the Elementor Help Center to find solutions to the most frequent problems, or read the documentation about Elementor's many features.
  • Academy
    Grow your Web Creator skills and learn to make the most of Elementor in the Elementor Academy.
  • Global Community
    Join the Elementor Global Community on Facebook. Where all kinds of users come together to help each other.
  • Support Forum
    If you have more questions, visit the free Support Forum on our WordPress plugin page.
  • Elementor Website
    For more information about features, FAQs, and documentation, check out our website at Elementor Website Builder.

If you have an active Elementor Pro subscription, you are entitled to personal support. Please see your purchase email or visit your Elementor Account page for details.

Liked Elementor?

lokl's People

Contributors

leonstafford avatar schainks 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

Watchers

 avatar  avatar  avatar

lokl's Issues

Allow for easily importing themes and plugins

As recently mentioned by Jonathon Grove and one of the first things my mate Donnacha commented on when first talking about Lokl.

Trying to think like a user who actually creates WordPress sites and for my own needs for rapidly testing different WP configurations, I'd like to see these features:

  • allow passing additional provisioning commands when running a lokl image with major tag, like php8-5.0.0

Why not allow users to easily bundle desired plugins/themes during base image builds of Lokl?

Quick answer: it's difficult!

Long answer: running Lokl is aimed to be as simple as possible - copy paste a command and that's it. Building multiple Docker images and understanding provisioning shell scripts is a different level and I can just help those kind of developer-users to make modifications for their own build processes.

Alternative (thinking out loud)

The way I use docker commit to build the main Lokl releases could work well, via lokl-cli wizard, even, to allow users to "Save this site as a template"

  • they get a site setup with all their favourite plugins/themes, maybe WordPress language changed to French, local timezone set, etc.
  • from site management menu, they choose "Save this site as template", which saves as tag "lokltemplateTEMPLATENAME", ie "lokltemplateREALESTATECLIENTS"
  • when they then navigate to the Create site menu in wizard, if Lokl templates are detected on system, it will offer to create using one of their own templates

That seems like a nice option that may suffice even for developer users.

Back to how to actually install themes/plugins and make other site modifications

TBC

add general WP cleanup plugin activated by default

ie, rm welcome to WP panel

remove_action('welcome_panel', 'wp_welcome_panel');

grab some of the common improvements out there and those that make sense for majority of static sites (ie, disable comments, avatars)

be wary of opinionated changes that user should be able to revert/toggle if required.

GuzzleHttp error when using wp2static-addon-s3

Hi, I really like your LOKL setup and script.
This runs way faster than my own WordPress docker setup.

When I try to use the wp2static-addon-s3, I keep getting a PHP error:
"PHP message: PHP Fatal error: Uncaught Error: Call to undefined function GuzzleHttp_idn_uri_convert() in /usr/html/wp-content/plugins/wp2static-addon-s3/vendor/guzzlehttp/guzzle/src/Client.php:220"

This is in a fresh container built with the v4 version of lokl ( \sh -c "$(curl -sSl 'https://lokl.dev/go?v=4')")

I found this which indicates it could be caused by two different versions of Guzzle being installed

However, I can't figure out how to fix it.

Thanks for any advice!

publish cli script as cli-0.0.1, using version numbers to match to docker image version

ie, Docker registry with contain:

  • php8 (latest, needed at all?)
  • php8-0.0.1
  • php8-0.0.1-dev
  • php7 (latest, needed at all?)
  • php7-0.0.1
  • php7-0.0.1-dev

When user runs sh -c "$(curl -sSl 'https://lokl.dev/cli-0.0.1')", that version of the script will append the version number to the image targeted when they choose a PHP version.

It will default to that version if they're running non-interactively, so top level variable of LOKL_RELEASE_VERSION, equaling 0.0.1.

Rather than current cache-busting string, which doesn't do much: sh -c "$(curl -sSl 'https://lokl.dev/go?v=4')"

This variable should go unnoticed for users, but help with release and allowing easier soft-releasing/testing of new versions without forcing it on all users.

Should be written out to Lokl's /tmp logfile to help identify versions used when receiving support requests

Issue with installing plugins

Hi, I've gotten everything working in Windows 10 with WSL2 (Ubuntu 20.04 LTS). Deploying to zip works perfectly. However, when I try to install any plugin, I am getting this error: Installation failed: Download failed. cURL error 6: Could not resolve host: downloads.wordpress.org

I've tried restarting Docker, but no luck. Any ideas? Thanks!

Edit: I've just realized that manually downloading the plugin and then opening the zip file works, so that basically solves my problem. Still having to do this manually every time there's an update could get tedious, so still hope there's a way to fix this error.

consider where the e2e tests live....

Describe 'Default Lokl website'
  Describe 'WP2Static'
    It 'generates zip of exported site files when'
      run_docker_php${phpversion}
      
      configure_wp2static() {
        docker exec -it THE_IMAGE sh -c \
          'wp wp2static option set deployment_method zip && wp wp2static detect && wp wp2static crawl && \
          wp wp2static post_process && wp wp2static deploy'
      }
      
      zip_file_present() {
        wget http://localhost:4321/wp-content/uploads/wp2static-processed-site.zip
        # do some checks on the zip (size, num files, index content?)  
      }
      
     When run configure_wp2static()
     The output should satisfy zip_file_present  
     The result of function zip_file_present should be true

View Dashboard link not rendering as URL

on newly provisioned site, the View Dashboard link in sample post doesn't render as URL.

If enter Gutenberg, switch to HTML editor and back again, save post, it does render properly. Possibly single vs double quotes when editing the post content via WP_CLI?

Provisioning script's default homepage doesn't play nice with some WP-CLI commands

I use this to set the default homepage on a new Lokl site:

  wp post update 1 --post_title="Getting started with Lokl"                     
  wp post update 1 --post_content="Use this site as your starting point or import content from an existing site. <a href='/wp-admin'>View Dashboard</a>"
  wp option update page_on_front 1                                              
  wp option update show_on_front "page" 

This works as I intended, but doesn't look like a valid WP config, as post ID 1 is a Post, not a Page.

When going to Settings > Reading, we can see the radio for A static page vs Your latest posts, but neither of the dropdown options are selected.

When running wp profile stage, the following errors are seen:

Warning: Some code is trying to do a URL redirect. Backtrace:
#0 WP_CLI\Utils\wp_redirect_handler(http://localhost:4967/hello-world/) called at [/usr/html/wp-includes/class-wp-hook.php:294]
#1 WP_Hook->apply_filters(http://localhost:4967/hello-world/, Array ([0] => http://localhost:4967/hello-world/,[1] => 301)) called at [/usr/html/wp-includes/plugin.php:212]
#2 apply_filters(wp_redirect, http://localhost:4967/hello-world/, 301) called at [/usr/html/wp-includes/pluggable.php:1290]
#3 wp_redirect(http://localhost:4967/hello-world/, 301) called at [/usr/html/wp-includes/canonical.php:799]
#4 redirect_canonical(http://localhost:4967/) called at [/usr/html/wp-includes/class-wp-hook.php:292]
#5 WP_Hook->apply_filters(, Array ([0] => )) called at [/usr/html/wp-includes/class-wp-hook.php:316]
#6 WP_Hook->do_action(Array ([0] => )) called at [/usr/html/wp-includes/plugin.php:484]
#7 do_action(template_redirect) called at [/usr/html/wp-includes/template-loader.php:13]
#8 require_once(/usr/html/wp-includes/template-loader.php) called at [/root/.wp-cli/packages/vendor/wp-cli/profile-command/src/Profiler.php:474]
#9 WP_CLI\Profile\Profiler->load_wordpress_with_template() called at [/root/.wp-cli/packages/vendor/wp-cli/profile-command/src/Profiler.php:126]
#10 WP_CLI\Profile\Profiler->run() called at [/root/.wp-cli/packages/vendor/wp-cli/profile-command/src/Command.php:110]
#11 WP_CLI\Profile\Command->stage(Array (), Array ([format] => table,[order] => ASC))
#12 call_user_func(Array ([0] => WP_CLI\Profile\Command Object (),[1] => stage), Array (), Array ([format] => table,[order] => ASC)) called at [phar:///usr/bin/wp/vendor/wp-cli/wp-cli/php/WP_CLI/Dispatcher/CommandFactory.php:100]
#13 WP_CLI\Dispatcher\CommandFactory::WP_CLI\Dispatcher{closure}(Array (), Array ([format] => table,[order] => ASC))
#14 call_user_func(Closure Object (), Array (), Array ([format] => table,[order] => ASC)) called at [phar:///usr/bin/wp/vendor/wp-cli/wp-cli/php/WP_CLI/Dispatcher/Subcommand.php:491]
#15 WP_CLI\Dispatcher\Subcommand->invoke(Array (), Array ([format] => table,[order] => ASC), Array ()) called at [phar:///usr/bin/wp/vendor/wp-cli/wp-cli/php/WP_CLI/Runner.php:399]
#16 WP_CLI\Runner->run_command(Array ([0] => profile,[1] => stage), Array ()) called at [phar:///usr/bin/wp/vendor/wp-cli/wp-cli/php/WP_CLI/Runner.php:422]
#17 WP_CLI\Runner->run_command_and_exit() called at [phar:///usr/bin/wp/vendor/wp-cli/wp-cli/php/WP_CLI/Runner.php:107]
#18 WP_CLI\Runner->do_early_invoke(before_wp_load) called at [phar:///usr/bin/wp/vendor/wp-cli/wp-cli/php/WP_CLI/Runner.php:1136]
#19 WP_CLI\Runner->start() called at [phar:///usr/bin/wp/vendor/wp-cli/wp-cli/php/WP_CLI/Bootstrap/LaunchRunner.php:23]
#20 WP_CLI\Bootstrap\LaunchRunner->process(WP_CLI\Bootstrap\BootstrapState Object ([WP_CLI\Bootstrap\BootstrapStatestate] => Array ())) called at [phar:///usr/bin/wp/vendor/wp-cli/wp-cli/php/bootstrap.php:77]
#21 WP_CLI\bootstrap() called at [phar:///usr/bin/wp/vendor/wp-cli/wp-cli/php/wp-cli.php:27]
#22 include(phar:///usr/bin/wp/vendor/wp-cli/wp-cli/php/wp-cli.php) called at [phar:///usr/bin/wp/php/boot-phar.php:11]
#23 include(phar:///usr/bin/wp/php/boot-phar.php) called at [/usr/bin/wp:4]

Common WP-CLI don't seem to be affected yet, but this is a bug in Lokl's default site example that should be fixed.

Docker hello-world cleanup

When running the go.sh script, method test_docker_available() runs:
docker run hello-world > /dev/null 2>&1 to test if docker is configuered correctly.
This test container never gets cleaned up, resulting in a bunch of hello-world containers:
image

value add with HTML validation of exported static site

This is a great area for Lokl to offer extra benefits from a controlled environment + static site generation.

We have things like HTMLCodeSniffer, pup and other CLI tools to validate HTML for validity and accessibility testing. These should be made available.

Similar with "required CSS" (forget the correct term), but analysing the site and removing unused CSS rules from each page load.

phpmyadmin

available at /phpmyadmin, without login prompt, set to wordpress database active view

generate release notes via script

have the scripts already to generate the environmental info, wrap this in another script to generate the markdown with collapsible sections and a placeholder for features/changes. Can auto-insert the release version into title, etc, for easy copying into GitHub releases page.

If want to get smarter, can write the release notes under correct version number in CHANGELOG.md and have it parse and include that. Yes, that sounds wiser, forces me to update the CHANGELOG!

Allow targeting WP install version via args, tags, utility script

feedback from user:

  1. Configure the WP version to install — ironic, I know. While migrating a 10+ year old blog, I discovered its theme only worked correctly with wordpress 5.4.4. Don't know if that's a normal wordpress problem, but downgrading via WP CLI worked without issue, so the workaround only took a minute to get up and running again.

Site not coming online after rebooting host: 502 Bad Gateway and PHP Socket Error (Workaround available)

Hi Leon, thanks for making this. I found Lokl via reddit and it's perfect for my use case. Using lokl-cli I created a site, exported it to static files, and hosted it. After a computer reboot I attempted to edit the site with the cli, but received "502 Bad Gateway" in the browser. Examining the docker logs, i found this error:

2021/02/23 03:37:47 [crit] 9#9: *1 connect() to unix:/var/run/php7-fpm.sock failed (2: No such file or directory) while connecting to upstream, client: 172.17.0.1, server: , request: "HEAD / HTTP/1.1", upstream: "fastcgi://unix:/var/run/php7-fpm.sock:", host: "localhost:4935"

I'm using the PHP 7 image because of the Lokl release notes: "Static HTML Output not working for the PHP 8 image".

lokl/lokl:php7-5.0.0-rc1, Docker 20.10.2, MacOS Catalina.

I'm looking at potential solutions on StackOverflow, but I'm a ML developer and web dev/PHP is not my area of expertise. https://stackoverflow.com/questions/51158830/nginx-connect-to-unix-var-run-php7-2-fpm-sock-failed-2-no-such-file-or-dir/51159313

Should I just use the PHP8 image instead? Thanks for your time.

Don't reapply wp-config changes on container restart (burn after reading)

feedback from user:

  1. Wp config settings here https://github.com/lokl-dev/lokl/blob/master/scripts/run.sh#L55-L58 step on custom config if you have to restart the container for any reason. That code should run once on a fresh build, but not again, even after you restart the container. You can probably...

I'd like to move more of the provisioning steps into the base image, maybe with Packer. Regardless, this initial setup script should delete itself after initial successful provisioning and replace with a script which just runs the last nginx line

host images on S3

using docker save and docker load can allow for loading both php7 and 8 images together or pull just the required one, depending on how I bundle save's output tar.gz

while I think I can stay on Docker Hub a little longer with my free account, that may not always be the case. As Lokl's dealing with only 2 current tags and the older ones shouldn't be pulled much, I don't expect a high S3 cost, even with the large files. But, it will give me a bit more portability and control without too many extra headaches of self-managing.

Need to test it out and see how it works.

Can provide hashes of latest images on download/releases page.

This is could be another method for when users send me their sites to debug, doing a commit then save and I can load, just need to beware to use same port they had it spun up on when committed.

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.