MCPcopy Index your code
hub / github.com/tantaman/strut

github.com/tantaman/strut @v0.6.3

repository ↗ · DeepWiki ↗ · release v0.6.3 ↗ · + Follow
1,409 symbols 3,573 edges 257 files 278 documented · 20% updated today★ 1,8873 open issues
README

Strut

Facelift

A GUI / Authoring Tool for ImpressJS and Bespoke.js

This project intends to create an extensible, maintainable, and clean editor for authoring ImpressJS presentations.

Don't know what ImpressJS is? Check out the ImpressJS demo presentation: http://bartaz.github.com/impress.js/#/bored

Learn a bit about Strut - http://www.youtube.com/watch?v=TTpiDXEIulg

(previous video: http://www.youtube.com/watch?v=zA5s8wwme44)

Start using Strut! http://strut.io/dist/index.html

(Firefox, Chrome and Safari only)

Twitter: @StrutPresents

News

Mailing List

strut-presentation-editor@googlegroups.com

Pre-Built versions of Strut

You can get pre-built versions of strut here: http://code.google.com/p/strut/downloads/list

Running

The pre-built versions of Strut can be run entirely from your local filesystem.
Just point your browser to file:///path/to/Strut/dist/index.html to view Strut.

Development/Building

To build your own version of Strut you'll need Grunt v0.4.0 or later.

  1. Install the latest Grunt: npm install -g grunt-cli
  2. Clone Strut: git clone git://github.com/tantaman/Strut.git
  3. cd Strut
  4. Install Strut's development dependencies: npm install
  5. Run Strut: grunt server (the server runs at localhost:9000)

To make a production build of Strut run grunt build. The resulting build will be location in Strut/dist.

RELEASE NOTES

v0.5.3 - Positioning and transformations of components in edit mode now exactly match the positioning and transformations of components in the final presentation.

v0.5.2 - Fixed a bug in 0.5.1 where presentation generation did not work

v0.5.1 - Fixed slide sorting problems

v0.5.0 - New UI and service oriented back-end

Contributing

Strut is composed of several bundles which provide distinct features to Strut. The set of bundles that compose Strut are defined in https://github.com/tantaman/Strut/blob/master/app/scripts/features.js

This design allows features to be added and removed from Strut just by adding or removing bundles from the list in features.js. E.g., if you wanted a build of Strut without RemoteStorage you can just remove the RemoteStorage bundle from features.js. If you didn't want any slide components for some reason then you can remove strut/slide_components/main from features.js.

Bundles contribute functionality to Strut by registering that functionality with the ServiceRegistry. You can take a look at the RemoteStorage bundle for an example: https://github.com/tantaman/Strut/blob/master/app/bundles/common/tantaman.web.remote_storage/main.js

If a service is missing Strut continues to run without the functionality provided by that service.

New development that isn't essential to the core of Strut should follow this pattern in order to keep the code modular and allow the removal of features that don't pan out or can only exist in specific environments. For example, RemoteStorage can't be loaded if Strut is being served from a file:// url.

The ServiceRegistry also allows for runtime modularity. I.e., services can be added and removed at runtime and Strut will update to reflect the current set of features & services that are isntalled. Try to keep in mind the fact that services won't necessarily be present or if they are present they might go away. This approach allows the user to add and remove plugins from 3rd parties at runtime.

Acknowledgements

  • ImpressJS https://github.com/bartaz/impress.js/
  • Bespoke.js https://github.com/markdalgleish/bespoke.js
  • BackboneJS http://documentcloud.github.com/backbone/
  • Spectrum https://github.com/bgrins/spectrum
  • Etch http://etchjs.com/
  • Bootstrap http://twitter.github.io/bootstrap/
  • lodash http://lodash.com/
  • mousetrap http://craig.is/killing/mice
  • RequireJS http://requirejs.org/
  • JQuery http://jquery.com/
  • HandlebarsJS http://handlebarsjs.com/
  • Grunt http://gruntjs.com/

Core symbols most depended-on inside this repo

$
called by 386
app/preview_export/scripts/impress.js
require
called by 86
test/lib/mocha/mocha.js
Pos
called by 56
app/components/codemirror/codemirror.js
elt
called by 56
app/components/codemirror/codemirror.js
i
called by 55
test/lib/expect.js
getLine
called by 53
app/components/codemirror/codemirror.js
require
called by 50
test/lib/chai.js
jQuery
called by 47
app/scripts/libs/jQuery.js

Shape

Function 1,409

Languages

TypeScript100%

Modules by API surface

app/components/codemirror/codemirror.js276 symbols
app/preview_export/reveal/js/reveal.js87 symbols
app/scripts/libs/lodash.js81 symbols
app/scripts/libs/jQuery.js77 symbols
app/preview_export/reveal/js/reveal.min.js69 symbols
test/lib/mocha/mocha.js63 symbols
app/components/spectrum/spectrum.js60 symbols
app/scripts/libs/jszip-deflate.js43 symbols
app/bundles/common/tantaman.web.remote_storage/impl/lib/sync.js42 symbols
test/lib/chai.js39 symbols
app/bundles/common/tantaman.web.remote_storage/impl/lib/store.js34 symbols
app/scripts/libs/require.js33 symbols

Dependencies from manifests, versioned

grunt0.4.1 · 1×
grunt-bower-hooks0.2.0 · 1×
grunt-contrib-clean0.4.1 · 1×
grunt-contrib-concat0.3.0 · 1×
grunt-contrib-connect0.3.0 · 1×
grunt-contrib-copy0.4.0 · 1×
grunt-contrib-cssmin0.6.0 · 1×
grunt-contrib-handlebars0.5.10 · 1×
grunt-contrib-htmlmin0.1.3 · 1×
grunt-contrib-imagemin0.1.4 · 1×
grunt-contrib-jshint0.6.0 · 1×
grunt-contrib-livereload0.1.1 · 1×

For agents

$ claude mcp add strut \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact