Filter Cheatsheet
term
Matches a case-sensitive substring.
"two terms"
Allows querying with spaces by using a quoted string.
/directory
Filters items that belong to a specific directory or iteration.
#hashtag
Identifies items that include a specific hashtag.
@mention
Finds items that mention a specific person.
or
Introduces a logical OR operator to stop the previous query and define another one for finding more items.
-token
You can negate any token to exclude it from your results. e.g. Handy to hide closed items.

🔖 closed/do-not-use-hash-to-store-query.md

Do not use hash to store query to leave it for issue bookmarks

The # in the window.location is used for anchors with hrefs that start with #.

Instead use the well known convention of using the q search param.

🔖 open/add_a_negate_operator.md

Add a negate operator

If you would for example exclude all /closed items you could write -/closed

Candidates

- and !

I have implemented the not for negation and decided to instead opt for the -.

Currently this behavior is implemented but not document in the usages.

Tasks

  • [x] Document negation.
  • [ ] Give visual feedback in filter buttons that it is a negated token.
  • [ ] Have the UI report correctly on count matches for negated tokens.
🔖 open/create_a_release_on_tag_creation.md

Create a release on tag creation

It #must create a new release by pushing a new git tag.

It #could also populate the release body with release notes that are generated using some git changelog tool. An option for such a tool could be npm:auto-changelog.

@rage has done this before and shared his previous work and experience.

Requirements

  • The commits since last release do not contain fixup or wip commits messages.
  • Update the changelog with a git log to changelog tool.
  • Creates a github release with the cli build for that specific tag version.

author:@bas080 priority:medium

🔖 open/use_the_ocaml_build_to_generate_pages_html.md

Use the oCaml build to generate pages html

Currently the perl script is used in the .github/workflows/pages.yml workflow. We want to use the new and shiny oCaml implementation in the workflow.

We need a way to download a specific version of the oCaml build and use it to generate the issue html.

author:@bas080

🔖 open/support_key_value_feature.md

Support Key value term in issue markdown

In the issue you can define key value things to later query on them.

We'll use the ? at the start of a key value. This is inspired by url query params.

?author=@bas080

Here we can see that it is allowed to use other special tokens as the value.

The underlying markup created is.

<span class="straw-keyvalue">
  <a ?author=</a><a>@bas080</a>
</span>

The user can either interact with the key value token by clicking the first anchor; or by clicking on the mention token.

Note

  • The anchors are not nested in eachother.
  • The class on the span is how the code interops with browser code.

These changes require both #browser and #cli changes. For the cli changes we could ?assign=@rage.

Older suggestsions

Candidates

  • key:value
  • key=value

examples

  • related=#a11y
  • priority:1

#feature ?assign=@bas080

🔖 open/improve_state_module_performance.md

Improve state module performance

All listeners are called twice for each state push. This is not ideal as multiple pushes can occur on one event. Let's say you have 5 listeners and 2 pushes. The amount of calls end up being:

listeners = [1,2,3,4,5]

calls = [
  firstPushState,
  ...listeners,
  ...listeners,
  secondsPushState,
  ...listeners,
  ...listeners,
]

This double walking over the listeners has to happen because state of one listener can be the dependency of another listener.

A more ideal situation would be to compose all the push call within that tick and then walk the listeners twice.

calls = [
  firstPushState,
  secondsPushState,
  ...listeners,
  ...listeners
]

We can cut down the amount of calls by quite a bit. Especially when the amount of pushes is on the high side.

Conceptually this should be backwards compatible as these amount of passes should allow for the state to stabilize.

#browser #performance

assigned:@bas080

🔖 open/add_link_to_jump_to_file_in_github.md

Add link to jump to file in github

This requires the defining of a source path. The source path in the case of github would be.

https://github.com/bas080/straw/blob/master/straw/

It will then append the path of the issue file to that source path.

When generating the straw html; one has to define the SOURCE_URL environment variable.

Work can be started on the html template. ?assigned=@bas080 to get this going.

An anchor with the word source. <a href="${SOURCE_URL}/${PATH}">source</a>

Regarding the cli html. We want to place that anchor after the bookmark anchor only if the SOURCE_URL env var is defined. See https://github.com/bas080/straw/blob/e441475cbd968d8352d95a703c2e297a0a5a33c0/lib/straw/cli.ml#L79

Outdated

For now just supporting github is fine because we are using github.

Besides, this is configured in the template. The template at some point will be configurable by the user.

?suggested-by=@rage #feature #github #cli #browser

🔖 open/support_passing_a--templatetoissue_html_.md

Support passing a --template to issue html

issue html --template=./issue/template.html

In this example we stored a template in the issue directory to be used to generate a richer and interactive issues webpage.

The template contains a comment <!--issues--> that is replaced with the output of issue html.

🔖 open/make_it_easy_to_link_issues_to_one_and_other.md

Make it easy to link issues to one and other

With github issue tracker you can use the # to reference other issues.

The hashtag is used for labels. Either rethink this or use something else to reference issues.

Both @rage and @bas080 agree that ! is a good candidate.

For this to work we also need a way to assign the id to an issue file. Possible implementations:

  • Edit the file meta data to include an id. This requires the use of the cli and is less transparent. Suggested by @rage.
  • Have it be part of the filename. This requires a convention to be followed.
  • Have each issue be placed in a directory that has an issue id. /open/abc12/my-issue.md. This also allows bundling possible dependencies like images within the issue.

priority:high

🔖 open/add_a_cli_tool_for_combining_issue_cli_with_git.md

Add a cli tool for combining issue cli with git

A single command for working with issues to create branches and commits based on issues.

Use cases

Create a new branch and an empty commit with the issue as the commit message.

Examples

git issue ./issue/open/some-issue.md

# git checkout "issue/some-issue"
# git commit --template <(uses a commit message friendly version of the issue)

@bas080 is trying a quick and dirty bash version on his local machine.

author:@bas080 priority:low

🔖 open/do_not_match_on_content_when_searching_with_slash.md

Do not match on content when searching with slash

When searching for /open it should not match on arbitrary /open strings. It should only match on the file path.

Other search operations might also need reconsideration but this issue is only concerned about the path search.