<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Casualwriter</title>
    <description>The latest articles on DEV Community by Casualwriter (@casualwriter).</description>
    <link>https://dev.to/casualwriter</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F719476%2F89c7a5a5-2b49-47ab-9d8d-379de916e368.png</url>
      <title>DEV Community: Casualwriter</title>
      <link>https://dev.to/casualwriter</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/casualwriter"/>
    <language>en</language>
    <item>
      <title>Set To-Do list as windows wallpaper (coded by sonnet)</title>
      <dc:creator>Casualwriter</dc:creator>
      <pubDate>Mon, 03 Feb 2025 16:30:13 +0000</pubDate>
      <link>https://dev.to/casualwriter/set-to-do-list-as-windows-wallpaper-coded-by-sonnet-2dn7</link>
      <guid>https://dev.to/casualwriter/set-to-do-list-as-windows-wallpaper-coded-by-sonnet-2dn7</guid>
      <description>&lt;h1&gt;
  
  
  amoy-todo-wallpaper
&lt;/h1&gt;

&lt;p&gt;Set To-Do list as windows wallpaper. &lt;/p&gt;

&lt;p&gt;This is a python program coded by claude-sonnet-3.5 with minor revision. &lt;/p&gt;

&lt;p&gt;github: &lt;a href="https://github.com/casualwriter/amoy-todo-wallpaper" rel="noopener noreferrer"&gt;https://github.com/casualwriter/amoy-todo-wallpaper&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fw9sytf2jyq1wubxplv99.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fw9sytf2jyq1wubxplv99.jpg" width="800" height="422"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  How to use
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;download &lt;code&gt;amoy-todo-wallpaper.zip&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;unzip all file&lt;/li&gt;
&lt;li&gt;run &lt;code&gt;amoy-todo.exe&lt;/code&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;This program will open &lt;code&gt;todo.txt&lt;/code&gt; file for edit, click [Save &amp;amp; Apply] to set it as windows wallpaper.&lt;/p&gt;

&lt;h2&gt;
  
  
  Files
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;source code &lt;a href="//amoy-todo.py"&gt;amoy-todo.py&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;background image &lt;code&gt;background.png&lt;/code&gt; (by flux-schnell)&lt;/li&gt;
&lt;li&gt;todo list &lt;code&gt;todo.txt&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;download zip &lt;a href="//amoy-todo-wallpaper.zip"&gt;amoy-todo-wallpaper.zip&lt;/a&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;To compile the source into single executable: &lt;code&gt;pyinstaller -F -w amoy-todo.py&lt;/code&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Prompt
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;write a python program to set a text file as wallpaper, add UI to edit todo.txt, and allow setup font-color and content background color.

- text file is "todo.txt", left-align, grey text color
- round content area 12px
- allow set font size setting, default 16px
- background image is "background.png"
- nice look fonts, support chinese
- show in top-right with margin 120px, light grey background #eee
- do not filter empty line
- output python code in code-block
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Notes
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;2025/02/03, v1, tested on &lt;code&gt;sonnet-3.5&lt;/code&gt;, &lt;code&gt;deepseek-R1&lt;/code&gt; and &lt;code&gt;o3-mini&lt;/code&gt;, finally choose sonnet version as the code is most simple.&lt;/li&gt;
&lt;li&gt;2025/02/03, v2, add font size setting.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;enjoy it.&lt;/p&gt;

</description>
      <category>python</category>
      <category>chatgpt</category>
      <category>util</category>
      <category>productivity</category>
    </item>
    <item>
      <title>Vanilla worker playground for cloudflare AI</title>
      <dc:creator>Casualwriter</dc:creator>
      <pubDate>Mon, 08 Apr 2024 10:47:34 +0000</pubDate>
      <link>https://dev.to/casualwriter/vanilla-worker-playground-for-cloudflare-ai-5fl0</link>
      <guid>https://dev.to/casualwriter/vanilla-worker-playground-for-cloudflare-ai-5fl0</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for the &lt;a href="https://dev.to/devteam/join-us-for-the-cloudflare-ai-challenge-3000-in-prizes-5f99"&gt;Cloudflare AI Challenge&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What I Built
&lt;/h2&gt;

&lt;p&gt;Vanilla worker playground for cloudflare AI, also act as cloudflare API proxy.&lt;/p&gt;

&lt;h2&gt;
  
  
  Demo
&lt;/h2&gt;

&lt;p&gt;Demo: &lt;a href="https://playground.pingshan.uk/"&gt;https://playground.pingshan.uk/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fn54czzxqwdhgx0pkdzmr.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fn54czzxqwdhgx0pkdzmr.jpg" alt="Image description" width="800" height="560"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  My Code
&lt;/h2&gt;

&lt;p&gt;github: &lt;a href="https://github.com/casualwriter/vanilla-worker-playground"&gt;https://github.com/casualwriter/vanilla-worker-playground&lt;/a&gt;&lt;br&gt;
source: &lt;a href="https://github.com/casualwriter/vanilla-worker-playground/blob/main/vanilla-worker-playground.js"&gt;https://github.com/casualwriter/vanilla-worker-playground/blob/main/vanilla-worker-playground.js&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Journey
&lt;/h2&gt;

