vue-hashtag-textarea
Highlight hashtags on textarea with vue.js
1,605
25
| Install | |
|---|---|
npm install vue-hashtag-textarea |
|
| Latest Version: | 0.3.7 |
| Vue: | 2 |
| License: | MIT |
| Last Updated: | Mar 29, 2019 |
| Links: | GitHub · npm |
Maintainer: mitsuyacider
Highlight hashtags on Vue.js module
Features
- Highlight hastags in textarea
- Resize textarea automatically
- Notify inputting hashtag in realtime
- Support japanese.
| Desktop | Mobile |
|---|---|
![]() |
![]() |
Getting started
Download
Via npm
$ npm install vue-hashtag-textarea --save
Usage
ES6 modules
import VueHashtagTextarea from 'vue-hashtag-textarea';
Vue file
import VueHashtagTextarea from '/path/to/vue-hashtag-textarea.vue';
Hello world
<template>
<div class="container">
<vue-hashtag-textarea />
<div>
</template>
<script>
import VueHashtagTextarea from 'vue-hashtag-textarea'
export default {
components: {
VueHashtagTextarea,
}
}
</script>
Options
| Options | Type | Description | Default |
|---|---|---|---|
| defaultContent | String | insert initial text | '' |
| textColor | String | ordinary text color | black |
| font | String | wave height | 14px "Noto Sans Japanese", sans-serif |
| hashtagBackgroundColor | String | background color on hashtag | transparent |
| hashtagColor | String | hashtag color | #ff0000 |
| placeholder | String | placeholder on empty | Sentence for placeholder #place #holder |
| isEditMode | Boolean | true: enable to edit but cannot select hashtag false: enable to select hashtag but cannot edit |
true |
Supported Functions
replaceHashtagNodeContent(content)
Argument
- content : String
Description
Replace focused hashtag to new hashtag. Please note that the content shouled include hashtag "#" at the head of the word. In addition, if the caret in the textarea is not on one of hashtags, no hashtag is replaced.
Example
<template>
<div class="container">
<vue-hashtag-textarea
ref="vueHashtagTextarea" />
<div>
</template>
<script>
import VueHashtagTextarea from 'vue-hashtag-textarea'
export default {
components: {
VueHashtagTextarea,
},
methods: {
someEventTrigger() {
this.$refs.vueHashtagTextarea.replaceHashtagNodeContent('#somehashtag ')
}
}
}
</script>
Callback
onChangeHashtag(obj)
Argument
- obj : Object
| Values | Type | Description |
|---|---|---|
| target | String | focusing hashtag |
| hashtags | Array | hashtag list in the sentence |
Description
Everytime hashtags is inputed in vue-hashtag-textarea, values including whole hashtags and current focusing hashtag will be notified by this callback function. If caret is not at hashtag, this callback doesn't be fired.
Example
<template>
<div class="container">
<vue-hashtag-textarea
v-on:onChangeHashtag="onChangeHashtag" />
<div>
</template>
<script>
import VueHashtagTextarea from 'vue-hashtag-textarea'
export default {
methods: {
onChangeHashtag(obj) {
// NOTE: Everytime hashtags is inputed in vue-hashtag-textarea,
// values will be callbacked in this scope
}
}
}
</script>
onSelectHashtag(content)
Argument
- content : String
Description
When hashtag element is selected, this callback function will be fired with the specific hashtag.
Example
<template>
<div class="container">
<vue-hashtag-textarea
:option=option
v-on:onSelectHashtag="onSelectHashtag" />
<div>
</template>
<script>
import VueHashtagTextarea from 'vue-hashtag-textarea'
export default {
data() {
return {
option: {
isEditMode: false
}
}
},
components: {
VueHashtagTextarea,
},
methods: {
onSelecthashtag(content) {
// TODO:
}
}
}
</script>
Browser support
Desktop
| Chrome | Safari | IE / Edge | Firefox | Opera |
|---|---|---|---|---|
| 72+ | 12+ | ? | 65+ | ? |
Mobile
| Android webview | Chrome for Android | Safari on iOS | Edge Mobile | Firefox for Android | Opera for Android | Samsung Internet |
|---|---|---|---|---|---|---|
| ? | ? | 12+ | ? | ? | ? | ? |
NOTE
If debugging iOS devices on chrome dev tools, the layout will be failed. In that case, recommend to use Safari browser instead.
Quick Start
git clone https://github.com/mitsuyacider/vue-hashtag-textarea
cd vue-hashtag-textarea
npm install
vue serve example/App.vue
License
Related Packages
Version History
| Version | Released | Vue | License |
|---|---|---|---|
| 0.3.7 | ^2.6.8 | MIT | |
| 0.3.6 | ^2.6.8 | MIT | |
| 0.3.5 | ^2.6.8 | MIT | |
| 0.3.4 | ^2.6.8 | MIT | |
| 0.3.3 | ^2.6.8 | MIT | |
| 0.3.2 | ^2.6.8 | MIT | |
| 0.3.1 | ^2.6.8 | MIT | |
| 0.3.0 | ^2.6.8 | MIT | |
| 0.2.0 | ^2.6.8 | MIT | |
| 0.1.0 | ^2.6.8 | MIT | |
| 0.0.4 | ^2.6.8 | MIT | |
| 0.0.3 | ^2.6.8 | MIT | |
| 0.0.2 | ^2.6.8 | MIT | |
| 0.0.1 | ^2.6.8 | MIT |

