librarianphp / librarian Goto Github PK
View Code? Open in Web Editor NEWA static site generator and markdown indexer inspired by Hugo and DEV, written in PHP
Home Page: https://librarianphp.dev/
License: MIT License
A static site generator and markdown indexer inspired by Hugo and DEV, written in PHP
Home Page: https://librarianphp.dev/
License: MIT License
It would be useful to be able to configure a custom template for the index page.
Custom index page has strange behavior where the footer seems to load a new full page.
Include a default favicon to suppress browser console errors
The currently RSS library used by Librarian is quite old. We need to update to a more modern option that doesn't bring too many dependencies in.
In addition to updating to a newer RSS Builder library, implement an RSS Service to provide rss feeds for both the dynamic and static versions (web command and build command respectively). Currently the code is duplicated in these two commands.
Affects the documentation website (docs theme). There must be a better way to organize the auto-generated menu, so that we don't depend only on the content type name for ordering.
It seems that some liquid tags are broken, youtube videos for instance are not filling the expected area in posts, it's cropping in a weird way. Need to review and update liquid tags.
Reported by @WendellAdriel
Running on PHP 8.2
Evaluate best way to offer the documentation and multiple languages, starting with Brazilian Portuguese.
Implement optional ordering for posts based on index
field, same as content types
We still need to implement some kind of search. This must be supported by the static build, so probably a javascript library.
This has always been in the plans but got forgotten.
Let's implement a command to output a static build of your content, so that you can host it within static sites services like GH Pages and Netlify.
Seems pretty feasible with Twig, so I will give it a try.
Pagination is implemented for the static build but the preview site still uses url parameters to set the page. we must make sure the preview site uses the same format as the static build: /page/number
instead of ?page=number
.
This is possible since latest major release of Minicli. Facilitates updating a project without overwriting custom commands.
I just learned about Librarian this morning and since I have a soft spot for SSG's and PHP, I naturally wanted to check it out. Upon install though, I noticed a few red flags after running npm install
.
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE package: '[email protected]',
npm WARN EBADENGINE required: { node: '>=0.8 <=9' },
npm WARN EBADENGINE current: { node: 'v18.12.1', npm: '9.6.7' }
npm WARN EBADENGINE }
npm WARN deprecated [email protected]: Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.
npm WARN deprecated [email protected]: core-js@<3.23.3 is no longer maintained and not recommended for usage due to the number of issues. Because of the V8 engine whims, feature detection in old core-js versions could cause a slowdown up to 100x even if nothing is polyfilled. Some versions have web compatibility issues. Please, upgrade your dependencies to the actual version of core-js.
added 322 packages, and audited 323 packages in 38s
70 packages are looking for funding
run `npm fund` for details
12 vulnerabilities (4 moderate, 4 high, 4 critical)
I do not look at NPM Warnings like they are a meaning to the end of the world
, but I will at least investigate them. If for no other reason then to learn. And that's primarily my goal with the dev projects I have. Any who!
Upon looking into the above warning and resulting audit report, this all stems from a dependency found in package.json
on line 14
Line 14 in 54bfb9b
Looking through the Blame history, it seems as though this was added back in 2021 when the initial config for TailwindCSS was setup. It seems that the only JS that is used in the project is PrismJS, so to make double sure I did a search in VSCode for uses of Tailwind related methods, such as tailwind.createApp(
& api.use
. I will admit that it's not an exhaustive search or anything, but it was enough for me to think that Librarian is not using Websockets or any fancy streaming of I/O. At least on the surface.
Running a simple npm remove tailwind
results in the removal of 191 packages and everything, as far as I can tell, seems to work normally. And with all due respect to your time and this project, I wanted to at least open up a discussion before submitting any code changes. Thank you for all you do and the time that you have devoted to it!
The create
command currently only creates new content (./librarian create content
), but we can extend it to also bootstrap new commands - should be a small lift to implement a ./librarian create command
command.
Update the docs to include details about static builds and promote that as the new default.
This will include moving the current docs site to Netlify using the static implementation. Will serve as case of study to facilitate Netlify hosting.
Keep consistency within the config file by using envconfig
for all values.
Tried a new install + composer update to get the latest releases of commands, this template seems broken, now getting a fatal error with any librarian command:
PHP Fatal error: Cannot redeclare load_config() (previously declared in /home/erika/Projects/test-librarian/vendor/minicli/minicli/src/helpers.php:10) in /home/erika/Projects/test-librarian/app/helpers.php on line 19
Needs to remove the local implementation of the load_config in favor of using the native autoload config from Minicli.
Share existing themes in one or more repositories
This depends on #15 .
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.