leeaustinadams / mango Goto Github PK
View Code? Open in Web Editor NEWA blog package written mostly in clojure
License: Eclipse Public License 1.0
A blog package written mostly in clojure
License: Eclipse Public License 1.0
Users should be able to change
Users should not be able to change
There are several possible languages and content in an article title that util/slugify will not handle well.
Need to run highlightjs on preview
Probably shouldn't output those fields anywhere
Need to use clojure.java.io/resource
to resolve the file.
Should probably downcase tags. It would be cool to add typeahead/completion as well.
Right now mango is strictly tied to mongodb via monger
Maybe it would be cool to utilize the twemoji project.
Reduce the duplication necessary in {prod/dev/test}/config.edn
Offset index and count are ok, but not as flexible as it could be. Consider cursoring.
Currently they refer to the site's configured twitter handle, which may be different.
I'd like to write all the script for the front end as clojurescript ideally, or at least not have my crazy JS "build" step.
There is not much in the way of admin capabilities, including inability to add/remove users
Would be better to have the json api be configurable and plug in more modularly.
Right now mango is strictly tied to Amazon S3 via amazonica
Need to add an option to edit the page in the toolbar
And which duplicate can be accessed by slug depends on the order of database results.
I think there are some places claiming copyright, some places eclipse, etc etc. Need to unify to an understandable license.
Set up pagination for the articles list
Instead of using the database directly, use a passed in data-provider
Need to add sign up pages and functionality
e.g.
(defn blog-articles-by-query
"Query blog articles"
[query {:keys [page per-page] :or {page 1 per-page default-per-page}}]
(mq/with-collection @DB config/db-article-collection
(mq/find query)
(mq/sort {:created -1})
(mq/paginate :page (Integer. page) :per-page (Integer. per-page))))
Throw an error or non-fatal warning on missing or invalid configuration items
Trying to decide if media should be associated with an article or vice versa
article-id
query parameter is always specified, need to add page-id
query param and call dp/update-page-media
instead of dp/update-blog-article-media
They're structurally and behaviorally extremely similar, they really only differ by being in the feed or not and what route they are reached via.
It's just fixed (via CSS) to float right and a width that is some percentage of the parent's width.
It can be determined from the requests
Maybe others
Currently mango hydrates page content (renders markdown to html) on read. But we probably should just hydrate on write, and write both the markdown and the html to the database. Then on read, just read the html.
Jul 19, 2019 2:33:13 PM com.mongodb.diagnostics.logging.JULLogger log
INFO: Cluster created with settings {hosts=[127.0.0.1:27017], mode=SINGLE, requiredClusterType=UNKNOWN, serverSelectionTimeout='30000 ms', maxWaitQueueSize=500}
Jul 19, 2019 2:33:13 PM com.mongodb.diagnostics.logging.JULLogger log
INFO: Exception in monitor thread while connecting to server 127.0.0.1:27017
com.mongodb.MongoSocketOpenException: Exception opening socket
at com.mongodb.connection.SocketStream.open(SocketStream.java:63)
at com.mongodb.connection.InternalStreamConnection.open(InternalStreamConnection.java:115)
at com.mongodb.connection.DefaultServerMonitor$ServerMonitorRunnable.run(DefaultServerMonitor.java:116)
at java.lang.Thread.run(Thread.java:748)
Caused by: java.net.ConnectException: Connection refused (Connection refused)
at java.net.PlainSocketImpl.socketConnect(Native Method)
at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
at java.net.Socket.connect(Socket.java:589)
at com.mongodb.connection.SocketStreamHelper.initialize(SocketStreamHelper.java:50)
at com.mongodb.connection.SocketStream.open(SocketStream.java:58)
... 3 more
Jul 19, 2019 2:33:13 PM com.mongodb.diagnostics.logging.JULLogger log
INFO: No server chosen by ReadPreferenceServerSelector{readPreference=primary} from cluster description ClusterDescription{type=UNKNOWN, connectionMode=SINGLE, serverDescriptions=[ServerDescription{address=127.0.0.1:27017, type=UNKNOWN, state=CONNECTING, exception={com.mongodb.MongoSocketOpenException: Exception opening socket}, caused by {java.net.ConnectException: Connection refused (Connection refused)}}]}. Waiting for 30000 ms before timing out
Add a feature to allow adding/removing tags to multiple articles.
If it slugifies the same, then when retrieving an article by slug, the result is undefined.
Images in articles and pages cannot be viewed any larger than the appear on the page unless the user right clicks and views it in its own window.
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.