Warning: Cannot modify header information - headers already sent by (output started at /var/www/jonas-eriksen.dk/pic/private/index.php:1) in /var/www/jonas-eriksen.dk/pic/private/index.php on line 215
var/www/jonas-eriksen.dk/wiki/lib/plugins/prosemirror/README.md000064400000012201152336215350020362 0ustar00# prosemirror Plugin for DokuWiki [![Scrutinizer Code Quality](https://scrutinizer-ci.com/g/cosmocode/dokuwiki-plugin-prosemirror/badges/quality-score.png?b=master)](https://scrutinizer-ci.com/g/cosmocode/dokuwiki-plugin-prosemirror/?branch=master) A WYSIWYG editor for DokuWiki All documentation for this plugin can be found at https://www.dokuwiki.org/plugin:prosemirror If you install this plugin manually, make sure it is installed in ``lib/plugins/prosemirror/`` - if the folder is called different it will not work! Please refer to http://www.dokuwiki.org/plugins for additional info on how to install plugins in DokuWiki. ## Development Setup Use yarn to install the dependecies yarn Create a develoment bundle: yarn dev Automatically recreate the bundle during development: yarn watch Build a release yarn build We really recommend yarn, but npm should work, too. ## Architecture ### Dataflow #### Begin Edit-Session: DokuWiki -> Prosemirror - `action/editor.php`: `HTML_EDITFORM_OUTPUT` get Instructions and render them to json - see `renderer.php` - `renderer.php` uses the classes `NodeStack` `Node` and `Mark` in `schema` to do its job - this should possibly renamed - to keep information about a Node in as few places as possible, some rendering instructions have been moved to the respective `parser/` classes - Prosemirror parses that json in `script/main.js` according to the schema defined in `script/schema.js` and creates its `doc`-Node from it. #### Rendering: Prosemirror -> DokuWiki -> Prosemirror - Some Nodes (e.g. images, links) need to be resolved by DokuWiki in order to be rendered properly. - So ProseMirror makes ajax requests - triggered by `LinkForm.resolveSubmittedLinkData` in `script/LinkForm.js` - the request is handled by `action/ajax.php` which resolves the link/images and returns the resolved html to be rendered into Prosemirror #### Saving/Preview: Prosemirror -> DokuWiki - Prosemirror synchronizes all changes with the underlying json in the `` field - When the Editform is submitted that data has to be parsed by DokuWiki into DokuWiki-Syntax. - This starts in `action/parser.php` during the event `ACTION_ACT_PREPROCESS` - The main challenge is that Prosemirror operates on a flat array, whereas DokuWiki-Syntax is usually a tree - This means that the Syntax `**bold __underlined and bold__**` is represented in Prosemirror's data as `[{text: "bold ", marks: [bold]}, {text: "underlined and bold", marks: [bold, underlined]}]` - The creation of that syntax tree is started in `parser/SyntaxTreeBuilder.php` - Handling marks is complex and subtle: - To know in which order we have to open/close marks we need to know which start earlier or end later - for this purpose, `InlineNodeInterface::getStartingNodeMarkScore($markType)` and `Mark::tailLength` play together - for `getStartingNodeMarkScore()` to work, it needs the inline nodes inside a block node to be chained together, so we can ask the previous node whether it has a given node or not - If the marks on a node have the same start/end than they need a stable order in which they appear. That is defined in `Mark::markOrder` ### Our Prosemirror JS setup Currently all our prosemirror scripts are in `script/`. This definietly needs some better organisation. I can see the following possible groups: - NodeViews and Forms - if a Node cannot be simply rendered and edited by ProseMirror, it needs a NodeView - Examples are links, images, footnotes(NodeView not yet implemented) - possibly also `` and ``? - Menu-Related classes and menu items - keyboard commands - possibly `commands` in general wich then can be used by menu-items and keyboard-events? - the schema These files are compiled with webpack and transpiled with Babel into `lib/bundle.js`, which is the file actually included by DokuWiki. ## Testing The central test-data is the collection of DokuWiki-Syntax and corresponding Prosemirror JSON in `_test/json/`. This data is used for three sets of tests: 1. Testing the rendering of DokuWiki-Syntax to Prosemirror JSON in `_test/renderer.test.php` 1. Testing the parsing of Prosemirror JSON back to the original DokuWiki-Syntax in `_test/jsonParser.test.php` 1. Testing the validity of the Prosemirror JSON against the schema (`script/schema.js`) in `_jstest/test.js` The rendering and parsing tests are run as usual DokuWiki tests. The javascript tests are run with `yarn test` The scripts in `script/` are also checked when building with eslint. Eslint can also be run on its own with `yarn eslint`. ## Copyright Copyright (C) CosmoCode GmbH Andreas Gohr Michael Grosse Anna Dabrowska This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; version 2 of the License This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. See the COPYING file in your DokuWiki folder for details var/www/jonas-eriksen.dk/jresolutions.dk/test/README.md000064400000010547152336306170016735 0ustar00

