Skip to content

Commit

Permalink
MNT Add composer.json file
Browse files Browse the repository at this point in the history
  • Loading branch information
GuySartorelli committed Mar 11, 2025
1 parent 8acb17c commit 191068a
Show file tree
Hide file tree
Showing 386 changed files with 55,302 additions and 0 deletions.
1 change: 1 addition & 0 deletions .doclintrc
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
docs/en/
31 changes: 31 additions & 0 deletions .editorconfig
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
# For more information about the properties used in
# this file, please see the EditorConfig documentation:
# http://editorconfig.org/

[*]
charset = utf-8
end_of_line = lf
indent_size = 4
indent_style = space
insert_final_newline = true
trim_trailing_whitespace = true

[*.md]
trim_trailing_whitespace = false

[*.{yml,js,json,css,scss,eslintrc,feature}]
indent_size = 2
indent_style = space

# Don't perform any clean-up on thirdparty files

[client/tinymce_lang/**]
trim_trailing_whitespace = false
insert_final_newline = false

[client/src/tinymce/**]
trim_trailing_whitespace = false
insert_final_newline = false

[composer.json]
indent_size = 4
9 changes: 9 additions & 0 deletions .eslintignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
# Ignore dist files
client/dist/

# Ignore vendor
node_modules/

# Ignore language files (auto-generated)
client/lang/
client/tinymce_lang/
1 change: 1 addition & 0 deletions .eslintrc.js
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
module.exports = require('@silverstripe/eslint-config/.eslintrc');
10 changes: 10 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
name: CI

on:
push:
pull_request:
workflow_dispatch:

jobs:
ci:
uses: silverstripe/gha-ci/.github/workflows/ci.yml@v1
7 changes: 7 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
.sass-cache
/vendor/
/node_modules/
/**/*.js.map
/**/*.css.map
yarn-error.log
composer.lock
1 change: 1 addition & 0 deletions .nvmrc
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
18
1 change: 1 addition & 0 deletions .stylelintignore
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
client/src/tinymce/*
1 change: 1 addition & 0 deletions .stylelintrc.js
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
module.exports = require('@silverstripe/eslint-config/.stylelintrc');
64 changes: 64 additions & 0 deletions _config.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
<?php

use SilverStripe\Core\Manifest\ModuleLoader;
use SilverStripe\Forms\HTMLEditor\HTMLEditorConfig;
use SilverStripe\TinyMCE\TinyMCEConfig;

// Avoid creating global variables
call_user_func(function () {
$editorConfig = HTMLEditorConfig::get('cms');

if (!$editorConfig instanceof TinyMCEConfig) {
return;
}

$editorConfig->setOptions([
'friendly_name' => 'Default CMS',
'priority' => '50',
'skin' => 'silverstripe',
'contextmenu' => "searchreplace | sslink anchor ssmedia ssembed inserttable | cell row column deletetable",
'use_native_selects' => false,
]);
$editorConfig->insertButtonsAfter('table', 'anchor');

// Prepare list of plugins to enable
$moduleManifest = ModuleLoader::inst()->getManifest();
$module = $moduleManifest->getModule('silverstripe/htmleditor-tinymce');
$plugins = [];

// Add link plugins if silverstripe/admin is installed.
// The JS in these relies on some of the admin code e.g. modals.
if ($moduleManifest->moduleExists('silverstripe/admin')) {
$plugins += [
'sslink' => $module->getResource('client/dist/js/TinyMCE_sslink.js'),
'sslinkexternal' => $module->getResource('client/dist/js/TinyMCE_sslink-external.js'),
'sslinkemail' => $module->getResource('client/dist/js/TinyMCE_sslink-email.js'),
];
// Move anchor button to be after the link button
$editorConfig->removeButtons('anchor');
$editorConfig->insertButtonsAfter('sslink', 'anchor');
}

// Add plugins for managing assets if silverstripe/asset-admin is installed
if ($moduleManifest->moduleExists('silverstripe/asset-admin')) {
$plugins += [
'ssmedia' => $module->getResource('client/dist/js/TinyMCE_ssmedia.js'),
'ssembed' => $module->getResource('client/dist/js/TinyMCE_ssembed.js'),
'sslinkfile' => $module->getResource('client/dist/js/TinyMCE_sslink-file.js'),
];
$editorConfig->insertButtonsAfter('table', 'ssmedia');
$editorConfig->insertButtonsAfter('ssmedia', 'ssembed');
}

// Add internal link plugins if silverstripe/cms is installed
if ($moduleManifest->moduleExists('silverstripe/cms')) {
$plugins += [
'sslinkinternal' => $module->getResource('client/dist/js/TinyMCE_sslink-internal.js'),
'sslinkanchor' => $module->getResource('client/dist/js/TinyMCE_sslink-anchor.js'),
];
}

if (!empty($plugins)) {
$editorConfig->enablePlugins($plugins);
}
});
11 changes: 11 additions & 0 deletions _config/config.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
---
Name: tinymce-config
---
SilverStripe\Forms\HTMLEditor\HTMLEditorConfig:
default_config_definitions:
cms:
configClass: 'SilverStripe\TinyMCE\TinyMCEConfig'

SilverStripe\Admin\LeftAndMain:
extra_requirements_javascript:
- 'silverstripe/htmleditor-tinymce: client/dist/js/bundle.js'
11 changes: 11 additions & 0 deletions _config/injector.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
---
Name: tinymce-injector
---
SilverStripe\Core\Injector\Injector:
SilverStripe\Forms\HTMLEditor\HTMLEditorConfig:
class: SilverStripe\TinyMCE\TinyMCEConfig
SilverStripe\TinyMCE\TinyMCEScriptGenerator: '%$SilverStripe\TinyMCE\TinyMCECombinedGenerator'
SilverStripe\TinyMCE\TinyMCECombinedGenerator:
class: SilverStripe\TinyMCE\TinyMCECombinedGenerator
properties:
AssetHandler: '%$SilverStripe\Assets\Storage\GeneratedAssetHandler'
6 changes: 6 additions & 0 deletions babel.config.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
{
"presets": [
"@babel/preset-env",
"@babel/preset-react"
]
}
32 changes: 32 additions & 0 deletions behat.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
# Run TinyMCE behat tests with this command
# ========================================================================= #
# chromedriver
# vendor/bin/behat @htmleditor-tinymce
# ========================================================================= #
default:
suites:
htmleditor-tinymce:
paths:
- '%paths.modules.htmleditor-tinymce%/tests/behat/features'
contexts:
- SilverStripe\Framework\Tests\Behaviour\FeatureContext
- SilverStripe\Framework\Tests\Behaviour\CmsFormsContext
- SilverStripe\Framework\Tests\Behaviour\CmsUiContext
- SilverStripe\BehatExtension\Context\BasicContext
- SilverStripe\BehatExtension\Context\LoginContext
- SilverStripe\CMS\Tests\Behaviour\AnchorContext
-
SilverStripe\AssetAdmin\Tests\Behat\Context\FixtureContext:
- "%paths.modules.htmleditor-tinymce%/tests/behat/files/"

extensions:
SilverStripe\BehatExtension\MinkExtension:
default_session: facebook_web_driver
javascript_session: facebook_web_driver
facebook_web_driver:
browser: chrome
wd_host: "http://127.0.0.1:9515" #chromedriver port

SilverStripe\BehatExtension\Extension:
screenshot_path: '%paths.base%/artifacts/screenshots'
bootstrap_file: vendor/silverstripe/framework/tests/behat/serve-bootstrap.php
1 change: 1 addition & 0 deletions client/dist/js/TinyMCE_ssembed.js

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 1 addition & 0 deletions client/dist/js/TinyMCE_sslink-anchor.js

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Loading

0 comments on commit 191068a

Please sign in to comment.