clojusc / dragon Goto Github PK
View Code? Open in Web Editor NEWCustomised, Stasis-based Static Site Generator
License: Apache License 2.0
Customised, Stasis-based Static Site Generator
License: Apache License 2.0
This should mean we can also drop the lein library dependency.
Dependency: finish updating this fork in clojusc: https://github.com/clojusc/cfg-edn-prop-env
This component responds to the events published by the watcher component. It will dispatch specific functions upon published event type/s, but with controls/limits appropriate for computationally expensive or time-consuming handlers. This is delay/batching mechanism is intended to prevent handler execution floods, keep rapid-fire changes from bogging down the system.
Development tasks:
The FRMX blog has created several nifty functions that would be generally useful; @bobbermac, would you be willing to contribute these?
Note that clozhang/blog#8 is blocked on this.
Follow-up work from issue #60:
Once these are done, we'll be able to close #31
Tasks:
:registry
key on the event component with an associated data structure?Depends upon #13 - "Add db component"
The biggest offender here is dragon.config.core
, where many functions in that namespace rightly belong in the config component namespace where it makes sense to have functions with a system
argument.
In order to best support a flexible, extensible text processing framework, Dragon should support a user's or other application's ability to respond to published Dragon events. Event processing should also be a first-class citizen, with Dragon using it natively for all of its own internal processing.
Tasks:
core.async
pub-subPerform misc fixes.
For iterators and transducers (as implementations).
With the addition of 15 years worth of old material to a blog, operations can no longer be done efficiently entirely in memory. A new approach is required:
It's gotten a bit large now ...
I'd like to write a dragon plugin that adds Flickr images to blog posts (of a given size, arrangement, and link back to Flickr). There's a ticket for this here:
In order to do this, though, I need to inject a task into the normal content-parsing workflow, before markdown is converted to HTML.
In order to that, I need Dragon to be event-driven (see #1). With that in place, adding plugin support should be pretty straight-forward.
Phase I Tasks (Milestone 0.5.0):
Phase II Tasks:
Phase III Tasks:
Dragon currently requires that one run Docker in order to manage the content cache (Redis). We need to support those who can't (or won't) run Docker by allowing Redis to be run natively (not in a guest os/container).
This should essentially amount to creating a new backend for native Redis. It might also be a good idea to rename the current Redis backend to docker-redis or somesuch.
Dev tasks:
main
or web
to start the systemweb
nsThe docker image currently being used is 4.something; Redis 5.x has been released.
This is more stylistically motivated, more than anything. Had to do this recently for a different project which used the extend
approach to make it easier for Lifecycle
implementations to add more methods.
See:
In particular, the change sets:
For an example of use from the controlling namespace, see:
Tasks:
this
and update references to component
create-*
constructorsLooks like we're not developing Datomic support side-by-side with Redis support; let's just dump Datomic and the extra dep, then. We can always add it back later, if that's ever a need.
This will help bugs in metatags that are including HTML in their strings.
In particular, dragon.blog.post.impl.default/get-excerpts
needs to be updated to generate more k/v pairs that have been stripped of HTML.
When running the watcher, editing (looking at, really) a file with vi
creates a .swp
file and this gets processed by the watcher. We shouldn't do that ;-)
I'd like to write a dragon plugin that adds Flickr images to blog posts (of a given size, arrangement, and link back to Flickr). There's a ticket for this here:
In order to do this, though, I need to inject a task into the normal content-parsing workflow, before markdown is converted to HTML.
In order to that, I need Dragon to be event-driven (see #1). With that in place, adding plugin support should be pretty straight-forward.
Phase I Tasks (Milestone 0.5.0):
Phase II Tasks:
Phase III Tasks:
name.plugin.main
?name.plugin.events
?name.plugin.subscribers
?Use https://github.com/wkf/hawk.
See:
0.6.0 - Tasks:
0.7.0 - Tasks:
This component responds to the events published by the watcher component. It will dispatch specific functions upon published event type/s, but with controls/limits appropriate for computationally expensive or time-consuming handlers. This is delay/batching mechanism is intended to prevent handler execution floods, keep rapid-fire changes from bogging down the system.
The first half of this work was done in 0.6.0 (see #49)
The following tasks remain:
Instead of the awkward docker integration, use this instead:
May need to file some support tickets, since this hasn't been used after the NASA fork ,,,
This should be an in-memory db. Will be used for such things as:
Tasks:
I suspect there is an event that needs to be published, but only when not in web or help cli mode, just regular cli mode.
I.e., instead of working off of the old, large data structure that hold everything.
Now that dragon uses component, lets get the dev system using it.
Sub-tasks:
Part of #28
We've established a bad habit of passing around the whole system data structure.
Sub-tasks:
Part of #28
The Flickr embedded JS sucks ass (slow page loads, image distortion during load, requires additional JS in the page, etc.). Can we get a Flickr tag that does just what we want?
selmer
and [md selmer]
{% flickr-img ... %}
)md
to md,selmer
I'd like to write a dragon plugin that adds Flickr images to blog posts (of a given size, arrangement, and link back to Flickr). There's a ticket for this here:
In order to do this, though, I need to inject a task into the normal content-parsing workflow, before markdown is converted to HTML.
In order to that, I need Dragon to be event-driven (see #1). With that in place, adding plugin support should be pretty straight-forward.
Phase I Tasks (Milestone 0.5.0):
Phase II Tasks:
Phase III Tasks:
A la https://github.com/hexagram30/societatis/blob/master/resources/scripts/switch-to-https-submodules.sh
Note that without this, CI/CD will be broken in the release/0.6.x branch ...
(or multimethods ...)
Replace the current system setup in dev.clj, the CLI, anywhere else with a system created using the system-manager project (from the clojusc org).
The component/system.clj file should also be refactored appropriately as part of this.
There's a show subdir for other show namespaces; let's keep it all together, like the rest of the codebase does.
Tasks:
This will allow for the down-stream overriding of the blog post processor implementation, addressing much of what the plugin ticket (see #2) aims to do.
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.