Comments (4)
I think the OP may be a little unclearly worded, but I think I get the confusion.
--project
/ LEKTOR_PROJECT
allows you to specify the project directory or projectfile, with a couple basic checks. I also tested both and verified they both behave the same way, as it looks like they should from the code. The arg does have precedence, by the way, and should for all env vars / args since that behavior comes straight from click.
.discover()
allows you to run lektor from a cwd at or beneath the directory that contains a projectfile, similar to how git would recognize you are in a git repository. The method is a fallback and isn't called if other methods that determine the project's path are used.
If the project
is specified, it is assumed that it is where a project actually lives, so if it doesn't find one that seems valid, it bails and does not walk back the directory tree. I think it was intentional that this does not walk backwards, because if you bother to specify a path, why would you specify a sub path and not the correct one?
I think https://www.getlektor.com/docs/cli/ should be amended to mention .discover()
and clarify its use vs. --project
. In my opinion no code needs to change here.
from lektor-website.
Is this a documentation bug, or a real bug?
from lektor-website.
Hm, I'm not actually sure. I definitely would expect the environment variable and the arg to have the same behavior (and probably give precedence to the arg so you can override it even when env is set).
For the discover method I'm not as sure. In order to be useful I guess we should change the docs and implementation of Project.discover()
to respect both env and arg? Is there ever a scenario when you as a plugin author should side step the arg/env?
from lektor-website.
Is there ever a scenario when you as a plugin author should side step the arg/env?
I struggle to think of when it would be a good idea to modify the project path from a plugin, but I don't see anything preventing it. A plugin should be able to call from_path
or discover
wherever they like, and set the project path after it's already set, to anything.
from lektor-website.
Related Issues (20)
- Document extra_flags plugin api changes after next version release
- Adjust data field width description to clarify what's possible.
- Better documentation of LEKTOR_DEPLOY_KEY
- Json-ld schemas HOT 2
- Broken link in the Lektor documentation.
- Deploying using GitHub actions
- BUG: Installing on windows fails. --prefer-binary option for the venv pip is not recognized. HOT 5
- The Travis CI build failed for Lektor website HOT 1
- error: invalid command 'bdist_wheel' HOT 4
- Deployment to public website is broken (invalid credentials in the repo secrets) HOT 20
- Get plugin pages to update more regularly HOT 2
- Atom plugin page is out of date HOT 1
- Add guides for the official plugins
- Mention example / reference projects
- Add dedicated page for LEKTOR_DEV
- We should probably build the webpack-generated resources as part of our deployment workflow
- New custom types which use "single-line" input widgets should inherit from SingleInputType rather than Type
- Download button should reference stable release HOT 3
- Header Links and Table of Contents don't build with mistune 2.x
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from lektor-website.