Skip to content

Latest commit

 

History

History
69 lines (52 loc) · 9.11 KB

File metadata and controls

69 lines (52 loc) · 9.11 KB
cssclass
customiseTitle

Roadmap: The horizon of SC 1.0

This page sums up some far-future goals of the Shell commands project. There are some fundamental features on my radar that I want to address here, because even though they are important, implementing them needs a lot of time, and often the presence of other planned features (= prerequisites). Some of the features are originating from other people's ideas, and I want to be more open about how I'm going to place them on the path of the future of this plugin.

The list of features is not explicit: new ideas may be born along the way, and current ones may be refined.

[!Info] Other places to look for incoming features

  • There is an older roadmap in GitHub, but I haven't really utilized it to its full potential, and it's also not quite the thing I'm looking for: I want a roadmap that shows a one glance overview of far-ahead cornerstone features without the noise of near-future small features. I'm currently considering to retire the roadmap in GitHub.
  • For a complete list of all ideas/plans for features including both big and small, please see this Ideas discussion section in GitHub. In case you happen to have an idea, you can suggest it there 😉. Once ideas are implemented and released, they are moved to Ideas - done & released.

Cornerstone features of SC 1.0

These are not in any particular order, but some features are needed to be done before some other features can be done.

  • A robust way is needed to upgrade old settings files to formats specified by newer versions of the Shell commands plugin. Version upgrades tend to bring changes to the format of the settings file constantly, there will never be a "final state".
  • A crucial prerequisite for importing/exporting shell commands, because the exporting format will be heavily based on the settings format.
  • Allows users to share their shell commands with others easily by exporting them to a textual format that includes all settings related to the particular shell command.
  • One user can share shell commands between their different vaults, or to different users.
  • There will be a GitHub repository designated for sharing shell commands publicly with others, but shell commands could also be easily shared in Discord, forums or by other public or private means.
  • The most basic level: support treating shell command output as JavaScript code that could be evaluated. Need to provide some basic public API, at least access to Obsidian's app (or maybe there's no need, as it seems to be global nowadays).
  • Later: Define a public API that allows calling some of the Shell commands plugin's methods from user code (= either JavaScript that is received as output from shell commands, or JavaScript written in other community plugins).
  • Allow executing Templater scripts after a shell command is executed.
  • Currently, [[PowerShell]] only works well when used with text that has only English characters - even if Unicode is used. Combine that to the fact that [[Escaping special characters in variable values#Escaping depends on the shell|there is not variable value escaping for CMD]], Windows as a platform is not currently as well-supported by the Shell commands plugin, comparing to Linux and macOS.
  • A prerequisite for #105.
  • I could add more variables that present listed content, but currently [[{{tags}}#Special characters in separator are escaped|there's no solid way to define item separators when joining list items together]]. [[{{tags}}]] is currently the only variable that provides a list of values, and I don't want to create more like it before I develop a proper way to define separators.

Already implemented features

SC version Feature Discussion Completed
0.19.0 Support custom shells #108 completely
0.18.0 Pass variables to stdin #89 completely
0.17.0 Realtime output handling #64 completely
0.13.0 Execute shell commands via Obsidian URI #195 completely
0.12.0 A modal for asking values from user (Prompt) #17 partially
0.12.0 Preactions #183 partially
0.12.0 Custom variables #146 partially
0.10.0 Events: Execute shell commands automatically when something happens #60 partially
0.7.0 Escaping variable values #11 completely
0.5.0 Output channels #16 partially

History

[!page-edit-history]- Page edit history: 2022-07-21 ➔ 2023-05-28

  • 2023-05-28: Roadmap: Custom shells are now implemented.
  • 2023-01-06: Roadmap.md: stdin support is now implemented.
  • 2022-11-26: Roadmap: Mark that realtime output handling is implemented.
  • 2022-11-26: Roadmap: Mention stdin support.
  • 2022-07-21: First version of Roadmap.

See this list of commits on GitHub. ^page-edit-history