Add spellchecker #5
| @ -8,6 +8,10 @@ steps: | |||||||
|     commands: |     commands: | ||||||
|       - npm install |       - npm install | ||||||
|       - npm run lint |       - npm run lint | ||||||
|  |   - name: lint checks | ||||||
|  |     image: polpetta/spellchecker | ||||||
|  |     commands: | ||||||
|  |       - ./tools/spellchecker.sh en | ||||||
|   - name: hugo build |   - name: hugo build | ||||||
|     image: klakegg/hugo:0.82.1-ext-alpine-ci |     image: klakegg/hugo:0.82.1-ext-alpine-ci | ||||||
|     commands: |     commands: | ||||||
|  | |||||||
| @ -56,7 +56,7 @@ his dispenser` caption=`Engineer class with a dispenser. Thanks to [Team | |||||||
| Fortress wiki](https://wiki.teamfortress.com) for providing the image I | Fortress wiki](https://wiki.teamfortress.com) for providing the image I | ||||||
| shamelessly downloaded from them` >}} | shamelessly downloaded from them` >}} | ||||||
| 
 | 
 | ||||||
| I hope Valve will not sue me for taking that assed as my website favicon. I | I hope Valve will not sue me for taking that asset as my website favicon. I | ||||||
| swear I will change it, a day. Pinky promise. | swear I will change it, a day. Pinky promise. | ||||||
| 
 | 
 | ||||||
| ### Hosting | ### Hosting | ||||||
| @ -84,12 +84,12 @@ while trying to kill the boredom caused by COVID-19 lockdown, I discovered | |||||||
| bothered too much to understand what was about. I though "well, it surely is | bothered too much to understand what was about. I though "well, it surely is | ||||||
| some sort of filesystem". I was somewhat right, but not the way I thought. | some sort of filesystem". I was somewhat right, but not the way I thought. | ||||||
| 
 | 
 | ||||||
| IPFS acts like a peer-to-peer network, where nodes hash the content | IPFS acts like a peer-to-peer network, where nodes hash the content they want to | ||||||
| they want to share to let other nodes grab it. You can grab this content using | share to let other nodes grab it. You can grab this content using your local | ||||||
| your local node or using one of the many available gateways. Nodes can "pin" a | node or using one of the many available gateways. Nodes can "pin" a file too, in | ||||||
| file too, in order to keep it locally and to serve it to other nodes. If a file | order to keep it locally and to serve it to other nodes. If a file gets pinned | ||||||
| gets pinned by different nodes and gains traction it basically becomes | by different nodes and gains traction it basically can not be deleted from the | ||||||
| undeletable from the web. | web. | ||||||
| 
 | 
 | ||||||
| #### Choosing the right tools | #### Choosing the right tools | ||||||
| 
 | 
 | ||||||
