feat(new-tool): html entities escape/unescape
This commit is contained in:
		
							parent
							
								
									ebf6695d25
								
							
						
					
					
						commit
						8e29a97404
					
				
							
								
								
									
										80
									
								
								src/tools/html-entities/html-entities.vue
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										80
									
								
								src/tools/html-entities/html-entities.vue
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,80 @@ | |||||||
|  | <template> | ||||||
|  |   <n-card title="Escape html entities"> | ||||||
|  |     <n-form-item | ||||||
|  |       label="Your string :" | ||||||
|  |     > | ||||||
|  |       <n-input | ||||||
|  |         v-model:value="escapeInput" | ||||||
|  |         type="textarea" | ||||||
|  |         placeholder="The string to escape" | ||||||
|  |         :autosize="{ minRows: 2 }" | ||||||
|  |       /> | ||||||
|  |     </n-form-item> | ||||||
|  | 
 | ||||||
|  |     <n-form-item label="Your string escaped :"> | ||||||
|  |       <n-input | ||||||
|  |         :value="escapeOutput" | ||||||
|  |         type="textarea" | ||||||
|  |         readonly | ||||||
|  |         placeholder="Your string escaped" | ||||||
|  |         :autosize="{ minRows: 2 }" | ||||||
|  |       /> | ||||||
|  |     </n-form-item> | ||||||
|  | 
 | ||||||
|  |     <n-space justify="center"> | ||||||
|  |       <n-button | ||||||
|  |         secondary | ||||||
|  |         @click="copyEscaped" | ||||||
|  |       > | ||||||
|  |         Copy | ||||||
|  |       </n-button> | ||||||
|  |     </n-space> | ||||||
|  |   </n-card> | ||||||
|  |   <br> | ||||||
|  |   <n-card title="Unescape html entities"> | ||||||
|  |     <n-form-item | ||||||
|  |       label="Your escaped string :" | ||||||
|  |     > | ||||||
|  |       <n-input | ||||||
|  |         v-model:value="unescapeInput" | ||||||
|  |         type="textarea" | ||||||
|  |         placeholder="The string to unescape" | ||||||
|  |         :autosize="{ minRows: 2 }" | ||||||
|  |       /> | ||||||
|  |     </n-form-item> | ||||||
|  | 
 | ||||||
|  |     <n-form-item label="Your string unescaped :">  | ||||||
|  |       <n-input | ||||||
|  |         :value="unescapeOutput" | ||||||
|  |         type="textarea" | ||||||
|  |         readonly | ||||||
|  |         placeholder="Your string unescaped" | ||||||
|  |         :autosize="{ minRows: 2 }" | ||||||
|  |       /> | ||||||
|  |     </n-form-item> | ||||||
|  | 
 | ||||||
|  |     <n-space justify="center"> | ||||||
|  |       <n-button | ||||||
|  |         secondary | ||||||
|  |         @click="copyUnescaped" | ||||||
|  |       > | ||||||
|  |         Copy | ||||||
|  |       </n-button> | ||||||
|  |     </n-space> | ||||||
|  |   </n-card> | ||||||
|  | </template> | ||||||
|  | 
 | ||||||
|  | <script setup lang="ts"> | ||||||
|  | import {escape,unescape} from 'lodash' | ||||||
|  | import { computed, ref } from 'vue'; | ||||||
|  |  import { useCopy } from '@/composable/copy'; | ||||||
|  | 
 | ||||||
|  | const escapeInput = ref('<title>IT Tool</title>') | ||||||
|  | const escapeOutput = computed(() => escape(escapeInput.value)) | ||||||
|  | const {copy: copyEscaped} = useCopy({source: escapeOutput}) | ||||||
|  | 
 | ||||||
|  | const unescapeInput = ref('<title>IT Tool</title') | ||||||
|  | const unescapeOutput = computed(() => unescape(unescapeInput.value)) | ||||||
|  | const {copy: copyUnescaped} = useCopy({source: unescapeOutput}) | ||||||
|  | </script>  | ||||||
|  |   | ||||||
							
								
								
									
										11
									
								
								src/tools/html-entities/index.ts
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										11
									
								
								src/tools/html-entities/index.ts
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,11 @@ | |||||||
|  | import { Code } from '@vicons/tabler'; | ||||||
|  | import type { ITool } from './../Tool'; | ||||||
|  | 
 | ||||||
|  | export const tool: ITool = { | ||||||
|  |   name: 'Escape html entities', | ||||||
|  |   path: '/html-entities', | ||||||
|  |   description: 'Escape or unescape html entities (replace <,>, &, " and \' to their html version)', | ||||||
|  |   keywords: ['html', 'entities', 'escape', 'unescape', 'special', 'characters', 'tags'], | ||||||
|  |   component: () => import('./html-entities.vue'), | ||||||
|  |   icon: Code, | ||||||
|  | }; | ||||||
| @ -1,6 +1,7 @@ | |||||||
| import { LockOpen } from '@vicons/tabler'; | import { LockOpen } from '@vicons/tabler'; | ||||||
| import type { ToolCategory } from './Tool'; | import type { ToolCategory } from './Tool'; | ||||||
| 
 | 
 | ||||||
|  | import { tool as htmlEntities } from './html-entities'; | ||||||
| import { tool as urlParser } from './url-parser'; | import { tool as urlParser } from './url-parser'; | ||||||
| import { tool as deviceInformation } from './device-information'; | import { tool as deviceInformation } from './device-information'; | ||||||
| import { tool as bcrypt } from './bcrypt'; | import { tool as bcrypt } from './bcrypt'; | ||||||
| @ -37,7 +38,7 @@ export const toolsByCategory: ToolCategory[] = [ | |||||||
|   { |   { | ||||||
|     name: 'Web', |     name: 'Web', | ||||||
|     icon: LockOpen, |     icon: LockOpen, | ||||||
|     components: [urlEncoder, qrCodeGenerator, urlParser, deviceInformation], |     components: [urlEncoder, htmlEntities, qrCodeGenerator, urlParser, deviceInformation], | ||||||
|   }, |   }, | ||||||
|   { |   { | ||||||
|     name: 'Development', |     name: 'Development', | ||||||
|  | |||||||
		Loading…
	
		Reference in New Issue
	
	Block a user