Build Status Total Downloads Latest Stable Version License

## About Laravel Laravel is a web application framework with expressive, elegant syntax. We believe development must be an enjoyable and creative experience to be truly fulfilling. Laravel takes the pain out of development by easing common tasks used in many web projects, such as: - [Simple, fast routing engine](https://laravel.com/docs/routing). - [Powerful dependency injection container](https://laravel.com/docs/container). - Multiple back-ends for [session](https://laravel.com/docs/session) and [cache](https://laravel.com/docs/cache) storage. - Expressive, intuitive [database ORM](https://laravel.com/docs/eloquent). - Database agnostic [schema migrations](https://laravel.com/docs/migrations). - [Robust background job processing](https://laravel.com/docs/queues). - [Real-time event broadcasting](https://laravel.com/docs/broadcasting). Laravel is accessible, powerful, and provides tools required for large, robust applications. ## Learning Laravel Laravel has the most extensive and thorough [documentation](https://laravel.com/docs) and video tutorial library of all modern web application frameworks, making it a breeze to get started with the framework. If you don't feel like reading, [Laracasts](https://laracasts.com) can help. Laracasts contains over 1500 video tutorials on a range of topics including Laravel, modern PHP, unit testing, and JavaScript. Boost your skills by digging into our comprehensive video library. ## Laravel Sponsors We would like to extend our thanks to the following sponsors for funding Laravel development. If you are interested in becoming a sponsor, please visit the Laravel [Patreon page](https://patreon.com/taylorotwell). - **[Vehikl](https://vehikl.com/)** - **[Tighten Co.](https://tighten.co)** - **[Kirschbaum Development Group](https://kirschbaumdevelopment.com)** - **[64 Robots](https://64robots.com)** - **[Cubet Techno Labs](https://cubettech.com)** - **[Cyber-Duck](https://cyber-duck.co.uk)** - **[British Software Development](https://www.britishsoftware.co)** - **[Webdock, Fast VPS Hosting](https://www.webdock.io/en)** - **[DevSquad](https://devsquad.com)** - [UserInsights](https://userinsights.com) - [Fragrantica](https://www.fragrantica.com) - [SOFTonSOFA](https://softonsofa.com/) - [User10](https://user10.com) - [Soumettre.fr](https://soumettre.fr/) - [CodeBrisk](https://codebrisk.com) - [1Forge](https://1forge.com) - [TECPRESSO](https://tecpresso.co.jp/) - [Runtime Converter](http://runtimeconverter.com/) - [WebL'Agence](https://weblagence.com/) - [Invoice Ninja](https://www.invoiceninja.com) - [iMi digital](https://www.imi-digital.de/) - [Earthlink](https://www.earthlink.ro/) - [Steadfast Collective](https://steadfastcollective.com/) - [We Are The Robots Inc.](https://watr.mx/) - [Understand.io](https://www.understand.io/) - [Abdel Elrafa](https://abdelelrafa.com) - [Hyper Host](https://hyper.host) - [Appoly](https://www.appoly.co.uk) - [OP.GG](https://op.gg) ## Contributing Thank you for considering contributing to the Laravel framework! The contribution guide can be found in the [Laravel documentation](https://laravel.com/docs/contributions). ## Code of Conduct In order to ensure that the Laravel community is welcoming to all, please review and abide by the [Code of Conduct](https://laravel.com/docs/contributions#code-of-conduct). ## Security Vulnerabilities If you discover a security vulnerability within Laravel, please send an e-mail to Taylor Otwell via [taylor@laravel.com](mailto:taylor@laravel.com). All security vulnerabilities will be promptly addressed. ## License The Laravel framework is open-sourced software licensed under the [MIT license](https://opensource.org/licenses/MIT).