| @ -113,10 +113,10 @@ Finally, in order to achieve full automation with DNS updates, I would have | |||||||
| needed to implement and use NameCheap APIs (currently it is the DNS provider I | needed to implement and use NameCheap APIs (currently it is the DNS provider I | ||||||
| use for most of my websites). "What's the difficulty?" one would ask. [Here is | use for most of my websites). "What's the difficulty?" one would ask. [Here is | ||||||
| the official documentation](https://www.namecheap.com/support/api/intro/), and | the official documentation](https://www.namecheap.com/support/api/intro/), and | ||||||
| even if the APIs look promising, while studing them my will to live decreased a | even if the APIs look promising, while studying them my will to live decreased a | ||||||
| little bit, and so I decided that if I wanted to get up and running with less | little bit, and so I decided that if I wanted to get up and running with less | ||||||
| maintenance as possible, with a good uptime while having the maximum | maintenance as possible, with a good uptime while having the maximum | ||||||
| automatization possible I needed to rely on a dedicated service. Luckily | automation possible I needed to rely on a dedicated service. Luckily | ||||||
| [fleek.co](https://fleek.co) was what I was searching for. They currently | [fleek.co](https://fleek.co) was what I was searching for. They currently | ||||||
| provide the possibility to buy a domain from their website, giving them all the | provide the possibility to buy a domain from their website, giving them all the | ||||||
| hassle of updating the new website on IPFS, distributing it, refreshing a very | hassle of updating the new website on IPFS, distributing it, refreshing a very | ||||||
| @ -131,10 +131,10 @@ imagine, provides multiple benefits: | |||||||
|   to understand why the website does not load/the DNS is not properly updated |   to understand why the website does not load/the DNS is not properly updated | ||||||
|    |    | ||||||
| The only downside to this approach is that Fleek provides limitations on how | The only downside to this approach is that Fleek provides limitations on how | ||||||
| much data and bandwith you can host. At the time of writing, you can only host | much data and bandwidth you can host. At the time of writing, you can only host | ||||||
| up to 3GB (enough for this website) and have a 50GB bandwith (that's ok for now) | up to 3GB (enough for this website) and have a 50GB bandwidth (that is fine for | ||||||
| for the free version. [Upgrading you account](https://fleek.co/pricing/) to one | now) for the free version. [Upgrading you account](https://fleek.co/pricing/) to | ||||||
| of the available plans give you extra space and bandwith. | one of the available plans give you extra space and bandwidth. | ||||||
| 
 | 
 | ||||||
| ## Future improvements | ## Future improvements | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -4,7 +4,8 @@ | |||||||
|     "description": "Personal Hugo website", |     "description": "Personal Hugo website", | ||||||
|     "main": "none.js", |     "main": "none.js", | ||||||
|     "scripts": { |     "scripts": { | ||||||
|         "lint": "markdownlint-cli2 content/" |         "lint": "markdownlint-cli2 content/", | ||||||
|  | 	      "spellchecker": "bash tools/spellchecker.sh en" | ||||||
|     }, |     }, | ||||||
|     "repository": { |     "repository": { | ||||||
|         "type": "git", |         "type": "git", | ||||||
|  | |||||||
							
								
								
									
										24
									
								
								tools/dictionary.en.pws
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										24
									
								
								tools/dictionary.en.pws
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,24 @@ | |||||||
|  | personal_ws-1.1 en 0 | ||||||
|  | engiwithdispenser | ||||||
|  | Github | ||||||
|  | fleek | ||||||
|  | Fleek | ||||||
|  | Mies | ||||||
|  | der | ||||||
|  | Rohe's | ||||||
|  | favicon | ||||||
|  | src | ||||||
|  | png | ||||||
|  | Pinky | ||||||
|  | DigitalOcean | ||||||
|  | Scaleway | ||||||
|  | uptime | ||||||
|  | lockdown | ||||||
|  | filesystem | ||||||
|  | IPFS | ||||||
|  | vCPU | ||||||
|  | CDN | ||||||
|  | DNS | ||||||
|  | NameCheap | ||||||
|  | APIs | ||||||
|  | fediverse | ||||||
							
								
								
									
										25
									
								
								tools/spellchecker.sh
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										25
									
								
								tools/spellchecker.sh
									
									
									
									
									
										Executable file
									
								
							| @ -0,0 +1,25 @@ | |||||||
|  | #!/bin/bash | ||||||
|  | 
 | ||||||
|  | set -e | ||||||
|  | 
 | ||||||
|  | reporoot="$(git rev-parse --show-toplevel)" | ||||||
|  | lang="${1}" | ||||||
|  | if [ -z "${2}" ] | ||||||
|  | then | ||||||
|  |     texdir="/content/english" | ||||||
|  | else | ||||||
|  |     texdir="${2}" | ||||||
|  | fi | ||||||
|  | echo "Checking files in ${reporoot}${texdir}" | ||||||
|  | for i in $(find "${reporoot}${texdir}" -type f -iname "*.md") | ||||||
|  | do | ||||||
|  |     tmp="$(cat "${i}" | aspell -M -a --lang="${lang}" --encoding=utf-8 --add-extra-dicts="${reporoot}/tools/dictionary.$1.pws" 2>/dev/null | grep -v "*" | grep -v "@" | grep -v "+" | sed '/^\s*$/d')" | ||||||
|  |     if [ "${tmp}" != "" ] | ||||||
|  |     then | ||||||
|  |         echo "******* List of errors detected for ${i} *******" | ||||||
|  |         echo "${tmp}" | ||||||
|  |         exit 1 | ||||||
|  |     else | ||||||
|  |         echo "${i} OK" | ||||||
|  |     fi | ||||||
|  | done | ||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user