&lt;p&gt;I just explorer to use cloudflare AI API, and make the worker as API proxy first, and code the html page locally.&lt;/p&gt;

&lt;p&gt;the html page is very simple in less than 300 lines code, and I realize that I can put it inside worker. that's really happy thing with small html page. &lt;/p&gt;

&lt;p&gt;It is a chatbot for all major AI chat models available in clouflare AI API, which may switch different AI modes during a conversation. After play with cluoflare AI models, the conversation may export/print for reference. btw, this program also support voice recognition (sorry not use AI now). If have time, I will use cloudflare AI for voice recognition  and speak.&lt;/p&gt;

&lt;p&gt;In additional, this worker also acts as API proxy enable html page calling clouflare API anywhere.&lt;/p&gt;

&lt;p&gt;Hope you like it, have a nice day,&lt;/p&gt;




&lt;p&gt;dev user name: casualwriter&lt;br&gt;
&lt;a href="https://dev.to/casualwriter"&gt;https://dev.to/casualwriter&lt;/a&gt;&lt;/p&gt;

</description>
      <category>cloudflarechallenge</category>
      <category>devchallenge</category>
      <category>ai</category>
    </item>
    <item>
      <title>A minimal ChatGPT client by vanilla javascript, run from local or any web host</title>
      <dc:creator>Casualwriter</dc:creator>
      <pubDate>Fri, 21 Apr 2023 01:40:34 +0000</pubDate>
      <link>https://dev.to/casualwriter/a-minimal-chatgpt-client-by-vanilla-javascript-run-from-local-or-any-web-host-2nim</link>
      <guid>https://dev.to/casualwriter/a-minimal-chatgpt-client-by-vanilla-javascript-run-from-local-or-any-web-host-2nim</guid>
      <description>&lt;p&gt;Hi, all,&lt;/p&gt;

&lt;p&gt;would like to introduce &lt;a href="https://github.com/casualwriter/vanilla-chatgpt"&gt;"vannilla-chatgpt"&lt;/a&gt; - a minimal ChatGPT client by vanilla javascript, run from local or any web host&lt;/p&gt;

&lt;p&gt;This program aims to code a full functional chatGPT client using only raw HTML/CSS/JavaScript with minimal coding effort, in the purpose of exploring the minimum requirements of utilizing chatGPT features without the need for a server, framework, or additional resources.&lt;/p&gt;

&lt;p&gt;This program offers basic conversation functions with some enhancements for conversation content&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;refined printout &lt;/li&gt;
&lt;li&gt;easy to copy code-block and content&lt;/li&gt;
&lt;li&gt;export conversation to markdown&lt;/li&gt;
&lt;li&gt;voice recognition and speak answer&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--TaqiuD6o--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://casualwriter.github.io/vanilla-chatgpt/vanilla-chatgpt2.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--TaqiuD6o--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://casualwriter.github.io/vanilla-chatgpt/vanilla-chatgpt2.jpg" alt="layout" width="800" height="553"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;It is available as a single HTML file, which run directly from local or GitHub source folder.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://raw.githack.com/casualwriter/vanilla-chatgpt/main/source/index.html"&gt;https://raw.githack.com/casualwriter/vanilla-chatgpt/main/source/index.html&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://raw.githack.com/casualwriter/vanilla-chatgpt/main/source/vanilla-chatgpt.html"&gt;https://raw.githack.com/casualwriter/vanilla-chatgpt/main/source/vanilla-chatgpt.html&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;if do not have API key, please check the &lt;a href="https://pingshan-tech.com/demo/ps-chatgpt.html"&gt;demo&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;For more details, please visit github: &lt;a href="https://github.com/casualwriter/vanilla-chatgpt"&gt;https://github.com/casualwriter/vanilla-chatgpt&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Have a nice day,&lt;/p&gt;

</description>
      <category>chatgpt</category>
      <category>javascript</category>
      <category>html</category>
      <category>selfhost</category>
    </item>
    <item>
      <title>PowerChrome - a chromium-base browser for desktop html/javascript application</title>
      <dc:creator>Casualwriter</dc:creator>
      <pubDate>Tue, 13 Dec 2022 07:11:13 +0000</pubDate>
      <link>https://dev.to/casualwriter/powerchrome-for-desktop-application-by-htmljavascript--3af6</link>
      <guid>https://dev.to/casualwriter/powerchrome-for-desktop-application-by-htmljavascript--3af6</guid>
      <description>&lt;p&gt;I had longed for a web browser which has DB connectivity and shell accessibility, so that can develop html/JavaScript application like Electron. PowerChrome comes for this purpose.&lt;/p&gt;

&lt;p&gt;PowerChrome is a powerful and portable web browser that uses the Chromium engine to enable fast and easy development of desktop applications using HTML and JavaScript. &lt;/p&gt;

&lt;p&gt;PowerChrome provides a natural approach to HTML and JavaScript application development. It allows HTML pages to access the window shell, file system, and database, and provides additional application support through the PowerChrome JavaScript Interface (which runs in &lt;strong&gt;sync mode&lt;/strong&gt;).&lt;/p&gt;

&lt;p&gt;Examples of the PowerChrome JavaScript Interface include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Calling notepad.exe: &lt;code&gt;pb.run('notepad.exe')&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Execute a file: &lt;code&gt;pb.shell('calc.exe')&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Copy a file: &lt;code&gt;pb.fileCopy(sourceFile, targetFile)&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Connect to Oracle database: &lt;code&gt;pb.dbConnect('O90', dbParm, dbServer, logID, logPass)&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Run SQL query (in sync mode): &lt;code&gt;rsStr = pb.dbQuery('select * from tablename')&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Run a SQL query and convert results to JSON: &lt;code&gt;rs = JSON.parse(pb.dbQuery(sql))&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Get HTML source of a page (in sync mode): &lt;code&gt;rs = pb.httpSource('https://hacker-news.firebaseio.com/v0/item/160705.json')&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Popup an HTML dialog: &lt;code&gt;pb.popup('sample-dialog.html', {width: 1024, height: 700})&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  Features
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;Portable - no installation required&lt;/li&gt;
&lt;li&gt;Chromium-based - can use Chrome/Chromium for testing and debugging&lt;/li&gt;
&lt;li&gt;HTML as the application and JavaScript ES6 for programming&lt;/li&gt;
&lt;li&gt;API that runs in sync mode - no callback or promise objects&lt;/li&gt;
&lt;li&gt;Works with Powerbuilder for advanced functionality&lt;/li&gt;
&lt;li&gt;Simple console support&lt;/li&gt;
&lt;li&gt;Cloud-app enabled&lt;/li&gt;
&lt;li&gt;Run on Windows 7/8/10/11&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  Get Started
&lt;/h4&gt;

&lt;ol&gt;
&lt;li&gt;Download &lt;a href="https://casualwriter.github.io/download/powerchrome-0.60-with-runtime.zip" rel="noopener noreferrer"&gt;powerchrome-0.60-with-runtime.zip&lt;/a&gt; and unzip the all-in-one package.&lt;/li&gt;
&lt;li&gt;Run &lt;code&gt;powerchrome.exe&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;powerchrome.html&lt;/code&gt; will be loaded to demonstrate how PowerChrome works as an HTML desktop application.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6tsshfcwsb8zb9481d4i.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6tsshfcwsb8zb9481d4i.jpg" alt="screen cap" width="800" height="429"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Please visit github-repo: &lt;a href="https://github.com/casualwriter/powerchrome" rel="noopener noreferrer"&gt;https://github.com/casualwriter/powerchrome&lt;/a&gt;&lt;br&gt;
for more informaiton.&lt;/p&gt;

&lt;p&gt;Looking forward to your comments for improvment, &lt;br&gt;
thanks in advanced,&lt;/p&gt;

</description>
      <category>welcome</category>
      <category>community</category>
    </item>
    <item>
      <title>Create resume by markdown, print to PDF and available online</title>
      <dc:creator>Casualwriter</dc:creator>
      <pubDate>Tue, 27 Sep 2022 08:58:45 +0000</pubDate>
      <link>https://dev.to/casualwriter/create-online-resume-by-markdown-3641</link>
      <guid>https://dev.to/casualwriter/create-online-resume-by-markdown-3641</guid>
      <description>&lt;p&gt;It is quite annoying to maintain resume in multiple format, MS Word, PDF, TXT as well as wanna to have an HTML format online. It will be great to keep a easy editable single source for PDF/HTML as long as online resume available. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/casualwriter/casual-markdown-cv"&gt;casual-markdown-cv&lt;/a&gt; is a minimal way to create markdown resume and host on github (or other static web hosting)&lt;/p&gt;

&lt;p&gt;Github markdown is very good for edit/preview. Here is a sample template: &lt;a href="https://github.com/casualwriter/casual-markdown-cv/blob/main/resume.md"&gt;resume.md&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Just add a little code as below, it transform to &lt;a href="https://github.com/casualwriter/casual-markdown-cv/blob/main/resume.html"&gt;resume.html&lt;/a&gt; with nice &lt;a href="https://raw.githack.com/casualwriter/casual-markdown-cv/main/resume.html"&gt;layout&lt;/a&gt; (self-host at github).&lt;/p&gt;

&lt;p&gt;then may print to PDF format, and share the url. (for github, it can accessed by raw.githack.com naturally)&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--iVmhm57n--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/b0x40pijg5y3vz54spvn.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--iVmhm57n--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/b0x40pijg5y3vz54spvn.png" alt="Image description" width="800" height="304"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Themes
&lt;/h2&gt;

&lt;p&gt;The following themes are available.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Default theme: &lt;a href="https://raw.githack.com/casualwriter/casual-markdown-cv/main/resume.html"&gt;resume.html&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Show QR code of url: &lt;a href="https://raw.githack.com/casualwriter/casual-markdown-cv/main/resume-qrcode.html"&gt;resume-qrcode.html&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Dark theme: &lt;a href="https://raw.githack.com/casualwriter/casual-markdown-cv/main/resume-dark.html"&gt;resume-dark.html&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Warm theme: &lt;a href="https://raw.githack.com/casualwriter/casual-markdown-cv/main/resume-warm.html"&gt;resume-warm.html&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Blue theme: &lt;a href="https://raw.githack.com/casualwriter/casual-markdown-cv/main/resume-blue.html"&gt;resume-blue.html&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Sample for web developer: &lt;a href="https://raw.githack.com/casualwriter/casual-markdown-cv/main/resume-web.html"&gt;resume-web.html&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;And it is not limit for resume. for example,&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Project Plan:  &lt;a href="https://raw.githack.com/casualwriter/casual-markdown-cv/main/project-plan.html"&gt;project-plan.html&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Documentation: &lt;a href="https://raw.githack.com/casualwriter/casual-markdown-cv/main/document.html"&gt;document.html&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;for more details, please visit github-repo: &lt;a href="https://github.com/casualwriter/casual-markdown-cv"&gt;https://github.com/casualwriter/casual-markdown-cv&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;hope you find it useful.&lt;/p&gt;

&lt;p&gt;cheers,&lt;/p&gt;

</description>
      <category>markdown</category>
      <category>resume</category>
      <category>html</category>
      <category>css</category>
    </item>
    <item>
      <title>Build markdown blog site by casual-markdown-blog</title>
      <dc:creator>Casualwriter</dc:creator>
      <pubDate>Mon, 05 Sep 2022 03:17:36 +0000</pubDate>
      <link>https://dev.to/casualwriter/build-markdown-blog-site-by-casual-markdown-blog-2i0o</link>
      <guid>https://dev.to/casualwriter/build-markdown-blog-site-by-casual-markdown-blog-2i0o</guid>
      <description>&lt;p&gt;&lt;a href="https://github.com/casualwriter/casual-markdown-blog"&gt;casual-markdown-blog&lt;/a&gt; is a handy solution to build blog site by markdown files and single index.html&lt;/p&gt;

&lt;p&gt;No installation, just copy a single index.html, and config home page at index.md, then start write post in markdown! &lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--x6lRP8f0--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/1ownrf7ne2ufcq8i3cuf.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--x6lRP8f0--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/1ownrf7ne2ufcq8i3cuf.jpg" alt="blog layout" width="619" height="412"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;It is very handy to build simple blog-site from markdown files, and host on static web hosting. For example,  &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Self-host on github: &lt;a href="https://raw.githack.com/casualwriter/casual-markdown-blog/main/source/index.html"&gt;https://raw.githack.com/casualwriter/casual-markdown-blog/main/source/index.html&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Casual-Markdown's Blog: &lt;a href="https://casualwriter.github.io/casual-markdown/blog"&gt;https://casualwriter.github.io/casual-markdown/blog&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Dark theme: &lt;a href="https://casualwriter.github.io/casual-markdown/blog?theme=dark"&gt;https://casualwriter.github.io/casual-markdown/blog?theme=dark&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Dark (always): &lt;a href="https://casualwriter.github.io/casual-markdown/blog?home=index-dark.md"&gt;https://casualwriter.github.io/casual-markdown/blog?home=index-dark.md&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Nav at right-side: &lt;a href="https://casualwriter.github.io/casual-markdown/blog?home=index-right.md"&gt;https://casualwriter.github.io/casual-markdown/blog?home=index-right.md&lt;/a&gt; &lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Usage Guide
&lt;/h3&gt;

&lt;p&gt;simply copy &lt;a href="https://github.com/casualwriter/casual-markdown-page/blob/main/source/index.html"&gt;index.html&lt;/a&gt; to web server, or fork &lt;a href="https://github.com/casualwriter/casual-markdown-blog"&gt;this repo&lt;/a&gt;. &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;config site at index.md (title, subtitle, header-color, navigation, etc..)&lt;/li&gt;
&lt;li&gt;start to write blog post using markdown&lt;/li&gt;
&lt;li&gt;to publish, just add the post in index.md by syntax
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;* yyyy/mm/dd: [post-title](md-file) { #tags }
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;below is sample setup from &lt;a href="https://raw.githubusercontent.com/casualwriter/casual-markdown-blog/main/source/index.md"&gt;Sample Blog: index.md&lt;/a&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;------------------------------------------------------------------title      : Casual-Markdown's Blog 
subtitle   : Simple is the best
nav-group  : featured, new-3, tags, months
nav-width  : 320px
css-header : background:linear-gradient(to bottom right, #06c, #fc0); color:white
menu       : 
   Home    : ?
   Github  : https://github.com/casualwriter/casual-markdown-blog
   Dark    : javascript:darkmode()
   About   : ?page=about.md
------------------------------------------------------------------
&amp;lt;style comment="additional style"&amp;gt;
......
&amp;lt;/style&amp;gt;

&amp;lt;div id="md-post"&amp;gt;

home page in markdown syntax...

## Archive

* yyyy/mm/dd: [Post Title](md file)  { #tag1, #tag2 }
* yyyy/mm/dd: [Post Title](md file)  { #tag1, #tag2 }
...
* yyyy/mm/dd: [Post Title](md file)  { #tag1, #tag2 }

&amp;lt;/div&amp;gt;

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;looking forward to your advice to help it getting better,  &lt;/p&gt;

&lt;p&gt;thanks,&lt;/p&gt;

</description>
      <category>markdown</category>
      <category>javascript</category>
      <category>html</category>
      <category>blog</category>
    </item>
    <item>
      <title>Build blog site by markdown files by single index.html</title>
      <dc:creator>Casualwriter</dc:creator>
      <pubDate>Fri, 02 Sep 2022 08:41:39 +0000</pubDate>
      <link>https://dev.to/casualwriter/build-blog-site-by-markdown-files-and-single-indexhtml-1bg2</link>
      <guid>https://dev.to/casualwriter/build-blog-site-by-markdown-files-and-single-indexhtml-1bg2</guid>
      <description>&lt;p&gt;&lt;a href="https://github.com/casualwriter/casual-markdown-blog"&gt;casual-markdown-blog&lt;/a&gt; is a handy solution to build blog site by markdown files and single index.html&lt;/p&gt;

&lt;p&gt;What we need is config home page at index.md, then start write post in markdown!&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--x6lRP8f0--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/1ownrf7ne2ufcq8i3cuf.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--x6lRP8f0--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/1ownrf7ne2ufcq8i3cuf.jpg" alt="Image description" width="619" height="412"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;It is very handy to build simple blog-site from markdown files, and host on static web hosting. For example,  &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Self-host on github: &lt;a href="https://raw.githack.com/casualwriter/casual-markdown-blog/main/source/index.html"&gt;https://raw.githack.com/casualwriter/casual-markdown-blog/main/source/index.html&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Casual-Markdown's Blog: &lt;a href="https://casualwriter.github.io/casual-markdown/blog"&gt;https://casualwriter.github.io/casual-markdown/blog&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Dark theme: &lt;a href="https://casualwriter.github.io/casual-markdown/blog?theme=dark"&gt;https://casualwriter.github.io/casual-markdown/blog?theme=dark&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Dark (always): &lt;a href="https://casualwriter.github.io/casual-markdown/blog?home=index-dark.md"&gt;https://casualwriter.github.io/casual-markdown/blog?home=index-dark.md&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Nav at right-side: &lt;a href="https://casualwriter.github.io/casual-markdown/blog?home=index-right.md"&gt;https://casualwriter.github.io/casual-markdown/blog?home=index-right.md&lt;/a&gt; &lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Usage Guide
&lt;/h3&gt;

&lt;p&gt;simply copy &lt;a href="https://github.com/casualwriter/casual-markdown-page/blob/main/source/index.html"&gt;index.html&lt;/a&gt; to web server, or fork &lt;a href="https://github.com/casualwriter/casual-markdown-blog"&gt;this repo&lt;/a&gt;. &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;config site at index.md (title, subtitle, header-color, navigation, etc..)&lt;/li&gt;
&lt;li&gt;start to write blog post using markdown&lt;/li&gt;
&lt;li&gt;to publish, just add the post in index.md by syntax &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;below is sample setup from &lt;a href="https://raw.githubusercontent.com/casualwriter/casual-markdown-blog/main/source/index.md"&gt;Sample Blog: index.md&lt;/a&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;------------------------------------------------------------------title      : Casual-Markdown's Blog 
subtitle   : Simple is the best
nav-group  : featured, new-3, tags, months
nav-width  : 320px
css-header : background:linear-gradient(to bottom right, #06c, #fc0); color:white
menu       : 
   Home    : ?
   Github  : https://github.com/casualwriter/casual-markdown-blog
   Dark    : javascript:darkmode()
   About   : ?page=about.md
------------------------------------------------------------------
&amp;lt;style comment="additional style"&amp;gt;
......
&amp;lt;/style&amp;gt;

&amp;lt;div id="md-post"&amp;gt;

home page in markdown syntax...

## Archive

* yyyy/mm/dd: [Post Title](md file)  { #tag1, #tag2 }
* yyyy/mm/dd: [Post Title](md file)  { #tag1, #tag2 }
...
* yyyy/mm/dd: [Post Title](md file)  { #tag1, #tag2 }

&amp;lt;/div&amp;gt;

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;looking forward to your advice to help it getting better,  &lt;/p&gt;

&lt;p&gt;thanks&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Build web page/Site by markdown files</title>
      <dc:creator>Casualwriter</dc:creator>
      <pubDate>Thu, 18 Aug 2022 00:54:00 +0000</pubDate>
      <link>https://dev.to/casualwriter/build-web-pagesite-by-markdown-files-59ke</link>
      <guid>https://dev.to/casualwriter/build-web-pagesite-by-markdown-files-59ke</guid>
      <description>&lt;p&gt;Dear All,&lt;/p&gt;

&lt;p&gt;Now you can use &lt;a href="https://github.com/casualwriter/casual-markdown-page"&gt;casual-markdown-page&lt;/a&gt; to, which &lt;br&gt;
directly use markdown files as web page or web site (ie. markdown-as-webpage).&lt;/p&gt;

&lt;p&gt;It is a single html file index.html to load markdown file into web page by the syntax of index.html?file={markdown-file.md}&lt;/p&gt;

&lt;p&gt;It is very handy to build static web-site from markdown files, and host on free web hosting. For example,&lt;/p&gt;

&lt;p&gt;github (self-host): &lt;a href="https://raw.githack.com/casualwriter/casual-markdown-page/main/source/index.html"&gt;https://raw.githack.com/casualwriter/casual-markdown-page/main/source/index.html&lt;/a&gt;&lt;br&gt;
all-in-one version: &lt;a href="https://raw.githack.com/casualwriter/casual-markdown-page/main/source/index-one.html"&gt;https://raw.githack.com/casualwriter/casual-markdown-page/main/source/index-one.html&lt;/a&gt;&lt;br&gt;
github page: &lt;a href="https://casualwriter.github.io/casual-markdown"&gt;https://casualwriter.github.io/casual-markdown&lt;/a&gt;&lt;br&gt;
github page: &lt;a href="https://casualwriter.github.io/"&gt;https://casualwriter.github.io/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Usage Guide&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;copy index.html or index-one.html to web server&lt;/li&gt;
&lt;li&gt;copy markdown files index.md and other files (*.md) to the folder&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;that's it!&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;by default, it will load index.md as home page.&lt;/li&gt;
&lt;li&gt;hotkey [alt-k] to show page in dark mode&lt;/li&gt;
&lt;li&gt;for mobile, click on title to show/hide TOC.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;It use frontmatter for page configuration (title, menu, navigation), for example&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;-----------------------------------------------------------
github  : https://github.com/casualwriter/casual-markdown 
title   : Casual-Markdown 
style   : #header { background: RoyalBlue } // additional style
menu    :    
  Home            : index.md
  Supported Syntax: md-syntax.md
  md-as-Doc       : md-as-doc.md
  md-as-Page      : md-as-page.md
  md-as-Blog      : md-as-blog.md
  [DarkMode]      : javascript:darkmode()
----------------------------------------------------------

## {{ title }} 

markdown content .....

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;it is the first release, looking forward to your comments for enhancement,&lt;/p&gt;

&lt;p&gt;thanks,&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Markdown as document, by casual-markdown-doc.js</title>
      <dc:creator>Casualwriter</dc:creator>
      <pubDate>Tue, 02 Aug 2022 15:23:00 +0000</pubDate>
      <link>https://dev.to/casualwriter/markdown-as-document-by-casual-markdown-docjs-2nle</link>
      <guid>https://dev.to/casualwriter/markdown-as-document-by-casual-markdown-docjs-2nle</guid>
      <description>&lt;p&gt;Dear All,&lt;/p&gt;

&lt;p&gt;just release &lt;a href="https://github.com/casualwriter/casual-markdown-doc"&gt;Casual-Markdown-Doc&lt;/a&gt;, which is a quick solution &lt;br&gt;
to use markdown as document.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;include javascript lib &lt;code&gt;casual-markdown-doc.js&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;include css style &lt;code&gt;casual-markdown-doc.css&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;then start write document in markdown format!&lt;/p&gt;

&lt;h3&gt;
  
  
  Credit
&lt;/h3&gt;

&lt;p&gt;This project based on the design idea of &lt;a href="https://strapdownjs.com/"&gt;Strapdown.js&lt;/a&gt;. &lt;br&gt;
but use &lt;a href="https://github.com/casualwriter/casual-markdown"&gt;casual-markdown&lt;/a&gt; parser, &lt;br&gt;
build-in css, vanilla javascript without any dependence. (support all browsers include IE9) &lt;/p&gt;

&lt;h3&gt;
  
  
  Usage
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;create your document in html format. e.g. &lt;code&gt;casual-markdown-syntax.html&lt;/code&gt; &lt;/li&gt;
&lt;li&gt;use below first 4 line as header, and start draft content in markdown format&lt;/li&gt;
&lt;li&gt;at line 4, revise title to your document title&lt;/li&gt;
&lt;li&gt;start draft document in markdown format
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;&amp;lt;!DOCTYPE html&amp;gt;
&amp;lt;link  href="https://casualwriter.github.io/dist/casual-markdown-doc.css" rel="stylesheet"&amp;gt;
&amp;lt;script src="https://casualwriter.github.io/dist/casual-markdown-doc.js"&amp;gt;&amp;lt;/script&amp;gt;
&amp;lt;body title="document title here..."&amp;gt;

## Heading

content in markdown format

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Sample
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Introduction of Casual-Markdown-Doc. src: &lt;a href="https://github.com/casualwriter/casual-markdown-doc/blob/main/source/sample.html"&gt;sample.html&lt;/a&gt; =&amp;gt; &lt;a href="https://raw.githack.com/casualwriter/casual-markdown-doc/main/source/sample.html"&gt;preview&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;Supported Markdown Syntax &lt;a href="https://casualwriter.github.io/casual-markdown/casual-markdown-syntax.html"&gt;https://casualwriter.github.io/casual-markdown/casual-markdown-syntax.html&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Hope you like it.&lt;/p&gt;

&lt;p&gt;Have a nice day,&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>markdown</category>
      <category>html</category>
      <category>document</category>
    </item>
    <item>
      <title>casual-markdown: lightweight regexp-base markdown parser (+TOC, scrollspy and frontmatter)</title>
      <dc:creator>Casualwriter</dc:creator>
      <pubDate>Fri, 22 Jul 2022 09:15:00 +0000</pubDate>
      <link>https://dev.to/casualwriter/casual-markdown-lightweight-regexp-base-markdown-parser-toc-scrollspy-and-frontmatter-40a8</link>
      <guid>https://dev.to/casualwriter/casual-markdown-lightweight-regexp-base-markdown-parser-toc-scrollspy-and-frontmatter-40a8</guid>
      <description>&lt;p&gt;Just release casual-markdown v0.85 - a super lightweight RegExp-based markdown parser, with TOC, scrollspy and frontmatter support&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;simple, super lightweight (less than 190 lines)&lt;/li&gt;
&lt;li&gt;vanilla javascript, no dependence&lt;/li&gt;
&lt;li&gt;support all browsers (IE9+, Chrome, Firefox, Brave, etc..)&lt;/li&gt;
&lt;li&gt;straight-forward coding style, hopefully readable.&lt;/li&gt;
&lt;li&gt;support &lt;a href="https://casualwriter.github.io/casual-markdown/casual-markdown-syntax.html"&gt;basic syntax&lt;/a&gt; according &lt;a href="https://www.markdownguide.org/basic-syntax/"&gt;Basic Markdown Syntax (markdownguide.org)&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;support subset of &lt;a href="https://casualwriter.github.io/casual-markdown/casual-markdown-syntax.html#enhanced-syntax"&gt;extended-syntax&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;table-of-content (TOC) and scrollspy support&lt;/li&gt;
&lt;li&gt;auto highlight comment and keyword in code-block&lt;/li&gt;
&lt;li&gt;frontmatter for simple YAML&lt;/li&gt;
&lt;li&gt;extendable (by override md.before, md.after, md.formatCode, md.formatYAML)&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Usage
&lt;/h3&gt;

&lt;p&gt;just simply include &lt;a href="https://github.com/casualwriter/casual-markdown/blob/main/source/casual-markdown.js"&gt;casual-markdown.js&lt;/a&gt; &lt;br&gt;
 from local or CDN.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;&amp;lt;link rel="stylesheet" href="https://cdn.jsdelivr.net/gh/casualwriter/casual-markdown/dist/casual-markdown.css"&amp;gt;
&amp;lt;script src="https://cdn.jsdelivr.net/gh/casualwriter/casual-markdown/dist/casual-markdown.js"&amp;gt;&amp;lt;/script&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Then call markdown-parser by md.html(), or TOC by md.toc()&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;// get markdown source from element
var mdText = document.getElementById('source').innerHTML

// parse markdown, and render content
document.getElementById('content').innerHTML = md.html( mdText )

// render TOC, add scrollspy to document.body
md.toc( 'content', 'toc', { css:'h2,h3,h4', title:'Table of Contents', scrollspy:'body' } )

// render TOC, title=Index, add scrollspy to &amp;lt;div id=content&amp;gt;
md.toc( 'content', 'toc', { title:'Index', scrollspy:'content' } )
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Please visit &lt;a href="https://github.com/casualwriter/casual-markdown"&gt;github&lt;/a&gt; for more details, or check &lt;a href="https://casualwriter.github.io/casual-markdown/casual-markdown-syntax.html"&gt;Supported Syntax of Casual-Markdown&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;a little rush work, please let me know if have any bug.&lt;/p&gt;

&lt;p&gt;have a nice day,&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>markdown</category>
      <category>regex</category>
      <category>toc</category>
    </item>
    <item>
      <title>A simple hta program to document oracle tables</title>
      <dc:creator>Casualwriter</dc:creator>
      <pubDate>Fri, 08 Jul 2022 06:13:11 +0000</pubDate>
      <link>https://dev.to/casualwriter/a-simple-hta-program-to-document-oracle-tables-5b21</link>
      <guid>https://dev.to/casualwriter/a-simple-hta-program-to-document-oracle-tables-5b21</guid>
      <description>&lt;p&gt;Just code a hta (html application) program to document table/view for oracle. It use Microsoft OLE DB (MSDAORA) to connect to oracle. no more dependence.&lt;/p&gt;

&lt;p&gt;&lt;a href=""&gt;https://github.com/casualwriter/hta-db-schema&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--0VDhcrCO--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/aslfokzos62rzprnpwgp.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--0VDhcrCO--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/aslfokzos62rzprnpwgp.jpg" alt="screen layout of db-schema-oracle" width="800" height="620"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;single file without dependence.&lt;/li&gt;
&lt;li&gt;document oracle using built-in "comments" feature.&lt;/li&gt;
&lt;li&gt;classify tables/views into "folder"&lt;/li&gt;
&lt;li&gt;doubleclick to add/modify table description&lt;/li&gt;
&lt;li&gt;doubleclick to add/modify column description&lt;/li&gt;
&lt;li&gt;show and print table definition&lt;/li&gt;
&lt;li&gt;search keyword in name or description&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;no installation is needed. Just download file db-schema-oracle.hta to local, and click to run.&lt;/p&gt;

&lt;p&gt;ps: the code is simple (in 270 line). you may check it out &lt;a href="https://github.com/casualwriter/hta-db-schema/blob/main/source/db-schema-oracle.hta"&gt;here&lt;/a&gt; before run&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--Z-QTLoop--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/2e4ccnh09ehxio7b4m8b.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Z-QTLoop--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/2e4ccnh09ehxio7b4m8b.jpg" alt="first screen, input parameter for DB connection" width="800" height="466"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;enjoy,&lt;/p&gt;

</description>
      <category>oracle</category>
      <category>javascript</category>
      <category>html</category>
      <category>hta</category>
    </item>
    <item>
      <title>a portable lightweight web crawler using Powerpage.</title>
      <dc:creator>Casualwriter</dc:creator>
      <pubDate>Tue, 09 Nov 2021 06:10:22 +0000</pubDate>
      <link>https://dev.to/casualwriter/a-portable-lightweight-web-crawler-using-powerpage-3o0p</link>
      <guid>https://dev.to/casualwriter/a-portable-lightweight-web-crawler-using-powerpage-3o0p</guid>
      <description>&lt;p&gt;Just code a portable lightweight web crawler using &lt;strong&gt;Powerpage&lt;/strong&gt;. &lt;a href="https://github.com/casualwriter/powerpage-web-crawler" rel="noopener noreferrer"&gt;Powerpage Web Crawler&lt;/a&gt; is a portable javascript-application running with &lt;a href="https://github.com/casualwriter/powerpage" rel="noopener noreferrer"&gt;Powerpage&lt;/a&gt;. It is coded by vanilla javascript in about 350 lines codes, &lt;strong&gt;without any dependency&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fkdc3tpb1hwoc47i6jcsq.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fkdc3tpb1hwoc47i6jcsq.gif" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;code&gt;Powerpage Web Crawler&lt;/code&gt; is a portable program, just simply download and run &lt;code&gt;powerpage.exe&lt;/code&gt;. It is a powerful and easy-to-use web-scrawler suitable for blog site crawling and offline-reading.&lt;/p&gt;

&lt;p&gt;Just simply define below, for example&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;base-url&lt;/code&gt; := &lt;code&gt;https://dev.to/casualwriter&lt;/code&gt;  // the home page of favor blog site&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;index-pattern&lt;/code&gt; := &lt;code&gt;none&lt;/code&gt;  // RegExp of the url pattern of category page&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;page-pattern&lt;/code&gt; := &lt;code&gt;/casualwriter/[a-z]&lt;/code&gt; // RegExp of the url pattern of content page&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;content-css&lt;/code&gt; := &lt;code&gt;#main-title h1, #article-body&lt;/code&gt;  //css selector for blog content. &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Program will&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;crawl all category pages.&lt;/li&gt;
&lt;li&gt;find out all url of content pages.&lt;/li&gt;
&lt;li&gt;crawl content for one page, or all pages. &lt;/li&gt;
&lt;li&gt;save setting and links to database (support multiple sites)&lt;/li&gt;
&lt;li&gt;save content pages to local files.&lt;/li&gt;
&lt;li&gt;allow off-line reading from local files.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;About &lt;a href="https://github.com/casualwriter/powerpage" rel="noopener noreferrer"&gt;Powerpage&lt;/a&gt;&lt;/strong&gt; &lt;/p&gt;

&lt;p&gt;&lt;code&gt;Powerpage Web Crawler&lt;/code&gt; run with &lt;code&gt;PowerPage&lt;/code&gt;, which is a lightweight web browser with DB capability and windows accessibility, for quick development of javascript/html/css application. &lt;/p&gt;

&lt;p&gt;for the source code of &lt;strong&gt;Powerpage&lt;/strong&gt;, please visit &lt;a href="https://github.com/casualwriter/powerpage/tree/main/source/src" rel="noopener noreferrer"&gt;https://github.com/casualwriter/powerpage/tree/main/source/src&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;By the way, sorry for beginner coding style and rough screen layout (for independence). &lt;/p&gt;

&lt;p&gt;Enjoy,&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>webdev</category>
      <category>webcrawler</category>
      <category>powerpage</category>
    </item>
  </channel>
</rss>
