profile
viewpoint

jeroenvandijk/capybara-mechanize 206

RackTest driver for Capybara with remote request support

jeroenvandijk/cascalog-graph 26

Graph implementation for Cascalog

cookiestack/rails 3

Ruby on Rails

jeroenvandijk/acts_like_git 2

A Rails plugin that uses git to version ActiveRecord fields, like acts_as_versioned, but a git.

jeroenvandijk/amsclj-cascalog-2013 2

Presentation about cascalog for Clojure Meetup in Amsterdam in April 2013

jeroenvandijk/assets_server 2

loaded resource specific assets in context, no more complex css/javascript/etc files

jeroenvandijk/clj-bundler 2

Manages your jruby dependencies under Clojure

jeroenvandijk/adva_cms 1

cutting edge cms, blog, wiki, forum ...

jeroenvandijk/app_lego 1

A collection of Rails templates I use for projects

jeroenvandijk/bob 1

Bob the Builder will build your codes

issue commentborkdude/sci

Add a flag to control execution length/time

Another option would to be to be able to pass a function which is called on every step and when it returns false iteration is stopped:

(def interrupt-flag (atom true)
(def step-fn (fn [] @interrupt-flag))
(future (Thread/sleep 10000) (reset! interrupt-flag false))
(sci/eval-string "(loop [] (recur))" {:step-fn step-fn})

By making it a function the user can also choose between invocation counting or a timeout or both, or something else.

Regarding

Note that this won't work for (sci/eval-string "(Thread/sleep 10000000000)" ) but so won't iterate-max.

This can easily be done by wrapping the evaluation in a future and call future-cancel after a timeout:`

(time (let [fut (future (Thread/sleep 1000000000))] (future-cancel fut) (try @fut (catch Exception e))))
"Elapsed time: 1.756845 msecs"
nil
jeroenvandijk

comment created time in 2 days

fork jeroenvandijk/reitit

A fast data-driven router for Clojure/Script

https://metosin.github.io/reitit/

fork in 7 days

startedwilkerlucio/pathom-viz

started time in 8 days

starteddarklang/dark

started time in 9 days

issue commentborkdude/babashka

Add system property babashka.version which contains current bb version

@borkdude Yeah I think that's perfect for what I had in mind

borkdude

comment created time in 14 days

issue openedborkdude/babashka

Unexpected behaviour: -f with empty script starts repl

version

babashka v0.1.2 and below

platform

Mac, Linux

problem

Babashka starts a repl when the script it is given is empty.

repro

echo '(println "hi")' > empty.txt
 bb -f empty.txt
hi

vs

touch empty.txt
 bb -f empty.txt
Babashka v0.1.2 REPL.
Use :repl/quit or :repl/exit to quit the REPL.
Clojure rocks, Bash reaches.

user=>

expected behavior

I'm expecting that bb either complains about the empty file OR just does nothing, but not that it starts the repl. It gives me doubts about whether I'm using the right cli option (-f)

created time in 14 days

create barnchjeroenvandijk/sci

branch : experiment/export-internal-vars

created branch time in 15 days

issue commentepiccastle/spire

Consume as Java Library

I alos had to add (require 'spire.core) to require all print-form methods

And I had to use host-config and not host string, something like this:

(ssh {:host-string "ec2-user@***"
      :identity "***
      :passphrase "***"
      :accept-host-key true}
     (shell {:cmd "echo 'hello'"}))
cartesian-theatrics

comment created time in 17 days

issue commentepiccastle/spire

Consume as Java Library

@retrogradeorbit I had to add (require 'spire.output.core) to your instructions or I'm getting:

Syntax error (ClassNotFoundException) compiling at (/private/var/folders/ck/9zqvs0zx5vsf2bc7rvv1pwc40000gn/T/form-init14248799307276523803.clj:1:30).
spire.output.core

Thus the following works for me:

lein repl
(require '[spire.transport :refer [ssh]])
(require '[spire.module.shell :refer [shell]])
(clojure.lang.RT/loadLibrary "spire")
(require 'spire.output.core)
(ssh "crispin@epiccastle.io" (shell {:cmd "echo hello"}))
cartesian-theatrics

comment created time in 17 days

fork jeroenvandijk/spire

pragmatic provisioning using clojure

fork in 20 days

PR closed BrunoBonacci/graalvm-clojure

Add GraalVM builds as test

On PR's it should list all files changes (not per commit)

+69 -2

2 comments

4 changed files

jeroenvandijk

pr closed time in 25 days

pull request commentBrunoBonacci/graalvm-clojure

Add GraalVM builds as test

@BrunoBonacci I was trying to trigger a Github Actions build and see if I could get a GraalVM build for only the relevant changes. It didn't directly work, I might try some other time again. Apologies for the noise. Will close it now.

jeroenvandijk

comment created time in 25 days

Pull request review commentborkdude/babashka

Add support for clojure.data.generators

+(ns clojure.data.generators-test+  (:require [clojure.data.generators :as gen]+            [clojure.test :refer (deftest is)]))++;; REVIEW needed to add these vars. Missing in Babashka?+(def ^:dynamic *print-length* nil)+(def ^:dynamic *print-level* nil)

@borkdude Thanks. Pushed the update. Locally it works

jeroenvandijk

comment created time in a month

push eventjeroenvandijk/babashka

Michiel Borkent

commit sha d88c034686a0da779984465af317250e6ce2de8d

sci: support *print-level*

view details

Jeroen van Dijk

commit sha 5971759ca204eb3fe1273a96013615a4cd685fb6

Merge branch 'master' of github.com:borkdude/babashka into feature/add-classes-to-support-generators

view details

Jeroen van Dijk

commit sha 4e12e3e2709fec0a32454367ac45ff547f6007c5

Remove temporary *print-level* definition

view details

push time in a month

push eventjeroenvandijk/babashka

Jeroen van Dijk

commit sha accdf7cac5853948a6dfb40daff6a407a11d51ca

Add Clojure.data.generator tests to CI

view details

push time in a month

pull request commentborkdude/babashka

Add support for clojure.data.generators

With the merging in of master:

BABASHKA_TEST_ENV="native" script/lib_tests/clojure_data_generators_test

Testing clojure.data.generators-test

Ran 3 tests containing 100 assertions.
0 failures, 0 errors.
jeroenvandijk

comment created time in a month

Pull request review commentborkdude/babashka

Add support for clojure.data.generators

+(ns clojure.data.generators-test+  (:require [clojure.data.generators :as gen]+            [clojure.test :refer (deftest is)]))++;; REVIEW needed to add these vars. Missing in Babashka?+(def ^:dynamic *print-length* nil)

Sharp, only *print-level* indeed*. Fixed this

jeroenvandijk

comment created time in a month

push eventjeroenvandijk/babashka

Michiel Borkent

commit sha a825cc85c14e99fe196affa2b2d648a25d58bc25

sci: add double-array and short-array

view details

Michiel Borkent

commit sha fae5c86009dabdbc1c7174a83c185e04e807c5d0

Add clojure.lang.BigInt (#472)

view details

Jeroen van Dijk

commit sha 933cc15c0514601409b99e4ebc54712eb2a56193

Merge branch 'master' of github.com:borkdude/babashka into feature/add-classes-to-support-generators

view details

Jeroen van Dijk

commit sha e36ba1aee995e03628b6b8409fff4a515c002a75

Only *print-level* was missing

view details

push time in a month

pull request commentborkdude/babashka

Add support for clojure.data.generators

Running with locally compiled bb: BABASHKA_TEST_ENV="native" script/lib_tests/clojure_data_generators_test

Currently failing with:

ERROR in (test-shuffle) (/Users/jeroen/Projects/Github/babashka/test-resources/lib_tests/clojure/data/generators_test.clj:24)
Uncaught exception, not in assertion.
expected: nil
  actual: clojure.lang.ExceptionInfo: Method toBigInteger on class clojure.lang.BigInt not allowed! [at line 185, column 31]
{:type :sci/error, :line 185, :column 31}
 at sci.impl.utils$throw_error_with_location.invokeStatic (utils.cljc:50)
    sci.impl.utils$throw_error_with_location.invoke (utils.cljc:44)
    sci.impl.utils$throw_error_with_location.invokeStatic (utils.cljc:45)
...

Ran 3 tests containing 52 assertions.
0 failures, 2 errors.

Will look into this later

jeroenvandijk

comment created time in a month

push eventjeroenvandijk/babashka

Jeroen van Dijk

commit sha 4c44fb403c17fee0bd828a1e86a4d5ebbf9ba8a7

Import https://github.com/clojure/data.generators/blob/master/src/test/clojure/clojure/data/generators_test.clj

view details

Jeroen van Dijk

commit sha b087f9f86b040136d4642437b5b763a96d2c5172

Add script to test with clojure.data.generators-test

view details

Jeroen van Dijk

commit sha 30177675fd7c9da630858db8b302a3cb38cdf1b3

Add missing vars

view details

push time in a month

PR opened borkdude/babashka

Add support for clojure.data.generators

I would like to use clojure.data.generators in a babashka script to deterministically generate data.

These changes are required to load clojure.data.generators:

bb -e '(eval (read-string (str "(do" (slurp "https://raw.githubusercontent.com/clojure/data.generators/master/src/main/clojure/clojure/data/generators.clj")

This adds the missing classes java.util.Random and java.lang.Short This adds the missing aliases BigInteger and Short

double-array and short-array are added via https://github.com/borkdude/sci/pull/350

I didn't add unit tests as I'm not sure what a good test would be other than loading the generator namespace.

+4 -0

0 comment

2 changed files

pr created time in a month

PR opened borkdude/sci

Add support for double-array and short-array (clj)

I would like to use clojure.data.generators in a babashka script to deterministically generate data.

This adds support for double-array and short-array (only in clj)

These changes are required to load clojure.data.generators:

bb -e '(eval (read-string (str "(do" (slurp "https://raw.githubusercontent.com/clojure/data.generators/master/src/main/clojure/clojure/data/generators.clj")

Babashka will need some extra changes (see reference below)

+2 -0

0 comment

1 changed file

pr created time in a month

push eventjeroenvandijk/babashka

Jeroen van Dijk

commit sha 8934a953532ddc9371617472f781af8c425a5d00

Add missing import aliases

view details

push time in a month

push eventjeroenvandijk/sci

Jeroen van Dijk

commit sha c3c4b6cd4a1beb90ab23dfbfc3eafa5d97a02cd7

Add support for double-array and short-array

view details

push time in a month

push eventjeroenvandijk/sci

Jeroen van Dijk

commit sha 95c140178f6cddcc01d87d27d5e8423f4f441bcb

Add support for double-array and short-array

view details

push time in a month

create barnchjeroenvandijk/sci

branch : feature/support-clojure.data.generators

created branch time in a month

startedwilkerlucio/pathom-datomic

started time in a month

pull request commentborkdude/sci

Added :iterate-max to control number of function calls

Btw, not sure what you think of this:

===> multitime results
1: ./sci "(loop [val 0 cnt 1000000] (if (pos? cnt) (recur (inc val) (dec cnt)) val))"
            Mean                Std.Dev.    Min         Median      Max
real        1.616+/-0.0569      0.221       1.475       1.583       3.677
user        1.510+/-0.0183      0.071       1.400       1.498       1.814
sys         0.072+/-0.0013      0.005       0.062       0.072       0.089

Changed this line from bindings (:bindings ctx) to bindings (.get ^java.util.Map ctx :bindings)

Now I wonder how to do a proper performance test. Maybe these differences are just too small

jeroenvandijk

comment created time in a month

pull request commentborkdude/sci

Added :iterate-max to control number of function calls

Hmmm odd

brew install multitime
Error: No available formula with the name "multitime"

Guess I was unlucky 😐

jeroenvandijk

comment created time in a month

pull request commentborkdude/sci

Added :iterate-max to control number of function calls

Install instructions to be complete :)

git clone git@github.com:ltratt/multitime.git 
cd multitime
make -f Makefile.bootstrap
./configure
make install

I used multitime version 2eaf07774a

jeroenvandijk

comment created time in a month

pull request commentborkdude/sci

Added :iterate-max to control number of function calls

With n=100. I don't really see anything that is significant or makes sense (3c01531 should be slower than 25ace7c)


===> multitime results (Implement safety check)
1: tmp/sci-3c01531 "(loop [val 0 cnt 1000000] (if (pos? cnt) (recur (inc val) (dec cnt)) val))"
            Mean                Std.Dev.    Min         Median      Max
real        1.565+/-0.0112      0.044       1.499       1.561       1.687
user        1.479+/-0.0096      0.037       1.419       1.475       1.596
sys         0.077+/-0.0014      0.005       0.068       0.076       0.099

===> multitime results (master)
1: tmp/sci-6c8852d "(loop [val 0 cnt 1000000] (if (pos? cnt) (recur (inc val) (dec cnt)) val))"
            Mean                Std.Dev.    Min         Median      Max
real        1.599+/-0.0137      0.053       1.523       1.592       1.825
user        1.510+/-0.0114      0.044       1.443       1.507       1.702
sys         0.077+/-0.0020      0.008       0.063       0.075       0.109

===> multitime results (Extract body interpretation as an inline function )
1: tmp/sci-25ace7c "(loop [val 0 cnt 1000000] (if (pos? cnt) (recur (inc val) (dec cnt)) val))"
            Mean                Std.Dev.    Min         Median      Max
real        1.606+/-0.0150      0.058       1.500       1.605       1.856
user        1.517+/-0.0126      0.049       1.420       1.520       1.702
sys         0.077+/-0.0017      0.006       0.062       0.076       0.097
jeroenvandijk

comment created time in a month

pull request commentborkdude/sci

Added :iterate-max to control number of function calls

I'm getting different results. Not exactly sure how to read or explain the results:


git checkout 6c8852d4b78f037e4594727c17b10c018a7ac25b
COMMIT=$(git log --pretty=format:'%h' HEAD^..HEAD | cat)
script/compile
mv ./sci tmp/sci-${COMMIT}
~/bin/multitime -n10 -s0 tmp/sci-${COMMIT} "(loop [val 0 cnt 1000000] (if (pos? cnt) (recur (inc val) (dec cnt)) val))"

git checkout 25ace7c
COMMIT=$(git log --pretty=format:'%h' HEAD^..HEAD | cat)
script/compile
mv ./sci tmp/sci-${COMMIT}
~/bin/multitime -n10 -s0 tmp/sci-${COMMIT} "(loop [val 0 cnt 1000000] (if (pos? cnt) (recur (inc val) (dec cnt)) val))" 

git checkout 3c01531
COMMIT=$(git log --pretty=format:'%h' HEAD^..HEAD | cat)
script/compile
mv ./sci tmp/sci-${COMMIT}
~/bin/multitime -n10 -s0 tmp/sci-${COMMIT} "(loop [val 0 cnt 1000000] (if (pos? cnt) (recur (inc val) (dec cnt)) val))" 


===> multitime results (master)
1: tmp/sci-6c8852d "(loop [val 0 cnt 1000000] (if (pos? cnt) (recur (inc val) (dec cnt)) val))"
            Mean                Std.Dev.    Min         Median      Max
real        1.728+/-0.1915      0.191       1.591       1.665       2.271
user        1.592+/-0.0473      0.047       1.517       1.590       1.688
sys         0.067+/-0.0049      0.005       0.060       0.068       0.075

===> multitime results (Extract body interpretation as an inline function )
1: tmp/sci-25ace7c "(loop [val 0 cnt 1000000] (if (pos? cnt) (recur (inc val) (dec cnt)) val))"
            Mean                Std.Dev.    Min         Median      Max
real        1.964+/-0.3633      0.363       1.625       1.786       2.768
user        1.706+/-0.1910      0.191       1.537       1.653       2.197
sys         0.089+/-0.0158      0.016       0.074       0.083       0.125


===> multitime results (Implement safety check)
1: tmp/sci-3c01531 "(loop [val 0 cnt 1000000] (if (pos? cnt) (recur (inc val) (dec cnt)) val))"
            Mean                Std.Dev.    Min         Median      Max
real        1.702+/-0.2160      0.215       1.546       1.620       2.316
user        1.551+/-0.0616      0.062       1.466       1.533       1.656
sys         0.073+/-0.0035      0.004       0.068       0.073       0.079
jeroenvandijk

comment created time in a month

pull request commentborkdude/sci

Added :iterate-max to control number of function calls

I can imagine the speedup comes from extracting the interpretation of the body https://github.com/borkdude/sci/pull/349/commits/25ace7c8941fe10f1c158d567936c730e91ac289

This is one extra function call, but two function call less (first and count)

jeroenvandijk

comment created time in a month

PR opened borkdude/sci

Added :iterate-max to control number of function calls

This is an example implementation for issue #348

It allows to control the number of functions call via the iterate-max.

In local script/perf checks this doesn't seem to affect performance (before and after).

things to be discussed

  • should this code be moved to analyzer.clj as suggested by @borkdude
  • naming of the option
  • adding an elapsed time limit
+62 -4

0 comment

4 changed files

pr created time in a month

issue openedborkdude/sci

Add a flag to control execution length/time

Problem statement

Sci cannot detect when it is running code that will run forever. Clojure cannot do this either, but the flag :termination-safe suggests that Sci is able to do this. A counter example is:

((fn a [n] (if (#{0 1} n) 1 (+ (a (- n 2)) (a (- n 1)))))  30)

This code takes more than 6 seconds with n=30 via babashka. With n=100 this code will practically never finish.

Why does this matter?

A Babashka user is fully aware of what is being executed and will therefore be responsible for the code that is being run. If it takes to long, one CTRL-C will kill the program. However when you use Sci to run third party code in your JVM or in a web browser things start to change. Think of the following examples:

  • A multi tenant webserver (something like PCP), one mistake can occupy one full cpu process
  • A website that publically hosts Sci scripts (Athens is likely to use Sci for dynamic content. A mistake here can make a browser tab unresponsive)

In the JVM example one can use an approach like Clojail to work around this. In browser there are no threads and this becomes a different story. One needs to hack with webworkers to make it safe (not sure how succesful this will be). In both cases it would be cleaner if Sci had an option to protect us against endless execution. It would allow us to provide better error messages and remove complexity in the hosting code.

Potential solution(s)

  1. Have a counter that tracks the number of executions. Stop when the counter reaches a limit
  2. Stop after a certain expired time. This requires to check every so often (a counter) for the elapsed time. This makes it an extension of 1.

Other requirements of potential solution

When the safety flag is turned off it should not affect performance.

Alternatives to control execution time

  • JVM: use Threads and Thread.stop (deprecated)
  • Browser: use web workers (not sure how safe)

Open questions

  • How do we name this option?
  • Do we want number of iterations or elapsed time or both?

Other examples

  • Python has a settable stack limit mentioned by @retrogradeorbit https://docs.python.org/3.8/library/sys.html#sys.setrecursionlimit

Background of this issue can be found here https://clojurians-log.clojureverse.org/babashka/2020-06-10/1591808634.003100

created time in a month

push eventjeroenvandijk/sci

Jeroen van Dijk

commit sha 3c015315d8f940b6e011f25f5a070b0eef854f9b

Implement safety check lein test sci.performance Testing reusable function result. Evaluation count : 19170 in 6 samples of 3195 calls. Execution time mean : 32.441596 µs Execution time std-deviation : 636.477386 ns Execution time lower quantile : 31.584483 µs ( 2.5%) Execution time upper quantile : 33.182918 µs (97.5%) Overhead used : 1.858977 ns Found 2 outliers in 6 samples (33.3333 %) low-severe 1 (16.6667 %) low-mild 1 (16.6667 %) Variance from outliers : 13.8889 % Variance is moderately inflated by outliers

view details

push time in a month

push eventjeroenvandijk/sci

Jeroen van Dijk

commit sha 8312d90afed816a13c18583edb77d239c506c46b

Add test for safety checks

view details

push time in a month

create barnchjeroenvandijk/sci

branch : chore/iteration-max

created branch time in a month

create barnchjeroenvandijk/sci

branch : chore/termination-safer-scratch

created branch time in a month

startedreagent-project/reagent

started time in a month

push eventjeroenvandijk/graalvm-clojure

Jeroen van Dijk

commit sha 9490e078000b68484d2a8fa05d67a8d568340bd6

Add export

view details

push time in a month

push eventjeroenvandijk/graalvm-clojure

Jeroen van Dijk

commit sha fe1c36b8b10f3b9dfcca48a38196923950c08c88

Revert "Touch project.clj file" This reverts commit 604be3ec0876b5eae2c898237694623635e66793.

view details

push time in a month

push eventjeroenvandijk/graalvm-clojure

Jeroen van Dijk

commit sha 10523cba05de0df5e068e8a8645cb2b91a660938

Forgot to add Graalvm

view details

push time in a month

push eventjeroenvandijk/graalvm-clojure

Jeroen van Dijk

commit sha 604be3ec0876b5eae2c898237694623635e66793

Touch project.clj file

view details

push time in a month

PR opened BrunoBonacci/graalvm-clojure

Add GraalVM builds as test

On PR's it should list all files changes (not per commit)

+51 -1

0 comment

4 changed files

pr created time in a month

push eventjeroenvandijk/graalvm-clojure

Jeroen van Dijk

commit sha 84e7c827a77bcd931627d122700bfa92bcb5281c

Forgot to add path

view details

push time in a month

push eventjeroenvandijk/graalvm-clojure

Jeroen van Dijk

commit sha e853ac90f110da68c2f7ed4c654aec5599f27adc

Update datascript to 1.10.1

view details

push time in a month

push eventjeroenvandijk/graalvm-clojure

Jeroen van Dijk

commit sha 993ec118267b7d2668c76629b412fbb91c398620

Add script to react on changes

view details

push time in a month

push eventjeroenvandijk/graalvm-clojure

Jeroen van Dijk

commit sha e155fe102489f9a1d7c475141e93998fe36a48cc

Try unzip

view details

Jeroen van Dijk

commit sha e3942195cc828bbfa78632e1f42f8a8ad7b7d918

Add args

view details

push time in a month

push eventjeroenvandijk/graalvm-clojure

Jeroen van Dijk

commit sha fa3a95895d76f115429bc0f9357a6f73d6ffab54

Install babashka

view details

push time in a month

push eventjeroenvandijk/graalvm-clojure

Jeroen van Dijk

commit sha c59272f80b5a8f809ca5ca9e465ba82f7f8c737f

Test file changes and babushka

view details

push time in a month

push eventjeroenvandijk/graalvm-clojure

Jeroen van Dijk

commit sha 1ba907786d12d22137ab493c85f7b2d961e54968

Test file changes in Github Actions

view details

push time in a month

fork jeroenvandijk/graalvm-clojure

This project contains a set of "hello world" projects to verify which Clojure libraries do actually compile and produce native images under GraalVM.

fork in a month

PR merged athensresearch/athens

Reviewers
style: reformat and restructure tests in parser_test.clj

See commit messages for details.

+22 -9

1 comment

1 changed file

roryokane

pr closed time in a month

push eventathensresearch/athens

Rory O’Kane

commit sha 8658e4eec446a83c04615862d00929ee9ef7b5a5

style: reformat and restructure tests in parser_test.clj (#108) * style: undo wrong auto-formatting in parser_test.clj When I was making the changes in commit 19f607d85a8116bea02f326e8a07e636b8b1c863, my editor auto-formatted on paste despite being configured not to. I have submitted a bug report about that: https://github.com/BetterThanTomorrow/calva/issues/656. * style: make block-parser-tests more readable using `are` I think I understand the requirements of parsing enough to confirm that the current AST structure is appropriate, or at least would be easy to change everywhere if that were needed. So it’s okay to also remove the comments about not needing more tests. * style: nicer indentation of expected/input values in tests Configure cljstyle to let us use indents within `are` blocks instead of having to faux-indent by prefixing a comma. * Revert "style: nicer indentation of expected/input values in tests" This reverts commit a24c9583f4bdcadf4a685abc1dc694754fb9ce1e. * style: comma-less formatting of expected/input values in tests This style uses more vertical space, but makes each individual test case easier to read and is more idiomatic to Clojure. It also doesn’t require changing cljstyle configuration.

view details

push time in a month

push eventroryokane/athens

Rory O’Kane

commit sha 3fd43a5386087cf9c09f245d3bf54ad78a6672b0

feat: clearer browser tab titles (#117) Before: Page with title: “Athens vs Roam Tech Stack” Page without title: “Athens Research” After: Page with title: “Athens vs Roam Tech Stack – Athens” Page without title: “untitled – Athens”

view details

Jeroen van Dijk

commit sha cb2443b0f9d8af03848946106de71183542c314b

Merge branch 'master' into parser-test-style-fix

view details

push time in a month

pull request commentathensresearch/athens

style: reformat and restructure tests in parser_test.clj

@roryokane what do you think about just add one blank line in between like in test/athens/lib/dom/attributes_test.cljc? I think that's readable enough?

roryokane

comment created time in a month

push eventroryokane/athens

Rory O’Kane

commit sha c50fb6178fe3b6809bc5ca27f503709babcad6e5

Document in CONTRIBUTING.md how to run tests and devcards (#110) * docs(contributing): make spacing consistent, fix capitalization The spacing and formatting changes were made by running the file through Prettier (https://prettier.io/). * docs(contributing): document how to get tests and devcards running And improve wording in other parts of the document and in test scripts. * docs: Don't mention `lein devcards` To avoid confusion and having other ports than documented Co-authored-by: Jeroen van Dijk <jeroentjevandijk@gmail.com>

view details

Jeroen van Dijk

commit sha d25945ce7730d6a098d9310fceed890d7f1f865e

Add with-attributes to clean up attributes (#112) * Add with-attributes to clean up attributes Will add :on-keypress {:ESC (fn [event] )} later * No js/ vars in cljc namespaces * Fix clj-kondo warnings

view details

jeff

commit sha f9273de96588f3d8fe452eb20bfb4eaf8e3286f9

feat(style-guide): composable css styles (#114)

view details

jeff

commit sha dff2a095927b913863e542af6ba4b0d711e77e17

Style guide (#115) * feat(style-guide): composable css styles * feat(style guide): semantic colors, IBM Plex types * fix: carve * fix: remove unused highlights. change opacity based on @jacobmorse rec * fix: tiny styling changes

view details

jeff

commit sha d3c36e8b82cbdd92acb392e946766fe76f9c1af5

All Pages (#116) * feat(style-guide): composable css styles * feat(style guide): semantic colors, IBM Plex types * fix: carve * fix: remove unused highlights. change opacity based on @jacobmorse rec * fix: tiny styling changes * feat(all pages): create dsdb helpers, format table Co-authored-by: Jeroen van Dijk <jeroentjevandijk@gmail.com>

view details

Jeroen van Dijk

commit sha d1a40d0f50f4cb50b8eb61347f31ca2fd350a069

Merge branch 'master' into parser-test-style-fix

view details

push time in a month

push eventathensresearch/athens

jeff

commit sha f9273de96588f3d8fe452eb20bfb4eaf8e3286f9

feat(style-guide): composable css styles (#114)

view details

jeff

commit sha dff2a095927b913863e542af6ba4b0d711e77e17

Style guide (#115) * feat(style-guide): composable css styles * feat(style guide): semantic colors, IBM Plex types * fix: carve * fix: remove unused highlights. change opacity based on @jacobmorse rec * fix: tiny styling changes

view details

Jeroen van Dijk

commit sha d5126a1b9473bc4f5e2c5c44c09f2d65be2671f5

Merge branch 'master' into table

view details

push time in a month

push eventathensresearch/athens

jeff

commit sha dff2a095927b913863e542af6ba4b0d711e77e17

Style guide (#115) * feat(style-guide): composable css styles * feat(style guide): semantic colors, IBM Plex types * fix: carve * fix: remove unused highlights. change opacity based on @jacobmorse rec * fix: tiny styling changes

view details

push time in a month

PR merged athensresearch/athens

Style guide

Resolves part of #103

Assumes #114 is merged

Haven't looked into Material UI Icons

+180 -2

0 comment

4 changed files

tangjeff0

pr closed time in a month

push eventathensresearch/athens

jeff

commit sha f9273de96588f3d8fe452eb20bfb4eaf8e3286f9

feat(style-guide): composable css styles (#114)

view details

Jeroen van Dijk

commit sha 4115ee49dcb81ef89f1d95b7419dfc4baaef28a8

Merge branch 'master' into style-guide

view details

push time in a month

push eventathensresearch/athens

jeff

commit sha f9273de96588f3d8fe452eb20bfb4eaf8e3286f9

feat(style-guide): composable css styles (#114)

view details

push time in a month

issue closedathensresearch/athens

Composable CSS Styles

Discussion continued from https://github.com/athensresearch/athens/commit/4d0b5454c8aaba5df097e6019df5204fce88b9d3#r39553790

Right now we are using with-style to compose styles, but I believe the interface can be improved. For one, it should be able to accept any arity of styles. @jeroenvandijk wrote a merge-styles function but I'm not if we need two separate functions.

Another thing is that with-style returns a curried function, whereas with-attributes returns a map directly. I'm not sure we need to return a function unless the returned function could be called again as if it were with-style.

Anyway, here is the general specification I would like for with-style:

;; All cases should evaluate to the the following vanilla cljs
[:div {:style {:display "flex"}}]

;; map
[:div (with-style {:display "flex"})]

;; nested map
[:div (with-style {:style {:display "flex"}})]

;; using functions
(def +flex (with-style {:display "flex"}))
[:div (+flex)]
[:div (with-style +flex)]
[:div (with-style (+flex))]


;; Now let's try composing
(def +justify-center (with-style {:justify-content "center"}))
(def +align-center (with-style {:align-center "center"}))
(def +flex-center (with-style +flex +justify-center +align-center))

[:div (with-style +flex +justify-center +align-center)]
[:div (with-style (+flex) (+justify-center) (+align-center))]
[:div (+flex-center)]


;; Mix and Match
;; 1 - function
;; 2 - called function
;; 3 - map
;; 4 - nested map
[:div (with-style +flex (+align-center) {:justify-content "center"} {:style {:text-align "center"}})]

;; Output
[:div {:style {:display "flex" :align-items "center" :justify-content "center" :text-align "center"}}]

closed time in a month

tangjeff0

PR merged athensresearch/athens

feat(style-guide): composable css styles

closes #113

+31 -20

0 comment

2 changed files

tangjeff0

pr closed time in a month

startedxeqi/kerodon

started time in a month

startedoliyh/re-graph

started time in a month

issue commentathensresearch/athens

Style Guide

+1 one semantic names. I think Things like green can be used internally (in the style.cljs file for instance). Maybe the designers can make some examples of how the html would be structured ideally. As developers, we can see how could make this work for them? I think we can make everyone happy

tangjeff0

comment created time in a month

issue commentathensresearch/athens

Migrate from re-frame to reagent

The reason I don't think re-frame is suitable is because of the lack of being able to do dependency injection properly. If we could pass the app-db as an argument to subscribe etc this would be a whole lot easier.

I think the proposal of @daveduthie, with all respect, is a start but not as good as I would like to have it. I'm used to making a whole application deterministic by having deterministic components in tests (mocking time, randomness etc). This what I would like to see with Athens as well.

tangjeff0

comment created time in a month

CommitCommentEvent

push eventathensresearch/athens

Jeroen van Dijk

commit sha d25945ce7730d6a098d9310fceed890d7f1f865e

Add with-attributes to clean up attributes (#112) * Add with-attributes to clean up attributes Will add :on-keypress {:ESC (fn [event] )} later * No js/ vars in cljc namespaces * Fix clj-kondo warnings

view details

push time in a month

PR merged athensresearch/athens

chore: Add with-attributes to clean up attributes

@tangjeff0 What do you think about this? It should make combining styles, classes and later other things like event listeners much cleaner (see #111)

I'm thinking about adding specialized key listeners in the same like :on-keypress {:ESC (fn [event] )} later. This will help implement #64

+132 -34

0 comment

3 changed files

jeroenvandijk

pr closed time in a month

push eventjeroenvandijk/athens

Rory O’Kane

commit sha abe0c0dc52df22243de3fe6b384dca6a60cb712d

feat(parsing): basic support for URL links (#105) I say this is “basic” support because it uses the `any-chars` rule, which is too eager. Eventually we will recursively parse the link text instead of capturing it all with a regex. I call them URL links instead of external links because theoretically, users might write URLs to internal pages such as http://localhost:3000/#/page/OaSVyM_nr.

view details

Rory O’Kane

commit sha c50fb6178fe3b6809bc5ca27f503709babcad6e5

Document in CONTRIBUTING.md how to run tests and devcards (#110) * docs(contributing): make spacing consistent, fix capitalization The spacing and formatting changes were made by running the file through Prettier (https://prettier.io/). * docs(contributing): document how to get tests and devcards running And improve wording in other parts of the document and in test scripts. * docs: Don't mention `lein devcards` To avoid confusion and having other ports than documented Co-authored-by: Jeroen van Dijk <jeroentjevandijk@gmail.com>

view details

Jeroen van Dijk

commit sha c3a2d7ae61e6a709bc9c9bd29a083707c4e2a361

Merge branch 'master' into chore/with-attributes

view details

push time in a month

push eventjeroenvandijk/athens

Jeroen van Dijk

commit sha 7aaf79970caf022b6a8228d4986529229749520f

Fix clj-kondo warnings

view details

push time in a month

push eventjeroenvandijk/athens

Jeroen van Dijk

commit sha cb7d8c4ec40222f1c2ec14034484830d6ccb20a6

No js/ vars in cljc namespaces

view details

push time in a month

PR opened athensresearch/athens

Add with-attributes to clean up attributes

@tangjeff0 What do you think about this? It should make combining styles, classes and later other things like event listeners much cleaner (see #111)

I'm thinking about adding specialized key listeners in the same like :on-keypress {:ESC (fn [event] )} later. This will help implement #64

+143 -34

0 comment

3 changed files

pr created time in a month

create barnchjeroenvandijk/athens

branch : chore/with-attributes

created branch time in a month

push eventathensresearch/athens

Rory O’Kane

commit sha c50fb6178fe3b6809bc5ca27f503709babcad6e5

Document in CONTRIBUTING.md how to run tests and devcards (#110) * docs(contributing): make spacing consistent, fix capitalization The spacing and formatting changes were made by running the file through Prettier (https://prettier.io/). * docs(contributing): document how to get tests and devcards running And improve wording in other parts of the document and in test scripts. * docs: Don't mention `lein devcards` To avoid confusion and having other ports than documented Co-authored-by: Jeroen van Dijk <jeroentjevandijk@gmail.com>

view details

push time in a month

PR merged athensresearch/athens

Reviewers
Document in CONTRIBUTING.md how to run tests and devcards

Devcards instructions were based on https://github.com/athensresearch/athens/pull/109#issuecomment-636395081

+89 -18

1 comment

3 changed files

roryokane

pr closed time in a month

push eventroryokane/athens

Jeroen van Dijk

commit sha 56827f411c9c89814714b0ed7650c62987d2527f

docs: Don't mention `lein devcards` To avoid confusion and having other ports than documented

view details

push time in a month

Pull request review commentathensresearch/athens

Document in CONTRIBUTING.md how to run tests and devcards

 Not convinced you want to learn Clojure? Read this developer's [first month expe  No Clojure or programming experience? No worries. Read this [guide](https://www.notion.so/athensresearch/Onboarding-for-New-Clojurians-b34b38f30902448cae68afffa02425c1), join our Discord, and we'll find you a Clojure learning partner. -Issues tagged "[good first issue](https://github.com/athensresearch/athens/issues?q=is%3Aopen+is%3Aissue+label%3A%22good+first+issue%22)" are... good first issues.+Issues tagged "[good first issue](https://github.com/athensresearch/athens/issues?q=is%3Aopen+is%3Aissue+label%3A%22good+first+issue%22)" are… good first issues. (But we haven’t catalogued any yet. Sorry!)  # Development Environment -These dependencies are needed to get Athens up and running. Follow the instructions in the links.+## Getting Athens to run locally -1. [java 11 and lein](https://purelyfunctional.tv/guide/how-to-install-clojure/) (lein installs Clojure)-1. [node 12](https://nodejs.org/en/download/) and [yarn](https://classic.yarnpkg.com/en/docs/install/#mac-stable)+These dependencies are needed to get Athens up and running. To install them, follow the instructions in the links.++1. [Java 11 and Leiningen](https://purelyfunctional.tv/guide/how-to-install-clojure/) (Leiningen installs Clojure)+1. [Node 12](https://nodejs.org/en/download/) and [Yarn](https://classic.yarnpkg.com/en/docs/install/#mac-stable)++After you've got these dependencies, clone the Git repository to your hard drive: -After you've got these dependencies, clone the git repository to your harddrive: ``` git clone https://github.com/athensresearch/athens.git ```+ Then `cd athens/` and run the following commands. -Pull javascript dependencies:+Pull JavaScript dependencies:+ ``` yarn ``` -Pull java dependencies and build with:+Pull Java dependencies and build, then start a local HTTP server for Athens:+ ``` lein dev ``` -When these scripts are done, your terminal will read `build complete`. Athens can be accessed by pointing a browser to `localhost:3000` on UNIX or `127.0.0.1:3000` on Windows.+When these scripts are done, your terminal will read `build complete`. Athens can then be accessed by pointing a browser to http://localhost:3000/ on UNIX or http://127.0.0.1:3000/ on Windows.++## Viewing devcards++[Devcards](https://github.com/bhauman/devcards) are pages that show just one component of the web app, for the purpose of demonstrating or testing how that component looks when rendered with certain data.++To open this project’s devcards:++1.  Instead of `lein dev`, start a local server like this:++    ```+    lein devcards+    ```++2.  Open http://localhost:3000/cards.html. -# Clojure Style Guide+3.  (optional) Using your fork, run `lein gh-pages` to see your own branch, e.g.+    https://tangjeff0.github.io/athens/cards.html

@teodurlu From the top of my head, I did it once (for the sci.web), I only had to follow these instructions https://github.com/borkdude/sci.web#release . No need to turn something on

I'm guessing lein gh-pages is executing something like that

roryokane

comment created time in a month

Pull request review commentathensresearch/athens

style: reformat and restructure tests in parser_test.clj

   (deftest block-parser-tests-  (is (= [:block] (parse-to-ast "")))-  (is (= [:block "OK? Yes."] (parse-to-ast "OK? Yes.")))-  (is (= [:block [:page-link "link"]] (parse-to-ast "[[link]]")))-  (is (= [:block "A " [:page-link "link"] "."] (parse-to-ast "A [[link]].")))-  (is (= [:block "[[text"] (parse-to-ast "[[text")))-  (is (= [:block [:url-link {:url "https://example.com/"} "an example"]] (parse-to-ast "[an example](https://example.com/)")))-  ;; Not including tests for every type of syntax because I expect the trees they are parsed to to change soon.-  ;; For now, additional tests would probably be more annoying than useful.-  )+  (are [x y] (= x (parse-to-ast y))+    [:block]+    , ""+    [:block "OK? Yes."]+    , "OK? Yes."+    [:block [:page-link "link"]]+    , "[[link]]"+    [:block "A " [:page-link "link"] "."]+    , "A [[link]]."+    [:block "[[text"]+    , "[[text"+    [:block [:url-link {:url "https://example.com/"} "an example"]]+    , "[an example](https://example.com/)"))

