Security News
38% of CISOs Fear They’re Not Moving Fast Enough on AI
CISOs are racing to adopt AI for cybersecurity, but hurdles in budgets and governance may leave some falling behind in the fight against cyber threats.
textangular
Advanced tools
Demo is available at: http://www.textangular.com (Or editable Plunkr Demo)
To upgrade from version 1.2.2 or earlier you need to follow these steps:
dist/textAngular.css
file, you will need to include this or a copy of it with your own modifications.rangy-core
and rangy-selectionsaverestore
modules, alternatively you can include the compressed version (textAngular-rangy.min.js
) in the dist folderAngularJS
≥ 1.3.x
Rangy
≥ 1.3.x
, Both rangy-core and rangy-selectionsaverestore are required. (There is a minified combination of these two included in the dist folder)Font-Awesome
≥ 4.x
for the default icons on the toolbarBootstrap
≥ 3.x
for the default styles (Can use bootstrap-css-only
, you must add this to your bower or include this manually)NOTE: Our textAngular-sanitize.js
and angular.js's angular-sanitize.js
are the SAME file, you must include one or the other but not both. We highly recommend using textAngular-sanitize.js
as it loosens some parts of the sanitizer that are far too strict for our uses and adds some more features we need.
Via Bower:
Run bower install textAngular
from the command line.
Include script tags similar to the following:
<link rel='stylesheet' href='/bower_components/textAngular/dist/textAngular.css'>
<script src='/bower_components/textAngular/dist/textAngular-rangy.min.js'></script>
<script src='/bower_components/textAngular/dist/textAngular-sanitize.min.js'></script>
<script src='/bower_components/textAngular/dist/textAngular.min.js'></script>
Via NPM:
Run npm install textangular
from the command line.
Include script tags similar to the following:
<link rel='stylesheet' href='/node_modules/textangular/dist/textAngular.css'>
<script src='/node_modules/textangular/dist/textAngular-rangy.min.js'></script>
<script src='/node_modules/textangular/dist/textAngular-sanitize.min.js'></script>
<script src='/node_modules/textangular/dist/textAngular.min.js'></script>
Install using commonjs (eg componentjs, Webpack, Browserify):
angular.module('myModule', [require('angular-sanitize'), require('textAngular')]);
Optionally, install textAngular-sanitize.min.js by requiring it BEFORE requring textAngular:
require('textangular/dist/textAngular-sanitize.min');
angular.module('myModule', [require('textAngular')]);
For CSS support with Webpack, install the style-loader, css-loader (and postcss-loader) and configure the loader in your webpack.config.js similar to the following:
loaders: [
{test: /\.css$/, loader: 'style!css!postcss'}
]
Via CDNJS:
Include script tags similar to the following:
<script src='http://cdnjs.cloudflare.com/ajax/libs/textAngular/1.5.0/textAngular-rangy.min.js'></script>
<script src='http://cdnjs.cloudflare.com/ajax/libs/textAngular/1.5.0/textAngular-sanitize.min.js'></script>
<script src='http://cdnjs.cloudflare.com/ajax/libs/textAngular/1.5.0/textAngular.min.js'></script>
Via jsDelivr:
Include script tag similar to the following: (For details on how this works see: https://github.com/jsdelivr/jsdelivr#load-multiple-files-with-single-http-request)
<script src='http://cdn.jsdelivr.net/g/angular.textangular@1.5.0(textAngular-rangy.min.js+textAngular-sanitize.min.js+textAngular.min.js)'></script>
Via Github
Download the code from https://github.com/fraywing/textAngular/releases/latest, unzip the files then add script tags similar to the following:
<link rel='stylesheet' href='/path/to/unzipped/files/dist/textAngular.min.css'>
<script src='/path/to/unzipped/files/dist/textAngular-rangy.min.js'></script>
<script src='/path/to/unzipped/files/dist/textAngular-sanitize.min.js'></script>
<script src='/path/to/unzipped/files/dist/textAngular.min.js'></script>
rangy-core.js
and rangy-selectionsaverestore.js
) or textAngular-rangy.min.js
in your project using script tagstextAngular-sanitize.js
or textAngular-sanitize.min.js
in your project using script tagstextAngularSetup.js
and textAngular.js
) or textAngular.min.js
(textAngularSetup.js is included inside textAngular.min.js)textAngular
in your app module, for example: angular.module('myModule', ['textAngular'])
.ng-model="htmlVariable"
attribute where htmlVariable
is the scope variable that will hold the HTML entered into the editor:<div text-angular ng-model="htmlVariable"></div>
OR
<text-angular ng-model="htmlVariable"></text-angular>
This acts similar to a regular AngularJS / form input if you give it a name attribute, allowing for form submission and AngularJS form validation.
Have fun!
Important Note: Though textAngular supports the use of all attributes in it's input, please note that angulars ng-bind-html WILL strip out all of your style attributes if you are using angular-sanitize.js
.
For Additional options see the github Wiki.
textAngular uses execCommand
for the rich-text functionality.
That being said, its still a fairly experimental browser feature-set, and may not behave the same in all browsers - see http://tifftiff.de/contenteditable/compliance_test.html for a full compliance list.
It has been tested to work on Chrome, Safari, Opera, Firefox and Internet Explorer 8+.
If you find something, please let me know - throw me a message, or submit an issue request!
<img>
tag and aren't showing the video.<div ta-bind ng-model="data.htmlcontent"></div>
. This invokes our custom renderers to convert the <img>
tags back into the youtube video you expect.<a href...>
tagsdocument.execCommand("AutoUrlDetect", false, false)
. See #475 for details."textAngular Error: An editor with the name already exists"
occursWhen checking out, you need a node.js installation, running npm install
and then bower install
will get you setup with everything to run the unit tests and minification.
All changes should be done in the src folder, running grunt compile
to compile the app or use grunt watch
to compile the files as you save them.
When you are ready to create A PR check that grunt
passes without errors and you have created tests for your feature if necessary.
It is possible to override the toolbar by using a decorator in the module's .config block. Simply set the taOptions.toolbar to an array of arrays comprised of button names. Each array of button names represents a button group. The default toolbar can be represented like so:
taOptions.toolbar = [
['h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'p', 'pre', 'quote'],
['bold', 'italics', 'underline', 'strikeThrough', 'ul', 'ol', 'redo', 'undo', 'clear'],
['justifyLeft', 'justifyCenter', 'justifyRight', 'indent', 'outdent'],
['html', 'insertImage','insertLink', 'insertVideo', 'wordcount', 'charcount']
];
New buttons can be created using taRegisterTool. Examples can be found inside demo/static-demo.html
This project is licensed under the MIT license.
Special thanks to all the contributions thus far!
For a full list see: https://github.com/fraywing/textAngular/graphs/contributors
FAQs
A radically powerful Text-Editor/Wysiwyg editor for Angular.js
The npm package textangular receives a total of 0 weekly downloads. As such, textangular popularity was classified as not popular.
We found that textangular demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 4 open source maintainers collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
CISOs are racing to adopt AI for cybersecurity, but hurdles in budgets and governance may leave some falling behind in the fight against cyber threats.
Research
Security News
Socket researchers uncovered a backdoored typosquat of BoltDB in the Go ecosystem, exploiting Go Module Proxy caching to persist undetected for years.
Security News
Company News
Socket is joining TC54 to help develop standards for software supply chain security, contributing to the evolution of SBOMs, CycloneDX, and Package URL specifications.