hydephp / hyde Goto Github PK
View Code? Open in Web Editor NEWHydePHP - Static Site Generator with the power of Laravel and the simplicity of Markdown.
Home Page: https://hydephp.com
License: MIT License
HydePHP - Static Site Generator with the power of Laravel and the simplicity of Markdown.
Home Page: https://hydephp.com
License: MIT License
How would one list all available pages?
What could make HydePHP even better? Demo sites! Lots and lots of demo sites! Why not create a HydePHP site for your side business, book club, sports team, or anything else?
This could be a fun way to contribute to Hacktoberfest! Here are some instructions to get you started. Feel free to ask me for help if you want more guidance. ๐
How do you make a directory with an index page?
For example, I made the folder in _pages: "courses"
and in the "courses" folder i have an index.md
however, when I go to /courses, there is nothing there, and only /courses/index works.
This is related to laravel-mix/laravel-mix#1942 and can probably be fixed by adding the package fast-glob
. However, I want to keep dependencies light, so it will not be included with Hyde at this point in time. The issue only happens when running Laravel Mix with the watch script. Running Tailwind with their watch script does not seem to have this issue.
The rebuild job needs to download the vendor file for the framework so TailwindCSS can find the classes. However, since we don't need to run any code we don't need to install any of the other packages.
So I want to tell Apache the name of my 404.html
so it won't show Apache's default black&white 404 page. One way to do that is with an .htaccess
file. Now I tried adding that to the _media
folder, but the file is not copied to _site
upon building. And I'd rather not put it in _site
directly, because someone might decide to remove the entire contents of the folder and then call hyde build
. Any advice?
If there is no index.md defined, check if there is a readme.md and use that as the index. Otherwise send a notice to the cli build command.
As this is a new package I'd love to get any and all feedback. PR's are super welcome as well! Cheers!
Could also be implemented in an "opt-in" style where the default Blade page stub is published with a command
Hi everyone! This is Caen, creator of HydePHP! I'd love to get to know everyone interested in this project. Please leave a comment with any thoughts you have, big and small!
I also want to create a section for the HydePHP website with testimonials and news mentions. This is a great place to leave those!
I have already gotten some very kind words on Twitter, and mentions in news sites, so here's what I'm thinking: I'll collect those mentions and put them on the website. Since they were posted publicly I will assume it's okay for me to crosspost them. For the sake of privacy, I will not post full names (unless I've gotten explicit permission to do so). However, if I use your mention and you want me to remove it I will, and if you want me to link to your social media etc I will.
Describe the bug
Currently, the default navigation menu on mobile screens has a small bounding box.
To Reproduce
Steps to reproduce the behavior:
Expected behavior
Discovered while device testing on my phone, was attempting to change page using the navigation menu and tapped the list item on the right side of the screen, expected behavior would be for the interaction to still register and lead me to the page, even if I did not technically click on the actual text.
Screenshots
The bounding boxes of the links have been highlighted in blue. The Gallery
link has been set to display: block;
to increase the bounding box to illustrate the expected behaviour.
Desktop (please complete the following information):
N/A
Smartphone (please complete the following information):
All mobile devices, or narrow screens are affected.
Additional context
Add any other context about the problem here.
This was previously done in the hyde.css but since that is now loaded first, we need the override in the tailwind config instead
Creating this thread to discuss compatibility between HydePHP and Kickflip created by @mallardduck (https://github.com/KickflipCli/kickflip-src / https://kickflip.lucidinternets.com/)
Currently, the default index page is not very meaningful since there are no posts in a base install.
Instead, I am thinking it would be neat with a page similar to the "Welcome aboard" page in Rails, with instructions on how to get started, how to publish the current default page, and links to the docs.
Okay, the action is not working as intended.
Originally posted by @caendesilva in #130 (comment)
This post serves as a living document for the HydePHP organization.
Here are some links to resources to get you started.
This is an excerpt from the developer resources page, which I highly recommend you read! You'll find it here: https://hydephp.com/community.
HydePHP consists of a few core components, and development is done in a monorepo.
This means that when contributing to the code, we submit the code to a single "mono" repository where the code is automatically split into separate read-only repositories for each component.
The two most important components are Hyde and Framework. We also use HydeFront for frontend assets.
The Hyde package is what the end-user sees and interacts with. When creating a new HydePHP site, this is done using the Hyde project. The package contains all the necessary files to run a HydePHP site and bootstraps the entire system. Equivalent to Laravel/Laravel
The Framework package holds most of the logic of the Hyde framework. This is where all the data models, static site generators, HydeCLI commands, Blade views, and more, are stored. Having this in a package makes it much easier to version and update using Composer. Equivalent to Laravel/Framework
The HydeFront package contains stylesheets and scripts to help make HydePHP sites accessible and interactive. It also includes a pre-compiled TailwindCSS file containing all the styles needed for the built-in Blade templates.
Currently, if a Markdown page does not have front matter it throws the following exception:
ErrorException
Undefined array key 1
``
It would be more helpful if a custom exception was thrown that specifies why this occurred.
Hi! Thanks for your wonderful HydePHP!
I'm facing an issue while Managing and Compiling Assets. When developing with npm run watch
, although it runs successfully on the first time, as soon as I change something at resources/assets/app.js
, it fails with:
[webpack-cli] [Error: ENOENT: no such file or directory, unlink '/path/to/hyde/_site/media/mix-manifest.json'] {
errno: -2,
code: 'ENOENT',
syscall: 'unlink',
path: '/path/to/hyde/_site/media/mix-manifest.json'
}
I've tried many variations to setPublicPath('_media')
in webpack.mix.js
with no luck. Am I missing something?
Thanks in advance for any reply.
A Lighthouse report made on the GitHub Pages site showed mostly green across the board.
Only one accessibility issue needs to be addressed, namely contrast. The indigo color on links is not sufficiently differentiated from the background. Instead of Tailwind indigo-500, we probably need 600 or 700.
For SEO we need a meta description tag.
#Roadmap: Extracting the core into a separate package
I want to extract the core source code into a separate Framework package to make it easier to maintain and update.
I think this is an important feature that needs to be done before v1.0.
However, there needs to be some work done first.
If you have experience in writing code like this, please leave a comment in this issue and we can coordinate!
I have now successfully managed to extract the App directory into a new package. However, I have not yet touched on resources. Adding some new todos of code that needs to be extracted.
Code directories:
Resource directories: (with stuff that may need to be publishable)
If the Documentation feature is enabled and an index.md or readme.md exists in the _docs we should add a link to the docs.
We currently have a config option to reorder sidebar navigation items in the docs, we should have that in the main navigation menu too. We should also allow custom links using key value pair arrays so we can link to external sites without having to use redirect hacks.
Thinking about adding Laravel Mix. I still want NPM to be optional, but since HydeFront is on NPM it could be cool be able to import it. That way we still have version control, while being able to merge all styles into a single stylesheet.
Originally posted by @caendesilva in hydephp/framework#207 (comment)
Currently, scripts are defined inline which decreases maintainability and testability.
For modularity's sake, I want to move the shared JS into app.js and the documentation specific to docs.js.
A solution to this is to port the functionality from Laradocgen where we add a _media directory for images that then get copied over to the _site/media directory.
I have a couple of dropdown navigation items (automatically created from subfolders in _pages)
How do I target them in the the config/hyde.php
's navigation => order
?
I have tried the following:
'mysubdirectory/index' => 20,
'mysubdirectory/*' => 20,
'mysubdirectory/' => 20,
'mysubdirectory' => 20,
'/mysubdirectory' => 20,
'/mysubdirectory/' => 20,
Also tried assigning a priority number to each page in the subfolder, but to no effect:
'mysubdirectory/mypage' => 20,
'mysubdirectory/mypage2' => 20,
'mysubdirectory/mypage3' => 20,
Ready to implement:
To do when approaching 1.0 release
When using the GitHub template, the resulting repository includes the test directory and the CI workflow. These are set to be ignored by export, and should not be included when using the template either. Noting here for now, will raise an issue for GitHub as well.
Workarounds:
When creating a project using the template, delete the tests
and .github
directories.
When tagging a new release, there are some things to keep in mind to keep the package dist clean and user friendly.
If there is anything that should be added to this list, leave a comment!
Tests to add:
clean
option, purge method, NPM integrationsEdit: Removed deprecated commands
config/torchlight.php references a setting on line 19 which needs to be implemented
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.