@roryokane Thanks for putting so much time into explaining it!

Maybe we can tweak cljstyle where it is biting us (maybe a specific config for are. I haven't tried this yet).

For me, the comma's are not helpful for understanding the code. It mostly noise for me, just like how the clojure reader treats it. At the same time though accepting this style forces me to think about putting the comma's in the right spot and this puts me back into the json world. So I strongly prefer the blank lines to distinguish examples (or categories).

I just looked up what clojure.core does. They do something similar in their tests

roryokane

comment created time in a month

issue commentathensresearch/athens

Plugin architecture

TODO

  • [ ] Collect keycodes
  • [ ] Demonstrate activation of keycodes with devcards (write on-keypress event listeners)
  • [ ] Use event listeners in components
tangjeff0

comment created time in a month

Pull request review commentathensresearch/athens

style: reformat and restructure tests in parser_test.clj

   (deftest block-parser-tests-  (is (= [:block] (parse-to-ast "")))-  (is (= [:block "OK? Yes."] (parse-to-ast "OK? Yes.")))-  (is (= [:block [:page-link "link"]] (parse-to-ast "[[link]]")))-  (is (= [:block "A " [:page-link "link"] "."] (parse-to-ast "A [[link]].")))-  (is (= [:block "[[text"] (parse-to-ast "[[text")))-  (is (= [:block [:url-link {:url "https://example.com/"} "an example"]] (parse-to-ast "[an example](https://example.com/)")))-  ;; Not including tests for every type of syntax because I expect the trees they are parsed to to change soon.-  ;; For now, additional tests would probably be more annoying than useful.-  )+  (are [x y] (= x (parse-to-ast y))+    [:block]+    , ""+    [:block "OK? Yes."]+    , "OK? Yes."+    [:block [:page-link "link"]]+    , "[[link]]"+    [:block "A " [:page-link "link"] "."]+    , "A [[link]]."+    [:block "[[text"]+    , "[[text"+    [:block [:url-link {:url "https://example.com/"} "an example"]]+    , "[an example](https://example.com/)"))

I actually hate the comma's. That's personal, so feel free to disagree :) If you want to make it more readable for me I think putting it on the same line, or when that doesn't fit using newlines between statements, is better

roryokane

comment created time in a month

Pull request review commentathensresearch/athens

style: reformat and restructure tests in parser_test.clj

   (deftest block-parser-tests-  (is (= [:block] (parse-to-ast "")))-  (is (= [:block "OK? Yes."] (parse-to-ast "OK? Yes.")))-  (is (= [:block [:page-link "link"]] (parse-to-ast "[[link]]")))-  (is (= [:block "A " [:page-link "link"] "."] (parse-to-ast "A [[link]].")))-  (is (= [:block "[[text"] (parse-to-ast "[[text")))-  (is (= [:block [:url-link {:url "https://example.com/"} "an example"]] (parse-to-ast "[an example](https://example.com/)")))-  ;; Not including tests for every type of syntax because I expect the trees they are parsed to to change soon.-  ;; For now, additional tests would probably be more annoying than useful.-  )+  (are [x y] (= x (parse-to-ast y))

I think this is an improvement

roryokane

comment created time in a month

Pull request review commentathensresearch/athens

Document in CONTRIBUTING.md how to run tests and devcards

 Not convinced you want to learn Clojure? Read this developer's [first month expe  No Clojure or programming experience? No worries. Read this [guide](https://www.notion.so/athensresearch/Onboarding-for-New-Clojurians-b34b38f30902448cae68afffa02425c1), join our Discord, and we'll find you a Clojure learning partner. -Issues tagged "[good first issue](https://github.com/athensresearch/athens/issues?q=is%3Aopen+is%3Aissue+label%3A%22good+first+issue%22)" are... good first issues.+Issues tagged "[good first issue](https://github.com/athensresearch/athens/issues?q=is%3Aopen+is%3Aissue+label%3A%22good+first+issue%22)" are… good first issues. (But we haven’t catalogued any yet. Sorry!)  # Development Environment -These dependencies are needed to get Athens up and running. Follow the instructions in the links.+## Getting Athens to run locally -1. [java 11 and lein](https://purelyfunctional.tv/guide/how-to-install-clojure/) (lein installs Clojure)-1. [node 12](https://nodejs.org/en/download/) and [yarn](https://classic.yarnpkg.com/en/docs/install/#mac-stable)+These dependencies are needed to get Athens up and running. To install them, follow the instructions in the links.++1. [Java 11 and Leiningen](https://purelyfunctional.tv/guide/how-to-install-clojure/) (Leiningen installs Clojure)+1. [Node 12](https://nodejs.org/en/download/) and [Yarn](https://classic.yarnpkg.com/en/docs/install/#mac-stable)++After you've got these dependencies, clone the Git repository to your hard drive: -After you've got these dependencies, clone the git repository to your harddrive: ``` git clone https://github.com/athensresearch/athens.git ```+ Then `cd athens/` and run the following commands. -Pull javascript dependencies:+Pull JavaScript dependencies:+ ``` yarn ``` -Pull java dependencies and build with:+Pull Java dependencies and build, then start a local HTTP server for Athens:+ ``` lein dev ``` -When these scripts are done, your terminal will read `build complete`. Athens can be accessed by pointing a browser to `localhost:3000` on UNIX or `127.0.0.1:3000` on Windows.+When these scripts are done, your terminal will read `build complete`. Athens can then be accessed by pointing a browser to http://localhost:3000/ on UNIX or http://127.0.0.1:3000/ on Windows.++## Viewing devcards++[Devcards](https://github.com/bhauman/devcards) are pages that show just one component of the web app, for the purpose of demonstrating or testing how that component looks when rendered with certain data.++To open this project’s devcards:++1.  Instead of `lein dev`, start a local server like this:++    ```+    lein devcards+    ```

You can also view devcards when you run lein dev. I realized this later after Jeff said that. The url below is correct. When you run lein dev and lein devcards at the same time, the url will actually be different, e.g. 3001. So maybe best to not mention lein devcards for newbees

roryokane

comment created time in a month

CommitCommentEvent
CommitCommentEvent

push eventathensresearch/athens

Rory O’Kane

commit sha abe0c0dc52df22243de3fe6b384dca6a60cb712d

feat(parsing): basic support for URL links (#105) I say this is “basic” support because it uses the `any-chars` rule, which is too eager. Eventually we will recursively parse the link text instead of capturing it all with a regex. I call them URL links instead of external links because theoretically, users might write URLs to internal pages such as http://localhost:3000/#/page/OaSVyM_nr.

view details

push time in a month

PR merged athensresearch/athens

feat(parsing): basic support for URL links

This PR is a draft because it’s built on top of the commits in PR #102. That PR must be reviewed and merged first. Only the commit “feat(parsing): basic support for URL links” is new to this PR.

Before

Athens before support for parsing URL links

After

Athens after support for parsing URL links

+38 -26

2 comments

3 changed files

roryokane

pr closed time in a month

pull request commentathensresearch/athens

feat(parsing): basic support for URL links

@roryokane Thanks for thinking about explaining the diff. I wouldn't have been confident merging it otherwise.

roryokane

comment created time in a month

Pull request review commentathensresearch/athens

feat(parsing): basic support for URL links

   "Transforms Instaparse output to Hiccup."   [tree]   (insta/transform-    {:block      (fn [& contents]-                   (concat [:span {:class "block"}] contents))-     :block-link (fn [title]-                   (let [id (subscribe [:block/uid [:node/title title]])]-                     [:span {:class "block-link"}-                      [:span {:style {:color "gray"}} "[["]-                      [:a {:href  (rfee/href :page {:id (:block/uid @id)})-                           :style {:text-decoration "none" :color "dodgerblue"}} title]-                      [:span {:style {:color "gray"}} "]]"]]))-     :block-ref  (fn [id]-                   (let [string (subscribe [:block/string [:block/uid id]])]-                     [:span {:class "block-ref"-                             :style {:font-size "0.9em" :border-bottom "1px solid gray"}}-                      [:a {:href (rfee/href :page {:id id})} (parse-and-render (:block/string @string))]]))-     :hashtag    (fn [tag-name]-                   (let [id (subscribe [:block/uid [:node/title tag-name]])]-                     [:a {:class "hashtag"-                          :style {:color "gray" :text-decoration "none" :font-weight "bold"}-                          :href  (rfee/href :page {:id (:block/uid @id)})}-                      (str "#" tag-name)]))-     :bold       (fn [text]-                   [:strong {:class "bold"} text])}+    {:block     (fn [& contents]+                  (concat [:span {:class "block"}] contents))+     :page-link (fn [title]+                  (let [id (subscribe [:block/uid [:node/title title]])]+                    [:span {:class "page-link"}+                     [:span {:style {:color "gray"}} "[["]+                     [:a {:href  (rfee/href :page {:id (:block/uid @id)})+                          :style {:text-decoration "none" :color "dodgerblue"}} title]+                     [:span {:style {:color "gray"}} "]]"]]))+     :block-ref (fn [id]+                  (let [string (subscribe [:block/string [:block/uid id]])]+                    [:span {:class "block-ref"+                            :style {:font-size "0.9em" :border-bottom "1px solid gray"}}+                     [:a {:href (rfee/href :page {:id id})} (parse-and-render (:block/string @string))]]))+     :hashtag   (fn [tag-name]+                  (let [id (subscribe [:block/uid [:node/title tag-name]])]+                    [:a {:class "hashtag"+                         :style {:color "gray" :text-decoration "none" :font-weight "bold"}+                         :href  (rfee/href :page {:id (:block/uid @id)})}+                     (str "#" tag-name)]))+     :url-link  (fn [{url :url} text]+                  [:a {:class "url-link"+                       :href url}+                   text])+     :bold      (fn [text]+                  [:strong {:class "bold"} text])}

The only thing I can think of to make this more robust against indenting changes, is extracting the different parts to functions (e.g. :page-link page-link)

roryokane

comment created time in a month

PR opened athensresearch/athens

Use IBM Plex Sans font

@tangjeff0 This is one way how you could import the font face

Athens_Cards

+2 -1

0 comment

2 changed files

pr created time in a month

create barnchathensresearch/athens

branch : design-system-font-face

created branch time in a month

fork jeroenvandijk/packages

Javascript libraries packaged up with Google Closure externs

http://cljsjs.github.io

fork in a month

issue commentathensresearch/athens

Daily Notes

TASKS

  • [ ] Core work: scrolling down and opening a new page (add onscroll event listener)
  • [ ] Add warning when title of date page is changed (possibly a regexp check on the page title is enough for this. Maybe no need to check if it is a special page)
  • [ ] Bonus: when you are in the Daily Notes view and times passes into the next day (in your timezone), a new day should be added. Could be done by triggering a re-render in X seconds via (setTimeout ...)
  • [ ] Bonus: to keep the app performant endless scrolling down should also clean up day views on top. With scrollup event these views would have to be added again
tangjeff0

comment created time in a month

push eventathensresearch/athens

Rory O’Kane

commit sha 19f607d85a8116bea02f326e8a07e636b8b1c863

refactor(parsing): extract intermediate transform step, merge parse-transform-helper into parser (#102) * refactor(parsing): extract intermediate transform step transform to AST before transforming to Hiccup * refactor(parsing): merge parse-transform-helper into parser Now that the .cljc parser does transforms itself, rather than the .cljs parse-renderer, I don’t need a separate .cljc file to store the `combine-adjacent-strings` function.

view details

push time in a month

PR merged athensresearch/athens

refactor(parsing): extract intermediate transform step, merge parse-transform-helper into parser

I’ve thought about my “second transform step” idea more and I think it’s worth doing. It makes the tests and the parse-rendering code easier to read and write. Also, CommonMark parses to an AST.

This PR was made to be reviewed one commit at a time.

+56 -48

0 comment

5 changed files

roryokane

pr closed time in a month

more